/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
/*
 AngularJS v1.8.2
 (c) 2010-2020 Google LLC. http://angularjs.org
 License: MIT
*/
(function(z){'use strict';function ve(a){if(D(a))w(a.objectMaxDepth)&&(Xb.objectMaxDepth=Yb(a.objectMaxDepth)?a.objectMaxDepth:NaN),w(a.urlErrorParamsEnabled)&&Ga(a.urlErrorParamsEnabled)&&(Xb.urlErrorParamsEnabled=a.urlErrorParamsEnabled);else return Xb}function Yb(a){return X(a)&&0<a}function F(a,b){b=b||Error;return function(){var d=arguments[0],c;c="["+(a?a+":":"")+d+"] http://errors.angularjs.org/1.8.2/"+(a?a+"/":"")+d;for(d=1;d<arguments.length;d++){c=c+(1==d?"?":"&")+"p"+(d-1)+"=";var e=encodeURIComponent,
f;f=arguments[d];f="function"==typeof f?f.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof f?"undefined":"string"!=typeof f?JSON.stringify(f):f;c+=e(f)}return new b(c)}}function za(a){if(null==a||$a(a))return!1;if(H(a)||C(a)||x&&a instanceof x)return!0;var b="length"in Object(a)&&a.length;return X(b)&&(0<=b&&b-1 in a||"function"===typeof a.item)}function r(a,b,d){var c,e;if(a)if(B(a))for(c in a)"prototype"!==c&&"length"!==c&&"name"!==c&&a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else if(H(a)||
za(a)){var f="object"!==typeof a;c=0;for(e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==r)a.forEach(b,d,a);else if(Pc(a))for(c in a)b.call(d,a[c],c,a);else if("function"===typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else for(c in a)ta.call(a,c)&&b.call(d,a[c],c,a);return a}function Qc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function Zb(a){return function(b,d){a(d,b)}}function we(){return++qb}
function $b(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(D(g)||B(g))for(var k=Object.keys(g),h=0,l=k.length;h<l;h++){var m=k[h],p=g[m];d&&D(p)?ha(p)?a[m]=new Date(p.valueOf()):ab(p)?a[m]=new RegExp(p):p.nodeName?a[m]=p.cloneNode(!0):ac(p)?a[m]=p.clone():"__proto__"!==m&&(D(a[m])||(a[m]=H(p)?[]:{}),$b(a[m],[p],!0)):a[m]=p}}c?a.$$hashKey=c:delete a.$$hashKey;return a}function S(a){return $b(a,Ha.call(arguments,1),!1)}function xe(a){return $b(a,Ha.call(arguments,1),!0)}function fa(a){return parseInt(a,
10)}function bc(a,b){return S(Object.create(a),b)}function E(){}function Ta(a){return a}function ia(a){return function(){return a}}function cc(a){return B(a.toString)&&a.toString!==la}function A(a){return"undefined"===typeof a}function w(a){return"undefined"!==typeof a}function D(a){return null!==a&&"object"===typeof a}function Pc(a){return null!==a&&"object"===typeof a&&!Rc(a)}function C(a){return"string"===typeof a}function X(a){return"number"===typeof a}function ha(a){return"[object Date]"===la.call(a)}
function H(a){return Array.isArray(a)||a instanceof Array}function dc(a){switch(la.call(a)){case "[object Error]":return!0;case "[object Exception]":return!0;case "[object DOMException]":return!0;default:return a instanceof Error}}function B(a){return"function"===typeof a}function ab(a){return"[object RegExp]"===la.call(a)}function $a(a){return a&&a.window===a}function bb(a){return a&&a.$evalAsync&&a.$watch}function Ga(a){return"boolean"===typeof a}function ye(a){return a&&X(a.length)&&ze.test(la.call(a))}
function ac(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function Ae(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function ua(a){return K(a.nodeName||a[0]&&a[0].nodeName)}function cb(a,b){var d=a.indexOf(b);0<=d&&a.splice(d,1);return d}function Ia(a,b,d){function c(a,b,c){c--;if(0>c)return"...";var d=b.$$hashKey,f;if(H(a)){f=0;for(var g=a.length;f<g;f++)b.push(e(a[f],c))}else if(Pc(a))for(f in a)b[f]=e(a[f],c);else if(a&&"function"===typeof a.hasOwnProperty)for(f in a)a.hasOwnProperty(f)&&
(b[f]=e(a[f],c));else for(f in a)ta.call(a,f)&&(b[f]=e(a[f],c));d?b.$$hashKey=d:delete b.$$hashKey;return b}function e(a,b){if(!D(a))return a;var d=g.indexOf(a);if(-1!==d)return k[d];if($a(a)||bb(a))throw oa("cpws");var d=!1,e=f(a);void 0===e&&(e=H(a)?[]:Object.create(Rc(a)),d=!0);g.push(a);k.push(e);return d?c(a,e,b):e}function f(a){switch(la.call(a)){case "[object Int8Array]":case "[object Int16Array]":case "[object Int32Array]":case "[object Float32Array]":case "[object Float64Array]":case "[object Uint8Array]":case "[object Uint8ClampedArray]":case "[object Uint16Array]":case "[object Uint32Array]":return new a.constructor(e(a.buffer),
a.byteOffset,a.length);case "[object ArrayBuffer]":if(!a.slice){var b=new ArrayBuffer(a.byteLength);(new Uint8Array(b)).set(new Uint8Array(a));return b}return a.slice(0);case "[object Boolean]":case "[object Number]":case "[object String]":case "[object Date]":return new a.constructor(a.valueOf());case "[object RegExp]":return b=new RegExp(a.source,a.toString().match(/[^/]*$/)[0]),b.lastIndex=a.lastIndex,b;case "[object Blob]":return new a.constructor([a],{type:a.type})}if(B(a.cloneNode))return a.cloneNode(!0)}
var g=[],k=[];d=Yb(d)?d:NaN;if(b){if(ye(b)||"[object ArrayBuffer]"===la.call(b))throw oa("cpta");if(a===b)throw oa("cpi");H(b)?b.length=0:r(b,function(a,c){"$$hashKey"!==c&&delete b[c]});g.push(a);k.push(b);return c(a,b,d)}return e(a,d)}function ec(a,b){return a===b||a!==a&&b!==b}function va(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d===typeof b&&"object"===d)if(H(a)){if(!H(b))return!1;if((d=a.length)===b.length){for(c=0;c<d;c++)if(!va(a[c],
b[c]))return!1;return!0}}else{if(ha(a))return ha(b)?ec(a.getTime(),b.getTime()):!1;if(ab(a))return ab(b)?a.toString()===b.toString():!1;if(bb(a)||bb(b)||$a(a)||$a(b)||H(b)||ha(b)||ab(b))return!1;d=T();for(c in a)if("$"!==c.charAt(0)&&!B(a[c])){if(!va(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&w(b[c])&&!B(b[c]))return!1;return!0}return!1}function db(a,b,d){return a.concat(Ha.call(b,d))}function Va(a,b){var d=2<arguments.length?Ha.call(arguments,2):[];return!B(b)||b instanceof
RegExp?b:d.length?function(){return arguments.length?b.apply(a,db(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function Sc(a,b){var d=b;"string"===typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=void 0:$a(b)?d="$WINDOW":b&&z.document===b?d="$DOCUMENT":bb(b)&&(d="$SCOPE");return d}function eb(a,b){if(!A(a))return X(b)||(b=b?2:null),JSON.stringify(a,Sc,b)}function Tc(a){return C(a)?JSON.parse(a):a}function fc(a,b){a=a.replace(Be,"");var d=Date.parse("Jan 01, 1970 00:00:00 "+
a)/6E4;return Y(d)?b:d}function Uc(a,b){a=new Date(a.getTime());a.setMinutes(a.getMinutes()+b);return a}function gc(a,b,d){d=d?-1:1;var c=a.getTimezoneOffset();b=fc(b,c);return Uc(a,d*(b-c))}function Aa(a){a=x(a).clone().empty();var b=x("<div></div>").append(a).html();try{return a[0].nodeType===Pa?K(b):b.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(b)}}function Vc(a){try{return decodeURIComponent(a)}catch(b){}}function hc(a){var b={};r((a||"").split("&"),
function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=Vc(e),w(e)&&(f=w(f)?Vc(f):!0,ta.call(b,e)?H(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Ce(a){var b=[];r(a,function(a,c){H(a)?r(a,function(a){b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))}):b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))});return b.length?b.join("&"):""}function ic(a){return ba(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ba(a,
b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function De(a,b){var d,c,e=Qa.length;for(c=0;c<e;++c)if(d=Qa[c]+b,C(d=a.getAttribute(d)))return d;return null}function Ee(a,b){var d,c,e={};r(Qa,function(b){b+="app";!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))});r(Qa,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":","\\:")+"]"))&&(d=e,c=e.getAttribute(b))});
d&&(Fe?(e.strictDi=null!==De(d,"strict-di"),b(d,c?[c]:[],e)):z.console.error("AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match."))}function Wc(a,b,d){D(d)||(d={});d=S({strictDi:!1},d);var c=function(){a=x(a);if(a.injector()){var c=a[0]===z.document?"document":Aa(a);throw oa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",
function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=fb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;z&&e.test(z.name)&&(d.debugInfoEnabled=!0,z.name=z.name.replace(e,""));if(z&&!f.test(z.name))return c();z.name=z.name.replace(f,"");ca.resumeBootstrap=function(a){r(a,function(a){b.push(a)});return c()};B(ca.resumeDeferredBootstrap)&&
ca.resumeDeferredBootstrap()}function Ge(){z.name="NG_ENABLE_DEBUG_INFO!"+z.name;z.location.reload()}function He(a){a=ca.element(a).injector();if(!a)throw oa("test");return a.get("$$testability")}function Xc(a,b){b=b||"_";return a.replace(Ie,function(a,c){return(c?b:"")+a.toLowerCase()})}function Je(){var a;if(!Yc){var b=rb();(sb=A(b)?z.jQuery:b?z[b]:void 0)&&sb.fn.on?(x=sb,S(sb.fn,{scope:Wa.scope,isolateScope:Wa.isolateScope,controller:Wa.controller,injector:Wa.injector,inheritedData:Wa.inheritedData})):
x=U;a=x.cleanData;x.cleanData=function(b){for(var c,e=0,f;null!=(f=b[e]);e++)(c=(x._data(f)||{}).events)&&c.$destroy&&x(f).triggerHandler("$destroy");a(b)};ca.element=x;Yc=!0}}function Ke(){U.legacyXHTMLReplacement=!0}function gb(a,b,d){if(!a)throw oa("areq",b||"?",d||"required");return a}function tb(a,b,d){d&&H(a)&&(a=a[a.length-1]);gb(B(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Ja(a,b){if("hasOwnProperty"===a)throw oa("badname",
b);}function Le(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g<f;g++)c=b[g],a&&(a=(e=a)[c]);return!d&&B(a)?Va(e,a):a}function ub(a){for(var b=a[0],d=a[a.length-1],c,e=1;b!==d&&(b=b.nextSibling);e++)if(c||a[e]!==b)c||(c=x(Ha.call(a,0,e))),c.push(b);return c||a}function T(){return Object.create(null)}function jc(a){if(null==a)return"";switch(typeof a){case "string":break;case "number":a=""+a;break;default:a=!cc(a)||H(a)||ha(a)?eb(a):a.toString()}return a}function Me(a){function b(a,
b,c){return a[b]||(a[b]=c())}var d=F("$injector"),c=F("ng");a=b(a,"angular",Object);a.$$minErr=a.$$minErr||F;return b(a,"module",function(){var a={};return function(f,g,k){var h={};if("hasOwnProperty"===f)throw c("badname","module");g&&a.hasOwnProperty(f)&&(a[f]=null);return b(a,f,function(){function a(b,c,d,f){f||(f=e);return function(){f[d||"push"]([b,c,arguments]);return t}}function b(a,c,d){d||(d=e);return function(b,e){e&&B(e)&&(e.$$moduleName=f);d.push([a,c,arguments]);return t}}if(!g)throw d("nomod",
f);var e=[],n=[],s=[],G=a("$injector","invoke","push",n),t={_invokeQueue:e,_configBlocks:n,_runBlocks:s,info:function(a){if(w(a)){if(!D(a))throw c("aobj","value");h=a;return this}return h},requires:g,name:f,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),decorator:b("$provide","decorator",n),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider",
"register"),directive:b("$compileProvider","directive"),component:b("$compileProvider","component"),config:G,run:function(a){s.push(a);return this}};k&&G(k);return t})}})}function ja(a,b){if(H(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(D(a))for(d in b=b||{},a)if("$"!==d.charAt(0)||"$"!==d.charAt(1))b[d]=a[d];return b||a}function Ne(a,b){var d=[];Yb(b)&&(a=ca.copy(a,null,b));return JSON.stringify(a,function(a,b){b=Sc(a,b);if(D(b)){if(0<=d.indexOf(b))return"...";d.push(b)}return b})}
function Oe(a){S(a,{errorHandlingConfig:ve,bootstrap:Wc,copy:Ia,extend:S,merge:xe,equals:va,element:x,forEach:r,injector:fb,noop:E,bind:Va,toJson:eb,fromJson:Tc,identity:Ta,isUndefined:A,isDefined:w,isString:C,isFunction:B,isObject:D,isNumber:X,isElement:ac,isArray:H,version:Pe,isDate:ha,callbacks:{$$counter:0},getTestability:He,reloadWithDebugInfo:Ge,UNSAFE_restoreLegacyJqLiteXHTMLReplacement:Ke,$$minErr:F,$$csp:Ba,$$encodeUriSegment:ic,$$encodeUriQuery:ba,$$lowercase:K,$$stringify:jc,$$uppercase:vb});
lc=Me(z);lc("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Qe});a.provider("$compile",Zc).directive({a:Re,input:$c,textarea:$c,form:Se,script:Te,select:Ue,option:Ve,ngBind:We,ngBindHtml:Xe,ngBindTemplate:Ye,ngClass:Ze,ngClassEven:$e,ngClassOdd:af,ngCloak:bf,ngController:cf,ngForm:df,ngHide:ef,ngIf:ff,ngInclude:gf,ngInit:hf,ngNonBindable:jf,ngPluralize:kf,ngRef:lf,ngRepeat:mf,ngShow:nf,ngStyle:of,ngSwitch:pf,ngSwitchWhen:qf,ngSwitchDefault:rf,ngOptions:sf,ngTransclude:tf,ngModel:uf,
ngList:vf,ngChange:wf,pattern:ad,ngPattern:ad,required:bd,ngRequired:bd,minlength:cd,ngMinlength:cd,maxlength:dd,ngMaxlength:dd,ngValue:xf,ngModelOptions:yf}).directive({ngInclude:zf,input:Af}).directive(wb).directive(ed);a.provider({$anchorScroll:Bf,$animate:Cf,$animateCss:Df,$$animateJs:Ef,$$animateQueue:Ff,$$AnimateRunner:Gf,$$animateAsyncRun:Hf,$browser:If,$cacheFactory:Jf,$controller:Kf,$document:Lf,$$isDocumentHidden:Mf,$exceptionHandler:Nf,$filter:fd,$$forceReflow:Of,$interpolate:Pf,$interval:Qf,
$$intervalFactory:Rf,$http:Sf,$httpParamSerializer:Tf,$httpParamSerializerJQLike:Uf,$httpBackend:Vf,$xhrFactory:Wf,$jsonpCallbacks:Xf,$location:Yf,$log:Zf,$parse:$f,$rootScope:ag,$q:bg,$$q:cg,$sce:dg,$sceDelegate:eg,$sniffer:fg,$$taskTrackerFactory:gg,$templateCache:hg,$templateRequest:ig,$$testability:jg,$timeout:kg,$window:lg,$$rAF:mg,$$jqLite:ng,$$Map:og,$$cookieReader:pg})}]).info({angularVersion:"1.8.2"})}function xb(a,b){return b.toUpperCase()}function yb(a){return a.replace(qg,xb)}function mc(a){a=
a.nodeType;return 1===a||!a||9===a}function gd(a,b){var d,c,e,f=b.createDocumentFragment(),g=[],k;if(nc.test(a)){d=f.appendChild(b.createElement("div"));c=(rg.exec(a)||["",""])[1].toLowerCase();e=U.legacyXHTMLReplacement?a.replace(sg,"<$1></$2>"):a;if(10>wa)for(c=hb[c]||hb._default,d.innerHTML=c[1]+e+c[2],k=c[0];k--;)d=d.firstChild;else{c=qa[c]||[];for(k=c.length;-1<--k;)d.appendChild(z.document.createElement(c[k])),d=d.firstChild;d.innerHTML=e}g=db(g,d.childNodes);d=f.firstChild;d.textContent=""}else g.push(b.createTextNode(a));
f.textContent="";f.innerHTML="";r(g,function(a){f.appendChild(a)});return f}function U(a){if(a instanceof U)return a;var b;C(a)&&(a=V(a),b=!0);if(!(this instanceof U)){if(b&&"<"!==a.charAt(0))throw oc("nosel");return new U(a)}if(b){b=z.document;var d;a=(d=tg.exec(a))?[b.createElement(d[1])]:(d=gd(a,b))?d.childNodes:[];pc(this,a)}else B(a)?hd(a):pc(this,a)}function qc(a){return a.cloneNode(!0)}function zb(a,b){!b&&mc(a)&&x.cleanData([a]);a.querySelectorAll&&x.cleanData(a.querySelectorAll("*"))}function id(a){for(var b in a)return!1;
return!0}function jd(a){var b=a.ng339,d=b&&Ka[b],c=d&&d.events,d=d&&d.data;d&&!id(d)||c&&!id(c)||(delete Ka[b],a.ng339=void 0)}function kd(a,b,d,c){if(w(c))throw oc("offargs");var e=(c=Ab(a))&&c.events,f=c&&c.handle;if(f){if(b){var g=function(b){var c=e[b];w(d)&&cb(c||[],d);w(d)&&c&&0<c.length||(a.removeEventListener(b,f),delete e[b])};r(b.split(" "),function(a){g(a);Bb[a]&&g(Bb[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f),delete e[b];jd(a)}}function rc(a,b){var d=a.ng339;if(d=
d&&Ka[d])b?delete d.data[b]:d.data={},jd(a)}function Ab(a,b){var d=a.ng339,d=d&&Ka[d];b&&!d&&(a.ng339=d=++ug,d=Ka[d]={events:{},data:{},handle:void 0});return d}function sc(a,b,d){if(mc(a)){var c,e=w(d),f=!e&&b&&!D(b),g=!b;a=(a=Ab(a,!f))&&a.data;if(e)a[yb(b)]=d;else{if(g)return a;if(f)return a&&a[yb(b)];for(c in b)a[yb(c)]=b[c]}}}function Cb(a,b){return a.getAttribute?-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" "):!1}function Db(a,b){if(b&&a.setAttribute){var d=
(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=V(a);c=c.replace(" "+a+" "," ")});c!==d&&a.setAttribute("class",V(c))}}function Eb(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=V(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});c!==d&&a.setAttribute("class",V(c))}}function pc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"===typeof d&&b.window!==b){if(d)for(var c=
0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function ld(a,b){return Fb(a,"$"+(b||"ngController")+"Controller")}function Fb(a,b,d){9===a.nodeType&&(a=a.documentElement);for(b=H(b)?b:[b];a;){for(var c=0,e=b.length;c<e;c++)if(w(d=x.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&a.host}}function md(a){for(zb(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Gb(a,b){b||zb(a);var d=a.parentNode;d&&d.removeChild(a)}function vg(a,b){b=b||z;if("complete"===b.document.readyState)b.setTimeout(a);
else x(b).on("load",a)}function hd(a){function b(){z.document.removeEventListener("DOMContentLoaded",b);z.removeEventListener("load",b);a()}"complete"===z.document.readyState?z.setTimeout(a):(z.document.addEventListener("DOMContentLoaded",b),z.addEventListener("load",b))}function nd(a,b){var d=Hb[b.toLowerCase()];return d&&od[ua(a)]&&d}function wg(a,b){var d=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(A(c.immediatePropagationStopped)){var k=
c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();k&&k.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};var h=f.specialHandlerWrapper||xg;1<g&&(f=ja(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||h(a,c,f[l])}};d.elem=a;return d}function xg(a,b,d){d.call(a,b)}function yg(a,b,d){var c=b.relatedTarget;c&&(c===a||zg.call(a,c))||d.call(a,b)}function ng(){this.$get=
function(){return S(U,{hasClass:function(a,b){a.attr&&(a=a[0]);return Cb(a,b)},addClass:function(a,b){a.attr&&(a=a[0]);return Eb(a,b)},removeClass:function(a,b){a.attr&&(a=a[0]);return Db(a,b)}})}}function La(a,b){var d=a&&a.$$hashKey;if(d)return"function"===typeof d&&(d=a.$$hashKey()),d;d=typeof a;return d="function"===d||"object"===d&&null!==a?a.$$hashKey=d+":"+(b||we)():d+":"+a}function pd(){this._keys=[];this._values=[];this._lastKey=NaN;this._lastIndex=-1}function qd(a){a=Function.prototype.toString.call(a).replace(Ag,
"");return a.match(Bg)||a.match(Cg)}function Dg(a){return(a=qd(a))?"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function fb(a,b){function d(a){return function(b,c){if(D(b))r(b,Zb(a));else return a(b,c)}}function c(a,b){Ja(a,"service");if(B(b)||H(b))b=n.instantiate(b);if(!b.$get)throw Ca("pget",a);return p[a+"Provider"]=b}function e(a,b){return function(){var c=t.invoke(b,this);if(A(c))throw Ca("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){gb(A(a)||
H(a),"modulesToLoad","not an array");var b=[],c;r(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=n.get(e[0]);f[e[1]].apply(f,e[2])}}if(!m.get(a)){m.set(a,!0);try{C(a)?(c=lc(a),t.modules[a]=c,b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):B(a)?b.push(n.invoke(a)):H(a)?b.push(n.invoke(a)):tb(a,"module")}catch(e){throw H(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ca("modulerr",
a,e.stack||e.message||e);}}});return b}function k(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===h)throw Ca("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=h,a[b]=c(b,e),a[b]}catch(f){throw a[b]===h&&delete a[b],f;}finally{l.shift()}}function e(a,c,f){var g=[];a=fb.$$annotate(a,b,f);for(var h=0,k=a.length;h<k;h++){var l=a[h];if("string"!==typeof l)throw Ca("itkn",l);g.push(c&&c.hasOwnProperty(l)?c[l]:d(l,f))}return g}return{invoke:function(a,b,c,d){"string"===typeof c&&
(d=c,c=null);c=e(a,c,d);H(a)&&(a=a[a.length-1]);d=a;if(wa||"function"!==typeof d)d=!1;else{var f=d.$$ngIsClass;Ga(f)||(f=d.$$ngIsClass=/^class\b/.test(Function.prototype.toString.call(d)));d=f}return d?(c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=H(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d,a))},get:d,annotate:fb.$$annotate,has:function(b){return p.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}
b=!0===b;var h={},l=[],m=new Ib,p={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,ia(b),!1)}),constant:d(function(a,b){Ja(a,"constant");p[a]=b;s[a]=b}),decorator:function(a,b){var c=n.get(a+"Provider"),d=c.$get;c.$get=function(){var a=t.invoke(d,c);return t.invoke(b,null,{$delegate:a})}}}},n=p.$injector=k(p,function(a,b){ca.isString(b)&&l.push(b);throw Ca("unpr",l.join(" <- "));}),s={},
G=k(s,function(a,b){var c=n.get(a+"Provider",b);return t.invoke(c.$get,c,void 0,a)}),t=G;p.$injectorProvider={$get:ia(G)};t.modules=n.modules=T();var N=g(a),t=G.get("$injector");t.strictDi=b;r(N,function(a){a&&t.invoke(a)});t.loadNewModules=function(a){r(g(a),function(a){a&&t.invoke(a)})};return t}function Bf(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===
ua(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;B(c)?c=c():ac(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):X(c)||(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=C(a)?a:X(a)?a.toString():d.hash();var b;a?(b=k.getElementById(a))?f(b):(b=e(k.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var k=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a===
b&&""===a||vg(function(){c.$evalAsync(g)})});return g}]}function ib(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;H(a)&&(a=a.join(" "));H(b)&&(b=b.join(" "));return a+" "+b}function Eg(a){C(a)&&(a=a.split(" "));var b=T();r(a,function(a){a.length&&(b[a]=!0)});return b}function ra(a){return D(a)?a:{}}function Fg(a,b,d,c,e){function f(){pa=null;k()}function g(){t=y();t=A(t)?null:t;va(t,P)&&(t=P);N=P=t}function k(){var a=N;g();if(v!==h.url()||a!==t)v=h.url(),N=t,r(J,function(a){a(h.url(),t)})}
var h=this,l=a.location,m=a.history,p=a.setTimeout,n=a.clearTimeout,s={},G=e(d);h.isMock=!1;h.$$completeOutstandingRequest=G.completeTask;h.$$incOutstandingRequestCount=G.incTaskCount;h.notifyWhenNoOutstandingRequests=G.notifyWhenNoPendingTasks;var t,N,v=l.href,kc=b.find("base"),pa=null,y=c.history?function(){try{return m.state}catch(a){}}:E;g();h.url=function(b,d,e){A(e)&&(e=null);l!==a.location&&(l=a.location);m!==a.history&&(m=a.history);if(b){var f=N===e;b=ga(b).href;if(v===b&&(!c.history||f))return h;
var k=v&&Da(v)===Da(b);v=b;N=e;!c.history||k&&f?(k||(pa=b),d?l.replace(b):k?(d=l,e=b,f=e.indexOf("#"),e=-1===f?"":e.substr(f),d.hash=e):l.href=b,l.href!==b&&(pa=b)):(m[d?"replaceState":"pushState"](e,"",b),g());pa&&(pa=b);return h}return(pa||l.href).replace(/#$/,"")};h.state=function(){return t};var J=[],I=!1,P=null;h.onUrlChange=function(b){if(!I){if(c.history)x(a).on("popstate",f);x(a).on("hashchange",f);I=!0}J.push(b);return b};h.$$applicationDestroyed=function(){x(a).off("hashchange popstate",
f)};h.$$checkUrlChange=k;h.baseHref=function(){var a=kc.attr("href");return a?a.replace(/^(https?:)?\/\/[^/]*/,""):""};h.defer=function(a,b,c){var d;b=b||0;c=c||G.DEFAULT_TASK_TYPE;G.incTaskCount(c);d=p(function(){delete s[d];G.completeTask(a,c)},b);s[d]=c;return d};h.defer.cancel=function(a){if(s.hasOwnProperty(a)){var b=s[a];delete s[a];n(a);G.completeTask(E,b);return!0}return!1}}function If(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(a,b,d,c,e){return new Fg(a,
c,b,d,e)}]}function Jf(){this.$get=function(){function a(a,c){function e(a){a!==p&&(n?n===a&&(n=a.n):n=a,f(a.n,a.p),f(a,p),p=a,p.n=null)}function f(a,b){a!==b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw F("$cacheFactory")("iid",a);var g=0,k=S({},c,{id:a}),h=T(),l=c&&c.capacity||Number.MAX_VALUE,m=T(),p=null,n=null;return b[a]={put:function(a,b){if(!A(b)){if(l<Number.MAX_VALUE){var c=m[a]||(m[a]={key:a});e(c)}a in h||g++;h[a]=b;g>l&&this.remove(n.key);return b}},get:function(a){if(l<Number.MAX_VALUE){var b=
m[a];if(!b)return;e(b)}return h[a]},remove:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;b===p&&(p=b.p);b===n&&(n=b.n);f(b.n,b.p);delete m[a]}a in h&&(delete h[a],g--)},removeAll:function(){h=T();g=0;m=T();p=n=null},destroy:function(){m=k=h=null;delete b[a]},info:function(){return S({},k,{size:g})}}}var b={};a.info=function(){var a={};r(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}}function hg(){this.$get=["$cacheFactory",function(a){return a("templates")}]}
function Zc(a,b){function d(a,b,c){var d=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,e=T();r(a,function(a,f){a=a.trim();if(a in p)e[f]=p[a];else{var g=a.match(d);if(!g)throw $("iscp",b,f,a,c?"controller bindings definition":"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f};g[4]&&(p[a]=e[f])}});return e}function c(a){var b=a.charAt(0);if(!b||b!==K(b))throw $("baddir",a);if(a!==a.trim())throw $("baddir",a);}function e(a){var b=a.require||a.controller&&
a.name;!H(b)&&D(b)&&r(b,function(a,c){var d=a.match(l);a.substring(d[0].length)||(b[c]=d[0]+c)});return b}var f={},g=/^\s*directive:\s*([\w-]+)\s+(.*)$/,k=/(([\w-]+)(?::([^;]+))?;?)/,h=Ae("ngSrc,ngSrcset,src,srcset"),l=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,m=/^(on[a-z]+|formaction)$/,p=T();this.directive=function pa(b,d){gb(b,"name");Ja(b,"directive");C(b)?(c(b),gb(d,"directiveFactory"),f.hasOwnProperty(b)||(f[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var d=[];r(f[b],function(f,
g){try{var h=a.invoke(f);B(h)?h={compile:ia(h)}:!h.compile&&h.link&&(h.compile=ia(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||b;h.require=e(h);var k=h,l=h.restrict;if(l&&(!C(l)||!/[EACM]/.test(l)))throw $("badrestrict",l,b);k.restrict=l||"EA";h.$$moduleName=f.$$moduleName;d.push(h)}catch(m){c(m)}});return d}])),f[b].push(d)):r(b,Zb(pa));return this};this.component=function y(a,b){function c(a){function e(b){return B(b)||H(b)?function(c,d){return a.invoke(b,this,{$element:c,$attrs:d})}:
b}var f=b.template||b.templateUrl?b.template:"",g={controller:d,controllerAs:Gg(b.controller)||b.controllerAs||"$ctrl",template:e(f),templateUrl:e(b.templateUrl),transclude:b.transclude,scope:{},bindToController:b.bindings||{},restrict:"E",require:b.require};r(b,function(a,b){"$"===b.charAt(0)&&(g[b]=a)});return g}if(!C(a))return r(a,Zb(Va(this,y))),this;var d=b.controller||function(){};r(b,function(a,b){"$"===b.charAt(0)&&(c[b]=a,B(d)&&(d[b]=a))});c.$inject=["$injector"];return this.directive(a,
c)};this.aHrefSanitizationTrustedUrlList=function(a){return w(a)?(b.aHrefSanitizationTrustedUrlList(a),this):b.aHrefSanitizationTrustedUrlList()};Object.defineProperty(this,"aHrefSanitizationWhitelist",{get:function(){return this.aHrefSanitizationTrustedUrlList},set:function(a){this.aHrefSanitizationTrustedUrlList=a}});this.imgSrcSanitizationTrustedUrlList=function(a){return w(a)?(b.imgSrcSanitizationTrustedUrlList(a),this):b.imgSrcSanitizationTrustedUrlList()};Object.defineProperty(this,"imgSrcSanitizationWhitelist",
{get:function(){return this.imgSrcSanitizationTrustedUrlList},set:function(a){this.imgSrcSanitizationTrustedUrlList=a}});var n=!0;this.debugInfoEnabled=function(a){return w(a)?(n=a,this):n};var s=!1;this.strictComponentBindingsEnabled=function(a){return w(a)?(s=a,this):s};var G=10;this.onChangesTtl=function(a){return arguments.length?(G=a,this):G};var t=!0;this.commentDirectivesEnabled=function(a){return arguments.length?(t=a,this):t};var N=!0;this.cssClassDirectivesEnabled=function(a){return arguments.length?
(N=a,this):N};var v=T();this.addPropertySecurityContext=function(a,b,c){var d=a.toLowerCase()+"|"+b.toLowerCase();if(d in v&&v[d]!==c)throw $("ctxoverride",a,b,v[d],c);v[d]=c;return this};(function(){function a(b,c){r(c,function(a){v[a.toLowerCase()]=b})}a(W.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]);a(W.CSS,["*|style"]);a(W.URL,"area|href area|ping a|href a|ping blockquote|cite body|background del|cite input|src ins|cite q|cite".split(" "));a(W.MEDIA_URL,"audio|src img|src img|srcset source|src source|srcset track|src video|src video|poster".split(" "));
a(W.RESOURCE_URL,"*|formAction applet|code applet|codebase base|href embed|src frame|src form|action head|profile html|manifest iframe|src link|href media|src object|codebase object|data script|src".split(" "))})();this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(a,b,c,e,p,M,L,u,R){function q(){try{if(!--Ja)throw Ua=void 0,$("infchng",G);L.$apply(function(){for(var a=0,b=Ua.length;a<b;++a)try{Ua[a]()}catch(d){c(d)}Ua=
void 0})}finally{Ja++}}function ma(a,b){if(!a)return a;if(!C(a))throw $("srcset",b,a.toString());for(var c="",d=V(a),e=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,e=/\s/.test(d)?e:/(,)/,d=d.split(e),e=Math.floor(d.length/2),f=0;f<e;f++)var g=2*f,c=c+u.getTrustedMediaUrl(V(d[g])),c=c+(" "+V(d[g+1]));d=V(d[2*f]).split(/\s/);c+=u.getTrustedMediaUrl(V(d[0]));2===d.length&&(c+=" "+V(d[1]));return c}function w(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr=
{};this.$$element=a}function O(a,b,c){Fa.innerHTML="<span "+b+">";b=Fa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function sa(a,b){try{a.addClass(b)}catch(c){}}function da(a,b,c,d,e){a instanceof x||(a=x(a));var f=Xa(a,b,a,c,d,e);da.$$addScopeClass(a);var g=null;return function(b,c,d){if(!a)throw $("multilink");gb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var h=d.parentBoundTranscludeFn,k=d.transcludeControllers;d=d.futureParentElement;
h&&h.$$boundTransclude&&(h=h.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ua(d)&&la.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==g?x(ja(g,x("<div></div>").append(a).html())):c?Wa.clone.call(a):a;if(k)for(var l in k)d.data("$"+l+"Controller",k[l].instance);da.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,h);c||(a=f=null);return d}}function Xa(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,I,t;if(n)for(t=Array(c.length),m=0;m<h.length;m+=3)f=h[m],t[f]=c[f];else t=c;m=0;for(p=h.length;m<
p;)k=t[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),da.$$addScopeInfo(x(k),l)):l=a,I=c.transcludeOnThisElement?ka(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?ka(a,b):null,c(f,l,k,d,I)):f&&f(a,k.childNodes,void 0,e)}for(var h=[],k=H(a)||a instanceof x,l,m,p,I,n,t=0;t<a.length;t++){l=new w;11===wa&&jb(a,t,k);m=tc(a[t],[],l,0===t?d:void 0,e);(f=m.length?aa(m,a[t],l,b,c,null,[],[],f):null)&&f.scope&&da.$$addScopeClass(l.$$element);l=f&&f.terminal||!(p=a[t].childNodes)||!p.length?null:Xa(p,
f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||l)h.push(t,f,l),I=!0,n=n||f;f=null}return I?g:null}function jb(a,b,c){var d=a[b],e=d.parentNode,f;if(d.nodeType===Pa)for(;;){f=e?d.nextSibling:a[b+1];if(!f||f.nodeType!==Pa)break;d.nodeValue+=f.nodeValue;f.parentNode&&f.parentNode.removeChild(f);c&&f===a[b+1]&&a.splice(b+1,1)}}function ka(a,b,c){function d(e,f,g,h,k){e||(e=a.$new(!1,k),e.$$transcluded=!0);return b(e,f,{parentBoundTranscludeFn:c,transcludeControllers:g,
futureParentElement:h})}var e=d.$$slots=T(),f;for(f in b.$$slots)e[f]=b.$$slots[f]?ka(a,b.$$slots[f],c):null;return d}function tc(a,b,d,e,f){var g=d.$attr,h;switch(a.nodeType){case 1:h=ua(a);Y(b,xa(h),"E",e,f);for(var l,m,n,t,J,s=a.attributes,v=0,G=s&&s.length;v<G;v++){var P=!1,N=!1,r=!1,y=!1,u=!1,M;l=s[v];m=l.name;t=l.value;n=xa(m.toLowerCase());(J=n.match(Ra))?(r="Attr"===J[1],y="Prop"===J[1],u="On"===J[1],m=m.replace(rd,"").toLowerCase().substr(4+J[1].length).replace(/_(.)/g,function(a,b){return b.toUpperCase()})):
(M=n.match(Sa))&&ca(M[1])&&(P=m,N=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6));if(y||u)d[n]=t,g[n]=l.name,y?Ea(a,b,n,m):b.push(sd(p,L,c,n,m,!1));else{n=xa(m.toLowerCase());g[n]=m;if(r||!d.hasOwnProperty(n))d[n]=t,nd(a,n)&&(d[n]=!0);Ia(a,b,t,n,r);Y(b,n,"A",e,f,P,N)}}"input"===h&&"hidden"===a.getAttribute("type")&&a.setAttribute("autocomplete","off");if(!Qa)break;g=a.className;D(g)&&(g=g.animVal);if(C(g)&&""!==g)for(;a=k.exec(g);)n=xa(a[2]),Y(b,n,"C",e,f)&&(d[n]=V(a[3])),g=g.substr(a.index+
a[0].length);break;case Pa:na(b,a.nodeValue);break;case 8:if(!Oa)break;F(a,b,d,e,f)}b.sort(ia);return b}function F(a,b,c,d,e){try{var f=g.exec(a.nodeValue);if(f){var h=xa(f[1]);Y(b,h,"M",d,e)&&(c[h]=V(f[2]))}}catch(k){}}function U(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw $("uterdir",b,c);1===a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return x(d)}function W(a,b,c){return function(d,e,f,g,h){e=U(e[0],
b,c);return a(d,e,f,g,h)}}function Z(a,b,c,d,e,f){var g;return a?da(b,c,d,e,f):function(){g||(g=da(b,c,d,e,f),b=c=f=null);return g.apply(this,arguments)}}function aa(a,b,d,e,f,g,h,k,l){function m(a,b,c,d){if(a){c&&(a=W(a,c,d));a.require=u.require;a.directiveName=Q;if(s===u||u.$$isolateScope)a=Ba(a,{isolateScope:!0});h.push(a)}if(b){c&&(b=W(b,c,d));b.require=u.require;b.directiveName=Q;if(s===u||u.$$isolateScope)b=Ba(b,{isolateScope:!0});k.push(b)}}function p(a,e,f,g,l){function m(a,b,c,d){var e;bb(a)||
(d=c,c=b,b=a,a=void 0);N&&(e=P);c||(c=N?Q.parent():Q);if(d){var f=l.$$slots[d];if(f)return f(a,b,e,c,R);if(A(f))throw $("noslot",d,Aa(Q));}else return l(a,b,e,c,R)}var n,u,L,y,G,P,M,Q;b===f?(g=d,Q=d.$$element):(Q=x(f),g=new w(Q,d));G=e;s?y=e.$new(!0):t&&(G=e.$parent);l&&(M=m,M.$$boundTransclude=l,M.isSlotFilled=function(a){return!!l.$$slots[a]});J&&(P=ea(Q,g,M,J,y,e,s));s&&(da.$$addScopeInfo(Q,y,!0,!(v&&(v===s||v===s.$$originalDirective))),da.$$addScopeClass(Q,!0),y.$$isolateBindings=s.$$isolateBindings,
u=Da(e,g,y,y.$$isolateBindings,s),u.removeWatches&&y.$on("$destroy",u.removeWatches));for(n in P){u=J[n];L=P[n];var Hg=u.$$bindings.bindToController;L.instance=L();Q.data("$"+u.name+"Controller",L.instance);L.bindingInfo=Da(G,g,L.instance,Hg,u)}r(J,function(a,b){var c=a.require;a.bindToController&&!H(c)&&D(c)&&S(P[b].instance,X(b,c,Q,P))});r(P,function(a){var b=a.instance;if(B(b.$onChanges))try{b.$onChanges(a.bindingInfo.initialChanges)}catch(d){c(d)}if(B(b.$onInit))try{b.$onInit()}catch(e){c(e)}B(b.$doCheck)&&
(G.$watch(function(){b.$doCheck()}),b.$doCheck());B(b.$onDestroy)&&G.$on("$destroy",function(){b.$onDestroy()})});n=0;for(u=h.length;n<u;n++)L=h[n],Ca(L,L.isolateScope?y:e,Q,g,L.require&&X(L.directiveName,L.require,Q,P),M);var R=e;s&&(s.template||null===s.templateUrl)&&(R=y);a&&a(R,f.childNodes,void 0,l);for(n=k.length-1;0<=n;n--)L=k[n],Ca(L,L.isolateScope?y:e,Q,g,L.require&&X(L.directiveName,L.require,Q,P),M);r(P,function(a){a=a.instance;B(a.$postLink)&&a.$postLink()})}l=l||{};for(var n=-Number.MAX_VALUE,
t=l.newScopeDirective,J=l.controllerDirectives,s=l.newIsolateScopeDirective,v=l.templateDirective,L=l.nonTlbTranscludeDirective,G=!1,P=!1,N=l.hasElementTranscludeDirective,y=d.$$element=x(b),u,Q,M,R=e,q,ma=!1,Jb=!1,O,sa=0,C=a.length;sa<C;sa++){u=a[sa];var E=u.$$start,jb=u.$$end;E&&(y=U(b,E,jb));M=void 0;if(n>u.priority)break;if(O=u.scope)u.templateUrl||(D(O)?(ba("new/isolated scope",s||t,u,y),s=u):ba("new/isolated scope",s,u,y)),t=t||u;Q=u.name;if(!ma&&(u.replace&&(u.templateUrl||u.template)||u.transclude&&
!u.$$tlb)){for(O=sa+1;ma=a[O++];)if(ma.transclude&&!ma.$$tlb||ma.replace&&(ma.templateUrl||ma.template)){Jb=!0;break}ma=!0}!u.templateUrl&&u.controller&&(J=J||T(),ba("'"+Q+"' controller",J[Q],u,y),J[Q]=u);if(O=u.transclude)if(G=!0,u.$$tlb||(ba("transclusion",L,u,y),L=u),"element"===O)N=!0,n=u.priority,M=y,y=d.$$element=x(da.$$createComment(Q,d[Q])),b=y[0],oa(f,Ha.call(M,0),b),R=Z(Jb,M,e,n,g&&g.name,{nonTlbTranscludeDirective:L});else{var ka=T();if(D(O)){M=z.document.createDocumentFragment();var Xa=
T(),F=T();r(O,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Xa[a]=b;ka[b]=null;F[b]=c});r(y.contents(),function(a){var b=Xa[xa(ua(a))];b?(F[b]=!0,ka[b]=ka[b]||z.document.createDocumentFragment(),ka[b].appendChild(a)):M.appendChild(a)});r(F,function(a,b){if(!a)throw $("reqslot",b);});for(var K in ka)ka[K]&&(R=x(ka[K].childNodes),ka[K]=Z(Jb,R,e));M=x(M.childNodes)}else M=x(qc(b)).contents();y.empty();R=Z(Jb,M,e,void 0,void 0,{needsNewScope:u.$$isolateScope||u.$$newScope});R.$$slots=ka}if(u.template)if(P=
!0,ba("template",v,u,y),v=u,O=B(u.template)?u.template(y,d):u.template,O=Na(O),u.replace){g=u;M=nc.test(O)?td(ja(u.templateNamespace,V(O))):[];b=M[0];if(1!==M.length||1!==b.nodeType)throw $("tplrt",Q,"");oa(f,y,b);C={$attr:{}};O=tc(b,[],C);var Ig=a.splice(sa+1,a.length-(sa+1));(s||t)&&fa(O,s,t);a=a.concat(O).concat(Ig);ga(d,C);C=a.length}else y.html(O);if(u.templateUrl)P=!0,ba("template",v,u,y),v=u,u.replace&&(g=u),p=ha(a.splice(sa,a.length-sa),y,d,f,G&&R,h,k,{controllerDirectives:J,newScopeDirective:t!==
u&&t,newIsolateScopeDirective:s,templateDirective:v,nonTlbTranscludeDirective:L}),C=a.length;else if(u.compile)try{q=u.compile(y,d,R);var Y=u.$$originalDirective||u;B(q)?m(null,Va(Y,q),E,jb):q&&m(Va(Y,q.pre),Va(Y,q.post),E,jb)}catch(ca){c(ca,Aa(y))}u.terminal&&(p.terminal=!0,n=Math.max(n,u.priority))}p.scope=t&&!0===t.scope;p.transcludeOnThisElement=G;p.templateOnThisElement=P;p.transclude=R;l.hasElementTranscludeDirective=N;return p}function X(a,b,c,d){var e;if(C(b)){var f=b.match(l);b=b.substring(f[0].length);
var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e="^^"===g&&c[0]&&9===c[0].nodeType?null:g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw $("ctreq",b,a);}else if(H(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=X(a,b[g],c,d);else D(b)&&(e={},r(b,function(b,f){e[f]=X(a,b,c,d)}));return e||null}function ea(a,b,c,d,e,f,g){var h=T(),k;for(k in d){var l=d[k],m={$scope:l===g||l.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},p=l.controller;"@"===
p&&(p=b[l.name]);m=M(p,m,!0,l.controllerAs);h[l.name]=m;a.data("$"+l.name+"Controller",m.instance)}return h}function fa(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=bc(a[d],{$$isolateScope:b,$$newScope:c})}function Y(b,c,e,g,h,k,l){if(c===h)return null;var m=null;if(f.hasOwnProperty(c)){h=a.get(c+"Directive");for(var p=0,n=h.length;p<n;p++)if(c=h[p],(A(g)||g>c.priority)&&-1!==c.restrict.indexOf(e)){k&&(c=bc(c,{$$start:k,$$end:l}));if(!c.$$bindings){var I=m=c,t=c.name,u={isolateScope:null,bindToController:null};
D(I.scope)&&(!0===I.bindToController?(u.bindToController=d(I.scope,t,!0),u.isolateScope={}):u.isolateScope=d(I.scope,t,!1));D(I.bindToController)&&(u.bindToController=d(I.bindToController,t,!0));if(u.bindToController&&!I.controller)throw $("noctrl",t);m=m.$$bindings=u;D(m.isolateScope)&&(c.$$isolateBindings=m.isolateScope)}b.push(c);m=c}}return m}function ca(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d<e;d++)if(b=c[d],b.multiElement)return!0;return!1}function ga(a,b){var c=
b.$attr,d=a.$attr;r(a,function(d,e){"$"!==e.charAt(0)&&(b[e]&&b[e]!==d&&(d=d.length?d+(("style"===e?";":" ")+b[e]):b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,e){a.hasOwnProperty(e)||"$"===e.charAt(0)||(a[e]=b,"class"!==e&&"style"!==e&&(d[e]=c[e]))})}function ha(a,b,d,f,g,h,k,l){var m=[],p,n,t=b[0],u=a.shift(),J=bc(u,{templateUrl:null,transclude:null,replace:null,$$originalDirective:u}),s=B(u.templateUrl)?u.templateUrl(b,d):u.templateUrl,L=u.templateNamespace;b.empty();e(s).then(function(c){var e,
I;c=Na(c);if(u.replace){c=nc.test(c)?td(ja(L,V(c))):[];e=c[0];if(1!==c.length||1!==e.nodeType)throw $("tplrt",u.name,s);c={$attr:{}};oa(f,b,e);var v=tc(e,[],c);D(u.scope)&&fa(v,!0);a=v.concat(a);ga(d,c)}else e=t,b.html(c);a.unshift(J);p=aa(a,e,d,g,b,u,h,k,l);r(f,function(a,c){a===e&&(f[c]=b[0])});for(n=Xa(b[0].childNodes,g);m.length;){c=m.shift();I=m.shift();var y=m.shift(),P=m.shift(),v=b[0];if(!c.$$destroyed){if(I!==t){var G=I.className;l.hasElementTranscludeDirective&&u.replace||(v=qc(e));oa(y,
x(I),v);sa(x(v),G)}I=p.transcludeOnThisElement?ka(c,p.transclude,P):P;p(n,c,v,f,I)}}m=null}).catch(function(a){dc(a)&&c(a)});return function(a,b,c,d,e){a=e;b.$$destroyed||(m?m.push(b,c,d,a):(p.transcludeOnThisElement&&(a=ka(b,p.transclude,e)),p(n,b,c,d,a)))}}function ia(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function ba(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw $("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),
a,Aa(d));}function na(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&da.$$addBindingClass(a);return function(a,c){var e=c.parent();b||da.$$addBindingClass(e);da.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function ja(a,b){a=K(a||"html");switch(a){case "svg":case "math":var c=z.document.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function qa(a,b){if("srcdoc"===
b)return u.HTML;if("src"===b||"ngSrc"===b)return-1===["img","video","audio","source","track"].indexOf(a)?u.RESOURCE_URL:u.MEDIA_URL;if("xlinkHref"===b)return"image"===a?u.MEDIA_URL:"a"===a?u.URL:u.RESOURCE_URL;if("form"===a&&"action"===b||"base"===a&&"href"===b||"link"===a&&"href"===b)return u.RESOURCE_URL;if("a"===a&&("href"===b||"ngHref"===b))return u.URL}function ya(a,b){var c=b.toLowerCase();return v[a+"|"+c]||v["*|"+c]}function za(a){return ma(u.valueOf(a),"ng-prop-srcset")}function Ea(a,b,c,
d){if(m.test(d))throw $("nodomevents");a=ua(a);var e=ya(a,d),f=Ta;"srcset"!==d||"img"!==a&&"source"!==a?e&&(f=u.getTrusted.bind(u,e)):f=za;b.push({priority:100,compile:function(a,b){var e=p(b[c]),g=p(b[c],function(a){return u.valueOf(a)});return{pre:function(a,b){function c(){var g=e(a);b[0][d]=f(g)}c();a.$watch(g,c)}}}})}function Ia(a,c,d,e,f){var g=ua(a),k=qa(g,e),l=h[e]||f,p=b(d,!f,k,l);if(p){if("multiple"===e&&"select"===g)throw $("selmulti",Aa(a));if(m.test(e))throw $("nodomevents");c.push({priority:100,
compile:function(){return{pre:function(a,c,f){c=f.$$observers||(f.$$observers=T());var g=f[e];g!==d&&(p=g&&b(g,!0,k,l),d=g);p&&(f[e]=p(a),(c[e]||(c[e]=[])).$$inter=!0,(f.$$observers&&f.$$observers[e].$$scope||a).$watch(p,function(a,b){"class"===e&&a!==b?f.$updateClass(a,b):f.$set(e,a)}))}}}})}}function oa(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g<h;g++)if(a[g]===d){a[g++]=c;h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1;a.context===d&&
(a.context=c);break}f&&f.replaceChild(c,d);a=z.document.createDocumentFragment();for(g=0;g<e;g++)a.appendChild(b[g]);x.hasData(d)&&(x.data(c,x.data(d)),x(d).off("$destroy"));x.cleanData(a.querySelectorAll("*"));for(g=1;g<e;g++)delete b[g];b[0]=c;b.length=1}function Ba(a,b){return S(function(){return a.apply(null,arguments)},a,b)}function Ca(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,Aa(d))}}function ra(a,b){if(s)throw $("missingattr",a,b);}function Da(a,c,d,e,f){function g(b,c,e){B(d.$onChanges)&&
!ec(c,e)&&(Ua||(a.$$postDigest(q),Ua=[]),m||(m={},Ua.push(h)),m[b]&&(e=m[b].previousValue),m[b]=new Kb(e,c))}function h(){d.$onChanges(m);m=void 0}var k=[],l={},m;r(e,function(e,h){var m=e.attrName,n=e.optional,I,t,u,s;switch(e.mode){case "@":n||ta.call(c,m)||(ra(m,f.name),d[h]=c[m]=void 0);n=c.$observe(m,function(a){if(C(a)||Ga(a))g(h,a,d[h]),d[h]=a});c.$$observers[m].$$scope=a;I=c[m];C(I)?d[h]=b(I)(a):Ga(I)&&(d[h]=I);l[h]=new Kb(uc,d[h]);k.push(n);break;case "=":if(!ta.call(c,m)){if(n)break;ra(m,
f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);s=t.literal?va:ec;u=t.assign||function(){I=d[h]=t(a);throw $("nonassign",c[m],m,f.name);};I=d[h]=t(a);n=function(b){s(b,d[h])||(s(b,I)?u(a,b=d[h]):d[h]=b);return I=b};n.$stateful=!0;n=e.collection?a.$watchCollection(c[m],n):a.$watch(p(c[m],n),null,t.literal);k.push(n);break;case "<":if(!ta.call(c,m)){if(n)break;ra(m,f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);var v=t.literal,L=d[h]=t(a);l[h]=new Kb(uc,d[h]);n=a[e.collection?"$watchCollection":"$watch"](t,
function(a,b){if(b===a){if(b===L||v&&va(b,L))return;b=L}g(h,a,b);d[h]=a});k.push(n);break;case "&":n||ta.call(c,m)||ra(m,f.name);t=c.hasOwnProperty(m)?p(c[m]):E;if(t===E&&n)break;d[h]=function(b){return t(a,b)}}});return{initialChanges:l,removeWatches:k.length&&function(){for(var a=0,b=k.length;a<b;++a)k[a]()}}}var Ma=/^\w/,Fa=z.document.createElement("div"),Oa=t,Qa=N,Ja=G,Ua;w.prototype={$normalize:xa,$addClass:function(a){a&&0<a.length&&R.addClass(this.$$element,a)},$removeClass:function(a){a&&
0<a.length&&R.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=ud(a,b);c&&c.length&&R.addClass(this.$$element,c);(c=ud(b,a))&&c.length&&R.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=nd(this.$$element[0],a),g=vd[a],h=a;f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=Xc(a,"-"));"img"===ua(this.$$element)&&"srcset"===a&&(this[a]=b=ma(b,"$set('srcset', value)"));!1!==d&&(null===b||A(b)?this.$$element.removeAttr(e):
Ma.test(e)?f&&!1===b?this.$$element.removeAttr(e):this.$$element.attr(e,b):O(this.$$element[0],e,b));(a=this.$$observers)&&r(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=T()),e=d[a]||(d[a]=[]);e.push(b);L.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||A(c[a])||b(c[a])});return function(){cb(e,b)}}};var Ka=b.startSymbol(),La=b.endSymbol(),Na="{{"===Ka&&"}}"===La?Ta:function(a){return a.replace(/\{\{/g,Ka).replace(/}}/g,La)},Ra=
/^ng(Attr|Prop|On)([A-Z].*)$/,Sa=/^(.+)Start$/;da.$$addBindingInfo=n?function(a,b){var c=a.data("$binding")||[];H(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:E;da.$$addBindingClass=n?function(a){sa(a,"ng-binding")}:E;da.$$addScopeInfo=n?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:E;da.$$addScopeClass=n?function(a,b){sa(a,b?"ng-isolate-scope":"ng-scope")}:E;da.$$createComment=function(a,b){var c="";n&&(c=" "+(a||"")+": ",b&&(c+=b+" "));return z.document.createComment(c)};
return da}]}function Kb(a,b){this.previousValue=a;this.currentValue=b}function xa(a){return a.replace(rd,"").replace(Jg,function(a,d,c){return c?d.toUpperCase():d})}function ud(a,b){var d="",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],k=0;k<e.length;k++)if(g===e[k])continue a;d+=(0<d.length?" ":"")+g}return d}function td(a){a=x(a);var b=a.length;if(1>=b)return a;for(;b--;){var d=a[b];(8===d.nodeType||d.nodeType===Pa&&""===d.nodeValue.trim())&&Kg.call(a,b,1)}return a}
function Gg(a,b){if(b&&C(b))return b;if(C(a)){var d=wd.exec(a);if(d)return d[3]}}function Kf(){var a={};this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,d){Ja(b,"controller");D(b)?S(a,b):a[b]=d};this.$get=["$injector",function(b){function d(a,b,d,g){if(!a||!D(a.$scope))throw F("$controller")("noscp",g,b);a.$scope[b]=d}return function(c,e,f,g){var k,h,l;f=!0===f;g&&C(g)&&(l=g);if(C(c)){g=c.match(wd);if(!g)throw xd("ctrlfmt",c);h=g[1];l=l||g[3];c=a.hasOwnProperty(h)?a[h]:Le(e.$scope,
h,!0);if(!c)throw xd("ctrlreg",h);tb(c,h,!0)}if(f)return f=(H(c)?c[c.length-1]:c).prototype,k=Object.create(f||null),l&&d(e,l,k,h||c.name),S(function(){var a=b.invoke(c,k,e,h);a!==k&&(D(a)||B(a))&&(k=a,l&&d(e,l,k,h||c.name));return k},{instance:k,identifier:l});k=b.instantiate(c,e,h);l&&d(e,l,k,h||c.name);return k}}]}function Lf(){this.$get=["$window",function(a){return x(a.document)}]}function Mf(){this.$get=["$document","$rootScope",function(a,b){function d(){e=c.hidden}var c=a[0],e=c&&c.hidden;
a.on("visibilitychange",d);b.$on("$destroy",function(){a.off("visibilitychange",d)});return function(){return e}}]}function Nf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,arguments)}}]}function vc(a){return D(a)?ha(a)?a.toISOString():eb(a):a}function Tf(){this.$get=function(){return function(a){if(!a)return"";var b=[];Qc(a,function(a,c){null===a||A(a)||B(a)||(H(a)?r(a,function(a){b.push(ba(c)+"="+ba(vc(a)))}):b.push(ba(c)+"="+ba(vc(a))))});return b.join("&")}}}function Uf(){this.$get=
function(){return function(a){function b(a,e,f){H(a)?r(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!ha(a)?Qc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):(B(a)&&(a=a()),d.push(ba(e)+"="+(null==a?"":ba(vc(a)))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function wc(a,b){if(C(a)){var d=a.replace(Lg,"").trim();if(d){var c=b("Content-Type"),c=c&&0===c.indexOf(yd),e;(e=c)||(e=(e=d.match(Mg))&&Ng[e[0]].test(d));if(e)try{a=Tc(d)}catch(f){if(!c)return a;throw Lb("baddata",a,f);}}}return a}
function zd(a){var b=T(),d;C(a)?r(a.split("\n"),function(a){d=a.indexOf(":");var e=K(V(a.substr(0,d)));a=V(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&r(a,function(a,d){var f=K(d),g=V(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function Ad(a){var b;return function(d){b||(b=zd(a));return d?(d=b[K(d)],void 0===d&&(d=null),d):b}}function Bd(a,b,d,c){if(B(c))return c(a,b,d);r(c,function(c){a=c(a,b,d)});return a}function Sf(){var a=this.defaults={transformResponse:[wc],transformRequest:[function(a){return D(a)&&
"[object File]"!==la.call(a)&&"[object Blob]"!==la.call(a)&&"[object FormData]"!==la.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ja(xc),put:ja(xc),patch:ja(xc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=this.interceptors=[],c=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins",
{get:function(){return this.xsrfTrustedOrigins},set:function(a){this.xsrfTrustedOrigins=a}});this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(e,f,g,k,h,l,m,p){function n(b){function c(a,b){for(var d=0,e=b.length;d<e;){var f=b[d++],g=b[d++];a=a.then(f,g)}b.length=0;return a}function d(a,b){var c,e={};r(a,function(a,d){B(a)?(c=a(b),null!=c&&(e[d]=c)):e[d]=a});return e}function f(a){var b=S({},a);b.data=Bd(a.data,a.headers,a.status,g.transformResponse);
a=a.status;return 200<=a&&300>a?b:l.reject(b)}if(!D(b))throw F("$http")("badreq",b);if(!C(p.valueOf(b.url)))throw F("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer,jsonpCallbackParam:a.jsonpCallbackParam},b);g.headers=function(b){var c=a.headers,e=S({},b.headers),f,g,h,c=S({},c.common,c[K(b.method)]);a:for(f in c){g=K(f);for(h in e)if(K(h)===g)continue a;e[f]=c[f]}return d(e,ja(b))}(b);g.method=
vb(g.method);g.paramSerializer=C(g.paramSerializer)?m.get(g.paramSerializer):g.paramSerializer;e.$$incOutstandingRequestCount("$http");var h=[],k=[];b=l.resolve(g);r(v,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&k.push(a.response,a.responseError)});b=c(b,h);b=b.then(function(b){var c=b.headers,d=Bd(b.data,Ad(c),void 0,b.transformRequest);A(d)&&r(c,function(a,b){"content-type"===K(b)&&delete c[b]});A(b.withCredentials)&&!A(a.withCredentials)&&
(b.withCredentials=a.withCredentials);return s(b,d).then(f,f)});b=c(b,k);return b=b.finally(function(){e.$$completeOutstandingRequest(E,"$http")})}function s(c,d){function e(a){if(a){var c={};r(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function k(a,c,d,e,f){function g(){m(c,a,d,e,f)}R&&(200<=a&&300>a?R.put(O,[a,c,zd(d),e,f]):R.remove(O));b?h.$applyAsync(g):(g(),h.$$phase||h.$apply())}function m(a,b,d,e,f){b=-1<=b?b:0;(200<=b&&300>
b?L.resolve:L.reject)({data:a,status:b,headers:Ad(d),config:c,statusText:e,xhrStatus:f})}function s(a){m(a.data,a.status,ja(a.headers()),a.statusText,a.xhrStatus)}function v(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var L=l.defer(),u=L.promise,R,q,ma=c.headers,x="jsonp"===K(c.method),O=c.url;x?O=p.getTrustedResourceUrl(O):C(O)||(O=p.valueOf(O));O=G(O,c.paramSerializer(c.params));x&&(O=t(O,c.jsonpCallbackParam));n.pendingRequests.push(c);u.then(v,v);!c.cache&&!a.cache||
!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(R=D(c.cache)?c.cache:D(a.cache)?a.cache:N);R&&(q=R.get(O),w(q)?q&&B(q.then)?q.then(s,s):H(q)?m(q[1],q[0],ja(q[2]),q[3],q[4]):m(q,200,{},"OK","complete"):R.put(O,u));A(q)&&((q=kc(c.url)?g()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(ma[c.xsrfHeaderName||a.xsrfHeaderName]=q),f(c.method,O,d,k,ma,c.timeout,c.withCredentials,c.responseType,e(c.eventHandlers),e(c.uploadEventHandlers)));return u}function G(a,b){0<b.length&&(a+=(-1===a.indexOf("?")?
"?":"&")+b);return a}function t(a,b){var c=a.split("?");if(2<c.length)throw Lb("badjsonp",a);c=hc(c[1]);r(c,function(c,d){if("JSON_CALLBACK"===c)throw Lb("badjsonp",a);if(d===b)throw Lb("badjsonp",b,a);});return a+=(-1===a.indexOf("?")?"?":"&")+b+"=JSON_CALLBACK"}var N=k("$http");a.paramSerializer=C(a.paramSerializer)?m.get(a.paramSerializer):a.paramSerializer;var v=[];r(d,function(a){v.unshift(C(a)?m.get(a):m.invoke(a))});var kc=Og(c);n.pendingRequests=[];(function(a){r(arguments,function(a){n[a]=
function(b,c){return n(S({},c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){n[a]=function(b,c,d){return n(S({},d||{},{method:a,url:b,data:c}))}})})("post","put","patch");n.defaults=a;return n}]}function Wf(){this.$get=function(){return function(){return new z.XMLHttpRequest}}}function Vf(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(a,b,d,c){return Pg(a,c,a.defer,b,d[0])}]}function Pg(a,b,d,c,e){function f(a,b,d){a=a.replace("JSON_CALLBACK",
b);var f=e.createElement("script"),m=null;f.type="text/javascript";f.src=a;f.async=!0;m=function(a){f.removeEventListener("load",m);f.removeEventListener("error",m);e.body.removeChild(f);f=null;var g=-1,s="unknown";a&&("load"!==a.type||c.wasCalled(b)||(a={type:"error"}),s=a.type,g="error"===a.type?404:200);d&&d(g,s)};f.addEventListener("load",m);f.addEventListener("error",m);e.body.appendChild(f);return m}return function(e,k,h,l,m,p,n,s,G,t){function N(a){J="timeout"===a;pa&&pa();y&&y.abort()}function v(a,
b,c,e,f,g){w(P)&&d.cancel(P);pa=y=null;a(b,c,e,f,g)}k=k||a.url();if("jsonp"===K(e))var q=c.createCallback(k),pa=f(k,q,function(a,b){var d=200===a&&c.getResponse(q);v(l,a,d,"",b,"complete");c.removeCallback(q)});else{var y=b(e,k),J=!1;y.open(e,k,!0);r(m,function(a,b){w(a)&&y.setRequestHeader(b,a)});y.onload=function(){var a=y.statusText||"",b="response"in y?y.response:y.responseText,c=1223===y.status?204:y.status;0===c&&(c=b?200:"file"===ga(k).protocol?404:0);v(l,c,b,y.getAllResponseHeaders(),a,"complete")};
y.onerror=function(){v(l,-1,null,null,"","error")};y.ontimeout=function(){v(l,-1,null,null,"","timeout")};y.onabort=function(){v(l,-1,null,null,"",J?"timeout":"abort")};r(G,function(a,b){y.addEventListener(b,a)});r(t,function(a,b){y.upload.addEventListener(b,a)});n&&(y.withCredentials=!0);if(s)try{y.responseType=s}catch(I){if("json"!==s)throw I;}y.send(A(h)?null:h)}if(0<p)var P=d(function(){N("timeout")},p);else p&&B(p.then)&&p.then(function(){N(w(p.$$timeoutId)?"timeout":"abort")})}}function Pf(){var a=
"{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a};this.endSymbol=function(a){return a?(b=a,this):b};this.$get=["$parse","$exceptionHandler","$sce",function(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(p,a).replace(n,b)}function k(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}function h(f,h,n,p){function v(a){try{return a=n&&!r?e.getTrusted(n,a):e.valueOf(a),p&&!w(a)?a:jc(a)}catch(b){c(Ma.interr(f,b))}}var r=n===e.URL||n===e.MEDIA_URL;if(!f.length||
-1===f.indexOf(a)){if(h)return;h=g(f);r&&(h=e.getTrusted(n,h));h=ia(h);h.exp=f;h.expressions=[];h.$$watchDelegate=k;return h}p=!!p;for(var q,y,J=0,I=[],P,Q=f.length,M=[],L=[],u;J<Q;)if(-1!==(q=f.indexOf(a,J))&&-1!==(y=f.indexOf(b,q+l)))J!==q&&M.push(g(f.substring(J,q))),J=f.substring(q+l,y),I.push(J),J=y+m,L.push(M.length),M.push("");else{J!==Q&&M.push(g(f.substring(J)));break}u=1===M.length&&1===L.length;var R=r&&u?void 0:v;P=I.map(function(a){return d(a,R)});if(!h||I.length){var x=function(a){for(var b=
0,c=I.length;b<c;b++){if(p&&A(a[b]))return;M[L[b]]=a[b]}if(r)return e.getTrusted(n,u?M[0]:M.join(""));n&&1<M.length&&Ma.throwNoconcat(f);return M.join("")};return S(function(a){var b=0,d=I.length,e=Array(d);try{for(;b<d;b++)e[b]=P[b](a);return x(e)}catch(g){c(Ma.interr(f,g))}},{exp:f,expressions:I,$$watchDelegate:function(a,b){var c;return a.$watchGroup(P,function(d,e){var f=x(d);b.call(this,f,d!==e?c:f,a);c=f})}})}}var l=a.length,m=b.length,p=new RegExp(a.replace(/./g,f),"g"),n=new RegExp(b.replace(/./g,
f),"g");h.startSymbol=function(){return a};h.endSymbol=function(){return b};return h}]}function Qf(){this.$get=["$$intervalFactory","$window",function(a,b){var d={},c=function(a){b.clearInterval(a);delete d[a]},e=a(function(a,c,e){a=b.setInterval(a,c);d[a]=e;return a},c);e.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$intervalId"))throw Qg("badprom");if(!d.hasOwnProperty(a.$$intervalId))return!1;a=a.$$intervalId;var b=d[a],e=b.promise;e.$$state&&(e.$$state.pur=!0);b.reject("canceled");
c(a);return!0};return e}]}function Rf(){this.$get=["$browser","$q","$$q","$rootScope",function(a,b,d,c){return function(e,f){return function(g,k,h,l){function m(){p?g.apply(null,n):g(s)}var p=4<arguments.length,n=p?Ha.call(arguments,4):[],s=0,G=w(l)&&!l,t=(G?d:b).defer(),r=t.promise;h=w(h)?h:0;r.$$intervalId=e(function(){G?a.defer(m):c.$evalAsync(m);t.notify(s++);0<h&&s>=h&&(t.resolve(s),f(r.$$intervalId));G||c.$apply()},k,t,G);return r}}}]}function Cd(a,b){var d=ga(a);b.$$protocol=d.protocol;b.$$host=
d.hostname;b.$$port=fa(d.port)||Rg[d.protocol]||null}function Dd(a,b,d){if(Sg.test(a))throw kb("badpath",a);var c="/"!==a.charAt(0);c&&(a="/"+a);a=ga(a);for(var c=(c&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname).split("/"),e=c.length;e--;)c[e]=decodeURIComponent(c[e]),d&&(c[e]=c[e].replace(/\//g,"%2F"));d=c.join("/");b.$$path=d;b.$$search=hc(a.search);b.$$hash=decodeURIComponent(a.hash);b.$$path&&"/"!==b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function yc(a,b){return a.slice(0,
b.length)===b}function ya(a,b){if(yc(b,a))return b.substr(a.length)}function Da(a){var b=a.indexOf("#");return-1===b?a:a.substr(0,b)}function zc(a,b,d){this.$$html5=!0;d=d||"";Cd(a,this);this.$$parse=function(a){var d=ya(b,a);if(!C(d))throw kb("ipthprfx",a,b);Dd(d,this,!0);this.$$path||(this.$$path="/");this.$$compose()};this.$$normalizeUrl=function(a){return b+a.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;w(f=ya(a,c))?(g=f,g=d&&w(f=ya(d,f))?
b+(ya("/",f)||f):a+g):w(f=ya(b,c))?g=b+f:b===c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function Ac(a,b,d){Cd(a,this);this.$$parse=function(c){var e=ya(a,c)||ya(b,c),f;A(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",A(e)&&(a=c,this.replace())):(f=ya(d,e),A(f)&&(f=e));Dd(f,this,!1);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;yc(f,e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$normalizeUrl=function(b){return a+(b?d+b:"")};this.$$parseLinkUrl=function(b,
d){return Da(a)===Da(b)?(this.$$parse(b),!0):!1}}function Ed(a,b,d){this.$$html5=!0;Ac.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a===Da(c)?f=c:(g=ya(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$normalizeUrl=function(b){return a+d+b}}function Mb(a){return function(){return this[a]}}function Fd(a,b){return function(d){if(A(d))return this[a];this[a]=b(d);this.$$compose();return this}}function Yf(){var a="!",
b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this):a};this.html5Mode=function(a){if(Ga(a))return b.enabled=a,this;if(D(a)){Ga(a.enabled)&&(b.enabled=a.enabled);Ga(a.requireBase)&&(b.requireBase=a.requireBase);if(Ga(a.rewriteLinks)||C(a.rewriteLinks))b.rewriteLinks=a.rewriteLinks;return this}return b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d,c,e,f,g){function k(a,b){return a===b||ga(a).href===ga(b).href}function h(a,
b,d){var e=m.url(),f=m.$$state;try{c.url(a,b,d),m.$$state=c.state()}catch(g){throw m.url(e),m.$$state=f,g;}}function l(a,b){d.$broadcast("$locationChangeSuccess",m.absUrl(),a,m.$$state,b)}var m,p;p=c.baseHref();var n=c.url(),s;if(b.enabled){if(!p&&b.requireBase)throw kb("nobase");s=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(p||"/");p=e.history?zc:Ed}else s=Da(n),p=Ac;var r=s.substr(0,Da(s).lastIndexOf("/")+1);m=new p(s,r,"#"+a);m.$$parseLinkUrl(n,n);m.$$state=c.state();var t=/^\s*(javascript|mailto):/i;
f.on("click",function(a){var e=b.rewriteLinks;if(e&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!==a.which&&2!==a.button){for(var g=x(a.target);"a"!==ua(g[0]);)if(g[0]===f[0]||!(g=g.parent())[0])return;if(!C(e)||!A(g.attr(e))){var e=g.prop("href"),h=g.attr("href")||g.attr("xlink:href");D(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=ga(e.animVal).href);t.test(e)||!e||g.attr("target")||a.isDefaultPrevented()||!m.$$parseLinkUrl(e,h)||(a.preventDefault(),m.absUrl()!==c.url()&&d.$apply())}}});m.absUrl()!==
n&&c.url(m.absUrl(),!0);var N=!0;c.onUrlChange(function(a,b){yc(a,r)?(d.$evalAsync(function(){var c=m.absUrl(),e=m.$$state,f;m.$$parse(a);m.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;m.absUrl()===a&&(f?(m.$$parse(c),m.$$state=e,h(c,!1,e)):(N=!1,l(c,e)))}),d.$$phase||d.$digest()):g.location.href=a});d.$watch(function(){if(N||m.$$urlUpdatedByLocation){m.$$urlUpdatedByLocation=!1;var a=c.url(),b=m.absUrl(),f=c.state(),g=m.$$replace,n=!k(a,b)||m.$$html5&&e.history&&f!==
m.$$state;if(N||n)N=!1,d.$evalAsync(function(){var b=m.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,m.$$state,f).defaultPrevented;m.absUrl()===b&&(c?(m.$$parse(a),m.$$state=f):(n&&h(b,g,f===m.$$state?null:m.$$state),l(a,f)))})}m.$$replace=!1});return m}]}function Zf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){dc(a)&&(a.stack&&f?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&
(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||E;return function(){var a=[];r(arguments,function(b){a.push(c(b))});return Function.prototype.apply.call(e,b,a)}}var f=wa||/\bEdge\//.test(d.navigator&&d.navigator.userAgent);return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Tg(a){return a+""}function Ug(a,b){return"undefined"!==typeof a?a:
b}function Gd(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function Vg(a,b){switch(a.type){case q.MemberExpression:if(a.computed)return!1;break;case q.UnaryExpression:return 1;case q.BinaryExpression:return"+"!==a.operator?1:!1;case q.CallExpression:return!1}return void 0===b?Hd:b}function Z(a,b,d){var c,e,f=a.isPure=Vg(a,d);switch(a.type){case q.Program:c=!0;r(a.body,function(a){Z(a.expression,b,f);c=c&&a.expression.constant});a.constant=c;break;case q.Literal:a.constant=!0;a.toWatch=
[];break;case q.UnaryExpression:Z(a.argument,b,f);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;break;case q.BinaryExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case q.LogicalExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case q.ConditionalExpression:Z(a.test,b,f);Z(a.alternate,b,f);Z(a.consequent,b,f);a.constant=a.test.constant&&
a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case q.Identifier:a.constant=!1;a.toWatch=[a];break;case q.MemberExpression:Z(a.object,b,f);a.computed&&Z(a.property,b,f);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=a.constant?[]:[a];break;case q.CallExpression:c=d=a.filter?!b(a.callee.name).$stateful:!1;e=[];r(a.arguments,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=d?e:[a];break;case q.AssignmentExpression:Z(a.left,
b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=[a];break;case q.ArrayExpression:c=!0;e=[];r(a.elements,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=e;break;case q.ObjectExpression:c=!0;e=[];r(a.properties,function(a){Z(a.value,b,f);c=c&&a.value.constant;e.push.apply(e,a.value.toWatch);a.computed&&(Z(a.key,b,!1),c=c&&a.key.constant,e.push.apply(e,a.key.toWatch))});a.constant=c;a.toWatch=e;break;case q.ThisExpression:a.constant=
!1;a.toWatch=[];break;case q.LocalsExpression:a.constant=!1,a.toWatch=[]}}function Id(a){if(1===a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function Jd(a){return a.type===q.Identifier||a.type===q.MemberExpression}function Kd(a){if(1===a.body.length&&Jd(a.body[0].expression))return{type:q.AssignmentExpression,left:a.body[0].expression,right:{type:q.NGValueParameter},operator:"="}}function Ld(a){this.$filter=a}function Md(a){this.$filter=a}function Nb(a,b,d){this.ast=
new q(a,d);this.astCompiler=d.csp?new Md(b):new Ld(b)}function Bc(a){return B(a.valueOf)?a.valueOf():Wg.call(a)}function $f(){var a=T(),b={"true":!0,"false":!1,"null":null,undefined:void 0},d,c;this.addLiteral=function(a,c){b[a]=c};this.setIdentifierFns=function(a,b){d=a;c=b;return this};this.$get=["$filter",function(e){function f(b,c){var d,f;switch(typeof b){case "string":return f=b=b.trim(),d=a[f],d||(d=new Ob(G),d=(new Nb(d,e,G)).parse(b),a[f]=p(d)),s(d,c);case "function":return s(b,c);default:return s(E,
c)}}function g(a,b,c){return null==a||null==b?a===b:"object"!==typeof a||(a=Bc(a),"object"!==typeof a||c)?a===b||a!==a&&b!==b:!1}function k(a,b,c,d,e){var f=d.inputs,h;if(1===f.length){var k=g,f=f[0];return a.$watch(function(a){var b=f(a);g(b,k,f.isPure)||(h=d(a,void 0,void 0,[b]),k=b&&Bc(b));return h},b,c,e)}for(var l=[],m=[],n=0,p=f.length;n<p;n++)l[n]=g,m[n]=null;return a.$watch(function(a){for(var b=!1,c=0,e=f.length;c<e;c++){var k=f[c](a);if(b||(b=!g(k,l[c],f[c].isPure)))m[c]=k,l[c]=k&&Bc(k)}b&&
(h=d(a,void 0,void 0,m));return h},b,c,e)}function h(a,b,c,d,e){function f(){h(m)&&k()}function g(a,b,c,d){m=u&&d?d[0]:n(a,b,c,d);h(m)&&a.$$postDigest(f);return s(m)}var h=d.literal?l:w,k,m,n=d.$$intercepted||d,s=d.$$interceptor||Ta,u=d.inputs&&!n.inputs;g.literal=d.literal;g.constant=d.constant;g.inputs=d.inputs;p(g);return k=a.$watch(g,b,c,e)}function l(a){var b=!0;r(a,function(a){w(a)||(b=!1)});return b}function m(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}function p(a){a.constant?
a.$$watchDelegate=m:a.oneTime?a.$$watchDelegate=h:a.inputs&&(a.$$watchDelegate=k);return a}function n(a,b){function c(d){return b(a(d))}c.$stateful=a.$stateful||b.$stateful;c.$$pure=a.$$pure&&b.$$pure;return c}function s(a,b){if(!b)return a;a.$$interceptor&&(b=n(a.$$interceptor,b),a=a.$$intercepted);var c=!1,d=function(d,e,f,g){d=c&&g?g[0]:a(d,e,f,g);return b(d)};d.$$intercepted=a;d.$$interceptor=b;d.literal=a.literal;d.oneTime=a.oneTime;d.constant=a.constant;b.$stateful||(c=!a.inputs,d.inputs=a.inputs?
a.inputs:[a],b.$$pure||(d.inputs=d.inputs.map(function(a){return a.isPure===Hd?function(b){return a(b)}:a})));return p(d)}var G={csp:Ba().noUnsafeEval,literals:Ia(b),isIdentifierStart:B(d)&&d,isIdentifierContinue:B(c)&&c};f.$$getAst=function(a){var b=new Ob(G);return(new Nb(b,e,G)).getAst(a).ast};return f}]}function bg(){var a=!0;this.$get=["$rootScope","$exceptionHandler",function(b,d){return Nd(function(a){b.$evalAsync(a)},d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):
a}}function cg(){var a=!0;this.$get=["$browser","$exceptionHandler",function(b,d){return Nd(function(a){b.defer(a)},d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):a}}function Nd(a,b,d){function c(){return new e}function e(){var a=this.promise=new f;this.resolve=function(b){h(a,b)};this.reject=function(b){m(a,b)};this.notify=function(b){n(a,b)}}function f(){this.$$state={status:0}}function g(){for(;!w&&x.length;){var a=x.shift();if(!a.pur){a.pur=!0;var c=a.value,c="Possibly unhandled rejection: "+
("function"===typeof c?c.toString().replace(/ \{[\s\S]*$/,""):A(c)?"undefined":"string"!==typeof c?Ne(c,void 0):c);dc(a.value)?b(a.value,c):b(c)}}}function k(c){!d||c.pending||2!==c.status||c.pur||(0===w&&0===x.length&&a(g),x.push(c));!c.processScheduled&&c.pending&&(c.processScheduled=!0,++w,a(function(){var e,f,k;k=c.pending;c.processScheduled=!1;c.pending=void 0;try{for(var l=0,n=k.length;l<n;++l){c.pur=!0;f=k[l][0];e=k[l][c.status];try{B(e)?h(f,e(c.value)):1===c.status?h(f,c.value):m(f,c.value)}catch(p){m(f,
p),p&&!0===p.$$passToExceptionHandler&&b(p)}}}finally{--w,d&&0===w&&a(g)}}))}function h(a,b){a.$$state.status||(b===a?p(a,v("qcycle",b)):l(a,b))}function l(a,b){function c(b){g||(g=!0,l(a,b))}function d(b){g||(g=!0,p(a,b))}function e(b){n(a,b)}var f,g=!1;try{if(D(b)||B(b))f=b.then;B(f)?(a.$$state.status=-1,f.call(b,c,d,e)):(a.$$state.value=b,a.$$state.status=1,k(a.$$state))}catch(h){d(h)}}function m(a,b){a.$$state.status||p(a,b)}function p(a,b){a.$$state.value=b;a.$$state.status=2;k(a.$$state)}function n(c,
d){var e=c.$$state.pending;0>=c.$$state.status&&e&&e.length&&a(function(){for(var a,c,f=0,g=e.length;f<g;f++){c=e[f][0];a=e[f][3];try{n(c,B(a)?a(d):d)}catch(h){b(h)}}})}function s(a){var b=new f;m(b,a);return b}function G(a,b,c){var d=null;try{B(c)&&(d=c())}catch(e){return s(e)}return d&&B(d.then)?d.then(function(){return b(a)},s):b(a)}function t(a,b,c,d){var e=new f;h(e,a);return e.then(b,c,d)}function q(a){if(!B(a))throw v("norslvr",a);var b=new f;a(function(a){h(b,a)},function(a){m(b,a)});return b}
var v=F("$q",TypeError),w=0,x=[];S(f.prototype,{then:function(a,b,c){if(A(a)&&A(b)&&A(c))return this;var d=new f;this.$$state.pending=this.$$state.pending||[];this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&k(this.$$state);return d},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return G(b,y,a)},function(b){return G(b,s,a)},b)}});var y=t;q.prototype=f.prototype;q.defer=c;q.reject=s;q.when=t;q.resolve=y;q.all=function(a){var b=new f,c=
0,d=H(a)?[]:{};r(a,function(a,e){c++;t(a).then(function(a){d[e]=a;--c||h(b,d)},function(a){m(b,a)})});0===c&&h(b,d);return b};q.race=function(a){var b=c();r(a,function(a){t(a).then(b.resolve,b.reject)});return b.promise};return q}function mg(){this.$get=["$window","$timeout",function(a,b){var d=a.requestAnimationFrame||a.webkitRequestAnimationFrame,c=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.webkitCancelRequestAnimationFrame,e=!!d,f=e?function(a){var b=d(a);return function(){c(b)}}:
function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};f.supported=e;return f}]}function ag(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=++qb;this.$$ChildScope=null;this.$$suspended=!1}b.prototype=a;return b}var b=10,d=F("$rootScope"),c=null,e=null;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$exceptionHandler","$parse","$browser",
function(f,g,k){function h(a){a.currentScope.$$destroyed=!0}function l(a){9===wa&&(a.$$childHead&&l(a.$$childHead),a.$$nextSibling&&l(a.$$nextSibling));a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function m(){this.$id=++qb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this.$root=this;this.$$suspended=this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=
0;this.$$isolateBindings=null}function p(a){if(v.$$phase)throw d("inprog",v.$$phase);v.$$phase=a}function n(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function s(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function G(){}function t(){for(;y.length;)try{y.shift()()}catch(a){f(a)}e=null}function q(){null===e&&(e=k.defer(function(){v.$apply(t)},null,"$applyAsync"))}m.prototype={constructor:m,$new:function(b,c){var d;c=c||this;b?(d=new m,
d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(b||c!==this)&&d.$on("$destroy",h);return d},$watch:function(a,b,d,e){var f=g(a);b=B(b)?b:E;if(f.$$watchDelegate)return f.$$watchDelegate(this,b,d,f,a);var h=this,k=h.$$watchers,l={fn:b,last:G,get:f,exp:e||a,eq:!!d};c=null;k||(k=h.$$watchers=[],k.$$digestWatchIndex=-1);k.unshift(l);
k.$$digestWatchIndex++;n(this,1);return function(){var a=cb(k,l);0<=a&&(n(h,-1),a<k.$$digestWatchIndex&&k.$$digestWatchIndex--);c=null}},$watchGroup:function(a,b){function c(){h=!1;try{k?(k=!1,b(e,e,g)):b(e,d,g)}finally{for(var f=0;f<a.length;f++)d[f]=e[f]}}var d=Array(a.length),e=Array(a.length),f=[],g=this,h=!1,k=!0;if(!a.length){var l=!0;g.$evalAsync(function(){l&&b(e,e,g)});return function(){l=!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});r(a,function(a,
b){var d=g.$watch(a,function(a){e[b]=a;h||(h=!0,g.$evalAsync(c))});f.push(d)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=a;var b,d,g,h;if(!A(e)){if(D(e))if(za(e))for(f!==n&&(f=n,t=f.length=0,l++),a=e.length,t!==a&&(l++,f.length=t=a),b=0;b<a;b++)h=f[b],g=e[b],d=h!==h&&g!==g,d||h===g||(l++,f[b]=g);else{f!==p&&(f=p={},t=0,l++);a=0;for(b in e)ta.call(e,b)&&(a++,g=e[b],h=f[b],b in f?(d=h!==h&&g!==g,d||h===g||(l++,f[b]=g)):(t++,f[b]=g,l++));if(t>a)for(b in l++,
f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$$pure=g(a).literal;c.$stateful=!c.$$pure;var d=this,e,f,h,k=1<b.length,l=0,m=g(a,c),n=[],p={},s=!0,t=0;return this.$watch(m,function(){s?(s=!1,b(e,e,d)):b(e,h,d);if(k)if(D(e))if(za(e)){h=Array(e.length);for(var a=0;a<e.length;a++)h[a]=e[a]}else for(a in h={},e)ta.call(e,a)&&(h[a]=e[a]);else h=e})},$digest:function(){var a,g,h,l,m,n,s,r=b,q,y=w.length?v:this,N=[],A,z;p("$digest");k.$$checkUrlChange();this===v&&null!==e&&(k.defer.cancel(e),
t());c=null;do{s=!1;q=y;for(n=0;n<w.length;n++){try{z=w[n],l=z.fn,l(z.scope,z.locals)}catch(C){f(C)}c=null}w.length=0;a:do{if(n=!q.$$suspended&&q.$$watchers)for(n.$$digestWatchIndex=n.length;n.$$digestWatchIndex--;)try{if(a=n[n.$$digestWatchIndex])if(m=a.get,(g=m(q))!==(h=a.last)&&!(a.eq?va(g,h):Y(g)&&Y(h)))s=!0,c=a,a.last=a.eq?Ia(g,null):g,l=a.fn,l(g,h===G?g:h,q),5>r&&(A=4-r,N[A]||(N[A]=[]),N[A].push({msg:B(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:h}));else if(a===c){s=
!1;break a}}catch(E){f(E)}if(!(n=!q.$$suspended&&q.$$watchersCount&&q.$$childHead||q!==y&&q.$$nextSibling))for(;q!==y&&!(n=q.$$nextSibling);)q=q.$parent}while(q=n);if((s||w.length)&&!r--)throw v.$$phase=null,d("infdig",b,N);}while(s||w.length);for(v.$$phase=null;J<x.length;)try{x[J++]()}catch(D){f(D)}x.length=J=0;k.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var a=
this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===v&&k.$$applicationDestroyed();n(this,-this.$$watchersCount);for(var b in this.$$listenerCount)s(this,this.$$listenerCount[b],b);a&&a.$$childHead===this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail===this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=
this.$evalAsync=this.$applyAsync=E;this.$on=this.$watch=this.$watchGroup=function(){return E};this.$$listeners={};this.$$nextSibling=null;l(this)}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){v.$$phase||w.length||k.defer(function(){w.length&&v.$digest()},null,"$evalAsync");w.push({scope:this,fn:g(a),locals:b})},$$postDigest:function(a){x.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{v.$$phase=null}}catch(b){f(b)}finally{try{v.$digest()}catch(c){throw f(c),
c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&y.push(b);a=g(a);q()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(delete c[d],s(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=
!0},defaultPrevented:!1},k=db([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(m=d.length;l<m;l++)if(d[l])try{d[l].apply(null,k)}catch(n){f(n)}else d.splice(l,1),l--,m--;if(g)break;e=e.$parent}while(e);h.currentScope=null;return h},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var g=db([e],arguments,1),h,k;c=d;){e.currentScope=c;d=c.$$listeners[a]||
[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,g)}catch(l){f(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var v=new m,w=v.$$asyncQueue=[],x=v.$$postDigestQueue=[],y=v.$$applyAsyncQueue=[],J=0;return v}]}function Qe(){var a=/^\s*(https?|s?ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationTrustedUrlList=function(b){return w(b)?
(a=b,this):a};this.imgSrcSanitizationTrustedUrlList=function(a){return w(a)?(b=a,this):b};this.$get=function(){return function(d,c){var e=c?b:a,f=ga(d&&d.trim()).href;return""===f||f.match(e)?d:"unsafe:"+f}}}function Xg(a){if("self"===a)return a;if(C(a)){if(-1<a.indexOf("***"))throw Ea("iwcard",a);a=Od(a).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*");return new RegExp("^"+a+"$")}if(ab(a))return new RegExp("^"+a.source+"$");throw Ea("imatcher");}function Pd(a){var b=[];w(a)&&r(a,function(a){b.push(Xg(a))});
return b}function eg(){this.SCE_CONTEXTS=W;var a=["self"],b=[];this.trustedResourceUrlList=function(b){arguments.length&&(a=Pd(b));return a};Object.defineProperty(this,"resourceUrlWhitelist",{get:function(){return this.trustedResourceUrlList},set:function(a){this.trustedResourceUrlList=a}});this.bannedResourceUrlList=function(a){arguments.length&&(b=Pd(a));return b};Object.defineProperty(this,"resourceUrlBlacklist",{get:function(){return this.bannedResourceUrlList},set:function(a){this.bannedResourceUrlList=
a}});this.$get=["$injector","$$sanitizeUri",function(d,c){function e(a,b){var c;"self"===a?(c=Cc(b,Qd))||(z.document.baseURI?c=z.document.baseURI:(Na||(Na=z.document.createElement("a"),Na.href=".",Na=Na.cloneNode(!1)),c=Na.href),c=Cc(b,c)):c=!!a.exec(b.href);return c}function f(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};
return b}var g=function(a){throw Ea("unsafe");};d.has("$sanitize")&&(g=d.get("$sanitize"));var k=f(),h={};h[W.HTML]=f(k);h[W.CSS]=f(k);h[W.MEDIA_URL]=f(k);h[W.URL]=f(h[W.MEDIA_URL]);h[W.JS]=f(k);h[W.RESOURCE_URL]=f(h[W.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw Ea("icontext",a,b);if(null===b||A(b)||""===b)return b;if("string"!==typeof b)throw Ea("itype",a);return new c(b)},getTrusted:function(d,f){if(null===f||A(f)||""===f)return f;var k=h.hasOwnProperty(d)?
h[d]:null;if(k&&f instanceof k)return f.$$unwrapTrustedValue();B(f.$$unwrapTrustedValue)&&(f=f.$$unwrapTrustedValue());if(d===W.MEDIA_URL||d===W.URL)return c(f.toString(),d===W.MEDIA_URL);if(d===W.RESOURCE_URL){var k=ga(f.toString()),n,s,r=!1;n=0;for(s=a.length;n<s;n++)if(e(a[n],k)){r=!0;break}if(r)for(n=0,s=b.length;n<s;n++)if(e(b[n],k)){r=!1;break}if(r)return f;throw Ea("insecurl",f.toString());}if(d===W.HTML)return g(f);throw Ea("unsafe");},valueOf:function(a){return a instanceof k?a.$$unwrapTrustedValue():
a}}}]}function dg(){var a=!0;this.enabled=function(b){arguments.length&&(a=!!b);return a};this.$get=["$parse","$sceDelegate",function(b,d){if(a&&8>wa)throw Ea("iequirks");var c=ja(W);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Ta);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;r(W,
function(a,b){var d=K(b);c[("parse_as_"+d).replace(Dc,xb)]=function(b){return e(a,b)};c[("get_trusted_"+d).replace(Dc,xb)]=function(b){return f(a,b)};c[("trust_as_"+d).replace(Dc,xb)]=function(b){return g(a,b)}});return c}]}function fg(){this.$get=["$window","$document",function(a,b){var d={},c=!((!a.nw||!a.nw.process)&&a.chrome&&(a.chrome.app&&a.chrome.app.runtime||!a.chrome.app&&a.chrome.runtime&&a.chrome.runtime.id))&&a.history&&a.history.pushState,e=fa((/android (\d+)/.exec(K((a.navigator||{}).userAgent))||
[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},k=g.body&&g.body.style,h=!1,l=!1;k&&(h=!!("transition"in k||"webkitTransition"in k),l=!!("animation"in k||"webkitAnimation"in k));return{history:!(!c||4>e||f),hasEvent:function(a){if("input"===a&&wa)return!1;if(A(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ba(),transitions:h,animations:l,android:e}}]}function gg(){this.$get=ia(function(a){return new Yg(a)})}function Yg(a){function b(){var a=e.pop();return a&&
a.cb}function d(a){for(var b=e.length-1;0<=b;--b){var c=e[b];if(c.type===a)return e.splice(b,1),c.cb}}var c={},e=[],f=this.ALL_TASKS_TYPE="$$all$$",g=this.DEFAULT_TASK_TYPE="$$default$$";this.completeTask=function(e,h){h=h||g;try{e()}finally{var l;l=h||g;c[l]&&(c[l]--,c[f]--);l=c[h];var m=c[f];if(!m||!l)for(l=m?d:b;m=l(h);)try{m()}catch(p){a.error(p)}}};this.incTaskCount=function(a){a=a||g;c[a]=(c[a]||0)+1;c[f]=(c[f]||0)+1};this.notifyWhenNoPendingTasks=function(a,b){b=b||f;c[b]?e.push({type:b,cb:a}):
a()}}function ig(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(b,d,c,e,f){function g(k,h){g.totalPendingRequests++;if(!C(k)||A(d.get(k)))k=f.getTrustedResourceUrl(k);var l=c.defaults&&c.defaults.transformResponse;H(l)?l=l.filter(function(a){return a!==wc}):l===wc&&(l=null);return c.get(k,S({cache:d,transformResponse:l},a)).finally(function(){g.totalPendingRequests--}).then(function(a){return d.put(k,a.data)},
function(a){h||(a=Zg("tpload",k,a.status,a.statusText),b(a));return e.reject(a)})}g.totalPendingRequests=0;return g}]}function jg(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var c=ca.element(a).data("$binding");c&&r(c,function(c){d?(new RegExp("(^|\\s)"+Od(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!==c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-",
"data-ng-","ng\\:"],k=0;k<g.length;++k){var h=a.querySelectorAll("["+g[k]+"model"+(d?"=":"*=")+'"'+b+'"]');if(h.length)return h}},getLocation:function(){return d.url()},setLocation:function(b){b!==d.url()&&(d.url(b),a.$digest())},whenStable:function(a){b.notifyWhenNoOutstandingRequests(a)}}}]}function kg(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(a,b,d,c,e){function f(f,h,l){B(f)||(l=h,h=f,f=E);var m=Ha.call(arguments,3),p=w(l)&&!l,n=(p?c:d).defer(),s=n.promise,r;
r=b.defer(function(){try{n.resolve(f.apply(null,m))}catch(b){n.reject(b),e(b)}finally{delete g[s.$$timeoutId]}p||a.$apply()},h,"$timeout");s.$$timeoutId=r;g[r]=n;return s}var g={};f.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$timeoutId"))throw $g("badprom");if(!g.hasOwnProperty(a.$$timeoutId))return!1;a=a.$$timeoutId;var c=g[a],d=c.promise;d.$$state&&(d.$$state.pur=!0);c.reject("canceled");delete g[a];return b.defer.cancel(a)};return f}]}function ga(a){if(!C(a))return a;wa&&(aa.setAttribute("href",
a),a=aa.href);aa.setAttribute("href",a);a=aa.hostname;!ah&&-1<a.indexOf(":")&&(a="["+a+"]");return{href:aa.href,protocol:aa.protocol?aa.protocol.replace(/:$/,""):"",host:aa.host,search:aa.search?aa.search.replace(/^\?/,""):"",hash:aa.hash?aa.hash.replace(/^#/,""):"",hostname:a,port:aa.port,pathname:"/"===aa.pathname.charAt(0)?aa.pathname:"/"+aa.pathname}}function Og(a){var b=[Qd].concat(a.map(ga));return function(a){a=ga(a);return b.some(Cc.bind(null,a))}}function Cc(a,b){a=ga(a);b=ga(b);return a.protocol===
b.protocol&&a.host===b.host}function lg(){this.$get=ia(z)}function Rd(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var d=a[0]||{},c={},e="";return function(){var a,g,k,h,l;try{a=d.cookie||""}catch(m){a=""}if(a!==e)for(e=a,a=e.split("; "),c={},k=0;k<a.length;k++)g=a[k],h=g.indexOf("="),0<h&&(l=b(g.substring(0,h)),A(c[l])&&(c[l]=b(g.substring(h+1))));return c}}function pg(){this.$get=Rd}function fd(a){function b(d,c){if(D(d)){var e={};r(d,function(a,c){e[c]=b(c,a)});return e}return a.factory(d+
"Filter",c)}this.register=b;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];b("currency",Sd);b("date",Td);b("filter",bh);b("json",ch);b("limitTo",dh);b("lowercase",eh);b("number",Ud);b("orderBy",Vd);b("uppercase",fh)}function bh(){return function(a,b,d,c){if(!za(a)){if(null==a)return a;throw F("filter")("notarray",a);}c=c||"$";var e;switch(Ec(b)){case "function":break;case "boolean":case "null":case "number":case "string":e=!0;case "object":b=gh(b,d,c,e);break;default:return a}return Array.prototype.filter.call(a,
b)}}function gh(a,b,d,c){var e=D(a)&&d in a;!0===b?b=va:B(b)||(b=function(a,b){if(A(a))return!1;if(null===a||null===b)return a===b;if(D(b)||D(a)&&!cc(a))return!1;a=K(""+a);b=K(""+b);return-1!==a.indexOf(b)});return function(f){return e&&!D(f)?Fa(f,a[d],b,d,!1):Fa(f,a,b,d,c)}}function Fa(a,b,d,c,e,f){var g=Ec(a),k=Ec(b);if("string"===k&&"!"===b.charAt(0))return!Fa(a,b.substring(1),d,c,e);if(H(a))return a.some(function(a){return Fa(a,b,d,c,e)});switch(g){case "object":var h;if(e){for(h in a)if(h.charAt&&
"$"!==h.charAt(0)&&Fa(a[h],b,d,c,!0))return!0;return f?!1:Fa(a,b,d,c,!1)}if("object"===k){for(h in b)if(f=b[h],!B(f)&&!A(f)&&(g=h===c,!Fa(g?a:a[h],f,d,c,g,g)))return!1;return!0}return d(a,b);case "function":return!1;default:return d(a,b)}}function Ec(a){return null===a?"null":typeof a}function Sd(a){var b=a.NUMBER_FORMATS;return function(a,c,e){A(c)&&(c=b.CURRENCY_SYM);A(e)&&(e=b.PATTERNS[1].maxFrac);var f=c?/\u00A4/g:/\s*\u00A4\s*/g;return null==a?a:Wd(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,e).replace(f,
c)}}function Ud(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Wd(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function hh(a){var b=0,d,c,e,f,g;-1<(c=a.indexOf(Xd))&&(a=a.replace(Xd,""));0<(e=a.search(/e/i))?(0>c&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)===Fc;e++);if(e===(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)===Fc;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Yd&&(d=d.splice(0,Yd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function ih(a,
b,d,c){var e=a.d,f=e.length-a.i;b=A(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0<d){e.splice(Math.max(a.i,d));for(var g=d;g<e.length;g++)e[g]=0}else for(f=Math.max(0,f),a.i=1,e.length=Math.max(1,d=b+1),e[0]=0,g=1;g<d;g++)e[g]=0;if(5<=c)if(0>d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;f<Math.max(0,b);f++)e.push(0);if(b=e.reduceRight(function(a,b,c,d){b+=a;d[c]=b%10;return Math.floor(b/10)},0))e.unshift(b),a.i++}function Wd(a,b,d,c,e){if(!C(a)&&!X(a)||isNaN(a))return"";
var f=!isFinite(a),g=!1,k=Math.abs(a)+"",h="";if(f)h="\u221e";else{g=hh(k);ih(g,e,b.minFrac,b.maxFrac);h=g.d;k=g.i;e=g.e;f=[];for(g=h.reduce(function(a,b){return a&&!b},!0);0>k;)h.unshift(0),k++;0<k?f=h.splice(k,h.length):(f=h,h=[0]);k=[];for(h.length>=b.lgSize&&k.unshift(h.splice(-b.lgSize,h.length).join(""));h.length>b.gSize;)k.unshift(h.splice(-b.gSize,h.length).join(""));h.length&&k.unshift(h.join(""));h=k.join(d);f.length&&(h+=c+f.join(""));e&&(h+="e+"+e)}return 0>a&&!g?b.negPre+h+b.negSuf:b.posPre+
h+b.posSuf}function Pb(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length<b;)a=Fc+a;d&&(a=a.substr(a.length-b));return e+a}function ea(a,b,d,c,e){d=d||0;return function(f){f=f["get"+a]();if(0<d||f>-d)f+=d;0===f&&-12===d&&(f=12);return Pb(f,b,c,e)}}function lb(a,b,d){return function(c,e){var f=c["get"+a](),g=vb((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Zd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function $d(a){return function(b){var d=
Zd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Pb(b,a)}}function Gc(a,b){return 0>=a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function Td(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,k=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=fa(b[9]+b[10]),g=fa(b[9]+b[11]));k.call(a,fa(b[1]),fa(b[2])-1,fa(b[3]));f=fa(b[4]||0)-f;g=fa(b[5]||0)-g;k=fa(b[6]||0);b=Math.round(1E3*parseFloat("0."+
(b[7]||0)));h.call(a,f,g,k,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,f){var g="",k=[],h,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;C(c)&&(c=jh.test(c)?fa(c):b(c));X(c)&&(c=new Date(c));if(!ha(c)||!isFinite(c.getTime()))return c;for(;d;)(l=kh.exec(d))?(k=db(k,l,1),d=k.pop()):(k.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=fc(f,m),c=gc(c,f,!0));r(k,function(b){h=lh[b];g+=h?h(c,a.DATETIME_FORMATS,
m):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function ch(){return function(a,b){A(b)&&(b=2);return eb(a,b)}}function dh(){return function(a,b,d){b=Infinity===Math.abs(Number(b))?Number(b):fa(b);if(Y(b))return a;X(a)&&(a=a.toString());if(!za(a))return a;d=!d||isNaN(d)?0:fa(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?Hc(a,d,d+b):0===d?Hc(a,b,a.length):Hc(a,Math.max(0,d+b),d)}}function Hc(a,b,d){return C(a)?a.slice(b,d):Ha.call(a,b,d)}function Vd(a){function b(b){return b.map(function(b){var c=
1,d=Ta;if(B(b))d=b;else if(C(b)){if("+"===b.charAt(0)||"-"===b.charAt(0))c="-"===b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(d=a(b),d.constant))var e=d(),d=function(a){return a[e]}}return{get:d,descending:c}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function c(a,b){var c=0,d=a.type,h=b.type;if(d===h){var h=a.value,l=b.value;"string"===d?(h=h.toLowerCase(),l=l.toLowerCase()):"object"===d&&(D(h)&&(h=a.index),D(l)&&(l=b.index));h!==l&&(c=
h<l?-1:1)}else c="undefined"===d?1:"undefined"===h?-1:"null"===d?1:"null"===h?-1:d<h?-1:1;return c}return function(a,f,g,k){if(null==a)return a;if(!za(a))throw F("orderBy")("notarray",a);H(f)||(f=[f]);0===f.length&&(f=["+"]);var h=b(f),l=g?-1:1,m=B(k)?k:c;a=Array.prototype.map.call(a,function(a,b){return{value:a,tieBreaker:{value:b,type:"number",index:b},predicateValues:h.map(function(c){var e=c.get(a);c=typeof e;if(null===e)c="null";else if("object"===c)a:{if(B(e.valueOf)&&(e=e.valueOf(),d(e)))break a;
cc(e)&&(e=e.toString(),d(e))}return{value:e,type:c,index:b}})}});a.sort(function(a,b){for(var d=0,e=h.length;d<e;d++){var f=m(a.predicateValues[d],b.predicateValues[d]);if(f)return f*h[d].descending*l}return(m(a.tieBreaker,b.tieBreaker)||c(a.tieBreaker,b.tieBreaker))*l});return a=a.map(function(a){return a.value})}}function Ra(a){B(a)&&(a={link:a});a.restrict=a.restrict||"AC";return ia(a)}function Qb(a,b,d,c,e){this.$$controls=[];this.$error={};this.$$success={};this.$pending=void 0;this.$name=e(b.name||
b.ngForm||"")(d);this.$dirty=!1;this.$valid=this.$pristine=!0;this.$submitted=this.$invalid=!1;this.$$parentForm=mb;this.$$element=a;this.$$animate=c;ae(this)}function ae(a){a.$$classCache={};a.$$classCache[be]=!(a.$$classCache[nb]=a.$$element.hasClass(nb))}function ce(a){function b(a,b,c){c&&!a.$$classCache[b]?(a.$$animate.addClass(a.$$element,b),a.$$classCache[b]=!0):!c&&a.$$classCache[b]&&(a.$$animate.removeClass(a.$$element,b),a.$$classCache[b]=!1)}function d(a,c,d){c=c?"-"+Xc(c,"-"):"";b(a,nb+
c,!0===d);b(a,be+c,!1===d)}var c=a.set,e=a.unset;a.clazz.prototype.$setValidity=function(a,g,k){A(g)?(this.$pending||(this.$pending={}),c(this.$pending,a,k)):(this.$pending&&e(this.$pending,a,k),de(this.$pending)&&(this.$pending=void 0));Ga(g)?g?(e(this.$error,a,k),c(this.$$success,a,k)):(c(this.$error,a,k),e(this.$$success,a,k)):(e(this.$error,a,k),e(this.$$success,a,k));this.$pending?(b(this,"ng-pending",!0),this.$valid=this.$invalid=void 0,d(this,"",null)):(b(this,"ng-pending",!1),this.$valid=
de(this.$error),this.$invalid=!this.$valid,d(this,"",this.$valid));g=this.$pending&&this.$pending[a]?void 0:this.$error[a]?!1:this.$$success[a]?!0:null;d(this,a,g);this.$$parentForm.$setValidity(a,g,this)}}function de(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function Ic(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function Sa(a,b,d,c,e,f){var g=K(b[0].type);if(!e.android){var k=!1;b.on("compositionstart",function(){k=!0});b.on("compositionupdate",
function(a){if(A(a.data)||""===a.data)k=!1});b.on("compositionend",function(){k=!1;l()})}var h,l=function(a){h&&(f.defer.cancel(h),h=null);if(!k){var e=b.val();a=a&&a.type;"password"===g||d.ngTrim&&"false"===d.ngTrim||(e=V(e));(c.$viewValue!==e||""===e&&c.$$hasNativeValidators)&&c.$setViewValue(e,a)}};if(e.hasEvent("input"))b.on("input",l);else{var m=function(a,b,c){h||(h=f.defer(function(){h=null;b&&b.value===c||l(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||
m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut drop",m)}b.on("change",l);if(ee[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!h){var b=this.validity,c=b.badInput,d=b.typeMismatch;h=f.defer(function(){h=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Rb(a,b){return function(d,c){var e,f;if(ha(d))return d;if(C(d)){'"'===d.charAt(0)&&'"'===d.charAt(d.length-
1)&&(d=d.substring(1,d.length-1));if(mh.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(a,c){c<b.length&&(f[b[c]]=+a)}),e=new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0),100>f.yyyy&&e.setFullYear(f.yyyy),e}return NaN}}function ob(a,b,d,c){return function(e,f,g,k,h,l,m,
p){function n(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function s(a){return w(a)&&!ha(a)?r(a)||void 0:a}function r(a,b){var c=k.$options.getOption("timezone");v&&v!==c&&(b=Uc(b,fc(v)));var e=d(a,b);!isNaN(e)&&c&&(e=gc(e,c));return e}Jc(e,f,g,k,a);Sa(e,f,g,k,h,l);var t="time"===a||"datetimelocal"===a,q,v;k.$parsers.push(function(c){if(k.$isEmpty(c))return null;if(b.test(c))return r(c,q);k.$$parserName=a});k.$formatters.push(function(a){if(a&&!ha(a))throw pb("datefmt",a);if(n(a)){q=a;var b=
k.$options.getOption("timezone");b&&(v=b,q=gc(q,b,!0));var d=c;t&&C(k.$options.getOption("timeSecondsFormat"))&&(d=c.replace("ss.sss",k.$options.getOption("timeSecondsFormat")).replace(/:$/,""));a=m("date")(a,d,b);t&&k.$options.getOption("timeStripZeroSeconds")&&(a=a.replace(/(?::00)?(?:\.000)?$/,""));return a}v=q=null;return""});if(w(g.min)||g.ngMin){var x=g.min||p(g.ngMin)(e),z=s(x);k.$validators.min=function(a){return!n(a)||A(z)||d(a)>=z};g.$observe("min",function(a){a!==x&&(z=s(a),x=a,k.$validate())})}if(w(g.max)||
g.ngMax){var y=g.max||p(g.ngMax)(e),J=s(y);k.$validators.max=function(a){return!n(a)||A(J)||d(a)<=J};g.$observe("max",function(a){a!==y&&(J=s(a),y=a,k.$validate())})}}}function Jc(a,b,d,c,e){(c.$$hasNativeValidators=D(b[0].validity))&&c.$parsers.push(function(a){var d=b.prop("validity")||{};if(d.badInput||d.typeMismatch)c.$$parserName=e;else return a})}function fe(a){a.$parsers.push(function(b){if(a.$isEmpty(b))return null;if(nh.test(b))return parseFloat(b);a.$$parserName="number"});a.$formatters.push(function(b){if(!a.$isEmpty(b)){if(!X(b))throw pb("numfmt",
b);b=b.toString()}return b})}function na(a){w(a)&&!X(a)&&(a=parseFloat(a));return Y(a)?void 0:a}function Kc(a){var b=a.toString(),d=b.indexOf(".");return-1===d?-1<a&&1>a&&(a=/e-(\d+)$/.exec(b))?Number(a[1]):0:b.length-d-1}function ge(a,b,d){a=Number(a);var c=(a|0)!==a,e=(b|0)!==b,f=(d|0)!==d;if(c||e||f){var g=c?Kc(a):0,k=e?Kc(b):0,h=f?Kc(d):0,g=Math.max(g,k,h),g=Math.pow(10,g);a*=g;b*=g;d*=g;c&&(a=Math.round(a));e&&(b=Math.round(b));f&&(d=Math.round(d))}return 0===(a-b)%d}function he(a,b,d,c,e){if(w(c)){a=
a(c);if(!a.constant)throw pb("constexpr",d,c);return a(b)}return e}function Lc(a,b){function d(a,b){if(!a||!a.length)return[];if(!b||!b.length)return a;var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],m=0;m<b.length;m++)if(e===b[m])continue a;c.push(e)}return c}function c(a){if(!a)return a;var b=a;H(a)?b=a.map(c).join(" "):D(a)?b=Object.keys(a).filter(function(b){return a[b]}).join(" "):C(a)||(b=a+"");return b}a="ngClass"+a;var e;return["$parse",function(f){return{restrict:"AC",link:function(g,
k,h){function l(a,b){var c=[];r(a,function(a){if(0<b||p[a])p[a]=(p[a]||0)+b,p[a]===+(0<b)&&c.push(a)});return c.join(" ")}function m(a){if(a===b){var c=s,c=l(c&&c.split(" "),1);h.$addClass(c)}else c=s,c=l(c&&c.split(" "),-1),h.$removeClass(c);n=a}var p=k.data("$classCounts"),n=!0,s;p||(p=T(),k.data("$classCounts",p));"ngClass"!==a&&(e||(e=f("$index",function(a){return a&1})),g.$watch(e,m));g.$watch(f(h[a],c),function(a){if(n===b){var c=s&&s.split(" "),e=a&&a.split(" "),f=d(c,e),c=d(e,c),f=l(f,-1),
c=l(c,1);h.$addClass(c);h.$removeClass(f)}s=a})}}}]}function sd(a,b,d,c,e,f){return{restrict:"A",compile:function(g,k){var h=a(k[c]);return function(a,c){c.on(e,function(c){var e=function(){h(a,{$event:c})};if(b.$$phase)if(f)a.$evalAsync(e);else try{e()}catch(g){d(g)}else a.$apply(e)})}}}}function Sb(a,b,d,c,e,f,g,k,h){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=
[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=void 0;this.$name=h(d.name||"",!1)(a);this.$$parentForm=mb;this.$options=Tb;this.$$updateEvents="";this.$$updateEventHandler=this.$$updateEventHandler.bind(this);this.$$parsedNgModel=e(d.ngModel);this.$$parsedNgModelAssign=this.$$parsedNgModel.assign;this.$$ngModelGet=this.$$parsedNgModel;this.$$ngModelSet=this.$$parsedNgModelAssign;this.$$pendingDebounce=
null;this.$$parserValid=void 0;this.$$parserName="parse";this.$$currentValidationRunId=0;this.$$scope=a;this.$$rootScope=a.$root;this.$$attr=d;this.$$element=c;this.$$animate=f;this.$$timeout=g;this.$$parse=e;this.$$q=k;this.$$exceptionHandler=b;ae(this);oh(this)}function oh(a){a.$$scope.$watch(function(b){b=a.$$ngModelGet(b);b===a.$modelValue||a.$modelValue!==a.$modelValue&&b!==b||a.$$setModelValue(b);return b})}function Mc(a){this.$$options=a}function ie(a,b){r(b,function(b,c){w(a[c])||(a[c]=b)})}
function Oa(a,b){a.prop("selected",b);a.attr("selected",b)}function je(a,b,d){if(a){C(a)&&(a=new RegExp("^"+a+"$"));if(!a.test)throw F("ngPattern")("noregexp",b,a,Aa(d));return a}}function Ub(a){a=fa(a);return Y(a)?-1:a}var Xb={objectMaxDepth:5,urlErrorParamsEnabled:!0},ke=/^\/(.+)\/([a-z]*)$/,ta=Object.prototype.hasOwnProperty,K=function(a){return C(a)?a.toLowerCase():a},vb=function(a){return C(a)?a.toUpperCase():a},wa,x,sb,Ha=[].slice,Kg=[].splice,ph=[].push,la=Object.prototype.toString,Rc=Object.getPrototypeOf,
oa=F("ng"),ca=z.angular||(z.angular={}),lc,qb=0;wa=z.document.documentMode;var Y=Number.isNaN||function(a){return a!==a};E.$inject=[];Ta.$inject=[];var ze=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,V=function(a){return C(a)?a.trim():a},Od=function(a){return a.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Ba=function(){if(!w(Ba.rules)){var a=z.document.querySelector("[ng-csp]")||z.document.querySelector("[data-ng-csp]");if(a){var b=
a.getAttribute("ng-csp")||a.getAttribute("data-ng-csp");Ba.rules={noUnsafeEval:!b||-1!==b.indexOf("no-unsafe-eval"),noInlineStyle:!b||-1!==b.indexOf("no-inline-style")}}else{a=Ba;try{new Function(""),b=!1}catch(d){b=!0}a.rules={noUnsafeEval:b,noInlineStyle:!1}}}return Ba.rules},rb=function(){if(w(rb.name_))return rb.name_;var a,b,d=Qa.length,c,e;for(b=0;b<d;++b)if(c=Qa[b],a=z.document.querySelector("["+c.replace(":","\\:")+"jq]")){e=a.getAttribute(c+"jq");break}return rb.name_=e},Be=/:/g,Qa=["ng-",
"data-ng-","ng:","x-ng-"],Fe=function(a){var b=a.currentScript;if(!b)return!0;if(!(b instanceof z.HTMLScriptElement||b instanceof z.SVGScriptElement))return!1;b=b.attributes;return[b.getNamedItem("src"),b.getNamedItem("href"),b.getNamedItem("xlink:href")].every(function(b){if(!b)return!0;if(!b.value)return!1;var c=a.createElement("a");c.href=b.value;if(a.location.origin===c.origin)return!0;switch(c.protocol){case "http:":case "https:":case "ftp:":case "blob:":case "file:":case "data:":return!0;default:return!1}})}(z.document),
Ie=/[A-Z]/g,Yc=!1,Pa=3,Pe={full:"1.8.2",major:1,minor:8,dot:2,codeName:"meteoric-mining"};U.expando="ng339";var Ka=U.cache={},ug=1;U._data=function(a){return this.cache[a[this.expando]]||{}};var qg=/-([a-z])/g,qh=/^-ms-/,Bb={mouseleave:"mouseout",mouseenter:"mouseover"},oc=F("jqLite"),tg=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,nc=/<|&#?\w+;/,rg=/<([\w:-]+)/,sg=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,qa={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr",
"tbody","table"]};qa.tbody=qa.tfoot=qa.colgroup=qa.caption=qa.thead;qa.th=qa.td;var hb={option:[1,'<select multiple="multiple">',"</select>"],_default:[0,"",""]},Nc;for(Nc in qa){var le=qa[Nc],me=le.slice().reverse();hb[Nc]=[me.length,"<"+me.join("><")+">","</"+le.join("></")+">"]}hb.optgroup=hb.option;var zg=z.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Wa=U.prototype={ready:hd,toString:function(){var a=[];r(this,function(b){a.push(""+b)});return"["+a.join(", ")+
"]"},eq:function(a){return 0<=a?x(this[a]):x(this[this.length+a])},length:0,push:ph,sort:[].sort,splice:[].splice},Hb={};r("multiple selected checked disabled readOnly required open".split(" "),function(a){Hb[K(a)]=a});var od={};r("input select option textarea button form details".split(" "),function(a){od[a]=!0});var vd={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};r({data:sc,removeData:rc,hasData:function(a){for(var b in Ka[a.ng339])return!0;
return!1},cleanData:function(a){for(var b=0,d=a.length;b<d;b++)rc(a[b]),kd(a[b])}},function(a,b){U[b]=a});r({data:sc,inheritedData:Fb,scope:function(a){return x.data(a,"$scope")||Fb(a.parentNode||a,["$isolateScope","$scope"])},isolateScope:function(a){return x.data(a,"$isolateScope")||x.data(a,"$isolateScopeNoTemplate")},controller:ld,injector:function(a){return Fb(a,"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:Cb,css:function(a,b,d){b=yb(b.replace(qh,"ms-"));if(w(d))a.style[b]=
d;else return a.style[b]},attr:function(a,b,d){var c=a.nodeType;if(c!==Pa&&2!==c&&8!==c&&a.getAttribute){var c=K(b),e=Hb[c];if(w(d))null===d||!1===d&&e?a.removeAttribute(b):a.setAttribute(b,e?c:d);else return a=a.getAttribute(b),e&&null!==a&&(a=c),null===a?void 0:a}},prop:function(a,b,d){if(w(d))a[b]=d;else return a[b]},text:function(){function a(a,d){if(A(d)){var c=a.nodeType;return 1===c||c===Pa?a.textContent:""}a.textContent=d}a.$dv="";return a}(),val:function(a,b){if(A(b)){if(a.multiple&&"select"===
ua(a)){var d=[];r(a.options,function(a){a.selected&&d.push(a.value||a.text)});return d}return a.value}a.value=b},html:function(a,b){if(A(b))return a.innerHTML;zb(a,!0);a.innerHTML=b},empty:md},function(a,b){U.prototype[b]=function(b,c){var e,f,g=this.length;if(a!==md&&A(2===a.length&&a!==Cb&&a!==ld?b:c)){if(D(b)){for(e=0;e<g;e++)if(a===sc)a(this[e],b);else for(f in b)a(this[e],f,b[f]);return this}e=a.$dv;g=A(e)?Math.min(g,1):g;for(f=0;f<g;f++){var k=a(this[f],b,c);e=e?e+k:k}return e}for(e=0;e<g;e++)a(this[e],
b,c);return this}});r({removeData:rc,on:function(a,b,d,c){if(w(c))throw oc("onargs");if(mc(a)){c=Ab(a,!0);var e=c.events,f=c.handle;f||(f=c.handle=wg(a,e));c=0<=b.indexOf(" ")?b.split(" "):[b];for(var g=c.length,k=function(b,c,g){var k=e[b];k||(k=e[b]=[],k.specialHandlerWrapper=c,"$destroy"===b||g||a.addEventListener(b,f));k.push(d)};g--;)b=c[g],Bb[b]?(k(Bb[b],yg),k(b,void 0,!0)):k(b)}},off:kd,one:function(a,b,d){a=x(a);a.on(b,function e(){a.off(b,d);a.off(b,e)});a.on(b,d)},replaceWith:function(a,
b){var d,c=a.parentNode;zb(a);r(new U(b),function(b){d?c.insertBefore(b,d.nextSibling):c.replaceChild(b,a);d=b})},children:function(a){var b=[];r(a.childNodes,function(a){1===a.nodeType&&b.push(a)});return b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,b){var d=a.nodeType;if(1===d||11===d){b=new U(b);for(var d=0,c=b.length;d<c;d++)a.appendChild(b[d])}},prepend:function(a,b){if(1===a.nodeType){var d=a.firstChild;r(new U(b),function(b){a.insertBefore(b,d)})}},
wrap:function(a,b){var d=x(b).eq(0).clone()[0],c=a.parentNode;c&&c.replaceChild(d,a);d.appendChild(a)},remove:Gb,detach:function(a){Gb(a,!0)},after:function(a,b){var d=a,c=a.parentNode;if(c){b=new U(b);for(var e=0,f=b.length;e<f;e++){var g=b[e];c.insertBefore(g,d.nextSibling);d=g}}},addClass:Eb,removeClass:Db,toggleClass:function(a,b,d){b&&r(b.split(" "),function(b){var e=d;A(e)&&(e=!Cb(a,b));(e?Eb:Db)(a,b)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},
find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:qc,triggerHandler:function(a,b,d){var c,e,f=b.type||b,g=Ab(a);if(g=(g=g&&g.events)&&g[f])c={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:E,type:f,target:a},b.type&&(c=S(c,
b)),b=ja(g),e=d?[c].concat(d):[c],r(b,function(b){c.isImmediatePropagationStopped()||b.apply(a,e)})}},function(a,b){U.prototype[b]=function(b,c,e){for(var f,g=0,k=this.length;g<k;g++)A(f)?(f=a(this[g],b,c,e),w(f)&&(f=x(f))):pc(f,a(this[g],b,c,e));return w(f)?f:this}});U.prototype.bind=U.prototype.on;U.prototype.unbind=U.prototype.off;var rh=Object.create(null);pd.prototype={_idx:function(a){a!==this._lastKey&&(this._lastKey=a,this._lastIndex=this._keys.indexOf(a));return this._lastIndex},_transformKey:function(a){return Y(a)?
rh:a},get:function(a){a=this._transformKey(a);a=this._idx(a);if(-1!==a)return this._values[a]},has:function(a){a=this._transformKey(a);return-1!==this._idx(a)},set:function(a,b){a=this._transformKey(a);var d=this._idx(a);-1===d&&(d=this._lastIndex=this._keys.length);this._keys[d]=a;this._values[d]=b},delete:function(a){a=this._transformKey(a);a=this._idx(a);if(-1===a)return!1;this._keys.splice(a,1);this._values.splice(a,1);this._lastKey=NaN;this._lastIndex=-1;return!0}};var Ib=pd,og=[function(){this.$get=
[function(){return Ib}]}],Bg=/^([^(]+?)=>/,Cg=/^[^(]*\(\s*([^)]*)\)/m,sh=/,/,th=/^\s*(_?)(\S+?)\1\s*$/,Ag=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ca=F("$injector");fb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw C(d)&&d||(d=a.name||Dg(a)),Ca("strictdi",d);b=qd(a);r(b[1].split(sh),function(a){a.replace(th,function(a,b,d){c.push(d)})})}a.$inject=c}}else H(a)?(b=a.length-1,tb(a[b],"fn"),c=a.slice(0,b)):tb(a,"fn",!0);return c};var ne=F("$animate"),
Ef=function(){this.$get=E},Ff=function(){var a=new Ib,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=C(b)?b.split(" "):H(b)?b:[],r(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){r(b,function(b){var c=a.get(b);if(c){var d=Eg(b.attr("class")),e="",f="";r(c,function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});r(b,function(a){e&&Eb(a,e);f&&Db(a,f)});a.delete(b)}});b.length=0}return{enabled:E,on:E,off:E,pin:E,push:function(g,
k,h,l){l&&l();h=h||{};h.from&&g.css(h.from);h.to&&g.css(h.to);if(h.addClass||h.removeClass)if(k=h.addClass,l=h.removeClass,h=a.get(g)||{},k=e(h,k,!0),l=e(h,l,!1),k||l)a.set(g,h),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},Cf=["$provide",function(a){var b=this,d=null,c=null;this.$$registeredAnimations=Object.create(null);this.register=function(c,d){if(c&&"."!==c.charAt(0))throw ne("notcsel",c);var g=c+"-animation";b.$$registeredAnimations[c.substr(1)]=g;a.factory(g,
d)};this.customFilter=function(a){1===arguments.length&&(c=B(a)?a:null);return c};this.classNameFilter=function(a){if(1===arguments.length&&(d=a instanceof RegExp?a:null)&&/[(\s|\/)]ng-animate[(\s|\/)]/.test(d.toString()))throw d=null,ne("nongcls","ng-animate");return d};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var e;a:{for(e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){e=f;break a}}e=void 0}!e||e.parentNode||e.previousElementSibling||(d=null)}d?d.after(a):c.prepend(a)}return{on:a.on,
off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.cancel&&a.cancel()},enter:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,"enter",ra(l))},move:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,"move",ra(l))},leave:function(b,c){return a.push(b,"leave",ra(c),function(){b.remove()})},addClass:function(b,c,d){d=ra(d);d.addClass=ib(d.addclass,c);return a.push(b,"addClass",d)},removeClass:function(b,c,d){d=ra(d);d.removeClass=ib(d.removeClass,
c);return a.push(b,"removeClass",d)},setClass:function(b,c,d,f){f=ra(f);f.addClass=ib(f.addClass,c);f.removeClass=ib(f.removeClass,d);return a.push(b,"setClass",f)},animate:function(b,c,d,f,m){m=ra(m);m.from=m.from?S(m.from,c):c;m.to=m.to?S(m.to,d):d;m.tempClasses=ib(m.tempClasses,f||"ng-inline-animate");return a.push(b,"animate",m)}}}]}],Hf=function(){this.$get=["$$rAF",function(a){function b(b){d.push(b);1<d.length||a(function(){for(var a=0;a<d.length;a++)d[a]();d=[]})}var d=[];return function(){var a=
!1;b(function(){a=!0});return function(d){a?d():b(d)}}}]},Gf=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(a,b,d,c,e){function f(a){this.setHost(a);var b=d();this._doneCallbacks=[];this._tick=function(a){c()?e(a,0,!1):b(a)};this._state=0}f.chain=function(a,b){function c(){if(d===a.length)b(!0);else a[d](function(a){!1===a?b(!1):(d++,c())})}var d=0;c()};f.all=function(a,b){function c(f){e=e&&f;++d===a.length&&b(e)}var d=0,e=!0;r(a,function(a){a.done(c)})};
f.prototype={setHost:function(a){this.host=a||{}},done:function(a){2===this._state?a():this._doneCallbacks.push(a)},progress:E,getPromise:function(){if(!this.promise){var b=this;this.promise=a(function(a,c){b.done(function(b){!1===b?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},"finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&
this.host.resume()},end:function(){this.host.end&&this.host.end();this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel();this._resolve(!1)},complete:function(a){var b=this;0===b._state&&(b._state=1,b._tick(function(){b._resolve(a)}))},_resolve:function(a){2!==this._state&&(r(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=0,this._state=2)}};return f}]},Df=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(a,b,d){return function(b,e){function f(){a(function(){g.addClass&&
(b.addClass(g.addClass),g.addClass=null);g.removeClass&&(b.removeClass(g.removeClass),g.removeClass=null);g.to&&(b.css(g.to),g.to=null);k||h.complete();k=!0});return h}var g=e||{};g.$$prepared||(g=Ia(g));g.cleanupStyles&&(g.from=g.to=null);g.from&&(b.css(g.from),g.from=null);var k,h=new d;return{start:f,end:f}}}]},$=F("$compile"),uc=new function(){};Zc.$inject=["$provide","$$sanitizeUriProvider"];Kb.prototype.isFirstChange=function(){return this.previousValue===uc};var rd=/^((?:x|data)[:\-_])/i,Jg=
/[:\-_]+(.)/g,xd=F("$controller"),wd=/^(\S+)(\s+as\s+([\w$]+))?$/,Of=function(){this.$get=["$document",function(a){return function(b){b?!b.nodeType&&b instanceof x&&(b=b[0]):b=a[0].body;return b.offsetWidth+1}}]},yd="application/json",xc={"Content-Type":yd+";charset=utf-8"},Mg=/^\[|^\{(?!\{)/,Ng={"[":/]$/,"{":/}$/},Lg=/^\)]\}',?\n/,Lb=F("$http"),Ma=ca.$interpolateMinErr=F("$interpolate");Ma.throwNoconcat=function(a){throw Ma("noconcat",a);};Ma.interr=function(a,b){return Ma("interr",a,b.toString())};
var Qg=F("$interval"),Xf=function(){this.$get=function(){function a(a){var b=function(a){b.data=a;b.called=!0};b.id=a;return b}var b=ca.callbacks,d={};return{createCallback:function(c){c="_"+(b.$$counter++).toString(36);var e="angular.callbacks."+c,f=a(c);d[e]=b[c]=f;return e},wasCalled:function(a){return d[a].called},getResponse:function(a){return d[a].data},removeCallback:function(a){delete b[d[a].id];delete d[a]}}}},uh=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Rg={http:80,https:443,ftp:21},kb=F("$location"),
Sg=/^\s*[\\/]{2,}/,vh={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){for(var a=this.$$path,b=this.$$hash,d=Ce(this.$$search),b=b?"#"+ic(b):"",a=a.split("/"),c=a.length;c--;)a[c]=ic(a[c].replace(/%2F/g,"/"));this.$$url=a.join("/")+(d?"?"+d:"")+b;this.$$absUrl=this.$$normalizeUrl(this.$$url);this.$$urlUpdatedByLocation=!0},absUrl:Mb("$$absUrl"),url:function(a){if(A(a))return this.$$url;var b=uh.exec(a);(b[1]||""===a)&&this.path(decodeURIComponent(b[1]));(b[2]||b[1]||""===a)&&this.search(b[3]||
"");this.hash(b[5]||"");return this},protocol:Mb("$$protocol"),host:Mb("$$host"),port:Mb("$$port"),path:Fd("$$path",function(a){a=null!==a?a.toString():"";return"/"===a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(C(a)||X(a))a=a.toString(),this.$$search=hc(a);else if(D(a))a=Ia(a,{}),r(a,function(b,c){null==b&&delete a[c]}),this.$$search=a;else throw kb("isrcharg");break;default:A(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}this.$$compose();
return this},hash:Fd("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};r([Ed,Ac,zc],function(a){a.prototype=Object.create(vh);a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==zc||!this.$$html5)throw kb("nostate");this.$$state=A(b)?null:b;this.$$urlUpdatedByLocation=!0;return this}});var Ya=F("$parse"),Wg={}.constructor.prototype.valueOf,Vb=T();r("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){Vb[a]=
!0});var wh={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Ob=function(a){this.options=a};Ob.prototype={constructor:Ob,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,
text:a}),this.index++;else if(this.isWhitespace(a))this.index++;else{var b=a+this.peek(),d=b+this.peek(2),c=Vb[b],e=Vb[d];Vb[a]||c||e?(a=e?d:c?b:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===
typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},
isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=
w(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw Ya("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index<this.text.length;){var d=K(this.text.charAt(this.index));if("."===d||this.isNumber(d))a+=d;else{var c=this.peek();if("e"===d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"===a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!==a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:b,
text:a,constant:!0,value:Number(a)})},readIdent:function(){var a=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var b=this.peekMultichar();if(!this.isIdentifierContinue(b))break;this.index+=b.length}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var d="",c=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),c=c+f;if(e)"u"===f?(e=this.text.substring(this.index+
1,this.index+5),e.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+e+"]"),this.index+=4,d+=String.fromCharCode(parseInt(e,16))):d+=wh[f]||f,e=!1;else if("\\"===f)e=!0;else{if(f===a){this.index++;this.tokens.push({index:b,text:c,constant:!0,value:d});return}d+=f}this.index++}this.throwError("Unterminated quote",b)}};var q=function(a,b){this.lexer=a;this.options=b};q.Program="Program";q.ExpressionStatement="ExpressionStatement";q.AssignmentExpression="AssignmentExpression";q.ConditionalExpression=
"ConditionalExpression";q.LogicalExpression="LogicalExpression";q.BinaryExpression="BinaryExpression";q.UnaryExpression="UnaryExpression";q.CallExpression="CallExpression";q.MemberExpression="MemberExpression";q.Identifier="Identifier";q.Literal="Literal";q.ArrayExpression="ArrayExpression";q.Property="Property";q.ObjectExpression="ObjectExpression";q.ThisExpression="ThisExpression";q.LocalsExpression="LocalsExpression";q.NGValueParameter="NGValueParameter";q.prototype={ast:function(a){this.text=
a;this.tokens=this.lexer.lex(a);a=this.program();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);return a},program:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:q.Program,body:a}},expressionStatement:function(){return{type:q.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},
expression:function(){return this.assignment()},assignment:function(){var a=this.ternary();if(this.expect("=")){if(!Jd(a))throw Ya("lval");a={type:q.AssignmentExpression,left:a,right:this.assignment(),operator:"="}}return a},ternary:function(){var a=this.logicalOR(),b,d;return this.expect("?")&&(b=this.expression(),this.consume(":"))?(d=this.expression(),{type:q.ConditionalExpression,test:a,alternate:b,consequent:d}):a},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:q.LogicalExpression,
operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=this.equality();this.expect("&&");)a={type:q.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a=this.relational(),b;b=this.expect("==","!=","===","!==");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.relational()};return a},relational:function(){for(var a=this.additive(),b;b=this.expect("<",">","<=",">=");)a={type:q.BinaryExpression,operator:b.text,
left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:q.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},
primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=Ia(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:q.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",
this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:q.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:q.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:q.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:q.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());
return b},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.filterChain());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:q.Identifier,name:a.text}},constant:function(){return{type:q.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");
return{type:q.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;b={type:q.Property,kind:"init"};this.peek().constant?(b.key=this.constant(),b.computed=!1,this.consume(":"),b.value=this.expression()):this.peek().identifier?(b.key=this.identifier(),b.computed=!1,this.peek(":")?(this.consume(":"),b.value=this.expression()):b.value=b.key):this.peek("[")?(this.consume("["),b.key=this.expression(),this.consume("]"),b.computed=!0,this.consume(":"),
b.value=this.expression()):this.throwError("invalid key",this.peek());a.push(b)}while(this.expect(","))}this.consume("}");return{type:q.ObjectExpression,properties:a}},throwError:function(a,b){throw Ya("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw Ya("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw Ya("ueoe",
this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},selfReferential:{"this":{type:q.ThisExpression},$locals:{type:q.LocalsExpression}}};var Hd=2;Ld.prototype={compile:function(a){var b=this;this.state={nextId:0,filters:{},fn:{vars:[],
body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};Z(a,b.$filter);var d="",c;this.stage="assign";if(c=Kd(a))this.state.computing="assign",d=this.nextId(),this.recurse(c,d),this.return_(d),d="fn.assign="+this.generateFunction("assign","s,v,l");c=Id(a.body);b.stage="inputs";r(c,function(a,c){var d="fn"+c;b.state[d]={vars:[],body:[],own:{}};b.state.computing=d;var k=b.nextId();b.recurse(a,k);b.return_(k);b.state.inputs.push({name:d,isPure:a.isPure});a.watchId=c});this.state.computing="fn";this.stage=
"main";this.recurse(a);a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+d+this.watchFns()+"return fn;";a=(new Function("$filter","getStringValue","ifDefined","plus",a))(this.$filter,Tg,Ug,Gd);this.state=this.stage=void 0;return a},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;r(b,function(b){a.push("var "+b.name+"="+d.generateFunction(b.name,"s"));b.isPure&&a.push(b.name,".isPure="+JSON.stringify(b.isPure)+
";")});b.length&&a.push("fn.inputs=["+b.map(function(a){return a.name}).join(",")+"];");return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;r(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},
recurse:function(a,b,d,c,e,f){var g,k,h=this,l,m,p;c=c||E;if(!f&&w(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case q.Program:r(a.body,function(b,c){h.recurse(b.expression,void 0,void 0,function(a){k=a});c!==a.body.length-1?h.current().body.push(k,";"):h.return_(k)});break;case q.Literal:m=this.escape(a.value);this.assign(b,m);c(b||m);break;case q.UnaryExpression:this.recurse(a.argument,void 0,
void 0,function(a){k=a});m=a.operator+"("+this.ifDefined(k,0)+")";this.assign(b,m);c(m);break;case q.BinaryExpression:this.recurse(a.left,void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){k=a});m="+"===a.operator?this.plus(g,k):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(k,0):"("+g+")"+a.operator+"("+k+")";this.assign(b,m);c(m);break;case q.LogicalExpression:b=b||this.nextId();h.recurse(a.left,b);h.if_("&&"===a.operator?b:h.not(b),h.lazyRecurse(a.right,
b));c(b);break;case q.ConditionalExpression:b=b||this.nextId();h.recurse(a.test,b);h.if_(b,h.lazyRecurse(a.alternate,b),h.lazyRecurse(a.consequent,b));c(b);break;case q.Identifier:b=b||this.nextId();d&&(d.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",a.name)),function(){h.if_("inputs"===h.stage||"s",function(){e&&1!==e&&h.if_(h.isNull(h.nonComputedMember("s",a.name)),
h.lazyAssign(h.nonComputedMember("s",a.name),"{}"));h.assign(b,h.nonComputedMember("s",a.name))})},b&&h.lazyAssign(b,h.nonComputedMember("l",a.name)));c(b);break;case q.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();h.recurse(a.object,g,void 0,function(){h.if_(h.notNull(g),function(){a.computed?(k=h.nextId(),h.recurse(a.property,k),h.getStringValue(k),e&&1!==e&&h.if_(h.not(h.computedMember(g,k)),h.lazyAssign(h.computedMember(g,k),"{}")),m=h.computedMember(g,k),h.assign(b,
m),d&&(d.computed=!0,d.name=k)):(e&&1!==e&&h.if_(h.isNull(h.nonComputedMember(g,a.property.name)),h.lazyAssign(h.nonComputedMember(g,a.property.name),"{}")),m=h.nonComputedMember(g,a.property.name),h.assign(b,m),d&&(d.computed=!1,d.name=a.property.name))},function(){h.assign(b,"undefined")});c(b)},!!e);break;case q.CallExpression:b=b||this.nextId();a.filter?(k=h.filter(a.callee.name),l=[],r(a.arguments,function(a){var b=h.nextId();h.recurse(a,b);l.push(b)}),m=k+"("+l.join(",")+")",h.assign(b,m),c(b)):
(k=h.nextId(),g={},l=[],h.recurse(a.callee,k,g,function(){h.if_(h.notNull(k),function(){r(a.arguments,function(b){h.recurse(b,a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m=g.name?h.member(g.context,g.name,g.computed)+"("+l.join(",")+")":k+"("+l.join(",")+")";h.assign(b,m)},function(){h.assign(b,"undefined")});c(b)}));break;case q.AssignmentExpression:k=this.nextId();g={};this.recurse(a.left,void 0,g,function(){h.if_(h.notNull(g.context),function(){h.recurse(a.right,k);m=h.member(g.context,
g.name,g.computed)+a.operator+k;h.assign(b,m);c(b||m)})},1);break;case q.ArrayExpression:l=[];r(a.elements,function(b){h.recurse(b,a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m="["+l.join(",")+"]";this.assign(b,m);c(b||m);break;case q.ObjectExpression:l=[];p=!1;r(a.properties,function(a){a.computed&&(p=!0)});p?(b=b||this.nextId(),this.assign(b,"{}"),r(a.properties,function(a){a.computed?(g=h.nextId(),h.recurse(a.key,g)):g=a.key.type===q.Identifier?a.key.name:""+a.key.value;k=h.nextId();
h.recurse(a.value,k);h.assign(h.member(b,g,a.computed),k)})):(r(a.properties,function(b){h.recurse(b.value,a.constant?void 0:h.nextId(),void 0,function(a){l.push(h.escape(b.key.type===q.Identifier?b.key.name:""+b.key.value)+":"+a)})}),m="{"+l.join(",")+"}",this.assign(b,m));c(b||m);break;case q.ThisExpression:this.assign(b,"s");c(b||"s");break;case q.LocalsExpression:this.assign(b,"l");c(b||"l");break;case q.NGValueParameter:this.assign(b,"v"),c(b||"v")}},getHasOwnProperty:function(a,b){var d=a+"."+
b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,
b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},not:function(a){return"!("+a+")"},isNull:function(a){return a+"==null"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,
b)},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},lazyRecurse:function(a,b,d,c,e,f){var g=this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(C(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(X(a))return a.toString();if(!0===a)return"true";if(!1===
a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Ya("esc");},nextId:function(a,b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};Md.prototype={compile:function(a){var b=this;Z(a,b.$filter);var d,c;if(d=Kd(a))c=this.recurse(d);d=Id(a.body);var e;d&&(e=[],r(d,function(a,c){var d=b.recurse(a);d.isPure=a.isPure;a.input=d;e.push(d);a.watchId=c}));var f=[];r(a.body,
function(a){f.push(b.recurse(a.expression))});a=0===a.body.length?E:1===a.body.length?f[0]:function(a,b){var c;r(f,function(d){c=d(a,b)});return c};c&&(a.assign=function(a,b,d){return c(a,d,b)});e&&(a.inputs=e);return a},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case q.Literal:return this.value(a.value,b);case q.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case q.BinaryExpression:return c=this.recurse(a.left),
e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case q.Identifier:return f.identifier(a.name,b,d);case q.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,
e,b,d):this.nonComputedMember(c,e,b,d);case q.CallExpression:return g=[],r(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var p=[],n=0;n<g.length;++n)p.push(g[n](a,c,d,f));a=e.apply(void 0,p,f);return b?{context:void 0,name:void 0,value:a}:a}:function(a,c,d,f){var p=e(a,c,d,f),n;if(null!=p.value){n=[];for(var s=0;s<g.length;++s)n.push(g[s](a,c,d,f));n=p.value.apply(p.context,n)}return b?
{value:n}:n};case q.AssignmentExpression:return c=this.recurse(a.left,!0,1),e=this.recurse(a.right),function(a,d,f,g){var p=c(a,d,f,g);a=e(a,d,f,g);p.context[p.name]=a;return b?{value:a}:a};case q.ArrayExpression:return g=[],r(a.elements,function(a){g.push(f.recurse(a))}),function(a,c,d,e){for(var f=[],n=0;n<g.length;++n)f.push(g[n](a,c,d,e));return b?{value:f}:f};case q.ObjectExpression:return g=[],r(a.properties,function(a){a.computed?g.push({key:f.recurse(a.key),computed:!0,value:f.recurse(a.value)}):
g.push({key:a.key.type===q.Identifier?a.key.name:""+a.key.value,computed:!1,value:f.recurse(a.value)})}),function(a,c,d,e){for(var f={},n=0;n<g.length;++n)g[n].computed?f[g[n].key(a,c,d,e)]=g[n].value(a,c,d,e):f[g[n].key]=g[n].value(a,c,d,e);return b?{value:f}:f};case q.ThisExpression:return function(a){return b?{value:a}:a};case q.LocalsExpression:return function(a,c){return b?{value:c}:c};case q.NGValueParameter:return function(a,c,d){return b?{value:d}:d}}},"unary+":function(a,b){return function(d,
c,e,f){d=a(d,c,e,f);d=w(d)?+d:0;return b?{value:d}:d}},"unary-":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=w(d)?-d:-0;return b?{value:d}:d}},"unary!":function(a,b){return function(d,c,e,f){d=!a(d,c,e,f);return b?{value:d}:d}},"binary+":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=Gd(k,c);return d?{value:k}:k}},"binary-":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=(w(k)?k:0)-(w(c)?c:0);return d?{value:k}:k}},"binary*":function(a,b,
d){return function(c,e,f,g){c=a(c,e,f,g)*b(c,e,f,g);return d?{value:c}:c}},"binary/":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)/b(c,e,f,g);return d?{value:c}:c}},"binary%":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)%b(c,e,f,g);return d?{value:c}:c}},"binary===":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)===b(c,e,f,g);return d?{value:c}:c}},"binary!==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!==b(c,e,f,g);return d?{value:c}:c}},"binary==":function(a,b,d){return function(c,
e,f,g){c=a(c,e,f,g)==b(c,e,f,g);return d?{value:c}:c}},"binary!=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!=b(c,e,f,g);return d?{value:c}:c}},"binary<":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<b(c,e,f,g);return d?{value:c}:c}},"binary>":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=
a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k)?b(e,f,g,k):d(e,f,g,k);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,name:void 0,value:a}:a}},identifier:function(a,b,d){return function(c,e,f,g){c=
e&&a in e?e:c;d&&1!==d&&c&&null==c[a]&&(c[a]={});e=c?c[a]:void 0;return b?{context:c,name:a,value:e}:e}},computedMember:function(a,b,d,c){return function(e,f,g,k){var h=a(e,f,g,k),l,m;null!=h&&(l=b(e,f,g,k),l+="",c&&1!==c&&h&&!h[l]&&(h[l]={}),m=h[l]);return d?{context:h,name:l,value:m}:m}},nonComputedMember:function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k);c&&1!==c&&e&&null==e[b]&&(e[b]={});f=null!=e?e[b]:void 0;return d?{context:e,name:b,value:f}:f}},inputs:function(a,b){return function(d,
c,e,f){return f?f[b]:a(d,c,e)}}};Nb.prototype={constructor:Nb,parse:function(a){a=this.getAst(a);var b=this.astCompiler.compile(a.ast),d=a.ast;b.literal=0===d.body.length||1===d.body.length&&(d.body[0].expression.type===q.Literal||d.body[0].expression.type===q.ArrayExpression||d.body[0].expression.type===q.ObjectExpression);b.constant=a.ast.constant;b.oneTime=a.oneTime;return b},getAst:function(a){var b=!1;a=a.trim();":"===a.charAt(0)&&":"===a.charAt(1)&&(b=!0,a=a.substring(2));return{ast:this.ast.ast(a),
oneTime:b}}};var Ea=F("$sce"),W={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Dc=/_([a-z])/g,Zg=F("$templateRequest"),$g=F("$timeout"),aa=z.document.createElement("a"),Qd=ga(z.location.href),Na;aa.href="http://[::1]";var ah="[::1]"===aa.hostname;Rd.$inject=["$document"];fd.$inject=["$provide"];var Yd=22,Xd=".",Fc="0";Sd.$inject=["$locale"];Ud.$inject=["$locale"];var lh={yyyy:ea("FullYear",4,0,!1,!0),yy:ea("FullYear",2,0,!0,!0),y:ea("FullYear",1,0,!1,!0),
MMMM:lb("Month"),MMM:lb("Month",!0),MM:ea("Month",2,1),M:ea("Month",1,1),LLLL:lb("Month",!1,!0),dd:ea("Date",2),d:ea("Date",1),HH:ea("Hours",2),H:ea("Hours",1),hh:ea("Hours",2,-12),h:ea("Hours",1,-12),mm:ea("Minutes",2),m:ea("Minutes",1),ss:ea("Seconds",2),s:ea("Seconds",1),sss:ea("Milliseconds",3),EEEE:lb("Day"),EEE:lb("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Pb(Math[0<a?"floor":"ceil"](a/60),2)+Pb(Math.abs(a%60),2))},
ww:$d(2),w:$d(1),G:Gc,GG:Gc,GGG:Gc,GGGG:function(a,b){return 0>=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},kh=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,jh=/^-?\d+$/;Td.$inject=["$locale"];var eh=ia(K),fh=ia(vb);Vd.$inject=["$parse"];var Re=ia({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===la.call(b.prop("href"))?"xlink:href":"href";
b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),wb={};r(Hb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!==a){var c=xa("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});wb[c]=function(){return{restrict:"A",priority:100,link:e}}}});r(vd,function(a,b){wb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"===e.ngPattern.charAt(0)&&(c=e.ngPattern.match(ke))){e.$set("ngPattern",new RegExp(c[1],
c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});r(["src","srcset","href"],function(a){var b=xa("ng-"+a);wb[b]=["$sce",function(d){return{priority:99,link:function(c,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===la.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$set(b,d.getTrustedMediaUrl(f[b]));f.$observe(b,function(b){b?(f.$set(k,b),wa&&g&&e.prop(g,f[k])):"href"===a&&f.$set(k,null)})}}}]});var mb={$addControl:E,$getControls:ia([]),$$renameControl:function(a,
b){a.$name=b},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E,$$setSubmitted:E};Qb.$inject=["$element","$attrs","$scope","$animate","$interpolate"];Qb.prototype={$rollbackViewValue:function(){r(this.$$controls,function(a){a.$rollbackViewValue()})},$commitViewValue:function(){r(this.$$controls,function(a){a.$commitViewValue()})},$addControl:function(a){Ja(a.$name,"input");this.$$controls.push(a);a.$name&&(this[a.$name]=a);a.$$parentForm=this},$getControls:function(){return ja(this.$$controls)},
$$renameControl:function(a,b){var d=a.$name;this[d]===a&&delete this[d];this[b]=a;a.$name=b},$removeControl:function(a){a.$name&&this[a.$name]===a&&delete this[a.$name];r(this.$pending,function(b,d){this.$setValidity(d,null,a)},this);r(this.$error,function(b,d){this.$setValidity(d,null,a)},this);r(this.$$success,function(b,d){this.$setValidity(d,null,a)},this);cb(this.$$controls,a);a.$$parentForm=mb},$setDirty:function(){this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element,
Wb);this.$dirty=!0;this.$pristine=!1;this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,Za,Wb+" ng-submitted");this.$dirty=!1;this.$pristine=!0;this.$submitted=!1;r(this.$$controls,function(a){a.$setPristine()})},$setUntouched:function(){r(this.$$controls,function(a){a.$setUntouched()})},$setSubmitted:function(){for(var a=this;a.$$parentForm&&a.$$parentForm!==mb;)a=a.$$parentForm;a.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,
"ng-submitted");this.$submitted=!0;r(this.$$controls,function(a){a.$$setSubmitted&&a.$$setSubmitted()})}};ce({clazz:Qb,set:function(a,b,d){var c=a[b];c?-1===c.indexOf(d)&&c.push(d):a[b]=[d]},unset:function(a,b,d){var c=a[b];c&&(cb(c,d),0===c.length&&delete a[b])}});var oe=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||E}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Qb,compile:function(d,f){d.addClass(Za).addClass(nb);
var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var p=f[0];if(!("action"in e)){var n=function(b){a.$apply(function(){p.$commitViewValue();p.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",n);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",n)},0,!1)})}(f[1]||p.$$parentForm).$addControl(p);var s=g?c(p.$name):E;g&&(s(a,p),e.$observe(g,function(b){p.$name!==b&&(s(a,void 0),p.$$parentForm.$$renameControl(p,b),s=c(p.$name),s(a,p))}));
d.on("$destroy",function(){p.$$parentForm.$removeControl(p);s(a,void 0);S(p,mb)})}}}}}]},Se=oe(),df=oe(!0),mh=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,xh=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,yh=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,
nh=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,pe=/^(\d{4,})-(\d{2})-(\d{2})$/,qe=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Oc=/^(\d{4,})-W(\d\d)$/,re=/^(\d{4,})-(\d\d)$/,se=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,ee=T();r(["date","datetime-local","month","time","week"],function(a){ee[a]=!0});var te={text:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c)},date:ob("date",pe,Rb(pe,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ob("datetimelocal",qe,Rb(qe,"yyyy MM dd HH mm ss sss".split(" ")),
"yyyy-MM-ddTHH:mm:ss.sss"),time:ob("time",se,Rb(se,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ob("week",Oc,function(a,b){if(ha(a))return a;if(C(a)){Oc.lastIndex=0;var d=Oc.exec(a);if(d){var c=+d[1],e=+d[2],f=d=0,g=0,k=0,h=Zd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),k=b.getMilliseconds());return new Date(c,0,h.getDate()+e,d,f,g,k)}}return NaN},"yyyy-Www"),month:ob("month",re,Rb(re,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f,g,k){Jc(a,b,d,c,"number");fe(c);Sa(a,
b,d,c,e,f);var h;if(w(d.min)||d.ngMin){var l=d.min||k(d.ngMin)(a);h=na(l);c.$validators.min=function(a,b){return c.$isEmpty(b)||A(h)||b>=h};d.$observe("min",function(a){a!==l&&(h=na(a),l=a,c.$validate())})}if(w(d.max)||d.ngMax){var m=d.max||k(d.ngMax)(a),p=na(m);c.$validators.max=function(a,b){return c.$isEmpty(b)||A(p)||b<=p};d.$observe("max",function(a){a!==m&&(p=na(a),m=a,c.$validate())})}if(w(d.step)||d.ngStep){var n=d.step||k(d.ngStep)(a),s=na(n);c.$validators.step=function(a,b){return c.$isEmpty(b)||
A(s)||ge(b,h||0,s)};d.$observe("step",function(a){a!==n&&(s=na(a),n=a,c.$validate())})}},url:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c);c.$validators.url=function(a,b){var d=a||b;return c.$isEmpty(d)||xh.test(d)}},email:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c);c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||yh.test(d)}},radio:function(a,b,d,c){var e=!d.ngTrim||"false"!==V(d.ngTrim);A(d.name)&&b.attr("name",++qb);b.on("change",function(a){var g;b[0].checked&&(g=d.value,e&&(g=
V(g)),c.$setViewValue(g,a&&a.type))});c.$render=function(){var a=d.value;e&&(a=V(a));b[0].checked=a===c.$viewValue};d.$observe("value",c.$render)},range:function(a,b,d,c,e,f){function g(a,c){b.attr(a,d[a]);var e=d[a];d.$observe(a,function(a){a!==e&&(e=a,c(a))})}function k(a){p=na(a);Y(c.$modelValue)||(m?(a=b.val(),p>a&&(a=p,b.val(a)),c.$setViewValue(a)):c.$validate())}function h(a){n=na(a);Y(c.$modelValue)||(m?(a=b.val(),n<a&&(b.val(n),a=n<p?p:n),c.$setViewValue(a)):c.$validate())}function l(a){s=
na(a);Y(c.$modelValue)||(m?c.$viewValue!==b.val()&&c.$setViewValue(b.val()):c.$validate())}Jc(a,b,d,c,"range");fe(c);Sa(a,b,d,c,e,f);var m=c.$$hasNativeValidators&&"range"===b[0].type,p=m?0:void 0,n=m?100:void 0,s=m?1:void 0,r=b[0].validity;a=w(d.min);e=w(d.max);f=w(d.step);var q=c.$render;c.$render=m&&w(r.rangeUnderflow)&&w(r.rangeOverflow)?function(){q();c.$setViewValue(b.val())}:q;a&&(p=na(d.min),c.$validators.min=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||A(p)||b>=p},g("min",k));
e&&(n=na(d.max),c.$validators.max=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||A(n)||b<=n},g("max",h));f&&(s=na(d.step),c.$validators.step=m?function(){return!r.stepMismatch}:function(a,b){return c.$isEmpty(b)||A(s)||ge(b,p||0,s)},g("step",l))},checkbox:function(a,b,d,c,e,f,g,k){var h=he(k,a,"ngTrueValue",d.ngTrueValue,!0),l=he(k,a,"ngFalseValue",d.ngFalseValue,!1);b.on("change",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=
function(a){return!1===a};c.$formatters.push(function(a){return va(a,h)});c.$parsers.push(function(a){return a?h:l})},hidden:E,button:E,submit:E,reset:E,file:E},$c=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,k){k[0]&&(te[K(g.type)]||te.text)(e,f,g,k[0],b,a,d,c)}}}}],Af=function(){var a={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(a){this.setAttribute("value",a)}};
return{restrict:"E",priority:200,compile:function(b,d){if("hidden"===K(d.type))return{pre:function(b,d,f,g){b=d[0];b.parentNode&&b.parentNode.insertBefore(b,b.nextSibling);Object.defineProperty&&Object.defineProperty(b,"value",a)}}}}},zh=/^(true|false|\d+)$/,xf=function(){function a(a,d,c){var e=w(c)?c:9===wa?"":null;a.prop("value",e);d.$set("value",c)}return{restrict:"A",priority:100,compile:function(b,d){return zh.test(d.ngValue)?function(b,d,f){b=b.$eval(f.ngValue);a(d,f,b)}:function(b,d,f){b.$watch(f.ngValue,
function(b){a(d,f,b)})}}}},We=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=jc(a)})}}}}],Ye=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=A(a)?"":a})}}}}],
Xe=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(b){return a.valueOf(b)});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){var d=f(b);c.html(a.getTrustedHtml(d)||"")})}}}}],wf=ia({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Ze=Lc("",!0),af=Lc("Odd",0),$e=Lc("Even",1),bf=Ra({compile:function(a,
b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),cf=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],ed={},Ah={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=xa("ng-"+a);ed[b]=["$parse","$rootScope","$exceptionHandler",function(d,c,e){return sd(d,c,e,b,a,Ah[a])}]});var ff=["$animate","$compile",function(a,b){return{multiElement:!0,
transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var k,h,l;d.$watch(e.ngIf,function(d){d?h||g(function(d,f){h=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);k={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),h&&(h.$destroy(),h=null),k&&(l=ub(k.clone),a.leave(l).done(function(a){!1!==a&&(l=null)}),k=null))})}}}],gf=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",
controller:ca.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",k=e.autoscroll;return function(c,e,m,p,n){var r=0,q,t,x,v=function(){t&&(t.remove(),t=null);q&&(q.$destroy(),q=null);x&&(d.leave(x).done(function(a){!1!==a&&(t=null)}),t=x,x=null)};c.$watch(f,function(f){var m=function(a){!1===a||!w(k)||k&&!c.$eval(k)||b()},t=++r;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&t===r){var b=c.$new();p.template=a;a=n(b,function(a){v();d.enter(a,null,e).done(m)});q=b;x=a;q.$emit("$includeContentLoaded",
f);c.$eval(g)}},function(){c.$$destroyed||t!==r||(v(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(v(),p.template=null)})}}}}],zf=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){la.call(d[0]).match(/SVG/)?(d.empty(),a(gd(e.template,z.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],hf=Ra({priority:450,compile:function(){return{pre:function(a,
b,d){a.$eval(d.ngInit)}}}}),vf=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=d.ngList||", ",f="false"!==d.ngTrim,g=f?V(e):e;c.$parsers.push(function(a){if(!A(a)){var b=[];a&&r(a.split(g),function(a){a&&b.push(f?V(a):a)});return b}});c.$formatters.push(function(a){if(H(a))return a.join(e)});c.$isEmpty=function(a){return!a||!a.length}}}},nb="ng-valid",be="ng-invalid",Za="ng-pristine",Wb="ng-dirty",pb=F("ngModel");Sb.$inject="$scope $exceptionHandler $attrs $element $parse $animate $timeout $q $interpolate".split(" ");
Sb.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var a=this.$$parse(this.$$attr.ngModel+"()"),b=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(b){var c=this.$$parsedNgModel(b);B(c)&&(c=a(b));return c};this.$$ngModelSet=function(a,c){B(this.$$parsedNgModel(a))?b(a,{$$$p:c}):this.$$parsedNgModelAssign(a,c)}}else if(!this.$$parsedNgModel.assign)throw pb("nonassign",this.$$attr.ngModel,Aa(this.$$element));},$render:E,$isEmpty:function(a){return A(a)||
""===a||null===a||a!==a},$$updateEmptyClasses:function(a){this.$isEmpty(a)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,"ng-not-empty"))},$setPristine:function(){this.$dirty=!1;this.$pristine=!0;this.$$animate.removeClass(this.$$element,Wb);this.$$animate.addClass(this.$$element,Za)},$setDirty:function(){this.$dirty=!0;this.$pristine=!1;this.$$animate.removeClass(this.$$element,
Za);this.$$animate.addClass(this.$$element,Wb);this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1;this.$untouched=!0;this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=!0;this.$untouched=!1;this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce);this.$viewValue=this.$$lastCommittedViewValue;this.$render()},$validate:function(){if(!Y(this.$modelValue)){var a=
this.$$lastCommittedViewValue,b=this.$$rawModelValue,d=this.$valid,c=this.$modelValue,e=this.$options.getOption("allowInvalid"),f=this;this.$$runValidators(b,a,function(a){e||d===a||(f.$modelValue=a?b:void 0,f.$modelValue!==c&&f.$$writeModelToScope())})}},$$runValidators:function(a,b,d){function c(){var c=!0;r(h.$validators,function(d,e){var g=Boolean(d(a,b));c=c&&g;f(e,g)});return c?!0:(r(h.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;r(h.$asyncValidators,function(e,
g){var h=e(a,b);if(!h||!B(h.then))throw pb("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?h.$$q.all(c).then(function(){g(d)},E):g(!0)}function f(a,b){k===h.$$currentValidationRunId&&h.$setValidity(a,b)}function g(a){k===h.$$currentValidationRunId&&d(a)}this.$$currentValidationRunId++;var k=this.$$currentValidationRunId,h=this;(function(){var a=h.$$parserName;if(A(h.$$parserValid))f(a,null);else return h.$$parserValid||(r(h.$validators,function(a,
b){f(b,null)}),r(h.$asyncValidators,function(a,b){f(b,null)})),f(a,h.$$parserValid),h.$$parserValid;return!0})()?c()?e():g(!1):g(!1)},$commitViewValue:function(){var a=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce);if(this.$$lastCommittedViewValue!==a||""===a&&this.$$hasNativeValidators)this.$$updateEmptyClasses(a),this.$$lastCommittedViewValue=a,this.$pristine&&this.$setDirty(),this.$$parseAndValidate()},$$parseAndValidate:function(){var a=this.$$lastCommittedViewValue,b=this;this.$$parserValid=
A(a)?void 0:!0;this.$setValidity(this.$$parserName,null);this.$$parserName="parse";if(this.$$parserValid)for(var d=0;d<this.$parsers.length;d++)if(a=this.$parsers[d](a),A(a)){this.$$parserValid=!1;break}Y(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$scope));var c=this.$modelValue,e=this.$options.getOption("allowInvalid");this.$$rawModelValue=a;e&&(this.$modelValue=a,b.$modelValue!==c&&b.$$writeModelToScope());this.$$runValidators(a,this.$$lastCommittedViewValue,function(d){e||(b.$modelValue=
d?a:void 0,b.$modelValue!==c&&b.$$writeModelToScope())})},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue);r(this.$viewChangeListeners,function(a){try{a()}catch(b){this.$$exceptionHandler(b)}},this)},$setViewValue:function(a,b){this.$viewValue=a;this.$options.getOption("updateOnDefault")&&this.$$debounceViewValueCommit(b)},$$debounceViewValueCommit:function(a){var b=this.$options.getOption("debounce");X(b[a])?b=b[a]:X(b["default"])&&-1===this.$options.getOption("updateOn").indexOf(a)?
b=b["default"]:X(b["*"])&&(b=b["*"]);this.$$timeout.cancel(this.$$pendingDebounce);var d=this;0<b?this.$$pendingDebounce=this.$$timeout(function(){d.$commitViewValue()},b):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply(function(){d.$commitViewValue()})},$overrideModelOptions:function(a){this.$options=this.$options.createChild(a);this.$$setUpdateOnEvents()},$processModelValue:function(){var a=this.$$format();this.$viewValue!==a&&(this.$$updateEmptyClasses(a),this.$viewValue=this.$$lastCommittedViewValue=
a,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,E))},$$format:function(){for(var a=this.$formatters,b=a.length,d=this.$modelValue;b--;)d=a[b](d);return d},$$setModelValue:function(a){this.$modelValue=this.$$rawModelValue=a;this.$$parserValid=void 0;this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler);if(this.$$updateEvents=this.$options.getOption("updateOn"))this.$$element.on(this.$$updateEvents,
this.$$updateEventHandler)},$$updateEventHandler:function(a){this.$$debounceViewValueCommit(a&&a.type)}};ce({clazz:Sb,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]}});var uf=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Sb,priority:1,compile:function(b){b.addClass(Za).addClass("ng-untouched").addClass(nb);return{pre:function(a,b,e,f){var g=f[0];b=f[1]||g.$$parentForm;if(f=f[2])g.$options=f.$options;g.$$initGetterSetters();b.$addControl(g);
e.$observe("name",function(a){g.$name!==a&&g.$$parentForm.$$renameControl(g,a)});a.$on("$destroy",function(){g.$$parentForm.$removeControl(g)})},post:function(b,c,e,f){function g(){k.$setTouched()}var k=f[0];k.$$setUpdateOnEvents();c.on("blur",function(){k.$touched||(a.$$phase?b.$evalAsync(g):b.$apply(g))})}}}}}],Tb,Bh=/(\s+|^)default(\s+|$)/;Mc.prototype={getOption:function(a){return this.$$options[a]},createChild:function(a){var b=!1;a=S({},a);r(a,function(d,c){"$inherit"===d?"*"===c?b=!0:(a[c]=
this.$$options[c],"updateOn"===c&&(a.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===c&&(a.updateOnDefault=!1,a[c]=V(d.replace(Bh,function(){a.updateOnDefault=!0;return" "})))},this);b&&(delete a["*"],ie(a,this.$$options));ie(a,Tb.$$options);return new Mc(a)}};Tb=new Mc({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var yf=function(){function a(a,d){this.$$attrs=a;this.$$scope=d}a.$inject=["$attrs","$scope"];a.prototype={$onInit:function(){var a=
this.parentCtrl?this.parentCtrl.$options:Tb,d=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=a.createChild(d)}};return{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:a}},jf=Ra({terminal:!0,priority:1E3}),Ch=F("ngOptions"),Dh=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,
sf=["$compile","$document","$parse",function(a,b,d){function c(a,b,c){function e(a,b,c,d,f){this.selectValue=a;this.viewValue=b;this.label=c;this.group=d;this.disabled=f}function f(a){var b;if(!r&&za(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&"$"!==c.charAt(0)&&b.push(c)}return b}var p=a.match(Dh);if(!p)throw Ch("iexp",a,Aa(b));var n=p[5]||p[7],r=p[6];a=/ as /.test(p[0])&&p[1];var q=p[9];b=d(p[2]?p[1]:n);var t=a&&d(a)||b,w=q&&d(q),v=q?function(a,b){return w(c,b)}:function(a){return La(a)},
x=function(a,b){return v(a,B(a,b))},A=d(p[2]||p[1]),y=d(p[3]||""),J=d(p[4]||""),I=d(p[8]),z={},B=r?function(a,b){z[r]=b;z[n]=a;return z}:function(a){z[n]=a;return z};return{trackBy:q,getTrackByValue:x,getWatchables:d(I,function(a){var b=[];a=a||[];for(var d=f(a),e=d.length,g=0;g<e;g++){var k=a===d?g:d[g],l=a[k],k=B(l,k),l=v(l,k);b.push(l);if(p[2]||p[1])l=A(c,k),b.push(l);p[4]&&(k=J(c,k),b.push(k))}return b}),getOptions:function(){for(var a=[],b={},d=I(c)||[],g=f(d),k=g.length,n=0;n<k;n++){var p=d===
g?n:g[n],r=B(d[p],p),s=t(c,r),p=v(s,r),w=A(c,r),z=y(c,r),r=J(c,r),s=new e(p,s,w,z,r);a.push(s);b[p]=s}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[x(a)]},getViewValueFromOption:function(a){return q?Ia(a.viewValue):a.viewValue}}}}}var e=z.document.createElement("option"),f=z.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=E},post:function(d,k,h,l){function m(a){var b=(a=v.getOptionFromViewValue(a))&&
a.element;b&&!b.selected&&(b.selected=!0);return a}function p(a,b){a.element=b;b.disabled=a.disabled;a.label!==b.label&&(b.label=a.label,b.textContent=a.label);b.value=a.selectValue}var n=l[0],q=l[1],A=h.multiple;l=0;for(var t=k.children(),z=t.length;l<z;l++)if(""===t[l].value){n.hasEmptyOption=!0;n.emptyOption=t.eq(l);break}k.empty();l=!!n.emptyOption;x(e.cloneNode(!1)).val("?");var v,B=c(h.ngOptions,k,d),C=b[0].createDocumentFragment();n.generateUnknownOptionValue=function(a){return"?"};A?(n.writeValue=
function(a){if(v){var b=a&&a.map(m)||[];v.items.forEach(function(a){a.element.selected&&-1===Array.prototype.indexOf.call(b,a)&&(a.element.selected=!1)})}},n.readValue=function(){var a=k.val()||[],b=[];r(a,function(a){(a=v.selectValueMap[a])&&!a.disabled&&b.push(v.getViewValueFromOption(a))});return b},B.trackBy&&d.$watchCollection(function(){if(H(q.$viewValue))return q.$viewValue.map(function(a){return B.getTrackByValue(a)})},function(){q.$render()})):(n.writeValue=function(a){if(v){var b=k[0].options[k[0].selectedIndex],
c=v.getOptionFromViewValue(a);b&&b.removeAttribute("selected");c?(k[0].value!==c.selectValue&&(n.removeUnknownOption(),k[0].value=c.selectValue,c.element.selected=!0),c.element.setAttribute("selected","selected")):n.selectUnknownOrEmptyOption(a)}},n.readValue=function(){var a=v.selectValueMap[k.val()];return a&&!a.disabled?(n.unselectEmptyOption(),n.removeUnknownOption(),v.getViewValueFromOption(a)):null},B.trackBy&&d.$watch(function(){return B.getTrackByValue(q.$viewValue)},function(){q.$render()}));
l&&(a(n.emptyOption)(d),k.prepend(n.emptyOption),8===n.emptyOption[0].nodeType?(n.hasEmptyOption=!1,n.registerOption=function(a,b){""===b.val()&&(n.hasEmptyOption=!0,n.emptyOption=b,n.emptyOption.removeClass("ng-scope"),q.$render(),b.on("$destroy",function(){var a=n.$isEmptyOptionSelected();n.hasEmptyOption=!1;n.emptyOption=void 0;a&&q.$render()}))}):n.emptyOption.removeClass("ng-scope"));d.$watchCollection(B.getWatchables,function(){var a=v&&n.readValue();if(v)for(var b=v.items.length-1;0<=b;b--){var c=
v.items[b];w(c.group)?Gb(c.element.parentNode):Gb(c.element)}v=B.getOptions();var d={};v.items.forEach(function(a){var b;if(w(a.group)){b=d[a.group];b||(b=f.cloneNode(!1),C.appendChild(b),b.label=null===a.group?"null":a.group,d[a.group]=b);var c=e.cloneNode(!1);b.appendChild(c);p(a,c)}else b=e.cloneNode(!1),C.appendChild(b),p(a,b)});k[0].appendChild(C);q.$render();q.$isEmpty(a)||(b=n.readValue(),(B.trackBy||A?va(a,b):a===b)||(q.$setViewValue(b),q.$render()))})}}}}],kf=["$locale","$interpolate","$log",
function(a,b,d){var c=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(f,g,k){function h(a){g.text(a||"")}var l=k.count,m=k.$attr.when&&g.attr(k.$attr.when),p=k.offset||0,n=f.$eval(m)||{},q={},w=b.startSymbol(),t=b.endSymbol(),x=w+l+"-"+p+t,v=ca.noop,z;r(k,function(a,b){var c=e.exec(b);c&&(c=(c[1]?"-":"")+K(c[2]),n[c]=g.attr(k.$attr[b]))});r(n,function(a,d){q[d]=b(a.replace(c,x))});f.$watch(l,function(b){var c=parseFloat(b),e=Y(c);e||c in n||(c=a.pluralCat(c-p));c===z||e&&Y(z)||(v(),e=q[c],A(e)?
(null!=b&&d.debug("ngPluralize: no rule defined for '"+c+"' in "+m),v=E,h()):v=f.$watch(e,h),z=c)})}}}],ue=F("ngRef"),lf=["$parse",function(a){return{priority:-1,restrict:"A",compile:function(b,d){var c=xa(ua(b)),e=a(d.ngRef),f=e.assign||function(){throw ue("nonassign",d.ngRef);};return function(a,b,h){var l;if(h.hasOwnProperty("ngRefRead"))if("$element"===h.ngRefRead)l=b;else{if(l=b.data("$"+h.ngRefRead+"Controller"),!l)throw ue("noctrl",h.ngRefRead,d.ngRef);}else l=b.data("$"+c+"Controller");l=
l||b;f(a,l);b.on("$destroy",function(){e(a)===l&&f(a,null)})}}}}],mf=["$parse","$animate","$compile",function(a,b,d){var c=F("ngRepeat"),e=function(a,b,c,d,e,f,g){a[c]=d;e&&(a[e]=f);a.$index=b;a.$first=0===b;a.$last=b===g-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=0===(b&1))},f=function(a,b,c){return La(c)},g=function(a,b){return b};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(k,h){var l=h.ngRepeat,m=d.$$createComment("end ngRepeat",
l),p=l.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!p)throw c("iexp",l);var n=p[1],q=p[2],w=p[3],t=p[4],p=n.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/);if(!p)throw c("iidexp",n);var x=p[3]||p[1],v=p[2];if(w&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(w)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(w)))throw c("badident",w);var A;if(t){var z={$id:La},y=a(t);A=function(a,b,c,d){v&&
(z[v]=b);z[x]=c;z.$index=d;return y(a,z)}}return function(a,d,h,k,n){var p=T();a.$watchCollection(q,function(h){var k,q,t=d[0],s,y=T(),B,C,E,D,H,F,K;w&&(a[w]=h);if(za(h))H=h,q=A||f;else for(K in q=A||g,H=[],h)ta.call(h,K)&&"$"!==K.charAt(0)&&H.push(K);B=H.length;K=Array(B);for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],D=q(a,C,E,k),p[D])F=p[D],delete p[D],y[D]=F,K[k]=F;else{if(y[D])throw r(K,function(a){a&&a.scope&&(p[a.id]=a)}),c("dupes",l,D,E);K[k]={id:D,scope:void 0,clone:void 0};y[D]=!0}z&&(z[x]=void 0);
for(s in p){F=p[s];D=ub(F.clone);b.leave(D);if(D[0].parentNode)for(k=0,q=D.length;k<q;k++)D[k].$$NG_REMOVED=!0;F.scope.$destroy()}for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],F=K[k],F.scope){s=t;do s=s.nextSibling;while(s&&s.$$NG_REMOVED);F.clone[0]!==s&&b.move(ub(F.clone),null,t);t=F.clone[F.clone.length-1];e(F.scope,k,x,E,v,C,B)}else n(function(a,c){F.scope=c;var d=m.cloneNode(!1);a[a.length++]=d;b.enter(a,null,t);t=d;F.clone=a;y[F.id]=F;e(F.scope,k,x,E,v,C,B)});p=y})}}}}],nf=["$animate",function(a){return{restrict:"A",
multiElement:!0,link:function(b,d,c){b.$watch(c.ngShow,function(b){a[b?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],ef=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngHide,function(b){a[b?"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],of=Ra(function(a,b,d){a.$watchCollection(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,c){b.css(c,"")});a&&b.css(a)})}),pf=["$animate","$compile",function(a,
b){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(d,c,e,f){var g=[],k=[],h=[],l=[],m=function(a,b){return function(c){!1!==c&&a.splice(b,1)}};d.$watch(e.ngSwitch||e.on,function(c){for(var d,e;h.length;)a.cancel(h.pop());d=0;for(e=l.length;d<e;++d){var q=ub(k[d].clone);l[d].$destroy();(h[d]=a.leave(q)).done(m(h,d))}k.length=0;l.length=0;(g=f.cases["!"+c]||f.cases["?"])&&r(g,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.$$createComment("end ngSwitchWhen");
k.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],qf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){a=d.ngSwitchWhen.split(d.ngSwitchWhenSeparator).sort().filter(function(a,b,c){return c[b-1]!==a});r(a,function(a){c.cases["!"+a]=c.cases["!"+a]||[];c.cases["!"+a].push({transclude:e,element:b})})}}),rf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["?"]=c.cases["?"]||[];c.cases["?"].push({transclude:e,
element:b})}}),Eh=F("ngTransclude"),tf=["$compile",function(a){return{restrict:"EAC",compile:function(b){var d=a(b.contents());b.empty();return function(a,b,f,g,k){function h(){d(a,function(a){b.append(a)})}if(!k)throw Eh("orphan",Aa(b));f.ngTransclude===f.$attr.ngTransclude&&(f.ngTransclude="");f=f.ngTransclude||f.ngTranscludeSlot;k(function(a,c){var d;if(d=a.length)a:{d=0;for(var f=a.length;d<f;d++){var g=a[d];if(g.nodeType!==Pa||g.nodeValue.trim()){d=!0;break a}}d=void 0}d?b.append(a):(h(),c.$destroy())},
null,f);f&&!k.isSlotFilled(f)&&h()}}}}],Te=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,d){"text/ng-template"===d.type&&a.put(d.id,b[0].text)}}}],Fh={$setViewValue:E,$render:E},Gh=["$element","$scope",function(a,b){function d(){g||(g=!0,b.$$postDigest(function(){g=!1;e.ngModelCtrl.$render()}))}function c(a){k||(k=!0,b.$$postDigest(function(){b.$$destroyed||(k=!1,e.ngModelCtrl.$setViewValue(e.readValue()),a&&e.ngModelCtrl.$render())}))}var e=this,f=new Ib;e.selectValueMap=
{};e.ngModelCtrl=Fh;e.multiple=!1;e.unknownOption=x(z.document.createElement("option"));e.hasEmptyOption=!1;e.emptyOption=void 0;e.renderUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);a.prepend(e.unknownOption);Oa(e.unknownOption,!0);a.val(b)};e.updateUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);Oa(e.unknownOption,!0);a.val(b)};e.generateUnknownOptionValue=function(a){return"? "+La(a)+" ?"};e.removeUnknownOption=function(){e.unknownOption.parent()&&
e.unknownOption.remove()};e.selectEmptyOption=function(){e.emptyOption&&(a.val(""),Oa(e.emptyOption,!0))};e.unselectEmptyOption=function(){e.hasEmptyOption&&Oa(e.emptyOption,!1)};b.$on("$destroy",function(){e.renderUnknownOption=E});e.readValue=function(){var b=a.val(),b=b in e.selectValueMap?e.selectValueMap[b]:b;return e.hasOption(b)?b:null};e.writeValue=function(b){var c=a[0].options[a[0].selectedIndex];c&&Oa(x(c),!1);e.hasOption(b)?(e.removeUnknownOption(),c=La(b),a.val(c in e.selectValueMap?
c:b),Oa(x(a[0].options[a[0].selectedIndex]),!0)):e.selectUnknownOrEmptyOption(b)};e.addOption=function(a,b){if(8!==b[0].nodeType){Ja(a,'"option value"');""===a&&(e.hasEmptyOption=!0,e.emptyOption=b);var c=f.get(a)||0;f.set(a,c+1);d()}};e.removeOption=function(a){var b=f.get(a);b&&(1===b?(f.delete(a),""===a&&(e.hasEmptyOption=!1,e.emptyOption=void 0)):f.set(a,b-1))};e.hasOption=function(a){return!!f.get(a)};e.$hasEmptyOption=function(){return e.hasEmptyOption};e.$isUnknownOptionSelected=function(){return a[0].options[0]===
e.unknownOption[0]};e.$isEmptyOptionSelected=function(){return e.hasEmptyOption&&a[0].options[a[0].selectedIndex]===e.emptyOption[0]};e.selectUnknownOrEmptyOption=function(a){null==a&&e.emptyOption?(e.removeUnknownOption(),e.selectEmptyOption()):e.unknownOption.parent().length?e.updateUnknownOption(a):e.renderUnknownOption(a)};var g=!1,k=!1;e.registerOption=function(a,b,f,g,k){if(f.$attr.ngValue){var q,r;f.$observe("value",function(a){var d,f=b.prop("selected");w(r)&&(e.removeOption(q),delete e.selectValueMap[r],
d=!0);r=La(a);q=a;e.selectValueMap[r]=a;e.addOption(a,b);b.attr("value",r);d&&f&&c()})}else g?f.$observe("value",function(a){e.readValue();var d,f=b.prop("selected");w(q)&&(e.removeOption(q),d=!0);q=a;e.addOption(a,b);d&&f&&c()}):k?a.$watch(k,function(a,d){f.$set("value",a);var g=b.prop("selected");d!==a&&e.removeOption(d);e.addOption(a,b);d&&g&&c()}):e.addOption(f.value,b);f.$observe("disabled",function(a){if("true"===a||a&&b.prop("selected"))e.multiple?c(!0):(e.ngModelCtrl.$setViewValue(null),e.ngModelCtrl.$render())});
b.on("$destroy",function(){var a=e.readValue(),b=f.value;e.removeOption(b);d();(e.multiple&&a&&-1!==a.indexOf(b)||a===b)&&c(!0)})}}],Ue=function(){return{restrict:"E",require:["select","?ngModel"],controller:Gh,priority:1,link:{pre:function(a,b,d,c){var e=c[0],f=c[1];if(f){if(e.ngModelCtrl=f,b.on("change",function(){e.removeUnknownOption();a.$apply(function(){f.$setViewValue(e.readValue())})}),d.multiple){e.multiple=!0;e.readValue=function(){var a=[];r(b.find("option"),function(b){b.selected&&!b.disabled&&
(b=b.value,a.push(b in e.selectValueMap?e.selectValueMap[b]:b))});return a};e.writeValue=function(a){r(b.find("option"),function(b){var c=!!a&&(-1!==Array.prototype.indexOf.call(a,b.value)||-1!==Array.prototype.indexOf.call(a,e.selectValueMap[b.value]));c!==b.selected&&Oa(x(b),c)})};var g,k=NaN;a.$watch(function(){k!==f.$viewValue||va(g,f.$viewValue)||(g=ja(f.$viewValue),f.$render());k=f.$viewValue});f.$isEmpty=function(a){return!a||0===a.length}}}else e.registerOption=E},post:function(a,b,d,c){var e=
c[1];if(e){var f=c[0];e.$render=function(){f.writeValue(e.$viewValue)}}}}}},Ve=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(b,d){var c,e;w(d.ngValue)||(w(d.value)?c=a(d.value,!0):(e=a(b.text(),!0))||d.$set("value",b.text()));return function(a,b,d){var h=b.parent();(h=h.data("$selectController")||h.parent().data("$selectController"))&&h.registerOption(a,b,d,c,e)}}}}],bd=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=
c.hasOwnProperty("required")||a(c.ngRequired)(b);c.ngRequired||(c.required=!0);e.$validators.required=function(a,b){return!f||!e.$isEmpty(b)};c.$observe("required",function(a){f!==a&&(f=a,e.$validate())})}}}}],ad=["$parse",function(a){return{restrict:"A",require:"?ngModel",compile:function(b,d){var c,e;d.ngPattern&&(c=d.ngPattern,e="/"===d.ngPattern.charAt(0)&&ke.test(d.ngPattern)?function(){return d.ngPattern}:a(d.ngPattern));return function(a,b,d,h){if(h){var l=d.pattern;d.ngPattern?l=e(a):c=d.pattern;
var m=je(l,c,b);d.$observe("pattern",function(a){var d=m;m=je(a,c,b);(d&&d.toString())!==(m&&m.toString())&&h.$validate()});h.$validators.pattern=function(a,b){return h.$isEmpty(b)||A(m)||m.test(b)}}}}}}],dd=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.maxlength||a(c.ngMaxlength)(b),g=Ub(f);c.$observe("maxlength",function(a){f!==a&&(g=Ub(a),f=a,e.$validate())});e.$validators.maxlength=function(a,b){return 0>g||e.$isEmpty(b)||b.length<=g}}}}}],cd=
["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.minlength||a(c.ngMinlength)(b),g=Ub(f)||-1;c.$observe("minlength",function(a){f!==a&&(g=Ub(a)||-1,f=a,e.$validate())});e.$validators.minlength=function(a,b){return e.$isEmpty(b)||b.length>=g}}}}}];z.angular.bootstrap?z.console&&console.log("WARNING: Tried to load AngularJS more than once."):(Je(),Oe(ca),ca.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1==
b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),
WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a,
c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),x(function(){Ee(z.document,Wc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(window.angular.element("<style>").text('@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}'));
//# sourceMappingURL=angular.min.js.map
/**
 * Bunch of useful filters for angularJS(with no external dependencies!)
 * @version v0.5.5 - 2015-08-07 * @link https://github.com/a8m/angular-filter
 * @author Ariel Mashraki <ariel@mashraki.co.il>
 * @license MIT License, http://www.opensource.org/licenses/MIT
 */!function (a, b, c) { "use strict"; function d(a) { return D(a) ? a : Object.keys(a).map(function (b) { return a[b] }) } function e(a) { return null === a } function f(a, b) { var d = Object.keys(a); return -1 == d.map(function (d) { return b[d] !== c && b[d] == a[d] }).indexOf(!1) } function g(a, b) { if ("" === b) return a; var c = a.indexOf(b.charAt(0)); return -1 === c ? !1 : g(a.substr(c + 1), b.substr(1)) } function h(a, b, c) { var d = 0; return a.filter(function (a) { var e = x(c) ? b > d && c(a) : b > d; return d = e ? d + 1 : d, e }) } function i(a, b, c) { return c.round(a * c.pow(10, b)) / c.pow(10, b) } function j(a, b, c) { b = b || []; var d = Object.keys(a); return d.forEach(function (d) { if (C(a[d]) && !D(a[d])) { var e = c ? c + "." + d : c; j(a[d], b, e || d) } else { var f = c ? c + "." + d : d; b.push(f) } }), b } function k(a) { return a && a.$evalAsync && a.$watch } function l() { return function (a, b) { return a > b } } function m() { return function (a, b) { return a >= b } } function n() { return function (a, b) { return b > a } } function o() { return function (a, b) { return b >= a } } function p() { return function (a, b) { return a == b } } function q() { return function (a, b) { return a != b } } function r() { return function (a, b) { return a === b } } function s() { return function (a, b) { return a !== b } } function t(a) { return function (b, c) { return b = C(b) ? d(b) : b, !D(b) || y(c) ? !1 : b.some(function (b) { return C(b) || z(c) ? a(c)(b) : b === c }) } } function u(a, b) { return b = b || 0, b >= a.length ? a : D(a[b]) ? u(a.slice(0, b).concat(a[b], a.slice(b + 1)), b) : u(a, b + 1) } function v(a) { return function (b, c) { function e(a, b) { return y(b) ? !1 : a.some(function (a) { return H(a, b) }) } if (b = C(b) ? d(b) : b, !D(b)) return b; var f = [], g = a(c); return y(c) ? b.filter(function (a, b, c) { return c.indexOf(a) === b }) : b.filter(function (a) { var b = g(a); return e(f, b) ? !1 : (f.push(b), !0) }) } } function w(a, b, c) { return b ? a + c + w(a, --b, c) : a } var x = b.isDefined, y = b.isUndefined, z = b.isFunction, A = b.isString, B = b.isNumber, C = b.isObject, D = b.isArray, E = b.forEach, F = b.extend, G = b.copy, H = b.equals; String.prototype.contains || (String.prototype.contains = function () { return -1 !== String.prototype.indexOf.apply(this, arguments) }), b.module("a8m.angular", []).filter("isUndefined", function () { return function (a) { return b.isUndefined(a) } }).filter("isDefined", function () { return function (a) { return b.isDefined(a) } }).filter("isFunction", function () { return function (a) { return b.isFunction(a) } }).filter("isString", function () { return function (a) { return b.isString(a) } }).filter("isNumber", function () { return function (a) { return b.isNumber(a) } }).filter("isArray", function () { return function (a) { return b.isArray(a) } }).filter("isObject", function () { return function (a) { return b.isObject(a) } }).filter("isEqual", function () { return function (a, c) { return b.equals(a, c) } }), b.module("a8m.conditions", []).filter({ isGreaterThan: l, ">": l, isGreaterThanOrEqualTo: m, ">=": m, isLessThan: n, "<": n, isLessThanOrEqualTo: o, "<=": o, isEqualTo: p, "==": p, isNotEqualTo: q, "!=": q, isIdenticalTo: r, "===": r, isNotIdenticalTo: s, "!==": s }), b.module("a8m.is-null", []).filter("isNull", function () { return function (a) { return e(a) } }), b.module("a8m.after-where", []).filter("afterWhere", function () { return function (a, b) { if (a = C(a) ? d(a) : a, !D(a) || y(b)) return a; var c = a.map(function (a) { return f(b, a) }).indexOf(!0); return a.slice(-1 === c ? 0 : c) } }), b.module("a8m.after", []).filter("after", function () { return function (a, b) { return a = C(a) ? d(a) : a, D(a) ? a.slice(b) : a } }), b.module("a8m.before-where", []).filter("beforeWhere", function () { return function (a, b) { if (a = C(a) ? d(a) : a, !D(a) || y(b)) return a; var c = a.map(function (a) { return f(b, a) }).indexOf(!0); return a.slice(0, -1 === c ? a.length : ++c) } }), b.module("a8m.before", []).filter("before", function () { return function (a, b) { return a = C(a) ? d(a) : a, D(a) ? a.slice(0, b ? --b : b) : a } }), b.module("a8m.chunk-by", []).filter("chunkBy", [function () { function a(a, b) { for (var c = []; a--;) c[a] = b; return c } return function (b, c, d) { return D(b) ? b.map(function (b, e, f) { return e *= c, b = f.slice(e, e + c), !y(d) && b.length < c ? b.concat(a(c - b.length, d)) : b }).slice(0, Math.ceil(b.length / c)) : b } }]), b.module("a8m.concat", []).filter("concat", [function () { return function (a, b) { if (y(b)) return a; if (D(a)) return C(b) ? a.concat(d(b)) : a.concat(b); if (C(a)) { var c = d(a); return C(b) ? c.concat(d(b)) : c.concat(b) } return a } }]), b.module("a8m.contains", []).filter({ contains: ["$parse", t], some: ["$parse", t] }), b.module("a8m.count-by", []).filter("countBy", ["$parse", function (a) { return function (b, c) { var e, f = {}, g = a(c); return b = C(b) ? d(b) : b, !D(b) || y(c) ? b : (b.forEach(function (a) { e = g(a), f[e] || (f[e] = 0), f[e]++ }), f) } }]), b.module("a8m.defaults", []).filter("defaults", ["$parse", function (a) { return function (b, c) { if (b = C(b) ? d(b) : b, !D(b) || !C(c)) return b; var e = j(c); return b.forEach(function (b) { e.forEach(function (d) { var e = a(d), f = e.assign; y(e(b)) && f(b, e(c)) }) }), b } }]), b.module("a8m.every", []).filter("every", ["$parse", function (a) { return function (b, c) { return b = C(b) ? d(b) : b, !D(b) || y(c) ? !0 : b.every(function (b) { return C(b) || z(c) ? a(c)(b) : b === c }) } }]), b.module("a8m.filter-by", []).filter("filterBy", ["$parse", function (a) { return function (b, e, f) { var g; return f = A(f) || B(f) ? String(f).toLowerCase() : c, b = C(b) ? d(b) : b, !D(b) || y(f) ? b : b.filter(function (b) { return e.some(function (c) { if (~c.indexOf("+")) { var d = c.replace(new RegExp("\\s", "g"), "").split("+"); g = d.reduce(function (c, d, e) { return 1 === e ? a(c)(b) + " " + a(d)(b) : c + " " + a(d)(b) }) } else g = a(c)(b); return A(g) || B(g) ? String(g).toLowerCase().contains(f) : !1 }) }) } }]), b.module("a8m.first", []).filter("first", ["$parse", function (a) { return function (b) { var e, f, g; return b = C(b) ? d(b) : b, D(b) ? (g = Array.prototype.slice.call(arguments, 1), e = B(g[0]) ? g[0] : 1, f = B(g[0]) ? B(g[1]) ? c : g[1] : g[0], g.length ? h(b, e, f ? a(f) : f) : b[0]) : b } }]), b.module("a8m.flatten", []).filter("flatten", function () { return function (a, b) { return b = b || !1, a = C(a) ? d(a) : a, D(a) ? b ? [].concat.apply([], a) : u(a, 0) : a } }), b.module("a8m.fuzzy-by", []).filter("fuzzyBy", ["$parse", function (a) { return function (b, c, e, f) { var h, i, j = f || !1; return b = C(b) ? d(b) : b, !D(b) || y(c) || y(e) ? b : (i = a(c), b.filter(function (a) { return h = i(a), A(h) ? (h = j ? h : h.toLowerCase(), e = j ? e : e.toLowerCase(), g(h, e) !== !1) : !1 })) } }]), b.module("a8m.fuzzy", []).filter("fuzzy", function () { return function (a, b, c) { function e(a, b) { var c, d, e = Object.keys(a); return 0 < e.filter(function (e) { return c = a[e], d ? !0 : A(c) ? (c = f ? c : c.toLowerCase(), d = g(c, b) !== !1) : !1 }).length } var f = c || !1; return a = C(a) ? d(a) : a, !D(a) || y(b) ? a : (b = f ? b : b.toLowerCase(), a.filter(function (a) { return A(a) ? (a = f ? a : a.toLowerCase(), g(a, b) !== !1) : C(a) ? e(a, b) : !1 })) } }), b.module("a8m.group-by", ["a8m.filter-watcher"]).filter("groupBy", ["$parse", "filterWatcher", function (a, b) { return function (c, d) { function e(a, b) { var c, d = {}; return E(a, function (a) { c = b(a), d[c] || (d[c] = []), d[c].push(a) }), d } if (!C(c) || y(d)) return c; var f = a(d); return b.isMemoized("groupBy", arguments) || b.memoize("groupBy", arguments, this, e(c, f)) } }]), b.module("a8m.is-empty", []).filter("isEmpty", function () { return function (a) { return C(a) ? !d(a).length : !a.length } }), b.module("a8m.join", []).filter("join", function () { return function (a, b) { return y(a) || !D(a) ? a : (y(b) && (b = " "), a.join(b)) } }), b.module("a8m.last", []).filter("last", ["$parse", function (a) { return function (b) { var e, f, g, i = G(b); return i = C(i) ? d(i) : i, D(i) ? (g = Array.prototype.slice.call(arguments, 1), e = B(g[0]) ? g[0] : 1, f = B(g[0]) ? B(g[1]) ? c : g[1] : g[0], g.length ? h(i.reverse(), e, f ? a(f) : f).reverse() : i[i.length - 1]) : i } }]), b.module("a8m.map", []).filter("map", ["$parse", function (a) { return function (b, c) { return b = C(b) ? d(b) : b, !D(b) || y(c) ? b : b.map(function (b) { return a(c)(b) }) } }]), b.module("a8m.omit", []).filter("omit", ["$parse", function (a) { return function (b, c) { return b = C(b) ? d(b) : b, !D(b) || y(c) ? b : b.filter(function (b) { return !a(c)(b) }) } }]), b.module("a8m.pick", []).filter("pick", ["$parse", function (a) { return function (b, c) { return b = C(b) ? d(b) : b, !D(b) || y(c) ? b : b.filter(function (b) { return a(c)(b) }) } }]), b.module("a8m.range", []).filter("range", function () { return function (a, b) { for (var c = 0; c < parseInt(b) ; c++) a.push(c); return a } }), b.module("a8m.remove-with", []).filter("removeWith", function () { return function (a, b) { return y(b) ? a : (a = C(a) ? d(a) : a, a.filter(function (a) { return !f(b, a) })) } }), b.module("a8m.remove", []).filter("remove", function () { return function (a) { a = C(a) ? d(a) : a; var b = Array.prototype.slice.call(arguments, 1); return D(a) ? a.filter(function (a) { return !b.some(function (b) { return H(b, a) }) }) : a } }), b.module("a8m.reverse", []).filter("reverse", [function () { return function (a) { return a = C(a) ? d(a) : a, A(a) ? a.split("").reverse().join("") : D(a) ? a.slice().reverse() : a } }]), b.module("a8m.search-field", []).filter("searchField", ["$parse", function (a) { return function (b) { var c, e; b = C(b) ? d(b) : b; var f = Array.prototype.slice.call(arguments, 1); return D(b) && f.length ? b.map(function (b) { return e = f.map(function (d) { return (c = a(d))(b) }).join(" "), F(b, { searchField: e }) }) : b } }]), b.module("a8m.to-array", []).filter("toArray", function () { return function (a, b) { return C(a) ? b ? Object.keys(a).map(function (b) { return F(a[b], { $key: b }) }) : d(a) : a } }), b.module("a8m.unique", []).filter({ unique: ["$parse", v], uniq: ["$parse", v] }), b.module("a8m.where", []).filter("where", function () { return function (a, b) { return y(b) ? a : (a = C(a) ? d(a) : a, a.filter(function (a) { return f(b, a) })) } }), b.module("a8m.xor", []).filter("xor", ["$parse", function (a) { return function (b, c, e) { function f(b, c) { var d = a(e); return c.some(function (a) { return e ? H(d(a), d(b)) : H(a, b) }) } return e = e || !1, b = C(b) ? d(b) : b, c = C(c) ? d(c) : c, D(b) && D(c) ? b.concat(c).filter(function (a) { return !(f(a, b) && f(a, c)) }) : b } }]), b.module("a8m.math.byteFmt", ["a8m.math"]).filter("byteFmt", ["$math", function (a) { return function (b, c) { return B(c) && isFinite(c) && c % 1 === 0 && c >= 0 && B(b) && isFinite(b) ? 1024 > b ? i(b, c, a) + " B" : 1048576 > b ? i(b / 1024, c, a) + " KB" : 1073741824 > b ? i(b / 1048576, c, a) + " MB" : i(b / 1073741824, c, a) + " GB" : "NaN" } }]), b.module("a8m.math.degrees", ["a8m.math"]).filter("degrees", ["$math", function (a) { return function (b, c) { if (B(c) && isFinite(c) && c % 1 === 0 && c >= 0 && B(b) && isFinite(b)) { var d = 180 * b / a.PI; return a.round(d * a.pow(10, c)) / a.pow(10, c) } return "NaN" } }]), b.module("a8m.math.kbFmt", ["a8m.math"]).filter("kbFmt", ["$math", function (a) { return function (b, c) { return B(c) && isFinite(c) && c % 1 === 0 && c >= 0 && B(b) && isFinite(b) ? 1024 > b ? i(b, c, a) + " KB" : 1048576 > b ? i(b / 1024, c, a) + " MB" : i(b / 1048576, c, a) + " GB" : "NaN" } }]), b.module("a8m.math", []).factory("$math", ["$window", function (a) { return a.Math }]), b.module("a8m.math.max", ["a8m.math"]).filter("max", ["$math", "$parse", function (a, b) { function c(c, d) { var e = c.map(function (a) { return b(d)(a) }); return e.indexOf(a.max.apply(a, e)) } return function (b, d) { return D(b) ? y(d) ? a.max.apply(a, b) : b[c(b, d)] : b } }]), b.module("a8m.math.min", ["a8m.math"]).filter("min", ["$math", "$parse", function (a, b) { function c(c, d) { var e = c.map(function (a) { return b(d)(a) }); return e.indexOf(a.min.apply(a, e)) } return function (b, d) { return D(b) ? y(d) ? a.min.apply(a, b) : b[c(b, d)] : b } }]), b.module("a8m.math.percent", ["a8m.math"]).filter("percent", ["$math", "$window", function (a, b) { return function (c, d, e) { var f = A(c) ? b.Number(c) : c; return d = d || 100, e = e || !1, !B(f) || b.isNaN(f) ? c : e ? a.round(f / d * 100) : f / d * 100 } }]), b.module("a8m.math.radians", ["a8m.math"]).filter("radians", ["$math", function (a) { return function (b, c) { if (B(c) && isFinite(c) && c % 1 === 0 && c >= 0 && B(b) && isFinite(b)) { var d = 3.14159265359 * b / 180; return a.round(d * a.pow(10, c)) / a.pow(10, c) } return "NaN" } }]), b.module("a8m.math.radix", []).filter("radix", function () { return function (a, b) { var c = /^[2-9]$|^[1-2]\d$|^3[0-6]$/; return B(a) && c.test(b) ? a.toString(b).toUpperCase() : a } }), b.module("a8m.math.shortFmt", ["a8m.math"]).filter("shortFmt", ["$math", function (a) { return function (b, c) { return B(c) && isFinite(c) && c % 1 === 0 && c >= 0 && B(b) && isFinite(b) ? 1e3 > b ? b : 1e6 > b ? i(b / 1e3, c, a) + " K" : 1e9 > b ? i(b / 1e6, c, a) + " M" : i(b / 1e9, c, a) + " B" : "NaN" } }]), b.module("a8m.math.sum", []).filter("sum", function () { return function (a, b) { return D(a) ? a.reduce(function (a, b) { return a + b }, b || 0) : a } }), b.module("a8m.ends-with", []).filter("endsWith", function () { return function (a, b, c) { var d, e = c || !1; return !A(a) || y(b) ? a : (a = e ? a : a.toLowerCase(), d = a.length - b.length, -1 !== a.indexOf(e ? b : b.toLowerCase(), d)) } }), b.module("a8m.latinize", []).filter("latinize", [function () { function a(a) { return a.replace(/[^\u0000-\u007E]/g, function (a) { return c[a] || a }) } for (var b = [{ base: "A", letters: "Aâ’¶ï¼¡Ã€ÃÃ‚áº¦áº¤áºªáº¨ÃƒÄ€Ä‚áº°áº®áº´áº²È¦Ç Ã„Çžáº¢Ã…ÇºÇÈ€È‚áº áº¬áº¶á¸€Ä„Èºâ±¯" }, { base: "AA", letters: "êœ²" }, { base: "AE", letters: "Ã†Ç¼Ç¢" }, { base: "AO", letters: "êœ´" }, { base: "AU", letters: "êœ¶" }, { base: "AV", letters: "êœ¸êœº" }, { base: "AY", letters: "êœ¼" }, { base: "B", letters: "Bâ’·ï¼¢á¸‚á¸„á¸†ÉƒÆ‚Æ" }, { base: "C", letters: "Câ’¸ï¼£Ä†ÄˆÄŠÄŒÃ‡á¸ˆÆ‡È»êœ¾" }, { base: "D", letters: "Dâ’¹ï¼¤á¸ŠÄŽá¸Œá¸á¸’á¸ŽÄÆ‹ÆŠÆ‰ê¹" }, { base: "DZ", letters: "Ç±Ç„" }, { base: "Dz", letters: "Ç²Ç…" }, { base: "E", letters: "Eâ’ºï¼¥ÃˆÃ‰ÃŠá»€áº¾á»„á»‚áº¼Ä’á¸”á¸–Ä”Ä–Ã‹áººÄšÈ„È†áº¸á»†È¨á¸œÄ˜á¸˜á¸šÆÆŽ" }, { base: "F", letters: "Fâ’»ï¼¦á¸žÆ‘ê»" }, { base: "G", letters: "Gâ’¼ï¼§Ç´Äœá¸ ÄžÄ Ç¦Ä¢Ç¤Æ“êž ê½ê¾" }, { base: "H", letters: "Hâ’½ï¼¨Ä¤á¸¢á¸¦Èžá¸¤á¸¨á¸ªÄ¦â±§â±µêž" }, { base: "I", letters: "Iâ’¾ï¼©ÃŒÃÃŽÄ¨ÄªÄ¬Ä°Ãá¸®á»ˆÇÈˆÈŠá»ŠÄ®á¸¬Æ—" }, { base: "J", letters: "Jâ’¿ï¼ªÄ´Éˆ" }, { base: "K", letters: "Kâ“€ï¼«á¸°Ç¨á¸²Ä¶á¸´Æ˜â±©ê€ê‚ê„êž¢" }, { base: "L", letters: "Lâ“ï¼¬Ä¿Ä¹Ä½á¸¶á¸¸Ä»á¸¼á¸ºÅÈ½â±¢â± êˆê†êž€" }, { base: "LJ", letters: "Ç‡" }, { base: "Lj", letters: "Çˆ" }, { base: "M", letters: "Mâ“‚ï¼­á¸¾á¹€á¹‚â±®Æœ" }, { base: "N", letters: "Nâ“ƒï¼®Ç¸ÅƒÃ‘á¹„Å‡á¹†Å…á¹Šá¹ˆÈ Æêžêž¤" }, { base: "NJ", letters: "ÇŠ" }, { base: "Nj", letters: "Ç‹" }, { base: "O", letters: "Oâ“„ï¼¯Ã’Ã“Ã”á»’á»á»–á»”Ã•á¹ŒÈ¬á¹ŽÅŒá¹á¹’ÅŽÈ®È°Ã–Èªá»ŽÅÇ‘ÈŒÈŽÆ á»œá»šá» á»žá»¢á»Œá»˜ÇªÇ¬Ã˜Ç¾Æ†ÆŸêŠêŒ" }, { base: "OI", letters: "Æ¢" }, { base: "OO", letters: "êŽ" }, { base: "OU", letters: "È¢" }, { base: "OE", letters: "ÂŒÅ’" }, { base: "oe", letters: "ÂœÅ“" }, { base: "P", letters: "Pâ“…ï¼°á¹”á¹–Æ¤â±£êê’ê”" }, { base: "Q", letters: "Qâ“†ï¼±ê–ê˜ÉŠ" }, { base: "R", letters: "Râ“‡ï¼²Å”á¹˜Å˜ÈÈ’á¹šá¹œÅ–á¹žÉŒâ±¤êšêž¦êž‚" }, { base: "S", letters: "Sâ“ˆï¼³áºžÅšá¹¤Åœá¹ Å á¹¦á¹¢á¹¨È˜Åžâ±¾êž¨êž„" }, { base: "T", letters: "Tâ“‰ï¼´á¹ªÅ¤á¹¬ÈšÅ¢á¹°á¹®Å¦Æ¬Æ®È¾êž†" }, { base: "TZ", letters: "êœ¨" }, { base: "U", letters: "Uâ“Šï¼µÃ™ÃšÃ›Å¨á¹¸Åªá¹ºÅ¬ÃœÇ›Ç—Ç•Ç™á»¦Å®Å°Ç“È”È–Æ¯á»ªá»¨á»®á»¬á»°á»¤á¹²Å²á¹¶á¹´É„" }, { base: "V", letters: "Vâ“‹ï¼¶á¹¼á¹¾Æ²êžÉ…" }, { base: "VY", letters: "ê " }, { base: "W", letters: "Wâ“Œï¼·áº€áº‚Å´áº†áº„áºˆâ±²" }, { base: "X", letters: "Xâ“ï¼¸áºŠáºŒ" }, { base: "Y", letters: "Yâ“Žï¼¹á»²ÃÅ¶á»¸È²áºŽÅ¸á»¶á»´Æ³ÉŽá»¾" }, { base: "Z", letters: "Zâ“ï¼ºÅ¹áºÅ»Å½áº’áº”ÆµÈ¤â±¿â±«ê¢" }, { base: "a", letters: "aâ“ï½áºšÃ Ã¡Ã¢áº§áº¥áº«áº©Ã£ÄÄƒáº±áº¯áºµáº³È§Ç¡Ã¤ÇŸáº£Ã¥Ç»ÇŽÈÈƒáº¡áº­áº·á¸Ä…â±¥É" }, { base: "aa", letters: "êœ³" }, { base: "ae", letters: "Ã¦Ç½Ç£" }, { base: "ao", letters: "êœµ" }, { base: "au", letters: "êœ·" }, { base: "av", letters: "êœ¹êœ»" }, { base: "ay", letters: "êœ½" }, { base: "b", letters: "bâ“‘ï½‚á¸ƒá¸…á¸‡Æ€ÆƒÉ“" }, { base: "c", letters: "câ“’ï½ƒÄ‡Ä‰Ä‹ÄÃ§á¸‰ÆˆÈ¼êœ¿â†„" }, { base: "d", letters: "dâ““ï½„á¸‹Äá¸á¸‘á¸“á¸Ä‘ÆŒÉ–É—êº" }, { base: "dz", letters: "Ç³Ç†" }, { base: "e", letters: "eâ“”ï½…Ã¨Ã©Ãªá»áº¿á»…á»ƒáº½Ä“á¸•á¸—Ä•Ä—Ã«áº»Ä›È…È‡áº¹á»‡È©á¸Ä™á¸™á¸›É‡É›Ç" }, { base: "f", letters: "fâ“•ï½†á¸ŸÆ’ê¼" }, { base: "g", letters: "gâ“–ï½‡ÇµÄá¸¡ÄŸÄ¡Ç§Ä£Ç¥É êž¡áµ¹ê¿" }, { base: "h", letters: "hâ“—ï½ˆÄ¥á¸£á¸§ÈŸá¸¥á¸©á¸«áº–Ä§â±¨â±¶É¥" }, { base: "hv", letters: "Æ•" }, { base: "i", letters: "iâ“˜ï½‰Ã¬Ã­Ã®Ä©Ä«Ä­Ã¯á¸¯á»‰ÇÈ‰È‹á»‹Ä¯á¸­É¨Ä±" }, { base: "j", letters: "jâ“™ï½ŠÄµÇ°É‰" }, { base: "k", letters: "kâ“šï½‹á¸±Ç©á¸³Ä·á¸µÆ™â±ªêêƒê…êž£" }, { base: "l", letters: "lâ“›ï½ŒÅ€ÄºÄ¾á¸·á¸¹Ä¼á¸½á¸»Å¿Å‚ÆšÉ«â±¡ê‰êžê‡" }, { base: "lj", letters: "Ç‰" }, { base: "m", letters: "mâ“œï½á¸¿á¹á¹ƒÉ±É¯" }, { base: "n", letters: "nâ“ï½ŽÇ¹Å„Ã±á¹…Åˆá¹‡Å†á¹‹á¹‰ÆžÉ²Å‰êž‘êž¥" }, { base: "nj", letters: "ÇŒ" }, { base: "o", letters: "oâ“žï½Ã²Ã³Ã´á»“á»‘á»—á»•Ãµá¹È­á¹Åá¹‘á¹“ÅÈ¯È±Ã¶È«á»Å‘Ç’ÈÈÆ¡á»á»›á»¡á»Ÿá»£á»á»™Ç«Ç­Ã¸Ç¿É”ê‹êÉµ" }, { base: "oi", letters: "Æ£" }, { base: "ou", letters: "È£" }, { base: "oo", letters: "ê" }, { base: "p", letters: "pâ“Ÿï½á¹•á¹—Æ¥áµ½ê‘ê“ê•" }, { base: "q", letters: "qâ“ ï½‘É‹ê—ê™" }, { base: "r", letters: "râ“¡ï½’Å•á¹™Å™È‘È“á¹›á¹Å—á¹ŸÉÉ½ê›êž§êžƒ" }, { base: "s", letters: "sâ“¢ï½“ÃŸÅ›á¹¥Åá¹¡Å¡á¹§á¹£á¹©È™ÅŸÈ¿êž©êž…áº›" }, { base: "t", letters: "tâ“£ï½”á¹«áº—Å¥á¹­È›Å£á¹±á¹¯Å§Æ­Êˆâ±¦êž‡" }, { base: "tz", letters: "êœ©" }, { base: "u", letters: "uâ“¤ï½•Ã¹ÃºÃ»Å©á¹¹Å«á¹»Å­Ã¼ÇœÇ˜Ç–Çšá»§Å¯Å±Ç”È•È—Æ°á»«á»©á»¯á»­á»±á»¥á¹³Å³á¹·á¹µÊ‰" }, { base: "v", letters: "vâ“¥ï½–á¹½á¹¿Ê‹êŸÊŒ" }, { base: "vy", letters: "ê¡" }, { base: "w", letters: "wâ“¦ï½—áºáºƒÅµáº‡áº…áº˜áº‰â±³" }, { base: "x", letters: "xâ“§ï½˜áº‹áº" }, { base: "y", letters: "yâ“¨ï½™á»³Ã½Å·á»¹È³áºÃ¿á»·áº™á»µÆ´Éá»¿" }, { base: "z", letters: "zâ“©ï½šÅºáº‘Å¼Å¾áº“áº•Æ¶È¥É€â±¬ê£" }], c = {}, d = 0; d < b.length; d++) for (var e = b[d].letters.split(""), f = 0; f < e.length; f++) c[e[f]] = b[d].base; return function (b) { return A(b) ? a(b) : b } }]), b.module("a8m.ltrim", []).filter("ltrim", function () { return function (a, b) { var c = b || "\\s"; return A(a) ? a.replace(new RegExp("^" + c + "+"), "") : a } }), b.module("a8m.match", []).filter("match", function () { return function (a, b, c) { var d = new RegExp(b, c); return A(a) ? a.match(d) : null } }), b.module("a8m.repeat", []).filter("repeat", [function () { return function (a, b, c) { var d = ~~b; return A(a) && d ? w(a, --b, c || "") : a } }]), b.module("a8m.rtrim", []).filter("rtrim", function () { return function (a, b) { var c = b || "\\s"; return A(a) ? a.replace(new RegExp(c + "+$"), "") : a } }), b.module("a8m.slugify", []).filter("slugify", [function () { return function (a, b) { var c = y(b) ? "-" : b; return A(a) ? a.toLowerCase().replace(/\s+/g, c) : a } }]), b.module("a8m.starts-with", []).filter("startsWith", function () { return function (a, b, c) { var d = c || !1; return !A(a) || y(b) ? a : (a = d ? a : a.toLowerCase(), !a.indexOf(d ? b : b.toLowerCase())) } }), b.module("a8m.stringular", []).filter("stringular", function () { return function (a) { var b = Array.prototype.slice.call(arguments, 1); return a.replace(/{(\d+)}/g, function (a, c) { return y(b[c]) ? a : b[c] }) } }), b.module("a8m.strip-tags", []).filter("stripTags", function () { return function (a) { return A(a) ? a.replace(/<\S[^><]*>/g, "") : a } }), b.module("a8m.test", []).filter("test", function () { return function (a, b, c) { var d = new RegExp(b, c); return A(a) ? d.test(a) : a } }), b.module("a8m.trim", []).filter("trim", function () { return function (a, b) { var c = b || "\\s"; return A(a) ? a.replace(new RegExp("^" + c + "+|" + c + "+$", "g"), "") : a } }), b.module("a8m.truncate", []).filter("truncate", function () { return function (a, b, c, d) { return b = y(b) ? a.length : b, d = d || !1, c = c || "", !A(a) || a.length <= b ? a : a.substring(0, d ? -1 === a.indexOf(" ", b) ? a.length : a.indexOf(" ", b) : b) + c } }), b.module("a8m.ucfirst", []).filter("ucfirst", [function () { return function (a) { return A(a) ? a.split(" ").map(function (a) { return a.charAt(0).toUpperCase() + a.substring(1) }).join(" ") : a } }]), b.module("a8m.uri-component-encode", []).filter("uriComponentEncode", ["$window", function (a) { return function (b) { return A(b) ? a.encodeURIComponent(b) : b } }]), b.module("a8m.uri-encode", []).filter("uriEncode", ["$window", function (a) { return function (b) { return A(b) ? a.encodeURI(b) : b } }]), b.module("a8m.wrap", []).filter("wrap", function () { return function (a, b, c) { return A(a) && x(b) ? [b, a, c || b].join("") : a } }), b.module("a8m.filter-watcher", []).provider("filterWatcher", function () { this.$get = ["$window", "$rootScope", function (a, c) { function d(a, c) { return [a, b.toJson(c)].join("#").replace(/"/g, "") } function e(a) { var b = a.targetScope.$id; E(l[b], function (a) { delete j[a] }), delete l[b] } function f() { m(function () { c.$$phase || (j = {}) }) } function g(a, b) { var c = a.$id; return y(l[c]) && (a.$on("$destroy", e), l[c] = []), l[c].push(b) } function h(a, b) { var c = d(a, b); return j[c] } function i(a, b, c, e) { var h = d(a, b); return j[h] = e, k(c) ? g(c, h) : f(), e } var j = {}, l = {}, m = a.setTimeout; return { isMemoized: h, memoize: i } }] }), b.module("angular.filter", ["a8m.ucfirst", "a8m.uri-encode", "a8m.uri-component-encode", "a8m.slugify", "a8m.latinize", "a8m.strip-tags", "a8m.stringular", "a8m.truncate", "a8m.starts-with", "a8m.ends-with", "a8m.wrap", "a8m.trim", "a8m.ltrim", "a8m.rtrim", "a8m.repeat", "a8m.test", "a8m.match", "a8m.to-array", "a8m.concat", "a8m.contains", "a8m.unique", "a8m.is-empty", "a8m.after", "a8m.after-where", "a8m.before", "a8m.before-where", "a8m.defaults", "a8m.where", "a8m.reverse", "a8m.remove", "a8m.remove-with", "a8m.group-by", "a8m.count-by", "a8m.chunk-by", "a8m.search-field", "a8m.fuzzy-by", "a8m.fuzzy", "a8m.omit", "a8m.pick", "a8m.every", "a8m.filter-by", "a8m.xor", "a8m.map", "a8m.first", "a8m.last", "a8m.flatten", "a8m.join", "a8m.range", "a8m.math", "a8m.math.max", "a8m.math.min", "a8m.math.percent", "a8m.math.radix", "a8m.math.sum", "a8m.math.degrees", "a8m.math.radians", "a8m.math.byteFmt", "a8m.math.kbFmt", "a8m.math.shortFmt", "a8m.angular", "a8m.conditions", "a8m.is-null", "a8m.filter-watcher"]) }(window, window.angular);
/*
 AngularJS v1.8.2
 (c) 2010-2020 Google LLC. http://angularjs.org
 License: MIT
*/
(function (s, e) {
  'use strict'; function O(e) { var g = []; B(g, D).chars(e); return g.join("") } var C = e.$$minErr("$sanitize"), E, g, F, G, H, q, D, I, J, B; e.module("ngSanitize", []).provider("$sanitize", function () {
    function h(a, d) { return A(a.split(","), d) } function A(a, d) { var c = {}, b; for (b = 0; b < a.length; b++)c[d ? q(a[b]) : a[b]] = !0; return c } function t(a, d) { d && d.length && g(a, A(d)) } function P(a) { for (var d = {}, c = 0, b = a.length; c < b; c++) { var k = a[c]; d[k.name] = k.value } return d } function K(a) {
      return a.replace(/&/g, "&amp;").replace(Q, function (a) {
        var c =
          a.charCodeAt(0); a = a.charCodeAt(1); return "&#" + (1024 * (c - 55296) + (a - 56320) + 65536) + ";"
      }).replace(u, function (a) { return "&#" + a.charCodeAt(0) + ";" }).replace(/</g, "&lt;").replace(/>/g, "&gt;")
    } function z(a) { for (; a;) { if (a.nodeType === s.Node.ELEMENT_NODE) for (var d = a.attributes, c = 0, b = d.length; c < b; c++) { var k = d[c], f = k.name.toLowerCase(); if ("xmlns:ns1" === f || 0 === f.lastIndexOf("ns1:", 0)) a.removeAttributeNode(k), c--, b-- } (d = a.firstChild) && z(d); a = v("nextSibling", a) } } function v(a, d) {
      var c = d[a]; if (c && I.call(d, c)) throw C("elclob",
        d.outerHTML || d.outerText); return c
    } var y = !1, f = !1; this.$get = ["$$sanitizeUri", function (a) { y = !0; f && g(m, l); return function (d) { var c = []; J(d, B(c, function (b, c) { return !/^unsafe:/.test(a(b, c)) })); return c.join("") } }]; this.enableSvg = function (a) { return H(a) ? (f = a, this) : f }; this.addValidElements = function (a) { y || (G(a) && (a = { htmlElements: a }), t(l, a.svgElements), t(r, a.htmlVoidElements), t(m, a.htmlVoidElements), t(m, a.htmlElements)); return this }; this.addValidAttrs = function (a) { y || g(L, A(a, !0)); return this }; E = e.bind; g = e.extend;
    F = e.forEach; G = e.isArray; H = e.isDefined; q = e.$$lowercase; D = e.noop; J = function (a, d) {
    null === a || void 0 === a ? a = "" : "string" !== typeof a && (a = "" + a); var c = M(a); if (!c) return ""; var b = 5; do { if (0 === b) throw C("uinput"); b--; a = c.innerHTML; c = M(a) } while (a !== c.innerHTML); for (b = c.firstChild; b;) {
      switch (b.nodeType) { case 1: d.start(b.nodeName.toLowerCase(), P(b.attributes)); break; case 3: d.chars(b.textContent) }var k; if (!(k = b.firstChild) && (1 === b.nodeType && d.end(b.nodeName.toLowerCase()), k = v("nextSibling", b), !k)) for (; null == k;) {
        b =
        v("parentNode", b); if (b === c) break; k = v("nextSibling", b); 1 === b.nodeType && d.end(b.nodeName.toLowerCase())
      } b = k
    } for (; b = c.firstChild;)c.removeChild(b)
    }; B = function (a, d) {
      var c = !1, b = E(a, a.push); return {
        start: function (a, f) { a = q(a); !c && w[a] && (c = a); c || !0 !== m[a] || (b("<"), b(a), F(f, function (c, f) { var e = q(f), h = "img" === a && "src" === e || "background" === e; !0 !== L[e] || !0 === N[e] && !d(c, h) || (b(" "), b(f), b('="'), b(K(c)), b('"')) }), b(">")) }, end: function (a) { a = q(a); c || !0 !== m[a] || !0 === r[a] || (b("</"), b(a), b(">")); a == c && (c = !1) }, chars: function (a) {
          c ||
          b(K(a))
        }
      }
    }; I = s.Node.prototype.contains || function (a) { return !!(this.compareDocumentPosition(a) & 16) }; var Q = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, u = /([^#-~ |!])/g, r = h("area,br,col,hr,img,wbr"), x = h("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), p = h("rp,rt"), n = g({}, p, x), x = g({}, x, h("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")), p = g({}, p, h("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),
      l = h("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"), w = h("script,style"), m = g({}, r, x, p, n), N = h("background,cite,href,longdesc,src,xlink:href,xml:base"), n = h("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),
      p = h("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",
        !0), L = g({}, N, p, n), M = function (a, d) { function c(b) { b = "<remove></remove>" + b; try { var c = (new a.DOMParser).parseFromString(b, "text/html").body; c.firstChild.remove(); return c } catch (d) { } } var b; try { b = !!c("") } catch (f) { b = !1 } if (b) return c; if (!d || !d.implementation) throw C("noinert"); b = d.implementation.createHTMLDocument("inert"); var e = (b.documentElement || b.getDocumentElement()).querySelector("body"); return function (a) { e.innerHTML = a; d.documentMode && z(e); return e } }(s, s.document)
  }).info({ angularVersion: "1.8.2" });
  e.module("ngSanitize").filter("linky", ["$sanitize", function (h) {
    var g = /((s?ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i, t = /^mailto:/i, q = e.$$minErr("linky"), s = e.isDefined, z = e.isFunction, v = e.isObject, y = e.isString; return function (f, e, u) {
      function r(e) { e && l.push(O(e)) } function x(f, h) { var g, a = p(f); l.push("<a "); for (g in a) l.push(g + '="' + a[g] + '" '); !s(e) || "target" in a || l.push('target="', e, '" '); l.push('href="', f.replace(/"/g, "&quot;"), '">'); r(h); l.push("</a>") } if (null ==
        f || "" === f) return f; if (!y(f)) throw q("notstring", f); for (var p = z(u) ? u : v(u) ? function () { return u } : function () { return {} }, n = f, l = [], w, m; f = n.match(g);)w = f[0], f[2] || f[4] || (w = (f[3] ? "http://" : "mailto:") + w), m = f.index, r(n.substr(0, m)), x(w, f[0].replace(t, "")), n = n.substring(m + f[0].length); r(n); return h(l.join(""))
    }
  }])
})(window, window.angular);
//# sourceMappingURL=angular-sanitize.min.js.map
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
 * https://jqueryvalidation.org/
 * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr.pseudos||a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=g?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){"string"==typeof c&&(c={method:c});var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e<=d},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a});
/*! jQuery Validation Plugin - v1.19.3 - 1/9/2021
 * https://jqueryvalidation.org/
 * Copyright (c) 2021 Jörn Zaefferer; Licensed MIT */
!function (a) { "function" == typeof define && define.amd ? define(["jquery", "./jquery.validate.min"], a) : "object" == typeof module && module.exports ? module.exports = a(require("jquery")) : a(jQuery) }(function (a) { return function () { function b(a) { return a.replace(/<.[^<>]*?>/g, " ").replace(/&nbsp;|&#160;/gi, " ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g, "") } a.validator.addMethod("maxWords", function (a, c, d) { return this.optional(c) || b(a).match(/\b\w+\b/g).length <= d }, a.validator.format("Please enter {0} words or less.")), a.validator.addMethod("minWords", function (a, c, d) { return this.optional(c) || b(a).match(/\b\w+\b/g).length >= d }, a.validator.format("Please enter at least {0} words.")), a.validator.addMethod("rangeWords", function (a, c, d) { var e = b(a), f = /\b\w+\b/g; return this.optional(c) || e.match(f).length >= d[0] && e.match(f).length <= d[1] }, a.validator.format("Please enter between {0} and {1} words.")) }(), a.validator.addMethod("abaRoutingNumber", function (a) { var b = 0, c = a.split(""), d = c.length; if (9 !== d) return !1; for (var e = 0; e < d; e += 3)b += 3 * parseInt(c[e], 10) + 7 * parseInt(c[e + 1], 10) + parseInt(c[e + 2], 10); return 0 !== b && b % 10 === 0 }, "Please enter a valid routing number."), a.validator.addMethod("accept", function (b, c, d) { var e, f, g, h = "string" == typeof d ? d.replace(/\s/g, "") : "image/*", i = this.optional(c); if (i) return i; if ("file" === a(c).attr("type") && (h = h.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$\|]/g, "\\$&").replace(/,/g, "|").replace(/\/\*/g, "/.*"), c.files && c.files.length)) for (g = new RegExp(".?(" + h + ")$", "i"), e = 0; e < c.files.length; e++)if (f = c.files[e], !f.type.match(g)) return !1; return !0 }, a.validator.format("Please enter a value with a valid mimetype.")), a.validator.addMethod("alphanumeric", function (a, b) { return this.optional(b) || /^\w+$/i.test(a) }, "Letters, numbers, and underscores only please"), a.validator.addMethod("bankaccountNL", function (a, b) { if (this.optional(b)) return !0; if (!/^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test(a)) return !1; var c, d, e, f = a.replace(/ /g, ""), g = 0, h = f.length; for (c = 0; c < h; c++)d = h - c, e = f.substring(c, c + 1), g += d * e; return g % 11 === 0 }, "Please specify a valid bank account number"), a.validator.addMethod("bankorgiroaccountNL", function (b, c) { return this.optional(c) || a.validator.methods.bankaccountNL.call(this, b, c) || a.validator.methods.giroaccountNL.call(this, b, c) }, "Please specify a valid bank or giro account number"), a.validator.addMethod("bic", function (a, b) { return this.optional(b) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(a.toUpperCase()) }, "Please specify a valid BIC code"), a.validator.addMethod("cifES", function (a, b) { "use strict"; function c(a) { return a % 2 === 0 } if (this.optional(b)) return !0; var d, e, f, g, h = new RegExp(/^([ABCDEFGHJKLMNPQRSUVW])(\d{7})([0-9A-J])$/gi), i = a.substring(0, 1), j = a.substring(1, 8), k = a.substring(8, 9), l = 0, m = 0, n = 0; if (9 !== a.length || !h.test(a)) return !1; for (d = 0; d < j.length; d++)e = parseInt(j[d], 10), c(d) ? (e *= 2, n += e < 10 ? e : e - 9) : m += e; return l = m + n, f = (10 - l.toString().substr(-1)).toString(), f = parseInt(f, 10) > 9 ? "0" : f, g = "JABCDEFGHI".substr(f, 1).toString(), i.match(/[ABEH]/) ? k === f : i.match(/[KPQS]/) ? k === g : k === f || k === g }, "Please specify a valid CIF number."), a.validator.addMethod("cnhBR", function (a) { if (a = a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, ""), 11 !== a.length) return !1; var b, c, d, e, f, g, h = 0, i = 0; if (b = a.charAt(0), new Array(12).join(b) === a) return !1; for (e = 0, f = 9, g = 0; e < 9; ++e, --f)h += +(a.charAt(e) * f); for (c = h % 11, c >= 10 && (c = 0, i = 2), h = 0, e = 0, f = 1, g = 0; e < 9; ++e, ++f)h += +(a.charAt(e) * f); return d = h % 11, d >= 10 ? d = 0 : d -= i, String(c).concat(d) === a.substr(-2) }, "Please specify a valid CNH number"), a.validator.addMethod("cnpjBR", function (a, b) { "use strict"; if (this.optional(b)) return !0; if (a = a.replace(/[^\d]+/g, ""), 14 !== a.length) return !1; if ("00000000000000" === a || "11111111111111" === a || "22222222222222" === a || "33333333333333" === a || "44444444444444" === a || "55555555555555" === a || "66666666666666" === a || "77777777777777" === a || "88888888888888" === a || "99999999999999" === a) return !1; for (var c = a.length - 2, d = a.substring(0, c), e = a.substring(c), f = 0, g = c - 7, h = c; h >= 1; h--)f += d.charAt(c - h) * g--, g < 2 && (g = 9); var i = f % 11 < 2 ? 0 : 11 - f % 11; if (i !== parseInt(e.charAt(0), 10)) return !1; c += 1, d = a.substring(0, c), f = 0, g = c - 7; for (var j = c; j >= 1; j--)f += d.charAt(c - j) * g--, g < 2 && (g = 9); return i = f % 11 < 2 ? 0 : 11 - f % 11, i === parseInt(e.charAt(1), 10) }, "Please specify a CNPJ value number"), a.validator.addMethod("cpfBR", function (a, b) { "use strict"; if (this.optional(b)) return !0; if (a = a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, ""), 11 !== a.length) return !1; var c, d, e, f, g = 0; if (c = parseInt(a.substring(9, 10), 10), d = parseInt(a.substring(10, 11), 10), e = function (a, b) { var c = 10 * a % 11; return 10 !== c && 11 !== c || (c = 0), c === b }, "" === a || "00000000000" === a || "11111111111" === a || "22222222222" === a || "33333333333" === a || "44444444444" === a || "55555555555" === a || "66666666666" === a || "77777777777" === a || "88888888888" === a || "99999999999" === a) return !1; for (f = 1; f <= 9; f++)g += parseInt(a.substring(f - 1, f), 10) * (11 - f); if (e(g, c)) { for (g = 0, f = 1; f <= 10; f++)g += parseInt(a.substring(f - 1, f), 10) * (12 - f); return e(g, d) } return !1 }, "Please specify a valid CPF number"), a.validator.addMethod("creditcard", function (a, b) { if (this.optional(b)) return "dependency-mismatch"; if (/[^0-9 \-]+/.test(a)) return !1; var c, d, e = 0, f = 0, g = !1; if (a = a.replace(/\D/g, ""), a.length < 13 || a.length > 19) return !1; for (c = a.length - 1; c >= 0; c--)d = a.charAt(c), f = parseInt(d, 10), g && (f *= 2) > 9 && (f -= 9), e += f, g = !g; return e % 10 === 0 }, "Please enter a valid credit card number."), a.validator.addMethod("creditcardtypes", function (a, b, c) { if (/[^0-9\-]+/.test(a)) return !1; a = a.replace(/\D/g, ""); var d = 0; return c.mastercard && (d |= 1), c.visa && (d |= 2), c.amex && (d |= 4), c.dinersclub && (d |= 8), c.enroute && (d |= 16), c.discover && (d |= 32), c.jcb && (d |= 64), c.unknown && (d |= 128), c.all && (d = 255), 1 & d && (/^(5[12345])/.test(a) || /^(2[234567])/.test(a)) ? 16 === a.length : 2 & d && /^(4)/.test(a) ? 16 === a.length : 4 & d && /^(3[47])/.test(a) ? 15 === a.length : 8 & d && /^(3(0[012345]|[68]))/.test(a) ? 14 === a.length : 16 & d && /^(2(014|149))/.test(a) ? 15 === a.length : 32 & d && /^(6011)/.test(a) ? 16 === a.length : 64 & d && /^(3)/.test(a) ? 16 === a.length : 64 & d && /^(2131|1800)/.test(a) ? 15 === a.length : !!(128 & d) }, "Please enter a valid credit card number."), a.validator.addMethod("currency", function (a, b, c) { var d, e = "string" == typeof c, f = e ? c : c[0], g = !!e || c[1]; return f = f.replace(/,/g, ""), f = g ? f + "]" : f + "]?", d = "^[" + f + "([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$", d = new RegExp(d), this.optional(b) || d.test(a) }, "Please specify a valid currency"), a.validator.addMethod("dateFA", function (a, b) { return this.optional(b) || /^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a) }, a.validator.messages.date), a.validator.addMethod("dateITA", function (a, b) { var c, d, e, f, g, h = !1, i = /^\d{1,2}\/\d{1,2}\/\d{4}$/; return i.test(a) ? (c = a.split("/"), d = parseInt(c[0], 10), e = parseInt(c[1], 10), f = parseInt(c[2], 10), g = new Date(Date.UTC(f, e - 1, d, 12, 0, 0, 0)), h = g.getUTCFullYear() === f && g.getUTCMonth() === e - 1 && g.getUTCDate() === d) : h = !1, this.optional(b) || h }, a.validator.messages.date), a.validator.addMethod("dateNL", function (a, b) { return this.optional(b) || /^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a) }, a.validator.messages.date), a.validator.addMethod("extension", function (a, b, c) { return c = "string" == typeof c ? c.replace(/,/g, "|") : "png|jpe?g|gif", this.optional(b) || a.match(new RegExp("\\.(" + c + ")$", "i")) }, a.validator.format("Please enter a value with a valid extension.")), a.validator.addMethod("giroaccountNL", function (a, b) { return this.optional(b) || /^[0-9]{1,7}$/.test(a) }, "Please specify a valid giro account number"), a.validator.addMethod("greaterThan", function (b, c, d) { var e = a(d); return this.settings.onfocusout && e.not(".validate-greaterThan-blur").length && e.addClass("validate-greaterThan-blur").on("blur.validate-greaterThan", function () { a(c).valid() }), b > e.val() }, "Please enter a greater value."), a.validator.addMethod("greaterThanEqual", function (b, c, d) { var e = a(d); return this.settings.onfocusout && e.not(".validate-greaterThanEqual-blur").length && e.addClass("validate-greaterThanEqual-blur").on("blur.validate-greaterThanEqual", function () { a(c).valid() }), b >= e.val() }, "Please enter a greater value."), a.validator.addMethod("iban", function (a, b) { if (this.optional(b)) return !0; var c, d, e, f, g, h, i, j, k, l = a.replace(/ /g, "").toUpperCase(), m = "", n = !0, o = "", p = "", q = 5; if (l.length < q) return !1; if (c = l.substring(0, 2), h = { AL: "\\d{8}[\\dA-Z]{16}", AD: "\\d{8}[\\dA-Z]{12}", AT: "\\d{16}", AZ: "[\\dA-Z]{4}\\d{20}", BE: "\\d{12}", BH: "[A-Z]{4}[\\dA-Z]{14}", BA: "\\d{16}", BR: "\\d{23}[A-Z][\\dA-Z]", BG: "[A-Z]{4}\\d{6}[\\dA-Z]{8}", CR: "\\d{17}", HR: "\\d{17}", CY: "\\d{8}[\\dA-Z]{16}", CZ: "\\d{20}", DK: "\\d{14}", DO: "[A-Z]{4}\\d{20}", EE: "\\d{16}", FO: "\\d{14}", FI: "\\d{14}", FR: "\\d{10}[\\dA-Z]{11}\\d{2}", GE: "[\\dA-Z]{2}\\d{16}", DE: "\\d{18}", GI: "[A-Z]{4}[\\dA-Z]{15}", GR: "\\d{7}[\\dA-Z]{16}", GL: "\\d{14}", GT: "[\\dA-Z]{4}[\\dA-Z]{20}", HU: "\\d{24}", IS: "\\d{22}", IE: "[\\dA-Z]{4}\\d{14}", IL: "\\d{19}", IT: "[A-Z]\\d{10}[\\dA-Z]{12}", KZ: "\\d{3}[\\dA-Z]{13}", KW: "[A-Z]{4}[\\dA-Z]{22}", LV: "[A-Z]{4}[\\dA-Z]{13}", LB: "\\d{4}[\\dA-Z]{20}", LI: "\\d{5}[\\dA-Z]{12}", LT: "\\d{16}", LU: "\\d{3}[\\dA-Z]{13}", MK: "\\d{3}[\\dA-Z]{10}\\d{2}", MT: "[A-Z]{4}\\d{5}[\\dA-Z]{18}", MR: "\\d{23}", MU: "[A-Z]{4}\\d{19}[A-Z]{3}", MC: "\\d{10}[\\dA-Z]{11}\\d{2}", MD: "[\\dA-Z]{2}\\d{18}", ME: "\\d{18}", NL: "[A-Z]{4}\\d{10}", NO: "\\d{11}", PK: "[\\dA-Z]{4}\\d{16}", PS: "[\\dA-Z]{4}\\d{21}", PL: "\\d{24}", PT: "\\d{21}", RO: "[A-Z]{4}[\\dA-Z]{16}", SM: "[A-Z]\\d{10}[\\dA-Z]{12}", SA: "\\d{2}[\\dA-Z]{18}", RS: "\\d{18}", SK: "\\d{20}", SI: "\\d{15}", ES: "\\d{20}", SE: "\\d{20}", CH: "\\d{5}[\\dA-Z]{12}", TN: "\\d{20}", TR: "\\d{5}[\\dA-Z]{17}", AE: "\\d{3}\\d{16}", GB: "[A-Z]{4}\\d{14}", VG: "[\\dA-Z]{4}\\d{16}" }, g = h[c], "undefined" != typeof g && (i = new RegExp("^[A-Z]{2}\\d{2}" + g + "$", ""), !i.test(l))) return !1; for (d = l.substring(4, l.length) + l.substring(0, 4), j = 0; j < d.length; j++)e = d.charAt(j), "0" !== e && (n = !1), n || (m += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(e)); for (k = 0; k < m.length; k++)f = m.charAt(k), p = "" + o + f, o = p % 97; return 1 === o }, "Please specify a valid IBAN"), a.validator.addMethod("integer", function (a, b) { return this.optional(b) || /^-?\d+$/.test(a) }, "A positive or negative non-decimal number please"), a.validator.addMethod("ipv4", function (a, b) { return this.optional(b) || /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test(a) }, "Please enter a valid IP v4 address."), a.validator.addMethod("ipv6", function (a, b) { return this.optional(b) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(a) }, "Please enter a valid IP v6 address."), a.validator.addMethod("lessThan", function (b, c, d) { var e = a(d); return this.settings.onfocusout && e.not(".validate-lessThan-blur").length && e.addClass("validate-lessThan-blur").on("blur.validate-lessThan", function () { a(c).valid() }), b < e.val() }, "Please enter a lesser value."), a.validator.addMethod("lessThanEqual", function (b, c, d) { var e = a(d); return this.settings.onfocusout && e.not(".validate-lessThanEqual-blur").length && e.addClass("validate-lessThanEqual-blur").on("blur.validate-lessThanEqual", function () { a(c).valid() }), b <= e.val() }, "Please enter a lesser value."), a.validator.addMethod("lettersonly", function (a, b) { return this.optional(b) || /^[a-z]+$/i.test(a) }, "Letters only please"), a.validator.addMethod("letterswithbasicpunc", function (a, b) { return this.optional(b) || /^[a-z\-.,()'"\s]+$/i.test(a) }, "Letters or punctuation only please"), a.validator.addMethod("maxfiles", function (b, c, d) { return !!this.optional(c) || !("file" === a(c).attr("type") && c.files && c.files.length > d) }, a.validator.format("Please select no more than {0} files.")), a.validator.addMethod("maxsize", function (b, c, d) { if (this.optional(c)) return !0; if ("file" === a(c).attr("type") && c.files && c.files.length) for (var e = 0; e < c.files.length; e++)if (c.files[e].size > d) return !1; return !0 }, a.validator.format("File size must not exceed {0} bytes each.")), a.validator.addMethod("maxsizetotal", function (b, c, d) { if (this.optional(c)) return !0; if ("file" === a(c).attr("type") && c.files && c.files.length) for (var e = 0, f = 0; f < c.files.length; f++)if (e += c.files[f].size, e > d) return !1; return !0 }, a.validator.format("Total size of all files must not exceed {0} bytes.")), a.validator.addMethod("mobileNL", function (a, b) { return this.optional(b) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(a) }, "Please specify a valid mobile number"), a.validator.addMethod("mobileRU", function (a, b) { var c = a.replace(/\(|\)|\s+|-/g, ""); return this.optional(b) || c.length > 9 && /^((\+7|7|8)+([0-9]){10})$/.test(c) }, "Please specify a valid mobile number"), a.validator.addMethod("mobileUK", function (a, b) { return a = a.replace(/\(|\)|\s+|-/g, ""), this.optional(b) || a.length > 9 && a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/) }, "Please specify a valid mobile number"), a.validator.addMethod("netmask", function (a, b) { return this.optional(b) || /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test(a) }, "Please enter a valid netmask."), a.validator.addMethod("nieES", function (a, b) { "use strict"; if (this.optional(b)) return !0; var c, d = new RegExp(/^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi), e = "TRWAGMYFPDXBNJZSQVHLCKET", f = a.substr(a.length - 1).toUpperCase(); return a = a.toString().toUpperCase(), !(a.length > 10 || a.length < 9 || !d.test(a)) && (a = a.replace(/^[X]/, "0").replace(/^[Y]/, "1").replace(/^[Z]/, "2"), c = 9 === a.length ? a.substr(0, 8) : a.substr(0, 9), e.charAt(parseInt(c, 10) % 23) === f) }, "Please specify a valid NIE number."), a.validator.addMethod("nifES", function (a, b) { "use strict"; return !!this.optional(b) || (a = a.toUpperCase(), !!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)") && (/^[0-9]{8}[A-Z]{1}$/.test(a) ? "TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8, 0) % 23) === a.charAt(8) : !!/^[KLM]{1}/.test(a) && a[8] === "TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8, 1) % 23))) }, "Please specify a valid NIF number."), a.validator.addMethod("nipPL", function (a) { "use strict"; if (a = a.replace(/[^0-9]/g, ""), 10 !== a.length) return !1; for (var b = [6, 5, 7, 2, 3, 4, 5, 6, 7], c = 0, d = 0; d < 9; d++)c += b[d] * a[d]; var e = c % 11, f = 10 === e ? 0 : e; return f === parseInt(a[9], 10) }, "Please specify a valid NIP number."), a.validator.addMethod("nisBR", function (a) { var b, c, d, e, f, g = 0; if (a = a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, ""), 11 !== a.length) return !1; for (c = parseInt(a.substring(10, 11), 10), b = parseInt(a.substring(0, 10), 10), e = 2; e < 12; e++)f = e, 10 === e && (f = 2), 11 === e && (f = 3), g += b % 10 * f, b = parseInt(b / 10, 10); return d = g % 11, d = d > 1 ? 11 - d : 0, c === d }, "Please specify a valid NIS/PIS number"), a.validator.addMethod("notEqualTo", function (b, c, d) { return this.optional(c) || !a.validator.methods.equalTo.call(this, b, c, d) }, "Please enter a different value, values must not be the same."), a.validator.addMethod("nowhitespace", function (a, b) { return this.optional(b) || /^\S+$/i.test(a) }, "No white space please"), a.validator.addMethod("pattern", function (a, b, c) { return !!this.optional(b) || ("string" == typeof c && (c = new RegExp("^(?:" + c + ")$")), c.test(a)) }, "Invalid format."), a.validator.addMethod("phoneNL", function (a, b) { return this.optional(b) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a) }, "Please specify a valid phone number."), a.validator.addMethod("phonePL", function (a, b) { a = a.replace(/\s+/g, ""); var c = /^(?:(?:(?:\+|00)?48)|(?:\(\+?48\)))?(?:1[2-8]|2[2-69]|3[2-49]|4[1-68]|5[0-9]|6[0-35-9]|[7-8][1-9]|9[145])\d{7}$/; return this.optional(b) || c.test(a) }, "Please specify a valid phone number"), a.validator.addMethod("phonesUK", function (a, b) { return a = a.replace(/\(|\)|\s+|-/g, ""), this.optional(b) || a.length > 9 && a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/) }, "Please specify a valid uk phone number"), a.validator.addMethod("phoneUK", function (a, b) { return a = a.replace(/\(|\)|\s+|-/g, ""), this.optional(b) || a.length > 9 && a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/) }, "Please specify a valid phone number"), a.validator.addMethod("phoneUS", function (a, b) { return a = a.replace(/\s+/g, ""), this.optional(b) || a.length > 9 && a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]\d{2}-?\d{4}$/) }, "Please specify a valid phone number"), a.validator.addMethod("postalcodeBR", function (a, b) { return this.optional(b) || /^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a) }, "Informe um CEP válido."), a.validator.addMethod("postalCodeCA", function (a, b) { return this.optional(b) || /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test(a) }, "Please specify a valid postal code"), a.validator.addMethod("postalcodeIT", function (a, b) { return this.optional(b) || /^\d{5}$/.test(a) }, "Please specify a valid postal code"), a.validator.addMethod("postalcodeNL", function (a, b) { return this.optional(b) || /^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a) }, "Please specify a valid postal code"), a.validator.addMethod("postcodeUK", function (a, b) { return this.optional(b) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a) }, "Please specify a valid UK postcode"), a.validator.addMethod("require_from_group", function (b, c, d) { var e = a(d[1], c.form), f = e.eq(0), g = f.data("valid_req_grp") ? f.data("valid_req_grp") : a.extend({}, this), h = e.filter(function () { return g.elementValue(this) }).length >= d[0]; return f.data("valid_req_grp", g), a(c).data("being_validated") || (e.data("being_validated", !0), e.each(function () { g.element(this) }), e.data("being_validated", !1)), h }, a.validator.format("Please fill at least {0} of these fields.")), a.validator.addMethod("skip_or_fill_minimum", function (b, c, d) { var e = a(d[1], c.form), f = e.eq(0), g = f.data("valid_skip") ? f.data("valid_skip") : a.extend({}, this), h = e.filter(function () { return g.elementValue(this) }).length, i = 0 === h || h >= d[0]; return f.data("valid_skip", g), a(c).data("being_validated") || (e.data("being_validated", !0), e.each(function () { g.element(this) }), e.data("being_validated", !1)), i }, a.validator.format("Please either skip these fields or fill at least {0} of them.")), a.validator.addMethod("stateUS", function (a, b, c) { var d, e = "undefined" == typeof c, f = !e && "undefined" != typeof c.caseSensitive && c.caseSensitive, g = !e && "undefined" != typeof c.includeTerritories && c.includeTerritories, h = !e && "undefined" != typeof c.includeMilitary && c.includeMilitary; return d = g || h ? g && h ? "^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$" : g ? "^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$" : "^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$" : "^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$", d = f ? new RegExp(d) : new RegExp(d, "i"), this.optional(b) || d.test(a) }, "Please specify a valid state"), a.validator.addMethod("strippedminlength", function (b, c, d) { return a(b).text().length >= d }, a.validator.format("Please enter at least {0} characters")), a.validator.addMethod("time", function (a, b) { return this.optional(b) || /^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(a) }, "Please enter a valid time, between 00:00 and 23:59"), a.validator.addMethod("time12h", function (a, b) { return this.optional(b) || /^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a) }, "Please enter a valid time in 12-hour am/pm format"), a.validator.addMethod("url2", function (a, b) { return this.optional(b) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a) }, a.validator.messages.url), a.validator.addMethod("vinUS", function (a) { if (17 !== a.length) return !1; var b, c, d, e, f, g, h = ["A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], i = [1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 7, 9, 2, 3, 4, 5, 6, 7, 8, 9], j = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2], k = 0; for (b = 0; b < 17; b++) { if (e = j[b], d = a.slice(b, b + 1), 8 === b && (g = d), isNaN(d)) { for (c = 0; c < h.length; c++)if (d.toUpperCase() === h[c]) { d = i[c], d *= e, isNaN(g) && 8 === c && (g = h[c]); break } } else d *= e; k += d } return f = k % 11, 10 === f && (f = "X"), f === g }, "The specified vehicle identification number (VIN) is invalid."), a.validator.addMethod("zipcodeUS", function (a, b) { return this.optional(b) || /^\d{5}(-\d{4})?$/.test(a) }, "The specified US ZIP Code is invalid"), a.validator.addMethod("ziprange", function (a, b) { return this.optional(b) || /^90[2-5]\d\{2\}-\d{4}$/.test(a) }, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx"), a });
/*
** Unobtrusive validation support library for jQuery and jQuery Validate
** Copyright (C) Microsoft Corporation. All rights reserved.
*/
!function (a) { function e(a, b, c) { a.rules[b] = c, a.message && (a.messages[b] = a.message) } function f(a) { return a.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g) } function g(a) { return a.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1") } function h(a) { return a.substr(0, a.lastIndexOf(".") + 1) } function i(a, b) { return 0 === a.indexOf("*.") && (a = a.replace("*.", b)), a } function j(b, c) { var d = a(this).find("[data-valmsg-for='" + g(c[0].name) + "']"), e = d.attr("data-valmsg-replace"), f = e ? a.parseJSON(e) !== !1 : null; d.removeClass("field-validation-valid").addClass("field-validation-error"), b.data("unobtrusiveContainer", d), f ? (d.empty(), b.removeClass("input-validation-error").appendTo(d)) : b.hide() } function k(b, c) { var d = a(this).find("[data-valmsg-summary=true]"), e = d.find("ul"); e && e.length && c.errorList.length && (e.empty(), d.addClass("validation-summary-errors").removeClass("validation-summary-valid"), a.each(c.errorList, function () { a("<li />").html(this.message).appendTo(e) })) } function l(b) { var c = b.data("unobtrusiveContainer"), d = c.attr("data-valmsg-replace"), e = d ? a.parseJSON(d) : null; c && (c.addClass("field-validation-valid").removeClass("field-validation-error"), b.removeData("unobtrusiveContainer"), e && c.empty()) } function m() { var c = a(this); c.data("validator").resetForm(), c.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"), c.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer") } function n(b) { var c = a(b), e = c.data(d), f = a.proxy(m, b); return e || (e = { options: { errorClass: "input-validation-error", errorElement: "span", errorPlacement: a.proxy(j, b), invalidHandler: a.proxy(k, b), messages: {}, rules: {}, success: a.proxy(l, b) }, attachValidation: function () { c.unbind("reset." + d, f).bind("reset." + d, f).validate(this.options) }, validate: function () { return c.validate(), c.valid() } }, c.data(d, e)), e } var c, b = a.validator, d = "unobtrusiveValidation"; b.unobtrusive = { adapters: [], parseElement: function (b, c) { var f, g, h, d = a(b), e = d.parents("form")[0]; e && (f = n(e), f.options.rules[b.name] = g = {}, f.options.messages[b.name] = h = {}, a.each(this.adapters, function () { var c = "data-val-" + this.name, f = d.attr(c), i = {}; void 0 !== f && (c += "-", a.each(this.params, function () { i[this] = d.attr(c + this) }), this.adapt({ element: b, form: e, message: f, params: i, rules: g, messages: h })) }), a.extend(g, { __dummy__: !0 }), c || f.attachValidation()) }, parse: function (c) { var d = a(c).parents("form").andSelf().add(a(c).find("form")).filter("form"); a(c).find(":input[data-val=true]").each(function () { b.unobtrusive.parseElement(this, !0) }), d.each(function () { var a = n(this); a && a.attachValidation() }) } }, c = b.unobtrusive.adapters, c.add = function (a, b, c) { return c || (c = b, b = []), this.push({ name: a, params: b, adapt: c }), this }, c.addBool = function (a, b) { return this.add(a, function (c) { e(c, b || a, !0) }) }, c.addMinMax = function (a, b, c, d, f, g) { return this.add(a, [f || "min", g || "max"], function (a) { var f = a.params.min, g = a.params.max; f && g ? e(a, d, [f, g]) : f ? e(a, b, f) : g && e(a, c, g) }) }, c.addSingleVal = function (a, b, c) { return this.add(a, [b || "val"], function (d) { e(d, c || a, d.params[b]) }) }, b.addMethod("__dummy__", function () { return !0 }), b.addMethod("regex", function (a, b, c) { var d; return this.optional(b) ? !0 : (d = new RegExp(c).exec(a), d && 0 === d.index && d[0].length === a.length) }), b.addMethod("nonalphamin", function (a, b, c) { var d; return c && (d = a.match(/\W/g), d = d && d.length >= c), d }), c.addSingleVal("accept", "exts").addSingleVal("regex", "pattern"), c.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"), c.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range"), c.add("equalto", ["other"], function (b) { var c = h(b.element.name), d = b.params.other, f = i(d, c), j = a(b.form).find(":input[name='" + g(f) + "']")[0]; e(b, "equalTo", j) }), c.add("required", function (a) { ("INPUT" !== a.element.tagName.toUpperCase() || "CHECKBOX" !== a.element.type.toUpperCase()) && e(a, "required", !0) }), c.add("remote", ["url", "type", "additionalfields"], function (b) { var c = { url: b.params.url, type: b.params.type || "GET", data: {} }, d = h(b.element.name); a.each(f(b.params.additionalfields || b.element.name), function (e, f) { var h = i(f, d); c.data[h] = function () { return a(b.form).find(":input[name='" + g(h) + "']").val() } }), e(b, "remote", c) }), c.add("password", ["min", "nonalphamin", "regex"], function (a) { a.params.min && e(a, "minlength", a.params.min), a.params.nonalphamin && e(a, "nonalphamin", a.params.nonalphamin), a.params.regex && e(a, "regex", a.params.regex) }), a(function () { b.unobtrusive.parse(document) }) }(jQuery);
/// <reference path="jquery-1.4.4-vsdoc.js" />
/// <reference path="jquery.validate.unobtrusive.js" />

// Enables support for old version of jquery.validate.unobtrusive
$.fn.andSelf = $.fn.addBack;

$.validator.addMethod(
  "regex",
  function (value, element, regexp) {
    var re = new RegExp(regexp);
    return this.optional(element) || re.test(value);
  }
);

$.validator.addMethod('requiredif',
  function (value, element, parameters) {
    // Die Ids der dependentProperties
    var ids = parameters['dependentproperty'].split(',');

    // get the target value (as a string, as that's what actual value will be)
    var targetvalues = parameters['targetvalue'].split(',');
    var operatorMode = parameters['operatormode'];

    var validate = false;

    for (var index = 0; index < ids.length; index++) {
      var id = ids[index];
      var targetvalue = targetvalues[index];
      targetvalue = (targetvalue == null ? '' : targetvalue).toString();

      // get the actual value of the target control
      // note - this probably needs to cater for more 
      // control types, e.g. radios
      var control = $("[id$=" + "\'" + id + "\']");

      if (control.length === 0) {
        control = $("[name$=" + "\'" + id + "\']");
      }

      var controltype = control.attr('type');

      if (controltype === undefined && control.length > 0) {
        controltype = $(control)[0].tagName.toLowerCase();
      }

      var actualvalue;
      switch (controltype) {
        case 'checkbox':
          var validationValue = $(control[0]).attr('validationValue');
          if (validationValue !== undefined) {
            actualvalue = validationValue;
          }
          else {
            actualvalue = control[0].checked.toString();
          }
          break;
        case 'radio':
          var checkedControl = control.filter(":checked");
          if (checkedControl.length > 0) {
            if (targetvalue === 'true' || targetvalue === 'false') {
              actualvalue = "true";
            } else {
              var ctrlValue = checkedControl.val();
              actualvalue = ctrlValue.toLowerCase() === targetvalue.toLowerCase() ? ctrlValue : undefined;
            }
          } else {
            actualvalue = undefined;
          }
          break;
        case 'select':
          actualvalue = control.val();
          break;
        case undefined:
          actualvalue = undefined;
          break;
        default:
          actualvalue = control.val() != '' ? control.val() : undefined;
      }

      // if the condition is true, reuse the existing 
      // required field validator functionality
      if (actualvalue !== undefined && targetvalue.toLowerCase() === actualvalue.toLowerCase())
        validate = true;
      else
        validate = false;

      if (!validate && operatorMode === 'And')
        break;

      if (validate && operatorMode === 'Or')
        break;
    }

    if (validate)
      return $.validator.methods.required.call(this, value, element, parameters) && $.validator.methods.regex.call(this, value, element, /.*\S+.*/);

    return true;
  }
);

$.validator.unobtrusive.adapters.add(
  'requiredif',
  ['dependentproperty', 'targetvalue', 'operatormode'],
  function (options) {
    options.rules['requiredif'] = {
      dependentproperty: options.params['dependentproperty'],
      targetvalue: options.params['targetvalue'],
      operatormode: options.params['operatormode']
    };
    options.messages['requiredif'] = options.message;
  });

$.validator.addMethod('mintimespan', function (val, elem, minyear) {
  //todo: one might consider also checking/configuring format. 19.19.1 probaby shouldnt be a valid input and some countries commonly use MM.DD.YYYY
  try {
    let parts = val.split('.');
    let isfocused = $(elem).is(':focus');
    if (!isfocused && parts[2].length === 2) { //JS assumes 2-digit years to mean 19xx which might not necessarily be the case anymore
      parts[2] = parseInt(parts[2]);
      let currentdigits = (new Date()).getFullYear() - 2000;
      parts[2] += parts[2] <= currentdigits ? 2000 : 1900; //treat digits bigger than currentyears last 2 digits as 19XX, otherwise as 20XX
    }
    let birthday = new Date(parts[2], parts[1] - 1, parts[0]);
    parts = minyear.split('.');
    let maxBirthday = new Date(parts[2], parts[1] - 1, parts[0]);
    if (!isfocused) {
      $(elem).val(birthday.toLocaleDateString('de-DE').replace(new RegExp('\u200e', 'g'), '')); //make formatted date visible to avoid confusion
    }
    return maxBirthday >= birthday;
  } catch (e) {
    return false;
  }
});

$.validator.unobtrusive.adapters.addSingleVal("mintimespan", "minyear");

$.validator.unobtrusive.adapters.addBool("mustbetrue", "required");

$.validator.unobtrusive.adapters.add("localizedcountryzipcode", ['dependentproperty', 'regex'], function (options) {
  options.rules['localizedcountryzipcode'] = {
    dependentproperty: options.params['dependentproperty'],
    regex: options.params['regex']
  };
  options.messages['localizedcountryzipcode'] = options.message;

});

$.validator.addMethod('localizedcountryzipcode', function (value, element, parameters) {
  var id = parameters['dependentproperty'];
  var regex = parameters['regex'];
  var match = value.match(regex);

  if (match !== null) {
    return true;
  }

  return false;
});

$.validator.unobtrusive.adapters.add("lookuplist", ['lookupdatas', 'hasfreetext'], function (options) {
  options.rules['lookuplist'] = {
    lookupdatas: options.params['lookupdatas'].split(','),
    hasfreetext: options.params['hasfreetext']
  };
  options.messages['lookuplist'] = options.message;
});

$.validator.addMethod('lookuplist', function (val, elem, params) {
  if (params['hasfreetext'] === 'True')
    return true;

  var result = true,
   vals = val.split(','),
   datas = params['lookupdatas'];

  $.each(vals, function (index, value) {
    result &= !!~$.inArray(value, datas)
  });
  
  return result;
});

$.validator.unobtrusive.adapters.add('email', ['regex'], function (options) {
  options.rules['email'] = {
    regex: options.params['regex']
  }
});

$.validator.addMethod('email', function (value, element, parameters) {
  var regex = parameters['regex'];
  var match = value.match(regex);

  if (match !== null || value.length == 0) {
    return true;
  }
  return false;
});

$.validator.addMethod('kendo-datetime', function (val, elem) { //format validation for kendo datepicker, timepicker and datetimepicker
  var elemdata = $(elem).data();
  for (var prop in elemdata) {
    if (elemdata.hasOwnProperty(prop) && prop.indexOf("kendo") === 0 && elemdata[prop].options) {
      var format = elemdata[prop].options.format;
      break;
    }
  }  

  if (kendo && format && kendo.parseDate(val, format)) {
    return true;
  }
  return false;
});

$.validator.unobtrusive.adapters.addSingleVal("kendo-datetime");

$.validator.addMethod('validatenowhitespace', function (value, elem) {  
  var match = value.match(/[\S\s]*\S+[\S\s]*/);
  return match != null;
});

$.validator.unobtrusive.adapters.add('required', function (options) {
  //ignore radios, checkboxes and selects
  if (/radio|checkbox/i.test(options.element.type) || "select" === options.element.nodeName.toLowerCase()) {
    return;
  }

  //Required fields must not consist of whitespace only
  options.rules['validatenowhitespace'] = true;
  options.messages['validatenowhitespace'] = options.messages['required']; 
});

$.validator.unobtrusive.adapters.add("validatequiz", ['correctanswers'], function (options) {
  options.rules['validatequiz'] = {
    correctanswers: options.params['correctanswers'].split(',')
  };
  options.messages['validatequiz'] = options.message;
});

$.validator.addMethod(
  'validatequiz',
  function (_, element, params) {
    var isValid = true;
    var $this = jQuery(element);
    var name = $this.attr('name');

    var $checkedOptions = jQuery("[name='" + name + "']").filter(function () {
      return jQuery(this).prop('checked') === true;
    });

    $checkedOptions.each(function () {
      var $option = jQuery(this);
      isValid = isValid && params["correctanswers"].indexOf($option.val()) > -1;
    });

    return isValid && $checkedOptions.length === params["correctanswers"].length;
  }
);
/* NUGET: BEGIN LICENSE TEXT
 *
 * Microsoft grants you the right to use these script files for the sole
 * purpose of either: (i) interacting through your browser with the Microsoft
 * website or online service, subject to the applicable licensing or use
 * terms; or (ii) using the files as included with a Microsoft product subject
 * to that product's license terms. Microsoft reserves all other rights to the
 * files not expressly granted by Microsoft, whether by implication, estoppel
 * or otherwise. Insofar as a script file is dual licensed under GPL,
 * Microsoft neither took the code under GPL nor distributes it thereunder but
 * under the terms set out in this paragraph. All notices and licenses
 * below are for informational purposes only.
 *
 * NUGET: END LICENSE TEXT */
/*
** Unobtrusive Ajax support library for jQuery
** Copyright (C) Microsoft Corporation. All rights reserved.
*/
(function (a) { var b = "unobtrusiveAjaxClick", d = "unobtrusiveAjaxClickTarget", h = "unobtrusiveValidation"; function c(d, b) { var a = window, c = (d || "").split("."); while (a && c.length) a = a[c.shift()]; if (typeof a === "function") return a; b.push(d); return Function.constructor.apply(null, b) } function e(a) { return a === "GET" || a === "POST" } function g(b, a) { !e(a) && b.setRequestHeader("X-HTTP-Method-Override", a) } function i(c, b, e) { var d; if (e.indexOf("application/x-javascript") !== -1) return; d = (c.getAttribute("data-ajax-mode") || "").toUpperCase(); a(c.getAttribute("data-ajax-update")).each(function (f, c) { var e; switch (d) { case "BEFORE": e = c.firstChild; a("<div />").html(b).contents().each(function () { c.insertBefore(this, e) }); break; case "AFTER": a("<div />").html(b).contents().each(function () { c.appendChild(this) }); break; case "REPLACE-WITH": a(c).replaceWith(b); break; default: a(c).html(b) } }) } function f(b, d) { var j, k, f, h; j = b.getAttribute("data-ajax-confirm"); if (j && !window.confirm(j)) return; k = a(b.getAttribute("data-ajax-loading")); h = parseInt(b.getAttribute("data-ajax-loading-duration"), 10) || 0; a.extend(d, { type: b.getAttribute("data-ajax-method") || undefined, url: b.getAttribute("data-ajax-url") || undefined, cache: !!b.getAttribute("data-ajax-cache"), beforeSend: function (d) { var a; g(d, f); a = c(b.getAttribute("data-ajax-begin"), ["xhr"]).apply(b, arguments); a !== false && k.show(h); return a }, complete: function () { k.hide(h); c(b.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(b, arguments) }, success: function (a, e, d) { i(b, a, d.getResponseHeader("Content-Type") || "text/html"); c(b.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(b, arguments) }, error: function () { c(b.getAttribute("data-ajax-failure"), ["xhr", "status", "error"]).apply(b, arguments) } }); d.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" }); f = d.type.toUpperCase(); if (!e(f)) { d.type = "POST"; d.data.push({ name: "X-HTTP-Method-Override", value: f }) } a.ajax(d) } function j(c) { var b = a(c).data(h); return !b || !b.validate || b.validate() } a(document).on("click", "a[data-ajax=true]", function (a) { a.preventDefault(); f(this, { url: this.href, type: "GET", data: [] }) }); a(document).on("click", "form[data-ajax=true] input[type=image]", function (c) { var g = c.target.name, e = a(c.target), f = a(e.parents("form")[0]), d = e.offset(); f.data(b, [{ name: g + ".x", value: Math.round(c.pageX - d.left) }, { name: g + ".y", value: Math.round(c.pageY - d.top) }]); setTimeout(function () { f.removeData(b) }, 0) }); a(document).on("click", "form[data-ajax=true] :submit", function (e) { var g = e.currentTarget.name, f = a(e.target), c = a(f.parents("form")[0]); c.data(b, g ? [{ name: g, value: e.currentTarget.value }] : []); c.data(d, f); setTimeout(function () { c.removeData(b); c.removeData(d) }, 0) }); a(document).on("submit", "form[data-ajax=true]", function (h) { var e = a(this).data(b) || [], c = a(this).data(d), g = c && c.hasClass("cancel"); h.preventDefault(); if (!g && !j(this)) return; f(this, { url: this.action, type: this.method || "GET", data: e.concat(a(this).serializeArray()) }) }) })(jQuery);
!function(e,define){define("kendo.core.min",["jquery"],e)}(function(){return function(e,t,n){function r(){}function o(e,t){if(t)return"'"+e.split("'").join("\\'").split('\\"').join('\\\\\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")+"'";var n=e.charAt(0),r=e.substring(1);return"="===n?"+("+r+")+":":"===n?"+$kendoHtmlEncode("+r+")+":";"+e+";$kendoOutput+="}function i(e,t,n){return e+="",t=t||2,n=t-e.length,n?L[t].substring(0,n)+e:e}function a(e){var t=e.css(ye.support.transitions.css+"box-shadow")||e.css("box-shadow"),n=t?t.match(ze)||[0,0,0,0,0]:[0,0,0,0,0],r=Te.max(+n[3],+(n[4]||0));return{left:-n[1]+r,right:+n[1]+r,bottom:+n[2]+r}}function s(t,n){var r,o,i,a,s,u,l,c=ke.browser,d=ye._outerWidth,f=ye._outerHeight;return t.parent().hasClass("k-animation-container")?(u=t.parent(".k-animation-container"),l=u[0].style,u.is(":hidden")&&u.show(),r=De.test(l.width)||De.test(l.height),r||u.css({width:d(t),height:f(t),boxSizing:"content-box",mozBoxSizing:"content-box",webkitBoxSizing:"content-box"})):(o=t[0].style.width,i=t[0].style.height,a=De.test(o),s=De.test(i),r=a||s,!a&&(!n||n&&o)&&(o=d(t)),!s&&(!n||n&&i)&&(i=f(t)),t.wrap(e("<div/>").addClass("k-animation-container").css({width:o,height:i})),r&&t.css({width:"100%",height:"100%",boxSizing:"border-box",mozBoxSizing:"border-box",webkitBoxSizing:"border-box"})),c.msie&&Te.floor(c.version)<=7&&(t.css({zoom:1}),t.children(".k-menu").width(t.width())),t.parent()}function u(e){var t=1,n=arguments.length;for(t=1;t<n;t++)l(e,arguments[t]);return e}function l(e,t){var n,r,o,i,a,s=ye.data.ObservableArray,u=ye.data.LazyObservableArray,c=ye.data.DataSource,d=ye.data.HierarchicalDataSource;for(n in t)r=t[n],o=typeof r,i=o===Ae&&null!==r?r.constructor:null,i&&i!==Array&&i!==s&&i!==u&&i!==c&&i!==d&&i!==RegExp?r instanceof Date?e[n]=new Date(r.getTime()):_(r.clone)?e[n]=r.clone():(a=e[n],e[n]=typeof a===Ae?a||{}:{},l(e[n],r)):o!==Fe&&(e[n]=r);return e}function c(e,t,r){for(var o in t)if(t.hasOwnProperty(o)&&t[o].test(e))return o;return r!==n?r:e}function d(e){return e.replace(/([a-z][A-Z])/g,function(e){return e.charAt(0)+"-"+e.charAt(1).toLowerCase()})}function f(e){return e.replace(/\-(\w)/g,function(e,t){return t.toUpperCase()})}function p(t,n){var r,o={};return document.defaultView&&document.defaultView.getComputedStyle?(r=document.defaultView.getComputedStyle(t,""),n&&e.each(n,function(e,t){o[t]=r.getPropertyValue(t)})):(r=t.currentStyle,n&&e.each(n,function(e,t){o[t]=r[f(t)]})),ye.size(o)||(o=r),o}function m(e){if(e&&e.className&&"string"==typeof e.className&&e.className.indexOf("k-auto-scrollable")>-1)return!0;var t=p(e,["overflow"]).overflow;return"auto"==t||"scroll"==t}function h(t,r){var o,i=ke.browser.webkit,a=ke.browser.mozilla,s=t instanceof e?t[0]:t;if(t)return o=ke.isRtl(t),r===n?o&&i?s.scrollWidth-s.clientWidth-s.scrollLeft:Math.abs(s.scrollLeft):(s.scrollLeft=o&&i?s.scrollWidth-s.clientWidth-r:o&&a?-r:r,n)}function g(e){var t,n=0;for(t in e)e.hasOwnProperty(t)&&"toJSON"!=t&&n++;return n}function y(e,n,r){var o,i,a;return n||(n="offset"),o=e[n](),i={top:o.top,right:o.right,bottom:o.bottom,left:o.left},ke.browser.msie&&(ke.pointers||ke.msPointers)&&!r&&(a=ke.isRtl(e)?1:-1,i.top-=t.pageYOffset+a*document.documentElement.scrollTop,i.left-=t.pageXOffset+a*document.documentElement.scrollLeft),i}function v(e){var t={};return be("string"==typeof e?e.split(" "):e,function(e){t[e]=this}),t}function b(e){return new ye.effects.Element(e)}function w(e,t,n,r){return typeof e===He&&(_(t)&&(r=t,t=400,n=!1),_(n)&&(r=n,n=!1),typeof t===Pe&&(n=t,t=400),e={effects:e,duration:t,reverse:n,complete:r}),ve({effects:{},duration:400,reverse:!1,init:Se,teardown:Se,hide:!1},e,{completeCallback:e.complete,complete:Se})}function M(t,n,r,o,i){for(var a,s=0,u=t.length;s<u;s++)a=e(t[s]),a.queue(function(){B.promise(a,w(n,r,o,i))});return t}function S(e,t,n,r){return t&&(t=t.split(" "),be(t,function(t,n){e.toggleClass(n,r)})),e}function T(e){return(""+e).replace(Y,"&amp;").replace(J,"&lt;").replace(G,"&gt;").replace(q,"&quot;").replace(V,"&#39;")}function x(e,t){var r;return 0===t.indexOf("data")&&(t=t.substring(4),t=t.charAt(0).toLowerCase()+t.substring(1)),t=t.replace(oe,"-$1"),r=e.getAttribute("data-"+ye.ns+t),null===r?r=n:"null"===r?r=null:"true"===r?r=!0:"false"===r?r=!1:Ce.test(r)?r=parseFloat(r):ne.test(r)&&!re.test(r)&&(r=Function("return ("+r+")")()),r}function k(t,r){var o,i,a={};for(o in r)i=x(t,o),i!==n&&(te.test(o)&&(i="string"==typeof i?ye.template(e("#"+i).html()):t.getAttribute(o)),a[o]=i);return a}function D(t,n){return e.contains(t,n)?-1:1}function O(){var t=e(this);return e.inArray(t.attr("data-"+ye.ns+"role"),["slider","rangeslider"])>-1||t.is(":visible")}function z(e,t){var n=e.nodeName.toLowerCase();return(/input|select|textarea|button|object/.test(n)?!e.disabled:"a"===n?e.href||t:t)&&C(e)}function C(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function E(e,t){return new E.fn.init(e,t)}var H,_,A,N,P,F,R,U,I,W,$,L,j,B,Y,J,q,V,G,K,Q,Z,X,ee,te,ne,re,oe,ie,ae,se,ue,le,ce,de,fe,pe,me,he,ge,ye=t.kendo=t.kendo||{cultures:{}},ve=e.extend,be=e.each,we=e.isArray,Me=e.proxy,Se=e.noop,Te=Math,xe=t.JSON||{},ke={},De=/%/,Oe=/\{(\d+)(:[^\}]+)?\}/g,ze=/(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+)?/i,Ce=/^(\+|-?)\d+(\.?)\d*$/,Ee="function",He="string",_e="number",Ae="object",Ne="null",Pe="boolean",Fe="undefined",Re={},Ue={},Ie=[].slice;ye.version="2017.1.223".replace(/^\s+|\s+$/g,""),r.extend=function(e){var t,n,r=function(){},o=this,i=e&&e.init?e.init:function(){o.apply(this,arguments)};r.prototype=o.prototype,n=i.fn=i.prototype=new r;for(t in e)n[t]=null!=e[t]&&e[t].constructor===Object?ve(!0,{},r.prototype[t],e[t]):e[t];return n.constructor=i,i.extend=o.extend,i},r.prototype._initOptions=function(e){this.options=u({},this.options,e)},_=ye.isFunction=function(e){return"function"==typeof e},A=function(){this._defaultPrevented=!0},N=function(){return this._defaultPrevented===!0},P=r.extend({init:function(){this._events={}},bind:function(e,t,r){var o,i,a,s,u,l=this,c=typeof e===He?[e]:e,d=typeof t===Ee;if(t===n){for(o in e)l.bind(o,e[o]);return l}for(o=0,i=c.length;o<i;o++)e=c[o],s=d?t:t[e],s&&(r&&(a=s,s=function(){l.unbind(e,s),a.apply(l,arguments)},s.original=a),u=l._events[e]=l._events[e]||[],u.push(s));return l},one:function(e,t){return this.bind(e,t,!0)},first:function(e,t){var n,r,o,i,a=this,s=typeof e===He?[e]:e,u=typeof t===Ee;for(n=0,r=s.length;n<r;n++)e=s[n],o=u?t:t[e],o&&(i=a._events[e]=a._events[e]||[],i.unshift(o));return a},trigger:function(e,t){var n,r,o=this,i=o._events[e];if(i){for(t=t||{},t.sender=o,t._defaultPrevented=!1,t.preventDefault=A,t.isDefaultPrevented=N,i=i.slice(),n=0,r=i.length;n<r;n++)i[n].call(o,t);return t._defaultPrevented===!0}return!1},unbind:function(e,t){var r,o=this,i=o._events[e];if(e===n)o._events={};else if(i)if(t)for(r=i.length-1;r>=0;r--)i[r]!==t&&i[r].original!==t||i.splice(r,1);else o._events[e]=[];return o}}),F=/^\w+/,R=/\$\{([^}]*)\}/g,U=/\\\}/g,I=/__CURLY__/g,W=/\\#/g,$=/__SHARP__/g,L=["","0","00","000","0000"],H={paramName:"data",useWithBlock:!0,render:function(e,t){var n,r,o="";for(n=0,r=t.length;n<r;n++)o+=e(t[n]);return o},compile:function(e,t){var n,r,i,a=ve({},this,t),s=a.paramName,u=s.match(F)[0],l=a.useWithBlock,c="var $kendoOutput, $kendoHtmlEncode = kendo.htmlEncode;";if(_(e))return e;for(c+=l?"with("+s+"){":"",c+="$kendoOutput=",r=e.replace(U,"__CURLY__").replace(R,"#=$kendoHtmlEncode($1)#").replace(I,"}").replace(W,"__SHARP__").split("#"),i=0;i<r.length;i++)c+=o(r[i],i%2===0);c+=l?";}":";",c+="return $kendoOutput;",c=c.replace($,"#");try{return n=Function(u,c),n._slotCount=Math.floor(r.length/2),n}catch(d){throw Error(ye.format("Invalid template:'{0}' Generated code:'{1}'",e,c))}}},function(){function e(e){return a.lastIndex=0,a.test(e)?'"'+e.replace(a,function(e){var t=s[e];return typeof t===He?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function t(i,a){var s,l,c,d,f,p,m=n,h=a[i];if(h&&typeof h===Ae&&typeof h.toJSON===Ee&&(h=h.toJSON(i)),typeof o===Ee&&(h=o.call(a,i,h)),p=typeof h,p===He)return e(h);if(p===_e)return isFinite(h)?h+"":Ne;if(p===Pe||p===Ne)return h+"";if(p===Ae){if(!h)return Ne;if(n+=r,f=[],"[object Array]"===u.apply(h)){for(d=h.length,s=0;s<d;s++)f[s]=t(s,h)||Ne;return c=0===f.length?"[]":n?"[\n"+n+f.join(",\n"+n)+"\n"+m+"]":"["+f.join(",")+"]",n=m,c}if(o&&typeof o===Ae)for(d=o.length,s=0;s<d;s++)typeof o[s]===He&&(l=o[s],c=t(l,h),c&&f.push(e(l)+(n?": ":":")+c));else for(l in h)Object.hasOwnProperty.call(h,l)&&(c=t(l,h),c&&f.push(e(l)+(n?": ":":")+c));return c=0===f.length?"{}":n?"{\n"+n+f.join(",\n"+n)+"\n"+m+"}":"{"+f.join(",")+"}",n=m,c}}var n,r,o,a=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,s={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},u={}.toString;typeof Date.prototype.toJSON!==Ee&&(Date.prototype.toJSON=function(){var e=this;return isFinite(e.valueOf())?i(e.getUTCFullYear(),4)+"-"+i(e.getUTCMonth()+1)+"-"+i(e.getUTCDate())+"T"+i(e.getUTCHours())+":"+i(e.getUTCMinutes())+":"+i(e.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}),typeof xe.stringify!==Ee&&(xe.stringify=function(e,i,a){var s;if(n="",r="",typeof a===_e)for(s=0;s<a;s+=1)r+=" ";else typeof a===He&&(r=a);if(o=i,i&&typeof i!==Ee&&(typeof i!==Ae||typeof i.length!==_e))throw Error("JSON.stringify");return t("",{"":e})})}(),function(){function t(e){if(e){if(e.numberFormat)return e;if(typeof e===He){var t=ye.cultures;return t[e]||t[e.split("-")[0]]||null}return null}return null}function r(e){return e&&(e=t(e)),e||ye.cultures.current}function o(e,t,o){o=r(o);var a=o.calendars.standard,s=a.days,u=a.months;return t=a.patterns[t]||t,t.replace(c,function(t){var r,o,l;return"d"===t?o=e.getDate():"dd"===t?o=i(e.getDate()):"ddd"===t?o=s.namesAbbr[e.getDay()]:"dddd"===t?o=s.names[e.getDay()]:"M"===t?o=e.getMonth()+1:"MM"===t?o=i(e.getMonth()+1):"MMM"===t?o=u.namesAbbr[e.getMonth()]:"MMMM"===t?o=u.names[e.getMonth()]:"yy"===t?o=i(e.getFullYear()%100):"yyyy"===t?o=i(e.getFullYear(),4):"h"===t?o=e.getHours()%12||12:"hh"===t?o=i(e.getHours()%12||12):"H"===t?o=e.getHours():"HH"===t?o=i(e.getHours()):"m"===t?o=e.getMinutes():"mm"===t?o=i(e.getMinutes()):"s"===t?o=e.getSeconds():"ss"===t?o=i(e.getSeconds()):"f"===t?o=Te.floor(e.getMilliseconds()/100):"ff"===t?(o=e.getMilliseconds(),o>99&&(o=Te.floor(o/10)),o=i(o)):"fff"===t?o=i(e.getMilliseconds(),3):"tt"===t?o=e.getHours()<12?a.AM[0]:a.PM[0]:"zzz"===t?(r=e.getTimezoneOffset(),l=r<0,o=(""+Te.abs(r/60)).split(".")[0],r=Te.abs(r)-60*o,o=(l?"+":"-")+i(o),o+=":"+i(r)):"zz"!==t&&"z"!==t||(o=e.getTimezoneOffset()/60,l=o<0,o=(""+Te.abs(o)).split(".")[0],o=(l?"+":"-")+("zz"===t?i(o):o)),o!==n?o:t.slice(1,t.length-1)})}function a(e,t,o){o=r(o);var i,a,l,c,w,M,S,T,x,k,D,O,z,C,E,H,_,A,N,P,F,R,U,I=o.numberFormat,W=I[h],$=I.decimals,L=I.pattern[0],j=[],B=e<0,Y=m,J=m,q=-1;if(e===n)return m;if(!isFinite(e))return e;if(!t)return o.name.length?e.toLocaleString():""+e;if(w=d.exec(t)){if(t=w[1].toLowerCase(),a="c"===t,l="p"===t,(a||l)&&(I=a?I.currency:I.percent,W=I[h],$=I.decimals,i=I.symbol,L=I.pattern[B?0:1]),c=w[2],c&&($=+c),"e"===t)return c?e.toExponential($):e.toExponential();if(l&&(e*=100),e=u(e,$),B=e<0,e=e.split(h),M=e[0],S=e[1],B&&(M=M.substring(1)),J=s(M,0,M.length,I),S&&(J+=W+S),"n"===t&&!B)return J;for(e=m,k=0,D=L.length;k<D;k++)O=L.charAt(k),e+="n"===O?J:"$"===O||"%"===O?i:O;return e}if(B&&(e=-e),(t.indexOf("'")>-1||t.indexOf('"')>-1||t.indexOf("\\")>-1)&&(t=t.replace(f,function(e){var t=e.charAt(0).replace("\\",""),n=e.slice(1).replace(t,"");return j.push(n),b})),t=t.split(";"),B&&t[1])t=t[1],C=!0;else if(0===e){if(t=t[2]||t[0],t.indexOf(y)==-1&&t.indexOf(v)==-1)return t}else t=t[0];if(P=t.indexOf("%"),F=t.indexOf("$"),l=P!=-1,a=F!=-1,l&&(e*=100),a&&"\\"===t[F-1]&&(t=t.split("\\").join(""),a=!1),(a||l)&&(I=a?I.currency:I.percent,W=I[h],$=I.decimals,i=I.symbol),z=t.indexOf(g)>-1,z&&(t=t.replace(p,m)),E=t.indexOf(h),D=t.length,E!=-1?(S=(""+e).split("e"),S=S[1]?u(e,Math.abs(S[1])):S[0],S=S.split(h)[1]||m,_=t.lastIndexOf(v)-E,H=t.lastIndexOf(y)-E,A=_>-1,N=H>-1,k=S.length,A||N||(t=t.substring(0,E)+t.substring(E+1),D=t.length,E=-1,k=0),A&&_>H?k=_:H>_&&(N&&k>H?k=H:A&&k<_&&(k=_)),k>-1&&(e=u(e,k))):e=u(e),H=t.indexOf(y),R=_=t.indexOf(v),q=H==-1&&_!=-1?_:H!=-1&&_==-1?H:H>_?_:H,H=t.lastIndexOf(y),_=t.lastIndexOf(v),U=H==-1&&_!=-1?_:H!=-1&&_==-1?H:H>_?H:_,q==D&&(U=q),q!=-1){for(J=(""+e).split(h),M=J[0],S=J[1]||m,T=M.length,x=S.length,B&&e*-1>=0&&(B=!1),e=t.substring(0,q),B&&!C&&(e+="-"),k=q;k<D;k++){if(O=t.charAt(k),E==-1){if(U-k<T){e+=M;break}}else if(_!=-1&&_<k&&(Y=m),E-k<=T&&E-k>-1&&(e+=M,k=E),E===k){e+=(S?W:m)+S,k+=U-E+1;continue}O===v?(e+=O,Y=O):O===y&&(e+=Y)}if(z&&(e=s(e,q+(B&&!C?1:0),Math.max(U,T+q),I)),U>=q&&(e+=t.substring(U+1)),a||l){for(J=m,k=0,D=e.length;k<D;k++)O=e.charAt(k),J+="$"===O||"%"===O?i:O;e=J}if(D=j.length)for(k=0;k<D;k++)e=e.replace(b,j[k])}return e}var s,u,l,c=/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|zzz|zz|z|"[^"]*"|'[^']*'/g,d=/^(n|c|p|e)(\d*)$/i,f=/(\\.)|(['][^']*[']?)|(["][^"]*["]?)/g,p=/\,/g,m="",h=".",g=",",y="#",v="0",b="??",w="en-US",M={}.toString;ye.cultures["en-US"]={name:w,numberFormat:{pattern:["-n"],decimals:2,",":",",".":".",groupSize:[3],percent:{pattern:["-n %","n %"],decimals:2,",":",",".":".",groupSize:[3],symbol:"%"},currency:{name:"US Dollar",abbr:"USD",pattern:["($n)","$n"],decimals:2,",":",",".":".",groupSize:[3],symbol:"$"}},calendars:{standard:{days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December"],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},AM:["AM","am","AM"],PM:["PM","pm","PM"],patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",F:"dddd, MMMM dd, yyyy h:mm:ss tt",g:"M/d/yyyy h:mm tt",G:"M/d/yyyy h:mm:ss tt",m:"MMMM dd",M:"MMMM dd",s:"yyyy'-'MM'-'ddTHH':'mm':'ss",t:"h:mm tt",T:"h:mm:ss tt",u:"yyyy'-'MM'-'dd HH':'mm':'ss'Z'",y:"MMMM, yyyy",Y:"MMMM, yyyy"},"/":"/",":":":",firstDay:0,twoDigitYearMax:2029}}},ye.culture=function(e){var r,o=ye.cultures;return e===n?o.current:(r=t(e)||o[w],r.calendar=r.calendars.standard,o.current=r,n)},ye.findCulture=t,ye.getCulture=r,ye.culture(w),s=function(e,t,r,o){var i,a,s,u,l,c,d=e.indexOf(o[h]),f=o.groupSize.slice(),p=f.shift();if(r=d!==-1?d:r+1,i=e.substring(t,r),a=i.length,a>=p){for(s=a,u=[];s>-1;)if(l=i.substring(s-p,s),l&&u.push(l),s-=p,c=f.shift(),p=c!==n?c:p,0===p){u.push(i.substring(0,s));break}i=u.reverse().join(o[g]),e=e.substring(0,t)+i+e.substring(r)}return e},u=function(e,t){return t=t||0,e=(""+e).split("e"),e=Math.round(+(e[0]+"e"+(e[1]?+e[1]+t:t))),e=(""+e).split("e"),e=+(e[0]+"e"+(e[1]?+e[1]-t:-t)),e.toFixed(Math.min(t,20))},l=function(e,t,r){if(t){if("[object Date]"===M.call(e))return o(e,t,r);if(typeof e===_e)return a(e,t,r)}return e!==n?e:""},ye.format=function(e){var t=arguments;return e.replace(Oe,function(e,n,r){var o=t[parseInt(n,10)+1];return l(o,r?r.substring(1):"")})},ye._extractFormat=function(e){return"{0:"===e.slice(0,3)&&(e=e.slice(3,e.length-1)),e},ye._activeElement=function(){try{return document.activeElement}catch(e){return document.documentElement.activeElement}},ye._round=u,ye._outerWidth=function(t,n){return e(t).outerWidth(n||!1)||0},ye._outerHeight=function(t,n){return e(t).outerHeight(n||!1)||0},ye.toString=l}(),function(){function t(e,t,n){return!(e>=t&&e<=n)}function r(e){return e.charAt(0)}function o(t){return e.map(t,r)}function i(e,t){t||23!==e.getHours()||e.setHours(e.getHours()+2)}function a(e){for(var t=0,n=e.length,r=[];t<n;t++)r[t]=(e[t]+"").toLowerCase();return r}function s(e){var t,n={};for(t in e)n[t]=a(e[t]);return n}function u(e,r,a){if(!e)return null;var u,l,c,d,f,h,g,y,v,w,M,S,T,x=function(e){for(var t=0;r[F]===e;)t++,F++;return t>0&&(F-=1),t},k=function(t){var n=b[t]||RegExp("^\\d{1,"+t+"}"),r=e.substr(R,t).match(n);return r?(r=r[0],R+=r.length,parseInt(r,10)):null},D=function(t,n){for(var r,o,i,a=0,s=t.length,u=0,l=0;a<s;a++)r=t[a],o=r.length,i=e.substr(R,o),n&&(i=i.toLowerCase()),i==r&&o>u&&(u=o,l=a);return u?(R+=u,l+1):null},O=function(){var t=!1;return e.charAt(R)===r[F]&&(R++,t=!0),t},z=a.calendars.standard,C=null,E=null,H=null,_=null,A=null,N=null,P=null,F=0,R=0,U=!1,I=new Date,W=z.twoDigitYearMax||2029,$=I.getFullYear();for(r||(r="d"),d=z.patterns[r],d&&(r=d),r=r.split(""),c=r.length;F<c;F++)if(u=r[F],U)"'"===u?U=!1:O();else if("d"===u){if(l=x("d"),z._lowerDays||(z._lowerDays=s(z.days)),null!==H&&l>2)continue;if(H=l<3?k(2):D(z._lowerDays[3==l?"namesAbbr":"names"],!0),null===H||t(H,1,31))return null}else if("M"===u){if(l=x("M"),z._lowerMonths||(z._lowerMonths=s(z.months)),E=l<3?k(2):D(z._lowerMonths[3==l?"namesAbbr":"names"],!0),null===E||t(E,1,12))return null;E-=1}else if("y"===u){if(l=x("y"),C=k(l),null===C)return null;2==l&&("string"==typeof W&&(W=$+parseInt(W,10)),C=$-$%100+C,C>W&&(C-=100))}else if("h"===u){if(x("h"),_=k(2),12==_&&(_=0),null===_||t(_,0,11))return null}else if("H"===u){if(x("H"),_=k(2),null===_||t(_,0,23))return null}else if("m"===u){if(x("m"),A=k(2),null===A||t(A,0,59))return null}else if("s"===u){if(x("s"),N=k(2),null===N||t(N,0,59))return null}else if("f"===u){if(l=x("f"),T=e.substr(R,l).match(b[3]),P=k(l),null!==P&&(P=parseFloat("0."+T[0],10),P=ye._round(P,3),P*=1e3),null===P||t(P,0,999))return null}else if("t"===u){if(l=x("t"),y=z.AM,v=z.PM,1===l&&(y=o(y),v=o(v)),f=D(v),!f&&!D(y))return null}else if("z"===u){if(h=!0,l=x("z"),"Z"===e.substr(R,1)){O();continue}if(g=e.substr(R,6).match(l>2?m:p),!g)return null;if(g=g[0].split(":"),w=g[0],M=g[1],!M&&w.length>3&&(R=w.length-2,M=w.substring(R),w=w.substring(0,R)),w=parseInt(w,10),t(w,-12,13))return null;if(l>2&&(M=parseInt(M,10),isNaN(M)||t(M,0,59)))return null}else if("'"===u)U=!0,O();else if(!O())return null;return S=null!==_||null!==A||N||null,null===C&&null===E&&null===H&&S?(C=$,E=I.getMonth(),H=I.getDate()):(null===C&&(C=$),null===H&&(H=1)),f&&_<12&&(_+=12),h?(w&&(_+=-w),M&&(A+=-M),e=new Date(Date.UTC(C,E,H,_,A,N,P))):(e=new Date(C,E,H,_,A,N,P),i(e,_)),C<100&&e.setFullYear(C),e.getDate()!==H&&h===n?null:e}function l(e){var t="-"===e.substr(0,1)?-1:1;return e=e.substring(1),e=60*parseInt(e.substr(0,2),10)+parseInt(e.substring(2),10),t*e}function c(e){var t,n,r,o=Te.max(y.length,v.length),i=e.calendar.patterns,a=[];for(r=0;r<o;r++){for(t=y[r],n=0;n<t.length;n++)a.push(i[t[n]]);a=a.concat(v[r])}return a}var d=/\u00A0/g,f=/[eE][\-+]?[0-9]+/,p=/[+|\-]\d{1,2}/,m=/[+|\-]\d{1,2}:?\d{2}/,h=/^\/Date\((.*?)\)\/$/,g=/[+-]\d*/,y=[[],["G","g","F"],["D","d","y","m","T","t"]],v=[["yyyy-MM-ddTHH:mm:ss.fffffffzzz","yyyy-MM-ddTHH:mm:ss.fffffff","yyyy-MM-ddTHH:mm:ss.fffzzz","yyyy-MM-ddTHH:mm:ss.fff","ddd MMM dd yyyy HH:mm:ss","yyyy-MM-ddTHH:mm:sszzz","yyyy-MM-ddTHH:mmzzz","yyyy-MM-ddTHH:mmzz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss"],["yyyy-MM-ddTHH:mm","yyyy-MM-dd HH:mm","yyyy/MM/dd HH:mm"],["yyyy/MM/dd","yyyy-MM-dd","HH:mm:ss","HH:mm"]],b={2:/^\d{1,2}/,3:/^\d{1,3}/,4:/^\d{4}/},w={}.toString;ye.parseDate=function(e,t,n){var r,o,i,a;if("[object Date]"===w.call(e))return e;if(r=0,o=null,e&&0===e.indexOf("/D")&&(o=h.exec(e)))return o=o[1],a=g.exec(o.substring(1)),o=new Date(parseInt(o,10)),a&&(a=l(a[0]),o=ye.timezone.apply(o,0),o=ye.timezone.convert(o,0,-1*a)),o;for(n=ye.getCulture(n),t||(t=c(n)),t=we(t)?t:[t],i=t.length;r<i;r++)if(o=u(e,t[r],n))return o;return o},ye.parseInt=function(e,t){var n=ye.parseFloat(e,t);return n&&(n=0|n),n},ye.parseFloat=function(e,t,n){if(!e&&0!==e)return null;if(typeof e===_e)return e;e=""+e,t=ye.getCulture(t);var r,o,i=t.numberFormat,a=i.percent,s=i.currency,u=s.symbol,l=a.symbol,c=e.indexOf("-");return f.test(e)?(e=parseFloat(e.replace(i["."],".")),isNaN(e)&&(e=null),e):c>0?null:(c=c>-1,e.indexOf(u)>-1||n&&n.toLowerCase().indexOf("c")>-1?(i=s,r=i.pattern[0].replace("$",u).split("n"),e.indexOf(r[0])>-1&&e.indexOf(r[1])>-1&&(e=e.replace(r[0],"").replace(r[1],""),c=!0)):e.indexOf(l)>-1&&(o=!0,i=a,u=l),e=e.replace("-","").replace(u,"").replace(d," ").split(i[","].replace(d," ")).join("").replace(i["."],"."),e=parseFloat(e),isNaN(e)?e=null:c&&(e*=-1),e&&o&&(e/=100),e)}}(),function(){var r,o,i,a,s,u,l,d,f;ke._scrollbar=n,ke.scrollbar=function(e){if(isNaN(ke._scrollbar)||e){var t,n=document.createElement("div");return n.style.cssText="overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block",n.innerHTML="&nbsp;",document.body.appendChild(n),ke._scrollbar=t=n.offsetWidth-n.scrollWidth,document.body.removeChild(n),t}return ke._scrollbar},ke.isRtl=function(t){return e(t).closest(".k-rtl").length>0},r=document.createElement("table");try{r.innerHTML="<tr><td></td></tr>",ke.tbodyInnerHtml=!0}catch(p){ke.tbodyInnerHtml=!1}ke.touch="ontouchstart"in t,o=document.documentElement.style,i=ke.transitions=!1,a=ke.transforms=!1,s="HTMLElement"in t?HTMLElement.prototype:[],ke.hasHW3D="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix||"MozPerspective"in o||"msPerspective"in o,ke.cssFlexbox="flexWrap"in o||"WebkitFlexWrap"in o||"msFlexWrap"in o,be(["Moz","webkit","O","ms"],function(){var e,t=""+this,n=typeof r.style[t+"Transition"]===He;if(n||typeof r.style[t+"Transform"]===He)return e=t.toLowerCase(),a={css:"ms"!=e?"-"+e+"-":"",prefix:t,event:"o"===e||"webkit"===e?e:""},n&&(i=a,i.event=i.event?i.event+"TransitionEnd":"transitionend"),!1}),r=null,ke.transforms=a,ke.transitions=i,ke.devicePixelRatio=t.devicePixelRatio===n?1:t.devicePixelRatio;try{ke.screenWidth=t.outerWidth||t.screen?t.screen.availWidth:t.innerWidth,ke.screenHeight=t.outerHeight||t.screen?t.screen.availHeight:t.innerHeight}catch(p){ke.screenWidth=t.screen.availWidth,ke.screenHeight=t.screen.availHeight}ke.detectOS=function(e){var n,r,o=!1,i=[],a=!/mobile safari/i.test(e),s={wp:/(Windows Phone(?: OS)?)\s(\d+)\.(\d+(\.\d+)?)/,fire:/(Silk)\/(\d+)\.(\d+(\.\d+)?)/,android:/(Android|Android.*(?:Opera|Firefox).*?\/)\s*(\d+)((\.)(\d+(\.\d+)?)|(?!\.))/,iphone:/(iPhone|iPod).*OS\s+(\d+)[\._]([\d\._]+)/,ipad:/(iPad).*OS\s+(\d+)[\._]([\d_]+)/,meego:/(MeeGo).+NokiaBrowser\/(\d+)\.([\d\._]+)/,webos:/(webOS)\/(\d+)\.(\d+(\.\d+)?)/,blackberry:/(BlackBerry|BB10).*?Version\/(\d+)\.(\d+(\.\d+)?)/,playbook:/(PlayBook).*?Tablet\s*OS\s*(\d+)\.(\d+(\.\d+)?)/,windows:/(MSIE)\s+(\d+)\.(\d+(\.\d+)?)/,tizen:/(tizen).*?Version\/(\d+)\.(\d+(\.\d+)?)/i,sailfish:/(sailfish).*rv:(\d+)\.(\d+(\.\d+)?).*firefox/i,ffos:/(Mobile).*rv:(\d+)\.(\d+(\.\d+)?).*Firefox/},u={ios:/^i(phone|pad|pod)$/i,android:/^android|fire$/i,blackberry:/^blackberry|playbook/i,windows:/windows/,wp:/wp/,flat:/sailfish|ffos|tizen/i,meego:/meego/},l={tablet:/playbook|ipad|fire/i},d={omini:/Opera\sMini/i,omobile:/Opera\sMobi/i,firefox:/Firefox|Fennec/i,mobilesafari:/version\/.*safari/i,ie:/MSIE|Windows\sPhone/i,chrome:/chrome|crios/i,webkit:/webkit/i};for(r in s)if(s.hasOwnProperty(r)&&((i=e.match(s[r]))||r=='ipad'&&navigator.maxTouchPoints>0&&(i=e.match(/(Macintosh).*OS\s*X*\s+(\d+)[\._]([\d_]+)/)))){if("windows"==r&&"plugins"in navigator)return!1;o={},o.device=r,o.tablet=c(r,l,!1),o.browser=c(e,d,"default"),o.name=c(r,u),o[o.name]=!0,o.majorVersion=i[2],o.minorVersion=i[3].replace("_","."),n=o.minorVersion.replace(".","").substr(0,2),o.flatVersion=o.majorVersion+n+Array(3-(n.length<3?n.length:2)).join("0"),o.cordova=typeof t.PhoneGap!==Fe||typeof t.cordova!==Fe,o.appMode=t.navigator.standalone||/file|local|wmapp/.test(t.location.protocol)||o.cordova,o.android&&(ke.devicePixelRatio<1.5&&o.flatVersion<400||a)&&(ke.screenWidth>800||ke.screenHeight>800)&&(o.tablet=r);break}return o},u=ke.mobileOS=ke.detectOS(navigator.userAgent),ke.wpDevicePixelRatio=u.wp?screen.width/320:0,ke.hasNativeScrolling=!1,(u.ios||u.android&&u.majorVersion>2||u.wp)&&(ke.hasNativeScrolling=u),ke.delayedClick=function(){if(ke.touch){if(u.ios)return!0;if(u.android)return!ke.browser.chrome||!(ke.browser.version<32)&&!(e("meta[name=viewport]").attr("content")||"").match(/user-scalable=no/i)}return!1},ke.mouseAndTouchPresent=ke.touch&&!(ke.mobileOS.ios||ke.mobileOS.android),ke.detectBrowser=function(e){var t,n=!1,r=[],o={edge:/(edge)[ \/]([\w.]+)/i,webkit:/(chrome)[ \/]([\w.]+)/i,safari:/(webkit)[ \/]([\w.]+)/i,opera:/(opera)(?:.*version|)[ \/]([\w.]+)/i,msie:/(msie\s|trident.*? rv:)([\w.]+)/i,mozilla:/(mozilla)(?:.*? rv:([\w.]+)|)/i};for(t in o)if(o.hasOwnProperty(t)&&(r=e.match(o[t]))){n={},n[t]=!0,n[r[1].toLowerCase().split(" ")[0].split("/")[0]]=!0,n.version=parseInt(document.documentMode||r[2],10);break}return n},ke.browser=ke.detectBrowser(navigator.userAgent),ke.detectClipboardAccess=function(){var e={copy:!!document.queryCommandSupported&&document.queryCommandSupported("copy"),cut:!!document.queryCommandSupported&&document.queryCommandSupported("cut"),paste:!!document.queryCommandSupported&&document.queryCommandSupported("paste")};return ke.browser.chrome&&(e.paste=!1,ke.browser.version>=43&&(e.copy=!0,e.cut=!0)),e},ke.clipboard=ke.detectClipboardAccess(),ke.zoomLevel=function(){var e,n,r;try{return e=ke.browser,n=0,r=document.documentElement,e.msie&&11==e.version&&r.scrollHeight>r.clientHeight&&!ke.touch&&(n=ke.scrollbar()),ke.touch?r.clientWidth/t.innerWidth:e.msie&&e.version>=10?((top||t).document.documentElement.offsetWidth+n)/(top||t).innerWidth:1}catch(o){return 1}},ke.cssBorderSpacing=n!==o.borderSpacing&&!(ke.browser.msie&&ke.browser.version<8),function(t){var n="",r=e(document.documentElement),o=parseInt(t.version,10);t.msie?n="ie":t.mozilla?n="ff":t.safari?n="safari":t.webkit?n="webkit":t.opera?n="opera":t.edge&&(n="edge"),n&&(n="k-"+n+" k-"+n+o),ke.mobileOS&&(n+=" k-mobile"),ke.cssFlexbox||(n+=" k-no-flexbox"),r.addClass(n)}(ke.browser),ke.eventCapture=document.documentElement.addEventListener,l=document.createElement("input"),ke.placeholder="placeholder"in l,ke.propertyChangeEvent="onpropertychange"in l,ke.input=function(){for(var e,t=["number","date","time","month","week","datetime","datetime-local"],n=t.length,r="test",o={},i=0;i<n;i++)e=t[i],l.setAttribute("type",e),l.value=r,o[e.replace("-","")]="text"!==l.type&&l.value!==r;return o}(),l.style.cssText="float:left;",ke.cssFloat=!!l.style.cssFloat,l=null,ke.stableSort=function(){var e,t=513,n=[{index:0,field:"b"}];for(e=1;e<t;e++)n.push({index:e,field:"a"});return n.sort(function(e,t){return e.field>t.field?1:e.field<t.field?-1:0}),1===n[0].index}(),ke.matchesSelector=s.webkitMatchesSelector||s.mozMatchesSelector||s.msMatchesSelector||s.oMatchesSelector||s.matchesSelector||s.matches||function(t){for(var n=document.querySelectorAll?(this.parentNode||document).querySelectorAll(t)||[]:e(t),r=n.length;r--;)if(n[r]==this)return!0;return!1},ke.pushState=t.history&&t.history.pushState,d=document.documentMode,ke.hashChange="onhashchange"in t&&!(ke.browser.msie&&(!d||d<=8)),ke.customElements="registerElement"in t.document,f=ke.browser.chrome,ke.msPointers=!f&&t.MSPointerEvent,ke.pointers=!f&&t.PointerEvent,ke.kineticScrollNeeded=u&&(ke.touch||ke.msPointers||ke.pointers)}(),j={left:{reverse:"right"},right:{reverse:"left"},down:{reverse:"up"},up:{reverse:"down"},top:{reverse:"bottom"},bottom:{reverse:"top"},"in":{reverse:"out"},out:{reverse:"in"}},B={},e.extend(B,{enabled:!0,Element:function(t){this.element=e(t)},promise:function(e,t){e.is(":visible")||e.css({display:e.data("olddisplay")||"block"}).css("display"),t.hide&&e.data("olddisplay",e.css("display")).hide(),t.init&&t.init(),t.completeCallback&&t.completeCallback(e),e.dequeue()},disable:function(){this.enabled=!1,this.promise=this.promiseShim},enable:function(){this.enabled=!0,this.promise=this.animatedPromise}}),B.promiseShim=B.promise,"kendoAnimate"in e.fn||ve(e.fn,{kendoStop:function(e,t){return this.stop(e,t)},kendoAnimate:function(e,t,n,r){return M(this,e,t,n,r)},kendoAddClass:function(e,t){return ye.toggleClass(this,e,t,!0)},kendoRemoveClass:function(e,t){return ye.toggleClass(this,e,t,!1)},kendoToggleClass:function(e,t,n){return ye.toggleClass(this,e,t,n)}}),Y=/&/g,J=/</g,q=/"/g,V=/'/g,G=/>/g,K=function(e){return e.target},ke.touch&&(K=function(e){var t="originalEvent"in e?e.originalEvent.changedTouches:"changedTouches"in e?e.changedTouches:null;return t?document.elementFromPoint(t[0].clientX,t[0].clientY):e.target},be(["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap"],function(t,n){e.fn[n]=function(e){return this.bind(n,e)}})),ke.touch?ke.mobileOS?(ke.mousedown="touchstart",ke.mouseup="touchend",ke.mousemove="touchmove",ke.mousecancel="touchcancel",ke.click="touchend",ke.resize="orientationchange"):(ke.mousedown="mousedown touchstart",ke.mouseup="mouseup touchend",ke.mousemove="mousemove touchmove",ke.mousecancel="mouseleave touchcancel",ke.click="click",ke.resize="resize"):ke.pointers?(ke.mousemove="pointermove",ke.mousedown="pointerdown",ke.mouseup="pointerup",ke.mousecancel="pointercancel",ke.click="pointerup",ke.resize="orientationchange resize"):ke.msPointers?(ke.mousemove="MSPointerMove",ke.mousedown="MSPointerDown",ke.mouseup="MSPointerUp",ke.mousecancel="MSPointerCancel",ke.click="MSPointerUp",ke.resize="orientationchange resize"):(ke.mousemove="mousemove",ke.mousedown="mousedown",ke.mouseup="mouseup",ke.mousecancel="mouseleave",ke.click="click",ke.resize="resize"),Q=function(e,t){var n,r,o,i,a=t||"d",s=1;for(r=0,o=e.length;r<o;r++)i=e[r],""!==i&&(n=i.indexOf("["),0!==n&&(n==-1?i="."+i:(s++,i="."+i.substring(0,n)+" || {})"+i.substring(n))),s++,a+=i+(r<o-1?" || {})":")"));return Array(s).join("(")+a},Z=/^([a-z]+:)?\/\//i,ve(ye,{widgets:[],_widgetRegisteredCallbacks:[],ui:ye.ui||{},fx:ye.fx||b,effects:ye.effects||B,mobile:ye.mobile||{},data:ye.data||{},dataviz:ye.dataviz||{},drawing:ye.drawing||{},spreadsheet:{messages:{}},keys:{INSERT:45,DELETE:46,BACKSPACE:8,TAB:9,ENTER:13,ESC:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,END:35,HOME:36,SPACEBAR:32,PAGEUP:33,PAGEDOWN:34,F2:113,F10:121,F12:123,NUMPAD_PLUS:107,NUMPAD_MINUS:109,NUMPAD_DOT:110},support:ye.support||ke,animate:ye.animate||M,ns:"",attr:function(e){return"data-"+ye.ns+e},getShadows:a,wrap:s,deepExtend:u,getComputedStyles:p,webComponents:ye.webComponents||[],isScrollable:m,scrollLeft:h,size:g,toCamelCase:f,toHyphens:d,getOffset:ye.getOffset||y,parseEffects:ye.parseEffects||v,toggleClass:ye.toggleClass||S,directions:ye.directions||j,Observable:P,Class:r,Template:H,template:Me(H.compile,H),render:Me(H.render,H),stringify:Me(xe.stringify,xe),eventTarget:K,htmlEncode:T,isLocalUrl:function(e){return e&&!Z.test(e)},expr:function(e,t,n){return e=e||"",typeof t==He&&(n=t,t=!1),n=n||"d",e&&"["!==e.charAt(0)&&(e="."+e),t?(e=e.replace(/"([^.]*)\.([^"]*)"/g,'"$1_$DOT$_$2"'),e=e.replace(/'([^.]*)\.([^']*)'/g,"'$1_$DOT$_$2'"),e=Q(e.split("."),n),e=e.replace(/_\$DOT\$_/g,".")):e=n+e,e},getter:function(e,t){var n=e+t;return Re[n]=Re[n]||Function("d","return "+ye.expr(e,t))},setter:function(e){return Ue[e]=Ue[e]||Function("d,value",ye.expr(e)+"=value")},accessor:function(e){return{get:ye.getter(e),set:ye.setter(e)}},guid:function(){var e,t,n="";for(e=0;e<32;e++)t=16*Te.random()|0,8!=e&&12!=e&&16!=e&&20!=e||(n+="-"),n+=(12==e?4:16==e?3&t|8:t).toString(16);return n},roleSelector:function(e){return e.replace(/(\S+)/g,"["+ye.attr("role")+"=$1],").slice(0,-1)},directiveSelector:function(e){var t,n=e.split(" ");if(n)for(t=0;t<n.length;t++)"view"!=n[t]&&(n[t]=n[t].replace(/(\w*)(view|bar|strip|over)$/,"$1-$2"));return n.join(" ").replace(/(\S+)/g,"kendo-mobile-$1,").slice(0,-1)},triggeredByInput:function(e){return/^(label|input|textarea|select)$/i.test(e.target.tagName)},onWidgetRegistered:function(e){for(var t=0,n=ye.widgets.length;t<n;t++)e(ye.widgets[t]);ye._widgetRegisteredCallbacks.push(e)},logToConsole:function(e,r){var o=t.console;!ye.suppressLog&&n!==o&&o.log&&o[r||"log"](e)}}),X=P.extend({init:function(e,t){var n,r=this;r.element=ye.jQuery(e).handler(r),r.angular("init",t),
P.fn.init.call(r),n=t?t.dataSource:null,n&&(t=ve({},t,{dataSource:{}})),t=r.options=ve(!0,{},r.options,t),n&&(t.dataSource=n),r.element.attr(ye.attr("role"))||r.element.attr(ye.attr("role"),(t.name||"").toLowerCase()),r.element.data("kendo"+t.prefix+t.name,r),r.bind(r.events,t)},events:[],options:{prefix:""},_hasBindingTarget:function(){return!!this.element[0].kendoBindingTarget},_tabindex:function(e){e=e||this.wrapper;var t=this.element,n="tabindex",r=e.attr(n)||t.attr(n);t.removeAttr(n),e.attr(n,isNaN(r)?0:r)},setOptions:function(t){this._setEvents(t),e.extend(this.options,t)},_setEvents:function(e){for(var t,n=this,r=0,o=n.events.length;r<o;r++)t=n.events[r],n.options[t]&&e[t]&&n.unbind(t,n.options[t]);n.bind(n.events,e)},resize:function(e){var t=this.getSize(),n=this._size;(e||(t.width>0||t.height>0)&&(!n||t.width!==n.width||t.height!==n.height))&&(this._size=t,this._resize(t,e),this.trigger("resize",t))},getSize:function(){return ye.dimensions(this.element)},size:function(e){return e?(this.setSize(e),n):this.getSize()},setSize:e.noop,_resize:e.noop,destroy:function(){var e=this;e.element.removeData("kendo"+e.options.prefix+e.options.name),e.element.removeData("handler"),e.unbind()},_destroy:function(){this.destroy()},angular:function(){},_muteAngularRebind:function(e){this._muteRebind=!0,e.call(this),this._muteRebind=!1}}),ee=X.extend({dataItems:function(){return this.dataSource.flatView()},_angularItems:function(t){var n=this;n.angular(t,function(){return{elements:n.items(),data:e.map(n.dataItems(),function(e){return{dataItem:e}})}})}}),ye.dimensions=function(e,t){var n=e[0];return t&&e.css(t),{width:n.offsetWidth,height:n.offsetHeight}},ye.notify=Se,te=/template$/i,ne=/^\s*(?:\{(?:.|\r\n|\n)*\}|\[(?:.|\r\n|\n)*\])\s*$/,re=/^\{(\d+)(:[^\}]+)?\}|^\[[A-Za-z_]*\]$/,oe=/([A-Z])/g,ye.initWidget=function(r,o,i){var a,s,u,l,c,d,f,p,m,h,g,y,v;if(i?i.roles&&(i=i.roles):i=ye.ui.roles,r=r.nodeType?r:r[0],d=r.getAttribute("data-"+ye.ns+"role")){m=d.indexOf(".")===-1,u=m?i[d]:ye.getter(d)(t),g=e(r).data(),y=u?"kendo"+u.fn.options.prefix+u.fn.options.name:"",h=m?RegExp("^kendo.*"+d+"$","i"):RegExp("^"+y+"$","i");for(v in g)if(v.match(h)){if(v!==y)return g[v];a=g[v]}if(u){for(p=x(r,"dataSource"),o=e.extend({},k(r,u.fn.options),o),p&&(o.dataSource=typeof p===He?ye.getter(p)(t):p),l=0,c=u.fn.events.length;l<c;l++)s=u.fn.events[l],f=x(r,s),f!==n&&(o[s]=ye.getter(f)(t));return a?e.isEmptyObject(o)||a.setOptions(o):a=new u(r,o),a}}},ye.rolesFromNamespaces=function(e){var t,n,r=[];for(e[0]||(e=[ye.ui,ye.dataviz.ui]),t=0,n=e.length;t<n;t++)r[t]=e[t].roles;return ve.apply(null,[{}].concat(r.reverse()))},ye.init=function(t){var n=ye.rolesFromNamespaces(Ie.call(arguments,1));e(t).find("[data-"+ye.ns+"role]").addBack().each(function(){ye.initWidget(this,{},n)})},ye.destroy=function(t){e(t).find("[data-"+ye.ns+"role]").addBack().each(function(){var t,n=e(this).data();for(t in n)0===t.indexOf("kendo")&&typeof n[t].destroy===Ee&&n[t].destroy()})},ye.resize=function(t,n){var r,o=e(t).find("[data-"+ye.ns+"role]").addBack().filter(O);o.length&&(r=e.makeArray(o),r.sort(D),e.each(r,function(){var t=ye.widgetInstance(e(this));t&&t.resize(n)}))},ye.parseOptions=k,ve(ye.ui,{Widget:X,DataBoundWidget:ee,roles:{},progress:function(t,n){var r,o,i,a,s=t.find(".k-loading-mask"),u=ye.support,l=u.browser;n?s.length||(r=u.isRtl(t),o=r?"right":"left",a=t.scrollLeft(),i=l.webkit&&r?t[0].scrollWidth-t.width()-2*a:0,s=e("<div class='k-loading-mask'><span class='k-loading-text'>"+ye.ui.progress.messages.loading+"</span><div class='k-loading-image'/><div class='k-loading-color'/></div>").width("100%").height("100%").css("top",t.scrollTop()).css(o,Math.abs(a)+i).prependTo(t)):s&&s.remove()},plugin:function(t,r,o){var i,a,s,u,l=t.fn.options.name;for(r=r||ye.ui,o=o||"",r[l]=t,r.roles[l.toLowerCase()]=t,i="getKendo"+o+l,l="kendo"+o+l,a={name:l,widget:t,prefix:o||""},ye.widgets.push(a),s=0,u=ye._widgetRegisteredCallbacks.length;s<u;s++)ye._widgetRegisteredCallbacks[s](a);e.fn[l]=function(r){var o,i=this;return typeof r===He?(o=Ie.call(arguments,1),this.each(function(){var t,a,s=e.data(this,l);if(!s)throw Error(ye.format("Cannot call method '{0}' of {1} before it is initialized",r,l));if(t=s[r],typeof t!==Ee)throw Error(ye.format("Cannot find method '{0}' of {1}",r,l));if(a=t.apply(s,o),a!==n)return i=a,!1})):this.each(function(){return new t(this,r)}),i},e.fn[l].widget=t,e.fn[i]=function(){return this.data(l)}}}),ye.ui.progress.messages={loading:"Loading..."},ie={bind:function(){return this},nullObject:!0,options:{}},ae=X.extend({init:function(e,t){X.fn.init.call(this,e,t),this.element.autoApplyNS(),this.wrapper=this.element,this.element.addClass("km-widget")},destroy:function(){X.fn.destroy.call(this),this.element.kendoDestroy()},options:{prefix:"Mobile"},events:[],view:function(){var e=this.element.closest(ye.roleSelector("view splitview modalview drawer"));return ye.widgetInstance(e,ye.mobile.ui)||ie},viewHasNativeScrolling:function(){var e=this.view();return e&&e.options.useNativeScrolling},container:function(){var e=this.element.closest(ye.roleSelector("view layout modalview drawer splitview"));return ye.widgetInstance(e.eq(0),ye.mobile.ui)||ie}}),ve(ye.mobile,{init:function(e){ye.init(e,ye.mobile.ui,ye.ui,ye.dataviz.ui)},appLevelNativeScrolling:function(){return ye.mobile.application&&ye.mobile.application.options&&ye.mobile.application.options.useNativeScrolling},roles:{},ui:{Widget:ae,DataBoundWidget:ee.extend(ae.prototype),roles:{},plugin:function(e){ye.ui.plugin(e,ye.mobile.ui,"Mobile")}}}),u(ye.dataviz,{init:function(e){ye.init(e,ye.dataviz.ui)},ui:{roles:{},themes:{},views:[],plugin:function(e){ye.ui.plugin(e,ye.dataviz.ui)}},roles:{}}),ye.touchScroller=function(t,n){return n||(n={}),n.useNative=!0,e(t).map(function(t,r){return r=e(r),!(!ke.kineticScrollNeeded||!ye.mobile.ui.Scroller||r.data("kendoMobileScroller"))&&(r.kendoMobileScroller(n),r.data("kendoMobileScroller"))})[0]},ye.preventDefault=function(e){e.preventDefault()},ye.widgetInstance=function(e,n){var r,o,i,a,s=e.data(ye.ns+"role"),u=[];if(s){if("content"===s&&(s="scroller"),n)if(n[0])for(r=0,o=n.length;r<o;r++)u.push(n[r].roles[s]);else u.push(n.roles[s]);else u=[ye.ui.roles[s],ye.dataviz.ui.roles[s],ye.mobile.ui.roles[s]];for(s.indexOf(".")>=0&&(u=[ye.getter(s)(t)]),r=0,o=u.length;r<o;r++)if(i=u[r],i&&(a=e.data("kendo"+i.fn.options.prefix+i.fn.options.name)))return a}},ye.onResize=function(n){var r=n;return ke.mobileOS.android&&(r=function(){setTimeout(n,600)}),e(t).on(ke.resize,r),r},ye.unbindResize=function(n){e(t).off(ke.resize,n)},ye.attrValue=function(e,t){return e.data(ye.ns+t)},ye.days={Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6},e.extend(e.expr[":"],{kendoFocusable:function(t){var n=e.attr(t,"tabindex");return z(t,!isNaN(n)&&n>-1)}}),se=["mousedown","mousemove","mouseenter","mouseleave","mouseover","mouseout","mouseup","click"],ue="label, input, [data-rel=external]",le={setupMouseMute:function(){var t,n=0,r=se.length,o=document.documentElement;if(!le.mouseTrap&&ke.eventCapture)for(le.mouseTrap=!0,le.bustClick=!1,le.captureMouse=!1,t=function(t){le.captureMouse&&("click"===t.type?le.bustClick&&!e(t.target).is(ue)&&(t.preventDefault(),t.stopPropagation()):t.stopPropagation())};n<r;n++)o.addEventListener(se[n],t,!0)},muteMouse:function(e){le.captureMouse=!0,e.data.bustClick&&(le.bustClick=!0),clearTimeout(le.mouseTrapTimeoutID)},unMuteMouse:function(){clearTimeout(le.mouseTrapTimeoutID),le.mouseTrapTimeoutID=setTimeout(function(){le.captureMouse=!1,le.bustClick=!1},400)}},ce={down:"touchstart mousedown",move:"mousemove touchmove",up:"mouseup touchend touchcancel",cancel:"mouseleave touchcancel"},ke.touch&&(ke.mobileOS.ios||ke.mobileOS.android)?ce={down:"touchstart",move:"touchmove",up:"touchend touchcancel",cancel:"touchcancel"}:ke.pointers?ce={down:"pointerdown",move:"pointermove",up:"pointerup",cancel:"pointercancel pointerleave"}:ke.msPointers&&(ce={down:"MSPointerDown",move:"MSPointerMove",up:"MSPointerUp",cancel:"MSPointerCancel MSPointerLeave"}),!ke.msPointers||"onmspointerenter"in t||e.each({MSPointerEnter:"MSPointerOver",MSPointerLeave:"MSPointerOut"},function(t,n){e.event.special[t]={delegateType:n,bindType:n,handle:function(t){var r,o=this,i=t.relatedTarget,a=t.handleObj;return i&&(i===o||e.contains(o,i))||(t.type=a.origType,r=a.handler.apply(this,arguments),t.type=n),r}}}),de=function(e){return ce[e]||e},fe=/([^ ]+)/g,ye.applyEventMap=function(e,t){return e=e.replace(fe,de),t&&(e=e.replace(fe,"$1."+t)),e},pe=e.fn.on,ve(!0,E,e),E.fn=E.prototype=new e,E.fn.constructor=E,E.fn.init=function(t,n){return n&&n instanceof e&&!(n instanceof E)&&(n=E(n)),e.fn.init.call(this,t,n,me)},E.fn.init.prototype=E.fn,me=E(document),ve(E.fn,{handler:function(e){return this.data("handler",e),this},autoApplyNS:function(e){return this.data("kendoNS",e||ye.guid()),this},on:function(){var e,t,n,r,o,i,a=this,s=a.data("kendoNS");return 1===arguments.length?pe.call(a,arguments[0]):(e=a,t=Ie.call(arguments),typeof t[t.length-1]===Fe&&t.pop(),n=t[t.length-1],r=ye.applyEventMap(t[0],s),ke.mouseAndTouchPresent&&r.search(/mouse|click/)>-1&&this[0]!==document.documentElement&&(le.setupMouseMute(),o=2===t.length?null:t[1],i=r.indexOf("click")>-1&&r.indexOf("touchend")>-1,pe.call(this,{touchstart:le.muteMouse,touchend:le.unMuteMouse},o,{bustClick:i})),typeof n===He&&(e=a.data("handler"),n=e[n],t[t.length-1]=function(t){n.call(e,t)}),t[0]=r,pe.apply(a,t),a)},kendoDestroy:function(e){return e=e||this.data("kendoNS"),e&&this.off("."+e),this}}),ye.jQuery=E,ye.eventMap=ce,ye.timezone=function(){function e(e,t){var n,r,o,i=t[3],a=t[4],s=t[5],u=t[8];return u||(t[8]=u={}),u[e]?u[e]:(isNaN(a)?0===a.indexOf("last")?(n=new Date(Date.UTC(e,c[i]+1,1,s[0]-24,s[1],s[2],0)),r=d[a.substr(4,3)],o=n.getUTCDay(),n.setUTCDate(n.getUTCDate()+r-o-(r>o?7:0))):a.indexOf(">=")>=0&&(n=new Date(Date.UTC(e,c[i],a.substr(5),s[0],s[1],s[2],0)),r=d[a.substr(0,3)],o=n.getUTCDay(),n.setUTCDate(n.getUTCDate()+r-o+(r<o?7:0))):n=new Date(Date.UTC(e,c[i],a,s[0],s[1],s[2],0)),u[e]=n)}function t(t,n,r){var o,i,a,s;return(n=n[r])?(a=new Date(t).getUTCFullYear(),n=jQuery.grep(n,function(e){var t=e[0],n=e[1];return t<=a&&(n>=a||t==a&&"only"==n||"max"==n)}),n.push(t),n.sort(function(t,n){return"number"!=typeof t&&(t=+e(a,t)),"number"!=typeof n&&(n=+e(a,n)),t-n}),s=n[jQuery.inArray(t,n)-1]||n[n.length-1],isNaN(s)?s:null):(o=r.split(":"),i=0,o.length>1&&(i=60*o[0]+ +o[1]),[-1e6,"max","-","Jan",1,[0,0,0],i,"-"])}function n(e,t,n){var r,o,i,a=t[n];if("string"==typeof a&&(a=t[a]),!a)throw Error('Timezone "'+n+'" is either incorrect, or kendo.timezones.min.js is not included.');for(r=a.length-1;r>=0&&(o=a[r][3],!(o&&e>o));r--);if(i=a[r+1],!i)throw Error('Timezone "'+n+'" not found on '+e+".");return i}function r(e,r,o,i){typeof e!=_e&&(e=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));var a=n(e,r,i);return{zone:a,rule:t(e,o,a[1])}}function o(e,t){var n,o,i;return"Etc/UTC"==t||"Etc/GMT"==t?0:(n=r(e,this.zones,this.rules,t),o=n.zone,i=n.rule,ye.parseFloat(i?o[0]-i[6]:o[0]))}function i(e,t){var n=r(e,this.zones,this.rules,t),o=n.zone,i=n.rule,a=o[2];return a.indexOf("/")>=0?a.split("/")[i&&+i[6]?1:0]:a.indexOf("%s")>=0?a.replace("%s",i&&"-"!=i[7]?i[7]:""):a}function a(e,t,n){var r,o;return typeof t==He&&(t=this.offset(e,t)),typeof n==He&&(n=this.offset(e,n)),r=e.getTimezoneOffset(),e=new Date(e.getTime()+6e4*(t-n)),o=e.getTimezoneOffset(),new Date(e.getTime()+6e4*(o-r))}function s(e,t){return this.convert(e,e.getTimezoneOffset(),t)}function u(e,t){return this.convert(e,t,e.getTimezoneOffset())}function l(e){return this.apply(new Date(e),"Etc/UTC")}var c={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},d={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};return{zones:{},rules:{},offset:o,convert:a,apply:s,remove:u,abbr:i,toLocalDate:l}}(),ye.date=function(){function e(e,t){return 0===t&&23===e.getHours()&&(e.setHours(e.getHours()+2),!0)}function t(t,n,r){var o=t.getHours();r=r||1,n=(n-t.getDay()+7*r)%7,t.setDate(t.getDate()+n),e(t,o)}function r(e,n,r){return e=new Date(e),t(e,n,r),e}function o(e){return new Date(e.getFullYear(),e.getMonth(),1)}function i(e){var t=new Date(e.getFullYear(),e.getMonth()+1,0),n=o(e),r=Math.abs(t.getTimezoneOffset()-n.getTimezoneOffset());return r&&t.setHours(n.getHours()+r/60),t}function a(r,o){var i,a;return r=new Date(r.getFullYear(),r.getMonth(),r.getDate()),e(r,0),i=r.getFullYear(),o!==n?(t(r,o,-1),r.setDate(r.getDate()+4)):r.setDate(r.getDate()+(4-(r.getDay()||7))),e(r,0),a=Math.floor((r.getTime()-new Date(i,0,1,(-6)))/864e5),1+Math.floor(a/7)}function s(t){return t=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0),e(t,0),t}function u(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function l(e){return e.getTime()-s(e)}function c(e,t,n){var r,o=l(t),i=l(n);return!e||o==i||(t>=n&&(n+=b),r=l(e),o>r&&(r+=b),i<o&&(i+=b),r>=o&&r<=i)}function d(e,t,n){var r,o=t.getTime(),i=n.getTime();return o>=i&&(i+=b),r=e.getTime(),r>=o&&r<=i}function f(t,n){var r=t.getHours();return t=new Date(t),p(t,n*b),e(t,r),t}function p(e,t,n){var r,o=e.getTimezoneOffset();e.setTime(e.getTime()+t),n||(r=e.getTimezoneOffset()-o,e.setTime(e.getTime()+r*v))}function m(t,n){return t=new Date(ye.date.getDate(t).getTime()+ye.date.getMilliseconds(n)),e(t,n.getHours()),t}function h(){return s(new Date)}function g(e){return s(e).getTime()==h().getTime()}function y(e){var t=new Date(1980,1,1,0,0,0);return e&&t.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),t}var v=6e4,b=864e5;return{adjustDST:e,dayOfWeek:r,setDayOfWeek:t,getDate:s,isInDateRange:d,isInTimeRange:c,isToday:g,nextDay:function(e){return f(e,1)},previousDay:function(e){return f(e,-1)},toUtcTime:u,MS_PER_DAY:b,MS_PER_HOUR:60*v,MS_PER_MINUTE:v,setTime:p,setHours:m,addDays:f,today:h,toInvariantTime:y,firstDayOfMonth:o,lastDayOfMonth:i,weekInYear:a,getMilliseconds:l}}(),ye.stripWhitespace=function(e){var t,n,r;if(document.createNodeIterator)for(t=document.createNodeIterator(e,NodeFilter.SHOW_TEXT,function(t){return t.parentNode==e?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT},!1);t.nextNode();)t.referenceNode&&!t.referenceNode.textContent.trim()&&t.referenceNode.parentNode.removeChild(t.referenceNode);else for(n=0;n<e.childNodes.length;n++)r=e.childNodes[n],3!=r.nodeType||/\S/.test(r.nodeValue)||(e.removeChild(r),n--),1==r.nodeType&&ye.stripWhitespace(r)},he=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)},ye.animationFrame=function(e){he.call(t,e)},ge=[],ye.queueAnimation=function(e){ge[ge.length]=e,1===ge.length&&ye.runNextAnimation()},ye.runNextAnimation=function(){ye.animationFrame(function(){ge[0]&&(ge.shift()(),ge[0]&&ye.runNextAnimation())})},ye.parseQueryStringParams=function(e){for(var t=e.split("?")[1]||"",n={},r=t.split(/&|=/),o=r.length,i=0;i<o;i+=2)""!==r[i]&&(n[decodeURIComponent(r[i])]=decodeURIComponent(r[i+1]));return n},ye.elementUnderCursor=function(e){if(n!==e.x.client)return document.elementFromPoint(e.x.client,e.y.client)},ye.wheelDeltaY=function(e){var t,r=e.originalEvent,o=r.wheelDeltaY;return r.wheelDelta?(o===n||o)&&(t=r.wheelDelta):r.detail&&r.axis===r.VERTICAL_AXIS&&(t=10*-r.detail),t},ye.throttle=function(e,t){var r,o,i=0;return!t||t<=0?e:(o=function(){function o(){e.apply(a,u),i=+new Date}var a=this,s=+new Date-i,u=arguments;return i?(r&&clearTimeout(r),s>t?o():r=setTimeout(o,t-s),n):o()},o.cancel=function(){clearTimeout(r)},o)},ye.caret=function(t,r,o){var i,a,s,u,l=r!==n;if(o===n&&(o=r),t[0]&&(t=t[0]),!l||!t.disabled){try{t.selectionStart!==n?l?(t.focus(),t.setSelectionRange(r,o)):r=[t.selectionStart,t.selectionEnd]:document.selection&&(e(t).is(":visible")&&t.focus(),i=t.createTextRange(),l?(i.collapse(!0),i.moveStart("character",r),i.moveEnd("character",o-r),i.select()):(a=i.duplicate(),i.moveToBookmark(document.selection.createRange().getBookmark()),a.setEndPoint("EndToStart",i),s=a.text.length,u=s+i.text.length,r=[s,u]))}catch(c){r=[]}return r}},ye.compileMobileDirective=function(e,n){var r=t.angular;return e.attr("data-"+ye.ns+"role",e[0].tagName.toLowerCase().replace("kendo-mobile-","").replace("-","")),r.element(e).injector().invoke(["$compile",function(t){t(e)(n),/^\$(digest|apply)$/.test(n.$$phase)||n.$digest()}]),ye.widgetInstance(e,ye.mobile.ui)},ye.antiForgeryTokens=function(){var t={},r=e("meta[name=csrf-token],meta[name=_csrf]").attr("content"),o=e("meta[name=csrf-param],meta[name=_csrf_header]").attr("content");return e("input[name^='__RequestVerificationToken']").each(function(){t[this.name]=this.value}),o!==n&&r!==n&&(t[o]=r),t},ye.cycleForm=function(e){function t(e){var t=ye.widgetInstance(e);t&&t.focus?t.focus():e.focus()}var n=e.find("input, .k-widget").first(),r=e.find("button, .k-button").last();r.on("keydown",function(e){e.keyCode!=ye.keys.TAB||e.shiftKey||(e.preventDefault(),t(n))}),n.on("keydown",function(e){e.keyCode==ye.keys.TAB&&e.shiftKey&&(e.preventDefault(),t(r))})},function(){function n(t,n,r,o){var i,a,s=e("<form>").attr({action:r,method:"POST",target:o}),u=ye.antiForgeryTokens();u.fileName=n,i=t.split(";base64,"),u.contentType=i[0].replace("data:",""),u.base64=i[1];for(a in u)u.hasOwnProperty(a)&&e("<input>").attr({value:u[a],name:a,type:"hidden"}).appendTo(s);s.appendTo("body").submit().remove()}function r(e,t){var n,r,o,i,a,s=e;if("string"==typeof e){for(n=e.split(";base64,"),r=n[0],o=atob(n[1]),i=new Uint8Array(o.length),a=0;a<o.length;a++)i[a]=o.charCodeAt(a);s=new Blob([i.buffer],{type:r})}navigator.msSaveBlob(s,t)}function o(e,n){t.Blob&&e instanceof Blob&&(e=URL.createObjectURL(e)),i.download=n,i.href=e;var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!1,t,0,0,0,0,0,!1,!1,!1,!1,0,null),i.dispatchEvent(r),setTimeout(function(){URL.revokeObjectURL(e)})}var i=document.createElement("a"),a="download"in i&&!ye.support.browser.edge;ye.saveAs=function(e){var t=n;e.forceProxy||(a?t=o:navigator.msSaveBlob&&(t=r)),t(e.dataURI,e.fileName,e.proxyURL,e.proxyTarget)}}(),ye.proxyModelSetters=function(e){var t={};return Object.keys(e||{}).forEach(function(n){Object.defineProperty(t,n,{get:function(){return e[n]},set:function(t){e[n]=t,e.dirty=!0}})}),t}}(jQuery,window),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.data.min",["kendo.core.min","kendo.data.odata.min","kendo.data.xml.min"],e)}(function(){return function(e,t){function r(e,t,r,n){return function(i){var a,s={};for(a in i)s[a]=i[a];s.field=n?r+"."+i.field:r,t==ze&&e._notifyChange&&e._notifyChange(s),e.trigger(t,s)}}function n(t,r){if(t===r)return!0;var i,a=e.type(t),s=e.type(r);if(a!==s)return!1;if("date"===a)return t.getTime()===r.getTime();if("object"!==a&&"array"!==a)return!1;for(i in t)if(!n(t[i],r[i]))return!1;return!0}function i(e,t){var r,n;for(n in e){if(r=e[n],de(r)&&r.field&&r.field===t)return r;if(r===t)return r}return null}function a(e){this.data=e||[]}function s(e,r){if(e){var n=typeof e===we?{field:e,dir:r}:e,i=ce(n)?n:n!==t?[n]:[];return ge(i,function(e){return!!e.dir})}}function o(e){var t,r,n,i,a=e.filters;if(a)for(t=0,r=a.length;t<r;t++)n=a[t],i=n.operator,i&&typeof i===we&&(n.operator=X[i.toLowerCase()]||i),o(n)}function u(e){if(e&&!he(e))return!ce(e)&&e.filters||(e={logic:"and",filters:ce(e)?e:[e]}),o(e),e}function l(e,t){return!e.logic&&!t.logic&&(e.field===t.field&&e.value===t.value&&e.operator===t.operator)}function f(e){return e=e||{},he(e)?{logic:"and",filters:[]}:u(e)}function d(e,t){return t.logic||e.field>t.field?1:e.field<t.field?-1:0}function h(e,t){var r,n,i,a,s;if(e=f(e),t=f(t),e.logic!==t.logic)return!1;if(i=(e.filters||[]).slice(),a=(t.filters||[]).slice(),i.length!==a.length)return!1;for(i=i.sort(d),a=a.sort(d),s=0;s<i.length;s++)if(r=i[s],n=a[s],r.logic&&n.logic){if(!h(r,n))return!1}else if(!l(r,n))return!1;return!0}function c(e){return ce(e)?e:[e]}function g(e,r){var n=typeof e===we?{field:e,dir:r}:e,i=ce(n)?n:n!==t?[n]:[];return L(i,function(e){return{field:e.field,dir:e.dir||"asc",aggregates:e.aggregates}})}function p(e,t){return e&&e.getTime&&t&&t.getTime?e.getTime()===t.getTime():e===t}function _(e,t,r,n,i,a){var s,o,u,l,f;for(t=t||[],l=t.length,s=0;s<l;s++)o=t[s],u=o.aggregate,f=o.field,e[f]=e[f]||{},a[f]=a[f]||{},a[f][u]=a[f][u]||{},e[f][u]=Y[u.toLowerCase()](e[f][u],r,me.accessor(f),n,i,a[f][u])}function v(e){return"number"==typeof e&&!isNaN(e)}function m(e){return e&&e.getTime}function y(e){var t,r=e.length,n=Array(r);for(t=0;t<r;t++)n[t]=e[t].toJSON();return n}function S(e,t,r,n,i){var a,s,o,u,l,f={};for(u=0,l=e.length;u<l;u++){a=e[u];for(s in t)o=i[s],o&&o!==s&&(f[o]||(f[o]=me.setter(o)),f[o](a,t[s](a)),delete a[s])}}function b(e,t,r,n,i){var a,s,o,u,l;for(u=0,l=e.length;u<l;u++){a=e[u];for(s in t)a[s]=r._parse(s,t[s](a)),o=i[s],o&&o!==s&&delete a[o]}}function w(e,t,r,n,i){var a,s,o,u;for(s=0,u=e.length;s<u;s++)a=e[s],o=n[a.field],o&&o!=a.field&&(a.field=o),a.value=r._parse(a.field,a.value),a.hasSubgroups?w(a.items,t,r,n,i):b(a.items,t,r,n,i)}function k(e,t,r,n,i,a){return function(s){return s=e(s),s&&!he(n)&&("[object Array]"===We.call(s)||s instanceof Ke||(s=[s]),r(s,n,new t,i,a)),s||[]}}function x(e,t,r,n){for(var i,a,s,o=0;t.length&&n&&(i=t[o],a=i.items,s=a.length,e&&e.field===i.field&&e.value===i.value?(e.hasSubgroups&&e.items.length?x(e.items[e.items.length-1],i.items,r,n):(a=a.slice(r,r+n),e.items=e.items.concat(a)),t.splice(o--,1)):i.hasSubgroups&&a.length?(x(i,a,r,n),i.items.length||t.splice(o--,1)):(a=a.slice(r,r+n),i.items=a,i.items.length||t.splice(o--,1)),0===a.length?r-=s:(r=0,n-=a.length),!(++o>=t.length)););o<t.length&&t.splice(o,t.length-o)}function q(e){var t,r,n,i,a,s=[];for(t=0,r=e.length;t<r;t++)if(a=e.at(t),a.hasSubgroups)s=s.concat(q(a.items));else for(n=a.items,i=0;i<n.length;i++)s.push(n.at(i));return s}function D(e,t){var r,n,i;if(t)for(r=0,n=e.length;r<n;r++)i=e.at(r),i.hasSubgroups?D(i.items,t):i.items=new U(i.items,t)}function O(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r].hasSubgroups){if(O(e[r].items,t))return!0}else if(t(e[r].items,e[r]))return!0}function z(e,t,r,n){for(var i=0;i<e.length&&e[i].data!==t&&!R(e[i].data,r,n);i++);}function R(e,t,r){for(var n=0,i=e.length;n<i;n++){if(e[n]&&e[n].hasSubgroups)return R(e[n].items,t,r);if(e[n]===t||e[n]===r)return e[n]=r,!0}}function P(e,r,n,i,a){var s,o,u,l;for(s=0,o=e.length;s<o;s++)if(u=e[s],u&&!(u instanceof i))if(u.hasSubgroups===t||a){for(l=0;l<r.length;l++)if(r[l]===u){e[s]=r.at(l),z(n,r,u,e[s]);break}}else P(u.items,r,n,i,a)}function C(e,t){var r,n,i;for(r=0,n=e.length;r<n;r++)if(i=e.at(r),i.uid==t.uid)return e.splice(r,1),i}function T(e,t){return t?A(e,function(e){return e.uid&&e.uid==t.uid||e[t.idField]===t.id&&t.id!==t._defaultId}):-1}function F(e,t){return t?A(e,function(e){return e.uid==t.uid}):-1}function A(e,t){var r,n;for(r=0,n=e.length;r<n;r++)if(t(e[r]))return r;return-1}function I(e,t){var r,n;return e&&!he(e)?(r=e[t],n=de(r)?r.from||r.field||t:e[t]||t,ye(n)?t:n):t}function N(e,t){var r,n,i,a={};for(i in e)"filters"!==i&&(a[i]=e[i]);if(e.filters)for(a.filters=[],r=0,n=e.filters.length;r<n;r++)a.filters[r]=N(e.filters[r],t);else a.field=I(t.fields,a.field);return a}function M(e,t){var r,n,i,a,s,o=[];for(r=0,n=e.length;r<n;r++){i={},a=e[r];for(s in a)i[s]=a[s];i.field=I(t.fields,i.field),i.aggregates&&ce(i.aggregates)&&(i.aggregates=M(i.aggregates,t)),o.push(i)}return o}function j(t,r){var n,i,a,s,o,u,l,f,d,h;for(t=e(t)[0],n=t.options,i=r[0],a=r[1],s=[],o=0,u=n.length;o<u;o++)d={},f=n[o],l=f.parentNode,l===t&&(l=null),f.disabled||l&&l.disabled||(l&&(d.optgroup=l.label),d[i.field]=f.text,h=f.attributes.value,h=h&&h.specified?f.value:f.text,d[a.field]=h,s.push(d));return s}function G(t,r){var n,i,a,s,o,u,l,f=e(t)[0].tBodies[0],d=f?f.rows:[],h=r.length,c=[];for(n=0,i=d.length;n<i;n++){for(o={},l=!0,s=d[n].cells,a=0;a<h;a++)u=s[a],"th"!==u.nodeName.toLowerCase()&&(l=!1,o[r[a].field]=u.innerHTML);l||c.push(o)}return c}function E(e){return function(){var t=this._data,r=ne.fn[e].apply(this,He.call(arguments));return this._data!=t&&this._attachBubbleHandlers(),r}}function B(t,r){function n(e,t){return e.filter(t).add(e.find(t))}var i,a,s,o,u,l,f,d,h=e(t).children(),c=[],g=r[0].field,p=r[1]&&r[1].field,_=r[2]&&r[2].field,v=r[3]&&r[3].field;for(i=0,a=h.length;i<a;i++)s={_loaded:!0},o=h.eq(i),l=o[0].firstChild,d=o.children(),t=d.filter("ul"),d=d.filter(":not(ul)"),u=o.attr("data-id"),u&&(s.id=u),l&&(s[g]=3==l.nodeType?l.nodeValue:d.text()),p&&(s[p]=n(d,"a").attr("href")),v&&(s[v]=n(d,"img").attr("src")),_&&(f=n(d,".k-sprite").prop("className"),s[_]=f&&e.trim(f.replace("k-sprite",""))),t.length&&(s.items=B(t.eq(0),r)),"true"==o.attr("data-hasChildren")&&(s.hasChildren=!0),c.push(s);return c}var L,U,J,H,V,W,$,Q,K,X,Y,Z,ee,te,re,ne,ie,ae,se,oe,ue,le=e.extend,fe=e.proxy,de=e.isPlainObject,he=e.isEmptyObject,ce=e.isArray,ge=e.grep,pe=e.ajax,_e=e.each,ve=e.noop,me=window.kendo,ye=me.isFunction,Se=me.Observable,be=me.Class,we="string",ke="function",xe="create",qe="read",De="update",Oe="destroy",ze="change",Re="sync",Pe="get",Ce="error",Te="requestStart",Fe="progress",Ae="requestEnd",Ie=[xe,qe,De,Oe],Ne=function(e){return e},Me=me.getter,je=me.stringify,Ge=Math,Ee=[].push,Be=[].join,Le=[].pop,Ue=[].splice,Je=[].shift,He=[].slice,Ve=[].unshift,We={}.toString,$e=me.support.stableSort,Qe=/^\/Date\((.*?)\)\/$/,Ke=Se.extend({init:function(e,t){var r=this;r.type=t||J,Se.fn.init.call(r),r.length=e.length,r.wrapAll(e,r)},at:function(e){return this[e]},toJSON:function(){var e,t,r=this.length,n=Array(r);for(e=0;e<r;e++)t=this[e],t instanceof J&&(t=t.toJSON()),n[e]=t;return n},parent:ve,wrapAll:function(e,t){var r,n,i=this,a=function(){return i};for(t=t||[],r=0,n=e.length;r<n;r++)t[r]=i.wrap(e[r],a);return t},wrap:function(e,t){var r,n=this;return null!==e&&"[object Object]"===We.call(e)&&(r=e instanceof n.type||e instanceof W,r||(e=e instanceof J?e.toJSON():e,e=new n.type(e)),e.parent=t,e.bind(ze,function(e){n.trigger(ze,{field:e.field,node:e.node,index:e.index,items:e.items||[this],action:e.node?e.action||"itemloaded":"itemchange"})})),e},push:function(){var e,t=this.length,r=this.wrapAll(arguments);return e=Ee.apply(this,r),this.trigger(ze,{action:"add",index:t,items:r}),e},slice:He,sort:[].sort,join:Be,pop:function(){var e=this.length,t=Le.apply(this);return e&&this.trigger(ze,{action:"remove",index:e-1,items:[t]}),t},splice:function(e,t,r){var n,i,a,s=this.wrapAll(He.call(arguments,2));if(n=Ue.apply(this,[e,t].concat(s)),n.length)for(this.trigger(ze,{action:"remove",index:e,items:n}),i=0,a=n.length;i<a;i++)n[i]&&n[i].children&&n[i].unbind(ze);return r&&this.trigger(ze,{action:"add",index:e,items:s}),n},shift:function(){var e=this.length,t=Je.apply(this);return e&&this.trigger(ze,{action:"remove",index:0,items:[t]}),t},unshift:function(){var e,t=this.wrapAll(arguments);return e=Ve.apply(this,t),this.trigger(ze,{action:"add",index:0,items:t}),e},indexOf:function(e){var t,r,n=this;for(t=0,r=n.length;t<r;t++)if(n[t]===e)return t;return-1},forEach:function(e){for(var t=0,r=this.length;t<r;t++)e(this[t],t,this)},map:function(e){for(var t=0,r=[],n=this.length;t<n;t++)r[t]=e(this[t],t,this);return r},reduce:function(e){var t,r=0,n=this.length;for(2==arguments.length?t=arguments[1]:r<n&&(t=this[r++]);r<n;r++)t=e(t,this[r],r,this);return t},reduceRight:function(e){var t,r=this.length-1;for(2==arguments.length?t=arguments[1]:r>0&&(t=this[r--]);r>=0;r--)t=e(t,this[r],r,this);return t},filter:function(e){for(var t,r=0,n=[],i=this.length;r<i;r++)t=this[r],e(t,r,this)&&(n[n.length]=t);return n},find:function(e){for(var t,r=0,n=this.length;r<n;r++)if(t=this[r],e(t,r,this))return t},every:function(e){for(var t,r=0,n=this.length;r<n;r++)if(t=this[r],!e(t,r,this))return!1;return!0},some:function(e){for(var t,r=0,n=this.length;r<n;r++)if(t=this[r],e(t,r,this))return!0;return!1},remove:function(e){var t=this.indexOf(e);t!==-1&&this.splice(t,1)},empty:function(){this.splice(0,this.length)}});"undefined"!=typeof Symbol&&Symbol.iterator&&!Ke.prototype[Symbol.iterator]&&(Ke.prototype[Symbol.iterator]=[][Symbol.iterator]),U=Ke.extend({init:function(e,t){Se.fn.init.call(this),this.type=t||J;for(var r=0;r<e.length;r++)this[r]=e[r];this.length=r,this._parent=fe(function(){return this},this)},at:function(e){var t=this[e];return t instanceof this.type?t.parent=this._parent:t=this[e]=this.wrap(t,this._parent),t}}),J=Se.extend({init:function(e){var t,r,n=this,i=function(){return n};Se.fn.init.call(this),this._handlers={};for(r in e)t=e[r],"object"==typeof t&&t&&!t.getTime&&"_"!=r.charAt(0)&&(t=n.wrap(t,r,i)),n[r]=t;n.uid=me.guid()},shouldSerialize:function(e){return this.hasOwnProperty(e)&&"_handlers"!==e&&"_events"!==e&&typeof this[e]!==ke&&"uid"!==e},forEach:function(e){for(var t in this)this.shouldSerialize(t)&&e(this[t],t)},toJSON:function(){var e,t,r={};for(t in this)this.shouldSerialize(t)&&(e=this[t],(e instanceof J||e instanceof Ke)&&(e=e.toJSON()),r[t]=e);return r},get:function(e){var t,r=this;return r.trigger(Pe,{field:e}),t="this"===e?r:me.getter(e,!0)(r)},_set:function(e,t){var r,n,i,a=this,s=e.indexOf(".")>=0;if(s)for(r=e.split("."),n="";r.length>1;){if(n+=r.shift(),i=me.getter(n,!0)(a),i instanceof J)return i.set(r.join("."),t),s;n+="."}return me.setter(e)(a,t),s},set:function(e,t){var r=this,n=!1,i=e.indexOf(".")>=0,a=me.getter(e,!0)(r);return a!==t&&(a instanceof Se&&this._handlers[e]&&(this._handlers[e].get&&a.unbind(Pe,this._handlers[e].get),a.unbind(ze,this._handlers[e].change)),n=r.trigger("set",{field:e,value:t}),n||(i||(t=r.wrap(t,e,function(){return r})),(!r._set(e,t)||e.indexOf("(")>=0||e.indexOf("[")>=0)&&r.trigger(ze,{field:e}))),n},parent:ve,wrap:function(e,t,n){var i,a,s,o,u=this,l=We.call(e);return null==e||"[object Object]"!==l&&"[object Array]"!==l||(s=e instanceof Ke,o=e instanceof ne,"[object Object]"!==l||o||s?("[object Array]"===l||s||o)&&(s||o||(e=new Ke(e)),a=r(u,ze,t,!1),e.bind(ze,a),u._handlers[t]={change:a}):(e instanceof J||(e=new J(e)),i=r(u,Pe,t,!0),e.bind(Pe,i),a=r(u,ze,t,!0),e.bind(ze,a),u._handlers[t]={get:i,change:a}),e.parent=n),e}}),H={number:function(e){return me.parseFloat(e)},date:function(e){return me.parseDate(e)},"boolean":function(e){return typeof e===we?"true"===e.toLowerCase():null!=e?!!e:e},string:function(e){return null!=e?e+"":e},"default":function(e){return e}},V={string:"",number:0,date:new Date,"boolean":!1,"default":""},W=J.extend({init:function(r){var n,i,a=this;if((!r||e.isEmptyObject(r))&&(r=e.extend({},a.defaults,r),a._initializers))for(n=0;n<a._initializers.length;n++)i=a._initializers[n],r[i]=a.defaults[i]();J.fn.init.call(a,r),a.dirty=!1,a.idField&&(a.id=a.get(a.idField),a.id===t&&(a.id=a._defaultId))},shouldSerialize:function(e){return J.fn.shouldSerialize.call(this,e)&&"uid"!==e&&!("id"!==this.idField&&"id"===e)&&"dirty"!==e&&"_accessors"!==e},_parse:function(e,t){var r,n=this,a=e,s=n.fields||{};return e=s[e],e||(e=i(s,a)),e&&(r=e.parse,!r&&e.type&&(r=H[e.type.toLowerCase()])),r?r(t):t},_notifyChange:function(e){var t=e.action;"add"!=t&&"remove"!=t||(this.dirty=!0)},editable:function(e){return e=(this.fields||{})[e],!e||e.editable!==!1},set:function(e,t,r){var i=this,a=i.dirty;i.editable(e)&&(t=i._parse(e,t),n(t,i.get(e))||(i.dirty=!0,J.fn.set.call(i,e,t,r)&&!a&&(i.dirty=a)))},accept:function(e){var t,r,n=this,i=function(){return n};for(t in e)r=e[t],"_"!=t.charAt(0)&&(r=n.wrap(e[t],t,i)),n._set(t,r);n.idField&&(n.id=n.get(n.idField)),n.dirty=!1},isNew:function(){return this.id===this._defaultId}}),W.define=function(e,r){r===t&&(r=e,e=W);var n,i,a,s,o,u,l,f,d=le({defaults:{}},r),h={},c=d.id,g=[];if(c&&(d.idField=c),d.id&&delete d.id,c&&(d.defaults[c]=d._defaultId=""),"[object Array]"===We.call(d.fields)){for(u=0,l=d.fields.length;u<l;u++)a=d.fields[u],typeof a===we?h[a]={}:a.field&&(h[a.field]=a);d.fields=h}for(i in d.fields)a=d.fields[i],s=a.type||"default",o=null,f=i,i=typeof a.field===we?a.field:i,a.nullable||(o=d.defaults[f!==i?f:i]=a.defaultValue!==t?a.defaultValue:V[s.toLowerCase()],"function"==typeof o&&g.push(i)),r.id===i&&(d._defaultId=o),d.defaults[f!==i?f:i]=o,a.parse=a.parse||H[s];return g.length>0&&(d._initializers=g),n=e.extend(d),n.define=function(e){return W.define(n,e)},d.fields&&(n.fields=d.fields,n.idField=d.idField),n},$={selector:function(e){return ye(e)?e:Me(e)},compare:function(e){var t=this.selector(e);return function(e,r){return e=t(e),r=t(r),null==e&&null==r?0:null==e?-1:null==r?1:e.localeCompare?e.localeCompare(r):e>r?1:e<r?-1:0}},create:function(e){var t=e.compare||this.compare(e.field);return"desc"==e.dir?function(e,r){return t(r,e,!0)}:t},combine:function(e){return function(t,r){var n,i,a=e[0](t,r);for(n=1,i=e.length;n<i;n++)a=a||e[n](t,r);return a}}},Q=le({},$,{asc:function(e){var t=this.selector(e);return function(e,r){var n=t(e),i=t(r);return n&&n.getTime&&i&&i.getTime&&(n=n.getTime(),i=i.getTime()),n===i?e.__position-r.__position:null==n?-1:null==i?1:n.localeCompare?n.localeCompare(i):n>i?1:-1}},desc:function(e){var t=this.selector(e);return function(e,r){var n=t(e),i=t(r);return n&&n.getTime&&i&&i.getTime&&(n=n.getTime(),i=i.getTime()),n===i?e.__position-r.__position:null==n?1:null==i?-1:i.localeCompare?i.localeCompare(n):n<i?1:-1}},create:function(e){return this[e.dir](e.field)}}),L=function(e,t){var r,n=e.length,i=Array(n);for(r=0;r<n;r++)i[r]=t(e[r],r,e);return i},K=function(){function e(e){return"string"==typeof e&&(e=e.replace(/[\r\n]+/g,"")),JSON.stringify(e)}function t(t){return function(r,n,i){return n+="",i&&(r="("+r+" || '').toLowerCase()",n=n.toLowerCase()),t(r,e(n),i)}}function r(t,r,n,i){if(null!=n){if(typeof n===we){var a=Qe.exec(n);a?n=new Date((+a[1])):i?(n=e(n.toLowerCase()),r="(("+r+" || '')+'').toLowerCase()"):n=e(n)}n.getTime&&(r="("+r+"&&"+r+".getTime?"+r+".getTime():"+r+")",n=n.getTime())}return r+" "+t+" "+n}function n(e){var t,r,n,i;for(t="/^",r=!1,n=0;n<e.length;++n){if(i=e.charAt(n),r)t+="\\"+i;else{if("~"==i){r=!0;continue}t+="*"==i?".*":"?"==i?".":".+^$()[]{}|\\/\n\r\u2028\u2029�".indexOf(i)>=0?"\\"+i:i}r=!1}return t+"$/"}return{quote:function(t){return t&&t.getTime?"new Date("+t.getTime()+")":e(t)},eq:function(e,t,n){return r("==",e,t,n)},neq:function(e,t,n){return r("!=",e,t,n)},gt:function(e,t,n){return r(">",e,t,n)},gte:function(e,t,n){return r(">=",e,t,n)},lt:function(e,t,n){return r("<",e,t,n)},lte:function(e,t,n){return r("<=",e,t,n)},startswith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == 0"}),doesnotstartwith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == -1"}),endswith:t(function(e,t){var r=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+r+") >= 0"}),doesnotendwith:t(function(e,t){var r=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+r+") < 0"}),contains:t(function(e,t){return e+".indexOf("+t+") >= 0"}),doesnotcontain:t(function(e,t){return e+".indexOf("+t+") == -1"}),matches:t(function(e,t){return t=t.substring(1,t.length-1),n(t)+".test("+e+")"}),doesnotmatch:t(function(e,t){return t=t.substring(1,t.length-1),"!"+n(t)+".test("+e+")"}),isempty:function(e){return e+" === ''"},isnotempty:function(e){return e+" !== ''"},isnull:function(e){return"("+e+" == null)"},isnotnull:function(e){return"("+e+" != null)"}}}(),a.filterExpr=function(e){var r,n,i,s,o,u,l=[],f={and:" && ",or:" || "},d=[],h=[],c=e.filters;for(r=0,n=c.length;r<n;r++)i=c[r],o=i.field,u=i.operator,i.filters?(s=a.filterExpr(i),i=s.expression.replace(/__o\[(\d+)\]/g,function(e,t){return t=+t,"__o["+(h.length+t)+"]"}).replace(/__f\[(\d+)\]/g,function(e,t){return t=+t,"__f["+(d.length+t)+"]"}),h.push.apply(h,s.operators),d.push.apply(d,s.fields)):(typeof o===ke?(s="__f["+d.length+"](d)",d.push(o)):s=me.expr(o),typeof u===ke?(i="__o["+h.length+"]("+s+", "+K.quote(i.value)+")",h.push(u)):i=K[(u||"eq").toLowerCase()](s,i.value,i.ignoreCase===t||i.ignoreCase)),l.push(i);return{expression:"("+l.join(f[e.logic])+")",fields:d,operators:h}},X={"==":"eq",equals:"eq",isequalto:"eq",equalto:"eq",equal:"eq","!=":"neq",ne:"neq",notequals:"neq",isnotequalto:"neq",notequalto:"neq",notequal:"neq","<":"lt",islessthan:"lt",lessthan:"lt",less:"lt","<=":"lte",le:"lte",islessthanorequalto:"lte",lessthanequal:"lte",">":"gt",isgreaterthan:"gt",greaterthan:"gt",greater:"gt",">=":"gte",isgreaterthanorequalto:"gte",greaterthanequal:"gte",ge:"gte",notsubstringof:"doesnotcontain",isnull:"isnull",isempty:"isempty",isnotempty:"isnotempty"},a.normalizeFilter=u,a.compareFilters=h,a.prototype={toArray:function(){return this.data},range:function(e,t){return new a(this.data.slice(e,e+t))},skip:function(e){return new a(this.data.slice(e))},take:function(e){return new a(this.data.slice(0,e))},select:function(e){return new a(L(this.data,e))},order:function(e,t){var r={dir:t};return e&&(e.compare?r.compare=e.compare:r.field=e),new a(this.data.slice(0).sort($.create(r)))},orderBy:function(e){return this.order(e,"asc")},orderByDescending:function(e){return this.order(e,"desc")},sort:function(e,t,r){var n,i,a=s(e,t),o=[];if(r=r||$,a.length){for(n=0,i=a.length;n<i;n++)o.push(r.create(a[n]));return this.orderBy({compare:r.combine(o)})}return this},filter:function(e){var t,r,n,i,s,o,l,f,d=this.data,h=[];if(e=u(e),!e||0===e.filters.length)return this;for(i=a.filterExpr(e),o=i.fields,l=i.operators,s=f=Function("d, __f, __o","return "+i.expression),(o.length||l.length)&&(f=function(e){return s(e,o,l)}),t=0,n=d.length;t<n;t++)r=d[t],f(r)&&h.push(r);return new a(h)},group:function(e,t){e=g(e||[]),t=t||this.data;var r,n=this,i=new a(n.data);return e.length>0&&(r=e[0],i=i.groupBy(r).select(function(n){var i=new a(t).filter([{field:n.field,operator:"eq",value:n.value,ignoreCase:!1}]);return{field:n.field,value:n.value,items:e.length>1?new a(n.items).group(e.slice(1),i.toArray()).toArray():n.items,hasSubgroups:e.length>1,aggregates:i.aggregate(r.aggregates)}})),i},groupBy:function(e){if(he(e)||!this.data.length)return new a([]);var t,r,n,i,s=e.field,o=this._sortForGrouping(s,e.dir||"asc"),u=me.accessor(s),l=u.get(o[0],s),f={field:s,value:l,items:[]},d=[f];for(n=0,i=o.length;n<i;n++)t=o[n],r=u.get(t,s),p(l,r)||(l=r,f={field:s,value:l,items:[]},d.push(f)),f.items.push(t);return new a(d)},_sortForGrouping:function(e,t){var r,n,i=this.data;if(!$e){for(r=0,n=i.length;r<n;r++)i[r].__position=r;for(i=new a(i).sort(e,t,Q).toArray(),r=0,n=i.length;r<n;r++)delete i[r].__position;return i}return this.sort(e,t).toArray()},aggregate:function(e){var t,r,n={},i={};if(e&&e.length)for(t=0,r=this.data.length;t<r;t++)_(n,e,this.data[t],t,r,i);return n}},Y={sum:function(e,t,r){var n=r.get(t);return v(e)?v(n)&&(e+=n):e=n,e},count:function(e){return(e||0)+1},average:function(e,r,n,i,a,s){var o=n.get(r);return s.count===t&&(s.count=0),v(e)?v(o)&&(e+=o):e=o,v(o)&&s.count++,i==a-1&&v(e)&&(e/=s.count),e},max:function(e,t,r){var n=r.get(t);return v(e)||m(e)||(e=n),e<n&&(v(n)||m(n))&&(e=n),e},min:function(e,t,r){var n=r.get(t);return v(e)||m(e)||(e=n),e>n&&(v(n)||m(n))&&(e=n),e}},a.process=function(e,r){r=r||{};var n,i=new a(e),o=r.group,u=g(o||[]).concat(s(r.sort||[])),l=r.filterCallback,f=r.filter,d=r.skip,h=r.take;return f&&(i=i.filter(f),l&&(i=l(i)),n=i.toArray().length),u&&(i=i.sort(u),o&&(e=i.toArray())),d!==t&&h!==t&&(i=i.range(d,h)),o&&(i=i.group(o,e)),{total:n,data:i.toArray()}},Z=be.extend({init:function(e){this.data=e.data},read:function(e){e.success(this.data)},update:function(e){e.success(e.data)},create:function(e){e.success(e.data)},destroy:function(e){e.success(e.data)}}),ee=be.extend({init:function(e){var t,r=this;e=r.options=le({},r.options,e),_e(Ie,function(t,r){typeof e[r]===we&&(e[r]={url:e[r]})}),r.cache=e.cache?te.create(e.cache):{find:ve,add:ve},t=e.parameterMap,ye(e.push)&&(r.push=e.push),r.push||(r.push=Ne),r.parameterMap=ye(t)?t:function(e){var r={};return _e(e,function(e,n){e in t&&(e=t[e],de(e)&&(n=e.value(n),e=e.key)),r[e]=n}),r}},options:{parameterMap:Ne},create:function(e){return pe(this.setup(e,xe))},read:function(r){var n,i,a,s=this,o=s.cache;r=s.setup(r,qe),n=r.success||ve,i=r.error||ve,a=o.find(r.data),a!==t?n(a):(r.success=function(e){o.add(r.data,e),n(e)},e.ajax(r))},update:function(e){return pe(this.setup(e,De))},destroy:function(e){return pe(this.setup(e,Oe))},setup:function(e,t){e=e||{};var r,n=this,i=n.options[t],a=ye(i.data)?i.data(e.data):i.data;return e=le(!0,{},i,e),r=le(!0,{},a,e.data),e.data=n.parameterMap(r,t),ye(e.url)&&(e.url=e.url(r)),e}}),te=be.extend({init:function(){this._store={}},add:function(e,r){e!==t&&(this._store[je(e)]=r)},find:function(e){return this._store[je(e)]},clear:function(){this._store={}},remove:function(e){delete this._store[je(e)]}}),te.create=function(e){var t={inmemory:function(){return new te}};return de(e)&&ye(e.find)?e:e===!0?new te:t[e]()},re=be.extend({init:function(e){var t,r,n,i,a,s,o,u,l,f,d,h,c,g=this;e=e||{};for(t in e)r=e[t],g[t]=typeof r===we?Me(r):r;i=e.modelBase||W,de(g.model)&&(g.model=n=i.define(g.model)),a=fe(g.data,g),g._dataAccessFunction=a,g.model&&(s=fe(g.groups,g),o=fe(g.serialize,g),u={},l={},f={},d={},h=!1,n=g.model,n.fields&&(_e(n.fields,function(e,t){var r;c=e,de(t)&&t.field?c=t.field:typeof t===we&&(c=t),de(t)&&t.from&&(r=t.from),h=h||r&&r!==e||c!==e,l[e]=Me(r||c),f[e]=Me(e),u[r||c]=e,d[e]=r||c}),!e.serialize&&h&&(g.serialize=k(o,n,S,f,u,d))),g._dataAccessFunction=a,g.data=k(a,n,b,l,u,d),g.groups=k(s,n,w,l,u,d))},errors:function(e){return e?e.errors:null},parse:Ne,data:Ne,total:function(e){return e.length},groups:Ne,aggregates:function(){return{}},serialize:function(e){return e}}),ne=Se.extend({init:function(e){var r,n,i,a=this;e&&(n=e.data),e=a.options=le({},a.options,e),a._map={},a._prefetch={},a._data=[],a._pristineData=[],a._ranges=[],a._view=[],a._pristineTotal=0,a._destroyed=[],a._pageSize=e.pageSize,a._page=e.page||(e.pageSize?1:t),a._sort=s(e.sort),a._filter=u(e.filter),a._group=g(e.group),a._aggregate=e.aggregate,a._total=e.total,a._shouldDetachObservableParents=!0,Se.fn.init.call(a),a.transport=ie.create(e,n,a),ye(a.transport.push)&&a.transport.push({pushCreate:fe(a._pushCreate,a),pushUpdate:fe(a._pushUpdate,a),pushDestroy:fe(a._pushDestroy,a)}),null!=e.offlineStorage&&("string"==typeof e.offlineStorage?(i=e.offlineStorage,a._storage={getItem:function(){return JSON.parse(localStorage.getItem(i))},setItem:function(e){localStorage.setItem(i,je(a.reader.serialize(e)))}}):a._storage=e.offlineStorage),a.reader=new me.data.readers[e.schema.type||"json"](e.schema),r=a.reader.model||{},a._detachObservableParents(),a._data=a._observe(a._data),a._online=!0,a.bind(["push",Ce,ze,Te,Re,Ae,Fe],e)},options:{data:null,schema:{modelBase:W},offlineStorage:null,serverSorting:!1,serverPaging:!1,serverFiltering:!1,serverGrouping:!1,serverAggregates:!1,batch:!1},clone:function(){return this},online:function(r){return r!==t?this._online!=r&&(this._online=r,r)?this.sync():e.Deferred().resolve().promise():this._online},offlineData:function(e){return null==this.options.offlineStorage?null:e!==t?this._storage.setItem(e):this._storage.getItem()||[]},_isServerGrouped:function(){var e=this.group()||[];return this.options.serverGrouping&&e.length},_pushCreate:function(e){this._push(e,"pushCreate")},_pushUpdate:function(e){this._push(e,"pushUpdate")},_pushDestroy:function(e){this._push(e,"pushDestroy")},_push:function(e,t){var r=this._readData(e);r||(r=e),this[t](r)},_flatData:function(e,t){if(e){if(this._isServerGrouped())return q(e);if(!t)for(var r=0;r<e.length;r++)e.at(r)}return e},parent:ve,get:function(e){var t,r,n=this._flatData(this._data);for(t=0,r=n.length;t<r;t++)if(n[t].id==e)return n[t]},getByUid:function(e){var t,r,n=this._flatData(this._data);if(n)for(t=0,r=n.length;t<r;t++)if(n[t].uid==e)return n[t]},indexOf:function(e){return F(this._data,e)},at:function(e){return this._data.at(e)},data:function(e){var r,n=this;if(e===t){if(n._data)for(r=0;r<n._data.length;r++)n._data.at(r);return n._data}n._detachObservableParents(),n._data=this._observe(e),n._pristineData=e.slice(0),n._storeData(),n._ranges=[],n.trigger("reset"),n._addRange(n._data),n._total=n._data.length,n._pristineTotal=n._total,n._process(n._data)},view:function(e){return e===t?this._view:(this._view=this._observeView(e),t)},_observeView:function(e){var t,r=this;return P(e,r._data,r._ranges,r.reader.model||J,r._isServerGrouped()),t=new U(e,r.reader.model),t.parent=function(){return r.parent()},t},flatView:function(){var e=this.group()||[];return e.length?q(this._view):this._view},add:function(e){return this.insert(this._data.length,e)},_createNewModel:function(e){return this.reader.model?new this.reader.model(e):e instanceof J?e:new J(e)},insert:function(e,t){return t||(t=e,e=0),t instanceof W||(t=this._createNewModel(t)),this._isServerGrouped()?this._data.splice(e,0,this._wrapInEmptyGroup(t)):this._data.splice(e,0,t),t},pushCreate:function(e){var t,r,n,i,a,s;ce(e)||(e=[e]),t=[],r=this.options.autoSync,this.options.autoSync=!1;try{for(n=0;n<e.length;n++)i=e[n],a=this.add(i),t.push(a),s=a.toJSON(),this._isServerGrouped()&&(s=this._wrapInEmptyGroup(s)),this._pristineData.push(s)}finally{this.options.autoSync=r}t.length&&this.trigger("push",{type:"create",items:t})},pushUpdate:function(e){var t,r,n,i,a;for(ce(e)||(e=[e]),t=[],r=0;r<e.length;r++)n=e[r],i=this._createNewModel(n),a=this.get(i.id),a?(t.push(a),a.accept(n),a.trigger(ze),this._updatePristineForModel(a,n)):this.pushCreate(n);t.length&&this.trigger("push",{type:"update",items:t})},pushDestroy:function(e){var t=this._removeItems(e);t.length&&this.trigger("push",{type:"destroy",items:t})},_removeItems:function(e){var t,r,n,i,a,s;ce(e)||(e=[e]),t=[],r=this.options.autoSync,this.options.autoSync=!1;try{for(n=0;n<e.length;n++)i=e[n],a=this._createNewModel(i),s=!1,this._eachItem(this._data,function(e){var r,n;for(r=0;r<e.length;r++)if(n=e.at(r),n.id===a.id){t.push(n),e.splice(r,1),s=!0;break}}),s&&(this._removePristineForModel(a),this._destroyed.pop())}finally{this.options.autoSync=r}return t},remove:function(e){var t,r=this,n=r._isServerGrouped();return this._eachItem(r._data,function(i){if(t=C(i,e),t&&n)return t.isNew&&t.isNew()||r._destroyed.push(t),!0}),this._removeModelFromRanges(e),this._updateRangesLength(),e},destroyed:function(){return this._destroyed},created:function(){var e,t,r=[],n=this._flatData(this._data);for(e=0,t=n.length;e<t;e++)n[e].isNew&&n[e].isNew()&&r.push(n[e]);return r},updated:function(){var e,t,r=[],n=this._flatData(this._data);for(e=0,t=n.length;e<t;e++)n[e].isNew&&!n[e].isNew()&&n[e].dirty&&r.push(n[e]);return r},sync:function(){var t,r=this,n=[],i=[],a=r._destroyed,s=e.Deferred().resolve().promise();if(r.online()){if(!r.reader.model)return s;n=r.created(),i=r.updated(),t=[],r.options.batch&&r.transport.submit?t=r._sendSubmit(n,i,a):(t.push.apply(t,r._send("create",n)),t.push.apply(t,r._send("update",i)),t.push.apply(t,r._send("destroy",a))),s=e.when.apply(null,t).then(function(){var e,t;for(e=0,t=arguments.length;e<t;e++)arguments[e]&&r._accept(arguments[e]);r._storeData(!0),r._change({action:"sync"}),r.trigger(Re)})}else r._storeData(!0),r._change({action:"sync"});return s},cancelChanges:function(e){var t=this;e instanceof me.data.Model?t._cancelModel(e):(t._destroyed=[],t._detachObservableParents(),t._data=t._observe(t._pristineData),t.options.serverPaging&&(t._total=t._pristineTotal),t._ranges=[],t._addRange(t._data),t._change(),t._markOfflineUpdatesAsDirty())},_markOfflineUpdatesAsDirty:function(){var e=this;null!=e.options.offlineStorage&&e._eachItem(e._data,function(e){var t,r;for(t=0;t<e.length;t++)r=e.at(t),"update"!=r.__state__&&"create"!=r.__state__||(r.dirty=!0)})},hasChanges:function(){var e,t,r=this._flatData(this._data);if(this._destroyed.length)return!0;for(e=0,t=r.length;e<t;e++)if(r[e].isNew&&r[e].isNew()||r[e].dirty)return!0;return!1},_accept:function(t){var r,n=this,i=t.models,a=t.response,s=0,o=n._isServerGrouped(),u=n._pristineData,l=t.type;if(n.trigger(Ae,{response:a,type:l}),a&&!he(a)){if(a=n.reader.parse(a),n._handleCustomErrors(a))return;a=n.reader.data(a),ce(a)||(a=[a])}else a=e.map(i,function(e){return e.toJSON()});for("destroy"===l&&(n._destroyed=[]),s=0,r=i.length;s<r;s++)"destroy"!==l?(i[s].accept(a[s]),"create"===l?u.push(o?n._wrapInEmptyGroup(i[s]):a[s]):"update"===l&&n._updatePristineForModel(i[s],a[s])):n._removePristineForModel(i[s])},_updatePristineForModel:function(e,t){this._executeOnPristineForModel(e,function(e,r){me.deepExtend(r[e],t)})},_executeOnPristineForModel:function(e,t){this._eachPristineItem(function(r){var n=T(r,e);if(n>-1)return t(n,r),!0})},_removePristineForModel:function(e){this._executeOnPristineForModel(e,function(e,t){t.splice(e,1)})},_readData:function(e){var t=this._isServerGrouped()?this.reader.groups:this.reader.data;return t.call(this.reader,e)},_eachPristineItem:function(e){this._eachItem(this._pristineData,e)},_eachItem:function(e,t){e&&e.length&&(this._isServerGrouped()?O(e,t):t(e))},_pristineForModel:function(e){var t,r,n=function(n){if(r=T(n,e),r>-1)return t=n[r],!0};return this._eachPristineItem(n),t},_cancelModel:function(e){var t=this._pristineForModel(e);this._eachItem(this._data,function(r){var n=F(r,e);n>=0&&(!t||e.isNew()&&!t.__state__?r.splice(n,1):(r[n].accept(t),"update"==t.__state__&&(r[n].dirty=!0)))})},_submit:function(t,r){var n=this;n.trigger(Te,{type:"submit"}),n.transport.submit(le({success:function(r,n){var i=e.grep(t,function(e){return e.type==n})[0];i&&i.resolve({response:r,models:i.models,type:n})},error:function(e,r,i){for(var a=0;a<t.length;a++)t[a].reject(e);n.error(e,r,i)}},r))},_sendSubmit:function(t,r,n){var i=this,a=[];return i.options.batch&&(t.length&&a.push(e.Deferred(function(e){e.type="create",e.models=t})),r.length&&a.push(e.Deferred(function(e){e.type="update",e.models=r})),n.length&&a.push(e.Deferred(function(e){e.type="destroy",e.models=n})),i._submit(a,{data:{created:i.reader.serialize(y(t)),updated:i.reader.serialize(y(r)),destroyed:i.reader.serialize(y(n))}})),a},_promise:function(t,r,n){var i=this;return e.Deferred(function(e){i.trigger(Te,{type:n}),i.transport[n].call(i.transport,le({success:function(t){e.resolve({response:t,models:r,type:n})},error:function(t,r,n){e.reject(t),i.error(t,r,n)}},t))}).promise()},_send:function(e,t){var r,n,i=this,a=[],s=i.reader.serialize(y(t));if(i.options.batch)t.length&&a.push(i._promise({data:{models:s}},t,e));else for(r=0,n=t.length;r<n;r++)a.push(i._promise({data:s[r]},[t[r]],e));return a},read:function(t){
var r=this,n=r._params(t),i=e.Deferred();return r._queueRequest(n,function(){var e=r.trigger(Te,{type:"read"});e?(r._dequeueRequest(),i.resolve(e)):(r.trigger(Fe),r._ranges=[],r.trigger("reset"),r.online()?r.transport.read({data:n,success:function(e){r._ranges=[],r.success(e,n),i.resolve()},error:function(){var e=He.call(arguments);r.error.apply(r,e),i.reject.apply(i,e)}}):null!=r.options.offlineStorage&&(r.success(r.offlineData(),n),i.resolve()))}),i.promise()},_readAggregates:function(e){return this.reader.aggregates(e)},success:function(e){var r,n,i,a,s,o,u,l,f=this,d=f.options;if(f.trigger(Ae,{response:e,type:"read"}),f.online()){if(e=f.reader.parse(e),f._handleCustomErrors(e))return f._dequeueRequest(),t;f._total=f.reader.total(e),f._aggregate&&d.serverAggregates&&(f._aggregateResult=f._readAggregates(e)),e=f._readData(e),f._destroyed=[]}else{for(e=f._readData(e),r=[],n={},i=f.reader.model,a=i?i.idField:"id",s=0;s<this._destroyed.length;s++)o=this._destroyed[s][a],n[o]=o;for(s=0;s<e.length;s++)u=e[s],l=u.__state__,"destroy"==l?n[u[a]]||this._destroyed.push(this._createNewModel(u)):r.push(u);e=r,f._total=e.length}f._pristineTotal=f._total,f._pristineData=e.slice(0),f._detachObservableParents(),f._data=f._observe(e),f._markOfflineUpdatesAsDirty(),f._storeData(),f._addRange(f._data),f._process(f._data),f._dequeueRequest()},_detachObservableParents:function(){if(this._data&&this._shouldDetachObservableParents)for(var e=0;e<this._data.length;e++)this._data[e].parent&&(this._data[e].parent=ve)},_storeData:function(e){function t(e){var r,n,i,a=[];for(r=0;r<e.length;r++)n=e.at(r),i=n.toJSON(),s&&n.items?i.items=t(n.items):(i.uid=n.uid,o&&(n.isNew()?i.__state__="create":n.dirty&&(i.__state__="update"))),a.push(i);return a}var r,n,i,a,s=this._isServerGrouped(),o=this.reader.model;if(null!=this.options.offlineStorage){for(r=t(this._data),n=[],i=0;i<this._destroyed.length;i++)a=this._destroyed[i].toJSON(),a.__state__="destroy",n.push(a);this.offlineData(r.concat(n)),e&&(this._pristineData=this._readData(r))}},_addRange:function(e){var t=this,r=t._skip||0,n=r+t._flatData(e,!0).length;t._ranges.push({start:r,end:n,data:e,timestamp:(new Date).getTime()}),t._ranges.sort(function(e,t){return e.start-t.start})},error:function(e,t,r){this._dequeueRequest(),this.trigger(Ae,{}),this.trigger(Ce,{xhr:e,status:t,errorThrown:r})},_params:function(e){var t=this,r=le({take:t.take(),skip:t.skip(),page:t.page(),pageSize:t.pageSize(),sort:t._sort,filter:t._filter,group:t._group,aggregate:t._aggregate},e);return t.options.serverPaging||(delete r.take,delete r.skip,delete r.page,delete r.pageSize),t.options.serverGrouping?t.reader.model&&r.group&&(r.group=M(r.group,t.reader.model)):delete r.group,t.options.serverFiltering?t.reader.model&&r.filter&&(r.filter=N(r.filter,t.reader.model)):delete r.filter,t.options.serverSorting?t.reader.model&&r.sort&&(r.sort=M(r.sort,t.reader.model)):delete r.sort,t.options.serverAggregates?t.reader.model&&r.aggregate&&(r.aggregate=M(r.aggregate,t.reader.model)):delete r.aggregate,r},_queueRequest:function(e,r){var n=this;n._requestInProgress?n._pending={callback:fe(r,n),options:e}:(n._requestInProgress=!0,n._pending=t,r())},_dequeueRequest:function(){var e=this;e._requestInProgress=!1,e._pending&&e._queueRequest(e._pending.options,e._pending.callback)},_handleCustomErrors:function(e){if(this.reader.errors){var t=this.reader.errors(e);if(t)return this.trigger(Ce,{xhr:null,status:"customerror",errorThrown:"custom error",errors:t}),!0}return!1},_shouldWrap:function(e){var t=this.reader.model;return!(!t||!e.length)&&!(e[0]instanceof t)},_observe:function(e){var t,r=this,n=r.reader.model;return r._shouldDetachObservableParents=!0,e instanceof Ke?(r._shouldDetachObservableParents=!1,r._shouldWrap(e)&&(e.type=r.reader.model,e.wrapAll(e,e))):(t=r.pageSize()&&!r.options.serverPaging?U:Ke,e=new t(e,r.reader.model),e.parent=function(){return r.parent()}),r._isServerGrouped()&&D(e,n),r._changeHandler&&r._data&&r._data instanceof Ke?r._data.unbind(ze,r._changeHandler):r._changeHandler=fe(r._change,r),e.bind(ze,r._changeHandler)},_updateTotalForAction:function(e,t){var r=this,n=parseInt(r._total,10);v(r._total)||(n=parseInt(r._pristineTotal,10)),"add"===e?n+=t.length:"remove"===e?n-=t.length:"itemchange"===e||"sync"===e||r.options.serverPaging?"sync"===e&&(n=r._pristineTotal=parseInt(r._total,10)):n=r._pristineTotal,r._total=n},_change:function(e){var t,r,n,i=this,a=e?e.action:"";if("remove"===a)for(t=0,r=e.items.length;t<r;t++)e.items[t].isNew&&e.items[t].isNew()||i._destroyed.push(e.items[t]);!i.options.autoSync||"add"!==a&&"remove"!==a&&"itemchange"!==a?(i._updateTotalForAction(a,e?e.items:[]),i._process(i._data,e)):(n=function(t){"sync"===t.action&&(i.unbind("change",n),i._updateTotalForAction(a,e.items))},i.first("change",n),i.sync())},_calculateAggregates:function(e,t){t=t||{};var r=new a(e),n=t.aggregate,i=t.filter;return i&&(r=r.filter(i)),r.aggregate(n)},_process:function(e,r){var n,i=this,a={};i.options.serverPaging!==!0&&(a.skip=i._skip,a.take=i._take||i._pageSize,a.skip===t&&i._page!==t&&i._pageSize!==t&&(a.skip=(i._page-1)*i._pageSize)),i.options.serverSorting!==!0&&(a.sort=i._sort),i.options.serverFiltering!==!0&&(a.filter=i._filter),i.options.serverGrouping!==!0&&(a.group=i._group),i.options.serverAggregates!==!0&&(a.aggregate=i._aggregate,i._aggregateResult=i._calculateAggregates(e,a)),n=i._queryProcess(e,a),i.view(n.data),n.total===t||i.options.serverFiltering||(i._total=n.total),r=r||{},r.items=r.items||i._view,i.trigger(ze,r)},_queryProcess:function(e,t){return a.process(e,t)},_mergeState:function(e){var r=this;return e!==t&&(r._pageSize=e.pageSize,r._page=e.page,r._sort=e.sort,r._filter=e.filter,r._group=e.group,r._aggregate=e.aggregate,r._skip=r._currentRangeStart=e.skip,r._take=e.take,r._skip===t&&(r._skip=r._currentRangeStart=r.skip(),e.skip=r.skip()),r._take===t&&r._pageSize!==t&&(r._take=r._pageSize,e.take=r._take),e.sort&&(r._sort=e.sort=s(e.sort)),e.filter&&(r._filter=e.filter=u(e.filter)),e.group&&(r._group=e.group=g(e.group)),e.aggregate&&(r._aggregate=e.aggregate=c(e.aggregate))),e},query:function(r){var n,i,a=this.options.serverSorting||this.options.serverPaging||this.options.serverFiltering||this.options.serverGrouping||this.options.serverAggregates;return a||(this._data===t||0===this._data.length)&&!this._destroyed.length?this.read(this._mergeState(r)):(i=this.trigger(Te,{type:"read"}),i||(this.trigger(Fe),n=this._queryProcess(this._data,this._mergeState(r)),this.options.serverFiltering||(this._total=n.total!==t?n.total:this._data.length),this._aggregateResult=this._calculateAggregates(this._data,r),this.view(n.data),this.trigger(Ae,{type:"read"}),this.trigger(ze,{items:n.data})),e.Deferred().resolve(i).promise())},fetch:function(e){var t=this,r=function(r){r!==!0&&ye(e)&&e.call(t)};return this._query().then(r)},_query:function(e){var t=this;return t.query(le({},{page:t.page(),pageSize:t.pageSize(),sort:t.sort(),filter:t.filter(),group:t.group(),aggregate:t.aggregate()},e))},next:function(e){var t=this,r=t.page(),n=t.total();if(e=e||{},r&&!(n&&r+1>t.totalPages()))return t._skip=t._currentRangeStart=r*t.take(),r+=1,e.page=r,t._query(e),r},prev:function(e){var t=this,r=t.page();if(e=e||{},r&&1!==r)return t._skip=t._currentRangeStart=t._skip-t.take(),r-=1,e.page=r,t._query(e),r},page:function(e){var r,n=this;return e!==t?(e=Ge.max(Ge.min(Ge.max(e,1),n.totalPages()),1),n._query({page:e}),t):(r=n.skip(),r!==t?Ge.round((r||0)/(n.take()||1))+1:t)},pageSize:function(e){var r=this;return e!==t?(r._query({pageSize:e,page:1}),t):r.take()},sort:function(e){var r=this;return e!==t?(r._query({sort:e}),t):r._sort},filter:function(e){var r=this;return e===t?r._filter:(r.trigger("reset"),r._query({filter:e,page:1}),t)},group:function(e){var r=this;return e!==t?(r._query({group:e}),t):r._group},total:function(){return parseInt(this._total||0,10)},aggregate:function(e){var r=this;return e!==t?(r._query({aggregate:e}),t):r._aggregate},aggregates:function(){var e=this._aggregateResult;return he(e)&&(e=this._emptyAggregates(this.aggregate())),e},_emptyAggregates:function(e){var t,r,n={};if(!he(e))for(t={},ce(e)||(e=[e]),r=0;r<e.length;r++)t[e[r].aggregate]=0,n[e[r].field]=t;return n},_wrapInEmptyGroup:function(e){var t,r,n,i,a=this.group();for(n=a.length-1,i=0;n>=i;n--)r=a[n],t={value:e.get(r.field),field:r.field,items:t?[t]:[e],hasSubgroups:!!t,aggregates:this._emptyAggregates(r.aggregates)};return t},totalPages:function(){var e=this,t=e.pageSize()||e.total();return Ge.ceil((e.total()||0)/t)},inRange:function(e,t){var r=this,n=Ge.min(e+t,r.total());return!r.options.serverPaging&&r._data.length>0||r._findRange(e,n).length>0},lastRange:function(){var e=this._ranges;return e[e.length-1]||{start:0,end:0,data:[]}},firstItemUid:function(){var e=this._ranges;return e.length&&e[0].data.length&&e[0].data[0].uid},enableRequestsInProgress:function(){this._skipRequestsInProgress=!1},_timeStamp:function(){return(new Date).getTime()},range:function(e,r){var n,i,a,s,o,u,l,f;if(this._currentRequestTimeStamp=this._timeStamp(),this._skipRequestsInProgress=!0,e=Ge.min(e||0,this.total()),n=this,i=Ge.max(Ge.floor(e/r),0)*r,a=Ge.min(i+r,n.total()),s=n._findRange(e,Ge.min(e+r,n.total())),s.length){n._pending=t,n._skip=e>n.skip()?Ge.min(a,(n.totalPages()-1)*n.take()):i,n._currentRangeStart=e,n._take=r,o=n.options.serverPaging,u=n.options.serverSorting,l=n.options.serverFiltering,f=n.options.serverAggregates;try{n.options.serverPaging=!0,n._isServerGrouped()||n.group()&&n.group().length||(n.options.serverSorting=!0),n.options.serverFiltering=!0,n.options.serverPaging=!0,n.options.serverAggregates=!0,o&&(n._detachObservableParents(),n._data=s=n._observe(s)),n._process(s)}finally{n.options.serverPaging=o,n.options.serverSorting=u,n.options.serverFiltering=l,n.options.serverAggregates=f}}else r!==t&&(n._rangeExists(i,a)?i<e&&n.prefetch(a,r,function(){n.range(e,r)}):n.prefetch(i,r,function(){e>i&&a<n.total()&&!n._rangeExists(a,Ge.min(a+r,n.total()))?n.prefetch(a,r,function(){n.range(e,r)}):n.range(e,r)}))},_findRange:function(e,r){var n,i,a,o,u,l,f,d,h,c,p,_,v=this,m=v._ranges,y=[],S=v.options,b=S.serverSorting||S.serverPaging||S.serverFiltering||S.serverGrouping||S.serverAggregates;for(i=0,p=m.length;i<p;i++)if(n=m[i],e>=n.start&&e<=n.end){for(c=0,a=i;a<p;a++)if(n=m[a],h=v._flatData(n.data,!0),h.length&&e+c>=n.start&&(l=n.data,f=n.end,b||(_=g(v.group()||[]).concat(s(v.sort()||[])),d=v._queryProcess(n.data,{sort:_,filter:v.filter()}),h=l=d.data,d.total!==t&&(f=d.total)),o=0,e+c>n.start&&(o=e+c-n.start),u=h.length,f>r&&(u-=f-r),c+=u-o,y=v._mergeGroups(y,l,o,u),r<=n.end&&c==r-e))return y;break}return[]},_mergeGroups:function(e,t,r,n){if(this._isServerGrouped()){var i,a=t.toJSON();return e.length&&(i=e[e.length-1]),x(i,a,r,n),e.concat(a)}return e.concat(t.slice(r,n))},skip:function(){var e=this;return e._skip===t?e._page!==t?(e._page-1)*(e.take()||1):t:e._skip},currentRangeStart:function(){return this._currentRangeStart||0},take:function(){return this._take||this._pageSize},_prefetchSuccessHandler:function(e,t,r,n){var i=this,a=i._timeStamp();return function(s){var o,u,l,f=!1,d={start:e,end:t,data:[],timestamp:i._timeStamp()};if(i._dequeueRequest(),i.trigger(Ae,{response:s,type:"read"}),s=i.reader.parse(s),l=i._readData(s),l.length){for(o=0,u=i._ranges.length;o<u;o++)if(i._ranges[o].start===e){f=!0,d=i._ranges[o];break}f||i._ranges.push(d)}d.data=i._observe(l),d.end=d.start+i._flatData(d.data,!0).length,i._ranges.sort(function(e,t){return e.start-t.start}),i._total=i.reader.total(s),(n||a>=i._currentRequestTimeStamp||!i._skipRequestsInProgress)&&(r&&l.length?r():i.trigger(ze,{}))}},prefetch:function(e,t,r){var n=this,i=Ge.min(e+t,n.total()),a={take:t,skip:e,page:e/t+1,pageSize:t,sort:n._sort,filter:n._filter,group:n._group,aggregate:n._aggregate};n._rangeExists(e,i)?r&&r():(clearTimeout(n._timeout),n._timeout=setTimeout(function(){n._queueRequest(a,function(){n.trigger(Te,{type:"read"})?n._dequeueRequest():n.transport.read({data:n._params(a),success:n._prefetchSuccessHandler(e,i,r),error:function(){var e=He.call(arguments);n.error.apply(n,e)}})})},100))},_multiplePrefetch:function(e,t,r){var n=this,i=Ge.min(e+t,n.total()),a={take:t,skip:e,page:e/t+1,pageSize:t,sort:n._sort,filter:n._filter,group:n._group,aggregate:n._aggregate};n._rangeExists(e,i)?r&&r():n.trigger(Te,{type:"read"})||n.transport.read({data:n._params(a),success:n._prefetchSuccessHandler(e,i,r,!0)})},_rangeExists:function(e,t){var r,n,i=this,a=i._ranges;for(r=0,n=a.length;r<n;r++)if(a[r].start<=e&&a[r].end>=t)return!0;return!1},_removeModelFromRanges:function(e){var t,r,n,i,a;for(i=0,a=this._ranges.length;i<a&&(n=this._ranges[i],this._eachItem(n.data,function(n){t=C(n,e),t&&(r=!0)}),!r);i++);},_updateRangesLength:function(){var e,t,r,n,i=0;for(r=0,n=this._ranges.length;r<n;r++)e=this._ranges[r],e.start=e.start-i,t=this._flatData(e.data,!0).length,i=e.end-t,e.end=e.start+t}}),ie={},ie.create=function(t,r,n){var i,a=t.transport?e.extend({},t.transport):null;return a?(a.read=typeof a.read===we?{url:a.read}:a.read,"jsdo"===t.type&&(a.dataSource=n),t.type&&(me.data.transports=me.data.transports||{},me.data.schemas=me.data.schemas||{},me.data.transports[t.type]?de(me.data.transports[t.type])?a=le(!0,{},me.data.transports[t.type],a):i=new me.data.transports[t.type](le(a,{data:r})):me.logToConsole("Unknown DataSource transport type '"+t.type+"'.\nVerify that registration scripts for this type are included after Kendo UI on the page.","warn"),t.schema=le(!0,{},me.data.schemas[t.type],t.schema)),i||(i=ye(a.read)?a:new ee(a))):i=new Z({data:t.data||[]}),i},ne.create=function(e){(ce(e)||e instanceof Ke)&&(e={data:e});var r,n,i,a=e||{},s=a.data,o=a.fields,u=a.table,l=a.select,f={};if(s||!o||a.transport||(u?s=G(u,o):l&&(s=j(l,o),a.group===t&&s[0]&&s[0].optgroup!==t&&(a.group="optgroup"))),me.data.Model&&o&&(!a.schema||!a.schema.model)){for(r=0,n=o.length;r<n;r++)i=o[r],i.type&&(f[i.field]=i);he(f)||(a.schema=le(!0,a.schema,{model:{fields:f}}))}return a.data=s,l=null,a.select=null,u=null,a.table=null,a instanceof ne?a:new ne(a)},ae=W.define({idField:"id",init:function(e){var t=this,r=t.hasChildren||e&&e.hasChildren,n="items",i={};me.data.Model.fn.init.call(t,e),typeof t.children===we&&(n=t.children),i={schema:{data:n,model:{hasChildren:r,id:t.idField,fields:t.fields}}},typeof t.children!==we&&le(i,t.children),i.data=e,r||(r=i.schema.data),typeof r===we&&(r=me.getter(r)),ye(r)&&(t.hasChildren=!!r.call(t,t)),t._childrenOptions=i,t.hasChildren&&t._initChildren(),t._loaded=!(!e||!e._loaded)},_initChildren:function(){var e,t,r,n=this;n.children instanceof se||(e=n.children=new se(n._childrenOptions),t=e.transport,r=t.parameterMap,t.parameterMap=function(e,t){return e[n.idField||"id"]=n.id,r&&(e=r(e,t)),e},e.parent=function(){return n},e.bind(ze,function(e){e.node=e.node||n,n.trigger(ze,e)}),e.bind(Ce,function(e){var t=n.parent();t&&(e.node=e.node||n,t.trigger(Ce,e))}),n._updateChildrenField())},append:function(e){this._initChildren(),this.loaded(!0),this.children.add(e)},hasChildren:!1,level:function(){for(var e=this.parentNode(),t=0;e&&e.parentNode;)t++,e=e.parentNode?e.parentNode():null;return t},_updateChildrenField:function(){var e=this._childrenOptions.schema.data;this[e||"items"]=this.children.data()},_childrenLoaded:function(){this._loaded=!0,this._updateChildrenField()},load:function(){var r,n,i={},a="_query";return this.hasChildren?(this._initChildren(),r=this.children,i[this.idField||"id"]=this.id,this._loaded||(r._data=t,a="read"),r.one(ze,fe(this._childrenLoaded,this)),n=r[a](i)):this.loaded(!0),n||e.Deferred().resolve().promise()},parentNode:function(){var e=this.parent();return e.parent()},loaded:function(e){return e===t?this._loaded:(this._loaded=e,t)},shouldSerialize:function(e){return W.fn.shouldSerialize.call(this,e)&&"children"!==e&&"_loaded"!==e&&"hasChildren"!==e&&"_childrenOptions"!==e}}),se=ne.extend({init:function(e){var t=ae.define({children:e});ne.fn.init.call(this,le(!0,{},{schema:{modelBase:t,model:t}},e)),this._attachBubbleHandlers()},_attachBubbleHandlers:function(){var e=this;e._data.bind(Ce,function(t){e.trigger(Ce,t)})},remove:function(e){var t,r=e.parentNode(),n=this;return r&&r._initChildren&&(n=r.children),t=ne.fn.remove.call(n,e),r&&!n.data().length&&(r.hasChildren=!1),t},success:E("success"),data:E("data"),insert:function(e,t){var r=this.parent();return r&&r._initChildren&&(r.hasChildren=!0,r._initChildren()),ne.fn.insert.call(this,e,t)},_find:function(e,t){var r,n,i,a,s=this._data;if(s){if(i=ne.fn[e].call(this,t))return i;for(s=this._flatData(this._data),r=0,n=s.length;r<n;r++)if(a=s[r].children,a instanceof se&&(i=a[e](t)))return i}},get:function(e){return this._find("get",e)},getByUid:function(e){return this._find("getByUid",e)}}),se.create=function(e){e=e&&e.push?{data:e}:e;var t=e||{},r=t.data,n=t.fields,i=t.list;return r&&r._dataSource?r._dataSource:(r||!n||t.transport||i&&(r=B(i,n)),t.data=r,t instanceof se?t:new se(t))},oe=me.Observable.extend({init:function(e,t,r){me.Observable.fn.init.call(this),this._prefetching=!1,this.dataSource=e,this.prefetch=!r;var n=this;e.bind("change",function(){n._change()}),e.bind("reset",function(){n._reset()}),this._syncWithDataSource(),this.setViewSize(t)},setViewSize:function(e){this.viewSize=e,this._recalculate()},at:function(e){var r=this.pageSize,n=!0;return e>=this.total()?(this.trigger("endreached",{index:e}),null):this.useRanges?this.useRanges?((e<this.dataOffset||e>=this.skip+r)&&(n=this.range(Math.floor(e/r)*r)),e===this.prefetchThreshold&&this._prefetch(),e===this.midPageThreshold?this.range(this.nextMidRange,!0):e===this.nextPageThreshold?this.range(this.nextFullRange):e===this.pullBackThreshold&&this.range(this.offset===this.skip?this.previousMidRange:this.previousFullRange),n?this.dataSource.at(e-this.dataOffset):(this.trigger("endreached",{index:e}),null)):t:this.dataSource.view()[e]},indexOf:function(e){return this.dataSource.data().indexOf(e)+this.dataOffset},total:function(){return parseInt(this.dataSource.total(),10)},next:function(){var e=this,t=e.pageSize,r=e.skip-e.viewSize+t,n=Ge.max(Ge.floor(r/t),0)*t;this.offset=r,this.dataSource.prefetch(n,t,function(){e._goToRange(r,!0)})},range:function(e,t){if(this.offset===e)return!0;var r=this,n=this.pageSize,i=Ge.max(Ge.floor(e/n),0)*n,a=this.dataSource;return t&&(i+=n),a.inRange(e,n)?(this.offset=e,this._recalculate(),this._goToRange(e),!0):!this.prefetch||(a.prefetch(i,n,function(){r.offset=e,r._recalculate(),r._goToRange(e,!0)}),!1)},syncDataSource:function(){var e=this.offset;this.offset=null,this.range(e)},destroy:function(){this.unbind()},_prefetch:function(){var e=this,t=this.pageSize,r=this.skip+t,n=this.dataSource;n.inRange(r,t)||this._prefetching||!this.prefetch||(this._prefetching=!0,this.trigger("prefetching",{skip:r,take:t}),n.prefetch(r,t,function(){e._prefetching=!1,e.trigger("prefetched",{skip:r,take:t})}))},_goToRange:function(e,t){this.offset===e&&(this.dataOffset=e,this._expanding=t,this.dataSource.range(e,this.pageSize),this.dataSource.enableRequestsInProgress())},_reset:function(){this._syncPending=!0},_change:function(){var e=this.dataSource;this.length=this.useRanges?e.lastRange().end:e.view().length,this._syncPending&&(this._syncWithDataSource(),this._recalculate(),this._syncPending=!1,this.trigger("reset",{offset:this.offset})),this.trigger("resize"),this._expanding&&this.trigger("expand"),delete this._expanding},_syncWithDataSource:function(){var e=this.dataSource;this._firstItemUid=e.firstItemUid(),this.dataOffset=this.offset=e.skip()||0,this.pageSize=e.pageSize(),this.useRanges=e.options.serverPaging},_recalculate:function(){var e=this.pageSize,t=this.offset,r=this.viewSize,n=Math.ceil(t/e)*e;this.skip=n,this.midPageThreshold=n+e-1,this.nextPageThreshold=n+r-1,this.prefetchThreshold=n+Math.floor(e/3*2),this.pullBackThreshold=this.offset-1,this.nextMidRange=n+e-r,this.nextFullRange=n,this.previousMidRange=t-r,this.previousFullRange=n-e}}),ue=me.Observable.extend({init:function(e,t){var r=this;me.Observable.fn.init.call(r),this.dataSource=e,this.batchSize=t,this._total=0,this.buffer=new oe(e,3*t),this.buffer.bind({endreached:function(e){r.trigger("endreached",{index:e.index})},prefetching:function(e){r.trigger("prefetching",{skip:e.skip,take:e.take})},prefetched:function(e){r.trigger("prefetched",{skip:e.skip,take:e.take})},reset:function(){r._total=0,r.trigger("reset")},resize:function(){r._total=Math.ceil(this.length/r.batchSize),r.trigger("resize",{total:r.total(),offset:this.offset})}})},syncDataSource:function(){this.buffer.syncDataSource()},at:function(e){var t,r,n=this.buffer,i=e*this.batchSize,a=this.batchSize,s=[];for(n.offset>i&&n.at(n.offset-1),r=0;r<a&&(t=n.at(i+r),null!==t);r++)s.push(t);return s},total:function(){return this._total},destroy:function(){this.buffer.destroy(),this.unbind()}}),le(!0,me.data,{readers:{json:re},Query:a,DataSource:ne,HierarchicalDataSource:se,Node:ae,ObservableObject:J,ObservableArray:Ke,LazyObservableArray:U,LocalTransport:Z,RemoteTransport:ee,Cache:te,DataReader:re,Model:W,Buffer:oe,BatchBuffer:ue})}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,r){(r||t)()});;!function(e,define){define("kendo.userevents.min",["kendo.core.min"],e)}(function(){return function(e,t){function n(e,t){var n=e.x.location,i=e.y.location,o=t.x.location,r=t.y.location,s=n-o,a=i-r;return{center:{x:(n+o)/2,y:(i+r)/2},distance:Math.sqrt(s*s+a*a)}}function i(e){var t,n,i,o=[],r=e.originalEvent,a=e.currentTarget,c=0;if(e.api)o.push({id:2,event:e,target:e.target,currentTarget:e.target,location:e,type:"api"});else if(e.type.match(/touch/))for(n=r?r.changedTouches:[],t=n.length;c<t;c++)i=n[c],o.push({location:i,event:e,target:i.target,currentTarget:a,id:i.identifier,type:"touch"});else o.push(s.pointers||s.msPointers?{location:r,event:e,target:e.target,currentTarget:a,id:r.pointerId,type:"pointer"}:{id:1,event:e,target:e.target,currentTarget:a,location:e,type:"mouse"});return o}function o(e){for(var t=r.eventMap.up.split(" "),n=0,i=t.length;n<i;n++)e(t[n])}var r=window.kendo,s=r.support,a=r.Class,c=r.Observable,u=e.now,h=e.extend,l=s.mobileOS,p=l&&l.android,d=800,f=s.browser.msie?5:0,v="press",g="hold",m="select",_="start",T="move",y="end",x="cancel",M="tap",w="release",E="gesturestart",k="gesturechange",D="gestureend",C="gesturetap",b={api:0,touch:0,mouse:9,pointer:9},A=!s.touch||s.mouseAndTouchPresent,I=a.extend({init:function(e,t){var n=this;n.axis=e,n._updateLocationData(t),n.startLocation=n.location,n.velocity=n.delta=0,n.timeStamp=u()},move:function(e){var t=this,n=e["page"+t.axis],i=u(),o=i-t.timeStamp||1;!n&&p||(t.delta=n-t.location,t._updateLocationData(e),t.initialDelta=n-t.startLocation,t.velocity=t.delta/o,t.timeStamp=i)},_updateLocationData:function(e){var t=this,n=t.axis;t.location=e["page"+n],t.client=e["client"+n],t.screen=e["screen"+n]}}),S=a.extend({init:function(e,t,n){h(this,{x:new I("X",n.location),y:new I("Y",n.location),type:n.type,useClickAsTap:e.useClickAsTap,threshold:e.threshold||b[n.type],userEvents:e,target:t,currentTarget:n.currentTarget,initialTouch:n.target,id:n.id,pressEvent:n,_moved:!1,_finished:!1})},press:function(){this._holdTimeout=setTimeout(e.proxy(this,"_hold"),this.userEvents.minHold),this._trigger(v,this.pressEvent)},_hold:function(){this._trigger(g,this.pressEvent)},move:function(e){var t=this;if(!t._finished){if(t.x.move(e.location),t.y.move(e.location),!t._moved){if(t._withinIgnoreThreshold())return;if(P.current&&P.current!==t.userEvents)return t.dispose();t._start(e)}t._finished||t._trigger(T,e)}},end:function(e){this.endTime=u(),this._finished||(this._finished=!0,this._trigger(w,e),this._moved?this._trigger(y,e):this.useClickAsTap||this._trigger(M,e),clearTimeout(this._holdTimeout),this.dispose())},dispose:function(){var t=this.userEvents,n=t.touches;this._finished=!0,this.pressEvent=null,clearTimeout(this._holdTimeout),n.splice(e.inArray(this,n),1)},skip:function(){this.dispose()},cancel:function(){this.dispose()},isMoved:function(){return this._moved},_start:function(e){clearTimeout(this._holdTimeout),this.startTime=u(),this._moved=!0,this._trigger(_,e)},_trigger:function(e,t){var n=this,i=t.event,o={touch:n,x:n.x,y:n.y,target:n.target,event:i};n.userEvents.notify(e,o)&&i.preventDefault()},_withinIgnoreThreshold:function(){var e=this.x.initialDelta,t=this.y.initialDelta;return Math.sqrt(e*e+t*t)<=this.threshold}}),P=c.extend({init:function(t,n){var i,a,u,l=this,p=r.guid();n=n||{},i=l.filter=n.filter,l.threshold=n.threshold||f,l.minHold=n.minHold||d,l.touches=[],l._maxTouches=n.multiTouch?2:1,l.allowSelection=n.allowSelection,l.captureUpIfMoved=n.captureUpIfMoved,l.useClickAsTap=!n.fastTap&&!s.delayedClick(),l.eventNS=p,t=e(t).handler(l),c.fn.init.call(l),h(l,{element:t,surface:e(n.global&&A?t[0].ownerDocument.documentElement:n.surface||t),stopPropagation:n.stopPropagation,pressed:!1}),l.surface.handler(l).on(r.applyEventMap("move",p),"_move").on(r.applyEventMap("up cancel",p),"_end"),t.on(r.applyEventMap("down",p),i,"_start"),l.useClickAsTap&&t.on(r.applyEventMap("click",p),i,"_click"),(s.pointers||s.msPointers)&&(s.browser.version<11?t.css("-ms-touch-action","pinch-zoom double-tap-zoom"):t.css("touch-action",n.touchAction||"none")),n.preventDragEvent&&t.on(r.applyEventMap("dragstart",p),r.preventDefault),t.on(r.applyEventMap("mousedown",p),i,{root:t},"_select"),l.captureUpIfMoved&&s.eventCapture&&(a=l.surface[0],u=e.proxy(l.preventIfMoving,l),o(function(e){a.addEventListener(e,u,!0)})),l.bind([v,g,M,_,T,y,w,x,E,k,D,C,m],n)},preventIfMoving:function(e){this._isMoved()&&e.preventDefault()},destroy:function(){var e,t=this;t._destroyed||(t._destroyed=!0,t.captureUpIfMoved&&s.eventCapture&&(e=t.surface[0],o(function(n){e.removeEventListener(n,t.preventIfMoving)})),t.element.kendoDestroy(t.eventNS),t.surface.kendoDestroy(t.eventNS),t.element.removeData("handler"),t.surface.removeData("handler"),t._disposeAll(),t.unbind(),delete t.surface,delete t.element,delete t.currentTarget)},capture:function(){P.current=this},cancel:function(){this._disposeAll(),this.trigger(x)},notify:function(e,t){var i=this,o=i.touches;if(this._isMultiTouch()){switch(e){case T:e=k;break;case y:e=D;break;case M:e=C}h(t,{touches:o},n(o[0],o[1]))}return this.trigger(e,h(t,{type:e}))},press:function(e,t,n){this._apiCall("_start",e,t,n)},move:function(e,t){this._apiCall("_move",e,t)},end:function(e,t){this._apiCall("_end",e,t)},_isMultiTouch:function(){return this.touches.length>1},_maxTouchesReached:function(){return this.touches.length>=this._maxTouches},_disposeAll:function(){for(var e=this.touches;e.length>0;)e.pop().dispose()},_isMoved:function(){return e.grep(this.touches,function(e){return e.isMoved()}).length},_select:function(e){this.allowSelection&&!this.trigger(m,{event:e})||e.preventDefault()},_start:function(t){var n,o,r=this,s=0,a=r.filter,c=i(t),u=c.length,h=t.which;if(!(h&&h>1||r._maxTouchesReached()))for(P.current=null,r.currentTarget=t.currentTarget,r.stopPropagation&&t.stopPropagation();s<u&&!r._maxTouchesReached();s++)o=c[s],n=a?e(o.currentTarget):r.element,n.length&&(o=new S(r,n,o),r.touches.push(o),o.press(),r._isMultiTouch()&&r.notify("gesturestart",{}))},_move:function(e){this._eachTouch("move",e)},_end:function(e){this._eachTouch("end",e)},_click:function(t){var n={touch:{initialTouch:t.target,target:e(t.currentTarget),endTime:u(),x:{location:t.pageX,client:t.clientX},y:{location:t.pageY,client:t.clientY}},x:t.pageX,y:t.pageY,target:e(t.currentTarget),event:t,type:"tap"};this.trigger("tap",n)&&t.preventDefault()},_eachTouch:function(e,t){var n,o,r,s,a=this,c={},u=i(t),h=a.touches;for(n=0;n<h.length;n++)o=h[n],c[o.id]=o;for(n=0;n<u.length;n++)r=u[n],s=c[r.id],s&&s[e](r)},_apiCall:function(t,n,i,o){this[t]({api:!0,pageX:n,pageY:i,clientX:n,clientY:i,target:e(o||this.element)[0],stopPropagation:e.noop,preventDefault:e.noop})}});P.defaultThreshold=function(e){f=e},P.minHold=function(e){d=e},r.getTouches=i,r.touchDelta=n,r.UserEvents=P}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(t,define){define("kendo.draganddrop.min",["kendo.core.min","kendo.userevents.min"],t)}(function(){return function(t,e){function n(e,n){try{return t.contains(e,n)||e==n}catch(r){return!1}}function r(t,e){return parseInt(t.css(e),10)||0}function i(t,e){return Math.min(Math.max(t,e.min),e.max)}function o(t,e){var n=D(t),i=_._outerWidth,o=_._outerHeight,a=n.left+r(t,"borderLeftWidth")+r(t,"paddingLeft"),s=n.top+r(t,"borderTopWidth")+r(t,"paddingTop"),l=a+t.width()-i(e,!0),c=s+t.height()-o(e,!0);return{x:{min:a,max:l},y:{min:s,max:c}}}function a(n,r,i){for(var o,a,s=0,l=r&&r.length,c=i&&i.length;n&&n.parentNode;){for(s=0;s<l;s++)if(o=r[s],o.element[0]===n)return{target:o,targetElement:n};for(s=0;s<c;s++)if(a=i[s],t.contains(a.element[0],n)&&x.matchesSelector.call(n,a.options.filter))return{target:a,targetElement:n};n=n.parentNode}return e}function s(t,e){var n,r=e.options.group,i=t[r];if(T.fn.destroy.call(e),i.length>1){for(n=0;n<i.length;n++)if(i[n]==e){i.splice(n,1);break}}else i.length=0,delete t[r]}function l(t){var e,n,r,i=c()[0];return t[0]===i?(n=i.scrollTop,r=i.scrollLeft,{top:n,left:r,bottom:n+b.height(),right:r+b.width()}):(e=t.offset(),e.bottom=e.top+t.height(),e.right=e.left+t.width(),e)}function c(){return t(_.support.browser.chrome?y.body:y.documentElement)}function u(e){var n,r=c();if(!e||e===y.body||e===y.documentElement)return r;for(n=t(e)[0];n&&!_.isScrollable(n)&&n!==y.body;)n=n.parentNode;return n===y.body?r:t(n)}function h(t,e,n){var r={x:0,y:0},i=50;return t-n.left<i?r.x=-(i-(t-n.left)):n.right-t<i&&(r.x=i-(n.right-t)),e-n.top<i?r.y=-(i-(e-n.top)):n.bottom-e<i&&(r.y=i-(n.bottom-e)),r}var d,f,p,g,v,m,_=window.kendo,x=_.support,y=window.document,b=t(window),E=_.Class,T=_.ui.Widget,S=_.Observable,M=_.UserEvents,w=t.proxy,C=t.extend,D=_.getOffset,O={},k={},I={},H=_.elementUnderCursor,W="keyup",z="change",P="dragstart",U="hold",L="drag",A="dragend",N="dragcancel",V="hintDestroyed",B="dragenter",$="dragleave",F="drop",j=S.extend({init:function(e,n){var r=this,i=e[0];r.capture=!1,i.addEventListener?(t.each(_.eventMap.down.split(" "),function(){i.addEventListener(this,w(r._press,r),!0)}),t.each(_.eventMap.up.split(" "),function(){i.addEventListener(this,w(r._release,r),!0)})):(t.each(_.eventMap.down.split(" "),function(){i.attachEvent(this,w(r._press,r))}),t.each(_.eventMap.up.split(" "),function(){i.attachEvent(this,w(r._release,r))})),S.fn.init.call(r),r.bind(["press","release"],n||{})},captureNext:function(){this.capture=!0},cancelCapture:function(){this.capture=!1},_press:function(t){var e=this;e.trigger("press"),e.capture&&t.preventDefault()},_release:function(t){var e=this;e.trigger("release"),e.capture&&(t.preventDefault(),e.cancelCapture())}}),G=S.extend({init:function(e){var n=this;S.fn.init.call(n),n.forcedEnabled=!1,t.extend(n,e),n.scale=1,n.horizontal?(n.measure="offsetWidth",n.scrollSize="scrollWidth",n.axis="x"):(n.measure="offsetHeight",n.scrollSize="scrollHeight",n.axis="y")},makeVirtual:function(){t.extend(this,{virtual:!0,forcedEnabled:!0,_virtualMin:0,_virtualMax:0})},virtualSize:function(t,e){this._virtualMin===t&&this._virtualMax===e||(this._virtualMin=t,this._virtualMax=e,this.update())},outOfBounds:function(t){return t>this.max||t<this.min},forceEnabled:function(){this.forcedEnabled=!0},getSize:function(){return this.container[0][this.measure]},getTotal:function(){return this.element[0][this.scrollSize]},rescale:function(t){this.scale=t},update:function(t){var e=this,n=e.virtual?e._virtualMax:e.getTotal(),r=n*e.scale,i=e.getSize();(0!==n||e.forcedEnabled)&&(e.max=e.virtual?-e._virtualMin:0,e.size=i,e.total=r,e.min=Math.min(e.max,i-r),e.minScale=i/n,e.centerOffset=(r-i)/2,e.enabled=e.forcedEnabled||r>i,t||e.trigger(z,e))}}),Q=S.extend({init:function(t){var e=this;S.fn.init.call(e),e.x=new G(C({horizontal:!0},t)),e.y=new G(C({horizontal:!1},t)),e.container=t.container,e.forcedMinScale=t.minScale,e.maxScale=t.maxScale||100,e.bind(z,t)},rescale:function(t){this.x.rescale(t),this.y.rescale(t),this.refresh()},centerCoordinates:function(){return{x:Math.min(0,-this.x.centerOffset),y:Math.min(0,-this.y.centerOffset)}},refresh:function(){var t=this;t.x.update(),t.y.update(),t.enabled=t.x.enabled||t.y.enabled,t.minScale=t.forcedMinScale||Math.min(t.x.minScale,t.y.minScale),t.fitScale=Math.max(t.x.minScale,t.y.minScale),t.trigger(z)}}),q=S.extend({init:function(t){var e=this;C(e,t),S.fn.init.call(e)},outOfBounds:function(){return this.dimension.outOfBounds(this.movable[this.axis])},dragMove:function(t){var e=this,n=e.dimension,r=e.axis,i=e.movable,o=i[r]+t;n.enabled&&((o<n.min&&t<0||o>n.max&&t>0)&&(t*=e.resistance),i.translateAxis(r,t),e.trigger(z,e))}}),J=E.extend({init:function(e){var n,r,i,o,a=this;C(a,{elastic:!0},e),i=a.elastic?.5:0,o=a.movable,a.x=n=new q({axis:"x",dimension:a.dimensions.x,resistance:i,movable:o}),a.y=r=new q({axis:"y",dimension:a.dimensions.y,resistance:i,movable:o}),a.userEvents.bind(["press","move","end","gesturestart","gesturechange"],{gesturestart:function(t){a.gesture=t,a.offset=a.dimensions.container.offset()},press:function(e){t(e.event.target).closest("a").is("[data-navigate-on-press=true]")&&e.sender.cancel()},gesturechange:function(t){var e,i,s,l=a.gesture,c=l.center,u=t.center,h=t.distance/l.distance,d=a.dimensions.minScale,f=a.dimensions.maxScale;o.scale<=d&&h<1&&(h+=.8*(1-h)),o.scale*h>=f&&(h=f/o.scale),i=o.x+a.offset.left,s=o.y+a.offset.top,e={x:(i-c.x)*h+u.x-i,y:(s-c.y)*h+u.y-s},o.scaleWith(h),n.dragMove(e.x),r.dragMove(e.y),a.dimensions.rescale(o.scale),a.gesture=t,t.preventDefault()},move:function(t){t.event.target.tagName.match(/textarea|input/i)||(n.dimension.enabled||r.dimension.enabled?(n.dragMove(t.x.delta),r.dragMove(t.y.delta),t.preventDefault()):t.touch.skip())},end:function(t){t.preventDefault()}})}}),K=x.transitions.prefix+"Transform";f=x.hasHW3D?function(t,e,n){return"translate3d("+t+"px,"+e+"px,0) scale("+n+")"}:function(t,e,n){return"translate("+t+"px,"+e+"px) scale("+n+")"},p=S.extend({init:function(e){var n=this;S.fn.init.call(n),n.element=t(e),n.element[0].style.webkitTransformOrigin="left top",n.x=0,n.y=0,n.scale=1,n._saveCoordinates(f(n.x,n.y,n.scale))},translateAxis:function(t,e){this[t]+=e,this.refresh()},scaleTo:function(t){this.scale=t,this.refresh()},scaleWith:function(t){this.scale*=t,this.refresh()},translate:function(t){this.x+=t.x,this.y+=t.y,this.refresh()},moveAxis:function(t,e){this[t]=e,this.refresh()},moveTo:function(t){C(this,t),this.refresh()},refresh:function(){var t,e=this,n=e.x,r=e.y;e.round&&(n=Math.round(n),r=Math.round(r)),t=f(n,r,e.scale),t!=e.coordinates&&(_.support.browser.msie&&_.support.browser.version<10?(e.element[0].style.position="absolute",e.element[0].style.left=e.x+"px",e.element[0].style.top=e.y+"px"):e.element[0].style[K]=t,e._saveCoordinates(t),e.trigger(z))},_saveCoordinates:function(t){this.coordinates=t}}),g=T.extend({init:function(t,e){var n,r=this;T.fn.init.call(r,t,e),n=r.options.group,n in k?k[n].push(r):k[n]=[r]},events:[B,$,F],options:{name:"DropTarget",group:"default"},destroy:function(){s(k,this)},_trigger:function(t,e){var n=this,r=O[n.options.group];if(r)return n.trigger(t,C({},e.event,{draggable:r,dropTarget:e.dropTarget}))},_over:function(t){this._trigger(B,t)},_out:function(t){this._trigger($,t)},_drop:function(t){var e=this,n=O[e.options.group];n&&(n.dropped=!e._trigger(F,t))}}),g.destroyGroup=function(t){var e,n=k[t]||I[t];if(n){for(e=0;e<n.length;e++)T.fn.destroy.call(n[e]);n.length=0,delete k[t],delete I[t]}},g._cache=k,v=g.extend({init:function(t,e){var n,r=this;T.fn.init.call(r,t,e),n=r.options.group,n in I?I[n].push(r):I[n]=[r]},destroy:function(){s(I,this)},options:{name:"DropTargetArea",group:"default",filter:null}}),m=T.extend({init:function(t,e){var n=this;T.fn.init.call(n,t,e),n._activated=!1,n.userEvents=new M(n.element,{global:!0,allowSelection:!0,filter:n.options.filter,threshold:n.options.distance,start:w(n._start,n),hold:w(n._hold,n),move:w(n._drag,n),end:w(n._end,n),cancel:w(n._cancel,n),select:w(n._select,n)}),n._afterEndHandler=w(n._afterEnd,n),n._captureEscape=w(n._captureEscape,n)},events:[U,P,L,A,N,V],options:{name:"Draggable",distance:_.support.touch?0:5,group:"default",cursorOffset:null,axis:null,container:null,filter:null,ignore:null,holdToDrag:!1,autoScroll:!1,dropped:!1},cancelHold:function(){this._activated=!1},_captureEscape:function(t){var e=this;t.keyCode===_.keys.ESC&&(e._trigger(N,{event:t}),e.userEvents.cancel())},_updateHint:function(e){var n,r=this,o=r.options,a=r.boundaries,s=o.axis,l=r.options.cursorOffset;l?n={left:e.x.location+l.left,top:e.y.location+l.top}:(r.hintOffset.left+=e.x.delta,r.hintOffset.top+=e.y.delta,n=t.extend({},r.hintOffset)),a&&(n.top=i(n.top,a.y),n.left=i(n.left,a.x)),"x"===s?delete n.top:"y"===s&&delete n.left,r.hint.css(n)},_shouldIgnoreTarget:function(e){var n=this.options.ignore;return n&&t(e).is(n)},_select:function(t){this._shouldIgnoreTarget(t.event.target)||t.preventDefault()},_start:function(n){var r,i=this,a=i.options,s=a.container,l=a.hint;return this._shouldIgnoreTarget(n.touch.initialTouch)||a.holdToDrag&&!i._activated?(i.userEvents.cancel(),e):(i.currentTarget=n.target,i.currentTargetOffset=D(i.currentTarget),l&&(i.hint&&i.hint.stop(!0,!0).remove(),i.hint=_.isFunction(l)?t(l.call(i,i.currentTarget)):l,r=D(i.currentTarget),i.hintOffset=r,i.hint.css({position:"absolute",zIndex:2e4,left:r.left,top:r.top}).appendTo(y.body),i.angular("compile",function(){i.hint.removeAttr("ng-repeat");for(var e=t(n.target);!e.data("$$kendoScope")&&e.length;)e=e.parent();return{elements:i.hint.get(),scopeFrom:e.data("$$kendoScope")}})),O[a.group]=i,i.dropped=!1,s&&(i.boundaries=o(s,i.hint)),t(y).on(W,i._captureEscape),i._trigger(P,n)&&(i.userEvents.cancel(),i._afterEnd()),i.userEvents.capture(),e)},_hold:function(t){this.currentTarget=t.target,this._trigger(U,t)?this.userEvents.cancel():this._activated=!0},_drag:function(e){var n,r;e.preventDefault(),n=this._elementUnderCursor(e),this.options.autoScroll&&this._cursorElement!==n&&(this._scrollableParent=u(n),this._cursorElement=n),this._lastEvent=e,this._processMovement(e,n),this.options.autoScroll&&this._scrollableParent[0]&&(r=h(e.x.location,e.y.location,l(this._scrollableParent)),this._scrollCompenstation=t.extend({},this.hintOffset),this._scrollVelocity=r,0===r.y&&0===r.x?(clearInterval(this._scrollInterval),this._scrollInterval=null):this._scrollInterval||(this._scrollInterval=setInterval(t.proxy(this,"_autoScroll"),50))),this.hint&&this._updateHint(e)},_processMovement:function(n,r){this._withDropTarget(r,function(r,i){if(!r)return d&&(d._trigger($,C(n,{dropTarget:t(d.targetElement)})),d=null),e;if(d){if(i===d.targetElement)return;d._trigger($,C(n,{dropTarget:t(d.targetElement)}))}r._trigger(B,C(n,{dropTarget:t(i)})),d=C(r,{targetElement:i})}),this._trigger(L,C(n,{dropTarget:d,elementUnderCursor:r}))},_autoScroll:function(){var t,e,n,r,i,o,a,s,l=this._scrollableParent[0],u=this._scrollVelocity,h=this._scrollCompenstation;l&&(t=this._elementUnderCursor(this._lastEvent),this._processMovement(this._lastEvent,t),r=l===c()[0],r?(e=y.body.scrollHeight>b.height(),n=y.body.scrollWidth>b.width()):(e=l.offsetHeight<=l.scrollHeight,n=l.offsetWidth<=l.scrollWidth),i=l.scrollTop+u.y,o=e&&i>0&&i<l.scrollHeight,a=l.scrollLeft+u.x,s=n&&a>0&&a<l.scrollWidth,o&&(l.scrollTop+=u.y),s&&(l.scrollLeft+=u.x),r&&(s||o)&&(o&&(h.top+=u.y),s&&(h.left+=u.x),this.hint.css(h)))},_end:function(e){this._withDropTarget(this._elementUnderCursor(e),function(n,r){n&&(n._drop(C({},e,{dropTarget:t(r)})),d=null)}),this._cancel(this._trigger(A,e))},_cancel:function(t){var e=this;e._scrollableParent=null,this._cursorElement=null,clearInterval(this._scrollInterval),e._activated=!1,e.hint&&!e.dropped?setTimeout(function(){e.hint.stop(!0,!0),t?e._afterEndHandler():e.hint.animate(e.currentTargetOffset,"fast",e._afterEndHandler)},0):e._afterEnd()},_trigger:function(t,e){var n=this;return n.trigger(t,C({},e.event,{x:e.x,y:e.y,currentTarget:n.currentTarget,initialTarget:e.touch?e.touch.initialTouch:null,dropTarget:e.dropTarget,elementUnderCursor:e.elementUnderCursor}))},_elementUnderCursor:function(t){var e=H(t),r=this.hint;return r&&n(r[0],e)&&(r.hide(),e=H(t),e||(e=H(t)),r.show()),e},_withDropTarget:function(t,e){var n,r=this.options.group,i=k[r],o=I[r];(i&&i.length||o&&o.length)&&(n=a(t,i,o),n?e(n.target,n.targetElement):e())},destroy:function(){var t=this;T.fn.destroy.call(t),t._afterEnd(),t.userEvents.destroy(),this._scrollableParent=null,this._cursorElement=null,clearInterval(this._scrollInterval),t.currentTarget=null},_afterEnd:function(){var e=this;e.hint&&e.hint.remove(),delete O[e.options.group],e.trigger("destroy"),e.trigger(V),t(y).off(W,e._captureEscape)}}),_.ui.plugin(g),_.ui.plugin(v),_.ui.plugin(m),_.TapCapture=j,_.containerBoundaries=o,C(_.ui,{Pane:J,PaneDimensions:Q,Movable:p}),_.ui.Draggable.utils={autoScrollVelocity:h,scrollableViewPort:l,findScrollableParent:u}}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,n){(n||e)()});;!function(t,define){define("kendo.fx.min",["kendo.core.min"],t)}(function(){return function(t,e){function i(t){return parseInt(t,10)}function r(t,e){return i(t.css(e))}function n(t){var e,i=[];for(e in t)i.push(e);return i}function s(t){for(var e in t)L.indexOf(e)!=-1&&Q.indexOf(e)==-1&&delete t[e];return t}function o(t,e){var i,r,n,s,o=[],a={};for(r in e)i=r.toLowerCase(),s=H&&L.indexOf(i)!=-1,!E.hasHW3D&&s&&Q.indexOf(i)==-1?delete e[r]:(n=e[r],s?o.push(r+"("+n+")"):a[r]=n);return o.length&&(a[at]=o.join(" ")),a}function a(t,e){var r,n,s;return H?(r=t.css(at),r==J?"scale"==e?1:0:(n=r.match(RegExp(e+"\\s*\\(([\\d\\w\\.]+)")),s=0,n?s=i(n[1]):(n=r.match(S)||[0,0,0,0,0],e=e.toLowerCase(),V.test(e)?s=parseFloat(n[3]/n[2]):"translatey"==e?s=parseFloat(n[4]/n[2]):"scale"==e?s=parseFloat(n[2]):"rotate"==e&&(s=parseFloat(Math.atan2(n[2],n[1])))),s)):parseFloat(t.css(e))}function c(t){return t.charAt(0).toUpperCase()+t.substring(1)}function l(t,e){var i=h.extend(e),r=i.prototype.directions;T[c(t)]=i,T.Element.prototype[t]=function(t,e,r,n){return new i(this.element,t,e,r,n)},N(r,function(e,r){T.Element.prototype[t+c(r)]=function(t,e,n){return new i(this.element,r,t,e,n)}})}function d(t,i,r,n){l(t,{directions:v,startValue:function(t){return this._startValue=t,this},endValue:function(t){return this._endValue=t,this},shouldHide:function(){return this._shouldHide},prepare:function(t,s){var o,a,c=this,l="out"===this._direction,d=c.element.data(i),u=!(isNaN(d)||d==r);o=u?d:e!==this._startValue?this._startValue:l?r:n,a=e!==this._endValue?this._endValue:l?n:r,this._reverse?(t[i]=a,s[i]=o):(t[i]=o,s[i]=a),c._shouldHide=s[i]===n}})}function u(t,e){var i=C.directions[e].vertical,r=t[i?Y:X]()/2+"px";return _[e].replace("$size",r)}var f,p,h,m,v,x,_,g,y,k,b,w,C=window.kendo,T=C.effects,N=t.each,P=t.extend,z=t.proxy,E=C.support,R=E.browser,H=E.transforms,D=E.transitions,O={scale:0,scalex:0,scaley:0,scale3d:0},F={translate:0,translatex:0,translatey:0,translate3d:0},I=e!==document.documentElement.style.zoom&&!H,S=/matrix3?d?\s*\(.*,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?/i,A=/^(-?[\d\.\-]+)?[\w\s]*,?\s*(-?[\d\.\-]+)?[\w\s]*/i,V=/translatex?$/i,q=/(zoom|fade|expand)(\w+)/,M=/(zoom|fade|expand)/,$=/[xy]$/i,L=["perspective","rotate","rotatex","rotatey","rotatez","rotate3d","scale","scalex","scaley","scalez","scale3d","skew","skewx","skewy","translate","translatex","translatey","translatez","translate3d","matrix","matrix3d"],Q=["rotate","scale","scalex","scaley","skew","skewx","skewy","translate","translatex","translatey","matrix"],W={rotate:"deg",scale:"",skew:"px",translate:"px"},j=H.css,B=Math.round,U="",G="px",J="none",K="auto",X="width",Y="height",Z="hidden",tt="origin",et="abortId",it="overflow",rt="translate",nt="position",st="completeCallback",ot=j+"transition",at=j+"transform",ct=j+"backface-visibility",lt=j+"perspective",dt="1500px",ut="perspective("+dt+")",ft={left:{reverse:"right",property:"left",transition:"translatex",vertical:!1,modifier:-1},right:{reverse:"left",property:"left",transition:"translatex",vertical:!1,modifier:1},down:{reverse:"up",property:"top",transition:"translatey",vertical:!0,modifier:1},up:{reverse:"down",property:"top",transition:"translatey",vertical:!0,modifier:-1},top:{reverse:"bottom"},bottom:{reverse:"top"},"in":{reverse:"out",modifier:-1},out:{reverse:"in",modifier:1},vertical:{reverse:"vertical"},horizontal:{reverse:"horizontal"}};C.directions=ft,P(t.fn,{kendoStop:function(t,e){return D?T.stopQueue(this,t||!1,e||!1):this.stop(t,e)}}),H&&!D&&(N(Q,function(i,r){t.fn[r]=function(i){if(e===i)return a(this,r);var n=t(this)[0],s=r+"("+i+W[r.replace($,"")]+")";return n.style.cssText.indexOf(at)==-1?t(this).css(at,s):n.style.cssText=n.style.cssText.replace(RegExp(r+"\\(.*?\\)","i"),s),this},t.fx.step[r]=function(e){t(e.elem)[r](e.now)}}),f=t.fx.prototype.cur,t.fx.prototype.cur=function(){return Q.indexOf(this.prop)!=-1?parseFloat(t(this.elem)[this.prop]()):f.apply(this,arguments)}),C.toggleClass=function(t,e,i,r){return e&&(e=e.split(" "),D&&(i=P({exclusive:"all",duration:400,ease:"ease-out"},i),t.css(ot,i.exclusive+" "+i.duration+"ms "+i.ease),setTimeout(function(){t.css(ot,"").css(Y)},i.duration)),N(e,function(e,i){t.toggleClass(i,r)})),t},C.parseEffects=function(t,e){var i={};return"string"==typeof t?N(t.split(" "),function(t,r){var n=!M.test(r),s=r.replace(q,function(t,e,i){return e+":"+i.toLowerCase()}),o=s.split(":"),a=o[1],c={};o.length>1&&(c.direction=e&&n?ft[a].reverse:a),i[o[0]]=c}):N(t,function(t){var r=this.direction;r&&e&&!M.test(t)&&(this.direction=ft[r].reverse),i[t]=this}),i},D&&P(T,{transition:function(e,i,r){var s,a,c,l,d=0,u=e.data("keys")||[];r=P({duration:200,ease:"ease-out",complete:null,exclusive:"all"},r),c=!1,l=function(){c||(c=!0,a&&(clearTimeout(a),a=null),e.removeData(et).dequeue().css(ot,"").css(ot),r.complete.call(e))},r.duration=t.fx?t.fx.speeds[r.duration]||r.duration:r.duration,s=o(e,i),t.merge(u,n(s)),e.data("keys",t.unique(u)).height(),e.css(ot,r.exclusive+" "+r.duration+"ms "+r.ease).css(ot),e.css(s).css(at),D.event&&(e.one(D.event,l),0!==r.duration&&(d=500)),a=setTimeout(l,r.duration+d),e.data(et,a),e.data(st,l)},stopQueue:function(t,e,i){var r,n=t.data("keys"),s=!i&&n,o=t.data(st);return s&&(r=C.getComputedStyles(t[0],n)),o&&o(),s&&t.css(r),t.removeData("keys").stop(e)}}),p=C.Class.extend({init:function(t,e){var i=this;i.element=t,i.effects=[],i.options=e,i.restore=[]},run:function(e){var i,r,n,a,c,l,d,u=this,f=e.length,p=u.element,h=u.options,m=t.Deferred(),v={},x={};for(u.effects=e,m.then(t.proxy(u,"complete")),p.data("animating",!0),r=0;r<f;r++)for(i=e[r],i.setReverse(h.reverse),i.setOptions(h),u.addRestoreProperties(i.restore),i.prepare(v,x),c=i.children(),n=0,l=c.length;n<l;n++)c[n].duration(h.duration).run();for(d in h.effects)P(x,h.effects[d].properties);for(p.is(":visible")||P(v,{display:p.data("olddisplay")||"block"}),H&&!h.reset&&(a=p.data("targetTransform"),a&&(v=P(a,v))),v=o(p,v),H&&!D&&(v=s(v)),p.css(v).css(at),r=0;r<f;r++)e[r].setup();return h.init&&h.init(),p.data("targetTransform",x),T.animate(p,x,P({},h,{complete:m.resolve})),m.promise()},stop:function(){t(this.element).kendoStop(!0,!0)},addRestoreProperties:function(t){for(var e,i=this.element,r=0,n=t.length;r<n;r++)e=t[r],this.restore.push(e),i.data(e)||i.data(e,i.css(e))},restoreCallback:function(){var t,e,i,r=this.element;for(t=0,e=this.restore.length;t<e;t++)i=this.restore[t],r.css(i,r.data(i))},complete:function(){var e=this,i=0,r=e.element,n=e.options,s=e.effects,o=s.length;for(r.removeData("animating").dequeue(),n.hide&&r.data("olddisplay",r.css("display")).hide(),this.restoreCallback(),I&&!H&&setTimeout(t.proxy(this,"restoreCallback"),0);i<o;i++)s[i].teardown();n.completeCallback&&n.completeCallback(r)}}),T.promise=function(t,e){var i,r,n,s=[],o=new p(t,e),a=C.parseEffects(e.effects);e.effects=a;for(n in a)i=T[c(n)],i&&(r=new i(t,a[n].direction),s.push(r));s[0]?o.run(s):(t.is(":visible")||t.css({display:t.data("olddisplay")||"block"}).css("display"),e.init&&e.init(),t.dequeue(),o.complete())},P(T,{animate:function(i,n,o){var a=o.transition!==!1;delete o.transition,D&&"transition"in T&&a?T.transition(i,n,o):H?i.animate(s(n),{queue:!1,show:!1,hide:!1,duration:o.duration,complete:o.complete}):i.each(function(){var i=t(this),s={};N(L,function(t,o){var a,c,l,d,u,f,p,h=n?n[o]+" ":null;h&&(c=n,o in O&&n[o]!==e?(a=h.match(A),H&&P(c,{scale:+a[0]})):o in F&&n[o]!==e&&(l=i.css(nt),d="absolute"==l||"fixed"==l,i.data(rt)||(d?i.data(rt,{top:r(i,"top")||0,left:r(i,"left")||0,bottom:r(i,"bottom"),right:r(i,"right")}):i.data(rt,{top:r(i,"marginTop")||0,left:r(i,"marginLeft")||0})),u=i.data(rt),a=h.match(A),a&&(f=o==rt+"y"?0:+a[1],p=o==rt+"y"?+a[1]:+a[2],d?(isNaN(u.right)?isNaN(f)||P(c,{left:u.left+f}):isNaN(f)||P(c,{right:u.right-f}),isNaN(u.bottom)?isNaN(p)||P(c,{top:u.top+p}):isNaN(p)||P(c,{bottom:u.bottom-p})):(isNaN(f)||P(c,{marginLeft:u.left+f}),isNaN(p)||P(c,{marginTop:u.top+p})))),!H&&"scale"!=o&&o in c&&delete c[o],c&&P(s,c))}),R.msie&&delete s.scale,i.animate(s,{queue:!1,show:!1,hide:!1,duration:o.duration,complete:o.complete})})}}),T.animatedPromise=T.promise,h=C.Class.extend({init:function(t,e){var i=this;i.element=t,i._direction=e,i.options={},i._additionalEffects=[],i.restore||(i.restore=[])},reverse:function(){return this._reverse=!0,this.run()},play:function(){return this._reverse=!1,this.run()},add:function(t){return this._additionalEffects.push(t),this},direction:function(t){return this._direction=t,this},duration:function(t){return this._duration=t,this},compositeRun:function(){var t=this,e=new p(t.element,{reverse:t._reverse,duration:t._duration}),i=t._additionalEffects.concat([t]);return e.run(i)},run:function(){if(this._additionalEffects&&this._additionalEffects[0])return this.compositeRun();var e,i,r=this,n=r.element,a=0,c=r.restore,l=c.length,d=t.Deferred(),u={},f={},p=r.children(),h=p.length;for(d.then(t.proxy(r,"_complete")),n.data("animating",!0),a=0;a<l;a++)e=c[a],n.data(e)||n.data(e,n.css(e));for(a=0;a<h;a++)p[a].duration(r._duration).run();return r.prepare(u,f),n.is(":visible")||P(u,{display:n.data("olddisplay")||"block"}),H&&(i=n.data("targetTransform"),i&&(u=P(i,u))),u=o(n,u),H&&!D&&(u=s(u)),n.css(u).css(at),r.setup(),n.data("targetTransform",f),T.animate(n,f,{duration:r._duration,complete:d.resolve}),d.promise()},stop:function(){var e=0,i=this.children(),r=i.length;for(e=0;e<r;e++)i[e].stop();return t(this.element).kendoStop(!0,!0),this},restoreCallback:function(){var t,e,i,r=this.element;for(t=0,e=this.restore.length;t<e;t++)i=this.restore[t],r.css(i,r.data(i))},_complete:function(){var e=this,i=e.element;i.removeData("animating").dequeue(),e.restoreCallback(),e.shouldHide()&&i.data("olddisplay",i.css("display")).hide(),I&&!H&&setTimeout(t.proxy(e,"restoreCallback"),0),e.teardown()},setOptions:function(t){P(!0,this.options,t)},children:function(){return[]},shouldHide:t.noop,setup:t.noop,prepare:t.noop,teardown:t.noop,directions:[],setReverse:function(t){return this._reverse=t,this}}),m=["left","right","up","down"],v=["in","out"],l("slideIn",{directions:m,divisor:function(t){return this.options.divisor=t,this},prepare:function(t,e){var i,r=this,n=r.element,s=C._outerWidth,o=C._outerHeight,a=ft[r._direction],c=-a.modifier*(a.vertical?o(n):s(n)),l=c/(r.options&&r.options.divisor||1)+G,d="0px";r._reverse&&(i=t,t=e,e=i),H?(t[a.transition]=l,e[a.transition]=d):(t[a.property]=l,e[a.property]=d)}}),l("tile",{directions:m,init:function(t,e,i){h.prototype.init.call(this,t,e),this.options={previous:i}},previousDivisor:function(t){return this.options.previousDivisor=t,this},children:function(){var t=this,e=t._reverse,i=t.options.previous,r=t.options.previousDivisor||1,n=t._direction,s=[C.fx(t.element).slideIn(n).setReverse(e)];return i&&s.push(C.fx(i).slideIn(ft[n].reverse).divisor(r).setReverse(!e)),s}}),d("fade","opacity",1,0),d("zoom","scale",1,.01),l("slideMargin",{prepare:function(t,e){var i,r=this,n=r.element,s=r.options,o=n.data(tt),a=s.offset,c=r._reverse;c||null!==o||n.data(tt,parseFloat(n.css("margin-"+s.axis))),i=n.data(tt)||0,e["margin-"+s.axis]=c?i:i+a}}),l("slideTo",{prepare:function(t,e){var i=this,r=i.element,n=i.options,s=n.offset.split(","),o=i._reverse;H?(e.translatex=o?0:s[0],e.translatey=o?0:s[1]):(e.left=o?0:s[0],e.top=o?0:s[1]),r.css("left")}}),l("expand",{directions:["horizontal","vertical"],restore:[it],prepare:function(t,i){var r=this,n=r.element,s=r.options,o=r._reverse,a="vertical"===r._direction?Y:X,c=n[0].style[a],l=n.data(a),d=parseFloat(l||c),u=B(n.css(a,K)[a]());t.overflow=Z,d=s&&s.reset?u||d:d||u,i[a]=(o?0:d)+G,t[a]=(o?d:0)+G,l===e&&n.data(a,c)},shouldHide:function(){return this._reverse},teardown:function(){var t=this,e=t.element,i="vertical"===t._direction?Y:X,r=e.data(i);r!=K&&r!==U||setTimeout(function(){e.css(i,K).css(i)},0)}}),x={position:"absolute",marginLeft:0,marginTop:0,scale:1},l("transfer",{init:function(t,e){this.element=t,this.options={target:e},this.restore=[]},setup:function(){this.element.appendTo(document.body)},prepare:function(t,e){var i=this,r=i.element,n=T.box(r),s=T.box(i.options.target),o=a(r,"scale"),c=T.fillScale(s,n),l=T.transformOrigin(s,n);P(t,x),e.scale=1,r.css(at,"scale(1)").css(at),r.css(at,"scale("+o+")"),t.top=n.top,t.left=n.left,t.transformOrigin=l.x+G+" "+l.y+G,i._reverse?t.scale=c:e.scale=c}}),_={top:"rect(auto auto $size auto)",bottom:"rect($size auto auto auto)",left:"rect(auto $size auto auto)",right:"rect(auto auto auto $size)"},g={top:{start:"rotatex(0deg)",end:"rotatex(180deg)"},bottom:{start:"rotatex(-180deg)",end:"rotatex(0deg)"},left:{start:"rotatey(0deg)",end:"rotatey(-180deg)"},right:{start:"rotatey(180deg)",end:"rotatey(0deg)"}},l("turningPage",{directions:m,init:function(t,e,i){h.prototype.init.call(this,t,e),this._container=i},prepare:function(t,e){var i=this,r=i._reverse,n=r?ft[i._direction].reverse:i._direction,s=g[n];t.zIndex=1,i._clipInHalf&&(t.clip=u(i._container,C.directions[n].reverse)),t[ct]=Z,e[at]=ut+(r?s.start:s.end),t[at]=ut+(r?s.end:s.start)},setup:function(){this._container.append(this.element)},face:function(t){return this._face=t,this},shouldHide:function(){var t=this,e=t._reverse,i=t._face;return e&&!i||!e&&i},clipInHalf:function(t){return this._clipInHalf=t,this},temporary:function(){return this.element.addClass("temp-page"),this}}),l("staticPage",{directions:m,init:function(t,e,i){h.prototype.init.call(this,t,e),this._container=i},restore:["clip"],prepare:function(t,e){var i=this,r=i._reverse?ft[i._direction].reverse:i._direction;t.clip=u(i._container,r),t.opacity=.999,e.opacity=1},shouldHide:function(){var t=this,e=t._reverse,i=t._face;return e&&!i||!e&&i},face:function(t){return this._face=t,this}}),l("pageturn",{directions:["horizontal","vertical"],init:function(t,e,i,r){h.prototype.init.call(this,t,e),this.options={},this.options.face=i,this.options.back=r},children:function(){var t,e=this,i=e.options,r="horizontal"===e._direction?"left":"top",n=C.directions[r].reverse,s=e._reverse,o=i.face.clone(!0).removeAttr("id"),a=i.back.clone(!0).removeAttr("id"),c=e.element;return s&&(t=r,r=n,n=t),[C.fx(i.face).staticPage(r,c).face(!0).setReverse(s),C.fx(i.back).staticPage(n,c).setReverse(s),C.fx(o).turningPage(r,c).face(!0).clipInHalf(!0).temporary().setReverse(s),C.fx(a).turningPage(n,c).clipInHalf(!0).temporary().setReverse(s)]},prepare:function(t,e){t[lt]=dt,t.transformStyle="preserve-3d",t.opacity=.999,e.opacity=1},teardown:function(){this.element.find(".temp-page").remove()}}),l("flip",{directions:["horizontal","vertical"],init:function(t,e,i,r){h.prototype.init.call(this,t,e),this.options={},this.options.face=i,this.options.back=r},children:function(){var t,e=this,i=e.options,r="horizontal"===e._direction?"left":"top",n=C.directions[r].reverse,s=e._reverse,o=e.element;return s&&(t=r,r=n,n=t),[C.fx(i.face).turningPage(r,o).face(!0).setReverse(s),C.fx(i.back).turningPage(n,o).setReverse(s)]},prepare:function(t){t[lt]=dt,t.transformStyle="preserve-3d"}}),y=!E.mobileOS.android,k=".km-touch-scrollbar, .km-actionsheet-wrapper",l("replace",{_before:t.noop,_after:t.noop,init:function(e,i,r){h.prototype.init.call(this,e),this._previous=t(i),this._transitionClass=r},duration:function(){throw Error("The replace effect does not support duration setting; the effect duration may be customized through the transition class rule")},beforeTransition:function(t){return this._before=t,this},afterTransition:function(t){return this._after=t,this},_both:function(){return t().add(this._element).add(this._previous)},_containerClass:function(){var t=this._direction,e="k-fx k-fx-start k-fx-"+this._transitionClass;return t&&(e+=" k-fx-"+t),this._reverse&&(e+=" k-fx-reverse"),e},complete:function(e){if(!(!this.deferred||e&&t(e.target).is(k))){var i=this.container;i.removeClass("k-fx-end").removeClass(this._containerClass()).off(D.event,this.completeProxy),this._previous.hide().removeClass("k-fx-current"),this.element.removeClass("k-fx-next"),y&&i.css(it,""),this.isAbsolute||this._both().css(nt,""),this.deferred.resolve(),delete this.deferred}},run:function(){if(this._additionalEffects&&this._additionalEffects[0])return this.compositeRun();var e,i=this,r=i.element,n=i._previous,s=r.parents().filter(n.parents()).first(),o=i._both(),a=t.Deferred(),c=r.css(nt);return s.length||(s=r.parent()),this.container=s,this.deferred=a,this.isAbsolute="absolute"==c,this.isAbsolute||o.css(nt,"absolute"),y&&(e=s.css(it),s.css(it,"hidden")),D?(r.addClass("k-fx-hidden"),s.addClass(this._containerClass()),this.completeProxy=t.proxy(this,"complete"),s.on(D.event,this.completeProxy),C.animationFrame(function(){r.removeClass("k-fx-hidden").addClass("k-fx-next"),n.css("display","").addClass("k-fx-current"),i._before(n,r),C.animationFrame(function(){s.removeClass("k-fx-start").addClass("k-fx-end"),i._after(n,r)})})):this.complete(),a.promise()},stop:function(){this.complete()}}),b=C.Class.extend({init:function(){var t=this;t._tickProxy=z(t._tick,t),t._started=!1},tick:t.noop,done:t.noop,onEnd:t.noop,onCancel:t.noop,start:function(){this.enabled()&&(this.done()?this.onEnd():(this._started=!0,C.animationFrame(this._tickProxy)))},enabled:function(){return!0},cancel:function(){this._started=!1,this.onCancel()},_tick:function(){var t=this;t._started&&(t.tick(),t.done()?(t._started=!1,t.onEnd()):C.animationFrame(t._tickProxy))}}),w=b.extend({init:function(t){var e=this;P(e,t),b.fn.init.call(e)},done:function(){return this.timePassed()>=this.duration},timePassed:function(){return Math.min(this.duration,new Date-this.startDate)},moveTo:function(t){var e=this,i=e.movable;e.initial=i[e.axis],e.delta=t.location-e.initial,e.duration="number"==typeof t.duration?t.duration:300,e.tick=e._easeProxy(t.ease),e.startDate=new Date,e.start()},_easeProxy:function(t){var e=this;return function(){e.movable.moveAxis(e.axis,t(e.timePassed(),e.initial,e.delta,e.duration))}}}),P(w,{easeOutExpo:function(t,e,i,r){return t==r?e+i:i*(-Math.pow(2,-10*t/r)+1)+e},easeOutBack:function(t,e,i,r,n){return n=1.70158,i*((t=t/r-1)*t*((n+1)*t+n)+1)+e}}),T.Animation=b,T.Transition=w,T.createEffect=l,T.box=function(e){e=t(e);var i=e.offset();return i.width=C._outerWidth(e),i.height=C._outerHeight(e),i},T.transformOrigin=function(t,e){var i=(t.left-e.left)*e.width/(e.width-t.width),r=(t.top-e.top)*e.height/(e.height-t.height);return{x:isNaN(i)?0:i,y:isNaN(r)?0:r}},T.fillScale=function(t,e){return Math.min(t.width/e.width,t.height/e.height)},T.fitScale=function(t,e){return Math.max(t.width/e.width,t.height/e.height)}}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()});;!function(e,define){define("kendo.mobile.scroller.min",["kendo.fx.min","kendo.draganddrop.min"],e)}(function(){return function(e,i){var n=window.kendo,t=n.mobile,s=n.effects,o=t.ui,l=e.proxy,a=e.extend,r=o.Widget,c=n.Class,h=n.ui.Movable,u=n.ui.Pane,d=n.ui.PaneDimensions,m=s.Transition,f=s.Animation,p=Math.abs,v=500,b=.7,x=.96,y=10,T=55,w=.5,g=5,_="km-scroller-release",E="km-scroller-refresh",C="pull",k="change",S="resize",z="scroll",M=2,A=f.extend({init:function(e){var i=this;f.fn.init.call(i),a(i,e),i.userEvents.bind("gestureend",l(i.start,i)),i.tapCapture.bind("press",l(i.cancel,i))},enabled:function(){return this.movable.scale<this.dimensions.minScale},done:function(){return this.dimensions.minScale-this.movable.scale<.01},tick:function(){var e=this.movable;e.scaleWith(1.1),this.dimensions.rescale(e.scale)},onEnd:function(){var e=this.movable;e.scaleTo(this.dimensions.minScale),this.dimensions.rescale(e.scale)}}),O=f.extend({init:function(e){var i=this;f.fn.init.call(i),a(i,e,{transition:new m({axis:e.axis,movable:e.movable,onEnd:function(){i._end()}})}),i.tapCapture.bind("press",function(){i.cancel()}),i.userEvents.bind("end",l(i.start,i)),i.userEvents.bind("gestureend",l(i.start,i)),i.userEvents.bind("tap",l(i.onEnd,i))},onCancel:function(){this.transition.cancel()},freeze:function(e){var i=this;i.cancel(),i._moveTo(e)},onEnd:function(){var e=this;e.paneAxis.outOfBounds()?e._snapBack():e._end()},done:function(){return p(this.velocity)<1},start:function(e){var i,n=this;n.dimension.enabled&&(n.paneAxis.outOfBounds()?n._snapBack():(i=e.touch.id===M?0:e.touch[n.axis].velocity,n.velocity=Math.max(Math.min(i*n.velocityMultiplier,T),-T),n.tapCapture.captureNext(),f.fn.start.call(n)))},tick:function(){var e=this,i=e.dimension,n=e.paneAxis.outOfBounds()?w:e.friction,t=e.velocity*=n,s=e.movable[e.axis]+t;!e.elastic&&i.outOfBounds(s)&&(s=Math.max(Math.min(s,i.max),i.min),e.velocity=0),e.movable.moveAxis(e.axis,s)},_end:function(){this.tapCapture.cancelCapture(),this.end()},_snapBack:function(){var e=this,i=e.dimension,n=e.movable[e.axis]>i.max?i.max:i.min;e._moveTo(n)},_moveTo:function(e){this.transition.moveTo({location:e,duration:v,ease:m.easeOutExpo})}}),H=f.extend({init:function(e){var i=this;n.effects.Animation.fn.init.call(this),a(i,e,{origin:{},destination:{},offset:{}})},tick:function(){this._updateCoordinates(),this.moveTo(this.origin)},done:function(){return p(this.offset.y)<g&&p(this.offset.x)<g},onEnd:function(){this.moveTo(this.destination),this.callback&&this.callback.call()},setCoordinates:function(e,i){this.offset={},this.origin=e,this.destination=i},setCallback:function(e){e&&n.isFunction(e)?this.callback=e:e=i},_updateCoordinates:function(){this.offset={x:(this.destination.x-this.origin.x)/4,y:(this.destination.y-this.origin.y)/4},this.origin={y:this.origin.y+this.offset.y,x:this.origin.x+this.offset.x}}}),B=c.extend({init:function(i){var n=this,t="x"===i.axis,s=e('<div class="km-touch-scrollbar km-'+(t?"horizontal":"vertical")+'-scrollbar" />');a(n,i,{element:s,elementSize:0,movable:new h(s),scrollMovable:i.movable,alwaysVisible:i.alwaysVisible,size:t?"width":"height"}),n.scrollMovable.bind(k,l(n.refresh,n)),n.container.append(s),i.alwaysVisible&&n.show()},refresh:function(){var e=this,i=e.axis,n=e.dimension,t=n.size,s=e.scrollMovable,o=t/n.total,l=Math.round(-s[i]*o),a=Math.round(t*o);o>=1?this.element.css("display","none"):this.element.css("display",""),l+a>t?a=t-l:l<0&&(a+=l,l=0),e.elementSize!=a&&(e.element.css(e.size,a+"px"),e.elementSize=a),e.movable.moveAxis(i,l)},show:function(){this.element.css({opacity:b,visibility:"visible"})},hide:function(){this.alwaysVisible||this.element.css({opacity:0})}}),R=r.extend({init:function(t,s){var o,c,m,f,v,b,x,y,T,w=this;return r.fn.init.call(w,t,s),t=w.element,(w._native=w.options.useNative&&n.support.hasNativeScrolling)?(t.addClass("km-native-scroller").prepend('<div class="km-scroll-header"/>'),a(w,{scrollElement:t,fixedContainer:t.children().first()}),i):(t.css("overflow","hidden").addClass("km-scroll-wrapper").wrapInner('<div class="km-scroll-container"/>').prepend('<div class="km-scroll-header"/>'),o=t.children().eq(1),c=new n.TapCapture(t),m=new h(o),f=new d({element:o,container:t,forcedEnabled:w.options.zoom}),v=this.options.avoidScrolling,b=new n.UserEvents(t,{touchAction:"pan-y",fastTap:!0,allowSelection:!0,preventDragEvent:!0,captureUpIfMoved:!0,multiTouch:w.options.zoom,start:function(i){f.refresh();var n=p(i.x.velocity),t=p(i.y.velocity),s=2*n>=t,o=e.contains(w.fixedContainer[0],i.event.target),l=2*t>=n;!o&&!v(i)&&w.enabled&&(f.x.enabled&&s||f.y.enabled&&l)?b.capture():b.cancel()}}),x=new u({movable:m,dimensions:f,userEvents:b,elastic:w.options.elastic}),y=new A({movable:m,dimensions:f,userEvents:b,tapCapture:c}),T=new H({moveTo:function(e){w.scrollTo(e.x,e.y)}}),m.bind(k,function(){w.scrollTop=-m.y,w.scrollLeft=-m.x,w.trigger(z,{scrollTop:w.scrollTop,scrollLeft:w.scrollLeft})}),w.options.mousewheelScrolling&&t.on("DOMMouseScroll mousewheel",l(this,"_wheelScroll")),a(w,{movable:m,dimensions:f,zoomSnapBack:y,animatedScroller:T,userEvents:b,pane:x,tapCapture:c,pulled:!1,enabled:!0,scrollElement:o,scrollTop:0,scrollLeft:0,fixedContainer:t.children().first()}),w._initAxis("x"),w._initAxis("y"),w._wheelEnd=function(){w._wheel=!1,w.userEvents.end(0,w._wheelY)},f.refresh(),w.options.pullToRefresh&&w._initPullToRefresh(),i)},_wheelScroll:function(e){this._wheel||(this._wheel=!0,this._wheelY=0,this.userEvents.press(0,this._wheelY)),clearTimeout(this._wheelTimeout),this._wheelTimeout=setTimeout(this._wheelEnd,50);var i=n.wheelDeltaY(e);i&&(this._wheelY+=i,this.userEvents.move(0,this._wheelY)),e.preventDefault()},makeVirtual:function(){this.dimensions.y.makeVirtual()},virtualSize:function(e,i){this.dimensions.y.virtualSize(e,i)},height:function(){return this.dimensions.y.size},scrollHeight:function(){return this.scrollElement[0].scrollHeight},scrollWidth:function(){return this.scrollElement[0].scrollWidth},options:{name:"Scroller",zoom:!1,pullOffset:140,visibleScrollHints:!1,elastic:!0,useNative:!1,mousewheelScrolling:!0,avoidScrolling:function(){return!1},pullToRefresh:!1,messages:{pullTemplate:"Pull to refresh",releaseTemplate:"Release to refresh",refreshTemplate:"Refreshing"}},events:[C,z,S],_resize:function(){this._native||this.contentResized()},setOptions:function(e){var i=this;r.fn.setOptions.call(i,e),e.pullToRefresh&&i._initPullToRefresh()},reset:function(){this._native?this.scrollElement.scrollTop(0):(this.movable.moveTo({x:0,y:0}),this._scale(1))},contentResized:function(){this.dimensions.refresh(),this.pane.x.outOfBounds()&&this.movable.moveAxis("x",this.dimensions.x.min),this.pane.y.outOfBounds()&&this.movable.moveAxis("y",this.dimensions.y.min)},zoomOut:function(){var e=this.dimensions;e.refresh(),this._scale(e.fitScale),this.movable.moveTo(e.centerCoordinates())},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},scrollTo:function(e,i){this._native?(this.scrollElement.scrollLeft(p(e)),this.scrollElement.scrollTop(p(i))):(this.dimensions.refresh(),this.movable.moveTo({x:e,y:i}))},animatedScrollTo:function(e,i,n){var t,s;this._native?this.scrollTo(e,i):(t={x:this.movable.x,y:this.movable.y},s={x:e,y:i},this.animatedScroller.setCoordinates(t,s),this.animatedScroller.setCallback(n),this.animatedScroller.start())},pullHandled:function(){var e=this;e.refreshHint.removeClass(E),e.hintContainer.html(e.pullTemplate({})),e.yinertia.onEnd(),e.xinertia.onEnd(),e.userEvents.cancel()},destroy:function(){r.fn.destroy.call(this),this.userEvents&&this.userEvents.destroy()},_scale:function(e){this.dimensions.rescale(e),this.movable.scaleTo(e)},_initPullToRefresh:function(){var e=this;e.dimensions.y.forceEnabled(),e.pullTemplate=n.template(e.options.messages.pullTemplate),e.releaseTemplate=n.template(e.options.messages.releaseTemplate),e.refreshTemplate=n.template(e.options.messages.refreshTemplate),e.scrollElement.prepend('<span class="km-scroller-pull"><span class="km-icon"></span><span class="km-loading-left"></span><span class="km-loading-right"></span><span class="km-template">'+e.pullTemplate({})+"</span></span>"),e.refreshHint=e.scrollElement.children().first(),e.hintContainer=e.refreshHint.children(".km-template"),e.pane.y.bind("change",l(e._paneChange,e)),e.userEvents.bind("end",l(e._dragEnd,e))},_dragEnd:function(){var e=this;e.pulled&&(e.pulled=!1,e.refreshHint.removeClass(_).addClass(E),e.hintContainer.html(e.refreshTemplate({})),e.yinertia.freeze(e.options.pullOffset/2),e.trigger("pull"))},_paneChange:function(){var e=this;e.movable.y/w>e.options.pullOffset?e.pulled||(e.pulled=!0,e.refreshHint.removeClass(E).addClass(_),e.hintContainer.html(e.releaseTemplate({}))):e.pulled&&(e.pulled=!1,e.refreshHint.removeClass(_),e.hintContainer.html(e.pullTemplate({})))},_initAxis:function(e){var i=this,n=i.movable,t=i.dimensions[e],s=i.tapCapture,o=i.pane[e],l=new B({axis:e,movable:n,dimension:t,container:i.element,alwaysVisible:i.options.visibleScrollHints});t.bind(k,function(){l.refresh()}),o.bind(k,function(){l.show()}),i[e+"inertia"]=new O({axis:e,paneAxis:o,movable:n,tapCapture:s,userEvents:i.userEvents,dimension:t,elastic:i.options.elastic,friction:i.options.friction||x,velocityMultiplier:i.options.velocityMultiplier||y,end:function(){l.hide(),i.trigger("scrollEnd",{axis:e,scrollTop:i.scrollTop,scrollLeft:i.scrollLeft})}})}});o.plugin(R)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,i,n){(n||i)()});;!function(e,define){define("kendo.virtuallist.min",["kendo.data.min"],e)}(function(){return function(e,t){function i(e){return e[e.length-1]}function n(e){return e instanceof Array?e:[e]}function s(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function r(e,t,i){return Math.ceil(e*t/i)}function a(e,t,i){var n=document.createElement(i||"div");return t&&(n.className=t),e.appendChild(n),n}function o(){var t,i=e('<div class="k-popup"><ul class="k-list"><li class="k-item"><li></ul></div>');return i.css({position:"absolute",left:"-200000px",visibility:"hidden"}),i.appendTo(document.body),t=parseFloat(v.getComputedStyles(i.find(".k-item")[0],["line-height"])["line-height"]),i.remove(),t}function l(e,t,i){return{down:e*i,up:e*(t-1-i)}}function u(e,t){var i=(e.listScreens-1-e.threshold)*t,n=e.threshold*t;return function(e,t,s){return t>s?t-e.top<i:0===e.top||t-e.top>n}}function h(e,t){return function(i){return t(e.scrollTop,i)}}function c(e){return function(t,i){return e(t.items,t.index,i),t}}function d(e,t){v.support.browser.msie&&v.support.browser.version<10?e.style.top=t+"px":(e.style.webkitTransform="translateY("+t+"px)",e.style.transform="translateY("+t+"px)")}function f(t,i){return function(n,s){for(var r=0,a=n.length;r<a;r++)t(n[r],s[r],i),s[r].item&&this.trigger(P,{item:e(n[r]),data:s[r].item,ns:v.ui})}}function p(e,t){var i;return t>0?(i=e.splice(0,t),e.push.apply(e,i)):(i=e.splice(t,-t),e.unshift.apply(e,i)),i}function g(i,n,s){var r=s.template;i=e(i),n.item||(r=s.placeholderTemplate),this.angular("cleanup",function(){return{elements:[i]}}),i.attr("data-uid",n.item?n.item.uid:"").attr("data-offset-index",n.index).html(r(n.item||{})),i.toggleClass(G,n.current),i.toggleClass(L,n.selected),i.toggleClass("k-first",n.newGroup),i.toggleClass("k-loading-item",!n.item),0!==n.index&&n.newGroup&&e("<div class="+B+"></div>").appendTo(i).html(s.groupTemplate(n.group)),n.top!==t&&d(i[0],n.top),this.angular("compile",function(){return{elements:[i],data:[{dataItem:n.item,group:n.group,newGroup:n.newGroup}]}})}function _(e,t){var i,n,s,r,a=t.length,o=e.length,l=[],u=[];if(o)for(s=0;s<o;s++){for(i=e[s],n=!1,r=0;r<a;r++)if(i===t[r]){n=!0,l.push({index:s,item:i});break}n||u.push(i)}return{changed:l,unchanged:u}}function m(e){return e&&"resolved"!==e.state()}var v=window.kendo,I=v.ui,x=I.Widget,y=I.DataBoundWidget,D=e.proxy,S="k-virtual-wrap",C="k-virtual-list",b="k-virtual-content",k="k-list",T="k-group-header",w="k-virtual-item",H="k-item",V="k-height-container",B="k-group",L="k-state-selected",G="k-state-focused",M="k-state-hover",F="change",E="click",N="listBound",P="itemChange",R="activate",A="deactivate",z=".VirtualList",j=y.extend({init:function(t,i){var s=this;s.bound(!1),s._fetching=!1,x.fn.init.call(s,t,i),s.options.itemHeight||(s.options.itemHeight=o()),i=s.options,s.element.addClass(k+" "+C).attr("role","listbox"),s.content=s.element.wrap("<div unselectable='on' class='"+b+"'></div>").parent(),s.wrapper=s.content.wrap("<div class='"+S+"'></div>").parent(),s.header=s.content.before("<div class='"+T+"'></div>").prev(),s.element.on("mouseenter"+z,"li:not(.k-loading-item)",function(){e(this).addClass(M)}).on("mouseleave"+z,"li",function(){e(this).removeClass(M)}),s._values=n(s.options.value),s._selectedDataItems=[],s._selectedIndexes=[],s._rangesList={},s._promisesList=[],s._optionID=v.guid(),s._templates(),s.setDataSource(i.dataSource),s.content.on("scroll"+z,v.throttle(function(){s._renderItems(),s._triggerListBound()},i.delay)),s._selectable()},options:{name:"VirtualList",autoBind:!0,delay:100,height:null,listScreens:4,threshold:.5,itemHeight:null,oppositeBuffer:1,type:"flat",selectable:!1,value:[],dataValueField:null,template:"#:data#",placeholderTemplate:"loading...",groupTemplate:"#:data#",fixedGroupTemplate:"fixed header template",mapValueTo:"index",valueMapper:null},events:[F,E,N,P,R,A],setOptions:function(e){x.fn.setOptions.call(this,e),this._selectProxy&&this.options.selectable===!1?this.element.off(E,"."+w,this._selectProxy):!this._selectProxy&&this.options.selectable&&this._selectable(),this._templates(),this.refresh()},items:function(){return e(this._items)},destroy:function(){this.wrapper.off(z),this.dataSource.unbind(F,this._refreshHandler),x.fn.destroy.call(this)},setDataSource:function(t){var i,n=this,s=t||{};s=e.isArray(s)?{data:s}:s,s=v.data.DataSource.create(s),n.dataSource?(n.dataSource.unbind(F,n._refreshHandler),n._clean(),n.bound(!1),n._deferValueSet=!0,i=n.value(),n.value([]),n.mute(function(){n.value(i)})):n._refreshHandler=e.proxy(n.refresh,n),n.dataSource=s.bind(F,n._refreshHandler),n.setDSFilter(s.filter()),0!==s.view().length?n.refresh():n.options.autoBind&&s.fetch()},skip:function(){return this.dataSource.currentRangeStart()},_triggerListBound:function(){var e=this,t=e.skip();e.bound()&&!e._selectingValue&&e._skip!==t&&(e._skip=t,e.trigger(N))},_getValues:function(t){var i=this._valueGetter;return e.map(t,function(e){return i(e)})},refresh:function(e){var t,i=this,n=e&&e.action,s="itemchange"===n,r=this.isFiltered();i._mute||(i._deferValueSet=!1,i._fetching?(i._renderItems&&i._renderItems(!0),i._triggerListBound()):(r&&i.focus(0),i._createList(),n||!i._values.length||r||i.options.skipUpdateOnBind?(i.bound(!0),i._triggerListBound()):(i._selectingValue=!0,i.value(i._values,!0).done(function(){i.bound(!0),i._selectingValue=!1,i._triggerListBound()}))),(s||"remove"===n)&&(t=_(i._selectedDataItems,e.items),t.changed.length&&(s?i.trigger("selectedItemChange",{items:t.changed}):i.value(i._getValues(t.unchanged)))),i._fetching=!1)},removeAt:function(e){return this._selectedIndexes.splice(e,1),this._values.splice(e,1),{position:e,dataItem:this._selectedDataItems.splice(e,1)[0]}},setValue:function(e){this._values=n(e)},value:function(i,s){var r,a=this;return i===t?a._values.slice():(null===i&&(i=[]),i=n(i),a._valueDeferred&&"resolved"!==a._valueDeferred.state()||(a._valueDeferred=e.Deferred()),r="multiple"===a.options.selectable&&a.select().length&&i.length,!r&&i.length||a.select(-1),a._values=i,(a.bound()&&!a._mute&&!a._deferValueSet||s)&&a._prefetchByValue(i),a._valueDeferred)},_prefetchByValue:function(e){var i,n,r,a=this,o=a._dataView,l=a._valueGetter,u=a.options.mapValueTo,h=!1,c=[];for(n=0;n<e.length;n++)for(r=0;r<o.length;r++)i=o[r].item,i&&(h=s(i)?e[n]===i:e[n]===l(i),h&&c.push(o[r].index));return c.length===e.length?(a._values=[],a.select(c),t):("function"==typeof a.options.valueMapper?a.options.valueMapper({value:"multiple"===this.options.selectable?e:e[0],success:function(e){"index"===u?a.mapValueToIndex(e):"dataItem"===u&&a.mapValueToDataItem(e)}}):a.select([-1]),t)},mapValueToIndex:function(e){if(e=e===t||e===-1||null===e?[]:n(e),e.length){var i=this._deselect([]).removed;i.length&&this._triggerChange(i,[])}else e=[-1];this.select(e)},mapValueToDataItem:function(i){var s,r,a;if(i=i===t||null===i?[]:n(i),i.length){for(s=e.map(this._selectedDataItems,function(e,t){return{index:t,dataItem:e}}),r=e.map(i,function(e,t){return{index:t,dataItem:e}}),this._selectedDataItems=i,this._selectedIndexes=[],a=0;a<this._selectedDataItems.length;a++)this._selectedIndexes.push(t);this._triggerChange(s,r),this._valueDeferred&&this._valueDeferred.resolve()}else this.select([-1])},deferredRange:function(t){var i=this.dataSource,n=this.itemCount,s=this._rangesList,r=e.Deferred(),a=[],o=Math.floor(t/n)*n,l=Math.ceil(t/n)*n,u=l===o?[l]:[o,l];return e.each(u,function(t,r){var o,l=r+n,u=s[r];u&&u.end===l?o=u.deferred:(o=e.Deferred(),s[r]={end:l,deferred:o},i._multiplePrefetch(r,n,function(){o.resolve()})),a.push(o)}),e.when.apply(e,a).then(function(){r.resolve()}),r},prefetch:function(t){var i=this,n=this.itemCount,s=!i._promisesList.length;return m(i._activeDeferred)||(i._activeDeferred=e.Deferred(),i._promisesList=[]),e.each(t,function(e,t){i._promisesList.push(i.deferredRange(i._getSkip(t,n)))}),s&&e.when.apply(e,i._promisesList).done(function(){i._promisesList=[],i._activeDeferred.resolve()}),i._activeDeferred},_findDataItem:function(e,t){var i,n;if("group"===this.options.type)for(n=0;n<e.length;n++){if(i=e[n].items,!(i.length<=t))return i[t];t-=i.length}return e[t]},_getRange:function(e,t){return this.dataSource._findRange(e,Math.min(e+t,this.dataSource.total()))},dataItemByIndex:function(e){var t=this.itemCount,i=this._getSkip(e,t),n=this._getRange(i,t);return this._findDataItem(n,[e-i])},selectedDataItems:function(){return this._selectedDataItems.slice()},scrollWith:function(e){this.content.scrollTop(this.content.scrollTop()+e)},scrollTo:function(e){this.content.scrollTop(e)},scrollToIndex:function(e){this.scrollTo(e*this.options.itemHeight)},focus:function(n){var s,r,a,o,l,u,h=this.options.itemHeight,c=this._optionID,d=!0;if(n===t)return o=this.element.find("."+G),o.length?o:null;if("function"==typeof n)for(a=this.dataSource.flatView(),l=0;l<a.length;l++)if(n(a[l])){n=l;break}return n instanceof Array&&(n=i(n)),isNaN(n)?(s=e(n),r=parseInt(e(s).attr("data-offset-index"),10)):(r=n,s=this._getElementByIndex(r)),r===-1?(this.element.find("."+G).removeClass(G),this._focusedIndex=t,t):(s.length?(s.hasClass(G)&&(d=!1),this._focusedIndex!==t&&(o=this._getElementByIndex(this._focusedIndex),o.removeClass(G).removeAttr("id"),d&&this.trigger(A)),this._focusedIndex=r,s.addClass(G).attr("id",c),u=this._getElementLocation(r),"top"===u?this.scrollTo(r*h):"bottom"===u?this.scrollTo(r*h+h-this._screenHeight):"outScreen"===u&&this.scrollTo(r*h),d&&this.trigger(R)):(this._focusedIndex=r,this.items().removeClass(G),this.scrollToIndex(r)),t)},focusIndex:function(){return this._focusedIndex},focusFirst:function(){this.scrollTo(0),this.focus(0)},focusLast:function(){var e=this.dataSource.total();this.scrollTo(this.heightContainer.offsetHeight),this.focus(e)},focusPrev:function(){var e,t=this._focusedIndex;return!isNaN(t)&&t>0?(t-=1,this.focus(t),e=this.focus(),e&&e.hasClass("k-loading-item")&&(t+=1,this.focus(t)),t):(t=this.dataSource.total()-1,this.focus(t),t)},focusNext:function(){var e,t=this._focusedIndex,i=this.dataSource.total()-1;return!isNaN(t)&&t<i?(t+=1,this.focus(t),e=this.focus(),e&&e.hasClass("k-loading-item")&&(t-=1,this.focus(t)),t):(t=0,this.focus(t),t)},_triggerChange:function(e,t){e=e||[],t=t||[],(e.length||t.length)&&this.trigger(F,{removed:e,added:t})},select:function(n){var s,r,a,o,l,u=this,h="multiple"!==u.options.selectable,c=m(u._activeDeferred),d=this.isFiltered(),f=[];return n===t?u._selectedIndexes.slice():(u._selectDeferred&&"resolved"!==u._selectDeferred.state()||(u._selectDeferred=e.Deferred()),s=u._getIndecies(n),r=h&&!d&&i(s)===i(this._selectedIndexes),f=u._deselectCurrentValues(s),f.length||!s.length||r?(u._triggerChange(f),u._valueDeferred&&u._valueDeferred.resolve(),u._selectDeferred.resolve().promise()):(1===s.length&&s[0]===-1&&(s=[]),o=u._deselect(s),f=o.removed,s=o.indices,h&&(c=!1,s.length&&(s=[i(s)])),l=function(){var e=u._select(s);u.focus(s),u._triggerChange(f,e),u._valueDeferred&&u._valueDeferred.resolve(),u._selectDeferred.resolve()},a=u.prefetch(s),c||(a?a.done(l):l()),u._selectDeferred.promise()))},bound:function(e){return e===t?this._listCreated:(this._listCreated=e,t)},mute:function(e){this._mute=!0,D(e(),this),this._mute=!1},setDSFilter:function(t){this._lastDSFilter=e.extend({},t)},isFiltered:function(){return this._lastDSFilter||this.setDSFilter(this.dataSource.filter()),!v.data.Query.compareFilters(this.dataSource.filter(),this._lastDSFilter)},skipUpdate:e.noop,_getElementByIndex:function(t){return this.items().filter(function(i,n){return t===parseInt(e(n).attr("data-offset-index"),10)})},_getElementByDataItem:function(t){var i,n,r,a=this._dataView,o=this._valueGetter;for(r=0;r<a.length;r++)if(n=a[r].item&&s(a[r].item)?a[r].item===t:o(a[r].item)===o(t)){i=a[r];break}return i?this._getElementByIndex(i.index):e()},_clean:function(){this.result=t,this._lastScrollTop=t,this._skip=t,e(this.heightContainer).remove(),this.heightContainer=t,this.element.empty()},_height:function(){var e=!!this.dataSource.view().length,t=this.options.height,i=this.options.itemHeight,n=this.dataSource.total();return e?t/i>n&&(t=n*i):t=0,t},setScreenHeight:function(){var e=this._height();this.content.height(e),this._screenHeight=e},screenHeight:function(){return this._screenHeight},_getElementLocation:function(e){var t,i=this.content.scrollTop(),n=this._screenHeight,s=this.options.itemHeight,r=e*s,a=r+s,o=i+n;return t=r===i-s||a>i&&r<i?"top":r===o||r<o&&o<a?"bottom":r>=i&&r<=i+(n-s)?"inScreen":"outScreen"},_templates:function(){var e,t=this.options,i={template:t.template,placeholderTemplate:t.placeholderTemplate,groupTemplate:t.groupTemplate,fixedGroupTemplate:t.fixedGroupTemplate};for(e in i)"function"!=typeof i[e]&&(i[e]=v.template(i[e]||""));this.templates=i},_generateItems:function(e,t){for(var i,n=[],s=this.options.itemHeight+"px";t-- >0;)i=document.createElement("li"),i.tabIndex=-1,i.className=w+" "+H,i.setAttribute("role","option"),i.style.height=s,i.style.minHeight=s,e.appendChild(i),n.push(i);return n},_saveInitialRanges:function(){var t,i=this.dataSource._ranges,n=e.Deferred();for(n.resolve(),this._rangesList={},t=0;t<i.length;t++)this._rangesList[i[t].start]={end:i[t].end,deferred:n}},_createList:function(){var t=this,i=t.content.get(0),n=t.options,s=t.dataSource;t.bound()&&t._clean(),t._saveInitialRanges(),t._buildValueGetter(),t.setScreenHeight(),t.itemCount=r(t._screenHeight,n.listScreens,n.itemHeight),t.itemCount>s.total()&&(t.itemCount=s.total()),t._items=t._generateItems(t.element[0],t.itemCount),t._setHeight(n.itemHeight*s.total()),t.options.type=(s.group()||[]).length?"group":"flat","flat"===t.options.type?t.header.hide():t.header.show(),t.getter=t._getter(function(){t._renderItems(!0)}),t._onScroll=function(e,i){var n=t._listItems(t.getter);return t._fixedHeader(e,n(e,i))},t._renderItems=t._whenChanged(h(i,t._onScroll),c(t._reorderList(t._items,e.proxy(g,t)))),t._renderItems(),t._calculateGroupPadding(t._screenHeight)},_setHeight:function(e){var t,i,n=this.heightContainer;if(n?t=n.offsetHeight:n=this.heightContainer=a(this.content[0],V),e!==t)for(n.innerHTML="";e>0;)i=Math.min(e,25e4),a(n).style.height=i+"px",e-=i},_getter:function(){var e=null,t=this.dataSource,i=t.skip(),n=this.options.type,s=this.itemCount,r={};return t.pageSize()<s&&this.mute(function(){t.pageSize(s)}),function(a,o){var l,u,h,c,d,f,p,g,_=this;if(t.inRange(o,s)){if(i!==o&&this.mute(function(){t.range(o,s),i=o}),"group"===n){if(!r[o])for(u=r[o]=[],h=t.view(),c=0,d=h.length;c<d;c++)for(f=h[c],p=0,g=f.items.length;p<g;p++)u.push({item:f.items[p],group:f.value});l=r[o][a-o]}else l=t.view()[a-o];return l}return e!==o&&(e=o,i=o,_._getterDeferred&&_._getterDeferred.reject(),_._getterDeferred=_.deferredRange(o),_._getterDeferred.then(function(){var e=_._indexConstraint(_.content[0].scrollTop);_._getterDeferred=null,o<=e&&e<=o+s&&(_._fetching=!0,t.range(o,s))})),null}},_fixedHeader:function(e,t){var i,n=this.currentVisibleGroup,s=this.options.itemHeight,r=Math.floor((e-t.top)/s),a=t.items[r];return a&&a.item&&(i=a.group,i!==n&&(this.header[0].innerHTML=i||"",this.currentVisibleGroup=i)),t},_itemMapper:function(e,t,i){var n,r=this.options.type,a=this.options.itemHeight,o=this._focusedIndex,l=!1,u=!1,h=!1,c=null,d=!1,f=this._valueGetter;if("group"===r&&(e&&(h=0===t||this._currentGroup&&this._currentGroup!==e.group,this._currentGroup=e.group),c=e?e.group:null,e=e?e.item:null),!this.isFiltered()&&i.length&&e)for(n=0;n<i.length;n++)if(d=s(e)?i[n]===e:i[n]===f(e)){i.splice(n,1),l=!0;break}return o===t&&(u=!0),{item:e?e:null,group:c,newGroup:h,selected:l,current:u,index:t,top:t*a}},_range:function(e){var t,i,n,s=this.itemCount,r=this._values.slice(),a=[];for(this._view={},this._currentGroup=null,i=e,n=e+s;i<n;i++)t=this._itemMapper(this.getter(i,e),i,r),a.push(t),this._view[t.index]=t;return this._dataView=a,a},_getDataItemsCollection:function(e,t){var i=this._range(this._listIndex(e,t));return{index:i.length?i[0].index:0,top:i.length?i[0].top:0,items:i}},_listItems:function(){var t=this._screenHeight,i=this.options,n=u(i,t);return e.proxy(function(e,t){var i=this.result,s=this._lastScrollTop;return!t&&i&&n(i,e,s)||(i=this._getDataItemsCollection(e,s)),this._lastScrollTop=e,this.result=i,i},this)},_whenChanged:function(e,t){var i;return function(n){var s=e(n);s!==i&&(i=s,t(s,n))}},_reorderList:function(t,i){var n=this,s=t.length,r=-(1/0);return i=e.proxy(f(i,this.templates),this),function(e,a,o){var l,u,h=a-r;o||Math.abs(h)>=s?(l=t,u=e):(l=p(t,h),u=h>0?e.slice(-h):e.slice(0,-h)),i(l,u,n.bound()),r=a}},_bufferSizes:function(){var e=this.options;return l(this._screenHeight,e.listScreens,e.oppositeBuffer)},_indexConstraint:function(e){var t=this.itemCount,i=this.options.itemHeight,n=this.dataSource.total();return Math.min(Math.max(n-t,0),Math.max(0,Math.floor(e/i)))},_listIndex:function(e,t){var i,n=this._bufferSizes();return i=e-(e>t?n.down:n.up),this._indexConstraint(i)},_selectable:function(){this.options.selectable&&(this._selectProxy=e.proxy(this,"_clickHandler"),this.element.on(E+z,"."+w,this._selectProxy))},getElementIndex:function(e){return e instanceof jQuery?parseInt(e.attr("data-offset-index"),10):t},_getIndecies:function(e){var t,i,n,s=[];if("function"==typeof e)for(t=this.dataSource.flatView(),i=0;i<t.length;i++)if(e(t[i])){s.push(i);break}return"number"==typeof e&&s.push(e),n=this.getElementIndex(e),isNaN(n)||s.push(n),e instanceof Array&&(s=e),s},_deselect:function(i){var n,r,a,o,l,u,h,c=[],d=this._selectedIndexes,f=this._selectedDataItems,p=0,g=this.options.selectable,_=0,m=this._valueGetter,v=null;if(i=i.slice(),g!==!0&&i.length){if("multiple"===g)for(u=0;u<i.length;u++){if(v=null,p=e.inArray(i[u],d),r=this.dataItemByIndex(i[u]),p===-1&&r)for(h=0;h<f.length;h++)o=s(r)?f[h]===r:m(f[h])===m(r),o&&(a=this._getElementByIndex(i[u]),v=this._deselectSingleItem(a,h,i[u],_));else n=d[p],n!==t&&(a=this._getElementByIndex(n),v=this._deselectSingleItem(a,p,n,_));v&&(i.splice(u,1),c.push(v),_++,u--)}}else{for(l=0;l<d.length;l++)d[l]!==t?this._getElementByIndex(d[l]).removeClass(L):f[l]&&this._getElementByDataItem(f[l]).removeClass(L),c.push({index:d[l],position:l,dataItem:f[l]});this._values=[],this._selectedDataItems=[],this._selectedIndexes=[]}return{indices:i,removed:c}},_deselectSingleItem:function(e,t,i,n){var s;if(e.hasClass("k-state-selected"))return e.removeClass(L),this._values.splice(t,1),this._selectedIndexes.splice(t,1),s=this._selectedDataItems.splice(t,1)[0],{index:i,position:t+n,dataItem:s}},_deselectCurrentValues:function(t){var i,n,s,r,a=this.element[0].children,o=this._values,l=[],u=0;if("multiple"!==this.options.selectable||!this.isFiltered())return[];if(t[0]===-1)return e(a).removeClass("k-state-selected"),l=e.map(this._selectedDataItems.slice(0),function(e,t){return{dataItem:e,position:t}}),this._selectedIndexes=[],this._selectedDataItems=[],this._values=[],l;for(;u<t.length;u++){for(s=-1,n=t[u],i=this._valueGetter(this.dataItemByIndex(n)),r=0;r<o.length;r++)if(i==o[r]){s=r;break}s>-1&&(l.push(this.removeAt(s)),e(a[n]).removeClass("k-state-selected"))}return l},_getSkip:function(e,t){var i=e<t?1:Math.floor(e/t)+1;return(i-1)*t},_select:function(t){var i,n,r=this,a="multiple"!==this.options.selectable,o=this.dataSource,l=this.itemCount,u=this._valueGetter,h=[];return a&&(r._selectedIndexes=[],r._selectedDataItems=[],r._values=[]),n=o.skip(),e.each(t,function(e,t){var a=r._getSkip(t,l);r.mute(function(){o.range(a,l),i=r._findDataItem(o.view(),[t-a]),r._selectedIndexes.push(t),r._selectedDataItems.push(i),r._values.push(s(i)?i:u(i)),h.push({index:t,dataItem:i}),r._getElementByIndex(t).addClass(L),o.range(n,l)})}),h},_clickHandler:function(t){var i=e(t.currentTarget);!t.isDefaultPrevented()&&i.attr("data-uid")&&this.trigger(E,{item:i})},_buildValueGetter:function(){this._valueGetter=v.getter(this.options.dataValueField)},_calculateGroupPadding:function(e){var t=this.items().first(),i=this.header,n=0;i[0]&&"none"!==i[0].style.display&&("auto"!==e&&(n=v.support.scrollbar()),n+=parseFloat(t.css("border-right-width"),10)+parseFloat(t.children(".k-group").css("right"),10),i.css("padding-right",n))}});v.ui.VirtualList=j,v.ui.plugin(j)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()});;!function(e,define){define("kendo.popup.min",["kendo.core.min"],e)}(function(){return function(e,t){function o(t,o){return!(!t||!o)&&(t===o||e.contains(t,o))}var n=window.kendo,i=n.ui,s=i.Widget,r=n.support,a=n.getOffset,l=n._outerWidth,p=n._outerHeight,d="open",c="close",f="deactivate",u="activate",m="center",h="left",g="right",w="top",v="bottom",_="absolute",k="hidden",y="body",b="location",z="position",C="visible",x="effects",T="k-state-active",P="k-state-border",E=/k-state-border-(\w+)/,S=".k-picker-wrap, .k-dropdown-wrap, .k-link",O="down",R=e(document.documentElement),I=e(window),A="scroll",D=r.transitions.css,H=D+"transform",L=e.extend,W=".kendoPopup",j=["font-size","font-family","font-stretch","font-style","font-weight","line-height"],M=s.extend({init:function(t,o){var i,a=this;o=o||{},o.isRtl&&(o.origin=o.origin||v+" "+g,o.position=o.position||w+" "+g),s.fn.init.call(a,t,o),t=a.element,o=a.options,a.collisions=o.collision?o.collision.split(" "):[],a.downEvent=n.applyEventMap(O,n.guid()),1===a.collisions.length&&a.collisions.push(a.collisions[0]),i=e(a.options.anchor).closest(".k-popup,.k-group").filter(":not([class^=km-])"),o.appendTo=e(e(o.appendTo)[0]||i[0]||document.body),a.element.hide().addClass("k-popup k-group k-reset").toggleClass("k-rtl",!!o.isRtl).css({position:_}).appendTo(o.appendTo).on("mouseenter"+W,function(){a._hovered=!0}).on("mouseleave"+W,function(){a._hovered=!1}),a.wrapper=e(),o.animation===!1&&(o.animation={open:{effects:{}},close:{hide:!0,effects:{}}}),L(o.animation.open,{complete:function(){a.wrapper.css({overflow:C}),a._activated=!0,a._trigger(u)}}),L(o.animation.close,{complete:function(){a._animationClose()}}),a._mousedownProxy=function(e){a._mousedown(e)},a._resizeProxy=r.mobileOS.android?function(e){setTimeout(function(){a._resize(e)},600)}:function(e){a._resize(e)},o.toggleTarget&&e(o.toggleTarget).on(o.toggleEvent+W,e.proxy(a.toggle,a))},events:[d,u,c,f],options:{name:"Popup",toggleEvent:"click",origin:v+" "+h,position:w+" "+h,anchor:y,appendTo:null,collision:"flip fit",viewport:window,copyAnchorStyles:!0,autosize:!1,modal:!1,adjustSize:{width:0,height:0},animation:{open:{effects:"slideIn:down",transition:!0,duration:200},close:{duration:100,hide:!0}}},_animationClose:function(){var e=this,t=e.wrapper.data(b);e.wrapper.hide(),t&&e.wrapper.css(t),e.options.anchor!=y&&e._hideDirClass(),e._closing=!1,e._trigger(f)},destroy:function(){var t,o=this,i=o.options,r=o.element.off(W);s.fn.destroy.call(o),i.toggleTarget&&e(i.toggleTarget).off(W),i.modal||(R.unbind(o.downEvent,o._mousedownProxy),o._toggleResize(!1)),n.destroy(o.element.children()),r.removeData(),i.appendTo[0]===document.body&&(t=r.parent(".k-animation-container"),t[0]?t.remove():r.remove())},open:function(t,o){var i,s,a=this,l={isFixed:!isNaN(parseInt(o,10)),x:t,y:o},p=a.element,c=a.options,f=e(c.anchor),u=p[0]&&p.hasClass("km-widget");if(!a.visible()){if(c.copyAnchorStyles&&(u&&"font-size"==j[0]&&j.shift(),p.css(n.getComputedStyles(f[0],j))),p.data("animating")||a._trigger(d))return;a._activated=!1,c.modal||(R.unbind(a.downEvent,a._mousedownProxy).bind(a.downEvent,a._mousedownProxy),a._toggleResize(!1),a._toggleResize(!0)),a.wrapper=s=n.wrap(p,c.autosize).css({overflow:k,display:"block",position:_}),r.mobileOS.android&&s.css(H,"translatez(0)"),s.css(z),e(c.appendTo)[0]==document.body&&s.css(w,"-10000px"),a.flipped=a._position(l),i=a._openAnimation(),c.anchor!=y&&a._showDirClass(i),p.data(x,i.effects).kendoStop(!0).kendoAnimate(i)}},_openAnimation:function(){var e=L(!0,{},this.options.animation.open);return e.effects=n.parseEffects(e.effects,this.flipped),e},_hideDirClass:function(){var t=e(this.options.anchor),o=((t.attr("class")||"").match(E)||["","down"])[1],i=P+"-"+o;t.removeClass(i).children(S).removeClass(T).removeClass(i),this.element.removeClass(P+"-"+n.directions[o].reverse)},_showDirClass:function(t){var o=t.effects.slideIn?t.effects.slideIn.direction:"down",i=P+"-"+o;e(this.options.anchor).addClass(i).children(S).addClass(T).addClass(i),this.element.addClass(P+"-"+n.directions[o].reverse)},position:function(){this.visible()&&(this.flipped=this._position())},toggle:function(){var e=this;e[e.visible()?c:d]()},visible:function(){return this.element.is(":"+C)},close:function(o){var i,s,r,a,l=this,p=l.options;if(l.visible()){if(i=l.wrapper[0]?l.wrapper:n.wrap(l.element).hide(),l._toggleResize(!1),l._closing||l._trigger(c))return l._toggleResize(!0),t;l.element.find(".k-popup").each(function(){var t=e(this),n=t.data("kendoPopup");n&&n.close(o)}),R.unbind(l.downEvent,l._mousedownProxy),o?s={hide:!0,effects:{}}:(s=L(!0,{},p.animation.close),r=l.element.data(x),a=s.effects,!a&&!n.size(a)&&r&&n.size(r)&&(s.effects=r,s.reverse=!0),l._closing=!0),l.element.kendoStop(!0),i.css({overflow:k}),l.element.kendoAnimate(s),o&&l._animationClose()}},_trigger:function(e){return this.trigger(e,{type:e})},_resize:function(e){var t=this;r.resize.indexOf(e.type)!==-1?(clearTimeout(t._resizeTimeout),t._resizeTimeout=setTimeout(function(){t._position(),t._resizeTimeout=null},50)):(!t._hovered||t._activated&&t.element.hasClass("k-list-container"))&&t.close()},_toggleResize:function(e){var t=e?"on":"off",o=r.resize;r.mobileOS.ios||r.mobileOS.android||(o+=" "+A),this._scrollableParents()[t](A,this._resizeProxy),I[t](o,this._resizeProxy)},_mousedown:function(t){var i=this,s=i.element[0],r=i.options,a=e(r.anchor)[0],l=r.toggleTarget,p=n.eventTarget(t),d=e(p).closest(".k-popup"),c=d.parent().parent(".km-shim").length;d=d[0],!c&&d&&d!==i.element[0]||"popover"!==e(t.target).closest("a").data("rel")&&(o(s,p)||o(a,p)||l&&o(e(l)[0],p)||i.close())},_fit:function(e,t,o){var n=0;return e+t>o&&(n=o-(e+t)),e<0&&(n=-e),n},_flip:function(e,t,o,n,i,s,r){var a=0;return r=r||t,s!==i&&s!==m&&i!==m&&(e+r>n&&(a+=-(o+t)),e+a<0&&(a+=o+t)),a},_scrollableParents:function(){return e(this.options.anchor).parentsUntil("body").filter(function(e,t){return n.isScrollable(t)})},_position:function(t){var o,i,s,d,c,f,u,m,h,g,w,v,k,y,C,x,T=this,P=T.element,E=T.wrapper,S=T.options,O=e(S.viewport),R=r.zoomLevel(),I=!!(O[0]==window&&window.innerWidth&&R<=1.02),A=e(S.anchor),D=S.origin.toLowerCase().split(" "),H=S.position.toLowerCase().split(" "),W=T.collisions,j=10002,M=0,F=document.documentElement;if(c=S.viewport===window?{top:window.pageYOffset||document.documentElement.scrollTop||0,left:window.pageXOffset||document.documentElement.scrollLeft||0}:O.offset(),I?(f=window.innerWidth,u=window.innerHeight):(f=O.width(),u=O.height()),I&&F.scrollHeight-F.clientHeight>0&&(f-=n.support.scrollbar()),o=A.parents().filter(E.siblings()),o[0])if(s=Math.max(+o.css("zIndex"),0))j=s+10;else for(i=A.parentsUntil(o),d=i.length;M<d;M++)s=+e(i[M]).css("zIndex"),s&&j<s&&(j=s+10);return E.css("zIndex",j),E.css(t&&t.isFixed?{left:t.x,top:t.y}:T._align(D,H)),m=a(E,z,A[0]===E.offsetParent()[0]),h=a(E),g=A.offsetParent().parent(".k-animation-container,.k-popup,.k-group"),g.length&&(m=a(E,z,!0),h=a(E)),h.top-=c.top,h.left-=c.left,T.wrapper.data(b)||E.data(b,L({},m)),w=L({},h),v=L({},m),k=S.adjustSize,"fit"===W[0]&&(v.top+=T._fit(w.top,p(E)+k.height,u/R)),"fit"===W[1]&&(v.left+=T._fit(w.left,l(E)+k.width,f/R)),y=L({},v),C=p(P),x=p(E),!E.height()&&C&&(x+=C),"flip"===W[0]&&(v.top+=T._flip(w.top,C,p(A),u/R,D[0],H[0],x)),"flip"===W[1]&&(v.left+=T._flip(w.left,l(P),l(A),f/R,D[1],H[1],l(E))),P.css(z,_),E.css(v),v.left!=y.left||v.top!=y.top},_align:function(t,o){var n,i=this,s=i.wrapper,r=e(i.options.anchor),d=t[0],c=t[1],f=o[0],u=o[1],h=a(r),w=e(i.options.appendTo),_=l(s),k=p(s),y=l(r),b=p(r),z=h.top,C=h.left,x=Math.round;return w[0]!=document.body&&(n=a(w),z-=n.top,C-=n.left),d===v&&(z+=b),d===m&&(z+=x(b/2)),f===v&&(z-=k),f===m&&(z-=x(k/2)),c===g&&(C+=y),c===m&&(C+=x(y/2)),u===g&&(C-=_),u===m&&(C-=x(_/2)),{top:z,left:C}}});i.plugin(M)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,o){(o||t)()});;!function(e,define){define("kendo.list.min",["kendo.data.min","kendo.popup.min"],e)}(function(){return function(e,t){function i(e,i){return e!==t&&""!==e&&null!==e&&("boolean"===i?e=!!e:"number"===i?e=+e:"string"===i&&(e=""+e)),e}function n(e){return e[e.length-1]}function a(e){var t=e.selectedIndex;return t>-1?e.options[t]:{}}function s(e,t){var i,n,a,s,r=t.length,l=e.length,o=[],u=[];if(l)for(a=0;a<l;a++){for(i=e[a],n=!1,s=0;s<r;s++)if(i===t[s]){n=!0,o.push({index:a,item:i});break}n||u.push(i)}return{changed:o,unchanged:u}}function r(t){return!(!t||e.isEmptyObject(t))&&!(t.filters&&!t.filters.length)}function l(t,i){var n,a=!1;return t.filters&&(n=e.grep(t.filters,function(e){return a=l(e,i),e.filters?e.filters.length:e.field!=i}),a||t.filters.length===n.length||(a=!0),t.filters=n),a}var o,u,c=window.kendo,d=c.ui,h=c._outerWidth,f=c._outerHeight,p=d.Widget,_=c.keys,g=c.support,v=c.htmlEncode,m=c._activeElement,b=c.data.ObservableArray,x="id",I="change",S="k-state-focused",w="k-state-hover",y="k-i-loading",T="k-loading-hidden",F="open",k="close",V="cascade",D="select",C="selected",H="requestStart",B="requestEnd",E="width",P=e.extend,q=e.proxy,A=e.isArray,G=g.browser,W=G.msie,L=W&&G.version<9,O=/"/g,N={ComboBox:"DropDownList",DropDownList:"ComboBox"},R=c.ui.DataBoundWidget.extend({init:function(t,i){var n,a=this,s=a.ns;p.fn.init.call(a,t,i),t=a.element,i=a.options,a._isSelect=t.is(D),a._isSelect&&a.element[0].length&&(i.dataSource||(i.dataTextField=i.dataTextField||"text",i.dataValueField=i.dataValueField||"value")),a.ul=e('<ul unselectable="on" class="k-list k-reset"/>').attr({tabIndex:-1,"aria-hidden":!0}),a.list=e("<div class='k-list-container'/>").append(a.ul).on("mousedown"+s,q(a._listMousedown,a)),n=t.attr(x),n&&(a.list.attr(x,n+"-list"),a.ul.attr(x,n+"_listbox")),a._header(),a._noData(),a._footer(),a._accessors(),a._initValue()},options:{valuePrimitive:!1,footerTemplate:"",headerTemplate:"",noDataTemplate:"No data found."},setOptions:function(e){p.fn.setOptions.call(this,e),e&&e.enable!==t&&(e.enabled=e.enable),this._header(),this._noData(),this._footer(),this._renderFooter(),this._renderNoData()},focus:function(){this._focused.focus()},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},_listOptions:function(t){var i=this,n=i.options,a=n.virtual,s=q(i._listBound,i);return a="object"==typeof a?a:{},t=e.extend({autoBind:!1,selectable:!0,dataSource:i.dataSource,click:q(i._click,i),change:q(i._listChange,i),activate:q(i._activateItem,i),deactivate:q(i._deactivateItem,i),dataBinding:function(){i.trigger("dataBinding")},dataBound:s,height:n.height,dataValueField:n.dataValueField,dataTextField:n.dataTextField,groupTemplate:n.groupTemplate,fixedGroupTemplate:n.fixedGroupTemplate,template:n.template},t,a),t.template||(t.template="#:"+c.expr(t.dataTextField,"data")+"#"),n.$angular&&(t.$angular=n.$angular),t},_initList:function(){var e=this,t=e._listOptions({selectedItemChange:q(e._listChange,e)});e.listView=e.options.virtual?new c.ui.VirtualList(e.ul,t):new c.ui.StaticList(e.ul,t),e.listView.bind("listBound",q(e._listBound,e)),e._setListValue()},_setListValue:function(e){e=e||this.options.value,e!==t&&this.listView.value(e).done(q(this._updateSelectionState,this))},_updateSelectionState:e.noop,_listMousedown:function(e){this.filterInput&&this.filterInput[0]===e.target||e.preventDefault()},_isFilterEnabled:function(){var e=this.options.filter;return e&&"none"!==e},_hideClear:function(){var e=this;e._clear&&this._clear.addClass(T)},_showClear:function(){var e=this;e._clear&&this._clear.removeClass(T)},_clearValue:function(){this._clearText(),this._accessor(""),this.listView.value([]),this._isFilterEnabled()&&this._filter({word:"",open:!1}),this._change()},_clearText:function(){this.text("")},_clearFilter:function(){this.options.virtual||this.listView.bound(!1),this._filterSource()},_filterSource:function(e,t){var i,n,a=this,s=a.options,o=a.dataSource,u=P({},o.filter()||{}),c=e||u.filters&&u.filters.length&&!e,d=l(u,s.dataTextField);(e||d)&&a.trigger("filtering",{filter:e})||(i={filters:[],logic:"and"},r(e)&&i.filters.push(e),r(u)&&i.filters.push(u),a._cascading&&this.listView.setDSFilter(i),n=P({},{page:c?1:o.page(),pageSize:c?o.options.pageSize:o.pageSize(),sort:o.sort(),filter:o.filter(),group:o.group(),aggregate:o.aggregate()},{filter:i}),o[t?"read":"query"](o._mergeState(n)))},_angularElement:function(e,t){e&&this.angular(t,function(){return{elements:e}})},_noData:function(){var i=e(this.noData),n=this.options.noDataTemplate;return this.angular("cleanup",function(){return{elements:i}}),c.destroy(i),i.remove(),n?(this.noData=e('<div class="k-nodata" style="display:none"><div></div></div>').appendTo(this.list),this.noDataTemplate="function"!=typeof n?c.template(n):n,t):(this.noData=null,t)},_renderNoData:function(){var e=this.noData;e&&(this._angularElement(e,"cleanup"),e.children(":first").html(this.noDataTemplate({instance:this})),this._angularElement(e,"compile"))},_toggleNoData:function(t){e(this.noData).toggle(t)},_footer:function(){var i=e(this.footer),n=this.options.footerTemplate;return this._angularElement(i,"cleanup"),c.destroy(i),i.remove(),n?(this.footer=e('<div class="k-footer"></div>').appendTo(this.list),this.footerTemplate="function"!=typeof n?c.template(n):n,t):(this.footer=null,t)},_renderFooter:function(){var e=this.footer;e&&(this._angularElement(e,"cleanup"),e.html(this.footerTemplate({instance:this})),this._angularElement(e,"compile"))},_header:function(){var i,n=e(this.header),a=this.options.headerTemplate;return this._angularElement(n,"cleanup"),c.destroy(n),n.remove(),a?(i="function"!=typeof a?c.template(a):a,n=e(i({})),this.header=n[0]?n:null,this.list.prepend(n),this._angularElement(this.header,"compile"),t):(this.header=null,t)},_allowOpening:function(){return this.options.noDataTemplate||this.dataSource.flatView().length},_initValue:function(){var e=this,t=e.options.value;null!==t?e.element.val(t):(t=e._accessor(),e.options.value=t),e._old=t},_ignoreCase:function(){var e,t=this,i=t.dataSource.reader.model;i&&i.fields&&(e=i.fields[t.options.dataTextField],e&&e.type&&"string"!==e.type&&(t.options.ignoreCase=!1))},_focus:function(e){return this.listView.focus(e)},_filter:function(e){var t=this,i=t.options,n=i.ignoreCase,a=i.dataTextField,s={value:n?e.word.toLowerCase():e.word,field:a,operator:i.filter,ignoreCase:n};t._open=e.open,t._filterSource(s)},search:function(e){var t=this.options;e="string"==typeof e?e:this._inputValue(),clearTimeout(this._typingTimeout),(!t.enforceMinLength&&!e.length||e.length>=t.minLength)&&(this._state="filter",this._isFilterEnabled()?this._filter({word:e,open:!0}):this._searchByWord(e))},current:function(e){return this._focus(e)},items:function(){return this.ul[0].children},destroy:function(){var e=this,t=e.ns;p.fn.destroy.call(e),e._unbindDataSource(),e.listView.destroy(),e.list.off(t),e.popup.destroy(),e._form&&e._form.off("reset",e._resetHandler)},dataItem:function(i){var n=this;if(i===t)return n.listView.selectedDataItems()[0];if("number"!=typeof i){if(n.options.virtual)return n.dataSource.getByUid(e(i).data("uid"));i=e(n.items()).index(i)}return n.dataSource.flatView()[i]},_activateItem:function(){var e=this.listView.focus();e&&this._focused.add(this.filterInput).attr("aria-activedescendant",e.attr("id"))},_deactivateItem:function(){this._focused.add(this.filterInput).removeAttr("aria-activedescendant")},_accessors:function(){var e=this,t=e.element,i=e.options,n=c.getter,a=t.attr(c.attr("text-field")),s=t.attr(c.attr("value-field"));!i.dataTextField&&a&&(i.dataTextField=a),!i.dataValueField&&s&&(i.dataValueField=s),e._text=n(i.dataTextField),e._value=n(i.dataValueField)},_aria:function(e){var i=this,n=i.options,a=i._focused.add(i.filterInput);n.suggest!==t&&a.attr("aria-autocomplete",n.suggest?"both":"list"),e=e?e+" "+i.ul[0].id:i.ul[0].id,a.attr("aria-owns",e),i.ul.attr("aria-live",i._isFilterEnabled()?"polite":"off")},_blur:function(){var e=this;e._change(),e.close()},_change:function(){var e,n=this,a=n.selectedIndex,s=n.options.value,r=n.value();n._isSelect&&!n.listView.bound()&&s&&(r=s),r!==i(n._old,typeof r)?e=!0:a!==t&&a!==n._oldIndex&&(e=!0),e&&(n._old=r,n._oldIndex=a,n._typing||n.element.trigger(I),n.trigger(I)),n.typing=!1},_data:function(){return this.dataSource.view()},_enable:function(){var e=this,i=e.options,n=e.element.is("[disabled]");i.enable!==t&&(i.enabled=i.enable),!i.enabled||n?e.enable(!1):e.readonly(e.element.is("[readonly]"))},_dataValue:function(e){var i=this._value(e);return i===t&&(i=this._text(e)),i},_offsetHeight:function(){var t=0,i=this.listView.content.prevAll(":visible");return i.each(function(){var i=e(this);t+=f(i.hasClass("k-list-filter")?i.children():i)}),t},_height:function(i){var n,a,s,r=this,l=r.list,o=r.options.height,u=r.popup.visible();if(i||r.options.noDataTemplate){if(a=l.add(l.parent(".k-animation-container")).show(),!l.is(":visible"))return a.hide(),t;o=r.listView.content[0].scrollHeight>o?o:"auto",a.height(o),"auto"!==o&&(n=r._offsetHeight(),s=f(e(r.footer))||0,o=o-n-s),r.listView.content.height(o),u||a.hide()}return o},_adjustListWidth:function(){var e,t,i=this.list,n=i[0].style.width,a=this.wrapper;if(i.data(E)||!n)return e=window.getComputedStyle?window.getComputedStyle(a[0],null):0,t=parseFloat(e&&e.width)||h(a),e&&G.msie&&(t+=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight)+parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth)),n="border-box"!==i.css("box-sizing")?t-(h(i)-i.width()):t,i.css({fontFamily:a.css("font-family"),width:this.options.autoWidth?"auto":n,minWidth:n}).data(E,n),!0},_openHandler:function(e){this._adjustListWidth(),this.trigger(F)?e.preventDefault():(this._focused.attr("aria-expanded",!0),this.ul.attr("aria-hidden",!1))},_closeHandler:function(e){this.trigger(k)?e.preventDefault():(this._focused.attr("aria-expanded",!1),this.ul.attr("aria-hidden",!0))},_focusItem:function(){var e=this.listView,i=!e.focus(),a=n(e.select());a===t&&this.options.highlightFirst&&i&&(a=0),a!==t?e.focus(a):i&&e.scrollToIndex(0)},_calculateGroupPadding:function(e){var t=this.ul.children(".k-first:first"),i=this.listView.content.prev(".k-group-header"),n=0;i[0]&&"none"!==i[0].style.display&&("auto"!==e&&(n=c.support.scrollbar()),n+=parseFloat(t.css("border-right-width"),10)+parseFloat(t.children(".k-group").css("padding-right"),10),i.css("padding-right",n))},_calculatePopupHeight:function(e){var t=this._height(this.dataSource.flatView().length||e);this._calculateGroupPadding(t)},_resizePopup:function(e){this.options.virtual||(this.popup.element.is(":visible")?this._calculatePopupHeight(e):this.popup.one("open",function(e){return q(function(){this._calculatePopupHeight(e)},this)}.call(this,e)))},_popup:function(){var e=this;e.popup=new d.Popup(e.list,P({},e.options.popup,{anchor:e.wrapper,open:q(e._openHandler,e),close:q(e._closeHandler,e),animation:e.options.animation,isRtl:g.isRtl(e.wrapper)}))},_makeUnselectable:function(){L&&this.list.find("*").not(".k-textbox").attr("unselectable","on")},_toggleHover:function(t){e(t.currentTarget).toggleClass(w,"mouseenter"===t.type)},_toggle:function(e,i){var n=this,a=g.mobileOS&&(g.touch||g.MSPointers||g.pointers);e=e!==t?e:!n.popup.visible(),i||a||n._focused[0]===m()||(n._prevent=!0,n._focused.focus(),n._prevent=!1),n[e?F:k]()},_triggerCascade:function(){var e=this;e._cascadeTriggered&&e._old===e.value()&&e._oldIndex===e.selectedIndex||(e._cascadeTriggered=!0,e.trigger(V,{userTriggered:e._userTriggered}))},_triggerChange:function(){this._valueBeforeCascade!==this.value()&&this.trigger(I)},_unbindDataSource:function(){var e=this;e.dataSource.unbind(H,e._requestStartHandler).unbind(B,e._requestEndHandler).unbind("error",e._errorHandler)},requireValueMapper:function(e,t){var i=(e.value instanceof Array?e.value.length:e.value)||(t instanceof Array?t.length:t);if(i&&e.virtual&&"function"!=typeof e.virtual.valueMapper)throw Error("ValueMapper is not provided while the value is being set. See http://docs.telerik.com/kendo-ui/controls/editors/combobox/virtualization#the-valuemapper-function")}});P(R,{inArray:function(e,t){var i,n,a=t.children;if(!e||e.parentNode!==t)return-1;for(i=0,n=a.length;i<n;i++)if(e===a[i])return i;return-1},unifyType:i}),c.ui.List=R,d.Select=R.extend({init:function(e,t){R.fn.init.call(this,e,t),this._initial=this.element.val()},setDataSource:function(e){var t,i=this;i.options.dataSource=e,i._dataSource(),i.listView.bound()&&(i._initialIndex=null),i.listView.setDataSource(i.dataSource),i.options.autoBind&&i.dataSource.fetch(),t=i._parentWidget(),t&&i._cascadeSelect(t)},close:function(){this.popup.close()},select:function(e){var i=this;return e===t?i.selectedIndex:i._select(e).done(function(){i._old=i._accessor(),i._oldIndex=i.selectedIndex})},_accessor:function(e,t){return this[this._isSelect?"_accessorSelect":"_accessorInput"](e,t)},_accessorInput:function(e){var i=this.element[0];return e===t?i.value:(null===e&&(e=""),i.value=e,t)},_accessorSelect:function(e,i){var n,s=this.element[0];return e===t?a(s).value||"":(a(s).selected=!1,i===t&&(i=-1),n=null!==e&&""!==e,n&&i==-1?this._custom(e):e?s.value=e:s.selectedIndex=i,t)},_custom:function(t){var i=this,n=i.element,a=i._customOption;a||(a=e("<option/>"),i._customOption=a,n.append(a)),a.text(t),a[0].selected=!0},_hideBusy:function(){var e=this;clearTimeout(e._busy),e._arrowIcon.removeClass(y),e._focused.attr("aria-busy",!1),e._busy=null,e._showClear()},_showBusy:function(){var e=this;e._request=!0,e._busy||(e._busy=setTimeout(function(){e._arrowIcon&&(e._focused.attr("aria-busy",!0),e._arrowIcon.addClass(y),e._hideClear())},100))},_requestEnd:function(){this._request=!1,this._hideBusy()},_dataSource:function(){var t,i=this,n=i.element,a=i.options,s=a.dataSource||{};s=e.isArray(s)?{data:s}:s,i._isSelect&&(t=n[0].selectedIndex,t>-1&&(a.index=t),s.select=n,s.fields=[{field:a.dataTextField},{field:a.dataValueField}]),i.dataSource?i._unbindDataSource():(i._requestStartHandler=q(i._showBusy,i),i._requestEndHandler=q(i._requestEnd,i),i._errorHandler=q(i._hideBusy,i)),i.dataSource=c.data.DataSource.create(s).bind(H,i._requestStartHandler).bind(B,i._requestEndHandler).bind("error",i._errorHandler)},_firstItem:function(){this.listView.focusFirst()},_lastItem:function(){this.listView.focusLast()},_nextItem:function(){this.listView.focusNext()},_prevItem:function(){this.listView.focusPrev()},_move:function(e){var i,n,a,s,r,l,o=this,u=o.listView,c=e.keyCode,d=c===_.DOWN;if(c===_.UP||d){if(e.altKey)o.toggle(d);else{if(!u.bound())return o._fetch||(o.dataSource.one(I,function(){o._fetch=!1,o._move(e)}),o._fetch=!0,o._filterSource()),e.preventDefault(),!0;if(a=o._focus(),o._fetch||a&&!a.hasClass("k-state-selected")||(d?(o._nextItem(),o._focus()||o._lastItem()):(o._prevItem(),o._focus()||o._firstItem())),i=u.dataItemByIndex(u.getElementIndex(o._focus())),o.trigger(D,{dataItem:i,item:o._focus()}))return o._focus(a),t;o._select(o._focus(),!0).done(function(){o.popup.visible()||o._blur()})}e.preventDefault(),n=!0}else if(c===_.ENTER||c===_.TAB){if(o.popup.visible()&&e.preventDefault(),a=o._focus(),i=o.dataItem(),o.popup.visible()||i&&o.text()===o._text(i)||(a=null),s=o.filterInput&&o.filterInput[0]===m(),a){if(i=u.dataItemByIndex(u.getElementIndex(a)),r=o._value(i)!==R.unifyType(o.value(),typeof o._value(i)),r&&o.trigger(D,{dataItem:i,item:a}))return;o._select(a)}else o.input&&(o._accessor(o.input.val()),o.listView.value(o.input.val()));o._focusElement&&o._focusElement(o.wrapper),s&&c===_.TAB?o.wrapper.focusout():o._blur(),o.close(),n=!0}else c===_.ESC?(o.popup.visible()&&e.preventDefault(),o.close(),n=!0):!o.popup.visible()||c!==_.PAGEDOWN&&c!==_.PAGEUP||(e.preventDefault(),l=c===_.PAGEDOWN?1:-1,u.scrollWith(l*u.screenHeight()),n=!0);return n},_fetchData:function(){var e=this,t=!!e.dataSource.view().length;e._request||e.options.cascadeFrom||e.listView.bound()||e._fetch||t||(e._fetch=!0,e.dataSource.fetch().done(function(){e._fetch=!1}))},_options:function(e,i,n){var s,r,l,o,u=this,c=u.element,d=c[0],h=e.length,f="",p=0;for(i&&(f=i);p<h;p++)s="<option",r=e[p],l=u._text(r),o=u._value(r),o!==t&&(o+="",o.indexOf('"')!==-1&&(o=o.replace(O,"&quot;")),s+=' value="'+o+'"'),s+=">",l!==t&&(s+=v(l)),s+="</option>",f+=s;c.html(f),n!==t&&(d.value=n,d.value&&!n&&(d.selectedIndex=-1)),d.selectedIndex!==-1&&(s=a(d),s&&s.setAttribute(C,C))},_reset:function(){var t=this,i=t.element,n=i.attr("form"),a=n?e("#"+n):i.closest("form");a[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(t._initial)})},t._form=a.on("reset",t._resetHandler))},_parentWidget:function(){var t,i,n=this.options.name;if(this.options.cascadeFrom)return t=e("#"+this.options.cascadeFrom),i=t.data("kendo"+n),i||(i=t.data("kendo"+N[n])),i},_cascade:function(){var e,t=this,i=t.options,n=i.cascadeFrom;if(n){if(e=t._parentWidget(),!e)return;t._cascadeHandlerProxy=q(t._cascadeHandler,t),t._cascadeFilterRequests=[],i.autoBind=!1,e.bind("set",function(){t.one("set",function(e){t._selectedValue=e.value})}),e.first(V,t._cascadeHandlerProxy),e.listView.bound()?(t._toggleCascadeOnFocus(),t._cascadeSelect(e)):(e.one("dataBound",function(){t._toggleCascadeOnFocus()}),e.value()||t.enable(!1))}},_toggleCascadeOnFocus:function(){var e=this,t=e._parentWidget(),i=W?"blur":"focusout";t._focused.add(t.filterInput).bind("focus",function(){t.unbind(V,e._cascadeHandlerProxy),t.first(I,e._cascadeHandlerProxy)}),t._focused.add(t.filterInput).bind(i,function(){t.unbind(I,e._cascadeHandlerProxy),t.first(V,e._cascadeHandlerProxy)})},_cascadeHandler:function(e){var t=this._parentWidget(),i=this.value();this._userTriggered=e.userTriggered,this.listView.bound()&&this._clearSelection(t,!0),this._cascadeSelect(t,i)},_cascadeChange:function(e){var t=this,i=t._accessor()||t._selectedValue;t._cascadeFilterRequests.length||(t._selectedValue=null),t._userTriggered?t._clearSelection(e,!0):i?(i!==t.listView.value()[0]&&t.value(i),t.dataSource.view()[0]&&t.selectedIndex!==-1||t._clearSelection(e,!0)):t.dataSource.flatView().length&&t.select(t.options.index),t.enable(),t._triggerCascade(),t._triggerChange(),t._userTriggered=!1},_cascadeSelect:function(e,i){var n,a,s=this,r=e.dataItem(),o=r?e._value(r):null,u=s.options.cascadeFromField||e.options.dataValueField;s._valueBeforeCascade=i!==t?i:s.value(),o||0===o?(n=s.dataSource.filter()||{},l(n,u),a=function(){var t=s._cascadeFilterRequests.shift();t&&s.unbind("dataBound",t),t=s._cascadeFilterRequests[0],t&&s.first("dataBound",t),s._cascadeChange(e)},s._cascadeFilterRequests.push(a),1===s._cascadeFilterRequests.length&&s.first("dataBound",a),s._cascading=!0,s._filterSource({field:u,operator:"eq",value:o}),s._cascading=!1):(s.enable(!1),s._clearSelection(e),s._triggerCascade(),s._triggerChange(),s._userTriggered=!1)}}),o=".StaticList",u=c.ui.DataBoundWidget.extend({init:function(t,i){p.fn.init.call(this,t,i),this.element.attr("role","listbox").on("click"+o,"li",q(this._click,this)).on("mouseenter"+o,"li",function(){e(this).addClass(w)}).on("mouseleave"+o,"li",function(){e(this).removeClass(w)}),this.content=this.element.wrap("<div class='k-list-scroller' unselectable='on'></div>").parent(),this.header=this.content.before('<div class="k-group-header" style="display:none"></div>').prev(),this.bound(!1),this._optionID=c.guid(),this._selectedIndices=[],this._view=[],this._dataItems=[],this._values=[];var n=this.options.value;n&&(this._values=e.isArray(n)?n.slice(0):[n]),this._getter(),this._templates(),this.setDataSource(this.options.dataSource),this._onScroll=q(function(){var e=this;clearTimeout(e._scrollId),e._scrollId=setTimeout(function(){e._renderHeader()},50)},this)},options:{name:"StaticList",dataValueField:null,valuePrimitive:!1,selectable:!0,template:null,groupTemplate:null,fixedGroupTemplate:null},events:["click",I,"activate","deactivate","dataBinding","dataBound","selectedItemChange"],setDataSource:function(t){var i,n=this,a=t||{};a=e.isArray(a)?{data:a}:a,a=c.data.DataSource.create(a),n.dataSource?(n.dataSource.unbind(I,n._refreshHandler),i=n.value(),n.value([]),n.bound(!1),n.value(i)):n._refreshHandler=q(n.refresh,n),n.setDSFilter(a.filter()),n.dataSource=a.bind(I,n._refreshHandler),n._fixedHeader()},skip:function(){return this.dataSource.skip()},setOptions:function(e){p.fn.setOptions.call(this,e),this._getter(),this._templates(),this._render()},destroy:function(){this.element.off(o),this._refreshHandler&&this.dataSource.unbind(I,this._refreshHandler),clearTimeout(this._scrollId),p.fn.destroy.call(this)},dataItemByIndex:function(e){return this.dataSource.flatView()[e]},screenHeight:function(){return this.content[0].clientHeight},scrollToIndex:function(e){var t=this.element[0].children[e];t&&this.scroll(t)},scrollWith:function(e){this.content.scrollTop(this.content.scrollTop()+e)},scroll:function(e){if(e){e[0]&&(e=e[0]);var t=this.content[0],i=e.offsetTop,n=e.offsetHeight,a=t.scrollTop,s=t.clientHeight,r=i+n;a>i?a=i:r>a+s&&(a=r-s),t.scrollTop=a}},selectedDataItems:function(e){return e===t?this._dataItems.slice():(this._dataItems=e,this._values=this._getValues(e),t)},_getValues:function(t){var i=this._valueGetter;return e.map(t,function(e){return i(e)})},focusNext:function(){var e=this.focus();e=e?e.next():0,this.focus(e)},focusPrev:function(){var e=this.focus();e=e?e.prev():this.element[0].children.length-1,this.focus(e)},focusFirst:function(){this.focus(this.element[0].children[0])},focusLast:function(){this.focus(n(this.element[0].children))},focus:function(i){var a,s=this,r=s._optionID;return i===t?s._current:(i=n(s._get(i)),i=e(this.element[0].children[i]),s._current&&(s._current.removeClass(S).removeAttr("aria-selected").removeAttr(x),s.trigger("deactivate")),a=!!i[0],a&&(i.addClass(S),s.scroll(i),i.attr("id",r)),s._current=a?i:null,s.trigger("activate"),t)},focusIndex:function(){return this.focus()?this.focus().index():t},skipUpdate:function(e){this._skipUpdate=e},select:function(i){var a,s,r,l=this,o=l.options.selectable,u="multiple"!==o&&o!==!1,c=l._selectedIndices,d=[],h=[];return i===t?c.slice():(i=l._get(i),1===i.length&&i[0]===-1&&(i=[]),s=e.Deferred().resolve(),r=l.isFiltered(),r&&!u&&l._deselectFiltered(i)?s:u&&!r&&e.inArray(n(i),c)!==-1?(l._dataItems.length&&l._view.length&&(l._dataItems=[l._view[c[0]].item]),s):(a=l._deselect(i),h=a.removed,i=a.indices,i.length&&(u&&(i=[n(i)]),d=l._select(i)),(d.length||h.length)&&(l._valueComparer=null,l.trigger(I,{added:d,removed:h})),s))},removeAt:function(e){return this._selectedIndices.splice(e,1),this._values.splice(e,1),this._valueComparer=null,{position:e,dataItem:this._dataItems.splice(e,1)[0]}},setValue:function(t){t=e.isArray(t)||t instanceof b?t.slice(0):[t],this._values=t,this._valueComparer=null},value:function(i){var n,a=this,s=a._valueDeferred;return i===t?a._values.slice():(a.setValue(i),s&&"resolved"!==s.state()||(a._valueDeferred=s=e.Deferred()),a.bound()&&(n=a._valueIndices(a._values),"multiple"===a.options.selectable&&a.select(-1),a.select(n),s.resolve()),a._skipUpdate=!1,s)},items:function(){return this.element.children(".k-item")},_click:function(t){t.isDefaultPrevented()||this.trigger("click",{item:e(t.currentTarget)})||this.select(t.currentTarget)},_valueExpr:function(e,t){var n,a,s=this,r=0,l=[];if(!s._valueComparer||s._valueType!==e){for(s._valueType=e;r<t.length;r++)l.push(i(t[r],e));n="for (var idx = 0; idx < "+l.length+"; idx++) { if (current === values[idx]) {   return idx; }} return -1;",a=Function("current","values",n),s._valueComparer=function(e){return a(e,l)}}return s._valueComparer},_dataItemPosition:function(e,t){var i=this._valueGetter(e),n=this._valueExpr(typeof i,t);return n(i)},_getter:function(){this._valueGetter=c.getter(this.options.dataValueField)},_deselect:function(t){var i,n,a,s=this,r=s.element[0].children,l=s.options.selectable,o=s._selectedIndices,u=s._dataItems,c=s._values,d=[],h=0,f=0;if(t=t.slice(),l!==!0&&t.length){if("multiple"===l)for(;h<t.length;h++)if(n=t[h],e(r[n]).hasClass("k-state-selected"))for(i=0;i<o.length;i++)if(a=o[i],a===n){e(r[a]).removeClass("k-state-selected"),d.push({position:i+f,dataItem:u.splice(i,1)[0]}),o.splice(i,1),t.splice(h,1),c.splice(i,1),f+=1,h-=1,i-=1;break}}else{for(;h<o.length;h++)e(r[o[h]]).removeClass("k-state-selected"),d.push({position:h,dataItem:u[h]});s._values=[],s._dataItems=[],s._selectedIndices=[]}return{indices:t,removed:d}},_deselectFiltered:function(t){for(var i,n,a,s=this.element[0].children,r=[],l=0;l<t.length;l++)n=t[l],i=this._view[n].item,a=this._dataItemPosition(i,this._values),a>-1&&(r.push(this.removeAt(a)),e(s[n]).removeClass("k-state-selected"));return!!r.length&&(this.trigger(I,{added:[],removed:r}),!0)},_select:function(t){var i,a,s=this,r=s.element[0].children,l=s._view,o=[],u=0;for(n(t)!==-1&&s.focus(t);u<t.length;u++)a=t[u],i=l[a],a!==-1&&i&&(i=i.item,s._selectedIndices.push(a),s._dataItems.push(i),s._values.push(s._valueGetter(i)),e(r[a]).addClass("k-state-selected").attr("aria-selected",!0),o.push({dataItem:i}));return o},getElementIndex:function(t){return e(t).data("offset-index")},_get:function(e){return"number"==typeof e?e=[e]:A(e)||(e=this.getElementIndex(e),e=[e!==t?e:-1]),e},_template:function(){var e=this,t=e.options,i=t.template;return i?(i=c.template(i),i=function(e){return'<li tabindex="-1" role="option" unselectable="on" class="k-item">'+i(e)+"</li>"}):i=c.template('<li tabindex="-1" role="option" unselectable="on" class="k-item">${'+c.expr(t.dataTextField,"data")+"}</li>",{useWithBlock:!1}),i},_templates:function(){var e,t,i=this.options,n={template:i.template,groupTemplate:i.groupTemplate,fixedGroupTemplate:i.fixedGroupTemplate};for(t in n)e=n[t],e&&"function"!=typeof e&&(n[t]=c.template(e));this.templates=n},_normalizeIndices:function(e){for(var i=[],n=0;n<e.length;n++)e[n]!==t&&i.push(e[n]);return i},_valueIndices:function(e,t){var i,n=this._view,a=0;if(t=t?t.slice():[],!e.length)return[];for(;a<n.length;a++)i=this._dataItemPosition(n[a].item,e),i!==-1&&(t[i]=a);return this._normalizeIndices(t)},_firstVisibleItem:function(){for(var t=this.element[0],i=this.content[0],n=i.scrollTop,a=e(t.children[0]).height(),s=Math.floor(n/a)||0,r=t.children[s]||t.lastChild,l=r.offsetTop<n;r;)if(l){if(r.offsetTop+a>n||!r.nextSibling)break;r=r.nextSibling}else{if(r.offsetTop<=n||!r.previousSibling)break;r=r.previousSibling}return this._view[e(r).data("offset-index")]},_fixedHeader:function(){this.isGrouped()&&this.templates.fixedGroupTemplate?(this.header.show(),this.content.scroll(this._onScroll)):(this.header.hide(),this.content.off("scroll",this._onScroll))},_renderHeader:function(){var e,t=this.templates.fixedGroupTemplate;t&&(e=this._firstVisibleItem(),e&&this.header.html(t(e.group)))},_renderItem:function(e){var t='<li tabindex="-1" role="option" unselectable="on" class="k-item',i=e.item,n=0!==e.index,a=e.selected;return n&&e.newGroup&&(t+=" k-first"),a&&(t+=" k-state-selected"),t+='"'+(a?' aria-selected="true"':"")+' data-offset-index="'+e.index+'">',t+=this.templates.template(i),n&&e.newGroup&&(t+='<div class="k-group">'+this.templates.groupTemplate(e.group)+"</div>"),t+"</li>"},_render:function(){var e,t,i,n,a="",s=0,r=0,l=[],o=this.dataSource.view(),u=this.value(),c=this.isGrouped();if(c)for(s=0;s<o.length;s++)for(t=o[s],i=!0,n=0;n<t.items.length;n++)e={selected:this._selected(t.items[n],u),item:t.items[n],group:t.value,newGroup:i,index:r},l[r]=e,r+=1,a+=this._renderItem(e),i=!1;else for(s=0;s<o.length;s++)e={selected:this._selected(o[s],u),item:o[s],index:s},l[s]=e,a+=this._renderItem(e);this._view=l,this.element[0].innerHTML=a,c&&l.length&&this._renderHeader()},_selected:function(e,t){var i=!this.isFiltered()||"multiple"===this.options.selectable;return i&&this._dataItemPosition(e,t)!==-1},setDSFilter:function(e){this._lastDSFilter=P({},e)},isFiltered:function(){return this._lastDSFilter||this.setDSFilter(this.dataSource.filter()),!c.data.Query.compareFilters(this.dataSource.filter(),this._lastDSFilter)},refresh:function(e){var t,i=this,n=e&&e.action,a=i.options.skipUpdateOnBind,r="itemchange"===n;i.trigger("dataBinding"),i._angularItems("cleanup"),i._fixedHeader(),i._render(),i.bound(!0),r||"remove"===n?(t=s(i._dataItems,e.items),t.changed.length&&(r?i.trigger("selectedItemChange",{items:t.changed}):i.value(i._getValues(t.unchanged)))):i.isFiltered()||i._skipUpdate?(i.focus(0),i._skipUpdate&&(i._skipUpdate=!1,i._selectedIndices=i._valueIndices(i._values,i._selectedIndices))):a||n&&"add"!==n||i.value(i._values),i._valueDeferred&&i._valueDeferred.resolve(),i._angularItems("compile"),i.trigger("dataBound")},bound:function(e){return e===t?this._bound:(this._bound=e,t)},isGrouped:function(){return(this.dataSource.group()||[]).length}}),d.plugin(u)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()});;!function(e,define){define("kendo.autocomplete.min",["kendo.list.min","kendo.mobile.scroller.min"],e)}(function(){return function(e,t){function s(e,t,s){return s?t.substring(0,e).split(s).length-1:0}function i(e,t,i){return t.split(i)[s(e,t,i)]}function a(e,t,i,a,n){var o=t.split(a);return o.splice(s(e,t,a),1,i),a&&""!==o[o.length-1]&&o.push(""),o.join(n)}var n=window.kendo,o=n.support,r=n.caret,l=n._activeElement,c=o.placeholder,u=n.ui,d=u.List,p=n.keys,_=n.data.DataSource,h="aria-disabled",f="aria-readonly",g="change",m="k-state-default",v="disabled",y="readonly",w="k-state-focused",k="k-state-selected",b="k-state-disabled",x="k-state-hover",C=".kendoAutoComplete",T="mouseenter"+C+" mouseleave"+C,S=e.proxy,V=d.extend({init:function(t,s){var i,a,o=this;o.ns=C,s=e.isArray(s)?{dataSource:s}:s,d.fn.init.call(o,t,s),t=o.element,s=o.options,s.placeholder=s.placeholder||t.attr("placeholder"),c&&t.attr("placeholder",s.placeholder),o._wrapper(),o._loader(),o._clearButton(),o._dataSource(),o._ignoreCase(),t[0].type="text",i=o.wrapper,o._popup(),t.addClass("k-input").on("keydown"+C,S(o._keydown,o)).on("keypress"+C,S(o._keypress,o)).on("paste"+C,S(o._search,o)).on("focus"+C,function(){o._prev=o._accessor(),o._oldText=o._prev,o._placeholder(!1),i.addClass(w)}).on("focusout"+C,function(){o._change(),o._placeholder(),i.removeClass(w)}).attr({autocomplete:"off",role:"textbox","aria-haspopup":!0}),o._clear.on("click"+C,S(o._clearValue,o)),o._enable(),o._old=o._accessor(),t[0].id&&t.attr("aria-owns",o.ul[0].id),o._aria(),o._placeholder(),o._initList(),a=e(o.element).parents("fieldset").is(":disabled"),a&&o.enable(!1),o.listView.bind("click",function(e){e.preventDefault()}),o._resetFocusItemHandler=e.proxy(o._resetFocusItem,o),n.notify(o)},options:{name:"AutoComplete",enabled:!0,suggest:!1,template:"",groupTemplate:"#:data#",fixedGroupTemplate:"#:data#",dataTextField:"",minLength:1,enforceMinLength:!1,delay:200,height:200,filter:"startswith",ignoreCase:!0,highlightFirst:!1,separator:null,placeholder:"",animation:{},virtual:!1,value:null,clearButton:!0},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e._unbindDataSource():(e._progressHandler=S(e._showBusy,e),e._errorHandler=S(e._hideBusy,e)),e.dataSource=_.create(e.options.dataSource).bind("progress",e._progressHandler).bind("error",e._errorHandler)},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.listView.setDataSource(this.dataSource)},events:["open","close",g,"select","filtering","dataBinding","dataBound"],setOptions:function(e){var t=this._listOptions(e);d.fn.setOptions.call(this,e),this.listView.setOptions(t),this._accessors(),this._aria()},_listOptions:function(t){var s=d.fn._listOptions.call(this,e.extend(t,{skipUpdateOnBind:!0}));return s.dataValueField=s.dataTextField,s.selectedItemChange=null,s},_editable:function(e){var t=this,s=t.element,i=t.wrapper.off(C),a=e.readonly,n=e.disable;a||n?(i.addClass(n?b:m).removeClass(n?m:b),s.attr(v,n).attr(y,a).attr(h,n).attr(f,a)):(i.addClass(m).removeClass(b).on(T,t._toggleHover),s.removeAttr(v).removeAttr(y).attr(h,!1).attr(f,!1))},close:function(){var e=this,t=e.listView.focus();t&&t.removeClass(k),e.popup.close()},destroy:function(){var e=this;e.element.off(C),e._clear.off(C),e.wrapper.off(C),d.fn.destroy.call(e)},refresh:function(){this.listView.refresh()},select:function(e){this._select(e)},search:function(t){var s,a=this,n=a.options,o=n.ignoreCase,l=a._separator();t=t||a._accessor(),clearTimeout(a._typingTimeout),l&&(t=i(r(a.element)[0],t,l)),s=t.length,(!n.enforceMinLength&&!s||s>=n.minLength)&&(a._open=!0,a._mute(function(){this.listView.value([])}),a._filterSource({value:o?t.toLowerCase():t,operator:n.filter,field:n.dataTextField,ignoreCase:o}),a.one("close",e.proxy(a._unifySeparators,a)))},suggest:function(e){var i,a=this,n=a._last,o=a._accessor(),c=a.element[0],u=r(c)[0],_=a._separator(),h=o.split(_),f=s(u,o,_),g=u;return n==p.BACKSPACE||n==p.DELETE?(a._last=t,t):(e=e||"","string"!=typeof e&&(e[0]&&(e=a.dataSource.view()[d.inArray(e[0],a.ul[0])]),e=e?a._text(e):""),u<=0&&(u=o.toLowerCase().indexOf(e.toLowerCase())+1),i=o.substring(0,u).lastIndexOf(_),i=i>-1?u-(i+_.length):u,o=h[f].substring(0,i),e&&(e=""+e,i=e.toLowerCase().indexOf(o.toLowerCase()),i>-1&&(e=e.substring(i+o.length),g=u+e.length,o+=e),_&&""!==h[h.length-1]&&h.push("")),h[f]=o,a._accessor(h.join(_||"")),c===l()&&r(c,u,g),t)},value:function(e){return e===t?this._accessor():(this.listView.value(e),this._accessor(e),this._old=this._accessor(),this._oldText=this._accessor(),t)},_click:function(e){var s=e.item,i=this,a=i.element,n=i.listView.dataItemByIndex(i.listView.getElementIndex(s));return e.preventDefault(),i._active=!0,i.trigger("select",{dataItem:n,item:s})?(i.close(),t):(i._oldText=a.val(),i._select(s).done(function(){i._blur(),r(a,a.val().length)}),t)},_clearText:e.noop,_resetFocusItem:function(){var e=this.options.highlightFirst?0:-1;this.options.virtual&&this.listView.scrollTo(0),this.listView.focus(e)},_listBound:function(){var e,s=this,i=s.popup,a=s.options,n=s.dataSource.flatView(),o=n.length,r=s.element[0]===l();s._renderFooter(),s._renderNoData(),s._toggleNoData(!n.length),s._resizePopup(),i.position(),o&&a.suggest&&r&&s.suggest(n[0]),s._open&&(s._open=!1,e=s._allowOpening()?"open":"close",s._typingTimeout&&!r&&(e="close"),o&&(s._resetFocusItem(),a.virtual&&s.popup.unbind("activate",s._resetFocusItemHandler).one("activate",s._resetFocusItemHandler)),i[e](),s._typingTimeout=t),s._touchScroller&&s._touchScroller.reset(),s._hideBusy(),s._makeUnselectable(),s.trigger("dataBound")},_mute:function(e){this._muted=!0,e.call(this),this._muted=!1},_listChange:function(){var e=this._active||this.element[0]===l();e&&!this._muted&&this._selectValue(this.listView.selectedDataItems()[0])},_selectValue:function(e){var t=this._separator(),s="";e&&(s=this._text(e)),null===s&&(s=""),t&&(s=a(r(this.element)[0],this._accessor(),s,t,this._defaultSeparator())),this._prev=s,this._accessor(s),this._placeholder()},_unifySeparators:function(){return this._accessor(this.value().split(this._separator()).join(this._defaultSeparator())),this},_change:function(){var e=this,t=e._unifySeparators().value(),s=t!==d.unifyType(e._old,typeof t),i=s&&!e._typing,a=e._oldText!==t;e._old=t,e._oldText=t,(i||a)&&e.element.trigger(g),s&&e.trigger(g),e.typing=!1},_accessor:function(e){var s=this,i=s.element[0];return e===t?(e=i.value,i.className.indexOf("k-readonly")>-1&&e===s.options.placeholder?"":e):(i.value=null===e?"":e,s._placeholder(),t)},_keydown:function(e){var t,s,i=this,a=e.keyCode,n=i.listView,o=i.popup.visible(),r=n.focus();if(i._last=a,a===p.DOWN)o&&this._move(r?"focusNext":"focusFirst"),e.preventDefault();else if(a===p.UP)o&&this._move(r?"focusPrev":"focusLast"),e.preventDefault();else if(a===p.ENTER||a===p.TAB){if(a===p.ENTER&&o&&e.preventDefault(),o&&r){if(t=n.dataItemByIndex(n.getElementIndex(r)),i.trigger("select",{dataItem:t,item:r}))return;this._select(r)}this._blur()}else a===p.ESC?(o&&e.preventDefault(),i.close()):!i.popup.visible()||a!==p.PAGEDOWN&&a!==p.PAGEUP?i._search():(e.preventDefault(),s=a===p.PAGEDOWN?1:-1,n.scrollWith(s*n.screenHeight()))},_keypress:function(){this._oldText=this.element.val(),this._typing=!0},_move:function(e){this.listView[e](),this.options.suggest&&this.suggest(this.listView.focus())},_hideBusy:function(){var e=this;clearTimeout(e._busy),e._loading.hide(),e.element.attr("aria-busy",!1),e._busy=null,e._showClear()},_showBusy:function(){var e=this;e._busy||(e._busy=setTimeout(function(){e.element.attr("aria-busy",!0),e._loading.show(),e._hideClear()},100))},_placeholder:function(e){if(!c){var s,i=this,a=i.element,n=i.options.placeholder;if(n){if(s=a.val(),e===t&&(e=!s),e||(n=s!==n?s:""),s===i._old&&!e)return;a.toggleClass("k-readonly",e).val(n),n||a[0]!==document.activeElement||r(a[0],0,0)}}},_separator:function(){var e=this.options.separator;return e instanceof Array?RegExp(e.join("|"),"gi"):e},_defaultSeparator:function(){var e=this.options.separator;return e instanceof Array?e[0]:e},_inputValue:function(){return this.element.val()},_search:function(){var e=this;clearTimeout(e._typingTimeout),e._typingTimeout=setTimeout(function(){e._prev!==e._accessor()&&(e._prev=e._accessor(),e.search())},e.options.delay)},_select:function(e){var t=this;return t._active=!0,t.listView.select(e).done(function(){t._active=!1})},_loader:function(){this._loading=e('<span class="k-icon k-i-loading" style="display:none"></span>').insertAfter(this.element)},_clearButton:function(){this._clear=e('<span unselectable="on" class="k-icon k-clear-value k-i-close" title="clear"></span>').attr({role:"button",tabIndex:-1}),this.options.clearButton&&this._clear.insertAfter(this.element)},_toggleHover:function(t){e(t.currentTarget).toggleClass(x,"mouseenter"===t.type)},_wrapper:function(){var e,t=this,s=t.element,i=s[0];e=s.parent(),e.is("span.k-widget")||(e=s.wrap("<span />").parent()),e.attr("tabindex",-1),e.attr("role","presentation"),e[0].style.cssText=i.style.cssText,s.css({width:"100%",height:i.style.height}),t._focused=t.element,t.wrapper=e.addClass("k-widget k-autocomplete k-header").addClass(i.className)}});u.plugin(V)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,s){(s||t)()});;!function(e,define){define("kendo.button.min",["kendo.core.min"],e)}(function(){return function(e,n){var t=window.kendo,i=t.ui.Widget,s=e.proxy,o=t.keys,a="click",l="k-button",r="k-button-icon",c="k-button-icontext",d=".kendoButton",u="disabled",p="k-state-disabled",f="k-state-focused",k="k-state-selected",h=i.extend({init:function(e,n){var o=this;i.fn.init.call(o,e,n),e=o.wrapper=o.element,n=o.options,e.addClass(l).attr("role","button"),n.enable=n.enable&&!e.attr(u),o.enable(n.enable),o._tabindex(),o._graphics(),e.on(a+d,s(o._click,o)).on("focus"+d,s(o._focus,o)).on("blur"+d,s(o._blur,o)).on("keydown"+d,s(o._keydown,o)).on("keyup"+d,s(o._keyup,o)),t.notify(o)},destroy:function(){var e=this;e.wrapper.off(d),i.fn.destroy.call(e)},events:[a],options:{name:"Button",icon:"",spriteCssClass:"",imageUrl:"",enable:!0},_isNativeButton:function(){return"button"==this.element.prop("tagName").toLowerCase()},_click:function(e){this.options.enable&&this.trigger(a,{event:e})&&e.preventDefault()},_focus:function(){this.options.enable&&this.element.addClass(f)},_blur:function(){this.element.removeClass(f)},_keydown:function(e){var n=this;n._isNativeButton()||e.keyCode!=o.ENTER&&e.keyCode!=o.SPACEBAR||(e.keyCode==o.SPACEBAR&&(e.preventDefault(),n.options.enable&&n.element.addClass(k)),n._click(e))},_keyup:function(){this.element.removeClass(k)},_graphics:function(){var n,t,i,s=this,o=s.element,a=s.options,l=a.icon,d=a.spriteCssClass,u=a.imageUrl;(d||u||l)&&(i=!0,o.contents().filter(function(){return!e(this).hasClass("k-sprite")&&!e(this).hasClass("k-icon")&&!e(this).hasClass("k-image")}).each(function(n,t){(1==t.nodeType||3==t.nodeType&&e.trim(t.nodeValue).length>0)&&(i=!1)}),o.addClass(i?r:c)),l?(n=o.children("span.k-icon").first(),n[0]||(n=e('<span class="k-icon"></span>').prependTo(o)),n.addClass("k-i-"+l)):d?(n=o.children("span.k-sprite").first(),n[0]||(n=e('<span class="k-sprite"></span>').prependTo(o)),n.addClass(d)):u&&(t=o.children("img.k-image").first(),t[0]||(t=e('<img alt="icon" class="k-image" />').prependTo(o)),t.attr("src",u))},enable:function(e){var t=this,i=t.element;e===n&&(e=!0),e=!!e,t.options.enable=e,i.toggleClass(p,!e).attr("aria-disabled",!e).attr(u,!e);try{i.blur()}catch(s){}}});t.ui.plugin(h)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,n,t){(t||n)()});;!function(e,define){define("kendo.combobox.min",["kendo.list.min","kendo.mobile.scroller.min"],e)}(function(){return function(e,t){var i=window.kendo,n=i.ui,s=n.List,o=n.Select,a=i.caret,l=i.support,r=l.placeholder,u=i._activeElement,c=i.keys,d=".kendoComboBox",p="click"+d,_="mousedown"+d,h="disabled",f="readonly",g="change",v="k-state-default",m="k-state-focused",x="k-state-disabled",w="aria-disabled",y="filter",b="accept",I="rebind",V="mouseenter"+d+" mouseleave"+d,k=e.proxy,T=o.extend({init:function(t,n){var s,a,l=this;l.ns=d,n=e.isArray(n)?{dataSource:n}:n,o.fn.init.call(l,t,n),n=l.options,t=l.element.on("focus"+d,k(l._focusHandler,l)),n.placeholder=n.placeholder||t.attr("placeholder"),l._reset(),l._wrapper(),l._input(),l._clearButton(),l._tabindex(l.input),l._popup(),l._dataSource(),l._ignoreCase(),l._enable(),l._oldIndex=l.selectedIndex=-1,l._aria(),l._initialIndex=n.index,l.requireValueMapper(l.options),l._initList(),l._cascade(),n.autoBind?l._filterSource():(s=n.text,!s&&l._isSelect&&(s=t.children(":selected").text()),s&&l._setText(s)),s||l._placeholder(),a=e(l.element).parents("fieldset").is(":disabled"),a&&l.enable(!1),i.notify(l)},options:{name:"ComboBox",enabled:!0,index:-1,text:null,value:null,autoBind:!0,delay:200,dataTextField:"",dataValueField:"",minLength:1,enforceMinLength:!1,height:200,highlightFirst:!0,filter:"none",placeholder:"",suggest:!1,cascadeFrom:"",cascadeFromField:"",ignoreCase:!0,animation:{},virtual:!1,template:null,groupTemplate:"#:data#",fixedGroupTemplate:"#:data#",clearButton:!0,syncValueAndText:!0},events:["open","close",g,"select","filtering","dataBinding","dataBound","cascade","set"],setOptions:function(e){o.fn.setOptions.call(this,e),this.listView.setOptions(e),this._accessors(),this._aria()},destroy:function(){var e=this;e.input.off(d),e.element.off(d),e._inputWrapper.off(d),clearTimeout(e._pasteTimeout),e._arrow.off(p+" "+_),e._clear.off(p+" "+_),o.fn.destroy.call(e)},_change:function(){var e=this,i=e.text(),n=i&&i!==e._oldText&&i!==e.options.placeholder,s=e.selectedIndex,a=s===-1;return!e.options.syncValueAndText&&!e.value()&&a&&n?(e._old="",e._oldIndex=s,e._oldText=i,e._typing||e.element.trigger(g),e.trigger(g),e._typing=!1,t):(o.fn._change.call(e),t)},_focusHandler:function(){this.input.focus()},_arrowClick:function(){this._toggle()},_inputFocus:function(){this._inputWrapper.addClass(m),this._placeholder(!1)},_inputFocusout:function(){var e,i,n=this,s=n.value();return n._inputWrapper.removeClass(m),clearTimeout(n._typingTimeout),n._typingTimeout=null,n.text(n.text()),e=n._focus(),i=this.listView.dataItemByIndex(this.listView.getElementIndex(e)),s!==n.value()&&n.trigger("select",{dataItem:i,item:e})?(n.value(s),t):(n._placeholder(),n._blur(),n.element.blur(),t)},_inputPaste:function(){var e=this;clearTimeout(e._pasteTimeout),e._pasteTimeout=null,e._pasteTimeout=setTimeout(function(){e.search()})},_editable:function(e){var t=this,i=e.disable,n=e.readonly,s=t._inputWrapper.off(d),o=t.element.add(t.input.off(d)),a=t._arrow.off(p+" "+_),l=t._clear;n||i?(s.addClass(i?x:v).removeClass(i?v:x),o.attr(h,i).attr(f,n).attr(w,i)):(s.addClass(v).removeClass(x).on(V,t._toggleHover),o.removeAttr(h).removeAttr(f).attr(w,!1),a.on(p,k(t._arrowClick,t)).on(_,function(e){e.preventDefault()}),l.on(p,k(t._clearValue,t)).on(_,function(e){e.preventDefault()}),t.input.on("keydown"+d,k(t._keydown,t)).on("focus"+d,k(t._inputFocus,t)).on("focusout"+d,k(t._inputFocusout,t)).on("paste"+d,k(t._inputPaste,t)))},open:function(){var e=this,t=e._state;e.popup.visible()||(!e.listView.bound()&&t!==y||t===b?(e._open=!0,e._state=I,1!==e.options.minLength?(e.refresh(),e._openPopup()):e._filterSource()):e._allowOpening()&&(e._openPopup(),e._focusItem()))},_scrollToFocusedItem:function(){var e=this.listView;e.scrollToIndex(e.getElementIndex(e.focus()))},_openPopup:function(){this.popup.one("activate",k(this._scrollToFocusedItem,this)),this.popup.open()},_updateSelectionState:function(){var e=this,i=e.options.text,n=e.options.value;e.listView.isFiltered()||(e.selectedIndex===-1?(i!==t&&null!==i||(i=n),e._accessor(n),e.input.val(i||e.input.val()),e._placeholder()):e._oldIndex===-1&&(e._oldIndex=e.selectedIndex))},_buildOptions:function(e){var i,n=this;n._isSelect&&(i=n._customOption,n._state===I&&(n._state=""),n._customOption=t,n._options(e,"",n.value()),i&&i[0].selected&&n._custom(i.val()))},_updateSelection:function(){var i,n=this,s=n.listView,o=n._initialIndex,a=null!==o&&o>-1,l=n._state===y;return l?(e(s.focus()).removeClass("k-state-selected"),t):(n._fetch||(s.value().length||(a?n.select(o):n._accessor()&&s.value(n._accessor())),n._initialIndex=null,i=s.selectedDataItems()[0],i&&(n._value(i)!==n.value()&&n._custom(n._value(i)),n.text()&&n.text()!==n._text(i)&&n._selectValue(i))),t)},_updateItemFocus:function(){var e=this.listView;this.options.highlightFirst?e.focus()||e.focusIndex()||e.focus(0):e.focus(-1)},_listBound:function(){var e=this,i=e.input[0]===u(),n=e.dataSource.flatView(),s=e.listView.skip(),o=s===t||0===s;e._presetValue=!1,e._renderFooter(),e._renderNoData(),e._toggleNoData(!n.length),e._resizePopup(),e.popup.position(),e._buildOptions(n),e._makeUnselectable(),e._updateSelection(),n.length&&o&&(e._updateItemFocus(),e.options.suggest&&i&&e.input.val()&&e.suggest(n[0])),e._open&&(e._open=!1,e._typingTimeout&&!i?e.popup.close():e.toggle(e._allowOpening()),e._typingTimeout=null),e._hideBusy(),e.trigger("dataBound")},_listChange:function(){this._selectValue(this.listView.selectedDataItems()[0]),this._presetValue&&(this._oldIndex=this.selectedIndex)},_get:function(e){var t,i,n;if("function"==typeof e){for(t=this.dataSource.flatView(),n=0;n<t.length;n++)if(e(t[n])){e=n,i=!0;break}i||(e=-1)}return e},_select:function(e,t){var i=this;return e=i._get(e),e===-1&&(i.input[0].value="",i._accessor("")),i.listView.select(e).done(function(){t||i._state!==y||(i._state=b)})},_selectValue:function(e){var i=this.listView.select(),n="",s="";i=i[i.length-1],i===t&&(i=-1),this.selectedIndex=i,i!==-1||e?(e&&(n=this._dataValue(e),s=this._text(e)),null===n&&(n="")):(s=this.input[0].value,this.options.syncValueAndText&&(n=s),this.listView.focus(-1)),this._prev=this.input[0].value=s,this._accessor(n!==t?n:s,i),this._placeholder(),this._triggerCascade()},refresh:function(){this.listView.refresh()},suggest:function(e){var i,n=this,o=n.input[0],l=n.text(),r=a(o)[0],d=n._last;return d==c.BACKSPACE||d==c.DELETE?(n._last=t,t):(e=e||"","string"!=typeof e&&(e[0]&&(e=n.dataSource.view()[s.inArray(e[0],n.ul[0])]),e=e?n._text(e):""),r<=0&&(r=l.toLowerCase().indexOf(e.toLowerCase())+1),e?(e=""+e,i=e.toLowerCase().indexOf(l.toLowerCase()),i>-1&&(l+=e.substring(i+l.length))):l=l.substring(0,r),l.length===r&&e||(o.value=l,o===u()&&a(o,r,l.length)),t)},text:function(e){var i,n,o,a,l,r;return e=null===e?"":e,i=this,n=i.input[0],o=i.options.ignoreCase,a=e,e===t?n.value:i.options.autoBind!==!1||i.listView.bound()?(l=i.dataItem(),l&&i._text(l)===e&&(r=i._value(l),r===s.unifyType(i._old,typeof r))?(i._triggerCascade(),t):(o&&(a=a.toLowerCase()),i._select(function(e){return e=i._text(e),o&&(e=(e+"").toLowerCase()),e===a}).done(function(){i.selectedIndex<0&&(n.value=e,i.options.syncValueAndText&&i._accessor(e),i._triggerCascade()),i._prev=n.value}),t)):(i._setText(e),t)},toggle:function(e){this._toggle(e,!0)},value:function(e){var i=this,n=i.options,s=i.listView;return e===t?(e=i._accessor()||i.listView.value()[0],e===t||null===e?"":e):(i.requireValueMapper(i.options,e),i.trigger("set",{value:e}),e===n.value&&i.input.val()===n.text||(i._accessor(e),i._isFilterEnabled()&&s.bound()&&s.isFiltered()?i._clearFilter():i._fetchData(),s.value(e).done(function(){i.selectedIndex===-1&&(i._accessor(e),i.input.val(e),i._placeholder(!0)),i._old=i._accessor(),i._oldIndex=i.selectedIndex,i._prev=i.input.val(),i._state===y&&(i._state=b)})),t)},_click:function(e){var i=this,n=e.item,s=i.listView.dataItemByIndex(i.listView.getElementIndex(n));return e.preventDefault(),i.trigger("select",{dataItem:s,item:n})?(i.close(),t):(i._userTriggered=!0,i._select(n).done(function(){i._blur()}),t)},_inputValue:function(){return this.text()},_searchByWord:function(e){var i,n=this,s=n.options,o=n.dataSource,a=s.ignoreCase,l=function(i){var s=n._text(i);if(s!==t)return s+="",(""===s||""!==e)&&(a&&(s=s.toLowerCase()),0===s.indexOf(e))};return a&&(e=e.toLowerCase()),n.ul[0].firstChild?(this.listView.focus(this._get(l)),i=this.listView.focus(),i&&(s.suggest&&n.suggest(i),this.open()),this.options.highlightFirst&&!e&&this.listView.focusFirst(),t):(o.one(g,function(){o.view()[0]&&n.search(e)}).fetch(),t)},_input:function(){var t,i,n=this,s=n.element.removeClass("k-input")[0],o=s.accessKey,a=n.wrapper,l="input.k-input",u=s.name||"";u&&(u='name="'+u+'_input" '),t=a.find(l),t[0]||(a.append('<span tabindex="-1" unselectable="on" class="k-dropdown-wrap k-state-default"><input '+u+'class="k-input" type="text" autocomplete="off"/><span unselectable="on" class="k-select" aria-label="select"><span class="k-icon k-i-arrow-60-down"></span></span></span>').append(n.element),t=a.find(l)),t[0].style.cssText=s.style.cssText,t[0].title=s.title,i=parseInt(this.element.prop("maxlength")||this.element.attr("maxlength"),10),i>-1&&(t[0].maxLength=i),t.addClass(s.className).css({width:"100%",height:s.style.height}).attr({role:"combobox","aria-expanded":!1}).show(),r&&t.attr("placeholder",n.options.placeholder),o&&(s.accessKey="",t[0].accessKey=o),n._focused=n.input=t,n._inputWrapper=e(a[0].firstChild),n._arrow=a.find(".k-select").attr({role:"button",tabIndex:-1}),n._arrowIcon=n._arrow.find(".k-icon"),s.id&&n._arrow.attr("aria-controls",n.ul[0].id)},_clearButton:function(){this._clear=e('<span unselectable="on" class="k-icon k-clear-value k-i-close" title="clear"></span>').attr({role:"button",tabIndex:-1}),this.options.clearButton&&(this._clear.insertAfter(this.input),this.wrapper.addClass("k-combobox-clearable"))},_keydown:function(e){var t=this,i=e.keyCode;t._last=i,clearTimeout(t._typingTimeout),t._typingTimeout=null,i==c.TAB||t._move(e)||t._search()},_placeholder:function(e){if(!r){var i,n=this,s=n.input,o=n.options.placeholder;if(o){if(i=n.value(),e===t&&(e=!i),s.toggleClass("k-readonly",e),!e){if(i)return;o=""}s.val(o),o||s[0]!==u()||a(s[0],0,0)}}},_search:function(){var e=this;e._typingTimeout=setTimeout(function(){var t=e.text();e._prev!==t&&(e._prev=t,"none"===e.options.filter&&e.listView.select(-1),e.search(t)),e._typingTimeout=null},e.options.delay)},_setText:function(e){this.input.val(e),this._prev=e},_wrapper:function(){var e=this,t=e.element,i=t.parent();i.is("span.k-widget")||(i=t.hide().wrap("<span />").parent(),i[0].style.cssText=t[0].style.cssText),e.wrapper=i.addClass("k-widget k-combobox k-header").addClass(t[0].className).css("display","")},_clearSelection:function(e,t){var i=this,n=e.value(),s=n&&e.selectedIndex===-1;this.selectedIndex==-1&&this.value()||(t||!n||s)&&(i.options.value="",i.value(""))},_preselect:function(e,t){this.input.val(t),this._accessor(e),this._old=this._accessor(),this._oldIndex=this.selectedIndex,this.listView.setValue(e),this._placeholder(),this._initialIndex=null,this._presetValue=!0}});n.plugin(T)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()});;!function(t,define){define("kendo.calendar.min",["kendo.core.min"],t)}(function(){return function(t,e){function n(t,e,n,a){var r,i=t.getFullYear(),o=e.getFullYear(),s=n.getFullYear();return i-=i%a,r=i+(a-1),i<o&&(i=o),r>s&&(r=s),i+"-"+r}function a(t){var e,n=0,a=t.min,r=t.max,i=t.start,o=t.setter,l=t.build,u=t.weekNumberBuild,c=t.cells||12,f=t.isWeekColumnVisible,d=t.perRow||4,g=t.weekNumber||P,v=t.content||B,m=t.empty||E,h=t.html||'<table tabindex="0" role="grid" class="k-content k-meta-view" cellspacing="0"><tbody><tr role="row">';for(f&&(h+=g(u(i)));n<c;n++)n>0&&n%d===0&&(h+='</tr><tr role="row">',f&&(h+=g(u(i)))),i=new Ft(i.getFullYear(),i.getMonth(),i.getDate(),0,0,0),S(i,0),e=l(i,n,t.disableDates),h+=s(i,a,r)?v(e):m(e),o(i,1);return h+"</tr></tbody></table>"}function r(t,e,n){var a=t.getFullYear(),r=e.getFullYear(),i=r,o=0;return n&&(r-=r%n,i=r-r%n+n-1),a>i?o=1:a<r&&(o=-1),o}function i(){var t=new Ft;return new Ft(t.getFullYear(),t.getMonth(),t.getDate())}function o(t,e,n){var a=i();return t&&(a=new Ft((+t))),e>a?a=new Ft((+e)):n<a&&(a=new Ft((+n))),a}function s(t,e,n){return+t>=+e&&+t<=+n}function l(t,e){return t.slice(e).concat(t.slice(0,e))}function u(t,e,n){e=e instanceof Ft?e.getFullYear():t.getFullYear()+n*e,t.setFullYear(e)}function c(e){var n=t(this).hasClass("k-state-disabled");n||t(this).toggleClass(nt,dt.indexOf(e.type)>-1||e.type==ct)}function f(t){t.preventDefault()}function d(t){return A(t).calendars.standard}function g(t){var n=yt[t.start],a=yt[t.depth],r=A(t.culture);t.format=O(t.format||r.calendars.standard.patterns.d),isNaN(n)&&(n=0,t.start=J),(a===e||a>n)&&(t.depth=J),null===t.dates&&(t.dates=[])}function v(t){z&&t.find("*").attr("unselectable","on")}function m(t,e){t.addClass("k-"+e)}function h(t,e){for(var n=0,a=e.length;n<a;n++)if(t===+e[n])return!0;return!1}function _(t,e){return!!t&&(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())}function p(t,e){return!!t&&(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth())}function w(e){return y.isFunction(e)?e:t.isArray(e)?D(e):t.noop}function k(t){var e,n=[];for(e=0;e<t.length;e++)n.push(t[e].setHours(0,0,0,0));return n}function D(e){var n,a,r,i,o,s=[],l=["su","mo","tu","we","th","fr","sa"],u="if (found) { return true } else {return false}";if(e[0]instanceof Ft)s=k(e),n="var found = date && $.inArray(date.setHours(0, 0, 0, 0),["+s+"]) > -1;"+u;else{for(r=0;r<e.length;r++)i=e[r].slice(0,2).toLowerCase(),o=t.inArray(i,l),o>-1&&s.push(o);n="var found = date && $.inArray(date.getDay(),["+s+"]) > -1;"+u}return a=Function("date",n)}function b(t,e){return t instanceof Date&&e instanceof Date&&(t=t.getTime(),e=e.getTime()),t===e}var F,y=window.kendo,Y=y.support,x=y.ui,C=x.Widget,M=y.keys,T=y.parseDate,S=y.date.adjustDST,N=y.date.weekInYear,O=y._extractFormat,V=y.template,A=y.getCulture,W=y.support.transitions,H=W?W.css+"transform-origin":"",B=V('<td#=data.cssClass# role="gridcell"><a tabindex="-1" class="k-link" href="\\#" data-#=data.ns#value="#=data.dateString#">#=data.value#</a></td>',{useWithBlock:!1}),E=V('<td role="gridcell">&nbsp;</td>',{useWithBlock:!1}),P=V('<td class="k-alt">#= data.weekNumber #</td>',{useWithBlock:!1}),I=y.support.browser,z=I.msie&&I.version<9,R=y._outerHeight,U=y._outerWidth,j=".kendoCalendar",G="click"+j,q="keydown"+j,L="id",$="min",K="left",Q="slideIn",J="month",X="century",Z="change",tt="navigate",et="value",nt="k-state-hover",at="k-state-disabled",rt="k-state-focused",it="k-other-month",ot=' class="'+it+'"',st="k-nav-today",lt="td:has(.k-link)",ut="blur"+j,ct="focus",ft=ct+j,dt=Y.touch?"touchstart":"mouseenter",gt=Y.touch?"touchstart"+j:"mouseenter"+j,vt=Y.touch?"touchend"+j+" touchmove"+j:"mouseleave"+j,mt=6e4,ht=864e5,_t="_prevArrow",pt="_nextArrow",wt="aria-disabled",kt="aria-selected",Dt=t.proxy,bt=t.extend,Ft=Date,yt={month:0,year:1,decade:2,century:3},Yt=C.extend({init:function(e,n){var a,r,s=this;C.fn.init.call(s,e,n),e=s.wrapper=s.element,n=s.options,n.url=window.unescape(n.url),s.options.disableDates=w(s.options.disableDates),s._templates(),s._header(),s._footer(s.footer),r=e.addClass("k-widget k-calendar "+(n.weekNumber?" k-week-number":"")).on(gt+" "+vt,lt,c).on(q,"table.k-content",Dt(s._move,s)).on(G,lt,function(e){var n=e.currentTarget.firstChild,a=s._toDateObject(n);n.href.indexOf("#")!=-1&&e.preventDefault(),"month"==s._view.name&&s.options.disableDates(a)||s._click(t(n))}).on("mouseup"+j,"table.k-content, .k-footer",function(){s._focusView(s.options.focusOnNav!==!1)}).attr(L),r&&(s._cellID=r+"_cell_selected"),g(n),a=T(n.value,n.format,n.culture),s._index=yt[n.start],s._current=new Ft((+o(a,n.min,n.max))),s._addClassProxy=function(){if(s._active=!0,s._cell.hasClass(at)){var t=s._view.toDateString(i());s._cell=s._cellByDate(t)}s._cell.addClass(rt)},s._removeClassProxy=function(){s._active=!1,s._cell.removeClass(rt)},s.value(a),y.notify(s)},options:{name:"Calendar",value:null,min:new Ft(1900,0,1),max:new Ft(2099,11,31),dates:[],url:"",culture:"",footer:"",format:"",month:{},weekNumber:!1,start:J,depth:J,animation:{horizontal:{effects:Q,reverse:!0,duration:500,divisor:2},vertical:{effects:"zoomIn",duration:400}}},events:[Z,tt],setOptions:function(t){var e=this;g(t),t.disableDates=w(t.disableDates),C.fn.setOptions.call(e,t),e._templates(),e._footer(e.footer),e._index=yt[e.options.start],e.navigate()},destroy:function(){var t=this,e=t._today;t.element.off(j),t._title.off(j),t[_t].off(j),t[pt].off(j),y.destroy(t._table),e&&y.destroy(e.off(j)),C.fn.destroy.call(t)},current:function(){return this._current},view:function(){return this._view},focus:function(t){t=t||this._table,this._bindTable(t),t.focus()},min:function(t){return this._option($,t)},max:function(t){return this._option("max",t)},navigateToPast:function(){this._navigate(_t,-1)},navigateToFuture:function(){this._navigate(pt,1)},navigateUp:function(){var t=this,e=t._index;t._title.hasClass(at)||t.navigate(t._current,++e)},navigateDown:function(t){var n=this,a=n._index,r=n.options.depth;if(t)return a===yt[r]?(b(n._value,n._current)&&b(n._value,t)||(n.value(t),n.trigger(Z)),e):(n.navigate(t,--a),e)},navigate:function(n,a){var r,i,s,l,u,c,f,d,g,h,_,p,w,k,D,b,y;a=isNaN(a)?yt[a]:a,r=this,i=r.options,s=i.culture,l=i.min,u=i.max,c=r._title,f=r._table,d=r._oldTable,g=r._value,h=r._current,_=n&&+n>+h,p=a!==e&&a!==r._index,n||(n=h),r._current=n=new Ft((+o(n,l,u))),a===e?a=r._index:r._index=a,r._view=k=F.views[a],D=k.compare,b=a===yt[X],c.toggleClass(at,b).attr(wt,b),b=D(n,l)<1,r[_t].toggleClass(at,b).attr(wt,b),b=D(n,u)>-1,r[pt].toggleClass(at,b).attr(wt,b),f&&d&&d.data("animating")&&(d.kendoStop(!0,!0),f.kendoStop(!0,!0)),r._oldTable=f,f&&!r._changeView||(c.html(k.title(n,l,u,s)),r._table=w=t(k.content(bt({min:l,max:u,date:n,url:i.url,dates:i.dates,format:i.format,culture:s,disableDates:i.disableDates,isWeekColumnVisible:i.weekNumber},r[k.name]))),m(w,k.name),v(w),y=f&&f.data("start")===w.data("start"),r._animate({from:f,to:w,vertical:p,future:_,replace:y}),r.trigger(tt),r._focus(n)),a===yt[i.depth]&&g&&!r.options.disableDates(g)&&r._class("k-state-selected",g),r._class(rt,n),!f&&r._cell&&r._cell.removeClass(rt),r._changeView=!0},value:function(t){var n=this,a=n._view,r=n.options,i=n._view,o=r.min,l=r.max;return t===e?n._value:(null===t&&(n._current=new Date(n._current.getFullYear(),n._current.getMonth(),n._current.getDate())),t=T(t,r.format,r.culture),null!==t&&(t=new Ft((+t)),s(t,o,l)||(t=null)),null!==t&&n.options.disableDates(t)?n._value===e&&(n._value=null):n._value=t,i&&null===t&&n._cell?n._cell.removeClass("k-state-selected"):(n._changeView=!t||a&&0!==a.compare(t,n._current),n.navigate(t)),e)},_move:function(e){var n,a,r,i,l=this,u=l.options,c=e.keyCode,f=l._view,d=l._index,g=l.options.min,v=l.options.max,m=new Ft((+l._current)),h=y.support.isRtl(l.wrapper),_=l.options.disableDates;return e.target===l._table[0]&&(l._active=!0),e.ctrlKey?c==M.RIGHT&&!h||c==M.LEFT&&h?(l.navigateToFuture(),a=!0):c==M.LEFT&&!h||c==M.RIGHT&&h?(l.navigateToPast(),a=!0):c==M.UP?(l.navigateUp(),a=!0):c==M.DOWN&&(l._click(t(l._cell[0].firstChild)),a=!0):(c==M.RIGHT&&!h||c==M.LEFT&&h?(n=1,a=!0):c==M.LEFT&&!h||c==M.RIGHT&&h?(n=-1,a=!0):c==M.UP?(n=0===d?-7:-4,a=!0):c==M.DOWN?(n=0===d?7:4,a=!0):c==M.ENTER?(l._click(t(l._cell[0].firstChild)),a=!0):c==M.HOME||c==M.END?(r=c==M.HOME?"first":"last",i=f[r](m),m=new Ft(i.getFullYear(),i.getMonth(),i.getDate(),m.getHours(),m.getMinutes(),m.getSeconds(),m.getMilliseconds()),a=!0):c==M.PAGEUP?(a=!0,l.navigateToPast()):c==M.PAGEDOWN&&(a=!0,l.navigateToFuture()),(n||r)&&(r||f.setDate(m,n),_(m)&&(m=l._nextNavigatable(m,n)),s(m,g,v)&&l._focus(o(m,u.min,u.max)))),a&&e.preventDefault(),l._current},_nextNavigatable:function(t,e){var n=this,a=!0,r=n._view,i=n.options.min,o=n.options.max,l=n.options.disableDates,u=new Date(t.getTime());for(r.setDate(u,-e);a;){if(r.setDate(t,e),!s(t,i,o)){t=u;break}a=l(t)}return t},_animate:function(t){var e=this,n=t.from,a=t.to,r=e._active;n?n.parent().data("animating")?(n.off(j),n.parent().kendoStop(!0,!0).remove(),n.remove(),a.insertAfter(e.element[0].firstChild),e._focusView(r)):!n.is(":visible")||e.options.animation===!1||t.replace?(a.insertAfter(n),n.off(j).remove(),e._focusView(r)):e[t.vertical?"_vertical":"_horizontal"](n,a,t.future):(a.insertAfter(e.element[0].firstChild),e._bindTable(a))},_horizontal:function(t,e,n){var a=this,r=a._active,i=a.options.animation.horizontal,o=i.effects,s=U(t);o&&o.indexOf(Q)!=-1&&(t.add(e).css({width:s}),t.wrap("<div/>"),a._focusView(r,t),t.parent().css({position:"relative",width:2*s,"float":K,"margin-left":n?0:-s}),e[n?"insertAfter":"insertBefore"](t),bt(i,{effects:Q+":"+(n?"right":K),complete:function(){t.off(j).remove(),a._oldTable=null,e.unwrap(),a._focusView(r)}}),t.parent().kendoStop(!0,!0).kendoAnimate(i))},_vertical:function(t,e){var n,a,r=this,i=r.options.animation.vertical,o=i.effects,s=r._active;o&&o.indexOf("zoom")!=-1&&(e.css({position:"absolute",top:R(t.prev()),left:0}).insertBefore(t),H&&(n=r._cellByDate(r._view.toDateString(r._current)),a=n.position(),a=a.left+parseInt(n.width()/2,10)+"px "+(a.top+parseInt(n.height()/2,10)+"px"),e.css(H,a)),t.kendoStop(!0,!0).kendoAnimate({effects:"fadeOut",duration:600,complete:function(){t.off(j).remove(),r._oldTable=null,e.css({position:"static",top:0,left:0}),r._focusView(s)}}),e.kendoStop(!0,!0).kendoAnimate(i))},_cellByDate:function(e){return this._table.find("td:not(."+it+")").filter(function(){return t(this.firstChild).attr(y.attr(et))===e})},_class:function(e,n){var a,r=this,i=r._cellID,o=r._cell,s=r._view.toDateString(n);o&&o.removeAttr(kt).removeAttr("aria-label").removeAttr(L),n&&"month"==r._view.name&&(a=r.options.disableDates(n)),o=r._table.find("td:not(."+it+")").removeClass(e).filter(function(){return t(this.firstChild).attr(y.attr(et))===s}).attr(kt,!0),(e===rt&&!r._active&&r.options.focusOnNav!==!1||a)&&(e=""),o.addClass(e),o[0]&&(r._cell=o),i&&(o.attr(L,i),r._table.removeAttr("aria-activedescendant").attr("aria-activedescendant",i))},_bindTable:function(t){t.on(ft,this._addClassProxy).on(ut,this._removeClassProxy)},_click:function(t){var e=this,n=e.options,a=new Date((+e._current)),r=e._toDateObject(t);S(r,0),"month"==e._view.name&&e.options.disableDates(r)&&(r=e._value),e._view.setDate(a,r),e.navigateDown(o(a,n.min,n.max))},_focus:function(t){var e=this,n=e._view;0!==n.compare(t,e._current)?e.navigate(t):(e._current=t,e._class(rt,t))},_focusView:function(t,e){t&&this.focus(e)},_footer:function(n){var a=this,r=i(),o=a.element,s=o.find(".k-footer");return n?(s[0]||(s=t('<div class="k-footer"><a href="#" class="k-link k-nav-today"></a></div>').appendTo(o)),a._today=s.show().find(".k-link").html(n(r)).attr("title",y.toString(r,"D",a.options.culture)),a._toggle(),e):(a._toggle(!1),s.hide(),e)},_header:function(){var t,e=this,n=e.element;n.find(".k-header")[0]||n.html('<div class="k-header"><a href="#" role="button" class="k-link k-nav-prev"><span class="k-icon k-i-arrow-60-left"></span></a><a href="#" role="button" aria-live="assertive" aria-atomic="true" class="k-link k-nav-fast"></a><a href="#" role="button" class="k-link k-nav-next"><span class="k-icon k-i-arrow-60-right"></span></a></div>'),t=n.find(".k-link").on(gt+" "+vt+" "+ft+" "+ut,c).click(!1),e._title=t.eq(1).on(G,function(){e._active=e.options.focusOnNav!==!1,e.navigateUp()}),e[_t]=t.eq(0).on(G,function(){e._active=e.options.focusOnNav!==!1,e.navigateToPast()}),e[pt]=t.eq(2).on(G,function(){e._active=e.options.focusOnNav!==!1,e.navigateToFuture()})},_navigate:function(t,e){var n=this,a=n._index+1,r=new Ft((+n._current));t=n[t],t.hasClass(at)||(a>3?r.setFullYear(r.getFullYear()+100*e):F.views[a].setDate(r,e),n.navigate(r))},_option:function(t,n){var a,r=this,i=r.options,o=r._value||r._current;return n===e?i[t]:(n=T(n,i.format,i.culture),n&&(i[t]=new Ft((+n)),a=t===$?n>o:o>n,(a||p(o,n))&&(a&&(r._value=null),r._changeView=!0),r._changeView||(r._changeView=!(!i.month.content&&!i.month.empty)),r.navigate(r._value),r._toggle()),e)},_toggle:function(t){var n=this,a=n.options,r=n.options.disableDates(i()),o=n._today;t===e&&(t=s(i(),a.min,a.max)),o&&(o.off(G),t&&!r?o.addClass(st).removeClass(at).on(G,Dt(n._todayClick,n)):o.removeClass(st).addClass(at).on(G,f))},_todayClick:function(t){var e=this,n=yt[e.options.depth],a=e.options.disableDates,r=i();t.preventDefault(),a(r)||(0===e._view.compare(e._current,r)&&e._index==n&&(e._changeView=!1),e._value=r,e.navigate(r,n),e.trigger(Z))},_toDateObject:function(e){var n=t(e).attr(y.attr(et)).split("/");return n=new Ft(n[0],n[1],n[2])},_templates:function(){var t=this,e=t.options,n=e.footer,a=e.month,r=a.content,i=a.weekNumber,o=a.empty;t.month={content:V('<td#=data.cssClass# role="gridcell"><a tabindex="-1" class="k-link#=data.linkClass#" href="#=data.url#" '+y.attr("value")+'="#=data.dateString#" title="#=data.title#">'+(r||"#=data.value#")+"</a></td>",{useWithBlock:!!r}),empty:V('<td role="gridcell">'+(o||"&nbsp;")+"</td>",{useWithBlock:!!o}),weekNumber:V('<td class="k-alt">'+(i||"#= data.weekNumber #")+"</td>",{useWithBlock:!!i})},t.footer=n!==!1?V(n||'#= kendo.toString(data,"D","'+e.culture+'") #',{useWithBlock:!1}):null}});x.plugin(Yt),F={firstDayOfMonth:function(t){return new Ft(t.getFullYear(),t.getMonth(),1)},firstVisibleDay:function(t,e){e=e||y.culture().calendar;for(var n=e.firstDay,a=new Ft(t.getFullYear(),t.getMonth(),0,t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds());a.getDay()!=n;)F.setTime(a,-1*ht);return a},setTime:function(t,e){var n=t.getTimezoneOffset(),a=new Ft(t.getTime()+e),r=a.getTimezoneOffset()-n;t.setTime(a.getTime()+r*mt)},views:[{name:J,title:function(t,e,n,a){return d(a).months.names[t.getMonth()]+" "+t.getFullYear()},content:function(t){var e=this,n=0,r=t.min,i=t.max,o=t.date,s=t.dates,u=t.format,c=t.culture,f=t.url,g=t.isWeekColumnVisible,v=f&&s[0],m=d(c),_=m.firstDay,p=m.days,w=l(p.names,_),k=l(p.namesShort,_),D=F.firstVisibleDay(o,m),b=e.first(o),Y=e.last(o),x=e.toDateString,C=new Ft,M='<table tabindex="0" role="grid" class="k-content" cellspacing="0" data-start="'+x(D)+'"><thead><tr role="row">';for(g&&(M+='<th scope="col" class="k-alt"></th>');n<7;n++)M+='<th scope="col" title="'+w[n]+'">'+k[n]+"</th>";return C=new Ft(C.getFullYear(),C.getMonth(),C.getDate()),S(C,0),C=+C,a({cells:42,perRow:7,html:M+='</tr></thead><tbody><tr role="row">',start:D,isWeekColumnVisible:g,weekNumber:t.weekNumber,min:new Ft(r.getFullYear(),r.getMonth(),r.getDate()),max:new Ft(i.getFullYear(),i.getMonth(),i.getDate()),content:t.content,empty:t.empty,setter:e.setDate,disableDates:t.disableDates,build:function(t,e,n){var a=[],r=t.getDay(),i="",o="#";return(t<b||t>Y)&&a.push(it),n(t)&&a.push(at),+t===C&&a.push("k-today"),0!==r&&6!==r||a.push("k-weekend"),v&&h(+t,s)&&(o=f.replace("{0}",y.toString(t,u,c)),i=" k-action-link"),{date:t,dates:s,ns:y.ns,title:y.toString(t,"D",c),value:t.getDate(),dateString:x(t),cssClass:a[0]?' class="'+a.join(" ")+'"':"",linkClass:i,url:o}},weekNumberBuild:function(t){return{weekNumber:N(t,t),currentDate:t}}})},first:function(t){return F.firstDayOfMonth(t)},last:function(t){var e=new Ft(t.getFullYear(),t.getMonth()+1,0),n=F.firstDayOfMonth(t),a=Math.abs(e.getTimezoneOffset()-n.getTimezoneOffset());return a&&e.setHours(n.getHours()+a/60),e},compare:function(t,e){var n,a=t.getMonth(),r=t.getFullYear(),i=e.getMonth(),o=e.getFullYear();return n=r>o?1:r<o?-1:a==i?0:a>i?1:-1},setDate:function(t,e){var n=t.getHours();e instanceof Ft?t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()):F.setTime(t,e*ht),S(t,n)},toDateString:function(t){return t.getFullYear()+"/"+t.getMonth()+"/"+t.getDate()}},{name:"year",title:function(t){return t.getFullYear()},content:function(t){var e=d(t.culture).months.namesAbbr,n=this.toDateString,r=t.min,i=t.max;return a({min:new Ft(r.getFullYear(),r.getMonth(),1),max:new Ft(i.getFullYear(),i.getMonth(),1),start:new Ft(t.date.getFullYear(),0,1),setter:this.setDate,build:function(t){return{value:e[t.getMonth()],ns:y.ns,dateString:n(t),cssClass:""}}})},first:function(t){return new Ft(t.getFullYear(),0,t.getDate())},last:function(t){return new Ft(t.getFullYear(),11,t.getDate())},compare:function(t,e){return r(t,e)},setDate:function(t,e){var n,a=t.getHours();e instanceof Ft?(n=e.getMonth(),t.setFullYear(e.getFullYear(),n,t.getDate()),n!==t.getMonth()&&t.setDate(0)):(n=t.getMonth()+e,t.setMonth(n),n>11&&(n-=12),n>0&&t.getMonth()!=n&&t.setDate(0)),S(t,a)},toDateString:function(t){return t.getFullYear()+"/"+t.getMonth()+"/1"}},{name:"decade",title:function(t,e,a){return n(t,e,a,10)},content:function(t){var e=t.date.getFullYear(),n=this.toDateString;return a({start:new Ft(e-e%10-1,0,1),min:new Ft(t.min.getFullYear(),0,1),max:new Ft(t.max.getFullYear(),0,1),setter:this.setDate,build:function(t,e){return{value:t.getFullYear(),ns:y.ns,dateString:n(t),cssClass:0===e||11==e?ot:""}}})},first:function(t){var e=t.getFullYear();return new Ft(e-e%10,t.getMonth(),t.getDate())},last:function(t){var e=t.getFullYear();return new Ft(e-e%10+9,t.getMonth(),t.getDate())},compare:function(t,e){return r(t,e,10)},setDate:function(t,e){u(t,e,1)},toDateString:function(t){return t.getFullYear()+"/0/1"}},{name:X,title:function(t,e,a){return n(t,e,a,100)},content:function(t){var e=t.date.getFullYear(),n=t.min.getFullYear(),r=t.max.getFullYear(),i=this.toDateString,o=n,s=r;return o-=o%10,s-=s%10,s-o<10&&(s=o+9),a({start:new Ft(e-e%100-10,0,1),min:new Ft(o,0,1),max:new Ft(s,0,1),setter:this.setDate,build:function(t,e){var a=t.getFullYear(),o=a+9;return a<n&&(a=n),o>r&&(o=r),{ns:y.ns,value:a+" - "+o,dateString:i(t),cssClass:0===e||11==e?ot:""}}})},first:function(t){var e=t.getFullYear();return new Ft(e-e%100,t.getMonth(),t.getDate())},last:function(t){var e=t.getFullYear();return new Ft(e-e%100+99,t.getMonth(),t.getDate())},compare:function(t,e){return r(t,e,100)},setDate:function(t,e){u(t,e,10)},toDateString:function(t){var e=t.getFullYear();return e-e%10+"/0/1"}}]},F.isEqualDatePart=_,F.isEqualDate=b,F.makeUnselectable=v,F.restrictValue=o,F.isInRange=s,F.addClassToViewContainer=m,F.normalize=g,F.viewsEnum=yt,F.disabled=w,y.calendar=F}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,n){(n||e)()});;!function(e,define){define("kendo.datepicker.min",["kendo.calendar.min","kendo.popup.min"],e)}(function(){return function(e,t){function a(t){var a=t.parseFormats,n=t.format;F.normalize(t),a=e.isArray(a)?a:[a],a.length||a.push("yyyy-MM-dd"),e.inArray(n,a)===-1&&a.splice(0,0,t.format),t.parseFormats=a}function n(e){e.preventDefault()}var i,o=window.kendo,r=o.ui,l=r.Widget,s=o.parseDate,d=o.keys,u=o.template,c=o._activeElement,p="<div />",f="<span />",m=".kendoDatePicker",_="click"+m,v="open",h="close",w="change",k="disabled",g="readonly",y="k-state-default",b="k-state-focused",x="k-state-selected",D="k-state-disabled",A="k-state-hover",V="mouseenter"+m+" mouseleave"+m,C="mousedown"+m,T="id",O="min",I="max",R="month",N="aria-disabled",E="aria-expanded",W="aria-hidden",F=o.calendar,P=F.isInRange,H=F.restrictValue,S=F.isEqualDatePart,q=e.extend,z=e.proxy,K=Date,M=function(t){var a,n=this,i=document.body,l=e(p).attr(W,"true").addClass("k-calendar-container").appendTo(i);n.options=t=t||{},a=t.id,a&&(a+="_dateview",l.attr(T,a),n._dateViewID=a),n.popup=new r.Popup(l,q(t.popup,t,{name:"Popup",isRtl:o.support.isRtl(t.anchor)})),n.div=l,n.value(t.value)};M.prototype={_calendar:function(){var t,a=this,i=a.calendar,l=a.options;i||(t=e(p).attr(T,o.guid()).appendTo(a.popup.element).on(C,n).on(_,"td:has(.k-link)",z(a._click,a)),a.calendar=i=new r.Calendar(t),a._setOptions(l),o.calendar.makeUnselectable(i.element),i.navigate(a._value||a._current,l.start),a.value(a._value))},_setOptions:function(e){this.calendar.setOptions({focusOnNav:!1,change:e.change,culture:e.culture,dates:e.dates,depth:e.depth,footer:e.footer,format:e.format,max:e.max,min:e.min,month:e.month,weekNumber:e.weekNumber,start:e.start,disableDates:e.disableDates})},setOptions:function(e){var t=this.options,a=e.disableDates;a&&(e.disableDates=F.disabled(a)),this.options=q(t,e,{change:t.change,close:t.close,open:t.open}),this.calendar&&this._setOptions(this.options)},destroy:function(){this.popup.destroy()},open:function(){var e=this;e._calendar(),e.popup.open()},close:function(){this.popup.close()},min:function(e){this._option(O,e)},max:function(e){this._option(I,e)},toggle:function(){var e=this;e[e.popup.visible()?h:v]()},move:function(e){var t=this,a=e.keyCode,n=t.calendar,i=e.ctrlKey&&a==d.DOWN||a==d.ENTER,o=!1;if(e.altKey)a==d.DOWN?(t.open(),e.preventDefault(),o=!0):a==d.UP&&(t.close(),e.preventDefault(),o=!0);else if(t.popup.visible()){if(a==d.ESC||i&&n._cell.hasClass(x))return t.close(),e.preventDefault(),!0;t._current=n._move(e),o=!0}return o},current:function(e){this._current=e,this.calendar._focus(e)},value:function(e){var t=this,a=t.calendar,n=t.options,i=n.disableDates;i&&i(e)&&(e=null),t._value=e,t._current=new K((+H(e,n.min,n.max))),a&&a.value(e)},_click:function(e){e.currentTarget.className.indexOf(x)!==-1&&this.close()},_option:function(e,t){var a=this,n=a.calendar;a.options[e]=t,n&&n[e](t)}},M.normalize=a,o.DateView=M,i=l.extend({init:function(t,n){var i,r,d=this;l.fn.init.call(d,t,n),t=d.element,n=d.options,n.disableDates=o.calendar.disabled(n.disableDates),n.min=s(t.attr("min"))||s(n.min),n.max=s(t.attr("max"))||s(n.max),a(n),d._initialOptions=q({},n),d._wrapper(),d.dateView=new M(q({},n,{id:t.attr(T),anchor:d.wrapper,change:function(){d._change(this.value()),d.close()},close:function(e){d.trigger(h)?e.preventDefault():(t.attr(E,!1),r.attr(W,!0))},open:function(e){var a,n=d.options;d.trigger(v)?e.preventDefault():(d.element.val()!==d._oldText&&(a=s(t.val(),n.parseFormats,n.culture),d.dateView[a?"current":"value"](a)),t.attr(E,!0),r.attr(W,!1),d._updateARIA(a))}})),r=d.dateView.div,d._icon();try{t[0].setAttribute("type","text")}catch(u){t[0].type="text"}t.addClass("k-input").attr({role:"combobox","aria-expanded":!1,"aria-owns":d.dateView._dateViewID}),d._reset(),d._template(),i=t.is("[disabled]")||e(d.element).parents("fieldset").is(":disabled"),i?d.enable(!1):d.readonly(t.is("[readonly]")),d._old=d._update(n.value||d.element.val()),d._oldText=t.val(),o.notify(d)},events:[v,h,w],options:{name:"DatePicker",value:null,footer:"",format:"",culture:"",parseFormats:[],min:new Date(1900,0,1),max:new Date(2099,11,31),start:R,depth:R,animation:{},month:{},dates:[],ARIATemplate:'Current focused date is #=kendo.toString(data.current, "D")#'},setOptions:function(e){var t=this,n=t._value;l.fn.setOptions.call(t,e),e=t.options,e.min=s(e.min),e.max=s(e.max),a(e),t.dateView.setOptions(e),n&&(t.element.val(o.toString(n,e.format,e.culture)),t._updateARIA(n))},_editable:function(e){var t=this,a=t._dateIcon.off(m),i=t.element.off(m),o=t._inputWrapper.off(m),r=e.readonly,l=e.disable;r||l?(o.addClass(l?D:y).removeClass(l?y:D),i.attr(k,l).attr(g,r).attr(N,l)):(o.addClass(y).removeClass(D).on(V,t._toggleHover),i.removeAttr(k).removeAttr(g).attr(N,!1).on("keydown"+m,z(t._keydown,t)).on("focusout"+m,z(t._blur,t)).on("focus"+m,function(){t._inputWrapper.addClass(b)}),a.on(_,z(t._click,t)).on(C,n))},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},destroy:function(){var e=this;l.fn.destroy.call(e),e.dateView.destroy(),e.element.off(m),e._dateIcon.off(m),e._inputWrapper.off(m),e._form&&e._form.off("reset",e._resetHandler)},open:function(){this.dateView.open()},close:function(){this.dateView.close()},min:function(e){return this._option(O,e)},max:function(e){return this._option(I,e)},value:function(e){var a=this;return e===t?a._value:(a._old=a._update(e),null===a._old&&a.element.val(""),a._oldText=a.element.val(),t)},_toggleHover:function(t){e(t.currentTarget).toggleClass(A,"mouseenter"===t.type)},_blur:function(){var e=this,t=e.element.val();e.close(),t!==e._oldText&&e._change(t),e._inputWrapper.removeClass(b)},_click:function(){var e=this,t=e.element;e.dateView.toggle(),o.support.touch||t[0]===c()||t.focus()},_change:function(e){var t,a,n,i=this,r=i.element.val();e=i._update(e),t=!o.calendar.isEqualDate(i._old,e),a=t&&!i._typing,n=r!==i.element.val(),(a||n)&&i.element.trigger(w),t&&(i._old=e,i._oldText=i.element.val(),i.trigger(w)),i._typing=!1},_keydown:function(e){var t=this,a=t.dateView,n=t.element.val(),i=!1;a.popup.visible()||e.keyCode!=d.ENTER||n===t._oldText?(i=a.move(e),t._updateARIA(a._current),i||(t._typing=!0)):t._change(n)},_icon:function(){var t,a=this,n=a.element;t=n.next("span.k-select"),t[0]||(t=e('<span unselectable="on" class="k-select" aria-label="select"><span class="k-icon k-i-calendar"></span></span>').insertAfter(n)),a._dateIcon=t.attr({role:"button","aria-controls":a.dateView._dateViewID})},_option:function(e,a){var n=this,i=n.options;return a===t?i[e]:(a=s(a,i.parseFormats,i.culture),a&&(i[e]=new K((+a)),n.dateView[e](a)),t)},_update:function(e){var t,a=this,n=a.options,i=n.min,r=n.max,l=a._value,d=s(e,n.parseFormats,n.culture),u=null===d&&null===l||d instanceof Date&&l instanceof Date;return n.disableDates(d)&&(d=null,a._old||a.element.val()||(e=null)),+d===+l&&u?(t=o.toString(d,n.format,n.culture),t!==e&&a.element.val(null===d?e:t),d):(null!==d&&S(d,i)?d=H(d,i,r):P(d,i,r)||(d=null),a._value=d,a.dateView.value(d),a.element.val(o.toString(d||e,n.format,n.culture)),a._updateARIA(d),d)},_wrapper:function(){var t,a=this,n=a.element;t=n.parents(".k-datepicker"),t[0]||(t=n.wrap(f).parent().addClass("k-picker-wrap k-state-default"),t=t.wrap(f).parent()),t[0].style.cssText=n[0].style.cssText,n.css({width:"100%",height:n[0].style.height}),a.wrapper=t.addClass("k-widget k-datepicker k-header").addClass(n[0].className),a._inputWrapper=e(t[0].firstChild)},_reset:function(){var t=this,a=t.element,n=a.attr("form"),i=n?e("#"+n):a.closest("form");i[0]&&(t._resetHandler=function(){t.value(a[0].defaultValue),t.max(t._initialOptions.max),t.min(t._initialOptions.min)},t._form=i.on("reset",t._resetHandler))},_template:function(){this._ariaTemplate=u(this.options.ARIATemplate)},_updateARIA:function(e){var t,a=this,n=a.dateView.calendar;a.element.removeAttr("aria-activedescendant"),n&&(t=n._cell,t.attr("aria-label",a._ariaTemplate({current:e||n.current()})),a.element.attr("aria-activedescendant",t.attr("id")))}}),r.plugin(i)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,a){(a||t)()});;!function(e,define){define("kendo.timepicker.min",["kendo.popup.min"],e)}(function(){return function(e,t){function n(e,t,n){var i,o=e.getTimezoneOffset();e.setTime(e.getTime()+t),n||(i=e.getTimezoneOffset()-o,e.setTime(e.getTime()+i*A))}function i(){var e=new Q,t=new Q(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0),n=new Q(e.getFullYear(),e.getMonth(),e.getDate(),12,0,0);return-1*(t.getTimezoneOffset()-n.getTimezoneOffset())}function o(e){return 60*e.getHours()*A+e.getMinutes()*A+1e3*e.getSeconds()+e.getMilliseconds()}function a(e,t,n){var i,a=o(t),r=o(n);return!e||a==r||(i=o(e),a>i&&(i+=M),r<a&&(r+=M),i>=a&&i<=r)}function r(e){var t=e.parseFormats;e.format=m(e.format||c.getCulture(e.culture).calendars.standard.patterns.t),t=Y(t)?t:[t],t.splice(0,0,e.format),e.parseFormats=t}function s(e){e.preventDefault()}var l,u,c=window.kendo,d=c.keys,p=c.parseDate,f=c._activeElement,m=c._extractFormat,h=c.support,_=h.browser,g=c.ui,v=g.Widget,w="open",k="close",y="change",x=".kendoTimePicker",b="click"+x,T="k-state-default",C="disabled",D="readonly",V="li",F="<span/>",S="k-state-focused",H="k-state-hover",W="mouseenter"+x+" mouseleave"+x,O="mousedown"+x,A=6e4,M=864e5,I="k-state-selected",B="k-state-disabled",E="aria-selected",N="aria-expanded",R="aria-hidden",z="aria-disabled",L="aria-activedescendant",P="id",Y=e.isArray,j=e.extend,K=e.proxy,Q=Date,U=new Q;U=new Q(U.getFullYear(),U.getMonth(),U.getDate(),0,0,0),l=function(t){var n=this,i=t.id;n.options=t,n._dates=[],n.ul=e('<ul tabindex="-1" role="listbox" aria-hidden="true" unselectable="on" class="k-list k-reset"/>').css({overflow:h.kineticScrollNeeded?"":"auto"}).on(b,V,K(n._click,n)).on("mouseenter"+x,V,function(){e(this).addClass(H)}).on("mouseleave"+x,V,function(){e(this).removeClass(H)}),n.list=e("<div class='k-list-container k-list-scroller' unselectable='on'/>").append(n.ul).on(O,s),i&&(n._timeViewID=i+"_timeview",n._optionID=i+"_option_selected",n.ul.attr(P,n._timeViewID)),n._popup(),n._heightHandler=K(n._height,n),n.template=c.template('<li tabindex="-1" role="option" class="k-item" unselectable="on">#=data#</li>',{useWithBlock:!1})},l.prototype={current:function(n){var i=this,o=i.options.active;return n===t?i._current:(i._current&&i._current.removeClass(I).removeAttr(E).removeAttr(P),n&&(n=e(n).addClass(I).attr(P,i._optionID).attr(E,!0),i.scroll(n[0])),i._current=n,o&&o(n),t)},close:function(){this.popup.close()},destroy:function(){var e=this;e.ul.off(x),e.list.off(x),e.popup.destroy()},open:function(){var e=this;e.ul[0].firstChild||e.bind(),e.popup.open(),e._current&&e.scroll(e._current[0])},dataBind:function(e){for(var t,n=this,i=n.options,o=i.format,r=c.toString,s=n.template,l=e.length,u=0,d="";u<l;u++)t=e[u],a(t,i.min,i.max)&&(d+=s(r(t,o,i.culture)));n._html(d)},refresh:function(){var e,t,a,r=this,s=r.options,l=s.format,u=i(),d=u<0,p=s.min,f=s.max,m=o(p),h=o(f),_=s.interval*A,g=c.toString,v=r.template,w=new Q((+p)),k=w.getDate(),y=0,x="";for(a=d?(M+u*A)/_:M/_,m!=h&&(m>h&&(h+=M),a=(h-m)/_+1),t=parseInt(a,10);y<a;y++)y&&n(w,_,d),h&&t==y&&(e=o(w),k<w.getDate()&&(e+=M),e>h&&(w=new Q((+f)))),r._dates.push(o(w)),x+=v(g(w,l,s.culture));r._html(x)},bind:function(){var e=this,t=e.options.dates;t&&t[0]?e.dataBind(t):e.refresh()},_html:function(e){var t=this;t.ul[0].innerHTML=e,t.popup.unbind(w,t._heightHandler),t.popup.one(w,t._heightHandler),t.current(null),t.select(t._value)},scroll:function(e){if(e){var t=this.list[0],n=e.offsetTop,i=e.offsetHeight,o=t.scrollTop,a=t.clientHeight,r=n+i;o>n?o=n:r>o+a&&(o=r-a),t.scrollTop=o}},select:function(t){var n,i=this,o=i.options,a=i._current;t instanceof Date&&(t=c.toString(t,o.format,o.culture)),"string"==typeof t&&(a&&a.text()===t?t=a:(t=e.grep(i.ul[0].childNodes,function(e){return(e.textContent||e.innerText)==t}),t=t[0]?t:null)),n=i._distinctSelection(t),i.current(n)},_distinctSelection:function(t){var n,i,a=this;return t&&t.length>1&&(n=o(a._value),i=e.inArray(n,a._dates),t=a.ul.children()[i]),t},setOptions:function(e){var t=this.options;e.min=p(e.min),e.max=p(e.max),this.options=j(t,e,{active:t.active,change:t.change,close:t.close,open:t.open}),this.bind()},toggle:function(){var e=this;e.popup.visible()?e.close():e.open()},value:function(e){var t=this;t._value=e,t.ul[0].firstChild&&t.select(e)},_click:function(t){var n=this,i=e(t.currentTarget),o=i.text(),a=n.options.dates;a&&a.length>0&&(o=a[i.index()]),t.isDefaultPrevented()||(n.select(i),n.options.change(o,!0),n.close())},_height:function(){var e=this,t=e.list,n=t.parent(".k-animation-container"),i=e.options.height;e.ul[0].children.length&&t.add(n).show().height(e.ul[0].scrollHeight>i?i:"auto").hide()},_parse:function(e){var t=this,n=t.options,i=t._value||U;return e instanceof Q?e:(e=p(e,n.parseFormats,n.culture),e&&(e=new Q(i.getFullYear(),i.getMonth(),i.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())),e)},_adjustListWidth:function(){var e,t,n=this.list,i=n[0].style.width,o=this.options.anchor,a=c._outerWidth;!n.data("width")&&i||(e=window.getComputedStyle?window.getComputedStyle(o[0],null):0,t=e?parseFloat(e.width):a(o),e&&(_.mozilla||_.msie)&&(t+=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight)+parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth)),i=t-(a(n)-n.width()),n.css({fontFamily:o.css("font-family"),width:i}).data("width",i))},_popup:function(){var e=this,t=e.list,n=e.options,i=n.anchor;e.popup=new g.Popup(t,j(n.popup,{anchor:i,open:n.open,close:n.close,animation:n.animation,isRtl:h.isRtl(n.anchor)}))},move:function(e){var n=this,i=e.keyCode,o=n.ul[0],a=n._current,r=i===d.DOWN;if(i===d.UP||r){if(e.altKey)return n.toggle(r),t;a=r?a?a[0].nextSibling:o.firstChild:a?a[0].previousSibling:o.lastChild,a&&n.select(a),n.options.change(n._current.text()),e.preventDefault()}else i!==d.ENTER&&i!==d.TAB&&i!==d.ESC||(e.preventDefault(),a&&n.options.change(a.text(),!0),n.close())}},l.getMilliseconds=o,c.TimeView=l,u=v.extend({init:function(t,n){var i,o,a,s=this;v.fn.init.call(s,t,n),t=s.element,n=s.options,n.min=p(t.attr("min"))||p(n.min),n.max=p(t.attr("max"))||p(n.max),r(n),s._initialOptions=j({},n),s._wrapper(),s.timeView=o=new l(j({},n,{id:t.attr(P),anchor:s.wrapper,format:n.format,change:function(e,n){n?s._change(e):t.val(e)},open:function(e){s.timeView._adjustListWidth(),s.trigger(w)?e.preventDefault():(t.attr(N,!0),i.attr(R,!1))},close:function(e){s.trigger(k)?e.preventDefault():(t.attr(N,!1),i.attr(R,!0))},active:function(e){t.removeAttr(L),e&&t.attr(L,o._optionID)}})),i=o.ul,s._icon(),s._reset();try{t[0].setAttribute("type","text")}catch(u){t[0].type="text"}t.addClass("k-input").attr({role:"combobox","aria-expanded":!1,"aria-owns":o._timeViewID}),a=t.is("[disabled]")||e(s.element).parents("fieldset").is(":disabled"),a?s.enable(!1):s.readonly(t.is("[readonly]")),s._old=s._update(n.value||s.element.val()),s._oldText=t.val(),c.notify(s)},options:{name:"TimePicker",min:U,max:U,format:"",dates:[],parseFormats:[],value:null,interval:30,height:200,animation:{}},events:[w,k,y],setOptions:function(e){var t=this,n=t._value;v.fn.setOptions.call(t,e),e=t.options,r(e),t.timeView.setOptions(e),n&&t.element.val(c.toString(n,e.format,e.culture))},dataBind:function(e){Y(e)&&this.timeView.dataBind(e)},_editable:function(e){var t=this,n=e.disable,i=e.readonly,o=t._arrow.off(x),a=t.element.off(x),r=t._inputWrapper.off(x);i||n?(r.addClass(n?B:T).removeClass(n?T:B),a.attr(C,n).attr(D,i).attr(z,n)):(r.addClass(T).removeClass(B).on(W,t._toggleHover),a.removeAttr(C).removeAttr(D).attr(z,!1).on("keydown"+x,K(t._keydown,t)).on("focusout"+x,K(t._blur,t)).on("focus"+x,function(){t._inputWrapper.addClass(S)}),o.on(b,K(t._click,t)).on(O,s))},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},destroy:function(){var e=this;v.fn.destroy.call(e),e.timeView.destroy(),e.element.off(x),e._arrow.off(x),e._inputWrapper.off(x),e._form&&e._form.off("reset",e._resetHandler)},close:function(){this.timeView.close()},open:function(){this.timeView.open()},min:function(e){return this._option("min",e)},max:function(e){return this._option("max",e)},value:function(e){var n=this;return e===t?n._value:(n._old=n._update(e),null===n._old&&n.element.val(""),n._oldText=n.element.val(),t)},_blur:function(){var e=this,t=e.element.val();e.close(),t!==e._oldText&&e._change(t),e._inputWrapper.removeClass(S)},_click:function(){var e=this,t=e.element;e.timeView.toggle(),h.touch||t[0]===f()||t.focus()},_change:function(e){var t=this;e=t._update(e),+t._old!=+e&&(t._old=e,t._oldText=t.element.val(),t._typing||t.element.trigger(y),t.trigger(y)),t._typing=!1},_icon:function(){var t,n=this,i=n.element;t=i.next("span.k-select"),t[0]||(t=e('<span unselectable="on" class="k-select" aria-label="select"><span class="k-icon k-i-clock"></span></span>').insertAfter(i)),n._arrow=t.attr({role:"button","aria-controls":n.timeView._timeViewID})},_keydown:function(e){var t=this,n=e.keyCode,i=t.timeView,o=t.element.val();i.popup.visible()||e.altKey?i.move(e):n===d.ENTER&&o!==t._oldText?t._change(o):t._typing=!0},_option:function(e,n){var i=this,o=i.options;return n===t?o[e]:(n=i.timeView._parse(n),n&&(n=new Q((+n)),o[e]=n,i.timeView.options[e]=n,i.timeView.bind()),t)},_toggleHover:function(t){e(t.currentTarget).toggleClass(H,"mouseenter"===t.type)},_update:function(e){var t=this,n=t.options,i=t.timeView,o=i._parse(e);return a(o,n.min,n.max)||(o=null),t._value=o,t.element.val(c.toString(o||e,n.format,n.culture)),i.value(o),o},_wrapper:function(){var t,n=this,i=n.element;t=i.parents(".k-timepicker"),t[0]||(t=i.wrap(F).parent().addClass("k-picker-wrap k-state-default"),t=t.wrap(F).parent()),t[0].style.cssText=i[0].style.cssText,n.wrapper=t.addClass("k-widget k-timepicker k-header").addClass(i[0].className),i.css({width:"100%",height:i[0].style.height}),n._inputWrapper=e(t[0].firstChild)},_reset:function(){var t=this,n=t.element,i=n.attr("form"),o=i?e("#"+i):n.closest("form");o[0]&&(t._resetHandler=function(){t.value(n[0].defaultValue),t.max(t._initialOptions.max),t.min(t._initialOptions.min)},t._form=o.on("reset",t._resetHandler))}}),g.plugin(u)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.datetimepicker.min",["kendo.datepicker.min","kendo.timepicker.min"],e)}(function(){return function(e,t){function a(e){var t=new Date(2100,0,1);return t.setMinutes(-e),t}function n(e){e.preventDefault()}function i(t){var a,n=r.getCulture(t.culture).calendars.standard.patterns,i=!t.parseFormats.length;t.format=d(t.format||n.g),t.timeFormat=a=d(t.timeFormat||n.t),r.DateView.normalize(t),i&&t.parseFormats.unshift("yyyy-MM-ddTHH:mm:ss"),e.inArray(a,t.parseFormats)===-1&&t.parseFormats.splice(1,0,a)}var r=window.kendo,o=r.TimeView,l=r.parseDate,s=r._activeElement,d=r._extractFormat,m=r.calendar,u=m.isInRange,c=m.restrictValue,p=m.isEqualDatePart,f=o.getMilliseconds,_=r.ui,v=_.Widget,g="open",w="close",h="change",x=".kendoDateTimePicker",k="click"+x,y="disabled",b="readonly",V="k-state-default",D="k-state-focused",T="k-state-hover",A="k-state-disabled",I="mouseenter"+x+" mouseleave"+x,F="mousedown"+x,C="month",O="<span/>",R="aria-activedescendant",M="aria-expanded",H="aria-hidden",W="aria-owns",B="aria-disabled",S=Date,E=new S(1800,0,1),q=new S(2099,11,31),N={view:"date"},P={view:"time"},j=e.extend,Y=v.extend({init:function(t,a){var n,o=this;v.fn.init.call(o,t,a),t=o.element,a=o.options,a.disableDates=r.calendar.disabled(a.disableDates),a.min=l(t.attr("min"))||l(a.min),a.max=l(t.attr("max"))||l(a.max),i(a),o._initialOptions=j({},a),o._wrapper(),o._views(),o._icons(),o._reset(),o._template();try{t[0].setAttribute("type","text")}catch(s){t[0].type="text"}t.addClass("k-input").attr({role:"combobox","aria-expanded":!1}),o._midnight=o._calculateMidnight(a.min,a.max),n=t.is("[disabled]")||e(o.element).parents("fieldset").is(":disabled"),n?o.enable(!1):o.readonly(t.is("[readonly]")),o._old=o._update(a.value||o.element.val()),o._oldText=t.val(),r.notify(o)},options:{name:"DateTimePicker",value:null,format:"",timeFormat:"",culture:"",parseFormats:[],dates:[],min:new S(E),max:new S(q),interval:30,height:200,footer:"",start:C,depth:C,animation:{},month:{},ARIATemplate:'Current focused date is #=kendo.toString(data.current, "d")#',dateButtonText:"Open the date view",timeButtonText:"Open the time view"},events:[g,w,h],setOptions:function(e){var t,a,n,o=this,s=o._value;v.fn.setOptions.call(o,e),e=o.options,e.min=t=l(e.min),e.max=a=l(e.max),i(e),o._midnight=o._calculateMidnight(e.min,e.max),n=e.value||o._value||o.dateView._current,t&&!p(t,n)&&(t=new S(E)),a&&!p(a,n)&&(a=new S(q)),o.dateView.setOptions(e),o.timeView.setOptions(j({},e,{format:e.timeFormat,min:t,max:a})),s&&(o.element.val(r.toString(s,e.format,e.culture)),o._updateARIA(s))},_editable:function(t){var a=this,i=a.element.off(x),o=a._dateIcon.off(x),l=a._timeIcon.off(x),d=a._inputWrapper.off(x),m=t.readonly,u=t.disable;m||u?(d.addClass(u?A:V).removeClass(u?V:A),i.attr(y,u).attr(b,m).attr(B,u)):(d.addClass(V).removeClass(A).on(I,a._toggleHover),i.removeAttr(y).removeAttr(b).attr(B,!1).on("keydown"+x,e.proxy(a._keydown,a)).on("focus"+x,function(){a._inputWrapper.addClass(D)}).on("focusout"+x,function(){a._inputWrapper.removeClass(D),i.val()!==a._oldText&&a._change(i.val()),a.close("date"),a.close("time")}),o.on(F,n).on(k,function(){a.toggle("date"),r.support.touch||i[0]===s()||i.focus()}),l.on(F,n).on(k,function(){a.toggle("time"),r.support.touch||i[0]===s()||i.focus()}))},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},destroy:function(){var e=this;v.fn.destroy.call(e),e.dateView.destroy(),e.timeView.destroy(),e.element.off(x),e._dateIcon.off(x),e._timeIcon.off(x),e._inputWrapper.off(x),e._form&&e._form.off("reset",e._resetHandler)},close:function(e){"time"!==e&&(e="date"),this[e+"View"].close()},open:function(e){"time"!==e&&(e="date"),this[e+"View"].open()},min:function(e){return this._option("min",e)},max:function(e){return this._option("max",e)},toggle:function(e){var t="timeView";"time"!==e?e="date":t="dateView",this[e+"View"].toggle(),this[t].close()},value:function(e){var a=this;return e===t?a._value:(a._old=a._update(e),null===a._old&&a.element.val(""),a._oldText=a.element.val(),t)},_change:function(e){var t,a,n,i=this,r=i.element.val();e=i._update(e),t=+i._old!=+e,a=t&&!i._typing,n=r!==i.element.val(),(a||n)&&i.element.trigger(h),t&&(i._old=e,i._oldText=i.element.val(),i.trigger(h)),i._typing=!1},_option:function(e,n){var i,r,o=this,s=o.options,d=o.timeView,m=d.options,u=o._value||o._old;if(n===t)return s[e];if(n=l(n,s.parseFormats,s.culture)){if(s.min.getTime()===s.max.getTime()&&(m.dates=[]),s[e]=new S(n.getTime()),o.dateView[e](n),o._midnight=o._calculateMidnight(s.min,s.max),u&&(i=p(s.min,u),r=p(s.max,u)),i||r){if(m[e]=n,i&&!r&&(m.max=a(s.interval)),r){if(o._midnight)return d.dataBind([q]),t;i||(m.min=E)}}else m.max=q,m.min=E;d.bind()}},_toggleHover:function(t){e(t.currentTarget).toggleClass(T,"mouseenter"===t.type)},_update:function(t){var n,i,o,s,d,m=this,f=m.options,_=f.min,v=f.max,g=f.dates,w=m.timeView,x=m._value,k=l(t,f.parseFormats,f.culture),y=null===k&&null===x||k instanceof Date&&x instanceof Date;return f.disableDates&&f.disableDates(k)&&(k=null,m._old||m.element.val()||(t=null)),+k===+x&&y?(d=r.toString(k,f.format,f.culture),d!==t&&(m.element.val(null===k?t:d),t instanceof String&&m.element.trigger(h)),k):(null!==k&&p(k,_)?k=c(k,_,v):u(k,_,v)||(k=null),m._value=k,w.value(k),m.dateView.value(k),k&&(o=m._old,i=w.options,g[0]&&(g=e.grep(g,function(e){return p(k,e)}),g[0]&&(w.dataBind(g),s=!0)),s||(p(k,_)&&(i.min=_,i.max=a(f.interval),n=!0),p(k,v)&&(m._midnight?(w.dataBind([q]),s=!0):(i.max=v,n||(i.min=E),n=!0))),!s&&(!o&&n||o&&!p(o,k))&&(n||(i.max=q,i.min=E),w.bind())),m.element.val(r.toString(k||t,f.format,f.culture)),m._updateARIA(k),k)},_keydown:function(e){var t=this,a=t.dateView,n=t.timeView,i=t.element.val(),o=a.popup.visible();e.altKey&&e.keyCode===r.keys.DOWN?t.toggle(o?"time":"date"):o?(a.move(e),t._updateARIA(a._current)):n.popup.visible()?n.move(e):e.keyCode===r.keys.ENTER&&i!==t._oldText?t._change(i):t._typing=!0},_views:function(){var e,t,a,n,i,s,d=this,m=d.element,c=d.options,p=m.attr("id");d.dateView=e=new r.DateView(j({},c,{id:p,anchor:d.wrapper,change:function(){var t,a,n=e.calendar.value(),i=+n,o=+c.min,l=+c.max;i!==o&&i!==l||(t=i===o?o:l,t=new S(d._value||t),t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),u(t,o,l)&&(n=t)),d._value&&(a=r.date.setHours(new Date(n),d._value),u(a,o,l)&&(n=a)),d._change(n),d.close("date")},close:function(e){d.trigger(w,N)?e.preventDefault():(m.attr(M,!1),a.attr(H,!0),t.popup.visible()||m.removeAttr(W))},open:function(t){d.trigger(g,N)?t.preventDefault():(m.val()!==d._oldText&&(s=l(m.val(),c.parseFormats,c.culture),d.dateView[s?"current":"value"](s)),a.attr(H,!1),m.attr(M,!0).attr(W,e._dateViewID),d._updateARIA(s))}})),a=e.div,i=c.min.getTime(),d.timeView=t=new o({id:p,value:c.value,anchor:d.wrapper,animation:c.animation,format:c.timeFormat,culture:c.culture,height:c.height,interval:c.interval,min:new S(E),max:new S(q),dates:i===c.max.getTime()?[new Date(i)]:[],parseFormats:c.parseFormats,change:function(a,n){a=t._parse(a),a<c.min?(a=new S((+c.min)),t.options.min=a):a>c.max&&(a=new S((+c.max)),t.options.max=a),n?(d._timeSelected=!0,d._change(a)):(m.val(r.toString(a,c.format,c.culture)),e.value(a),d._updateARIA(a))},close:function(t){d.trigger(w,P)?t.preventDefault():(n.attr(H,!0),m.attr(M,!1),e.popup.visible()||m.removeAttr(W))},open:function(e){t._adjustListWidth(),d.trigger(g,P)?e.preventDefault():(m.val()!==d._oldText&&(s=l(m.val(),c.parseFormats,c.culture),d.timeView.value(s)),n.attr(H,!1),m.attr(M,!0).attr(W,t._timeViewID),t.options.active(t.current()))},active:function(e){m.removeAttr(R),e&&m.attr(R,t._optionID)}}),n=t.ul},_icons:function(){var t=this,a=t.element,n=t.options,i=a.next("span.k-select");i[0]||(i=e('<span unselectable="on" class="k-select"><span class="k-link k-link-date" aria-label="'+n.dateButtonText+'"><span unselectable="on" class="k-icon k-i-calendar"></span></span><span class="k-link k-link-time" aria-label="'+n.timeButtonText+'"><span unselectable="on" class="k-icon k-i-clock"></span></span></span>').insertAfter(a)),i=i.children(),i=i.children(),t._dateIcon=i.eq(0).attr("aria-controls",t.dateView._dateViewID),t._timeIcon=i.eq(1).attr("aria-controls",t.timeView._timeViewID)},_wrapper:function(){var t,a=this,n=a.element;t=n.parents(".k-datetimepicker"),t[0]||(t=n.wrap(O).parent().addClass("k-picker-wrap k-state-default"),t=t.wrap(O).parent()),t[0].style.cssText=n[0].style.cssText,n.css({width:"100%",height:n[0].style.height}),a.wrapper=t.addClass("k-widget k-datetimepicker k-header").addClass(n[0].className),a._inputWrapper=e(t[0].firstChild)},_reset:function(){var t=this,a=t.element,n=a.attr("form"),i=n?e("#"+n):a.closest("form");i[0]&&(t._resetHandler=function(){t.value(a[0].defaultValue),t.max(t._initialOptions.max),t.min(t._initialOptions.min)},t._form=i.on("reset",t._resetHandler))},_template:function(){this._ariaTemplate=r.template(this.options.ARIATemplate)},_calculateMidnight:function(e,t){return f(e)+f(t)===0},_updateARIA:function(e){var t,a=this,n=a.dateView.calendar;a.element.removeAttr(R),n&&(t=n._cell,t.attr("aria-label",a._ariaTemplate({current:e||n.current()})),a.element.attr(R,t.attr("id")))}});_.plugin(Y)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,a){(a||t)()});;!function(t,define){define("kendo.dialog.min",["kendo.core.min","kendo.popup.min"],t)}(function(){return function(t,e){function n(t){return e!==t}function i(t,e,n){return Math.max(Math.min(parseInt(t,10),n===1/0?n:parseInt(n,10)),parseInt(e,10))}function o(t){return t.keyCode==b.ENTER||t.keyCode==b.SPACEBAR}var a,r,s,l,c,d,p,u,h,f,m,_=window.kendo,g=_.Class,v=_.ui.Widget,k=t.proxy,y=_.template,b=_.keys,w=t.isFunction,x="kendoWindow",C=".k-dialog",T=".k-window",A=".k-dialog-close",F="k-content",O=".k-content",H="k-dialog-titleless",I=".k-dialog-title",z=".k-window-titlebar",E=".k-dialog-buttongroup",D=".k-button",B="k-alert",S="k-confirm",W="k-prompt",R=".k-textbox",N=".k-overlay",K=":visible",j="zIndex",M="body",P="initOpen",L="open",Q="close",V="show",q="hide",G="width",J=100,U={okText:"OK",cancel:"Cancel"},X=Math.ceil,Y=":not(link,meta,script,style)",Z=v.extend({init:function(t,e){var n=this;v.fn.init.call(n,t,e),n._init(n.element,n.options),_.notify(n)},_init:function(i,o){var r,s=this;s._centerCallback=k(s._center,s),s.appendTo=t(M),n(o.visible)&&null!==o.visible||(o.visible=i.is(K)),s.wrapperTemplate===e&&(s.wrapperTemplate=a.wrapper),s._createDialog(),r=s.wrapper=i.closest(C),o._defaultFocus===e&&(s._defaultFocus=i[0]),s._tabindex(i),s._dimensions(),this._tabKeyTrap=new m(r),s.options.visible?(s.toFront(),s._triggerInitOpen(),s.trigger(L),o.modal&&(s._overlay(r.is(K)).css({opacity:.5}),s._focusDialog())):s.wrapper.hide(),o.closable&&(r.autoApplyNS(x),i.autoApplyNS(x),r.find(A).on("click",k(s._closeClick,s)).on("keydown",k(s._closeKeyHandler,s)),i.on("keydown",k(s._keydown,s)))},_dimensions:function(){var t,e,n=this,o=n.wrapper,a=n.options,r=a.width,s=a.height,l=["minWidth","minHeight","maxWidth","maxHeight"];for(t=0;t<l.length;t++)e=a[l[t]],e&&e!=1/0&&o.css(l[t],e);this._setElementMaxHeight(),r&&o.width((""+r).indexOf("%")>0?r:i(r,a.minWidth,a.maxWidth)),s&&(o.height((""+s).indexOf("%")>0?s:i(s,a.minHeight,a.maxHeight)),this._setElementHeight())},_setElementMaxHeight:function(){var t,e,n=this,i=n.element,o=n.options.maxHeight;o!=1/0&&(t=n._paddingBox(i),e=parseFloat(o,10)-n._uiHeight()-t.vertical,e>0&&i.css({maxHeight:X(e)+"px",overflow:"hidden"}))},_paddingBox:function(t){var e=parseFloat(t.css("padding-top"),10),n=parseFloat(t.css("padding-left"),10),i=parseFloat(t.css("padding-bottom"),10),o=parseFloat(t.css("padding-right"),10);return{vertical:e+i,horizontal:n+o}},_setElementHeight:function(){var t=this,e=t.element,n=t.options.height,i=t._paddingBox(e),o=parseFloat(n,10)-t._uiHeight()-i.vertical;o>0&&t.element.css({height:X(o)+"px",overflow:"hidden"})},_uiHeight:function(){var t=this,e=t.wrapper,n=e.children(E),i=n[0]&&n[0].offsetHeight||0,o=e.children(z),a=o[0]&&o[0].offsetHeight||0;return i+a},_overlay:function(e){var n=this.appendTo.children(N),i=this.wrapper;return n.length||(n=t(a.overlay)),n.insertBefore(i[0]).toggle(e).css(j,parseInt(i.css(j),10)-1),e?this._waiAriaOverlay():this._removeWaiAriaOverlay(),n},_waiAriaOverlay:function(){var e=this.wrapper;this._overlayedNodes=e.prevAll(Y).add(e.nextAll(Y)).each(function(){var e=t(this);e.data("ariaHidden",e.attr("aria-hidden")),e.attr("aria-hidden","true")})},_removeWaiAriaOverlay:function(){return this._overlayedNodes&&this._overlayedNodes.each(function(){var e=t(this),n=e.data("ariaHidden");n?e.attr("aria-hidden",n):e.removeAttr("aria-hidden")})},_closeClick:function(t){t.preventDefault(),this.close()},_closeKeyHandler:function(t){(o(t)||t.keyCode==b.ESC)&&this.close()},_keydown:function(t){var e=this,n=e.options,i=t.keyCode;i==b.ESC&&!e._closing&&n.closable&&e.close()},_createDialog:function(){var e=this,n=e.element,i=e.options,o=_.support.isRtl(n),r=t(a.titlebar(i)),s=(n.id||_.guid())+"_title",l=t(e.wrapperTemplate(i));l.toggleClass("k-rtl",o),n.addClass(F),e.appendTo.append(l),i.closable!==!1&&(i.title!==!1?r.append(a.close(i)):l.append(a.close(i))),i.title!==!1?(l.append(r),r.attr("id",s),l.attr("aria-labelledby",s)):l.addClass(H),l.append(n),i.content&&(_.destroy(n.children()),n.html(i.content)),i.actions.length&&e._createActionbar(l)},_createActionbar:function(e){var n="stretched"===this.options.buttonLayout,i=n?"stretched":"normal",o=t(a.actionbar({buttonLayout:i}));this._addButtons(o),n&&this._normalizeButtonSize(o),e.append(o)},_addButtons:function(e){var n,i,o,r,s=this,l=s.options,c=k(s._actionClick,s),d=k(s._actionKeyHandler,s),p=s.options.actions,u=p.length,h=J/u;for(o=0;o<u;o++)n=p[o],i=s._mergeTextWithOptions(n),r=t(a.action(n)).autoApplyNS(x).html(i).appendTo(e).data("action",n.action).on("click",c).on("keydown",d),"stretched"===l.buttonLayout&&r.css(G,h+"%")},_mergeTextWithOptions:function(t){var e=t.text;return e?y(e)(this.options):""},_normalizeButtonSize:function(t){var e=this,n=e.options,i=t.children(D+":last"),o=parseFloat(i[0].style[G]),a=J-n.actions.length*o;a>0&&i.css(G,o+a+"%")},_tabindex:function(t){var e,n=this,i=n.wrapper,o=i.find(A),a=i.find(E+" "+D);v.fn._tabindex.call(this,t),e=t.attr("tabindex"),o.attr("tabIndex",e),a.attr("tabIndex",e)},_actionClick:function(t){this._runActionBtn(t.currentTarget)},_actionKeyHandler:function(t){o(t)?this._runActionBtn(t.currentTarget):t.keyCode==b.ESC&&this.close()},_runActionBtn:function(e){var n,i,o=this;o._closing||(n=t(e).data("action"),i=w(n)&&n({sender:o})===!1,i||o.close())},open:function(){var t,e,n,i=this,o=i.wrapper,a=this._animationOptions(L),r=i.options;return this._triggerInitOpen(),i.trigger(L)||(i._closing&&o.kendoStop(!0,!0),i._closing=!1,i.toFront(),r.visible=!0,r.modal&&(e=!!i._modals().length,t=i._overlay(e),t.kendoStop(!0,!0),a.duration&&_.effects.Fade&&!e?(n=_.fx(t).fadeIn(),n.duration(a.duration||0),n.endValue(.5),n.play()):t.css("opacity",.5),t.show()),o.show().kendoStop().kendoAnimate({effects:a.effects,duration:a.duration,complete:k(i._openAnimationEnd,i)}),o.show()),i},_animationOptions:function(t){var e=this.options.animation,n={open:{effects:{}},close:{hide:!0,effects:{}}};return e&&e[t]||n[t]},_openAnimationEnd:function(){this.options.modal&&this._focusDialog(),this.trigger(V)},_triggerInitOpen:function(){n(this._initOpenTriggered)||(this._initOpenTriggered=!0,this.trigger(P))},toFront:function(){var e=this,n=e.wrapper,i=+n.css(j),o=i;return e.center(),t(T).each(function(e,n){var o=t(n),a=o.css(j);isNaN(a)||(i=Math.max(+a,i))}),(!n[0].style.zIndex||o<i)&&n.css(j,i+2),e.element.find("> .k-overlay").remove(),n=null,e},close:function(){return this._close(!0),this._stopCenterOnResize(),this},_close:function(t){var e=this,n=e.wrapper,i=e.options,o=this._animationOptions("open"),a=this._animationOptions("close");if(n.is(K)&&!e.trigger(Q,{userTriggered:!t})){if(e._closing)return;e._closing=!0,i.visible=!1,this._removeOverlay(),n.kendoStop().kendoAnimate({effects:a.effects||o.effects,reverse:a.reverse===!0,duration:a.duration,complete:k(this._closeAnimationEnd,this)})}return e},center:function(){this._center(),this._centerOnResize()},_center:function(){var e=this,n=e.wrapper,i=t(window),o=0,a=0,r=a+Math.max(0,(i.width()-n.width())/2),s=o+Math.max(0,(i.height()-n.height()-parseInt(n.css("paddingTop"),10))/2);return n.css({left:r,top:s}),e},_centerOnResize:function(){this._trackResize||(_.onResize(this._centerCallback),this._trackResize=!0)},_stopCenterOnResize:function(){_.unbindResize(this._centerCallback),this._trackResize=!1},_removeOverlay:function(){var t=this._modals(),e=this.options,n=e.modal&&!t.length;n?this._overlay(!1).remove():t.length&&this._object(t.last())._overlay(!0)},_closeAnimationEnd:function(){var t,e=this;e._closing=!1,e.wrapper.hide().css("opacity",""),e.trigger(q),e.options.modal&&(t=e._object(e._modals().last()),t&&t.toFront())},_modals:function(){var e=this,n=t(T).filter(function(){var n=t(this),i=e._object(n),o=i&&i.options;return o&&o.modal&&e.options.appendTo==o.appendTo&&o.visible&&n.is(K)}).sort(function(e,n){return+t(e).css("zIndex")-+t(n).css("zIndex")});return e=null,n},_object:function(t){var n=t.children(O),i=_.widgetInstance(n);return i?i:e},destroy:function(){var e=this;e._destroy(),v.fn.destroy.call(e),e.wrapper.remove(),e.wrapper=e.element=t()},_destroy:function(){var t=this,e="."+x;t.wrapper.off(e),t.element.off(e),t.wrapper.find(A+","+E+" > "+D).off(e),t._stopCenterOnResize()},title:function(e){var n=this,i=n.wrapper,o=n.options,r=i.children(z),s=r.children(I);return arguments.length?(e===!1?(r.remove(),i.addClass(H)):(r.length||(r=t(a.titlebar(o)).prependTo(i),s=r.children(I),i.removeClass(H)),s.html(e)),n.options.title=e,n):s.html()},content:function(t,e){var i=this,o=i.wrapper.children(O);return n(t)?(this.angular("cleanup",function(){return{elements:o.children()}}),_.destroy(o.children()),o.html(t),this.angular("compile",function(){var t,n=[];for(t=o.length;--t>=0;)n.push({dataItem:e});return{elements:o.children(),data:n}}),i.options.content=t,i):o.html()},_focusDialog:function(){this._defaultFocus&&this._focus(this._defaultFocus),this._tabKeyTrap.trap()},_focus:function(t){t&&t.focus()},events:[P,L,Q,V,q],options:{title:"",buttonLayout:"stretched",actions:[],modal:!0,width:null,height:null,minWidth:0,minHeight:0,maxWidth:1/0,maxHeight:1/0,content:null,visible:null,appendTo:M,closable:!0}}),$=Z.extend({options:{name:"Dialog",messages:{close:"Close"}}});_.ui.plugin($),r=Z.extend({_init:function(t,e){var n=this;n.wrapperTemplate=a.alertWrapper,e._defaultFocus=null,n._ensureContentId(t),Z.fn._init.call(n,t,e),n.bind(q,k(n.destroy,n)),n._ariaDescribedBy(),n._initFocus()},_ensureContentId:function(e){var n=t(e);n.attr("id")||n.attr("id",_.guid()+"_k-popup")},_ariaDescribedBy:function(){this.wrapper.attr("aria-describedby",this.element.attr("id"))},_initFocus:function(){var t=this.options;this._defaultFocus=this._chooseEntryFocus(),this._defaultFocus&&t.visible&&t.modal&&this._focusDialog()},_chooseEntryFocus:function(){return this.wrapper.find(E+" > "+D)[0]},options:{title:window.location.host,closable:!1,messages:U}}),s=r.extend({_init:function(t,e){var n=this;r.fn._init.call(n,t,e),n.wrapper.addClass(B)},options:{name:"Alert",modal:!0,actions:[{text:"#= messages.okText #"}]}}),_.ui.plugin(s),l=function(e){return t(a.alert).kendoAlert({content:e}).data("kendoAlert").open()},c=r.extend({_init:function(e,n){var i=this;r.fn._init.call(i,e,n),i.wrapper.addClass(S),i.result=t.Deferred()},options:{name:"Confirm",modal:!0,actions:[{text:"#= messages.okText #",primary:!0,action:function(t){t.sender.result.resolve()}},{text:"#= messages.cancel #",action:function(t){t.sender.result.reject()}}]}}),_.ui.plugin(c),d=function(e){var n=t(a.confirm).kendoConfirm({content:e}).data("kendoConfirm").open();return n.result},p=r.extend({_init:function(e,n){var i=this;r.fn._init.call(i,e,n),i.wrapper.addClass(W),i._createPrompt(),i.result=t.Deferred()},_createPrompt:function(){var e=this.options.value,n=t(a.promptInputContainer).insertAfter(this.element);e&&n.children(R).val(e),this._defaultFocus=this._chooseEntryFocus(),this._focusDialog()},_chooseEntryFocus:function(){return this.wrapper.find(R)[0]},options:{name:"Prompt",modal:!0,value:"",actions:[{text:"#= messages.okText #",primary:!0,action:function(t){var e=t.sender,n=e.wrapper.find(R).val();e.result.resolve(n)}},{text:"#= messages.cancel #",action:function(t){var e=t.sender,n=e.wrapper.find(R).val();t.sender.result.reject(n)}}]}}),_.ui.plugin(p),u=function(e,n){var i=t(a.prompt).kendoPrompt({content:e,value:n}).data("kendoPrompt").open();return i.result},a={wrapper:y("<div class='k-widget k-dialog k-window' role='dialog' />"),action:y("<button type='button' class='k-button# if (data.primary) { # k-primary# } role='button' #'></button>"),titlebar:y("<div class='k-window-titlebar k-dialog-titlebar k-header'><span class='k-window-title k-dialog-title'>#= title #</span></div>"),close:y("<a role='button' href='\\#' class='k-button-bare k-dialog-action k-dialog-close' title='#= messages.close #' aria-label='#= messages.close #' tabindex='-1'><span class='k-icon k-i-close'></span></a>"),actionbar:y("<div class='k-dialog-buttongroup k-dialog-button-layout-#= buttonLayout #' role='toolbar' />"),overlay:"<div class='k-overlay' />",alertWrapper:y("<div class='k-widget k-dialog k-window' role='alertdialog' />"),alert:"<div />",confirm:"<div />",prompt:"<div />",promptInputContainer:"<div class='k-prompt-container'><input type='text' class='k-textbox' /></div>"},h="kendoTabKeyTrap",f="a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex], *[contenteditable]",m=g.extend({init:function(e){this.element=t(e),this.element.autoApplyNS(h)},trap:function(){this.element.on("keydown",k(this._keepInTrap,this))},removeTrap:function(){this.element.kendoDestroy(h)},destroy:function(){this.element.kendoDestroy(h),this.element=e},_keepInTrap:function(t){var e,n,i,o,a;9===t.which&&(e=t.target,n=this.element.find(f).filter(":visible[tabindex!=-1]"),i=n.length,o=i-1,a=n.index(e),t.shiftKey?0===a&&(n.get(o).focus(),t.preventDefault()):a===o&&(n.get(0).focus(),t.preventDefault()))}}),_.alert=l,_.confirm=d,_.prompt=u}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,n){(n||e)()});;!function(e,define){define("kendo.dropdownlist.min",["kendo.list.min","kendo.mobile.scroller.min"],e)}(function(){return function(e,t){function i(e,t,i){for(var n,s=0,o=t.length-1;s<o;++s)n=t[s],n in e||(e[n]={}),e=e[n];e[t[o]]=i}function n(e,t){return e>=t&&(e-=t),e}function s(e,t){for(var i=0;i<e.length;i++)if(e.charAt(i)!==t)return!1;return!0}var o=window.kendo,a=o.ui,l=a.List,r=a.Select,p=o.support,u=o._activeElement,c=o.data.ObservableObject,d=o.keys,f=".kendoDropDownList",_="disabled",h="readonly",m="change",b="k-state-focused",v="k-state-default",w="k-state-disabled",g="aria-disabled",I="mouseenter"+f+" mouseleave"+f,x="tabindex",L="filter",k="accept",y="The `optionLabel` option is not valid due to missing fields. Define a custom optionLabel as shown here http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#configuration-optionLabel",T=e.proxy,V=r.extend({init:function(i,n){var s,a,l,p=this,u=n&&n.index;p.ns=f,n=e.isArray(n)?{dataSource:n}:n,r.fn.init.call(p,i,n),n=p.options,i=p.element.on("focus"+f,T(p._focusHandler,p)),p._focusInputHandler=e.proxy(p._focusInput,p),p.optionLabel=e(),p._optionLabel(),p._inputTemplate(),p._reset(),p._prev="",p._word="",p._wrapper(),p._tabindex(),p.wrapper.data(x,p.wrapper.attr(x)),p._span(),p._popup(),p._mobile(),p._dataSource(),p._ignoreCase(),p._filterHeader(),p._aria(),p._enable(),p._oldIndex=p.selectedIndex=-1,u!==t&&(n.index=u),p._initialIndex=n.index,p.requireValueMapper(p.options),p._initList(),p._cascade(),n.autoBind?p.dataSource.fetch():p.selectedIndex===-1&&(a=n.text||"",a||(s=n.optionLabel,s&&0===n.index?a=s:p._isSelect&&(a=i.children(":selected").text())),p._textAccessor(a)),l=e(p.element).parents("fieldset").is(":disabled"),l&&p.enable(!1),p.listView.bind("click",function(e){e.preventDefault()}),o.notify(p)},options:{name:"DropDownList",enabled:!0,autoBind:!0,index:0,text:null,value:null,delay:500,height:200,dataTextField:"",dataValueField:"",optionLabel:"",cascadeFrom:"",cascadeFromField:"",ignoreCase:!0,animation:{},filter:"none",minLength:1,enforceMinLength:!1,virtual:!1,template:null,valueTemplate:null,optionLabelTemplate:null,groupTemplate:"#:data#",fixedGroupTemplate:"#:data#"},events:["open","close",m,"select","filtering","dataBinding","dataBound","cascade","set"],setOptions:function(e){r.fn.setOptions.call(this,e),this.listView.setOptions(this._listOptions(e)),this._optionLabel(),this._inputTemplate(),this._accessors(),this._filterHeader(),this._enable(),this._aria(),!this.value()&&this.hasOptionLabel()&&this.select(0)},destroy:function(){var e=this;r.fn.destroy.call(e),e.wrapper.off(f),e.element.off(f),e._inputWrapper.off(f),e._arrow.off(),e._arrow=null,e._arrowIcon=null,e.optionLabel.off()},open:function(){var e=this;e.popup.visible()||(e.listView.bound()&&e._state!==k?e._allowOpening()&&(e.popup.one("activate",e._focusInputHandler),e.popup.open(),e._resizeFilterInput(),e._focusItem()):(e._open=!0,e._state="rebind",e.filterInput&&(e.filterInput.val(""),e._prev=""),e.filterInput&&1!==e.options.minLength?(e.refresh(),e.popup.one("activate",e._focusInputHandler),e.popup.open(),e._resizeFilterInput()):e._filterSource()))},_focusInput:function(){this._focusElement(this.filterInput)},_resizeFilterInput:function(){var e,t,i=this.filterInput,n=this._prevent;i&&(e=this.filterInput[0]===u(),t=o.caret(this.filterInput[0])[0],this._prevent=!0,i.css("display","none").css("width",this.popup.element.css("width")).css("display","inline-block"),e&&(i.focus(),o.caret(i[0],t)),this._prevent=n)},_allowOpening:function(){return this.hasOptionLabel()||this.filterInput||r.fn._allowOpening.call(this)},toggle:function(e){this._toggle(e,!0)},current:function(e){var i;return e===t?(i=this.listView.focus(),!i&&0===this.selectedIndex&&this.hasOptionLabel()?this.optionLabel:i):(this._focus(e),t)},dataItem:function(i){var n=this,s=null;if(null===i)return i;if(i===t)s=n.listView.selectedDataItems()[0];else{if("number"!=typeof i){if(n.options.virtual)return n.dataSource.getByUid(e(i).data("uid"));i=i.hasClass("k-list-optionlabel")?-1:e(n.items()).index(i)}else n.hasOptionLabel()&&(i-=1);s=n.dataSource.flatView()[i]}return s||(s=n._optionLabelDataItem()),s},refresh:function(){this.listView.refresh()},text:function(e){var i,n=this,s=n.options.ignoreCase;return e=null===e?"":e,e===t?n._textAccessor():"string"!=typeof e?(n._textAccessor(e),t):(i=s?e.toLowerCase():e,n._select(function(e){return e=n._text(e),s&&(e=(e+"").toLowerCase()),e===i}).done(function(){n._textAccessor(n.dataItem()||e)}),t)},_clearFilter:function(){e(this.filterInput).val(""),r.fn._clearFilter.call(this)},value:function(e){var i=this,n=i.listView,s=i.dataSource;return e===t?(e=i._accessor()||i.listView.value()[0],e===t||null===e?"":e):(i.requireValueMapper(i.options,e),!e&&i.hasOptionLabel()||(i._initialIndex=null),this.trigger("set",{value:e}),i._request&&i.options.cascadeFrom&&i.listView.bound()?(i._valueSetter&&s.unbind(m,i._valueSetter),i._valueSetter=T(function(){i.value(e)},i),s.one(m,i._valueSetter),t):(i._isFilterEnabled()&&n.bound()&&n.isFiltered()?i._clearFilter():i._fetchData(),n.value(e).done(function(){i._old=i._accessor(),i._oldIndex=i.selectedIndex}),t))},hasOptionLabel:function(){return this.optionLabel&&!!this.optionLabel[0]},_optionLabel:function(){var i=this,n=i.options,s=n.optionLabel,a=n.optionLabelTemplate;return s?(a||(a="#:",a+="string"==typeof s?"data":o.expr(n.dataTextField,"data"),a+="#"),"function"!=typeof a&&(a=o.template(a)),i.optionLabelTemplate=a,i.hasOptionLabel()||(i.optionLabel=e('<div class="k-list-optionlabel"></div>').prependTo(i.list)),i.optionLabel.html(a(s)).off().click(T(i._click,i)).on(I,i._toggleHover),i.angular("compile",function(){return{elements:i.optionLabel,data:[{dataItem:i._optionLabelDataItem()}]}}),t):(i.optionLabel.off().remove(),i.optionLabel=e(),t)},_optionLabelText:function(){var e=this.options.optionLabel;return"string"==typeof e?e:this._text(e)},_optionLabelDataItem:function(){var t=this,i=t.options.optionLabel;return t.hasOptionLabel()?e.isPlainObject(i)?new c(i):t._assignInstance(t._optionLabelText(),""):null},_buildOptions:function(e){var i,n,s,o=this;o._isSelect&&(i=o.listView.value()[0],n=o._optionLabelDataItem(),s=n&&o._value(n),i!==t&&null!==i||(i=""),n&&(s!==t&&null!==s||(s=""),n='<option value="'+s+'">'+o._text(n)+"</option>"),o._options(e,n,i),i!==l.unifyType(o._accessor(),typeof i)&&(o._customOption=null,o._custom(i)))},_listBound:function(){var e,t=this,i=t._initialIndex,n=t._state===L,s=t.dataSource.flatView();t._presetValue=!1,t._renderFooter(),t._renderNoData(),t._toggleNoData(!s.length),t._resizePopup(!0),t.popup.position(),t._buildOptions(s),t._makeUnselectable(),n||(t._open&&t.toggle(t._allowOpening()),t._open=!1,t._fetch||(s.length?(!t.listView.value().length&&i>-1&&null!==i&&t.select(i),t._initialIndex=null,e=t.listView.selectedDataItems()[0],e&&t.text()!==t._text(e)&&t._selectValue(e)):t._textAccessor()!==t._optionLabelText()&&(t.listView.value(""),t._selectValue(null),t._oldIndex=t.selectedIndex))),t._hideBusy(),t.trigger("dataBound")},_listChange:function(){this._selectValue(this.listView.selectedDataItems()[0]),(this._presetValue||this._old&&this._oldIndex===-1)&&(this._oldIndex=this.selectedIndex)},_filterPaste:function(){this._search()},_focusHandler:function(){this.wrapper.focus()},_focusinHandler:function(){this._inputWrapper.addClass(b),this._prevent=!1},_focusoutHandler:function(){var e=this,t=window.self!==window.top;e._prevent||(clearTimeout(e._typingTimeout),p.mobileOS.ios&&t?e._change():e._blur(),e._inputWrapper.removeClass(b),e._prevent=!0,e._open=!1,e.element.blur())},_wrapperMousedown:function(){this._prevent=!!this.filterInput},_wrapperClick:function(e){e.preventDefault(),this.popup.unbind("activate",this._focusInputHandler),this._focused=this.wrapper,this._toggle()},_editable:function(e){var t=this,i=t.element,n=e.disable,s=e.readonly,o=t.wrapper.add(t.filterInput).off(f),a=t._inputWrapper.off(I);s||n?n?(o.removeAttr(x),a.addClass(w).removeClass(v)):(a.addClass(v).removeClass(w),o.on("focusin"+f,T(t._focusinHandler,t)).on("focusout"+f,T(t._focusoutHandler,t))):(i.removeAttr(_).removeAttr(h),a.addClass(v).removeClass(w).on(I,t._toggleHover),o.attr(x,o.data(x)).attr(g,!1).on("keydown"+f,T(t._keydown,t)).on("focusin"+f,T(t._focusinHandler,t)).on("focusout"+f,T(t._focusoutHandler,t)).on("mousedown"+f,T(t._wrapperMousedown,t)).on("paste"+f,T(t._filterPaste,t)),t.wrapper.on("click"+f,T(t._wrapperClick,t)),t.filterInput||o.on("keypress"+f,T(t._keypress,t))),i.attr(_,n).attr(h,s),o.attr(g,n)},_keydown:function(e){var i,n,s,o=this,a=e.keyCode,l=e.altKey,r=o.popup.visible();if(o.filterInput&&(i=o.filterInput[0]===u()),a===d.LEFT?(a=d.UP,n=!0):a===d.RIGHT&&(a=d.DOWN,n=!0),!n||!i){if(e.keyCode=a,(l&&a===d.UP||a===d.ESC)&&o._focusElement(o.wrapper),o._state===L&&a===d.ESC&&o._clearFilter(),a===d.ENTER&&o._typingTimeout&&o.filterInput&&r)return e.preventDefault(),t;if(n=o._move(e),!n){if((!r||!o.filterInput)&&(s=o._focus(),a===d.HOME?(n=!0,o._firstItem()):a===d.END&&(n=!0,o._lastItem()),n)){if(o.trigger("select",{dataItem:o._getElementDataItem(o._focus()),item:o._focus()}))return o._focus(s),t;o._select(o._focus(),!0).done(function(){r||o._blur()})}l||n||!o.filterInput||o._search()}}},_matchText:function(e,i){var n=this.options.ignoreCase;return e!==t&&null!==e&&(e+="",n&&(e=e.toLowerCase()),0===e.indexOf(i))},_shuffleData:function(e,t){var i=this._optionLabelDataItem();return i&&(e=[i].concat(e)),e.slice(t).concat(e.slice(0,t))},_selectNext:function(){var e,t,i,o=this,a=o.dataSource.flatView(),l=a.length+(o.hasOptionLabel()?1:0),r=s(o._word,o._last),p=o.selectedIndex;for(p===-1?p=0:(p+=r?1:0,p=n(p,l)),a=a.toJSON?a.toJSON():a.slice(),a=o._shuffleData(a,p),i=0;i<l&&(t=o._text(a[i]),!r||!o._matchText(t,o._last))&&!o._matchText(t,o._word);i++);i!==l&&(e=o._focus(),o._select(n(p+i,l)).done(function(){var t=function(){o.popup.visible()||o._change()};o.trigger("select",{dataItem:o._getElementDataItem(o._focus()),item:o._focus()})?o._select(e).done(t):t()}))},_keypress:function(e){var t,i=this;0!==e.which&&e.keyCode!==o.keys.ENTER&&(t=String.fromCharCode(e.charCode||e.keyCode),i.options.ignoreCase&&(t=t.toLowerCase())," "===t&&e.preventDefault(),i._word+=t,i._last=t,i._search())},_popupOpen:function(){var e=this.popup;e.wrapper=o.wrap(e.element),e.element.closest(".km-root")[0]&&(e.wrapper.addClass("km-popup km-widget"),this.wrapper.addClass("km-widget"))},_popup:function(){r.fn._popup.call(this),this.popup.one("open",T(this._popupOpen,this))},_getElementDataItem:function(e){return e&&e[0]?e[0]===this.optionLabel[0]?this._optionLabelDataItem():this.listView.dataItemByIndex(this.listView.getElementIndex(e)):null},_click:function(i){var n=this,s=i.item||e(i.currentTarget);return i.preventDefault(),n.trigger("select",{dataItem:n._getElementDataItem(s),item:s})?(n.close(),t):(n._userTriggered=!0,n._select(s).done(function(){n._focusElement(n.wrapper),n._blur()}),t)},_focusElement:function(e){var t=u(),i=this.wrapper,n=this.filterInput,s=e===n?i:n,o=p.mobileOS&&(p.touch||p.MSPointers||p.pointers);n&&n[0]===e[0]&&o||n&&s[0]===t&&(this._prevent=!0,this._focused=e.focus())},_searchByWord:function(e){var t,i;e&&(t=this,i=t.options.ignoreCase,i&&(e=e.toLowerCase()),t._select(function(i){return t._matchText(t._text(i),e)}))},_inputValue:function(){return this.text()},_search:function(){var e=this,i=e.dataSource;if(clearTimeout(e._typingTimeout),e._isFilterEnabled())e._typingTimeout=setTimeout(function(){var t=e.filterInput.val();e._prev!==t&&(e._prev=t,e.search(t),e._resizeFilterInput()),e._typingTimeout=null},e.options.delay);else{if(e._typingTimeout=setTimeout(function(){e._word=""},e.options.delay),!e.listView.bound())return i.fetch().done(function(){e._selectNext()}),t;e._selectNext()}},_get:function(t){var i,n,s,o="function"==typeof t,a=o?e():e(t);if(this.hasOptionLabel()&&("number"==typeof t?t>-1&&(t-=1):a.hasClass("k-list-optionlabel")&&(t=-1)),o){for(i=this.dataSource.flatView(),s=0;s<i.length;s++)if(t(i[s])){t=s,n=!0;break}n||(t=-1)}return t},_firstItem:function(){this.hasOptionLabel()?this._focus(this.optionLabel):this.listView.focusFirst()},_lastItem:function(){this._resetOptionLabel(),this.listView.focusLast()},_nextItem:function(){this.optionLabel.hasClass("k-state-focused")?(this._resetOptionLabel(),this.listView.focusFirst()):this.listView.focusNext()},_prevItem:function(){this.optionLabel.hasClass("k-state-focused")||(this.listView.focusPrev(),this.listView.focus()||this._focus(this.optionLabel))},_focusItem:function(){var e=this.listView,i=e.focus(),n=e.select();n=n[n.length-1],n===t&&this.options.highlightFirst&&!i&&(n=0),n!==t?e.focus(n):this.options.optionLabel?(this._focus(this.optionLabel),this._select(this.optionLabel)):e.scrollToIndex(0)},_resetOptionLabel:function(e){this.optionLabel.removeClass("k-state-focused"+(e||"")).removeAttr("id")},_focus:function(e){var i=this.listView,n=this.optionLabel;return e===t?(e=i.focus(),!e&&n.hasClass("k-state-focused")&&(e=n),e):(this._resetOptionLabel(),e=this._get(e),i.focus(e),e===-1&&(n.addClass("k-state-focused").attr("id",i._optionID),this._focused.add(this.filterInput).removeAttr("aria-activedescendant").attr("aria-activedescendant",i._optionID)),t)},_select:function(e,t){var i=this;return e=i._get(e),i.listView.select(e).done(function(){t||i._state!==L||(i._state=k),e===-1&&i._selectValue(null)})},_selectValue:function(e){var i=this,n=i.options.optionLabel,s=i.listView.select(),o="",a="";s=s[s.length-1],s===t&&(s=-1),this._resetOptionLabel(" k-state-selected"),e?(a=e,o=i._dataValue(e),n&&(s+=1)):n&&(i._focus(i.optionLabel.addClass("k-state-selected")),a=i._optionLabelText(),o="string"==typeof n?"":i._value(n),s=0),i.selectedIndex=s,null===o&&(o=""),i._textAccessor(a),i._accessor(o,s),i._triggerCascade()},_mobile:function(){var e=this,t=e.popup,i=p.mobileOS,n=t.element.parents(".km-root").eq(0);n.length&&i&&(t.options.animation.open.effects=i.android||i.meego?"fadeIn":i.ios||i.wp?"slideIn:up":t.options.animation.open.effects)},_filterHeader:function(){var t;this.filterInput&&(this.filterInput.off(f).parent().remove(),this.filterInput=null),this._isFilterEnabled()&&(t='<span class="k-icon k-i-zoom"></span>',this.filterInput=e('<input class="k-textbox"/>').attr({placeholder:this.element.attr("placeholder"),title:this.element.attr("title"),role:"listbox","aria-haspopup":!0,"aria-expanded":!1}),this.list.prepend(e('<span class="k-list-filter" />').append(this.filterInput.add(t))))},_span:function(){var t,i=this,n=i.wrapper,s="span.k-input";t=n.find(s),t[0]||(n.append('<span unselectable="on" class="k-dropdown-wrap k-state-default"><span unselectable="on" class="k-input">&nbsp;</span><span unselectable="on" class="k-select" aria-label="select"><span class="k-icon k-i-arrow-60-down"></span></span></span>').append(i.element),t=n.find(s)),i.span=t,i._inputWrapper=e(n[0].firstChild),i._arrow=n.find(".k-select"),i._arrowIcon=i._arrow.find(".k-icon")},_wrapper:function(){var e,t=this,i=t.element,n=i[0];e=i.parent(),e.is("span.k-widget")||(e=i.wrap("<span />").parent(),e[0].style.cssText=n.style.cssText,e[0].title=n.title),t._focused=t.wrapper=e.addClass("k-widget k-dropdown k-header").addClass(n.className).css("display","").attr({accesskey:i.attr("accesskey"),unselectable:"on",role:"listbox","aria-haspopup":!0,"aria-expanded":!1}),i.hide().removeAttr("accesskey")},_clearSelection:function(e){this.select(e.value()?0:-1)},_inputTemplate:function(){var t=this,i=t.options.valueTemplate;if(i=i?o.template(i):e.proxy(o.template("#:this._text(data)#",{useWithBlock:!1}),t),t.valueTemplate=i,t.hasOptionLabel()&&!t.options.optionLabelTemplate)try{t.valueTemplate(t._optionLabelDataItem())}catch(n){throw Error(y)}},_textAccessor:function(i){var n,s=null,o=this.valueTemplate,a=this._optionLabelText(),l=this.span;if(i===t)return l.text();e.isPlainObject(i)||i instanceof c?s=i:a&&a===i&&(s=this.options.optionLabel),s||(s=this._assignInstance(i,this._accessor())),this.hasOptionLabel()&&(s!==a&&this._text(s)!==a||(o=this.optionLabelTemplate,"string"!=typeof this.options.optionLabel||this.options.optionLabelTemplate||(s=a))),n=function(){return{elements:l.get(),data:[{dataItem:s}]}},this.angular("cleanup",n);try{l.html(o(s))}catch(r){l.html("")}this.angular("compile",n)},_preselect:function(e,t){e||t||(t=this._optionLabelText()),this._accessor(e),this._textAccessor(t),this._old=this._accessor(),this._oldIndex=this.selectedIndex,this.listView.setValue(e),this._initialIndex=null,this._presetValue=!0},_assignInstance:function(e,t){var n=this.options.dataTextField,s={};return n?(i(s,n.split("."),e),i(s,this.options.dataValueField.split("."),t),s=new c(s)):s=e,s}});a.plugin(V)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()});;!function(e,define){define("kendo.maskedtextbox.min",["kendo.core.min"],e)}(function(){return function(e,t){var n=window.kendo,s=n.caret,i=n.keys,o=n.ui,a=o.Widget,r=".kendoMaskedTextBox",l=e.proxy,u=(n.support.propertyChangeEvent?"propertychange":"input")+r,m="k-state-disabled",_="disabled",h="readonly",d="change",p=a.extend({init:function(t,i){var o,l,u=this;a.fn.init.call(u,t,i),u._rules=e.extend({},u.rules,u.options.rules),t=u.element,o=t[0],u.wrapper=t,u._tokenize(),u._form(),u.element.addClass("k-textbox").attr("autocomplete","off").on("focus"+r,function(){var e=o.value;e?u._togglePrompt(!0):o.value=u._old=u._emptyMask,u._oldValue=e,u._timeoutId=setTimeout(function(){s(t,0,e?u._maskLength:0)})}).on("focusout"+r,function(){var e=t.val();clearTimeout(u._timeoutId),o.value=u._old="",e!==u._emptyMask&&(o.value=u._old=e),u._change(),u._togglePrompt()}),l=t.is("[disabled]")||e(u.element).parents("fieldset").is(":disabled"),l?u.enable(!1):u.readonly(t.is("[readonly]")),u.value(u.options.value||t.val()),n.notify(u)},options:{name:"MaskedTextBox",clearPromptChar:!1,unmaskOnPost:!1,promptChar:"_",culture:"",rules:{},value:"",mask:""},events:[d],rules:{0:/\d/,9:/\d|\s/,"#":/\d|\s|\+|\-/,L:/[a-zA-Z]/,"?":/[a-zA-Z]|\s/,"&":/\S/,C:/./,A:/[a-zA-Z0-9]/,a:/[a-zA-Z0-9]|\s/},setOptions:function(t){var n=this;a.fn.setOptions.call(n,t),n._rules=e.extend({},n.rules,n.options.rules),n._tokenize(),this._unbindInput(),this._bindInput(),n.value(n.element.val())},destroy:function(){var e=this;e.element.off(r),e._formElement&&(e._formElement.off("reset",e._resetHandler),e._formElement.off("submit",e._submitHandler)),a.fn.destroy.call(e)},raw:function(){var e=this._unmask(this.element.val(),0);return e.replace(RegExp(this.options.promptChar,"g"),"")},value:function(e){var s=this.element,i=this._emptyMask;return e===t?this.element.val():(null===e&&(e=""),i?(e=this._unmask(e+""),s.val(e?i:""),this._mask(0,this._maskLength,e),e=s.val(),this._oldValue=e,n._activeElement()!==s&&(e===i?s.val(""):this._togglePrompt()),t):(s.val(e),t))},_togglePrompt:function(e){var t=this.element[0],n=t.value;this.options.clearPromptChar&&(n=e?this._oldValue:n.replace(RegExp(this.options.promptChar,"g")," "),t.value=this._old=n)},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},_bindInput:function(){var e=this;e._maskLength&&e.element.on("keydown"+r,l(e._keydown,e)).on("keypress"+r,l(e._keypress,e)).on("paste"+r,l(e._paste,e)).on(u,l(e._propertyChange,e))},_unbindInput:function(){this.element.off("keydown"+r).off("keypress"+r).off("paste"+r).off(u)},_editable:function(e){var t=this,n=t.element,s=e.disable,i=e.readonly;t._unbindInput(),i||s?n.attr(_,s).attr(h,i).toggleClass(m,s):(n.removeAttr(_).removeAttr(h).removeClass(m),t._bindInput())},_change:function(){var e=this,t=e.value();t!==e._oldValue&&(e._oldValue=t,e.trigger(d),e.element.trigger(d))},_propertyChange:function(){var e,t,i=this,o=i.element[0],a=o.value;n._activeElement()===o&&(a===i._old||i._pasting||(t=s(o)[0],e=i._unmask(a.substring(t),t),o.value=i._old=a.substring(0,t)+i._emptyMask.substring(t),i._mask(t,t,e),s(o,t)))},_paste:function(e){var t=this,n=e.target,i=s(n),o=i[0],a=i[1],r=t._unmask(n.value.substring(a),a);t._pasting=!0,setTimeout(function(){var e=n.value,i=e.substring(o,s(n)[0]);n.value=t._old=e.substring(0,o)+t._emptyMask.substring(o),t._mask(o,o,i),o=s(n)[0],t._mask(o,o,r),s(n,o),t._pasting=!1})},_form:function(){var t=this,n=t.element,s=n.attr("form"),i=s?e("#"+s):n.closest("form");i[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(n[0].value)})},t._submitHandler=function(){t.element[0].value=t._old=t.raw()},t.options.unmaskOnPost&&i.on("submit",t._submitHandler),t._formElement=i.on("reset",t._resetHandler))},_keydown:function(e){var n,o=e.keyCode,a=this.element[0],r=s(a),l=r[0],u=r[1],m=o===i.BACKSPACE;m||o===i.DELETE?(l===u&&(m?l-=1:u+=1,n=this._find(l,m)),n!==t&&n!==l?(m&&(n+=1),s(a,n)):l>-1&&this._mask(l,u,"",m),e.preventDefault()):o===i.ENTER&&this._change()},_keypress:function(e){var t,n;0===e.which||e.metaKey||e.ctrlKey||e.keyCode===i.ENTER||(t=String.fromCharCode(e.which),n=s(this.element),this._mask(n[0],n[1],t),(e.keyCode===i.BACKSPACE||t)&&e.preventDefault())},_find:function(e,t){var n=this.element.val()||this._emptyMask,s=1;for(t===!0&&(s=-1);e>-1||e<=this._maskLength;){if(n.charAt(e)!==this.tokens[e])return e;e+=s}return-1},_mask:function(e,i,o,a){var r,l,u,m,_=this.element[0],h=_.value||this._emptyMask,d=this.options.promptChar,p=0;for(e=this._find(e,a),e>i&&(i=e),l=this._unmask(h.substring(i),i),o=this._unmask(o,e),r=o.length,o&&(l=l.replace(RegExp("^_{0,"+r+"}"),"")),o+=l,h=h.split(""),u=o.charAt(p);e<this._maskLength;)h[e]=u||d,u=o.charAt(++p),m===t&&p>r&&(m=e),e=this._find(e+1);_.value=this._old=h.join(""),n._activeElement()===_&&(m===t&&(m=this._maskLength),s(_,m))},_unmask:function(t,n){var s,i,o,a,r,l,u,m;if(!t)return"";for(t=(t+"").split(""),o=0,a=n||0,r=this.options.promptChar,l=t.length,u=this.tokens.length,m="";a<u&&(s=t[o],i=this.tokens[a],s===i||s===r?(m+=s===r?r:"",o+=1,a+=1):"string"!=typeof i?((i.test&&i.test(s)||e.isFunction(i)&&i(s))&&(m+=s,a+=1),o+=1):a+=1,!(o>=l)););return m},_tokenize:function(){for(var e,t,s,i,o=[],a=0,r=this.options.mask||"",l=r.split(""),u=l.length,m=0,_="",h=this.options.promptChar,d=n.getCulture(this.options.culture).numberFormat,p=this._rules;m<u;m++)if(e=l[m],t=p[e])o[a]=t,_+=h,a+=1;else for("."===e||","===e?e=d[e]:"$"===e?e=d.currency.symbol:"\\"===e&&(m+=1,e=l[m]),e=e.split(""),s=0,i=e.length;s<i;s++)o[a]=e[s],_+=e[s],a+=1;this.tokens=o,this._emptyMask=_,this._maskLength=_.length}});o.plugin(p)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.menu.min",["kendo.popup.min"],e)}(function(){return function(e,t){function n(e,t){return e=e.split(" ")[!t+0]||e,e.replace("top","up").replace("bottom","down")}function i(e,t,n){e=e.split(" ")[!t+0]||e;var i={origin:["bottom",n?"right":"left"],position:["top",n?"right":"left"]},r=/left|right/.test(e);return r?(i.origin=["top",e],i.position[1]=m.directions[e].reverse):(i.origin[0]=e,i.position[0]=m.directions[e].reverse),i.origin=i.origin.join(" "),i.position=i.position.join(" "),i}function r(t,n){try{return e.contains(t,n)}catch(i){return!1}}function o(t){t=e(t),t.addClass("k-item").children(E).addClass(U),t.children("a").addClass(I).children(E).addClass(U),t.filter(":not([disabled])").addClass(K),t.filter(".k-separator").empty().append("&nbsp;"),t.filter("li[disabled]").addClass(Q).removeAttr("disabled").attr("aria-disabled",!0),t.filter("[role]").length||t.attr("role","menuitem"),t.children("."+I).length||t.contents().filter(function(){return!(this.nodeName.match(P)||3==this.nodeType&&!e.trim(this.nodeValue))}).wrapAll("<span class='"+I+"'/>"),s(t),l(t)}function s(t){t=e(t),t.find("> .k-link > [class*=k-i-arrow]:not(.k-sprite)").remove(),t.filter(":has(.k-menu-group)").children(".k-link:not(:has([class*=k-i-arrow]:not(.k-sprite)))").each(function(){var t=e(this),n=a(t);t.append("<span class='k-icon "+n+"'/>")})}function a(e){var t,n=e.parent().parent(),i=m.support.isRtl(n);return t=n.hasClass(O+"-horizontal")?" k-i-arrow-60-down":i?" k-i-arrow-60-left":" k-i-arrow-60-right"}function l(t){t=e(t),t.filter(".k-first:not(:first-child)").removeClass(S),t.filter(".k-last:not(:last-child)").removeClass(A),t.filter(":first-child").addClass(S),t.filter(":last-child").addClass(A)}function c(t,n){var i=u(n);i&&p(t,i),n.items&&e(t).children("ul").children("li").each(function(e){c(this,n.items[e])})}function p(t,n){e(t).children(".k-link").data({selectHandler:n})}function u(e){var t=e.select,n=m.isFunction;return t&&n(t)?t:null}var d,m=window.kendo,h=m.ui,f=m._activeElement,g=m.support.touch&&m.support.mobileOS,v="mousedown",k="click",_=e.extend,C=e.proxy,w=e.each,y=m.template,b=m.keys,x=h.Widget,P=/^(ul|a|div)$/i,T=".kendoMenu",E="img",H="open",O="k-menu",I="k-link",A="k-last",D="close",R="timer",S="k-first",U="k-image",z="select",L="zIndex",N="activate",B="deactivate",M="touchstart"+T+" MSPointerDown"+T+" pointerdown"+T,G=m.support.pointers,W=m.support.msPointers,j=W||G,F=G?"pointerover":W?"MSPointerOver":"mouseenter",V=G?"pointerout":W?"MSPointerOut":"mouseleave",X=g||j,Y=e(document.documentElement),q="kendoPopup",K="k-state-default",Z="k-state-hover",$="k-state-focused",Q="k-state-disabled",J="k-state-selected",ee=".k-menu",te=".k-menu-group",ne=te+",.k-animation-container",ie=":not(.k-list) > .k-item",re=".k-item.k-state-disabled",oe=".k-item:not(.k-state-disabled)",se=".k-item:not(.k-state-disabled) > .k-link",ae=":not(.k-item.k-separator)",le=ae+":eq(0)",ce=ae+":last",pe="div:not(.k-animation-container,.k-list-container)",ue={2:1,touch:1},de={content:y("<div #= contentCssAttributes(item) # tabindex='-1'>#= content(item) #</div>"),group:y("<ul class='#= groupCssClass(group) #'#= groupAttributes(group) # role='menu' aria-hidden='true'>#= renderItems(data) #</ul>"),itemWrapper:y("<#= tag(item) # class='#= textClass(item) #'#= textAttributes(item) #>#= image(data) ##= sprite(item) ##= text(item) ##= arrow(data) #</#= tag(item) #>"),item:y("<li class='#= wrapperCssClass(group, item) #' #= itemCssAttributes(item) # role='menuitem'  #=item.items ? \"aria-haspopup='true'\": \"\"##=item.enabled === false ? \"aria-disabled='true'\" : ''#>#= itemWrapper(data) ## if (item.items) { ##= subGroup({ items: item.items, menu: menu, group: { expanded: item.expanded } }) ## } else if (item.content || item.contentUrl) { ##= renderContent(data) ## } #</li>"),image:y("<img #= imageCssAttributes(item) # alt='' src='#= item.imageUrl #' />"),arrow:y("<span class='#= arrowClass(item, group) #'></span>"),sprite:y("<span class='k-sprite #= spriteCssClass #'></span>"),empty:y("")},me={wrapperCssClass:function(e,t){var n="k-item",i=t.index;return n+=t.enabled===!1?" k-state-disabled":" k-state-default",e.firstLevel&&0===i&&(n+=" k-first"),i==e.length-1&&(n+=" k-last"),t.cssClass&&(n+=" "+t.cssClass),t.attr&&t.attr.hasOwnProperty("class")&&(n+=" "+t.attr["class"]),t.selected&&(n+=" "+J),n},itemCssAttributes:function(e){var t,n="",i=e.attr||{};for(t in i)i.hasOwnProperty(t)&&"class"!==t&&(n+=t+'="'+i[t]+'" ');return n},imageCssAttributes:function(e){var t,n="",i=e.imageAttr||{};i["class"]?i["class"]+=" "+U:i["class"]=U;for(t in i)i.hasOwnProperty(t)&&(n+=t+'="'+i[t]+'" ');return n},contentCssAttributes:function(e){var t,n="",i=e.contentAttr||{},r="k-content k-group k-menu-group";i["class"]?i["class"]+=" "+r:i["class"]=r;for(t in i)i.hasOwnProperty(t)&&(n+=t+'="'+i[t]+'" ');return n},textClass:function(){return I},textAttributes:function(e){return e.url?" href='"+e.url+"'":""},arrowClass:function(e,t){var n="k-icon";return n+=t.horizontal?" k-i-arrow-60-down":" k-i-arrow-60-right"},text:function(e){return e.encoded===!1?e.text:m.htmlEncode(e.text)},tag:function(e){return e.url?"a":"span"},groupAttributes:function(e){return e.expanded!==!0?" style='display:none'":""},groupCssClass:function(){return"k-group k-menu-group"},content:function(e){return e.content?e.content:"&nbsp;"}},he=x.extend({init:function(t,n){var i=this;x.fn.init.call(i,t,n),t=i.wrapper=i.element,n=i.options,i._initData(n),i._updateClasses(),i._animations(n),i.nextItemZIndex=100,i._tabindex(),i._focusProxy=C(i._focusHandler,i),t.on(M,oe,i._focusProxy).on(k+T,re,!1).on(k+T,oe,C(i._click,i)).on("keydown"+T,C(i._keydown,i)).on("focus"+T,C(i._focus,i)).on("focus"+T,".k-content",C(i._focus,i)).on(M+" "+v+T,".k-content",C(i._preventClose,i)).on("blur"+T,C(i._removeHoverItem,i)).on("blur"+T,"[tabindex]",C(i._checkActiveElement,i)).on(F+T,oe,C(i._mouseenter,i)).on(V+T,oe,C(i._mouseleave,i)).on(F+T+" "+V+T+" "+v+T+" "+k+T,se,C(i._toggleHover,i)),n.openOnClick&&(i.clicked=!1,i._documentClickHandler=C(i._documentClick,i),e(document).click(i._documentClickHandler)),t.attr("role","menubar"),t[0].id&&(i._ariaId=m.format("{0}_mn_active",t[0].id)),m.notify(i)},events:[H,D,N,B,z],options:{name:"Menu",animation:{open:{duration:200},close:{duration:100}},orientation:"horizontal",direction:"default",openOnClick:!1,closeOnClick:!0,hoverDelay:100,popupCollision:t},_initData:function(e){var t=this;e.dataSource&&(t.angular("cleanup",function(){return{elements:t.element.children()}}),t.element.empty(),t.append(e.dataSource,t.element),t.angular("compile",function(){return{elements:t.element.children()}}))},setOptions:function(e){var t=this.options.animation;this._animations(e),e.animation=_(!0,t,e.animation),"dataSource"in e&&this._initData(e),this._updateClasses(),x.fn.setOptions.call(this,e)},destroy:function(){var t=this;x.fn.destroy.call(t),t.element.off(T),t._documentClickHandler&&e(document).unbind("click",t._documentClickHandler),m.destroy(t.element)},enable:function(e,t){return this._toggleDisabled(e,t!==!1),this},disable:function(e){return this._toggleDisabled(e,!1),this},append:function(e,t){t=this.element.find(t);var n=this._insert(e,t,t.length?t.find("> .k-menu-group, > .k-animation-container > .k-menu-group"):null);return w(n.items,function(t){n.group.append(this),s(this),c(this,e[t]||e)}),s(t),l(n.group.find(".k-first, .k-last").add(n.items)),this},insertBefore:function(e,t){t=this.element.find(t);var n=this._insert(e,t,t.parent());return w(n.items,function(n){t.before(this),s(this),l(this),c(this,e[n]||e)}),l(t),this},insertAfter:function(e,t){t=this.element.find(t);var n=this._insert(e,t,t.parent());return w(n.items,function(n){t.after(this),s(this),l(this),c(this,e[n]||e)}),l(t),this},_insert:function(t,n,i){var r,s,a,l,c=this;return n&&n.length||(i=c.element),a=e.isPlainObject(t),l={firstLevel:i.hasClass(O),horizontal:i.hasClass(O+"-horizontal"),expanded:!0,length:i.children().length},n&&!i.length&&(i=e(he.renderGroup({group:l})).appendTo(n)),a||e.isArray(t)?r=e(e.map(a?[t]:t,function(t,n){return"string"==typeof t?e(t).get():e(he.renderItem({group:l,item:_(t,{index:n})})).get()})):(r="string"==typeof t&&"<"!=t.charAt(0)?c.element.find(t):e(t),s=r.find("> ul").addClass("k-menu-group").attr("role","menu"),r=r.filter("li"),r.add(s.find("> li")).each(function(){o(this)})),{items:r,group:i}},remove:function(e){var t,n,i,r;return e=this.element.find(e),t=this,n=e.parentsUntil(t.element,ie),i=e.parent("ul:not(.k-menu)"),e.remove(),i&&!i.children(ie).length&&(r=i.parent(".k-animation-container"),r.length?r.remove():i.remove()),n.length&&(n=n.eq(0),s(n),l(n)),t},open:function(r){var o=this,s=o.options,a="horizontal"==s.orientation,l=s.direction,c=m.support.isRtl(o.wrapper);return r=o.element.find(r),/^(top|bottom|default)$/.test(l)&&(l=c?a?(l+" left").replace("default","bottom"):"left":a?(l+" right").replace("default","bottom"):"right"),r.siblings().find(">.k-popup:visible,>.k-animation-container>.k-popup:visible").each(function(){var t=e(this).data("kendoPopup");t&&t.close(!0)}),r.each(function(){var r=e(this);clearTimeout(r.data(R)),r.data(R,setTimeout(function(){var p,u,d,h,f,v,k,C,w=r.find(".k-menu-group:first:hidden");w[0]&&o._triggerEvent({item:r[0],type:H})===!1&&(!w.find(".k-menu-group")[0]&&w.children(".k-item").length>1?(u=e(window).height(),d=function(){w.css({maxHeight:u-(m._outerHeight(w)-w.height())-m.getShadows(w).bottom,overflow:"auto"})},m.support.browser.msie&&m.support.browser.version<=7?setTimeout(d,0):d()):w.css({maxHeight:"",overflow:""}),r.data(L,r.css(L)),r.css(L,o.nextItemZIndex++),p=w.data(q),h=r.parent().hasClass(O),f=h&&a,v=i(l,h,c),k=s.animation.open.effects,C=k!==t?k:"slideIn:"+n(l,h),p?(p=w.data(q),p.options.origin=v.origin,p.options.position=v.position,p.options.animation.open.effects=C):p=w.kendoPopup({activate:function(){o._triggerEvent({item:this.wrapper.parent(),type:N})},deactivate:function(e){e.sender.element.removeData("targetTransform").css({opacity:""}),o._triggerEvent({item:this.wrapper.parent(),type:B})},origin:v.origin,position:v.position,collision:s.popupCollision!==t?s.popupCollision:f?"fit":"fit flip",anchor:r,appendTo:r,animation:{open:_(!0,{effects:C},s.animation.open),close:s.animation.close},close:function(e){var t=e.sender.wrapper.parent();o._triggerEvent({item:t[0],type:D})?e.preventDefault():(t.css(L,t.data(L)),t.removeData(L),g&&(t.removeClass(Z),o._removeHoverItem()))}}).data(q),w.removeAttr("aria-hidden"),p.open())},o.options.hoverDelay))}),o},close:function(t,n){var i=this,r=i.element;return t=r.find(t),t.length||(t=r.find(">.k-item")),t.each(function(){var t=e(this);!n&&i._isRootItem(t)&&(i.clicked=!1),clearTimeout(t.data(R)),t.data(R,setTimeout(function(){var e=t.find(".k-menu-group:not(.k-list-container):not(.k-calendar-container):first:visible").data(q);e&&(e.close(),e.element.attr("aria-hidden",!0))},i.options.hoverDelay))}),i},_toggleDisabled:function(t,n){this.element.find(t).each(function(){e(this).toggleClass(K,n).toggleClass(Q,!n).attr("aria-disabled",!n)})},_toggleHover:function(t){var n=e(m.eventTarget(t)||t.target).closest(ie),i=t.type==F||v.indexOf(t.type)!==-1;n.parents("li."+Q).length||n.toggleClass(Z,i||"mousedown"==t.type||"click"==t.type),this._removeHoverItem()},_preventClose:function(){this.options.closeOnClick||(this._closurePrevented=!0)},_checkActiveElement:function(t){var n=this,i=e(t?t.currentTarget:this._hoverItem()),o=n._findRootParent(i)[0];this._closurePrevented||setTimeout(function(){document.hasFocus()&&(r(o,m._activeElement())||!t||r(o,t.currentTarget))||n.close(o)},0),this._closurePrevented=!1},_removeHoverItem:function(){var e=this._hoverItem();e&&e.hasClass($)&&(e.removeClass($),this._oldHoverItem=null)},_updateClasses:function(){var e,t=this.element,n=".k-menu-init div ul";t.removeClass("k-menu-horizontal k-menu-vertical"),t.addClass("k-widget k-reset k-header k-menu-init "+O).addClass(O+"-"+this.options.orientation),t.find("li > ul").filter(function(){return!m.support.matchesSelector.call(this,n)}).addClass("k-group k-menu-group").attr("role","menu").attr("aria-hidden",t.is(":visible")).end().find("li > div").addClass("k-content").attr("tabindex","-1"),e=t.find("> li,.k-menu-group > li"),t.removeClass("k-menu-init"),e.each(function(){o(this)})},_mouseenter:function(t){var n=this,i=e(t.currentTarget),o=i.children(".k-animation-container").length||i.children(te).length;t.delegateTarget==i.parents(ee)[0]&&(n.options.openOnClick&&!n.clicked||g||(G||W)&&t.originalEvent.pointerType in ue&&n._isRootItem(i.closest(ie))||!r(t.currentTarget,t.relatedTarget)&&o&&n.open(i),(n.options.openOnClick&&n.clicked||X)&&i.siblings().each(C(function(e,t){n.close(t,!0)},n)))},_mouseleave:function(n){var i=this,o=e(n.currentTarget),s=o.children(".k-animation-container").length||o.children(te).length;return o.parentsUntil(".k-animation-container",".k-list-container,.k-calendar-container")[0]?(n.stopImmediatePropagation(),t):(i.options.openOnClick||g||(G||W)&&n.originalEvent.pointerType in ue||r(n.currentTarget,n.relatedTarget||n.target)||!s||r(n.currentTarget,m._activeElement())||i.close(o),t)},_click:function(n){for(var i,r,o,s=this,a=s.options,l=e(m.eventTarget(n)),c=l[0],p=l[0]?l[0].nodeName.toUpperCase():"",u="INPUT"==p||"SELECT"==p||"BUTTON"==p||"LABEL"==p,d=l.closest("."+I),h=l.closest(ie),f=h[0],g=d.attr("href"),v=l.attr("href"),k=e("<a href='#' />").attr("href"),_=!!g&&g!==k,C=_&&!!g.match(/^#/),w=!!v&&v!==k,y=a.openOnClick&&o&&s._isRootItem(h);c&&c.parentNode!=f;)c=c.parentNode;if(!e(c).is(pe)){if(h.hasClass(Q))return n.preventDefault(),t;if(n.handled||!s._triggerSelect(l,f)||u||n.preventDefault(),n.handled=!0,r=h.children(ne),o=r.is(":visible"),a.closeOnClick&&(!_||C)&&(!r.length||y))return h.removeClass(Z).css("height"),s._oldHoverItem=s._findRootParent(h),s.close(d.parentsUntil(s.element,ie)),s.clicked=!1,"MSPointerUp".indexOf(n.type)!=-1&&n.preventDefault(),t;_&&n.enterKey&&d[0].click(),(s._isRootItem(h)&&a.openOnClick||m.support.touch||(G||W)&&s._isRootItem(h.closest(ie)))&&(_||u||w||n.preventDefault(),s.clicked=!0,i=r.is(":visible")?D:H,(a.closeOnClick||i!=D)&&s[i](h))}},_triggerSelect:function(e,t){var n,i,r,o=e.data("selectHandler");return o&&(n=this._getEventData(e),o.call(this,n)),i=n&&n.isDefaultPrevented(),r=this._triggerEvent({item:t,type:z}),i||r},_getEventData:function(e){var t={sender:this,target:e,_defaultPrevented:!1,preventDefault:function(){this._defaultPrevented=!0},isDefaultPrevented:function(){return this._defaultPrevented}};return t},_documentClick:function(e){r(this.element[0],e.target)||(this.clicked=!1)},_focus:function(n){var i=this,r=n.target,o=i._hoverItem(),s=f();return r==i.wrapper[0]||e(r).is(":kendoFocusable")?(s===n.currentTarget&&(o.length?i._moveHover([],o):i._oldHoverItem||i._moveHover([],i.wrapper.children().first())),t):(n.stopPropagation(),e(r).closest(".k-content").closest(".k-menu-group").closest(".k-item").addClass($),i.wrapper.focus(),t)},_keydown:function(e){var n,i,r,o=this,s=e.keyCode,a=o._oldHoverItem,l=m.support.isRtl(o.wrapper);if(e.target==e.currentTarget||s==b.ESC){if(a||(a=o._oldHoverItem=o._hoverItem()),i=o._itemBelongsToVertival(a),r=o._itemHasChildren(a),s==b.RIGHT)n=o[l?"_itemLeft":"_itemRight"](a,i,r);else if(s==b.LEFT)n=o[l?"_itemRight":"_itemLeft"](a,i,r);else if(s==b.DOWN)n=o._itemDown(a,i,r);else if(s==b.UP)n=o._itemUp(a,i,r);else if(s==b.ESC)n=o._itemEsc(a,i);else if(s==b.ENTER||s==b.SPACEBAR)n=a.children(".k-link"),n.length>0&&(o._click({target:n[0],preventDefault:function(){},enterKey:!0}),o._moveHover(a,o._findRootParent(a)));else if(s==b.TAB)return n=o._findRootParent(a),o._moveHover(a,n),o._checkActiveElement(),t;n&&n[0]&&(e.preventDefault(),e.stopPropagation())}},_hoverItem:function(){return this.wrapper.find(".k-item.k-state-hover,.k-item.k-state-focused").filter(":visible")},_itemBelongsToVertival:function(e){var t=this.wrapper.hasClass("k-menu-vertical");return e.length?e.parent().hasClass("k-menu-group")||t:t},_itemHasChildren:function(e){return!!e.length&&e.children("ul.k-menu-group, div.k-animation-container").length>0},_moveHover:function(t,n){var i=this,r=i._ariaId;t.length&&n.length&&t.removeClass($),n.length&&(n[0].id&&(r=n[0].id),n.addClass($),i._oldHoverItem=n,r&&(i.element.removeAttr("aria-activedescendant"),e("#"+r).removeAttr("id"),n.attr("id",r),i.element.attr("aria-activedescendant",r)))},_findRootParent:function(e){return this._isRootItem(e)?e:e.parentsUntil(ee,"li.k-item").last()},_isRootItem:function(e){return e.parent().hasClass(O)},_itemRight:function(e,t,n){var i,r,o=this;if(!e.hasClass(Q))return t?n?(o.open(e),i=e.find(".k-menu-group").children().first()):"horizontal"==o.options.orientation&&(r=o._findRootParent(e),o.close(r),i=r.nextAll(le)):(i=e.nextAll(le),i.length||(i=e.prevAll(ce))),i&&!i.length?i=o.wrapper.children(".k-item").first():i||(i=[]),o._moveHover(e,i),i},_itemLeft:function(e,t){var n,i=this;return t?(n=e.parent().closest(".k-item"),i.close(n),i._isRootItem(n)&&"horizontal"==i.options.orientation&&(n=n.prevAll(le))):(n=e.prevAll(le),n.length||(n=e.nextAll(ce))),n.length||(n=i.wrapper.children(".k-item").last()),i._moveHover(e,n),n},_itemDown:function(e,t,n){var i,r=this;if(t)i=e.nextAll(le);else{if(!n||e.hasClass(Q))return;r.open(e),i=e.find(".k-menu-group").children().first()}return!i.length&&e.length?i=e.parent().children().first():e.length||(i=r.wrapper.children(".k-item").first()),r._moveHover(e,i),i},_itemUp:function(e,t){var n,i=this;if(t)return n=e.prevAll(le),!n.length&&e.length?n=e.parent().children().last():e.length||(n=i.wrapper.children(".k-item").last()),i._moveHover(e,n),n},_itemEsc:function(e,t){var n,i=this;return t?(n=e.parent().closest(".k-item"),i.close(n),i._moveHover(e,n),n):e},_triggerEvent:function(e){var t=this;return t.trigger(e.type,{type:e.type,item:e.item})},_focusHandler:function(t){var n=this,i=e(m.eventTarget(t)).closest(ie);i.hasClass(Q)||setTimeout(function(){n._moveHover([],i),i.children(".k-content")[0]&&i.parent().closest(".k-item").removeClass($)},200)},_animations:function(e){e&&"animation"in e&&!e.animation&&(e.animation={open:{effects:{}},close:{hide:!0,effects:{}}})}});_(he,{renderItem:function(e){e=_({menu:{},group:{}},e);var t=de.empty,n=e.item;return de.item(_(e,{image:n.imageUrl?de.image:t,sprite:n.spriteCssClass?de.sprite:t,itemWrapper:de.itemWrapper,renderContent:he.renderContent,arrow:n.items||n.content?de.arrow:t,subGroup:he.renderGroup},me))},renderGroup:function(e){return de.group(_({renderItems:function(e){for(var t="",n=0,i=e.items,r=i?i.length:0,o=_({length:r},e.group);n<r;n++)t+=he.renderItem(_(e,{group:o,item:_({index:n},i[n])}));return t}},e,me))},renderContent:function(e){return de.content(_(e,me))}}),d=he.extend({init:function(t,n){var i=this;he.fn.init.call(i,t,n),i._marker=m.guid().substring(0,8),i.target=e(i.options.target),i._popup(),i._wire()},options:{name:"ContextMenu",filter:null,showOn:"contextmenu",orientation:"vertical",alignToAnchor:!1,target:"body"},events:[H,D,N,B,z],setOptions:function(t){var n=this;he.fn.setOptions.call(n,t),n.target.off(n.showOn+T+n._marker,n._showProxy),n.userEvents&&n.userEvents.destroy(),n.target=e(n.options.target),t.orientation&&n.popup.wrapper[0]&&n.popup.element.unwrap(),n._wire(),he.fn.setOptions.call(this,t)},destroy:function(){var e=this;e.target.off(e.options.showOn+T+e._marker),Y.off(m.support.mousedown+T+e._marker,e._closeProxy),e.userEvents&&e.userEvents.destroy(),he.fn.destroy.call(e)},open:function(n,i){var o=this;return n=e(n)[0],r(o.element[0],e(n)[0])?he.fn.open.call(o,n):o._triggerEvent({item:o.element,type:H})===!1&&(o.popup.visible()&&o.options.filter&&(o.popup.close(!0),o.popup.element.kendoStop(!0)),i!==t?(o.popup.wrapper.hide(),o.popup.open(n,i)):(o.popup.options.anchor=(n?n:o.popup.anchor)||o.target,o.popup.element.kendoStop(!0),o.popup.open()),Y.off(o.popup.downEvent,o.popup._mousedownProxy),Y.on(m.support.mousedown+T+o._marker,o._closeProxy)),o},close:function(){var t=this;r(t.element[0],e(arguments[0])[0])?he.fn.close.call(t,arguments[0]):t.popup.visible()&&t._triggerEvent({item:t.element,type:D})===!1&&(t.popup.close(),Y.off(m.support.mousedown+T,t._closeProxy),t.unbind(z,t._closeTimeoutProxy))},_showHandler:function(e){var t,n=e,i=this,o=i.options;e.event&&(n=e.event,n.pageX=e.x.location,n.pageY=e.y.location),r(i.element[0],e.relatedTarget||e.target)||(i._eventOrigin=n,n.preventDefault(),n.stopImmediatePropagation(),i.element.find("."+$).removeClass($),(o.filter&&m.support.matchesSelector.call(n.currentTarget,o.filter)||!o.filter)&&(o.alignToAnchor?(i.popup.options.anchor=n.currentTarget,i.open(n.currentTarget)):(i.popup.options.anchor=n.currentTarget,i._targetChild?(t=i.target.offset(),i.open(n.pageX-t.left,n.pageY-t.top)):i.open(n.pageX,n.pageY))))},_closeHandler:function(t){var n,i=this,o=e(t.relatedTarget||t.target),s=o.closest(i.target.selector)[0]==i.target[0],a=o.closest(oe).children(ne),l=r(i.element[0],o[0]);i._eventOrigin=t,n=3!==t.which,i.popup.visible()&&(n&&s||!s)&&(i.options.closeOnClick&&!a[0]&&l||!l)&&(l?(this.unbind(z,this._closeTimeoutProxy),i.bind(z,i._closeTimeoutProxy)):i.close())},_wire:function(){var e=this,t=e.options,n=e.target;e._showProxy=C(e._showHandler,e),e._closeProxy=C(e._closeHandler,e),e._closeTimeoutProxy=C(e.close,e),n[0]&&(m.support.mobileOS&&"contextmenu"==t.showOn?(e.userEvents=new m.UserEvents(n,{filter:t.filter,allowSelection:!1}),n.on(t.showOn+T+e._marker,!1),e.userEvents.bind("hold",e._showProxy)):t.filter?n.on(t.showOn+T+e._marker,t.filter,e._showProxy):n.on(t.showOn+T+e._marker,e._showProxy))},_triggerEvent:function(n){var i=this,r=e(i.popup.options.anchor)[0],o=i._eventOrigin;return i._eventOrigin=t,i.trigger(n.type,_({type:n.type,item:n.item||this.element[0],target:r},o?{event:o}:{}))},_popup:function(){var e=this;e._triggerProxy=C(e._triggerEvent,e),e.popup=e.element.addClass("k-context-menu").kendoPopup({anchor:e.target||"body",copyAnchorStyles:e.options.copyAnchorStyles,collision:e.options.popupCollision||"fit",animation:e.options.animation,activate:e._triggerProxy,deactivate:e._triggerProxy,appendTo:e.options.appendTo}).data("kendoPopup"),e._targetChild=r(e.target[0],e.popup.element[0])}}),h.plugin(he),h.plugin(d)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.numerictextbox.min",["kendo.core.min","kendo.userevents.min"],e)}(function(){return function(e,t){function n(e,t){var n="k-i-arrow-"+("increase"===e?"60-up":"60-down");return'<span unselectable="on" class="k-link k-link-'+e+'" aria-label="'+t+'" title="'+t+'"><span unselectable="on" class="k-icon '+n+'"></span></span>'}function r(e,t){var n=(""+parseFloat(e,10)).split(E);return n[1]&&(n[1]=n[1].substring(0,t)),n.join(E)}var a=window.kendo,o=a.caret,s=a.keys,i=a.ui,l=i.Widget,u=a._activeElement,p=a._extractFormat,d=a.parseFloat,c=a.support.placeholder,_=a.getCulture,f="change",m="disabled",v="readonly",x="k-input",g="spin",h=".kendoNumericTextBox",w="touchend",y="mouseleave"+h,k="mouseenter"+h+" "+y,b="k-state-default",T="k-state-focused",A="k-state-hover",C="focus",E=".",H="k-state-selected",D="k-state-disabled",O="aria-disabled",R=/^(-)?(\d*)$/,N=null,W=e.proxy,j=e.extend,F=l.extend({init:function(n,r){var o,s,i,u,d,c=this,_=r&&r.step!==t;l.fn.init.call(c,n,r),r=c.options,n=c.element.on("focusout"+h,W(c._focusout,c)).attr("role","spinbutton"),r.placeholder=r.placeholder||n.attr("placeholder"),c._initialOptions=j({},r),o=c.min(n.attr("min")),s=c.max(n.attr("max")),i=c._parse(n.attr("step")),r.min===N&&o!==N&&(r.min=o),r.max===N&&s!==N&&(r.max=s),_||i===N||(r.step=i),c._reset(),c._wrapper(),c._arrows(),c._input(),a.support.mobileOS?c._text.on(w+h+" "+C+h,function(){a.support.browser.edge?c._text.one(C+h,function(){c._toggleText(!1),n.focus()}):(c._toggleText(!1),n.focus())}):c._text.on(C+h,W(c._click,c)),n.attr("aria-valuemin",r.min!==N?r.min*r.factor:r.min).attr("aria-valuemax",r.max!==N?r.max*r.factor:r.max),r.format=p(r.format),u=r.value,c.value(u!==N?u:n.val()),d=n.is("[disabled]")||e(c.element).parents("fieldset").is(":disabled"),d?c.enable(!1):c.readonly(n.is("[readonly]")),a.notify(c)},options:{name:"NumericTextBox",decimals:N,restrictDecimals:!1,min:N,max:N,value:N,step:1,round:!0,culture:"",format:"n",spinners:!0,placeholder:"",factor:1,upArrowText:"Increase value",downArrowText:"Decrease value"},events:[f,g],_editable:function(e){var t=this,n=t.element,r=e.disable,a=e.readonly,o=t._text.add(n),s=t._inputWrapper.off(k);t._toggleText(!0),t._upArrowEventHandler.unbind("press"),t._downArrowEventHandler.unbind("press"),n.off("keydown"+h).off("keypress"+h).off("paste"+h),a||r?(s.addClass(r?D:b).removeClass(r?b:D),o.attr(m,r).attr(v,a).attr(O,r)):(s.addClass(b).removeClass(D).on(k,t._toggleHover),o.removeAttr(m).removeAttr(v).attr(O,!1),t._upArrowEventHandler.bind("press",function(e){e.preventDefault(),t._spin(1),t._upArrow.addClass(H)}),t._downArrowEventHandler.bind("press",function(e){e.preventDefault(),t._spin(-1),t._downArrow.addClass(H)}),t.element.on("keydown"+h,W(t._keydown,t)).on("keypress"+h,W(t._keypress,t)).on("paste"+h,W(t._paste,t)))},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},destroy:function(){var e=this;e.element.add(e._text).add(e._upArrow).add(e._downArrow).add(e._inputWrapper).off(h),e._upArrowEventHandler.destroy(),e._downArrowEventHandler.destroy(),e._form&&e._form.off("reset",e._resetHandler),l.fn.destroy.call(e)},min:function(e){return this._option("min",e)},max:function(e){return this._option("max",e)},step:function(e){return this._option("step",e)},value:function(e){var n,r=this;return e===t?r._value:(e=r._parse(e),n=r._adjust(e),e===n&&(r._update(e),r._old=r._value),t)},focus:function(){this._focusin()},_adjust:function(e){var t=this,n=t.options,r=n.min,a=n.max;return e===N?e:(r!==N&&e<r?e=r:a!==N&&e>a&&(e=a),e)},_arrows:function(){var t,r=this,o=function(){clearTimeout(r._spinning),t.removeClass(H)},s=r.options,i=s.spinners,l=r.element;t=l.siblings(".k-icon"),t[0]||(t=e(n("increase",s.upArrowText)+n("decrease",s.downArrowText)).insertAfter(l),t.wrapAll('<span class="k-select"/>')),i||(t.parent().toggle(i),r._inputWrapper.addClass("k-expand-padding")),r._upArrow=t.eq(0),r._upArrowEventHandler=new a.UserEvents(r._upArrow,{release:o}),r._downArrow=t.eq(1),r._downArrowEventHandler=new a.UserEvents(r._downArrow,{release:o})},_blur:function(){var e=this,t=e.options.factor,n=e.element.val();e._toggleText(!0),t&&1!==t&&(n=parseFloat(n),null!==n&&(n/=t)),e._change(n)},_click:function(e){var t=this;clearTimeout(t._focusing),t._focusing=setTimeout(function(){var n,r,a,s=e.target,i=o(s)[0],l=s.value.substring(0,i),u=t._format(t.options.format),p=u[","],d=0;p&&(r=RegExp("\\"+p,"g"),a=RegExp("([\\d\\"+p+"]+)(\\"+u[E]+")?(\\d+)?")),a&&(n=a.exec(l)),n&&(d=n[0].replace(r,"").length,l.indexOf("(")!=-1&&t._value<0&&d++),t._focusin(),o(t.element[0],d)})},_change:function(e){var t=this;t._update(e),e=t._value,t._old!=e&&(t._old=e,t._typing||t.element.trigger(f),t.trigger(f)),t._typing=!1},_culture:function(e){return e||_(this.options.culture)},_focusin:function(){var e=this;e._inputWrapper.addClass(T),e._toggleText(!1),e.element[0].focus()},_focusout:function(){var e=this;clearTimeout(e._focusing),e._inputWrapper.removeClass(T).removeClass(A),e._blur()},_format:function(e,t){var n=this._culture(t).numberFormat;return e=e.toLowerCase(),e.indexOf("c")>-1?n=n.currency:e.indexOf("p")>-1&&(n=n.percent),n},_input:function(){var t,n=this,r=n.options,a="k-formatted-value",o=n.element.addClass(x).show()[0],s=o.accessKey,i=n.wrapper;t=i.find(E+a),t[0]||(t=e('<input type="text"/>').insertBefore(o).addClass(a));try{o.setAttribute("type","text")}catch(l){o.type="text"}n._initialTitle=o.title,t[0].title=o.title,t[0].tabIndex=o.tabIndex,t[0].style.cssText=o.style.cssText,t.prop("placeholder",r.placeholder),s&&(t.attr("accesskey",s),o.accessKey=""),n._text=t.addClass(o.className).attr({role:"spinbutton","aria-valuemin":r.min!==N?r.min*r.factor:r.min,"aria-valuemax":r.max!==N?r.max*r.factor:r.max})},_keydown:function(e){var t=this,n=e.keyCode;t._key=n,n==s.DOWN?t._step(-1):n==s.UP?t._step(1):n==s.ENTER?t._change(t.element.val()):t._typing=!0},_keypress:function(e){var t,n,r,a,i,l,u,p,d,c,_;0===e.which||e.metaKey||e.ctrlKey||e.keyCode===s.BACKSPACE||e.keyCode===s.ENTER||(t=this,n=t.options.min,r=t.element,a=o(r),i=a[0],l=a[1],u=String.fromCharCode(e.which),p=t._format(t.options.format),d=t._key===s.NUMPAD_DOT,c=r.val(),d&&(u=p[E]),c=c.substring(0,i)+u+c.substring(l),_=t._numericRegex(p).test(c),_&&d?(r.val(c),o(r,i+u.length),e.preventDefault()):(null!==n&&n>=0&&"-"===c.charAt(0)||!_)&&e.preventDefault(),t._key=0)},_numericRegex:function(e){var t=this,n=e[E],r=t.options.decimals,a="*";return n===E&&(n="\\"+n),r===N&&(r=e.decimals),0===r?R:(t.options.restrictDecimals&&(a="{0,"+r+"}"),t._separator!==n&&(t._separator=n,t._floatRegExp=RegExp("^(-)?(((\\d+("+n+"\\d"+a+")?)|("+n+"\\d"+a+")))?$")),t._floatRegExp)},_paste:function(e){var t=this,n=e.target,r=n.value,a=t._format(t.options.format);setTimeout(function(){var e=t._parse(n.value),o=t._numericRegex(a).test(n.value);e!==N&&t._adjust(e)===e&&o||t._update(r)})},_option:function(e,n){var r=this,a=r.element,o=r.options;return n===t?o[e]:(n=r._parse(n),(n||"step"!==e)&&(o[e]=n,a.add(r._text).attr("aria-value"+e,n),a.attr(e,n)),t)},_spin:function(e,t){var n=this;t=t||500,clearTimeout(n._spinning),n._spinning=setTimeout(function(){n._spin(e,50)},t),n._step(e)},_step:function(e){var t=this,n=t.element,r=t._parse(n.val())||0;u()!=n[0]&&t._focusin(),t.options.factor&&r&&(r/=t.options.factor),r+=t.options.step*e,t._update(t._adjust(r)),t._typing=!1,t.trigger(g)},_toggleHover:function(t){e(t.currentTarget).toggleClass(A,"mouseenter"===t.type)},_toggleText:function(e){var t=this;t._text.toggle(e),t.element.toggle(!e)},_parse:function(e,t){return d(e,this._culture(t),this.options.format)},_round:function(e,t){var n=this.options.round?a._round:r;return n(e,t)},_update:function(e){var t,n=this,r=n.options,o=r.factor,s=r.format,i=r.decimals,l=n._culture(),u=n._format(s,l);i===N&&(i=u.decimals),e=n._parse(e,l),t=e!==N,t&&(e=parseFloat(n._round(e,i),10)),n._value=e=n._adjust(e),n._placeholder(a.toString(e,s,l)),t?(o&&(e=parseFloat(n._round(e*o,i),10)),e=""+e,e.indexOf("e")!==-1&&(e=n._round(+e,i)),e=e.replace(E,u[E])):e=null,n.element.val(e),n.element.add(n._text).attr("aria-valuenow",e)},_placeholder:function(e){var t=this._text;t.val(e),c||e||t.val(this.options.placeholder),t.attr("title",this._initialTitle||t.val())},_wrapper:function(){var t,n=this,r=n.element,a=r[0];t=r.parents(".k-numerictextbox"),t.is("span.k-numerictextbox")||(t=r.hide().wrap('<span class="k-numeric-wrap k-state-default" />').parent(),t=t.wrap("<span/>").parent()),t[0].style.cssText=a.style.cssText,a.style.width="",n.wrapper=t.addClass("k-widget k-numerictextbox").addClass(a.className).css("display",""),n._inputWrapper=e(t[0].firstChild)},_reset:function(){var t=this,n=t.element,r=n.attr("form"),a=r?e("#"+r):n.closest("form");a[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(n[0].value),t.max(t._initialOptions.max),t.min(t._initialOptions.min)})},t._form=a.on("reset",t._resetHandler))}});i.plugin(F)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(t,define){define("kendo.data.odata.min",["kendo.core.min"],t)}(function(){return function(t,e){function n(a,r){var d,p,c,l,u,f,y,j,m=[],T=a.logic||"and",g=a.filters;for(d=0,p=g.length;d<p;d++)a=g[d],c=a.field,y=a.value,f=a.operator,a.filters?a=n(a,r):(j=a.ignoreCase,c=c.replace(/\./g,"/"),a=i[f],r&&(a=s[f]),"isnull"===f||"isnotnull"===f?a=o.format("{0} {1} null",c,a):"isempty"===f||"isnotempty"===f?a=o.format("{0} {1} ''",c,a):a&&y!==e&&(l=t.type(y),"string"===l?(u="'{1}'",y=y.replace(/'/g,"''"),j===!0&&(c="tolower("+c+")")):"date"===l?r?(u="{1:yyyy-MM-ddTHH:mm:ss+00:00}",y=o.timezone.apply(y,"Etc/UTC")):u="datetime'{1:yyyy-MM-ddTHH:mm:ss}'":u="{1}",a.length>3?"substringof"!==a?u="{0}({2},"+u+")":(u="{0}("+u+",{2})","doesnotcontain"===f&&(r?(u="{0}({2},'{1}') eq -1",a="indexof"):u+=" eq false")):u="{2} {0} "+u,a=o.format(u,a,y,c))),m.push(a);return a=m.join(" "+T+" "),m.length>1&&(a="("+a+")"),a}function a(t){for(var e in t)0===e.indexOf("@odata")&&delete t[e]}var o=window.kendo,r=t.extend,i={eq:"eq",neq:"ne",gt:"gt",gte:"ge",lt:"lt",lte:"le",contains:"substringof",doesnotcontain:"substringof",endswith:"endswith",startswith:"startswith",isnull:"eq",isnotnull:"ne",isempty:"eq",isnotempty:"ne"},s=r({},i,{contains:"contains"}),d={pageSize:t.noop,page:t.noop,filter:function(t,e,a){e&&(e=n(e,a),e&&(t.$filter=e))},sort:function(e,n){var a=t.map(n,function(t){var e=t.field.replace(/\./g,"/");return"desc"===t.dir&&(e+=" desc"),e}).join(",");a&&(e.$orderby=a)},skip:function(t,e){e&&(t.$skip=e)},take:function(t,e){e&&(t.$top=e)}},p={read:{dataType:"jsonp"}};r(!0,o.data,{schemas:{odata:{type:"json",data:function(t){return t.d.results||[t.d]},total:"d.__count"}},transports:{odata:{read:{cache:!0,dataType:"jsonp",jsonp:"$callback"},update:{cache:!0,dataType:"json",contentType:"application/json",type:"PUT"},create:{cache:!0,dataType:"json",contentType:"application/json",type:"POST"},destroy:{cache:!0,dataType:"json",type:"DELETE"},parameterMap:function(t,e,n){var a,r,i,s;if(t=t||{},e=e||"read",s=(this.options||p)[e],s=s?s.dataType:"json","read"===e){a={$inlinecount:"allpages"},"json"!=s&&(a.$format="json");for(i in t)d[i]?d[i](a,t[i],n):a[i]=t[i]}else{if("json"!==s)throw Error("Only json dataType can be used for "+e+" operation.");if("destroy"!==e){for(i in t)r=t[i],"number"==typeof r&&(t[i]=r+"");a=o.stringify(t)}}return a}}}}),r(!0,o.data,{schemas:{"odata-v4":{type:"json",data:function(e){return e=t.extend({},e),a(e),e.value?e.value:[e]},total:function(t){return t["@odata.count"]}}},transports:{"odata-v4":{read:{cache:!0,dataType:"json"},update:{cache:!0,dataType:"json",contentType:"application/json;IEEE754Compatible=true",type:"PUT"},create:{cache:!0,dataType:"json",contentType:"application/json;IEEE754Compatible=true",type:"POST"},destroy:{cache:!0,dataType:"json",type:"DELETE"},parameterMap:function(t,e){var n=o.data.transports.odata.parameterMap(t,e,!0);return"read"==e&&(n.$count=!0,delete n.$inlinecount),n}}}})}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,n){(n||e)()});;!function(e,define){define("kendo.panelbar.min",["kendo.core.min"],e)}(function(){return function(e,t){function n(t){t=e(t),t.filter(".k-first:not(:first-child)").removeClass(U),t.filter(".k-last:not(:last-child)").removeClass(_),t.filter(":first-child").addClass(U),t.filter(":last-child").addClass(_)}function a(t){var n=t,a=t.children("ul"),r=n.children(".k-link").children(".k-icon");t.hasClass("k-panelbar")||(!r.length&&a.length?r=e("<span class='k-icon' />").appendTo(n):a.length&&a.children().length||(r.remove(),a.remove()))}var r=window.kendo,i=r.ui,s=r.keys,l=e.extend,o=e.proxy,d=e.each,u=e.isArray,c=r.template,p=i.Widget,h=r.data.HierarchicalDataSource,m=/^(ul|a|div)$/i,f=".kendoPanelBar",g="img",v="href",_="k-last",k="k-link",C="."+k,x="error",b=".k-item",y=".k-group",I=y+":visible",w="k-image",U="k-first",S="change",A="expand",D="select",E="k-content",B="activate",G="collapse",T="dataBound",q="mouseenter",O="mouseleave",R="contentLoad",H="undefined",F="k-state-active",L="> .k-panel",W="> .k-content",j="string",M="k-state-focused",N="k-state-disabled",P="k-state-selected",$="."+P,Q="k-state-highlight",V=b+":not(.k-state-disabled)",z="> "+V+" > "+C+", .k-panel > "+V+" > "+C,J=b+".k-state-disabled > .k-link",K="> li > "+$+", .k-panel > li > "+$,X="k-state-default",Y="aria-disabled",Z="aria-expanded",ee="aria-hidden",te="aria-selected",ne=":visible",ae=":empty",re="single",ie={text:"dataTextField",url:"dataUrlField",spriteCssClass:"dataSpriteCssClassField",imageUrl:"dataImageUrlField"},se={aria:function(e){var t="";return(e.items||e.content||e.contentUrl||e.expanded)&&(t+=Z+"='"+(e.expanded?"true":"false")+"' "),e.enabled===!1&&(t+=Y+"='true'"),t},wrapperCssClass:function(e,t){var n="k-item",a=t.index;return n+=t.enabled===!1?" "+N:t.expanded===!0?" "+F:" k-state-default",0===a&&(n+=" k-first"),a==e.length-1&&(n+=" k-last"),t.cssClass&&(n+=" "+t.cssClass),n},textClass:function(e,t){var n=k;return t.firstLevel&&(n+=" k-header"),n},textAttributes:function(e){return e?" href='"+e+"'":""},arrowClass:function(e){var t="k-icon";return t+=e.expanded?" k-panelbar-collapse k-i-arrow-n":" k-panelbar-expand k-i-arrow-s"},text:function(e){return e.encoded===!1?e.text:r.htmlEncode(e.text)},groupAttributes:function(e){return e.expanded!==!0?" style='display:none'":""},groupCssClass:function(){return"k-group k-panel"},contentAttributes:function(e){return e.item.expanded!==!0?" style='display:none'":""},content:function(e){return e.content?e.content:e.contentUrl?"":"&nbsp;"},contentUrl:function(e){return e.contentUrl?'href="'+e.contentUrl+'"':""}},le=function(e){return e.children("span").children(".k-icon")},oe=r.ui.DataBoundWidget.extend({init:function(t,n){var a,i,s=this;u(n)&&(n={dataSource:n}),i=n&&!!n.dataSource,p.fn.init.call(s,t,n),t=s.wrapper=s.element.addClass("k-widget k-reset k-header k-panelbar"),n=s.options,t[0].id&&(s._itemId=t[0].id+"_pb_active"),s._tabindex(),s._accessors(),s._dataSource(),s._templates(),s._initData(i),s._updateClasses(),s._animations(n),t.on("click"+f,z,function(t){s._click(e(t.currentTarget))&&t.preventDefault()}).on(q+f+" "+O+f,z,s._toggleHover).on("click"+f,J,!1).on("click"+f,".k-request-retry",o(s._retryRequest,s)).on("keydown"+f,e.proxy(s._keydown,s)).on("focus"+f,function(){var e=s.select();s._current(e[0]?e:s._first())}).on("blur"+f,function(){s._current(null)}).attr("role","menu"),a=t.find("li."+F+" > ."+E),a[0]&&s.expand(a.parent(),!1),n.dataSource||s._angularCompile(),r.notify(s)},events:[A,G,D,B,S,x,T,R],options:{name:"PanelBar",dataSource:{},animation:{expand:{effects:"expand:vertical",duration:200},collapse:{duration:200}},messages:{loading:"Loading...",requestFailed:"Request failed.",retry:"Retry"},autoBind:!0,loadOnDemand:!0,expandMode:"multiple",dataTextField:null},_angularCompile:function(){var e=this;e.angular("compile",function(){return{elements:e.element.children("li"),data:[{dataItem:e.options.$angular}]}})},_angularCompileElements:function(t,n){var a=this;a.angular("compile",function(){return{elements:t,data:e.map(n,function(e){return[{dataItem:e}]})}})},_angularCleanup:function(){var e=this;e.angular("cleanup",function(){return{elements:e.element.children("li")}})},destroy:function(){p.fn.destroy.call(this),this.element.off(f),this._angularCleanup(),r.destroy(this.element)},_initData:function(e){var t=this;e&&(t.element.empty(),t.options.autoBind&&(t._progress(!0),t.dataSource.fetch()))},_templates:function(){var e=this,t=e.options,n=o(e._fieldAccessor,e);t.template&&typeof t.template==j?t.template=c(t.template):t.template||(t.template=c("# var text = "+n("text")+"(data.item); ## if (typeof data.item.encoded != 'undefined' && data.item.encoded === false) {##= text ## } else { ##: text ## } #")),e.templates={content:c("<div role='region' class='k-content'#= contentAttributes(data) #>#= content(item) #</div>"),group:c("<ul role='group' aria-hidden='true' class='#= groupCssClass(group) #'#= groupAttributes(group) #>#= renderItems(data) #</ul>"),itemWrapper:c("# var url = "+n("url")+"(item); ## var imageUrl = "+n("imageUrl")+"(item); ## var spriteCssClass = "+n("spriteCssClass")+"(item); ## var contentUrl = contentUrl(item); ## var tag = url||contentUrl ? 'a' : 'span'; #<#= tag # class='#= textClass(item, group) #' #= contentUrl ##= textAttributes(url) #># if (imageUrl) { #<img class='k-image' alt='' src='#= imageUrl #' /># } ## if (spriteCssClass) { #<span class='k-sprite #= spriteCssClass #'></span># } ##= data.panelBar.options.template(data) ##= arrow(data) #</#= tag #>"),item:c("<li role='menuitem' #=aria(item)#class='#= wrapperCssClass(group, item) #'"+r.attr("uid")+"='#= item.uid #'>#= itemWrapper(data) ## if (item.items && item.items.length > 0) { ##= subGroup({ items: item.items, panelBar: panelBar, group: { expanded: item.expanded } }) ## } else if (item.content || item.contentUrl) { ##= renderContent(data) ## } #</li>"),loading:c("<div class='k-item'><span class='k-icon k-i-loading'></span> #: data.messages.loading #</div>"),retry:c("#: data.messages.requestFailed # <button class='k-button k-request-retry'>#: data.messages.retry #</button>"),arrow:c("<span class='#= arrowClass(item) #'></span>"),empty:c("")}},setOptions:function(e){var t=this.options.animation;this._animations(e),e.animation=l(!0,t,e.animation),"dataSource"in e&&this.setDataSource(e.dataSource),p.fn.setOptions.call(this,e)},expand:function(n,a){var r=this,i={};return n=this.element.find(n),r._animating&&n.find("ul").is(":visible")?(r.one("complete",function(){setTimeout(function(){r.expand(n)})}),t):(r._animating=!0,a=a!==!1,n.each(function(t,s){var l,o;if(s=e(s),l=n.children(".k-group,.k-content"),l.length||(l=r._addGroupElement(n)),o=l.add(s.find(W)),!s.hasClass(N)&&o.length>0){if(r.options.expandMode==re&&r._collapseAllExpanded(s))return r;n.find("."+Q).removeClass(Q),s.addClass(Q),a||(i=r.options.animation,r.options.animation={expand:{effects:{}},collapse:{hide:!0,effects:{}}}),r._triggerEvent(A,s)||r._toggleItem(s,!1,!1),a||(r.options.animation=i)}}),r)},collapse:function(t,n){var a=this,r={};return a._animating=!0,n=n!==!1,t=a.element.find(t),t.each(function(t,i){i=e(i);var s=i.find(L).add(i.find(W));!i.hasClass(N)&&s.is(ne)&&(i.removeClass(Q),n||(r=a.options.animation,a.options.animation={expand:{effects:{}},collapse:{hide:!0,effects:{}}}),a._triggerEvent(G,i)||a._toggleItem(i,!0),n||(a.options.animation=r))}),a},updateArrow:function(t){var n=this;t=e(t),t.children(C).children(".k-panelbar-collapse, .k-panelbar-expand").remove(),t.filter(function(){var t=n.dataItem(this);return t?t.hasChildren||t.content||t.contentUrl:e(this).find(".k-panel").length>0||e(this).find(".k-content").length>0}).children(".k-link:not(:has([class*=k-i-arrow]))").each(function(){var t=e(this),n=t.parent();t.append("<span class='k-icon "+(n.hasClass(F)?" k-panelbar-collapse k-i-arrow-n":" k-panelbar-expand k-i-arrow-s")+"'/>")})},_accessors:function(){var e,t,n,a=this,i=a.options,s=a.element;for(e in ie)t=i[ie[e]],n=s.attr(r.attr(e+"-field")),!t&&n&&(t=n),t||(t=e),u(t)||(t=[t]),i[ie[e]]=t},_progress:function(e,t){var n=this.element,a=this.templates.loading({messages:this.options.messages});1==arguments.length?(t=e,t?n.html(a):n.empty()):le(e).toggleClass("k-i-loading",t).removeClass("k-i-refresh")},_refreshRoot:function(t){var n,a=this,r=a.element,i={firstLevel:!0,expanded:!0,length:r.children().length};this.element.empty(),n=e.map(t,function(t,n){return"string"==typeof t?e(t):(t.items=[],e(a.renderItem({group:i,item:l(t,{index:n})})))}),this.element.append(n),this._angularCompileElements(n,t)},_refreshChildren:function(e,t){var n,r,s,l;if(t.children(".k-group").empty(),l=e.children.data(),l.length)for(this.append(e.children,t),this.options.loadOnDemand&&this._toggleGroup(t.children(".k-group"),!1),r=t.children(".k-group").children("li"),n=0;n<r.length;n++)s=r.eq(n),this.trigger("itemChange",{item:s,data:this.dataItem(s),ns:i});else a(t),r=t.children(".k-group").children("li"),this._angularCompileElements(r,l)},findByUid:function(t){var n,a,i=this.element.find(".k-item"),s=r.attr("uid");for(a=0;a<i.length;a++)if(i[a].getAttribute(s)==t){n=i[a];break}return e(n)},refresh:function(e){var n,a,r=this.options,i=e.node,s=e.action,l=e.items,o=this.wrapper,d=r.loadOnDemand;if(e.field){if(!l[0]||!l[0].level)return;return this._updateItems(l,e.field)}if(i&&(o=this.findByUid(i.uid),this._progress(o,!1)),"add"==s?this._appendItems(e.index,l,o):"remove"==s?this.remove(this.findByUid(l[0].uid)):"itemchange"==s?this._updateItems(l):"itemloaded"==s?this._refreshChildren(i,o):this._refreshRoot(l),"remove"!=s)for(n=0;n<l.length;n++)d&&!l[n].expanded||(a=l[n],this._hasChildItems(a)&&a.load());this.trigger(T,{node:i?o:t})},_error:function(e){var t=e.node&&this.findByUid(e.node.uid),n=this.templates.retry({messages:this.options.messages});t?(this._progress(t,!1),this._expanded(t,!1),le(t).addClass("k-i-refresh"),e.node.loaded(!1)):(this._progress(!1),this.element.html(n))},_retryRequest:function(e){e.preventDefault(),this.dataSource.fetch()},items:function(){return this.element.find(".k-item > span:first-child")},setDataSource:function(e){var t=this.options;t.dataSource=e,this._dataSource(),this.options.autoBind&&(this._progress(!0),this.dataSource.fetch())},_bindDataSource:function(){this._refreshHandler=o(this.refresh,this),this._errorHandler=o(this._error,this),this.dataSource.bind(S,this._refreshHandler),this.dataSource.bind(x,this._errorHandler)},_unbindDataSource:function(){var e=this.dataSource;e&&(e.unbind(S,this._refreshHandler),e.unbind(x,this._errorHandler))},_fieldAccessor:function(t){var n=this.options[ie[t]]||[],a=n.length,i="(function(item) {";return 0===a?i+="return item['"+t+"'];":(i+="var levels = ["+e.map(n,function(e){return"function(d){ return "+r.expr(e)+"}"}).join(",")+"];",i+="if(item.level){return levels[Math.min(item.level(), "+a+"-1)](item);}else",i+="{return levels["+a+"-1](item)}"),i+="})"},_dataSource:function(){var e=this,t=e.options,n=t.dataSource;n&&(n=u(n)?{data:n}:n,e._unbindDataSource(),n.fields||(n.fields=[{field:"text"},{field:"url"},{field:"spriteCssClass"},{field:"imageUrl"}]),e.dataSource=h.create(n),e._bindDataSource())},_appendItems:function(t,n,a){var r,i,s,o,d,u=this;for(a.hasClass("k-panelbar")?(r=a.children("li"),i=a):(i=a.children(".k-group"),i.length||(i=u._addGroupElement(a)),r=i.children("li")),s={firstLevel:a.hasClass("k-panelbar"),expanded:!0,length:r.length},o=e.map(n,function(t,n){return e("string"==typeof t?t:u.renderItem({group:s,item:l(t,{index:n})}))}),typeof t==H&&(t=r.length),d=0;d<o.length;d++)0===r.length||0===t?i.append(o[d]):o[d].insertAfter(r[t-1]);u._angularCompileElements(o,n),u.dataItem(a)&&(u.dataItem(a).hasChildren=!0,u.updateArrow(a))},_updateItems:function(t,n){var a,r,s,o,d,u,c=this,p={panelBar:c.options,item:o,group:{}},h="expanded"!=n;if("selected"==n)t[0][n]?(d=c.findByUid(t[0].uid),d.hasClass(N)||c.select(d,!0)):c.clearSelection();else{for(u=e.map(t,function(e){return c.findByUid(e.uid)}),h&&c.angular("cleanup",function(){return{elements:u}}),a=0;a<t.length;a++)p.item=o=t[a],p.panelBar=c,s=u[a],r=s.parent(),h&&(p.group={firstLevel:r.hasClass("k-panelbar"),expanded:s.parent().hasClass(F),length:s.children().length},s.children(".k-link").remove(),s.prepend(c.templates.itemWrapper(l(p,{arrow:o.hasChildren||o.content||o.contentUrl?c.templates.arrow:c.templates.empty},se)))),"expanded"==n?c._toggleItem(s,!o[n],!o[n]||"true"):"enabled"==n&&(c.enable(s,o[n]),o[n]||o.selected&&o.set("selected",!1)),s.length&&this.trigger("itemChange",{item:s,data:o,ns:i});h&&c.angular("compile",function(){return{elements:u,data:e.map(t,function(e){return[{dataItem:e}]})}})}},_toggleDisabled:function(e,t){e=this.element.find(e),e.toggleClass(X,t).toggleClass(N,!t).attr(Y,!t)},dataItem:function(t){var n=e(t).closest(b).attr(r.attr("uid")),a=this.dataSource;return a&&a.getByUid(n)},select:function(n,a){var r=this;return n===t?r.element.find(K).parent():(n=r.element.find(n),n.length?n.each(function(){var n=e(this),i=n.children(C);return n.hasClass(N)?r:(r._updateSelected(i,a),t)}):this._updateSelected(n),r)},clearSelection:function(){this.select(e())},enable:function(e,t){return this._toggleDisabled(e,t!==!1),this},disable:function(e){return this._toggleDisabled(e,!1),this},append:function(e,t){t=this.element.find(t);var a=this._insert(e,t,t.length?t.find(L):null);return d(a.items,function(){a.group.append(this),n(this)}),this.updateArrow(t),n(a.group.find(".k-first, .k-last")),a.group.height("auto"),this},insertBefore:function(e,t){t=this.element.find(t);var a=this._insert(e,t,t.parent());return d(a.items,function(){t.before(this),n(this)}),n(t),a.group.height("auto"),this},insertAfter:function(e,t){t=this.element.find(t);var a=this._insert(e,t,t.parent());return d(a.items,function(){t.after(this),n(this)}),n(t),a.group.height("auto"),this},remove:function(e){e=this.element.find(e);var t=this,a=e.parentsUntil(t.element,b),r=e.parent("ul");return e.remove(),!r||r.hasClass("k-panelbar")||r.children(b).length||r.remove(),a.length&&(a=a.eq(0),t.updateArrow(a),n(a)),t},reload:function(t){var n=this;t=n.element.find(t),t.each(function(){var t=e(this);n._ajaxRequest(t,t.children("."+E),!t.is(ne))})},_first:function(){return this.element.children(V).first()},_last:function(){var e=this.element.children(V).last(),t=e.children(I);return t[0]?t.children(V).last():e},_current:function(n){var a=this,r=a._focused,i=a._itemId;return n===t?r:(a.element.removeAttr("aria-activedescendant"),r&&r.length&&(r[0].id===i&&r.removeAttr("id"),r.children(C).removeClass(M)),e(n).length&&(i=n[0].id||i,n.attr("id",i).children(C).addClass(M),a.element.attr("aria-activedescendant",i)),a._focused=n,t)},_keydown:function(e){var t=this,n=e.keyCode,a=t._current();e.target==e.currentTarget&&(n==s.DOWN||n==s.RIGHT?(t._current(t._nextItem(a)),e.preventDefault()):n==s.UP||n==s.LEFT?(t._current(t._prevItem(a)),e.preventDefault()):n==s.ENTER||n==s.SPACEBAR?(t._click(a.children(C)),e.preventDefault()):n==s.HOME?(t._current(t._first()),e.preventDefault()):n==s.END&&(t._current(t._last()),e.preventDefault()))},_nextItem:function(e){if(!e)return this._first();var t=e.children(I),n=e.nextAll(":visible").first();return t[0]&&(n=t.children("."+U)),n[0]||(n=e.parent(I).parent(b).next()),n[0]||(n=this._first()),n.hasClass(N)&&(n=this._nextItem(n)),n},_prevItem:function(e){if(!e)return this._last();var t,n=e.prevAll(":visible").first();if(n[0])for(t=n;t[0];)t=t.children(I).children("."+_),t[0]&&(n=t);else n=e.parent(I).parent(b),n[0]||(n=this._last());return n.hasClass(N)&&(n=this._prevItem(n)),n},_insert:function(t,n,a){var r,i,s,o=this,d=e.isPlainObject(t),u=n&&n[0];return u||(a=o.element),i={firstLevel:a.hasClass("k-panelbar"),expanded:e(n).hasClass(F),length:a.children().length},u&&!a.length&&(a=e(o.renderGroup({group:i,options:o.options})).appendTo(n)),d||e.isArray(t)||t instanceof h?(t instanceof h&&(t=t.data()),r=e.map(d?[t]:t,function(t,n){return e("string"==typeof t?t:o.renderItem({group:i,item:l(t,{index:n})}))}),u&&(s=o.dataItem(n),s&&(s.hasChildren=!0),n.attr(Z,!1))):(r="string"==typeof t&&"<"!=t.charAt(0)?o.element.find(t):e(t),o._updateItemsClasses(r)),t.length||(t=[t]),o._angularCompileElements(r,t),{items:r,group:a}},_toggleHover:function(t){var n=e(t.currentTarget);n.parents("li."+N).length||n.toggleClass("k-state-hover",t.type==q)},_updateClasses:function(){var t,a,r=this;t=r.element.find("li > ul").not(function(){return e(this).parentsUntil(".k-panelbar","div").length}).addClass("k-group k-panel").attr("role","group"),t.parent().attr(Z,!1).not("."+F).children("ul").attr(ee,!0).hide(),a=r.element.add(t).children(),r._updateItemsClasses(a),r.updateArrow(a),n(a)},_updateItemsClasses:function(e){for(var t=e.length,n=0;n<t;n++)this._updateItemClasses(e[n],n)},_updateItemClasses:function(t,n){var a,i,s=this._selected,l=this.options.contentUrls,o=l&&l[n],d=this.element[0];t=e(t).addClass("k-item").attr("role","menuitem"),r.support.browser.msie&&t.css("list-style-position","inside").css("list-style-position",""),t.children(g).addClass(w),i=t.children("a").addClass(k),i[0]&&(i.attr("href",o),i.children(g).addClass(w)),t.filter(":not([disabled]):not([class*=k-state])").addClass("k-state-default"),t.filter("li[disabled]").addClass("k-state-disabled").attr(Y,!0).removeAttr("disabled"),t.children("div").addClass(E).attr("role","region").attr(ee,!0).hide().parent().attr(Z,!1),i=t.children($),i[0]&&(s&&s.removeAttr(te).children($).removeClass(P),i.addClass(P),this._selected=t.attr(te,!0)),t.children(C)[0]||(a="<span class='"+k+"'/>",l&&l[n]&&t[0].parentNode==d&&(a='<a class="k-link k-header" href="'+l[n]+'"/>'),t.contents().filter(function(){return!(this.nodeName.match(m)||3==this.nodeType&&!e.trim(this.nodeValue))}).wrapAll(a)),t.parent(".k-panelbar")[0]&&t.children(C).addClass("k-header")},_click:function(e){var t,n,a,r,i,s,l,o,d,u=this,c=u.element;if(!e.parents("li."+N).length&&e.closest(".k-widget")[0]==c[0]){if(i=e.closest(C),s=i.closest(b),u._updateSelected(i),l=s.children(".k-group,.k-content"),o=this.dataItem(s),!l.length&&(u.options.loadOnDemand&&o&&o.hasChildren||this._hasChildItems(s)||s.content||s.contentUrl)&&(l=u._addGroupElement(s)),n=s.find(L).add(s.find(W)),a=i.attr(v),r=a&&("#"==a.charAt(a.length-1)||a.indexOf("#"+u.element[0].id+"-")!=-1),t=!(!r&&!n.length),n.data("animating"))return t;if(u._triggerEvent(D,s)&&(t=!0),t!==!1)return u.options.expandMode==re&&u._collapseAllExpanded(s)?t:(n.length&&(d=n.is(ne),u._triggerEvent(d?G:A,s)||(t=u._toggleItem(s,d))),t)}},_hasChildItems:function(e){return e.items&&e.items.length>0||e.hasChildren},_toggleItem:function(e,n,a){var r,i,s=this,l=e.find(L),o=e.find(C),d=o.attr(v),u=s.dataItem(e),c=u&&u.loaded();return u&&!a?(u.set("expanded",!n),r=u.hasChildren||!!u.content||!!u.contentUrl):(!u||a&&"true"!==a||c||u.content||u.contentUrl?l.length?(this._toggleGroup(l,n),r=!0):(i=e.children("."+E),i.length&&(r=!0,i.is(ae)&&d!==t?s._ajaxRequest(e,i,n):s._toggleGroup(i,n))):(s.options.loadOnDemand&&this._progress(e,!0),e.children(".k-group,.k-content").remove(),r=u.hasChildren,u.load()),r)},_toggleGroup:function(e,n){var a=this,r=a.options.animation,i=r.expand,s=l({},r.collapse),o=s&&"effects"in s;return e.is(ne)!=n?(a._animating=!1,t):(e.parent().attr(Z,!n).attr(ee,n).toggleClass(F,!n).find("> .k-link > .k-panelbar-collapse, .k-panelbar-expand").toggleClass("k-i-arrow-n",!n).toggleClass("k-panelbar-collapse",!n).toggleClass("k-i-arrow-s",n).toggleClass("k-panelbar-expand",n),n?(i=l(o?s:l({reverse:!0},i),{hide:!0}),i.complete=function(){a._animationCallback()}):i=l({complete:function(e){a._triggerEvent(B,e.closest(b)),a._animationCallback()}},i),e.kendoStop(!0,!0).kendoAnimate(i),t)},_animationCallback:function(){var e=this;e.trigger("complete"),e._animating=!1},_addGroupElement:function(t){var n=e('<ul role="group" aria-hidden="true" class="k-group k-panel" style="display:none"></ul>');return t.append(n),n},_collapseAllExpanded:function(t){var n,a=this,r=!1,i=t.find(L).add(t.find(W));return i.is(ne)&&(r=!0),i.is(ne)||0===i.length||(n=t.siblings(),n.find(L).add(n.find(W)).filter(function(){return e(this).is(ne)}).each(function(t,n){n=e(n),r=a._triggerEvent(G,n.closest(b)),r||a._toggleGroup(n,!0)}),a.one("complete",function(){setTimeout(function(){n.each(function(e,t){var n=a.dataItem(t);n&&n.set("expanded",!1)})})})),r},_ajaxRequest:function(t,n,a){var r=this,i=t.find(".k-panelbar-collapse, .k-panelbar-expand"),s=t.find(C),l=setTimeout(function(){i.addClass("k-i-loading")},100),o={},d=s.attr(v);e.ajax({type:"GET",cache:!1,url:d,dataType:"html",data:o,error:function(e,t){i.removeClass("k-i-loading"),r.trigger(x,{xhr:e,status:t})&&this.complete()},complete:function(){clearTimeout(l),i.removeClass("k-i-loading")},success:function(e){function i(){return{elements:n.get()}}try{r.angular("cleanup",i),n.html(e),r.angular("compile",i)}catch(s){var l=window.console;l&&l.error&&l.error(s.name+": "+s.message+" in "+d),this.error(this.xhr,"error")}r._toggleGroup(n,a),r.trigger(R,{item:t[0],contentElement:n[0]})}})},_triggerEvent:function(e,t){var n=this;return n.trigger(e,{item:t[0]})},_updateSelected:function(e,t){var n=this,a=n.element,r=e.parent(b),i=n._selected,s=n.dataItem(r);i&&i.removeAttr(te),n._selected=r.attr(te,!0),a.find(K).removeClass(P),a.find("> ."+Q+", .k-panel > ."+Q).removeClass(Q),e.addClass(P),e.parentsUntil(a,b).filter(":has(.k-header)").addClass(Q),n._current(r[0]?r:null),s&&s.set("selected",!0),t||n.trigger(S)},_animations:function(e){e&&"animation"in e&&!e.animation&&(e.animation={expand:{effects:{}},collapse:{hide:!0,effects:{}}})},renderItem:function(e){var t,n,a=this;return e=l({panelBar:a,group:{}},e),t=a.templates.empty,n=e.item,a.templates.item(l(e,{itemWrapper:a.templates.itemWrapper,renderContent:a.renderContent,arrow:a._hasChildItems(n)||n.content||n.contentUrl?a.templates.arrow:t,subGroup:!e.loadOnDemand||n.expanded?a.renderGroup:t},se))},renderGroup:function(e){var t=this,n=t.templates||e.panelBar.templates;return n.group(l({renderItems:function(e){for(var t="",n=0,a=e.items,r=a?a.length:0,i=l({length:r},e.group);n<r;n++)t+=e.panelBar.renderItem(l(e,{group:i,item:l({index:n},a[n])}));return t}},e,se))},renderContent:function(e){return e.panelBar.templates.content(l(e,se))}});r.ui.plugin(oe)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.slider.min",["kendo.draganddrop.min"],e)}(function(){return function(e,t){function n(e,t,n){var i=n?" k-slider-horizontal":" k-slider-vertical",a=e.style?e.style:t.attr("style"),o=t.attr("class")?" "+t.attr("class"):"",r="";return"bottomRight"==e.tickPlacement?r=" k-slider-bottomright":"topLeft"==e.tickPlacement&&(r=" k-slider-topleft"),a=a?" style='"+a+"'":"","<div class='k-widget k-slider"+i+o+"'"+a+"><div class='k-slider-wrap"+(e.showButtons?" k-slider-buttons":"")+r+"'></div></div>"}function i(e,t,n,i){var a="";return a=n?!i&&"increase"==t||i&&"increase"!=t?"k-i-arrow-60-right":"k-i-arrow-60-left":"increase"==t?"k-i-arrow-60-up":"k-i-arrow-60-down","<a class='k-button k-button-"+t+"' title='"+e[t+"ButtonTitle"]+"' aria-label='"+e[t+"ButtonTitle"]+"'><span class='k-icon "+a+"'></span></a>"}function a(e,t){var n,i="<ul class='k-reset k-slider-items'>",a=H.floor(u(t/e.smallStep))+1;for(n=0;n<a;n++)i+="<li class='k-tick' role='presentation'>&nbsp;</li>";return i+="</ul>"}function o(e,t){var n=t.is("input")?1:2,i=2==n?e.leftDragHandleTitle:e.dragHandleTitle;return"<div class='k-slider-track'><div class='k-slider-selection'><!-- --></div><a href='#' class='k-draghandle' title='"+i+"' role='slider' aria-valuemin='"+e.min+"' aria-valuemax='"+e.max+"' aria-valuenow='"+(n>1?e.selectionStart||e.min:e.value||e.min)+"'>Drag</a>"+(n>1?"<a href='#' class='k-draghandle' title='"+e.rightDragHandleTitle+"'role='slider' aria-valuemin='"+e.min+"' aria-valuemax='"+e.max+"' aria-valuenow='"+(e.selectionEnd||e.max)+"'>Drag</a>":"")+"</div>"}function r(e){return function(t){return t+e}}function l(e){return function(){return e}}function s(e){return(e+"").replace(".",m.cultures.current.numberFormat["."])}function d(e){var t=""+e,n=0;return t=t.split("."),t[1]&&(n=t[1].length),n=n>10?10:n}function u(e){var t,n;return e=parseFloat(e,10),t=d(e),n=H.pow(10,t||0),H.round(e*n)/n}function p(e,n){var i=x(e.getAttribute(n));return null===i&&(i=t),i}function c(e){return typeof e!==Q}function f(e){return 1e4*e}var _,m=window.kendo,v=m.ui.Widget,h=m.ui.Draggable,g=m._outerWidth,w=m._outerHeight,S=e.extend,k=m.format,x=m.parseFloat,D=e.proxy,b=e.isArray,H=Math,T=m.support,y=T.pointers,z=T.msPointers,I="change",E="slide",F=".slider",C="touchstart"+F+" mousedown"+F,R=y?"pointerdown"+F:z?"MSPointerDown"+F:C,A="touchend"+F+" mouseup"+F,V=y?"pointerup":z?"MSPointerUp"+F:A,q="moveSelection",M="keydown"+F,P="click"+F,W="mouseover"+F,N="focus"+F,O="blur"+F,B=".k-draghandle",L=".k-slider-track",Z=".k-tick",U="k-state-selected",X="k-state-focused",Y="k-state-default",j="k-state-disabled",K="disabled",Q="undefined",G="tabindex",J=m.getTouches,$=v.extend({init:function(e,t){var n,i=this;if(v.fn.init.call(i,e,t),t=i.options,i._isHorizontal="horizontal"==t.orientation,i._isRtl=i._isHorizontal&&m.support.isRtl(e),i._position=i._isHorizontal?"left":"bottom",i._sizeFn=i._isHorizontal?"width":"height",i._outerSize=i._isHorizontal?g:w,t.tooltip.format=t.tooltip.enabled?t.tooltip.format||"{0}":"{0}",t.smallStep<=0)throw Error("Kendo UI Slider smallStep must be a positive number.");i._createHtml(),i.wrapper=i.element.closest(".k-slider"),i._trackDiv=i.wrapper.find(L),i._setTrackDivWidth(),i._maxSelection=i._trackDiv[i._sizeFn](),i._sliderItemsInit(),i._reset(),i._tabindex(i.wrapper.find(B)),i[t.enabled?"enable":"disable"](),n=m.support.isRtl(i.wrapper)?-1:1,i._keyMap={37:r(-1*n*t.smallStep),40:r(-t.smallStep),39:r(1*n*t.smallStep),38:r(+t.smallStep),35:l(t.max),36:l(t.min),33:r(+t.largeStep),34:r(-t.largeStep)},m.notify(i)},events:[I,E],options:{enabled:!0,min:0,max:10,smallStep:1,largeStep:5,orientation:"horizontal",tickPlacement:"both",tooltip:{enabled:!0,format:"{0}"}},_distance:function(){return u(this.options.max-this.options.min)},_resize:function(){this._setTrackDivWidth(),this.wrapper.find(".k-slider-items").remove(),this._maxSelection=this._trackDiv[this._sizeFn](),this._sliderItemsInit(),this._refresh(),this.options.enabled&&this.enable(!0)},_sliderItemsInit:function(){var t=this,n=t.options,i=t._maxSelection/((n.max-n.min)/n.smallStep),o=t._calculateItemsWidth(H.floor(t._distance()/n.smallStep));"none"!=n.tickPlacement&&i>=2&&(e(this.element).parent().find(".k-slider-items").remove(),t._trackDiv.before(a(n,t._distance())),t._setItemsWidth(o),t._setItemsTitle()),t._calculateSteps(o),"none"!=n.tickPlacement&&i>=2&&n.largeStep>=n.smallStep&&t._setItemsLargeTick()},getSize:function(){return m.dimensions(this.wrapper)},_setTrackDivWidth:function(){var e=this,t=2*parseFloat(e._trackDiv.css(e._isRtl?"right":e._position),10);e._trackDiv[e._sizeFn](e.wrapper[e._sizeFn]()-2-t)},_setItemsWidth:function(t){var n,i=this,a=i.options,o=0,r=t.length-1,l=i.wrapper.find(Z),s=0,d=2,u=l.length,p=0;for(n=0;n<u-2;n++)e(l[n+1])[i._sizeFn](t[n]);if(i._isHorizontal?(e(l[o]).addClass("k-first")[i._sizeFn](t[r-1]),e(l[r]).addClass("k-last")[i._sizeFn](t[r])):(e(l[r]).addClass("k-first")[i._sizeFn](t[r]),e(l[o]).addClass("k-last")[i._sizeFn](t[r-1])),i._distance()%a.smallStep!==0&&!i._isHorizontal){for(n=0;n<t.length;n++)p+=t[n];s=i._maxSelection-p,s+=parseFloat(i._trackDiv.css(i._position),10)+d,i.wrapper.find(".k-slider-items").css("padding-top",s)}},_setItemsTitle:function(){for(var t=this,n=t.options,i=t.wrapper.find(Z),a=n.min,o=i.length,r=t._isHorizontal&&!t._isRtl?0:o-1,l=t._isHorizontal&&!t._isRtl?o:-1,s=t._isHorizontal&&!t._isRtl?1:-1;r-l!==0;r+=s)e(i[r]).attr("title",k(n.tooltip.format,u(a))),a+=n.smallStep},_setItemsLargeTick:function(){var t,n,i,a=this,o=a.options,r=a.wrapper.find(Z),l=0;if(f(o.largeStep)%f(o.smallStep)===0||a._distance()/o.largeStep>=3)for(a._isHorizontal||a._isRtl||(r=e.makeArray(r).reverse()),l=0;l<r.length;l++)t=e(r[l]),n=a._values[l],i=u(f(n-this.options.min)),i%f(o.smallStep)===0&&i%f(o.largeStep)===0&&(t.addClass("k-tick-large").html("<span class='k-label'>"+t.attr("title")+"</span>"),0!==l&&l!==r.length-1&&t.css("line-height",t[a._sizeFn]()+"px"))},_calculateItemsWidth:function(e){var t,n,i,a=this,o=a.options,r=parseFloat(a._trackDiv.css(a._sizeFn))+1,l=a._distance(),s=r/l;for(l/o.smallStep-H.floor(l/o.smallStep)>0&&(r-=l%o.smallStep*s),t=r/e,n=[],i=0;i<e-1;i++)n[i]=t;return n[e-1]=n[e]=t/2,a._roundWidths(n)},_roundWidths:function(e){var t,n=0,i=e.length;for(t=0;t<i;t++)n+=e[t]-H.floor(e[t]),e[t]=H.floor(e[t]);return n=H.round(n),this._addAdditionalSize(n,e)},_addAdditionalSize:function(e,t){if(0===e)return t;var n,i=parseFloat(t.length-1)/parseFloat(1==e?e:e-1);for(n=0;n<e;n++)t[parseInt(H.round(i*n),10)]+=1;return t},_calculateSteps:function(e){var t,n=this,i=n.options,a=i.min,o=0,r=n._distance(),l=H.ceil(r/i.smallStep),s=1;if(l+=r/i.smallStep%1===0?1:0,e.splice(0,0,2*e[l-2]),e.splice(l-1,1,2*e.pop()),n._pixelSteps=[o],n._values=[a],0!==l){for(;s<l;)o+=(e[s-1]+e[s])/2,n._pixelSteps[s]=o,a+=i.smallStep,n._values[s]=u(a),s++;t=r%i.smallStep===0?l-1:l,n._pixelSteps[t]=n._maxSelection,n._values[t]=i.max,n._isRtl&&(n._pixelSteps.reverse(),n._values.reverse())}},_getValueFromPosition:function(e,t){var n,i=this,a=i.options,o=H.max(a.smallStep*(i._maxSelection/i._distance()),0),r=0,l=o/2;if(i._isHorizontal?(r=e-t.startPoint,i._isRtl&&(r=i._maxSelection-r)):r=t.startPoint-e,i._maxSelection-(parseInt(i._maxSelection%o,10)-3)/2<r)return a.max;for(n=0;n<i._pixelSteps.length;n++)if(H.abs(i._pixelSteps[n]-r)-1<=l)return u(i._values[n])},_getFormattedValue:function(e,t){var n,i,a,o=this,r="",l=o.options.tooltip;return b(e)?(i=e[0],a=e[1]):t&&t.type&&(i=t.selectionStart,a=t.selectionEnd),t&&(n=t.tooltipTemplate),!n&&l.template&&(n=m.template(l.template)),b(e)||t&&t.type?n?r=n({selectionStart:i,selectionEnd:a}):(i=k(l.format,i),a=k(l.format,a),r=i+" - "+a):(t&&(t.val=e),r=n?n({value:e}):k(l.format,e)),r},_getDraggableArea:function(){var e=this,t=m.getOffset(e._trackDiv);return{startPoint:e._isHorizontal?t.left:t.top+e._maxSelection,endPoint:e._isHorizontal?t.left+e._maxSelection:t.top}},_createHtml:function(){var e=this,t=e.element,a=e.options,r=t.find("input");2==r.length?(r.eq(0).prop("value",s(a.selectionStart)),r.eq(1).prop("value",s(a.selectionEnd))):t.prop("value",s(a.value)),t.wrap(n(a,t,e._isHorizontal)).hide(),a.showButtons&&t.before(i(a,"increase",e._isHorizontal,e._isRtl)).before(i(a,"decrease",e._isHorizontal,e._isRtl)),t.before(o(a,t))},_focus:function(t){var n=this,i=t.target,a=n.value(),o=n._drag;o||(i==n.wrapper.find(B).eq(0)[0]?(o=n._firstHandleDrag,n._activeHandle=0):(o=n._lastHandleDrag,n._activeHandle=1),a=a[n._activeHandle]),e(i).addClass(X+" "+U),o&&(n._activeHandleDrag=o,o.selectionStart=n.options.selectionStart,o.selectionEnd=n.options.selectionEnd,o._updateTooltip(a))},_focusWithMouse:function(t){t=e(t);var n=this,i=t.is(B)?t.index():0;window.setTimeout(function(){n.wrapper.find(B)[2==i?1:0].focus()},1),n._setTooltipTimeout()},_blur:function(t){var n=this,i=n._activeHandleDrag;e(t.target).removeClass(X+" "+U),i&&(i._removeTooltip(),delete n._activeHandleDrag,delete n._activeHandle)},_setTooltipTimeout:function(){var e=this;e._tooltipTimeout=window.setTimeout(function(){var t=e._drag||e._activeHandleDrag;t&&t._removeTooltip()},300)},_clearTooltipTimeout:function(){var e,t=this;window.clearTimeout(this._tooltipTimeout),e=t._drag||t._activeHandleDrag,e&&e.tooltipDiv&&e.tooltipDiv.stop(!0,!1).css("opacity",1)},_reset:function(){var t=this,n=t.element,i=n.attr("form"),a=i?e("#"+i):n.closest("form");a[0]&&(t._form=a.on("reset",D(t._formResetHandler,t)))},min:function(e){return e?(this.setOptions({min:e}),t):this.options.min},max:function(e){return e?(this.setOptions({max:e}),t):this.options.max},setOptions:function(e){v.fn.setOptions.call(this,e),this._sliderItemsInit(),this._refresh()},destroy:function(){this._form&&this._form.off("reset",this._formResetHandler),v.fn.destroy.call(this)}}),ee=$.extend({init:function(n,i){var a,o=this;n.type="text",i=S({},{value:p(n,"value"),min:p(n,"min"),max:p(n,"max"),smallStep:p(n,"step")},i),n=e(n),i&&i.enabled===t&&(i.enabled=!n.is("[disabled]")),$.fn.init.call(o,n,i),i=o.options,c(i.value)&&null!==i.value||(i.value=i.min,n.prop("value",s(i.min))),i.value=H.max(H.min(i.value,i.max),i.min),a=o.wrapper.find(B),this._selection=new ee.Selection(a,o,i),o._drag=new ee.Drag(a,"",o,i)},options:{name:"Slider",showButtons:!0,increaseButtonTitle:"Increase",decreaseButtonTitle:"Decrease",dragHandleTitle:"drag",tooltip:{format:"{0:#,#.##}"},value:null},enable:function(n){var i,a,o,r=this,l=r.options;r.disable(),n!==!1&&(r.wrapper.removeClass(j).addClass(Y),r.wrapper.find("input").removeAttr(K),i=function(n){var i,a,o,l=J(n)[0];if(l){if(i=r._isHorizontal?l.location.pageX:l.location.pageY,a=r._getDraggableArea(),o=e(n.target),o.hasClass("k-draghandle"))return o.addClass(X+" "+U),t;r._update(r._getValueFromPosition(i,a)),r._focusWithMouse(n.target),r._drag.dragstart(n),n.preventDefault()}},r.wrapper.find(Z+", "+L).on(R,i).end().on(R,function(){e(document.documentElement).one("selectstart",m.preventDefault)}).on(V,function(){r._drag._end()}),r.wrapper.find(B).attr(G,0).on(A,function(){r._setTooltipTimeout()}).on(P,function(e){r._focusWithMouse(e.target),e.preventDefault()}).on(N,D(r._focus,r)).on(O,D(r._blur,r)),a=D(function(e){var t=r._nextValueByIndex(r._valueIndex+1*e);r._setValueInRange(t),r._drag._updateTooltip(t)},r),l.showButtons&&(o=D(function(e,t){this._clearTooltipTimeout(),(1===e.which||T.touch&&0===e.which)&&(a(t),this.timeout=setTimeout(D(function(){this.timer=setInterval(function(){a(t)},60)},this),200))},r),r.wrapper.find(".k-button").on(A,D(function(e){this._clearTimer(),r._focusWithMouse(e.target)},r)).on(W,function(t){e(t.currentTarget).addClass("k-state-hover")}).on("mouseout"+F,D(function(t){e(t.currentTarget).removeClass("k-state-hover"),this._clearTimer()},r)).eq(0).on(C,D(function(e){o(e,1)},r)).click(!1).end().eq(1).on(C,D(function(e){o(e,-1)},r)).click(m.preventDefault)),r.wrapper.find(B).off(M,!1).on(M,D(this._keydown,r)),l.enabled=!0)},disable:function(){var t=this;t.wrapper.removeClass(Y).addClass(j),e(t.element).prop(K,K),t.wrapper.find(".k-button").off(C).on(C,m.preventDefault).off(A).on(A,m.preventDefault).off("mouseleave"+F).on("mouseleave"+F,m.preventDefault).off(W).on(W,m.preventDefault),t.wrapper.find(Z+", "+L).off(R).off(V),t.wrapper.find(B).attr(G,-1).off(A).off(M).off(P).off(N).off(O),t.options.enabled=!1},_update:function(e){var t=this,n=t.value()!=e;t.value(e),n&&t.trigger(I,{value:t.options.value})},value:function(e){var n=this,i=n.options;return e=u(e),isNaN(e)?i.value:(e>=i.min&&e<=i.max&&i.value!=e&&(n.element.prop("value",s(e)),i.value=e,n._refreshAriaAttr(e),n._refresh()),t)},_refresh:function(){this.trigger(q,{value:this.options.value})},_refreshAriaAttr:function(e){var t,n=this,i=n._drag;t=i&&i._tooltipDiv?i._tooltipDiv.text():n._getFormattedValue(e,null),this.wrapper.find(B).attr("aria-valuenow",e).attr("aria-valuetext",t)},_clearTimer:function(){clearTimeout(this.timeout),clearInterval(this.timer)},_keydown:function(e){var t=this;e.keyCode in t._keyMap&&(t._clearTooltipTimeout(),t._setValueInRange(t._keyMap[e.keyCode](t.options.value)),t._drag._updateTooltip(t.value()),e.preventDefault())},_setValueInRange:function(e){var n=this,i=n.options;return e=u(e),isNaN(e)?(n._update(i.min),t):(e=H.max(H.min(e,i.max),i.min),n._update(e),t)},_nextValueByIndex:function(e){var t=this._values.length;return this._isRtl&&(e=t-1-e),this._values[H.max(0,H.min(e,t-1))]},_formResetHandler:function(){var e=this,t=e.options.min;setTimeout(function(){var n=e.element[0].value;e.value(""===n||isNaN(n)?t:n)})},destroy:function(){var e=this;$.fn.destroy.call(e),e.wrapper.off(F).find(".k-button").off(F).end().find(B).off(F).end().find(Z+", "+L).off(F).end(),e._drag.draggable.destroy(),e._drag._removeTooltip(!0)}});ee.Selection=function(e,t,n){function i(i){var a=i-n.min,o=t._valueIndex=H.ceil(u(a/n.smallStep)),r=parseInt(t._pixelSteps[o],10),l=t._trackDiv.find(".k-slider-selection"),s=parseInt(t._outerSize(e)/2,10),d=t._isRtl?2:0;l[t._sizeFn](t._isRtl?t._maxSelection-r:r),e.css(t._position,r-s-d)}i(n.value),t.bind([E,q],function(e){i(parseFloat(e.value,10))}),t.bind(I,function(e){i(parseFloat(e.sender.value(),10))})},ee.Drag=function(e,t,n,i){var a=this;a.owner=n,a.options=i,a.element=e,a.type=t,a.draggable=new h(e,{distance:0,dragstart:D(a._dragstart,a),drag:D(a.drag,a),dragend:D(a.dragend,a),dragcancel:D(a.dragcancel,a)}),e.click(!1)},ee.Drag.prototype={dragstart:function(e){this.owner._activeDragHandle=this,this.draggable.userEvents.cancel(),this._dragstart(e),this.dragend()},_dragstart:function(n){var i=this,a=i.owner,o=i.options;return o.enabled?(this.owner._activeDragHandle=this,a.element.off(W),a.wrapper.find("."+X).removeClass(X+" "+U),i.element.addClass(X+" "+U),e(document.documentElement).css("cursor","pointer"),i.dragableArea=a._getDraggableArea(),i.step=H.max(o.smallStep*(a._maxSelection/a._distance()),0),i.type?(i.selectionStart=o.selectionStart,i.selectionEnd=o.selectionEnd,a._setZIndex(i.type)):i.oldVal=i.val=o.value,i._removeTooltip(!0),i._createTooltip(),t):(n.preventDefault(),t)},_createTooltip:function(){var t,n,i=this,a=i.owner,o=i.options.tooltip,r="",l=e(window);o.enabled&&(o.template&&(t=i.tooltipTemplate=m.template(o.template)),e(".k-slider-tooltip").remove(),i.tooltipDiv=e("<div class='k-widget k-tooltip k-slider-tooltip'><!-- --></div>").appendTo(document.body),r=a._getFormattedValue(i.val||a.value(),i),i.type||(n="k-callout-"+(a._isHorizontal?"s":"e"),i.tooltipInnerDiv="<div class='k-callout "+n+"'><!-- --></div>",r+=i.tooltipInnerDiv),i.tooltipDiv.html(r),i._scrollOffset={top:l.scrollTop(),left:l.scrollLeft()},i.moveTooltip())},drag:function(e){var t,n=this,i=n.owner,a=e.x.location,o=e.y.location,r=n.dragableArea.startPoint,l=n.dragableArea.endPoint;e.preventDefault(),n.val=i._isHorizontal?i._isRtl?n.constrainValue(a,r,l,a<l):n.constrainValue(a,r,l,a>=l):n.constrainValue(o,l,r,o<=l),n.oldVal!=n.val&&(n.oldVal=n.val,n.type?("firstHandle"==n.type?n.selectionStart=n.val<n.selectionEnd?n.val:n.selectionEnd=n.val:n.val>n.selectionStart?n.selectionEnd=n.val:n.selectionStart=n.selectionEnd=n.val,t={values:[n.selectionStart,n.selectionEnd],value:[n.selectionStart,n.selectionEnd]}):t={value:n.val},i.trigger(E,t)),n._updateTooltip(n.val)},_updateTooltip:function(e){var t=this,n=t.options,i=n.tooltip,a="";i.enabled&&(t.tooltipDiv||t._createTooltip(),a=t.owner._getFormattedValue(u(e),t),t.type||(a+=t.tooltipInnerDiv),t.tooltipDiv.html(a),t.moveTooltip())},dragcancel:function(){return this.owner._refresh(),e(document.documentElement).css("cursor",""),this._end()},dragend:function(){var t=this,n=t.owner;return e(document.documentElement).css("cursor",""),t.type?n._update(t.selectionStart,t.selectionEnd):(n._update(t.val),t.draggable.userEvents._disposeAll()),t.draggable.userEvents.cancel(),t._end()},_end:function(){var e=this,t=e.owner;return t._focusWithMouse(e.element),t.element.on(W),!1},_removeTooltip:function(t){var n=this,i=n.owner;n.tooltipDiv&&i.options.tooltip.enabled&&i.options.enabled&&(t?(n.tooltipDiv.remove(),n.tooltipDiv=null):n.tooltipDiv.fadeOut("slow",function(){e(this).remove(),n.tooltipDiv=null}))},moveTooltip:function(){var t,n,i,a,o=this,r=o.owner,l=0,s=0,d=o.element,u=m.getOffset(d),p=8,c=e(window),f=o.tooltipDiv.find(".k-callout"),_=g(o.tooltipDiv),v=w(o.tooltipDiv);o.type?(t=r.wrapper.find(B),u=m.getOffset(t.eq(0)),n=m.getOffset(t.eq(1)),r._isHorizontal?(l=n.top,s=u.left+(n.left-u.left)/2):(l=u.top+(n.top-u.top)/2,s=n.left),a=g(t.eq(0))+2*p):(l=u.top,s=u.left,a=g(d)+2*p),r._isHorizontal?(s-=parseInt((_-r._outerSize(d))/2,10),l-=v+f.height()+p):(l-=parseInt((v-r._outerSize(d))/2,10),s-=_+f.width()+p),r._isHorizontal?(i=o._flip(l,v,a,w(c)+o._scrollOffset.top),l+=i,s+=o._fit(s,_,g(c)+o._scrollOffset.left)):(i=o._flip(s,_,a,g(c)+o._scrollOffset.left),l+=o._fit(l,v,w(c)+o._scrollOffset.top),s+=i),i>0&&f&&(f.removeClass(),f.addClass("k-callout k-callout-"+(r._isHorizontal?"n":"w"))),o.tooltipDiv.css({top:l,left:s})},_fit:function(e,t,n){var i=0;return e+t>n&&(i=n-(e+t)),e<0&&(i=-e),i},_flip:function(e,t,n,i){var a=0;return e+t>i&&(a+=-(n+t)),e+a<0&&(a+=n+t),a},constrainValue:function(e,t,n,i){var a=this,o=0;return o=t<e&&e<n?a.owner._getValueFromPosition(e,a.dragableArea):i?a.options.max:a.options.min}},m.ui.plugin(ee),_=$.extend({init:function(n,i){var a,o=this,r=e(n).find("input"),l=r.eq(0)[0],d=r.eq(1)[0];l.type="text",d.type="text",i&&i.showButtons&&(window.console&&window.console.warn("showbuttons option is not supported for the range slider, ignoring"),i.showButtons=!1),i=S({},{selectionStart:p(l,"value"),min:p(l,"min"),max:p(l,"max"),smallStep:p(l,"step")},{selectionEnd:p(d,"value"),min:p(d,"min"),max:p(d,"max"),smallStep:p(d,"step")},i),i&&i.enabled===t&&(i.enabled=!r.is("[disabled]")),$.fn.init.call(o,n,i),i=o.options,c(i.selectionStart)&&null!==i.selectionStart||(i.selectionStart=i.min,r.eq(0).prop("value",s(i.min))),c(i.selectionEnd)&&null!==i.selectionEnd||(i.selectionEnd=i.max,r.eq(1).prop("value",s(i.max))),a=o.wrapper.find(B),this._selection=new _.Selection(a,o,i),o._firstHandleDrag=new ee.Drag(a.eq(0),"firstHandle",o,i),o._lastHandleDrag=new ee.Drag(a.eq(1),"lastHandle",o,i)},options:{name:"RangeSlider",leftDragHandleTitle:"drag",rightDragHandleTitle:"drag",tooltip:{format:"{0:#,#.##}"},selectionStart:null,selectionEnd:null},enable:function(n){var i,a=this,o=a.options;a.disable(),n!==!1&&(a.wrapper.removeClass(j).addClass(Y),a.wrapper.find("input").removeAttr(K),i=function(n){var i,r,l,s,d,u,p,c=J(n)[0];if(c){if(i=a._isHorizontal?c.location.pageX:c.location.pageY,r=a._getDraggableArea(),l=a._getValueFromPosition(i,r),s=e(n.target),s.hasClass("k-draghandle"))return a.wrapper.find("."+X).removeClass(X+" "+U),s.addClass(X+" "+U),t;l<o.selectionStart?(d=l,u=o.selectionEnd,p=a._firstHandleDrag):l>a.selectionEnd?(d=o.selectionStart,u=l,p=a._lastHandleDrag):l-o.selectionStart<=o.selectionEnd-l?(d=l,u=o.selectionEnd,p=a._firstHandleDrag):(d=o.selectionStart,u=l,p=a._lastHandleDrag),p.dragstart(n),a._setValueInRange(d,u),a._focusWithMouse(p.element)}},a.wrapper.find(Z+", "+L).on(R,i).end().on(R,function(){e(document.documentElement).one("selectstart",m.preventDefault)}).on(V,function(){a._activeDragHandle&&a._activeDragHandle._end()}),a.wrapper.find(B).attr(G,0).on(A,function(){a._setTooltipTimeout()}).on(P,function(e){a._focusWithMouse(e.target),e.preventDefault()}).on(N,D(a._focus,a)).on(O,D(a._blur,a)),a.wrapper.find(B).off(M,m.preventDefault).eq(0).on(M,D(function(e){this._keydown(e,"firstHandle")},a)).end().eq(1).on(M,D(function(e){this._keydown(e,"lastHandle")},a)),a.options.enabled=!0)},disable:function(){var e=this;e.wrapper.removeClass(Y).addClass(j),e.wrapper.find("input").prop(K,K),e.wrapper.find(Z+", "+L).off(R).off(V),e.wrapper.find(B).attr(G,-1).off(A).off(M).off(P).off(N).off(O),e.options.enabled=!1},_keydown:function(e,t){var n,i,a,o=this,r=o.options.selectionStart,l=o.options.selectionEnd;e.keyCode in o._keyMap&&(o._clearTooltipTimeout(),"firstHandle"==t?(a=o._activeHandleDrag=o._firstHandleDrag,r=o._keyMap[e.keyCode](r),r>l&&(l=r)):(a=o._activeHandleDrag=o._lastHandleDrag,l=o._keyMap[e.keyCode](l),r>l&&(r=l)),o._setValueInRange(u(r),u(l)),n=Math.max(r,o.options.selectionStart),i=Math.min(l,o.options.selectionEnd),a.selectionEnd=Math.max(i,o.options.selectionStart),a.selectionStart=Math.min(n,o.options.selectionEnd),a._updateTooltip(o.value()[o._activeHandle]),e.preventDefault())},_update:function(e,t){var n=this,i=n.value(),a=i[0]!=e||i[1]!=t;n.value([e,t]),a&&n.trigger(I,{values:[e,t],value:[e,t]})},value:function(e){return e&&e.length?this._value(e[0],e[1]):this._value()},_value:function(e,n){var i=this,a=i.options,o=a.selectionStart,r=a.selectionEnd;return isNaN(e)&&isNaN(n)?[o,r]:(e=u(e),n=u(n),e>=a.min&&e<=a.max&&n>=a.min&&n<=a.max&&e<=n&&(o==e&&r==n||(i.element.find("input").eq(0).prop("value",s(e)).end().eq(1).prop("value",s(n)),a.selectionStart=e,a.selectionEnd=n,i._refresh(),i._refreshAriaAttr(e,n))),t)},values:function(e,t){return b(e)?this._value(e[0],e[1]):this._value(e,t)},_refresh:function(){var e=this,t=e.options;e.trigger(q,{values:[t.selectionStart,t.selectionEnd],value:[t.selectionStart,t.selectionEnd]}),t.selectionStart==t.max&&t.selectionEnd==t.max&&e._setZIndex("firstHandle")},_refreshAriaAttr:function(e,t){var n,i=this,a=i.wrapper.find(B),o=i._activeHandleDrag;n=i._getFormattedValue([e,t],o),a.eq(0).attr("aria-valuenow",e),a.eq(1).attr("aria-valuenow",t),a.attr("aria-valuetext",n)},_setValueInRange:function(e,t){var n=this.options;e=H.max(H.min(e,n.max),n.min),t=H.max(H.min(t,n.max),n.min),e==n.max&&t==n.max&&this._setZIndex("firstHandle"),this._update(H.min(e,t),H.max(e,t))},_setZIndex:function(t){this.wrapper.find(B).each(function(n){e(this).css("z-index","firstHandle"==t?1-n:n)})},_formResetHandler:function(){var e=this,t=e.options;setTimeout(function(){var n=e.element.find("input"),i=n[0].value,a=n[1].value;e.values(""===i||isNaN(i)?t.min:i,""===a||isNaN(a)?t.max:a)})},destroy:function(){var e=this;$.fn.destroy.call(e),e.wrapper.off(F).find(Z+", "+L).off(F).end().find(B).off(F),e._firstHandleDrag.draggable.destroy(),e._lastHandleDrag.draggable.destroy()}}),_.Selection=function(e,t,n){function i(i){i=i||[];var o=i[0]-n.min,r=i[1]-n.min,l=H.ceil(u(o/n.smallStep)),s=H.ceil(u(r/n.smallStep)),d=t._pixelSteps[l],p=t._pixelSteps[s],c=parseInt(t._outerSize(e.eq(0))/2,10),f=t._isRtl?2:0;e.eq(0).css(t._position,d-c-f).end().eq(1).css(t._position,p-c-f),a(d,p)}function a(e,n){var i,a,o=t._trackDiv.find(".k-slider-selection");i=H.abs(e-n),o[t._sizeFn](i),t._isRtl?(a=H.max(e,n),o.css("right",t._maxSelection-a-1)):(a=H.min(e,n),o.css(t._position,a-1))}i(t.value()),t.bind([I,E,q],function(e){i(e.values)})},m.ui.plugin(_)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(i,define){define("kendo.resizable.min",["kendo.core.min","kendo.draganddrop.min"],i)}(function(){return function(i,t){var n=window.kendo,o=n.ui,e=o.Widget,s=i.proxy,r=n.isFunction,a=i.extend,l="horizontal",c="vertical",d="start",u="resize",p="resizeend",g=e.extend({init:function(i,t){var n=this;e.fn.init.call(n,i,t),n.orientation=n.options.orientation.toLowerCase()!=c?l:c,n._positionMouse=n.orientation==l?"x":"y",n._position=n.orientation==l?"left":"top",n._sizingDom=n.orientation==l?"outerWidth":"outerHeight",n.draggable=new o.Draggable(t.draggableElement||i,{distance:1,filter:t.handle,drag:s(n._resize,n),dragcancel:s(n._cancel,n),dragstart:s(n._start,n),dragend:s(n._stop,n)}),n.userEvents=n.draggable.userEvents},events:[u,p,d],options:{name:"Resizable",orientation:l},resize:function(){},_max:function(i){var n=this,o=n.hint?n.hint[n._sizingDom]():0,e=n.options.max;return r(e)?e(i):e!==t?n._initialElementPosition+e-o:e},_min:function(i){var n=this,o=n.options.min;return r(o)?o(i):o!==t?n._initialElementPosition+o:o},_start:function(t){var n=this,o=n.options.hint,e=i(t.currentTarget);n._initialElementPosition=e.position()[n._position],n._initialMousePosition=t[n._positionMouse].startLocation,o&&(n.hint=r(o)?i(o(e)):o,n.hint.css({position:"absolute"}).css(n._position,n._initialElementPosition).appendTo(n.element)),n.trigger(d,t),n._maxPosition=n._max(t),n._minPosition=n._min(t),i(document.body).css("cursor",e.css("cursor"))},_resize:function(i){var n,o=this,e=o._maxPosition,s=o._minPosition,r=o._initialElementPosition+(i[o._positionMouse].location-o._initialMousePosition);n=s!==t?Math.max(s,r):r,o.position=n=e!==t?Math.min(e,n):n,o.hint&&o.hint.toggleClass(o.options.invalidClass||"",n==e||n==s).css(o._position,n),o.resizing=!0,o.trigger(u,a(i,{position:n}))},_stop:function(t){var n=this;n.hint&&n.hint.remove(),n.resizing=!1,n.trigger(p,a(t,{position:n.position})),i(document.body).css("cursor","")},_cancel:function(i){var n=this;n.hint&&(n.position=t,n.hint.css(n._position,n._initialElementPosition),n._stop(i))},destroy:function(){var i=this;e.fn.destroy.call(i),i.draggable&&i.draggable.destroy()},press:function(i){if(i){var t=i.position(),n=this;n.userEvents.press(t.left,t.top,i[0]),n.targetPosition=t,n.target=i}},move:function(i){var n=this,o=n._position,e=n.targetPosition,s=n.position;s===t&&(s=e[o]),e[o]=s+i,n.userEvents.move(e.left,e.top)},end:function(){this.userEvents.end(),this.target=this.position=t}});n.ui.plugin(g)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(i,t,n){(n||t)()});;!function(e,define){define("kendo.splitter.min",["kendo.resizable.min"],e)}(function(){return function(e,t){function n(e){return m.test(e)}function i(e){return k.test(e)||/^\d+$/.test(e)}function r(e){return!n(e)&&!i(e)}function s(e,t){var i=parseInt(e,10);return n(e)&&(i=Math.floor(i*t/100)),i}function a(e,n){return function(i,r){var s,a=this.element.find(i).data(T);return 1==arguments.length?a[e]:(a[e]=r,n&&(s=this.element.data("kendo"+this.options.name),s.resize(!0)),t)}}function o(e){var t=this,n=e.orientation;t.owner=e,t._element=e.element,t.orientation=n,u(t,n===P?p:l),t._resizable=new d.ui.Resizable(e.element,{orientation:n,handle:".k-splitbar-draggable-"+n+"[data-marker="+e._marker+"]",hint:f(t._createHint,t),start:f(t._start,t),max:f(t._max,t),min:f(t._min,t),invalidClass:"k-restricted-size-"+n,resizeend:f(t._stop,t)})}var l,p,d=window.kendo,c=d.ui,h=d.keys,u=e.extend,f=e.proxy,g=c.Widget,k=/^\d+(\.\d+)?px$/i,m=/^\d+(\.\d+)?%$/i,v=".kendoSplitter",_="expand",z="collapse",y="contentLoad",x="error",w="resize",b="layoutChange",P="horizontal",C="vertical",S="mouseenter",A="click",T="pane",B="mouseleave",E="k-state-focused",D="k-"+T,I="."+D,H=g.extend({init:function(e,t){var n,i=this;g.fn.init.call(i,e,t),i.wrapper=i.element,n=i.options.orientation.toLowerCase()!=C,i.orientation=n?P:C,i._dimension=n?"width":"height",i._keys={decrease:n?h.LEFT:h.UP,increase:n?h.RIGHT:h.DOWN},i._resizeStep=10,i._marker=d.guid().substring(0,8),i._initPanes(),i.resizing=new o(i),i.element.triggerHandler("init"+v)},events:[_,z,y,x,w,b],_addOverlays:function(){this._panes().append("<div class='k-splitter-overlay k-overlay' />")},_removeOverlays:function(){this._panes().children(".k-splitter-overlay").remove()},_attachEvents:function(){var t=this,n=t.options.orientation;t.element.children(".k-splitbar-draggable-"+n).on("keydown"+v,f(t._keydown,t)).on("mousedown"+v,function(e){e.currentTarget.focus()}).on("focus"+v,function(t){e(t.currentTarget).addClass(E)}).on("blur"+v,function(n){e(n.currentTarget).removeClass(E),t.resizing&&t.resizing.end()}).on(S+v,function(){e(this).addClass("k-splitbar-"+t.orientation+"-hover")}).on(B+v,function(){e(this).removeClass("k-splitbar-"+t.orientation+"-hover")}).on("mousedown"+v,f(t._addOverlays,t)).end().children(".k-splitbar").on("dblclick"+v,f(t._togglePane,t)).children(".k-collapse-next, .k-collapse-prev").on(A+v,t._arrowClick(z)).end().children(".k-expand-next, .k-expand-prev").on(A+v,t._arrowClick(_)).end().end(),e(window).on("resize"+v+t._marker,f(t.resize,t,!1)),e(document).on("mouseup"+v+t._marker,f(t._removeOverlays,t))},_detachEvents:function(){var t=this;t.element.children(".k-splitbar-draggable-"+t.orientation).off(v).end().children(".k-splitbar").off("dblclick"+v).children(".k-collapse-next, .k-collapse-prev, .k-expand-next, .k-expand-prev").off(v),e(window).off(v+t._marker),e(document).off(v+t._marker)},options:{name:"Splitter",orientation:P,panes:[]},destroy:function(){g.fn.destroy.call(this),this._detachEvents(),this.resizing&&this.resizing.destroy(),d.destroy(this.element),this.wrapper=this.element=null},_keydown:function(t){var n,i=this,r=t.keyCode,s=i.resizing,a=e(t.currentTarget),o=i._keys,l=r===o.increase,p=r===o.decrease;l||p?(t.ctrlKey?(n=a[p?"next":"prev"](),s&&s.isResizing()&&s.end(),n[i._dimension]()?i._triggerAction(z,a[p?"prev":"next"]()):i._triggerAction(_,n)):s&&s.move((p?-1:1)*i._resizeStep,a),t.preventDefault()):r===h.ENTER&&s&&(s.end(),t.preventDefault())},_initPanes:function(){var e=this.options.panes||[],t=this;this.element.addClass("k-widget").addClass("k-splitter").children().each(function(n,i){"script"!=i.nodeName.toLowerCase()&&t._initPane(i,e[n])}),this.resize()},_initPane:function(t,n){t=e(t).attr("role","group").addClass(D),t.data(T,n?n:{}).toggleClass("k-scrollable",!n||n.scrollable!==!1),this.ajaxRequest(t)},ajaxRequest:function(e,t,n){var i,r=this;e=r.element.find(e),i=e.data(T),t=t||i.contentUrl,t&&(e.append("<span class='k-icon k-i-loading k-pane-loading' />"),d.isLocalUrl(t)?jQuery.ajax({url:t,data:n||{},type:"GET",dataType:"html",success:function(t){r.angular("cleanup",function(){return{elements:e.get()}}),e.html(t),r.angular("compile",function(){return{elements:e.get()}}),r.trigger(y,{pane:e[0]})},error:function(t,n){r.trigger(x,{pane:e[0],status:n,xhr:t})}}):e.removeClass("k-scrollable").html("<iframe src='"+t+"' frameborder='0' class='k-content-frame'>This page requires frames in order to show content</iframe>"))},_triggerAction:function(e,t){this.trigger(e,{pane:t[0]})||this[e](t[0])},_togglePane:function(t){var n,i=this,r=e(t.target);r.closest(".k-splitter")[0]==i.element[0]&&(n=r.children(".k-icon:not(.k-resize-handle)"),1===n.length&&(n.is(".k-collapse-prev")?i._triggerAction(z,r.prev()):n.is(".k-collapse-next")?i._triggerAction(z,r.next()):n.is(".k-expand-prev")?i._triggerAction(_,r.prev()):n.is(".k-expand-next")&&i._triggerAction(_,r.next())))},_arrowClick:function(t){var n=this;return function(i){var r,s=e(i.target);s.closest(".k-splitter")[0]==n.element[0]&&(r=s.is(".k-"+t+"-prev")?s.parent().prev():s.parent().next(),n._triggerAction(t,r))}},_updateSplitBar:function(e,t,n){var i=function(e,t){return t?"<div class='k-icon "+e+"' />":""},r=this.orientation,s=t.resizable!==!1&&n.resizable!==!1,a=t.collapsible,o=t.collapsed,l=n.collapsible,p=n.collapsed;e.addClass("k-splitbar k-state-default k-splitbar-"+r).attr("role","separator").attr("aria-expanded",!(o||p)).removeClass("k-splitbar-"+r+"-hover").toggleClass("k-splitbar-draggable-"+r,s&&!o&&!p).toggleClass("k-splitbar-static-"+r,!s&&!a&&!l).html(i("k-collapse-prev k-i-arrow-60-up",a&&!o&&!p&&r==C)+i("k-collapse-prev k-i-arrow-60-left",a&&!o&&!p&&r==P)+i("k-expand-prev k-i-arrow-60-down",a&&o&&!p&&r==C)+i("k-expand-prev k-i-arrow-60-right",a&&o&&!p&&r==P)+i("k-resize-handle k-i-hbar",s&&r==C)+i("k-resize-handle k-i-vbar",s&&r==P)+i("k-collapse-next k-i-arrow-60-down",l&&!p&&!o&&r==C)+i("k-collapse-next k-i-arrow-60-right",l&&!p&&!o&&r==P)+i("k-expand-next k-i-arrow-60-up",l&&p&&!o&&r==C)+i("k-expand-next k-i-arrow-60-left",l&&p&&!o&&r==P)),s||a||l||e.removeAttr("tabindex")},_updateSplitBars:function(){var t=this;this.element.children(".k-splitbar").each(function(){var n=e(this),i=n.prevAll(I).first().data(T),r=n.nextAll(I).first().data(T);r&&t._updateSplitBar(n,i,r)})},_removeSplitBars:function(){this.element.children(".k-splitbar").remove()},_panes:function(){return this.element?this.element.children(I):e()},_resize:function(){var n,i,a,o,l,p,c,h,u,f,g=this,k=g.element,m=k.children(I),v=g.orientation==P,_=k.children(".k-splitbar"),z=_.length,y=v?"width":"height",x=k[y]();g.wrapper.addClass("k-splitter-resizing"),0===z?(z=m.length-1,m.slice(0,z).after("<div tabindex='0' class='k-splitbar' data-marker='"+g._marker+"' />"),g._updateSplitBars(),_=k.children(".k-splitbar")):g._updateSplitBars(),_.each(function(){x-=this[v?"offsetWidth":"offsetHeight"]}),n=0,i=0,a=e(),m.css({position:"absolute",top:0})[y](function(){var o,l=e(this),p=l.data(T)||{};if(l.removeClass("k-state-collapsed"),p.collapsed)o=p.collapsedSize?s(p.collapsedSize,x):0,l.css("overflow","hidden").addClass("k-state-collapsed");else{if(r(p.size))return a=a.add(this),t;o=s(p.size,x)}return i++,n+=o,o}),x-=n,o=a.length,l=Math.floor(x/o),a.slice(0,o-1).css(y,l).end().eq(o-1).css(y,x-(o-1)*l),p=0,c=v?"height":"width",h=v?"left":"top",u=v?"offsetWidth":"offsetHeight",0===o&&(f=m.filter(function(){return!(e(this).data(T)||{}).collapsed}).last(),f[y](x+f[0][u])),k.children().css(c,k[c]()).each(function(e,t){"script"!=t.tagName.toLowerCase()&&(t.style[h]=Math.floor(p)+"px",p+=t[u])}),g._detachEvents(),g._attachEvents(),g.wrapper.removeClass("k-splitter-resizing"),d.resize(m),g.trigger(b)},toggle:function(e,n){var i,r=this;e=r.element.find(e),i=e.data(T),(n||i.collapsible)&&(1==arguments.length&&(n=i.collapsed!==t&&i.collapsed),i.collapsed=!n,i.collapsed?e.css("overflow","hidden"):e.css("overflow",""),r.resize(!0))},collapse:function(e){this.toggle(e,!1)},expand:function(e){this.toggle(e,!0)},_addPane:function(e,t,n){var i=this;return n.length&&(i.options.panes.splice(t,0,e),i._initPane(n,e),i._removeSplitBars(),i.resize(!0)),n},append:function(t){t=t||{};var n=this,i=e("<div />").appendTo(n.element);return n._addPane(t,n.options.panes.length,i)},insertBefore:function(t,n){n=e(n),t=t||{};var i=this,r=i.wrapper.children(".k-pane").index(n),s=e("<div />").insertBefore(e(n));return i._addPane(t,r,s)},insertAfter:function(t,n){n=e(n),t=t||{};var i=this,r=i.wrapper.children(".k-pane").index(n),s=e("<div />").insertAfter(e(n));return i._addPane(t,r+1,s)},remove:function(t){t=e(t);var n=this;return t.length&&(d.destroy(t),t.each(function(t,i){n.options.panes.splice(n.wrapper.children(".k-pane").index(i),1),e(i).remove()}),n._removeSplitBars(),n.options.panes.length&&n.resize(!0)),n},size:a("size",!0),min:a("min"),max:a("max")});c.plugin(H),l={sizingProperty:"height",sizingDomProperty:"offsetHeight",alternateSizingProperty:"width",positioningProperty:"top",mousePositioningProperty:"pageY"},p={sizingProperty:"width",sizingDomProperty:"offsetWidth",alternateSizingProperty:"height",positioningProperty:"left",mousePositioningProperty:"pageX"},o.prototype={press:function(e){this._resizable.press(e)},move:function(e,t){this.pressed||(this.press(t),this.pressed=!0),this._resizable.target||this._resizable.press(t),this._resizable.move(e)},end:function(){this._resizable.end(),this.pressed=!1},destroy:function(){this._resizable.destroy(),this._resizable=this._element=this.owner=null},isResizing:function(){return this._resizable.resizing},_createHint:function(t){var n=this;return e("<div class='k-ghost-splitbar k-ghost-splitbar-"+n.orientation+" k-state-default' />").css(n.alternateSizingProperty,t[n.alternateSizingProperty]())},_start:function(t){var n=this,r=e(t.currentTarget),s=r.prev(),a=r.next(),o=s.data(T),l=a.data(T),p=parseInt(s[0].style[n.positioningProperty],10),d=parseInt(a[0].style[n.positioningProperty],10)+a[0][n.sizingDomProperty]-r[0][n.sizingDomProperty],c=parseInt(n._element.css(n.sizingProperty),10),h=function(e){var t=parseInt(e,10);return(i(e)?t:c*t/100)||0},u=h(o.min),f=h(o.max)||d-p,g=h(l.min),k=h(l.max)||d-p;n.previousPane=s,n.nextPane=a,n._maxPosition=Math.min(d-g,p+f),n._minPosition=Math.max(p+u,d-k)},_max:function(){return this._maxPosition},_min:function(){return this._minPosition},_stop:function(t){var n,i,s,a,o,l,p,c,h=this,u=e(t.currentTarget),f=h.owner;return f._panes().children(".k-splitter-overlay").remove(),t.keyCode!==d.keys.ESC&&(n=t.position,i=u.prev(),s=u.next(),a=i.data(T),o=s.data(T),l=n-parseInt(i[0].style[h.positioningProperty],10),p=parseInt(s[0].style[h.positioningProperty],10)+s[0][h.sizingDomProperty]-n-u[0][h.sizingDomProperty],c=h._element.children(I).filter(function(){return r(e(this).data(T).size)}).length,(!r(a.size)||c>1)&&(r(a.size)&&c--,a.size=l+"px"),(!r(o.size)||c>1)&&(o.size=p+"px"),f.resize(!0)),!1}}}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(t,define){define("kendo.tabstrip.min",["kendo.data.min"],t)}(function(){return function(t,e){function n(e){e.children(_).addClass(A),e.children("a").addClass(x).children(_).addClass(A),e.filter(":not([disabled]):not([class*=k-state-disabled])").addClass(N),e.filter("li[disabled]").addClass(H).removeAttr("disabled"),e.filter(":not([class*=k-state])").children("a").filter(":focus").parent().addClass(F+" "+z),e.attr("role","tab"),e.filter("."+F).attr("aria-selected",!0),e.each(function(){var e=t(this);e.children("."+x).length||e.contents().filter(function(){return!(this.nodeName.match(g)||3==this.nodeType&&!d(this.nodeValue))}).wrapAll("<span UNSELECTABLE='on' class='"+x+"'/>")})}function r(t){var e=t.children(".k-item");e.filter(".k-first:not(:first-child)").removeClass(S),e.filter(".k-last:not(:last-child)").removeClass(U),e.filter(":first-child").addClass(S),e.filter(":last-child").addClass(U)}function a(t,e){return"<span class='k-button k-button-icon k-button-bare k-tabstrip-"+t+"' unselectable='on'><span class='k-icon "+e+"'></span></span>"}var i=window.kendo,s=i.ui,o=i.keys,l=t.map,c=t.each,d=t.trim,p=t.extend,u=i.isFunction,f=i.template,h=i._outerWidth,m=i._outerHeight,b=s.Widget,g=/^(a|div)$/i,v=".kendoTabStrip",_="img",k="href",w="prev",C="show",x="k-link",U="k-last",y="click",G="error",T=":empty",A="k-image",S="k-first",E="select",I="activate",R="k-content",P="contentUrl",B="mouseenter",W="mouseleave",D="contentLoad",H="k-state-disabled",N="k-state-default",F="k-state-active",L="k-state-focused",q="k-state-hover",z="k-tab-on-top",M=".k-item:not(."+H+")",O=".k-tabstrip-items > "+M+":not(."+F+")",j={content:f("<div class='k-content'#= contentAttributes(data) # role='tabpanel'>#= content(item) #</div>"),itemWrapper:f("<#= tag(item) # class='k-link'#= contentUrl(item) ##= textAttributes(item) #>#= image(item) ##= sprite(item) ##= text(item) #</#= tag(item) #>"),item:f("<li class='#= wrapperCssClass(group, item) #' role='tab' #=item.active ? \"aria-selected='true'\" : ''#>#= itemWrapper(data) #</li>"),image:f("<img class='k-image' alt='' src='#= imageUrl #' />"),sprite:f("<span class='k-sprite #= spriteCssClass #'></span>"),empty:f("")},V={wrapperCssClass:function(t,e){var n="k-item",r=e.index;return n+=e.enabled===!1?" k-state-disabled":" k-state-default",0===r&&(n+=" k-first"),r==t.length-1&&(n+=" k-last"),n},textAttributes:function(t){return t.url?" href='"+t.url+"'":""},text:function(t){return t.encoded===!1?t.text:i.htmlEncode(t.text)},tag:function(t){return t.url?"a":"span"},contentAttributes:function(t){return t.active!==!0?" style='display:none' aria-hidden='true' aria-expanded='false'":""},content:function(t){return t.content?t.content:t.contentUrl?"":"&nbsp;"},contentUrl:function(t){return t.contentUrl?i.attr("content-url")+'="'+t.contentUrl+'"':""}},X=b.extend({init:function(e,n){var r,a,s,o=this;b.fn.init.call(o,e,n),o._animations(o.options),n=o.options,o._contentUrls=n.contentUrls||[],o._wrapper(),o._isRtl=i.support.isRtl(o.wrapper),o._tabindex(),o._updateClasses(),o._dataSource(),n.dataSource&&o.dataSource.fetch(),o._tabPosition(),o._scrollable(),o._contentUrls.length?o.wrapper.find(".k-tabstrip-items > .k-item").each(function(e,n){var r=o._contentUrls[e];"string"==typeof r&&t(n).find(">."+x).data(P,r)}):o._contentUrls.length=o.tabGroup.find("li.k-item").length,o.wrapper.on(B+v+" "+W+v,O,o._toggleHover).on("focus"+v,t.proxy(o._active,o)).on("blur"+v,function(){o._current(null)}),o._keyDownProxy=t.proxy(o._keydown,o),n.navigatable&&o.wrapper.on("keydown"+v,o._keyDownProxy),o.options.value&&(r=o.options.value),o.wrapper.children(".k-tabstrip-items").on(y+v,".k-state-disabled .k-link",!1).on(y+v," > "+M,function(e){var n,r=o.wrapper[0];if(r!==document.activeElement)if(n=i.support.browser.msie)try{r.setActive()}catch(a){r.focus()}else r.focus();o._click(t(e.currentTarget))&&e.preventDefault()}),a=o.tabGroup.children("li."+F),s=o.contentHolder(a.index()),a[0]&&s.length>0&&0===s[0].childNodes.length&&o.activateTab(a.eq(0)),o.element.attr("role","tablist"),o.element[0].id&&(o._ariaId=o.element[0].id+"_ts_active"),o.value(r),i.notify(o)},_active:function(){var t=this.tabGroup.children().filter("."+F);t=t[0]?t:this._endItem("first"),t[0]&&this._current(t)},_endItem:function(t){return this.tabGroup.children(M)[t]()},_item:function(t,e){var n;return n=e===w?"last":"first",t?(t=t[e](),t[0]||(t=this._endItem(n)),t.hasClass(H)&&(t=this._item(t,e)),t):this._endItem(n)},_current:function(t){var n=this,r=n._focused,a=n._ariaId;return t===e?r:(r&&(r[0].id===a&&r.removeAttr("id"),r.removeClass(L)),t&&(t.hasClass(F)||t.addClass(L),n.element.removeAttr("aria-activedescendant"),a=t[0].id||a,a&&(t.attr("id",a),n.element.attr("aria-activedescendant",a))),n._focused=t,e)},_keydown:function(t){var n,r=this,a=t.keyCode,i=r._current(),s=r._isRtl;if(t.target==t.currentTarget){if(a==o.DOWN||a==o.RIGHT)n=s?w:"next";else if(a==o.UP||a==o.LEFT)n=s?"next":w;else if(a==o.ENTER||a==o.SPACEBAR)r._click(i),t.preventDefault();else{if(a==o.HOME)return r._click(r._endItem("first")),t.preventDefault(),e;if(a==o.END)return r._click(r._endItem("last")),t.preventDefault(),e}n&&(r._click(r._item(i,n)),t.preventDefault())}},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e.dataSource.unbind("change",e._refreshHandler):e._refreshHandler=t.proxy(e.refresh,e),e.dataSource=i.data.DataSource.create(e.options.dataSource).bind("change",e._refreshHandler)},setDataSource:function(t){var e=this;e.options.dataSource=t,e._dataSource(),e.dataSource.fetch()},_animations:function(t){t&&"animation"in t&&!t.animation&&(t.animation={open:{effects:{}},close:{effects:{}}})},refresh:function(t){var e,n,r,a,s=this,o=s.options,l=i.getter(o.dataTextField),c=i.getter(o.dataContentField),d=i.getter(o.dataContentUrlField),p=i.getter(o.dataImageUrlField),u=i.getter(o.dataUrlField),f=i.getter(o.dataSpriteCssClass),h=[],m=s.dataSource.view();for(t=t||{},r=t.action,r&&(m=t.items),e=0,a=m.length;e<a;e++)n={text:l(m[e])},o.dataContentField&&(n.content=c(m[e])),o.dataContentUrlField&&(n.contentUrl=d(m[e])),o.dataUrlField&&(n.url=u(m[e])),o.dataImageUrlField&&(n.imageUrl=p(m[e])),o.dataSpriteCssClass&&(n.spriteCssClass=f(m[e])),h[e]=n;if("add"==t.action)t.index<s.tabGroup.children().length?s.insertBefore(h,s.tabGroup.children().eq(t.index)):s.append(h);else if("remove"==t.action)for(e=0;e<m.length;e++)s.remove(t.index);else"itemchange"==t.action?(e=s.dataSource.view().indexOf(m[0]),t.field===o.dataTextField&&s.tabGroup.children().eq(e).find(".k-link").text(m[0].get(t.field)),t.field===o.dataUrlField&&(s._contentUrls[e]=m[0].get(t.field))):(s.trigger("dataBinding"),s.remove("li"),s._contentUrls=[],s.append(h),s.trigger("dataBound"))},value:function(n){var r=this;return n===e?r.select().text():(n!=r.value()&&r.tabGroup.children().each(function(){t.trim(t(this).text())==n&&r.select(this)}),e)},items:function(){return this.tabGroup[0].children},setOptions:function(t){var e=this,n=e.options.animation;e._animations(t),t.contentUrls&&(e._contentUrls=t.contentUrls),t.animation=p(!0,n,t.animation),t.navigatable?e.wrapper.on("keydown"+v,e._keyDownProxy):e.wrapper.off("keydown"+v,e._keyDownProxy),b.fn.setOptions.call(e,t)},events:[E,I,C,G,D,"change","dataBinding","dataBound"],options:{name:"TabStrip",dataTextField:"",dataContentField:"",dataImageUrlField:"",dataUrlField:"",dataSpriteCssClass:"",dataContentUrlField:"",tabPosition:"top",animation:{open:{effects:"expand:vertical fadeIn",duration:200},close:{duration:200}},collapsible:!1,navigatable:!0,contentUrls:!1,scrollable:{distance:200}},destroy:function(){var t=this,e=t.scrollWrap;b.fn.destroy.call(t),t._refreshHandler&&t.dataSource.unbind("change",t._refreshHandler),t.wrapper.off(v),t.wrapper.children(".k-tabstrip-items").off(v),t._scrollableModeActive&&(t._scrollPrevButton.off().remove(),t._scrollNextButton.off().remove()),i.destroy(t.wrapper),e.children(".k-tabstrip").unwrap()},select:function(e){var n=this;return 0===arguments.length?n.tabGroup.children("li."+F):(isNaN(e)||(e=n.tabGroup.children().get(e)),e=n.tabGroup.find(e),t(e).each(function(e,r){r=t(r),r.hasClass(F)||n.trigger(E,{item:r[0],contentElement:n.contentHolder(r.index())[0]})||n.activateTab(r)}),n)},enable:function(t,e){return this._toggleDisabled(t,e!==!1),this},disable:function(t){return this._toggleDisabled(t,!1),this},reload:function(e){var n,r;return e=this.tabGroup.find(e),n=this,r=n._contentUrls,e.each(function(){var e=t(this),a=e.find("."+x).data(P)||r[e.index()],i=n.contentHolder(e.index());a&&n.ajaxRequest(e,i,null,a)}),n},append:function(t){var e=this,n=e._create(t);return c(n.tabs,function(t){var r=n.contents[t];e.tabGroup.append(this),"bottom"==e.options.tabPosition?e.tabGroup.before(r):e._scrollableModeActive?e._scrollPrevButton.before(r):e.wrapper.append(r),e.angular("compile",function(){return{elements:[r]}})}),r(e.tabGroup),e._updateContentElements(),e.resize(!0),e},_appendUrlItem:function(t){this._contentUrls.push(t)},_moveUrlItem:function(t,e){this._contentUrls.splice(e,0,this._contentUrls.splice(t,1)[0])},_removeUrlItem:function(t){this._contentUrls.splice(t,1)},insertBefore:function(e,n){n=t(e).is(t(n))?this.tabGroup.find(n).next():this.tabGroup.find(n);var a=this,i=a._create(e),s=a.element.find("#"+n.attr("aria-controls"));return c(i.tabs,function(e){var r=i.contents[e],o=i.newTabsCreated?a._contentUrls.length-(i.tabs.length-e):t(r).index()-1;n.before(this),s.before(r),a._moveUrlItem(o,t(this).index()),a.angular("compile",function(){return{elements:[r]}})}),r(a.tabGroup),a._updateContentElements(i.newTabsCreated),a.resize(!0),a},insertAfter:function(e,n){n=t(e).is(t(n))?this.tabGroup.find(n).prev():this.tabGroup.find(n);var a=this,i=a._create(e),s=a.element.find("#"+n.attr("aria-controls"));return c(i.tabs,function(e){var r=i.contents[e],o=i.newTabsCreated?a._contentUrls.length-(i.tabs.length-e):t(r).index()-1;n.after(this),s.after(r),a._moveUrlItem(o,t(this).index()),a.angular("compile",function(){return{elements:[r]}})}),r(a.tabGroup),a._updateContentElements(i.newTabsCreated),a.resize(!0),a},remove:function(e){var n,r=this,a=typeof e;return"string"===a?e=r.tabGroup.find(e):"number"===a&&(e=r.tabGroup.children().eq(e)),n=e.map(function(){var e=t(this).index(),n=r.contentElement(e);return i.destroy(n),r._removeUrlItem(e),n}),e.remove(),n.empty(),n.remove(),r._updateContentElements(),r.resize(!0),r},_create:function(e){var r,a,s,o=this,c=!1;return e=e instanceof i.data.ObservableArray?e.toJSON():e,t.isPlainObject(e)||t.isArray(e)?(e=t.isArray(e)?e:[e],c=!0,r=l(e,function(n,r){return o._appendUrlItem(e[r].contentUrl||null),t(X.renderItem({group:o.tabGroup,item:p(n,{index:r})}))}),a=l(e,function(e,n){if("string"==typeof e.content||e.contentUrl)return t(X.renderContent({item:p(e,{index:n})}))})):(r="string"==typeof e&&"<"!=e[0]?o.element.find(e):t(e),a=t(),r.each(function(){if(/k-tabstrip-items/.test(this.parentNode.className)){var e=o.element.find("#"+this.getAttribute("aria-controls"));s=e}else s=t("<div class='"+R+"'/>");a=a.add(s)}),n(r)),{tabs:r,contents:a,newTabsCreated:c}},_toggleDisabled:function(e,n){e=this.tabGroup.find(e),e.each(function(){t(this).toggleClass(N,n).toggleClass(H,!n)})},_updateClasses:function(){var a,i,s,o=this;o.wrapper.addClass("k-widget k-header k-tabstrip"),o.tabGroup=o.wrapper.children("ul").addClass("k-tabstrip-items k-reset"),o.tabGroup[0]||(o.tabGroup=t("<ul class='k-tabstrip-items k-reset'/>").appendTo(o.wrapper)),a=o.tabGroup.find("li").addClass("k-item"),a.length&&(i=a.filter("."+F).index(),s=i>=0?i:e,o.tabGroup.contents().filter(function(){return 3==this.nodeType&&!d(this.nodeValue)}).remove()),i>=0&&a.eq(i).addClass(z),o.contentElements=o.wrapper.children("div"),o.contentElements.addClass(R).eq(s).addClass(F).css({display:"block"}),a.length&&(n(a),r(o.tabGroup),o._updateContentElements(!0))},_elementId:function(t,e){var n,r=t.attr("id"),a=this.element.attr("id");return!r||r.indexOf(a+"-")>-1?(n=(a||i.guid())+"-",n+(e+1)):r},_updateContentElements:function(e){var n=this,r=n._contentUrls,a=n.tabGroup.find(".k-item"),s=n.wrapper.children("div"),o=n._elementId.bind(n);s.length&&a.length>s.length?s.each(function(n){var r=o(t(this),n),i=a.filter("[aria-controls="+(this.id||0)+"]")[0];!i&&e&&(i=a[n]),i&&i.setAttribute("aria-controls",r),this.setAttribute("id",r)}):a.each(function(e){var a=s.eq(e),i=o(a,e);this.setAttribute("aria-controls",i),!a.length&&r[e]?t("<div class='"+R+"'/>").appendTo(n.wrapper).attr("id",i):(a.attr("id",i),t(this).children(".k-loading")[0]||r[e]||t("<span class='k-loading k-complete'/>").prependTo(this)),a.attr("role","tabpanel"),a.filter(":not(."+F+")").attr("aria-hidden",!0).attr("aria-expanded",!1),a.filter("."+F).attr("aria-expanded",!0)}),n.contentElements=n.contentAnimators=n.wrapper.children("div"),n.tabsHeight=m(n.tabGroup)+parseInt(n.wrapper.css("border-top-width"),10)+parseInt(n.wrapper.css("border-bottom-width"),10),i.kineticScrollNeeded&&i.mobile.ui.Scroller&&(i.touchScroller(n.contentElements),n.contentElements=n.contentElements.children(".km-scroll-container"))},_wrapper:function(){var t=this;t.wrapper=t.element.is("ul")?t.element.wrapAll("<div />").parent():t.element,t.scrollWrap=t.wrapper.parent(".k-tabstrip-wrapper"),t.scrollWrap[0]||(t.scrollWrap=t.wrapper.wrapAll("<div class='k-tabstrip-wrapper' />").parent())},_tabPosition:function(){var t=this,e=t.options.tabPosition;t.wrapper.addClass("k-floatwrap k-tabstrip-"+e),"bottom"==e&&t.tabGroup.appendTo(t.wrapper),t.resize(!0)},_setContentElementsDimensions:function(){var t,e,n,r,a,i,s=this,o=s.options.tabPosition;"left"!=o&&"right"!=o||(t=s.wrapper.children(".k-content"),e=t.filter(":visible"),n="margin-"+o,r=s.tabGroup,a=h(r),i=Math.ceil(r.height())-parseInt(e.css("padding-top"),10)-parseInt(e.css("padding-bottom"),10)-parseInt(e.css("border-top-width"),10)-parseInt(e.css("border-bottom-width"),10),setTimeout(function(){t.css(n,a).css("min-height",i)}))},_resize:function(){this._setContentElementsDimensions(),this._scrollable()},_sizeScrollWrap:function(t){var e,n;t.is(":visible")&&(e=this.options.tabPosition,n=Math.floor(m(t,!0))+("left"===e||"right"===e?2:this.tabsHeight),this.scrollWrap.css("height",n).css("height"))},_toggleHover:function(e){t(e.currentTarget).toggleClass(q,e.type==B)},_click:function(t){var e,n,r=this,a=t.find("."+x),i=a.attr(k),s=r.options.collapsible,o=t.index(),l=r.contentHolder(o);if(t.closest(".k-widget")[0]==r.wrapper[0]){if(t.is("."+H+(s?"":",."+F)))return!0;if(n=a.data(P)||r._contentUrls[o]||i&&("#"==i.charAt(i.length-1)||i.indexOf("#"+r.element[0].id+"-")!=-1),e=!i||n,r.tabGroup.children("[data-animating]").length)return e;if(r.trigger(E,{item:t[0],contentElement:l[0]}))return!0;if(e!==!1)return s&&t.is("."+F)?(r.deactivateTab(t),!0):(r.activateTab(t)&&(e=!0),e)}},_scrollable:function(){var t,e,n,r,s,o,l=this,c=l.options;l._scrollableAllowed()&&(l.wrapper.addClass("k-tabstrip-scrollable"),t=l.wrapper[0].offsetWidth,e=l.tabGroup[0].scrollWidth,e>t&&!l._scrollableModeActive?(l._nowScrollingTabs=!1,l._isRtl=i.support.isRtl(l.element),s=i.support.mobileOS?"touchstart":"mousedown",o=i.support.mobileOS?"touchend":"mouseup",l.wrapper.append(a("prev","k-i-arrow-60-left")+a("next","k-i-arrow-60-right")),n=l._scrollPrevButton=l.wrapper.children(".k-tabstrip-prev"),r=l._scrollNextButton=l.wrapper.children(".k-tabstrip-next"),l.tabGroup.css({marginLeft:h(n)+9,marginRight:h(r)+12}),n.on(s+v,function(){l._nowScrollingTabs=!0,l._scrollTabsByDelta(c.scrollable.distance*(l._isRtl?1:-1))}),r.on(s+v,function(){l._nowScrollingTabs=!0,l._scrollTabsByDelta(c.scrollable.distance*(l._isRtl?-1:1))}),n.add(r).on(o+v,function(){l._nowScrollingTabs=!1}),l._scrollableModeActive=!0,l._toggleScrollButtons()):l._scrollableModeActive&&e<=t?(l._scrollableModeActive=!1,l.wrapper.removeClass("k-tabstrip-scrollable"),l._scrollPrevButton.off().remove(),l._scrollNextButton.off().remove(),l.tabGroup.css({marginLeft:"",marginRight:""})):l._scrollableModeActive?l._toggleScrollButtons():l.wrapper.removeClass("k-tabstrip-scrollable"))},_scrollableAllowed:function(){var t=this.options;return t.scrollable&&!isNaN(t.scrollable.distance)&&("top"==t.tabPosition||"bottom"==t.tabPosition)},_scrollTabsToItem:function(t){var e,n=this,r=n.tabGroup,a=r.scrollLeft(),i=h(t),s=n._isRtl?t.position().left:t.position().left-r.children().first().position().left,o=r[0].offsetWidth,l=Math.ceil(parseFloat(r.css("padding-left")));n._isRtl?s<0?e=a+s-(o-a)-l:s+i>o&&(e=a+s-i+2*l):a+o<s+i?e=s+i-o+2*l:a>s&&(e=s-l),r.finish().animate({scrollLeft:e},"fast","linear",function(){n._toggleScrollButtons()})},_scrollTabsByDelta:function(t){var e=this,n=e.tabGroup,r=n.scrollLeft();n.finish().animate({scrollLeft:r+t},"fast","linear",function(){e._nowScrollingTabs?e._scrollTabsByDelta(t):e._toggleScrollButtons()})},_toggleScrollButtons:function(){var t=this,e=t.tabGroup,n=e.scrollLeft();t._scrollPrevButton.toggle(t._isRtl?n<e[0].scrollWidth-e[0].offsetWidth-1:0!==n),t._scrollNextButton.toggle(t._isRtl?0!==n:n<e[0].scrollWidth-e[0].offsetWidth-1)},deactivateTab:function(t){var e=this,n=e.options.animation,r=n.open,a=p({},n.close),s=a&&"effects"in a;t=e.tabGroup.find(t),a=p(s?a:p({reverse:!0},r),{hide:!0}),i.size(r.effects)?(t.kendoAddClass(N,{duration:r.duration}),t.kendoRemoveClass(F,{duration:r.duration})):(t.addClass(N),t.removeClass(F)),t.removeAttr("aria-selected"),e.contentAnimators.filter("."+F).kendoStop(!0,!0).kendoAnimate(a).removeClass(F).attr("aria-hidden",!0)},activateTab:function(t){var e,n,r,a,s,o,l,c,d,u,f,h,b,g,v;if(!this.tabGroup.children("[data-animating]").length)return t=this.tabGroup.find(t),e=this,n=e.options.animation,r=n.open,a=p({},n.close),s=a&&"effects"in a,o=t.parent().children(),l=o.filter("."+F),c=o.index(t),a=p(s?a:p({reverse:!0},r),{hide:!0}),i.size(r.effects)?(l.kendoRemoveClass(F,{duration:a.duration}),t.kendoRemoveClass(q,{duration:a.duration})):(l.removeClass(F),t.removeClass(q)),d=e.contentAnimators,e.inRequest&&(e.xhr.abort(),e.inRequest=!1),0===d.length?(e.tabGroup.find("."+z).removeClass(z),t.addClass(z).css("z-index"),t.addClass(F),e._current(t),e.trigger("change"),e._scrollableModeActive&&e._scrollTabsToItem(t),!1):(u=d.filter("."+F),f=e.contentHolder(c),h=f.closest(".k-content"),e.tabsHeight=m(e.tabGroup)+parseInt(e.wrapper.css("border-top-width"),10)+parseInt(e.wrapper.css("border-bottom-width"),10),e._sizeScrollWrap(u),0===f.length?(u.removeClass(F).attr("aria-hidden",!0).kendoStop(!0,!0).kendoAnimate(a),!1):(t.attr("data-animating",!0),b=(t.children("."+x).data(P)||e._contentUrls[c]||!1)&&f.is(T),g=function(){e.tabGroup.find("."+z).removeClass(z),t.addClass(z).css("z-index"),i.size(r.effects)?(l.kendoAddClass(N,{duration:r.duration}),t.kendoAddClass(F,{duration:r.duration})):(l.addClass(N),t.addClass(F)),l.removeAttr("aria-selected"),t.attr("aria-selected",!0),e._current(t),e._sizeScrollWrap(h),h.addClass(F).removeAttr("aria-hidden").kendoStop(!0,!0).attr("aria-expanded",!0).kendoAnimate(p({init:function(){e.trigger(C,{item:t[0],contentElement:f[0]}),i.resize(f)}},r,{complete:function(){t.removeAttr("data-animating"),e.trigger(I,{item:t[0],contentElement:f[0]}),i.resize(f),e.scrollWrap.css("height","").css("height")}}))},v=function(){b?(t.removeAttr("data-animating"),e.ajaxRequest(t,f,function(){t.attr("data-animating",!0),g(),e.trigger("change")})):(g(),e.trigger("change")),e._scrollableModeActive&&e._scrollTabsToItem(t)},u.removeClass(F),u.attr("aria-hidden",!0),u.attr("aria-expanded",!1),u.length?u.kendoStop(!0,!0).kendoAnimate(p({complete:v},a)):v(),!0))},contentElement:function(n){var r,a,s,o;if(isNaN(n-0))return e;if(r=this.contentElements&&this.contentElements[0]&&!i.kineticScrollNeeded?this.contentElements:this.contentAnimators,a=t(this.tabGroup.children()[n]).attr("aria-controls"),r)for(s=0,o=r.length;s<o;s++)if(r.eq(s).closest(".k-content")[0].id==a)return r[s];return e},contentHolder:function(e){var n=t(this.contentElement(e)),r=n.children(".km-scroll-container");return i.support.touch&&r[0]?r:n},ajaxRequest:function(e,n,r,a){var s,o,l,c,d,p,f,h,m,b;e=this.tabGroup.find(e),s=this,o=t.ajaxSettings.xhr,l=e.find("."+x),c={},d=e.width()/2,p=!1,f=e.find(".k-loading").removeClass("k-complete"),f[0]||(f=t("<span class='k-loading'/>").prependTo(e)),h=2*d-f.width(),m=function(){f.animate({marginLeft:(parseInt(f.css("marginLeft"),10)||0)<d?h:0},500,m)},i.support.browser.msie&&i.support.browser.version<10&&setTimeout(m,40),a=a||l.data(P)||s._contentUrls[e.index()]||l.attr(k),s.inRequest=!0,b={type:"GET",cache:!1,url:a,dataType:"html",data:c,xhr:function(){var e=this,n=o(),r=e.progressUpload?"progressUpload":!!e.progress&&"progress";return n&&t.each([n,n.upload],function(){this.addEventListener&&this.addEventListener("progress",function(t){r&&e[r](t)},!1)}),e.noProgress=!(window.XMLHttpRequest&&"upload"in new XMLHttpRequest),n},progress:function(t){if(t.lengthComputable){var e=parseInt(t.loaded/t.total*100,10)+"%";f.stop(!0).addClass("k-progress").css({width:e,marginLeft:0})}},error:function(t,e){s.trigger("error",{xhr:t,status:e})&&this.complete()},stopProgress:function(){clearInterval(p),f.stop(!0).addClass("k-progress")[0].style.cssText=""},complete:function(t){s.inRequest=!1,this.noProgress?setTimeout(this.stopProgress,500):this.stopProgress(),"abort"==t.statusText&&f.remove()},success:function(t){var o,l,c;f.addClass("k-complete");try{o=this,l=10,o.noProgress&&(f.width(l+"%"),p=setInterval(function(){o.progress({lengthComputable:!0,loaded:Math.min(l,100),total:100}),l+=10},40)),s.angular("cleanup",function(){return{elements:n.get()}}),i.destroy(n),n.html(t)}catch(d){c=window.console,c&&c.error&&c.error(d.name+": "+d.message+" in "+a),this.error(this.xhr,"error")}r&&r.call(s,n),s.angular("compile",function(){return{elements:n.get()}}),s.trigger(D,{item:e[0],contentElement:n[0]})}},"object"==typeof a&&(b=t.extend(!0,{},b,a),u(b.url)&&(b.url=b.url())),s.xhr=t.ajax(b)}});p(X,{renderItem:function(t){t=p({tabStrip:{},group:{}},t);var e=j.empty,n=t.item;return j.item(p(t,{image:n.imageUrl?j.image:e,sprite:n.spriteCssClass?j.sprite:e,itemWrapper:j.itemWrapper},V))},renderContent:function(t){return j.content(p(t,V))}}),i.ui.plugin(X)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,n){(n||e)()});;!function(e,define){define("kendo.upload.min",["kendo.core.min"],e)}(function(){return function(e,t){function a(t){return e.map(n(t),function(e){return e.name}).join(", ")}function n(e){var t=e[0];return t.files?o(t.files):[{name:r(t.value),extension:i(t.value),size:null}]}function o(t){return e.map(t,function(e){return s(e)})}function s(e){var t=e.name||e.fileName;return{name:U.htmlEncode(t),extension:i(t),size:"number"==typeof e.size?e.size:e.fileSize,rawFile:e}}function i(e){var t=e.match(x);return t?t[0]:""}function r(e){var t=e.lastIndexOf("\\");return t!=-1?e.substr(t+1):e}function l(t,a){var n=U.guid();return e.map(t,function(e){return e.uid=a?U.guid():n,e})}function p(e,t){var a,n=d(t.allowedExtensions),o=t.maxFileSize,s=t.minFileSize;for(a=0;a<e.length;a++)u(e[a],n),c(e[a],s,o)}function d(t){var a=e.map(t,function(e){var t="."===e.substring(0,1)?e:"."+e;return t.toLowerCase()});return a}function u(t,a){a.length>0&&a.indexOf(t.extension.toLowerCase())<0&&(t.validationErrors=t.validationErrors||[],e.inArray(O,t.validationErrors)===-1&&t.validationErrors.push(O))}function c(t,a,n){0!==a&&t.size<a&&(t.validationErrors=t.validationErrors||[],e.inArray(L,t.validationErrors)===-1&&t.validationErrors.push(L)),0!==n&&t.size>n&&(t.validationErrors=t.validationErrors||[],e.inArray(M,t.validationErrors)===-1&&t.validationErrors.push(M))}function f(e){var t,a=0;if("number"!=typeof e[0].size)return"";for(t=0;t<e.length;t++)e[t].size&&(a+=e[t].size);return a/=1024,a<1024?a.toFixed(2)+" KB":(a/1024).toFixed(2)+" MB"}function m(t){return!t.multiple&&e(".k-file",t.wrapper).length>1}function h(a,n,o,s){var i,r;return n._supportsRemove()?(i=a.data("fileNames"),r=e.map(i,function(e){return e.name}),s===!1?(n._removeFileEntry(a),t):(n._submitRemove(r,o,function(e,t,o){var s=n.trigger(R,{operation:"remove",files:i,response:e,XMLHttpRequest:o});s||n._removeFileEntry(a)},function(e){m(n)&&n._removeFileEntry(a),n.trigger(N,{operation:"remove",files:i,XMLHttpRequest:e}),b("Server response: "+e.responseText)}),t)):(!m(n)&&s||n._removeFileEntry(a),t)}function v(t,a,n){var o=!1,s="";try{s=e.parseJSON(g(t)),o=!0}catch(i){n()}o&&a(s)}function g(e){return t!==e&&""!==e||(e="{}"),e}function k(e){e.stopPropagation(),e.preventDefault()}function _(e,t,a,n){var o,s;e.on("dragenter"+t,function(e){a(e),s=new Date,o||(o=setInterval(function(){var e=new Date-s;e>100&&(n(),clearInterval(o),o=null)},100))}).on("dragover"+t,function(){s=new Date})}function w(e){return e.is(".k-file-progress, .k-file-success, .k-file-error")}function F(t){return e(t.target).closest(".k-file")}var y,C,U=window.kendo,S=U.ui.Widget,E=U.antiForgeryTokens,b=U.logToConsole,x=/\.([^\.]+)$/,z=".kendoUpload",D="select",A="upload",R="success",N="error",I="complete",T="cancel",q="clear",H="progress",B="remove",P="validationErrors",M="invalidMaxFileSize",L="invalidMinFileSize",O="invalidFileExtension",V=1e3,X=2e3,Z={loading:"k-i-loading",warning:"k-i-warning",success:"k-i-check"},j=S.extend({init:function(t,a){var n,o,s,i=this;S.fn.init.call(i,t,a),i.name=t.name,i.multiple=i.options.multiple,i.localization=i.options.localization,n=i.element,i.wrapper=n.closest(".k-upload"),0===i.wrapper.length&&(i.wrapper=i._wrapInput(n)),i._activeInput(n),i.toggle(i.options.enabled),o=i._ns=z+"-"+U.guid(),n.closest("form").on("submit"+o,e.proxy(i._onParentFormSubmit,i)).on("reset"+o,e.proxy(i._onParentFormReset,i)),i.options.async.saveUrl?(i._module=i._supportsFormData()?new C(i):new y(i),i._async=!0,s=i.options.files,s.length>0&&i._renderInitialFiles(s)):i._module=new W(i),i._supportsDrop()&&(""!==i.options.dropZone?i._setupCustomDropZone():i._setupDropZone()),i.wrapper.on("click",".k-upload-action",e.proxy(i._onFileAction,i)).on("click",".k-clear-selected",e.proxy(i._onClearSelected,i)).on("click",".k-upload-selected",e.proxy(i._onUploadSelected,i)),i.element.val()&&i._onInputChange({target:i.element})},events:[D,A,R,N,I,T,q,H,B],options:{name:"Upload",enabled:!0,multiple:!0,showFileList:!0,template:"",files:[],async:{removeVerb:"POST",autoUpload:!0,withCredentials:!0,accept:"*/*; q=0.5, application/json"},localization:{select:"Select files...",cancel:"Cancel",retry:"Retry",remove:"Remove",clearSelectedFiles:"Clear",uploadSelectedFiles:"Upload",dropFilesHere:"drop files here to upload",statusUploading:"uploading",statusUploaded:"uploaded",statusWarning:"warning",statusFailed:"failed",headerStatusUploading:"Uploading...",headerStatusUploaded:"Done",invalidMaxFileSize:"File size too large.",invalidMinFileSize:"File size too small.",invalidFileExtension:"File type not allowed."},validation:{allowedExtensions:[],maxFileSize:0,minFileSize:0},dropZone:""},setOptions:function(e){var t=this,a=t.element;S.fn.setOptions.call(t,e),t.multiple=t.options.multiple,a.attr("multiple",!!t._supportsMultiple()&&t.multiple),t.toggle(t.options.enabled)},enable:function(e){e=t===e||e,this.toggle(e)},disable:function(){this.toggle(!1)},toggle:function(e){e=t===e?e:!e,this.wrapper.toggleClass("k-state-disabled",e),this.element.prop("disabled",e)},focus:function(){this.element.focus()},destroy:function(){var t=this,a=e(t.options.dropZone);e(document).add(e(".k-dropzone",t.wrapper)).add(t.wrapper.closest("form")).off(t._ns),a.length>0&&a.off(t._ns),e(t.element).off(z),S.fn.destroy.call(t)},upload:function(){var e=this;e._module.onSaveSelected()},getFiles:function(){var t,a,n,o=this,s=[],i=o.wrapper.find(".k-file");for(a=0;a<i.length;a++)if(t=e(i[a]).data("fileNames"))for(n=0;n<t.length;n++)s.push(t[n]);return s},clearAllFiles:function(){var e=this,t=e.wrapper.find(".k-file");t.each(function(t,a){e._removeFileByDomElement(a,!1)})},removeAllFiles:function(){var e=this,t=e.wrapper.find(".k-file");t.each(function(t,a){e._removeFileByDomElement(a,!0)})},removeFileByUid:function(e){this._removeFileByUid(e,!0)},clearFileByUid:function(e){this._removeFileByUid(e,!1)},_removeFileByUid:function(t,a){var n,o=this;"string"==typeof t&&(n=e(".k-file["+U.attr("uid")+'="'+t+'"]',o.wrapper),n.length>0&&o._removeFileByDomElement(n,a))},clearFile:function(e){this._removeFile(e,!1)},removeFile:function(e){this._removeFile(e,!0)},_removeFile:function(t,a){var n,o=this,s=o.wrapper.find(".k-file");"function"==typeof t&&s.each(function(s,i){n=e(i).data("fileNames"),t(n)&&o._removeFileByDomElement(i,a)})},_removeFileByDomElement:function(t,a){var n,o=this,s={target:e(t,o.wrapper)};o.options.async.saveUrl?(e(t).hasClass("k-file-progress")?o._module.onCancel(s):o._module.onRemove(s,{},a),n=e(".k-file",o.wrapper),0===n.length?o._hideHeaderUploadstatus():o._updateHeaderUploadStatus()):o._module.onRemove(s,{},a)},_addInput:function(t){if(t[0].nodeType){var a=this,n=t.clone().val("");n.insertAfter(a.element).data("kendoUpload",a),e(a.element).hide().attr("tabindex","-1").removeAttr("id").off(z),a._activeInput(n),a.element.focus()}},_activeInput:function(t){var a=this,n=a.wrapper;a.element=t,t.attr("multiple",!!a._supportsMultiple()&&a.multiple).attr("autocomplete","off").on("click"+z,function(e){n.hasClass("k-state-disabled")&&e.preventDefault()}).on("focus"+z,function(){e(this).parent().addClass("k-state-focused")}).on("blur"+z,function(){e(this).parent().removeClass("k-state-focused")}).on("change"+z,e.proxy(a._onInputChange,a)).on("keydown"+z,e.proxy(a._onInputKeyDown,a))},_onInputKeyDown:function(e){var t=this,a=t.wrapper.find(".k-upload-action:visible:first");e.keyCode===U.keys.TAB&&a.length>0&&(e.preventDefault(),a.focus())},_onInputChange:function(t){var a,n=this,o=e(t.target),s=l(n._inputFiles(o),n._isAsyncNonBatch());p(s,n.options.validation),a=n.trigger(D,{files:s}),a?(n._addInput(o),o.remove()):n._module.onSelect({target:o},s)},_onDrop:function(t){var a,n=t.originalEvent.dataTransfer,s=this,i=n.files,r=l(o(i),s._isAsyncNonBatch());k(t),i.length>0&&!s.wrapper.hasClass("k-state-disabled")&&(!s.multiple&&r.length>1&&r.splice(1,r.length-1),p(r,s.options.validation),a=s.trigger(D,{files:r}),a||s._module.onSelect({target:e(".k-dropzone",s.wrapper)},r))},_filesContainValidationErrors:function(t){var a=!1;return e(t).each(function(e,t){if(t[P]&&t[P].length>0)return a=!0,!1}),a},_isAsyncNonBatch:function(){return this._async&&!this.options.async.batch||!1},_renderInitialFiles:function(t){var a,n,o=this,s=0;for(t=l(t,!0),s=0;s<t.length;s++)a=t[s],n=o._enqueueFile(a.name,{fileNames:[a]}),n.addClass("k-file-success").data("files",[t[s]]),o.options.template||e(".k-upload-status",n).prepend("<span class='k-upload-pct'>100%</span>"),o._supportsRemove()&&o._fileAction(n,B)},_prepareTemplateData:function(e,t){var a=t.fileNames,n={},o=0,s=0;for(s=0;s<a.length;s++)o+=a[s].size;return n.name=e,n.size=o,n.files=t.fileNames,n},_prepareDefaultSingleFileEntryTemplate:function(t){var a=this,n=t.fileNames[0],o=f(t.fileNames),s=n[P],i="";return i+=s&&s.length>0?"<li class='k-file k-file-invalid'><span class='k-progress'></span><span class='k-file-invalid-extension-wrapper'><span class='k-file-invalid-icon'>!</span><span class='k-file-state'></span></span><span class='k-file-name-size-wrapper'><span class='k-file-name k-file-name-invalid' title='"+n.name+"'>"+n.name+"</span><span class='k-file-validation-message'>"+a.localization[s[0]]+"</span></span>":"<li class='k-file'><span class='k-progress'></span><span class='k-file-extension-wrapper'><span class='k-file-extension'>"+n.extension.substring(1)+"</span><span class='k-file-state'></span></span><span class='k-file-name-size-wrapper'><span class='k-file-name' title='"+n.name+"'>"+n.name+"</span><span class='k-file-size'>"+o+"</span></span>",i+="<strong class='k-upload-status'></strong>",e(i)},_prepareDefaultMultipleFileEntriesTemplate:function(t){var a,n,o=this,s=t.fileNames,i=o._filesContainValidationErrors(s),r=f(s),l="";for(l+=i?"<li class='k-file k-file-invalid'><span class='k-progress'></span><span class='k-multiple-files-invalid-extension-wrapper'><span class='k-file-invalid-icon'>!</span>":"<li class='k-file'><span class='k-progress'></span><span class='k-multiple-files-extension-wrapper'>",l+="<span class='k-file-state'></span></span>",s.sort(function(e,t){return e[P]?-1:t[P]?1:0}),l+="<span class='k-file-name-size-wrapper'>",a=0;a<s.length;a++)n=s[a],l+=n[P]&&n[P].length>0?"<span class='k-file-name k-file-name-invalid' title='"+n.name+"'>"+n.name+"</span>":"<span class='k-file-name' title='"+n.name+"'>"+n.name+"</span>";return l+=i?"<span class='k-file-validation-message'>Invalid file(s). Please check file upload requirements.</span>":"<span class='k-file-information'>Total: "+s.length+" files, "+r+"</span>",l+="</span><strong class='k-upload-status'></strong>",e(l)},_enqueueFile:function(t,a){var n,o,s,i,r=this,l=a.fileNames[0].uid,p=e(".k-upload-files",r.wrapper),d=r.options,u=d.template;return 0===p.length&&(p=e("<ul class='k-upload-files k-reset'></ul>").appendTo(r.wrapper),r.options.showFileList||p.hide(),r.wrapper.removeClass("k-upload-empty")),n=e(".k-file",p),u?(s=r._prepareTemplateData(t,a),u=U.template(u),o=e("<li class='k-file'>"+u(s)+"</li>"),o.find(".k-upload-action").addClass("k-button"),r.angular("compile",function(){return{elements:o,data:[s]}})):o=1===a.fileNames.length?r._prepareDefaultSingleFileEntryTemplate(a):r._prepareDefaultMultipleFileEntriesTemplate(a),o.attr(U.attr("uid"),l).appendTo(p).data(a),r._async||e(".k-progress",o).width("100%"),!r.multiple&&n.length>0&&(i={files:n.data("fileNames"),headers:{}},r.trigger(B,i)||r._module.onRemove({target:e(n,r.wrapper)},i)),o},_removeFileEntry:function(t){var a,n,o,s=this,i=t.closest(".k-upload-files");t.remove(),a=e(".k-file",i),n=e(".k-file-success, .k-file-error",i),o=e(".k-file-invalid",i),n.length!==a.length&&o.length!==a.length||this._hideUploadButton(),0===a.length?(i.remove(),s.wrapper.addClass("k-upload-empty"),s._hideHeaderUploadstatus()):s._updateHeaderUploadStatus()},_fileAction:function(e,t){var a={remove:"k-i-x",cancel:"k-i-cancel",retry:"k-i-retry"},n={remove:"k-i-close",cancel:"k-i-close",retry:"k-i-reload"};a.hasOwnProperty(t)&&(this._clearFileAction(e),this.options.template?e.find(".k-upload-action").addClass("k-button").append("<span class='k-icon "+n[t]+" "+a[t]+"' title='"+this.localization[t]+"'aria-label='"+this.localization[t]+"'></span>").show():(e.find(".k-upload-status .k-upload-action").remove(),e.find(".k-upload-status").append(this._renderAction(a[t],this.localization[t],n[t]))))},_fileState:function(t,a){var n=this.localization,o={uploading:{text:n.statusUploading},uploaded:{text:n.statusUploaded},failed:{text:n.statusFailed}},s=o[a];s&&e("span.k-file-state",t).text(s.text)},_renderAction:function(t,a,n){return""!==t?e("<button type='button' class='k-button k-upload-action'><span class='k-icon "+n+" "+t+"' title='"+a+"' aria-label='"+a+"'></span></button>").on("focus",function(){e(this).addClass("k-state-focused")}).on("blur",function(){e(this).removeClass("k-state-focused")}):e("<button type='button' class='k-button'>"+a+"</button>")},_clearFileAction:function(t){e(".k-upload-action",t).empty().hide()},_onFileAction:function(t){var a,n,o,s,i,r,l=this;return l.wrapper.hasClass("k-state-disabled")||(a=e(t.target).closest(".k-upload-action"),n=a.find(".k-icon"),o=a.closest(".k-file"),s=o.data("fileNames"),i=l._filesContainValidationErrors(s),r={files:s,headers:{}},n.hasClass("k-i-x")?l.trigger(B,r)||l._module.onRemove({target:e(o,l.wrapper)},r,!i):n.hasClass("k-i-cancel")?(l.trigger(T,r),l._module.onCancel({target:e(o,l.wrapper)}),l._checkAllComplete(),l._updateHeaderUploadStatus()):n.hasClass("k-i-retry")&&(e(".k-i-warning",o).remove(),e(".k-progress",o).finish().show(),l._module.onRetry({target:e(o,l.wrapper)}))),!1},_onUploadSelected:function(){var e=this,t=e.wrapper;return t.hasClass("k-state-disabled")||this._module.onSaveSelected(),!1},_onClearSelected:function(){var e=this,t=e.wrapper,a={};return t.hasClass("k-state-disabled")||e.trigger(q,a)||e.clearAllFiles(),!1},_onFileProgress:function(t,a){var n;a>100&&(a=100),this.options.template?e(".k-progress",t.target).width(a+"%"):(n=e(".k-upload-pct",t.target),0===n.length&&e(".k-upload-status",t.target).prepend("<span class='k-upload-pct'></span>"),e(".k-upload-pct",t.target).text(a+"%"),e(".k-progress",t.target).width(a+"%")),this.trigger(H,{files:F(t).data("fileNames"),percentComplete:a})},_onUploadSuccess:function(e,t,a){var n=this,o=F(e),s=n.trigger(R,{files:o.data("fileNames"),response:t,operation:"upload",XMLHttpRequest:a});s?n._setUploadErrorState(o):(n._fileState(o,"uploaded"),o.removeClass("k-file-progress").addClass("k-file-success"),n._updateHeaderUploadStatus(),n._supportsRemove()?n._fileAction(o,B):n._clearFileAction(o)),n._hideUploadProgress(o),n._checkAllComplete()},_onUploadError:function(e,t){var a=this,n=F(e);a._setUploadErrorState(n),a.trigger(N,{operation:"upload",files:n.data("fileNames"),XMLHttpRequest:t}),b("Server response: "+t.responseText),a._hideUploadProgress(n),a._checkAllComplete()},_setUploadErrorState:function(t){var a=this,n=e(".k-upload-pct",t);a._fileState(t,"failed"),t.removeClass("k-file-progress").addClass("k-file-error"),e(".k-progress",t).width("100%"),n.length>0?n.empty().removeClass("k-upload-pct").addClass("k-icon k-i-warning"):e(".k-upload-status",t).prepend("<span class='k-icon k-i-warning'></span>"),this._updateHeaderUploadStatus(),this._fileAction(t,"retry")},_hideUploadProgress:function(t){e(".k-progress",t).delay(V).fadeOut(X,function(){e(this).css("width","0%")})},_showUploadButton:function(){var t=this,a=e(".k-upload-selected",t.wrapper),n=e(".k-clear-selected",t.wrapper);0===a.length&&(a=t._renderAction("",this.localization.uploadSelectedFiles).addClass("k-upload-selected"),n=t._renderAction("",this.localization.clearSelectedFiles).addClass("k-clear-selected")),this.wrapper.append(n,a)},_hideUploadButton:function(){e(".k-upload-selected, .k-clear-selected",this.wrapper).remove()},_showHeaderUploadStatus:function(t){var a=this,n=a.localization,o=e(".k-dropzone",a.wrapper),s=e(".k-upload-status-total",a.wrapper);0!==s.length&&s.remove(),s='<strong class="k-upload-status k-upload-status-total"><span class="k-icon"></span></strong>',t?(s=e(s).append(n.headerStatusUploading),s.find(".k-icon").addClass(Z.loading)):(s=e(s).append(n.headerStatusUploaded),s.find(".k-icon").addClass(Z.warning)),o.length>0?o.append(s):e(".k-upload-button",a.wrapper).after(s)},_updateHeaderUploadStatus:function(){var t,a,n=this,o=e(".k-upload-status-total",this.wrapper),s=e(".k-file",n.wrapper).not(".k-file-success, .k-file-error, .k-file-invalid"),i=e(".k-file-invalid",n.wrapper);(0===s.length||i.length>0)&&(t=e(".k-file.k-file-error, .k-file.k-file-invalid",n.wrapper),o=e(".k-upload-status-total",n.wrapper),a=e(".k-icon",o).removeClass().addClass("k-icon").addClass(0!==t.length?Z.warning:Z.success),o.html(a).append(n.localization.headerStatusUploaded))},_hideHeaderUploadstatus:function(){e(".k-upload-status-total",this.wrapper).remove()},_onParentFormSubmit:function(){var a,n=this,o=n.element;t!==this._module.onAbort&&this._module.onAbort(),o.value||(a=e(o),a.attr("disabled","disabled"),window.setTimeout(function(){a.removeAttr("disabled")},0))},_onParentFormReset:function(){e(".k-upload-files",this.wrapper).remove()},_supportsFormData:function(){return"undefined"!=typeof FormData},_supportsMultiple:function(){var e=this._userAgent().indexOf("Windows")>-1;return!(U.support.browser.opera||U.support.browser.safari&&e)},_supportsDrop:function(){var e=this._userAgent().toLowerCase(),t=/chrome/.test(e),a=!t&&/safari/.test(e),n=a&&/windows/.test(e);return!n&&this._supportsFormData()&&this.options.async.saveUrl},_userAgent:function(){return navigator.userAgent},_setupDropZone:function(){var t,a,n=this;e(".k-upload-button",n.wrapper).wrap("<div class='k-dropzone'></div>"),t=n._ns,a=e(".k-dropzone",n.wrapper).append(e("<em>"+n.localization.dropFilesHere+"</em>")).on("dragenter"+t,k).on("dragover"+t,function(e){e.preventDefault()}).on("drop"+t,e.proxy(n._onDrop,n)),_(a,t,function(){a.closest(".k-upload").hasClass("k-state-disabled")||a.addClass("k-dropzone-hovered")},function(){a.removeClass("k-dropzone-hovered")}),n._bindDocumentDragEventWrappers(a)},_setupCustomDropZone:function(){var t,a=this,n=e(a.options.dropZone);e(".k-upload-button",a.wrapper).wrap("<div class='k-dropzone'></div>"),t=a._ns,n.on("dragenter"+t,k).on("dragover"+t,function(e){e.preventDefault()}).on("drop"+t,e.proxy(a._onDrop,a)),_(n,t,function(t){a.wrapper.hasClass("k-state-disabled")||(n.removeClass("k-dropzone-hovered"),e(t.target).addClass("k-dropzone-hovered"))},function(){n.removeClass("k-dropzone-hovered")}),a._bindDocumentDragEventWrappers(n)},_bindDocumentDragEventWrappers:function(t){var a=this,n=a._ns;_(e(document),n,function(){a.wrapper.hasClass("k-state-disabled")||(t.addClass("k-dropzone-active"),t.closest(".k-upload").removeClass("k-upload-empty"))},function(){t.removeClass("k-dropzone-active"),0===e("li.k-file",t.closest(".k-upload")).length&&t.closest(".k-upload").addClass("k-upload-empty")})},_supportsRemove:function(){return!!this.options.async.removeUrl},_submitRemove:function(t,a,n,o){var s=this,i=s.options.async.removeField||"fileNames",r=e.extend(a.data,E());r[i]=t,jQuery.ajax({type:this.options.async.removeVerb,dataType:"json",dataFilter:g,url:this.options.async.removeUrl,traditional:!0,data:r,headers:a.headers,success:n,error:o,xhrFields:{withCredentials:this.options.async.withCredentials}})},_wrapInput:function(e){var t=this,a=t.options;return e.wrap("<div class='k-widget k-upload k-header'><div class='k-button k-upload-button' aria-label='"+this.localization.select+"'></div></div>"),a.async.saveUrl||e.closest(".k-upload").addClass("k-upload-sync"),e.closest(".k-upload").addClass("k-upload-empty"),e.closest(".k-button").append("<span>"+this.localization.select+"</span>"),e.closest(".k-upload")},_checkAllComplete:function(){0===e(".k-file.k-file-progress",this.wrapper).length&&this.trigger(I)},_inputFiles:function(e){return n(e)}}),W=function(e){this.name="syncUploadModule",this.element=e.wrapper,this.upload=e,this.element.closest("form").attr("enctype","multipart/form-data").attr("encoding","multipart/form-data")};W.prototype={onSelect:function(t,n){var o,s,i=this.upload,r=e(t.target),l=i._filesContainValidationErrors(n);i._addInput(r),o={fileNames:n},l?r.remove():o.relatedInput=r,s=i._enqueueFile(a(r),o),l&&i._hideUploadProgress(s),i._fileAction(s,B)},onRemove:function(e){var t=F(e),a=t.data("relatedInput");a&&a.remove(),this.upload._removeFileEntry(t)}},y=function(e){this.name="iframeUploadModule",this.element=e.wrapper,this.upload=e,this.iframes=[]},j._frameId=0,y.prototype={onSelect:function(t,a){var n=this.upload,o=e(t.target),s=n._filesContainValidationErrors(a),i=this.prepareUpload(o,a,s);n.options.async.autoUpload?s?(n._fileAction(i,B),n._showHeaderUploadStatus(!1)):this.performUpload(i):(n._fileAction(i,B),s?n._updateHeaderUploadStatus():n._showUploadButton()),s&&n._hideUploadProgress(i)},prepareUpload:function(t,n,o){var s,i,r,l,p=this.upload,d=e(p.element),u=p.options.async.saveField||t.attr("name");return p._addInput(t),t.attr("name",u),o?(t.remove(),i={fileNames:n}):(r=this.createFrame(p.name+"_"+j._frameId++),this.registerFrame(r),l=this.createForm(p.options.async.saveUrl,r.attr("name")).append(d),i={frame:r,relatedInput:d,fileNames:n}),s=p._enqueueFile(a(t),i),r&&r.data({form:l,file:s}),s},performUpload:function(t){var a,n,o,s={files:t.data("fileNames")},i=t.data("frame"),r=this.upload;if(r.trigger(A,s))r._removeFileEntry(i.data("file")),this.cleanupFrame(i),this.unregisterFrame(i);else{r._hideUploadButton(),r._showHeaderUploadStatus(!0),i.appendTo(document.body),a=i.data("form").attr("action",r.options.async.saveUrl).appendTo(document.body),s.data=e.extend({},s.data,E());for(n in s.data)o=a.find("input[name='"+n+"']"),0===o.length&&(o=e("<input>",{type:"hidden",name:n}).prependTo(a)),o.val(s.data[n]);r._fileAction(t,T),r._fileState(t,"uploading"),e(t).removeClass("k-file-error").addClass("k-file-progress"),i.one("load",e.proxy(this.onIframeLoad,this)),a[0].submit()}},onSaveSelected:function(){var t=this,a=t.upload;e(".k-file",this.element).each(function(){var n=e(this),o=w(n),s=a._filesContainValidationErrors(n.data("fileNames"));o||s||t.performUpload(n)})},onIframeLoad:function(t){var a,n=e(t.target);try{a=n.contents().text()}catch(o){a="Error trying to get server response: "+o}this.processResponse(n,a)},processResponse:function(t,a){var n=t.data("file"),o=this,s={responseText:a};v(a,function(a){e.extend(s,{statusText:"OK",status:"200"}),o.upload._onFileProgress({target:e(n,o.upload.wrapper)},100),o.upload._onUploadSuccess({target:e(n,o.upload.wrapper)},a,s),o.cleanupFrame(t),o.unregisterFrame(t)},function(){e.extend(s,{statusText:"error",status:"500"}),o.upload._onUploadError({target:e(n,o.upload.wrapper)},s)})},onCancel:function(t){var a=e(t.target).data("frame");this.stopFrameSubmit(a),this.cleanupFrame(a),this.unregisterFrame(a),this.upload._removeFileEntry(a.data("file"))},onRetry:function(e){var t=F(e);this.performUpload(t)},onRemove:function(e,t,a){var n=this,o=n.upload,s=F(e),i=s.data("frame");i?(n.unregisterFrame(i),o._removeFileEntry(s),n.cleanupFrame(i)):s.hasClass("k-file-success")?h(s,o,t,a):o._removeFileEntry(s)},onAbort:function(){var t=this.element,a=this;e.each(this.iframes,function(){e("input",this.data("form")).appendTo(t),a.stopFrameSubmit(this[0]),this.data("form").remove(),this.remove()}),this.iframes=[]},createFrame:function(t){return e("<iframe name='"+t+"' id='"+t+"' style='display:none;' />")},createForm:function(t,a){return e("<form enctype='multipart/form-data' method='POST' action='"+t+"' target='"+a+"'/>")},stopFrameSubmit:function(e){t!==e.stop?e.stop():e.document&&e.document.execCommand("Stop")},registerFrame:function(e){this.iframes.push(e)},unregisterFrame:function(t){this.iframes=e.grep(this.iframes,function(e){return e.attr("name")!=t.attr("name")})},cleanupFrame:function(e){var t=e.data("form");e.data("file").data("frame",null),setTimeout(function(){t.remove(),e.remove()},1)}},C=function(e){this.name="formDataUploadModule",this.element=e.wrapper,this.upload=e},C.prototype={onSelect:function(t,a){var n,o=this.upload,s=this,i=e(t.target),r=this.prepareUpload(i,a);e.each(r,function(){n=o._filesContainValidationErrors(e(this.data("fileNames"))),o.options.async.autoUpload?n?(o._fileAction(this,B),o._showHeaderUploadStatus(!1)):s.performUpload(this):(o._fileAction(this,B),n?o._updateHeaderUploadStatus():o._showUploadButton()),n&&o._hideUploadProgress(this)})},prepareUpload:function(t,a){var n=this.enqueueFiles(a);return t.is("input")&&(e.each(n,function(){e(this).data("relatedInput",t)}),t.data("relatedFileEntries",n),this.upload._addInput(t)),n},enqueueFiles:function(t){var a,n,o,s,i=this.upload,r=t.length,l=[];if(i.options.async.batch===!0)a=e.map(t,function(e){return e.name}).join(", "),s=i._enqueueFile(a,{fileNames:t}),s.data("files",t),l.push(s);else for(n=0;n<r;n++)o=t[n],a=o.name,s=i._enqueueFile(a,{fileNames:[o]}),s.data("files",[o]),l.push(s);return l},performUpload:function(t){var a,n=this.upload,o=this.createFormData(),s=this.createXHR(),i={files:t.data("fileNames"),XMLHttpRequest:s};if(n.trigger(A,i))this.removeFileEntry(t);else{if(n._fileAction(t,T),n._hideUploadButton(),n._showHeaderUploadStatus(!0),i.formData)o=i.formData;else{i.data=e.extend({},i.data,E());for(a in i.data)o.append(a,i.data[a]);this.populateFormData(o,t.data("files"))}n._fileState(t,"uploading"),e(t).removeClass("k-file-error").addClass("k-file-progress"),this.postFormData(n.options.async.saveUrl,o,t,s)}},onSaveSelected:function(){var t=this,a=t.upload;e(".k-file",this.element).each(function(){var n=e(this),o=w(n),s=a._filesContainValidationErrors(n.data("fileNames"));o||s||t.performUpload(n)})},onCancel:function(e){var t=F(e);this.stopUploadRequest(t),this.removeFileEntry(t)},onRetry:function(e){var t=F(e);this.performUpload(t)},onRemove:function(e,t,a){var n=this,o=n.upload,s=F(e);s.hasClass("k-file-success")?h(s,o,t,a):n.removeFileEntry(s)},createXHR:function(){return new XMLHttpRequest},postFormData:function(e,t,a,n){var o,s=this;a.data("request",n),n.addEventListener("load",function(e){s.onRequestSuccess.call(s,e,a)},!1),n.addEventListener(N,function(e){s.onRequestError.call(s,e,a)},!1),n.upload.addEventListener("progress",function(e){s.onRequestProgress.call(s,e,a)},!1),n.open("POST",e,!0),n.withCredentials=this.upload.options.async.withCredentials,o=this.upload.options.async.accept,o&&n.setRequestHeader("Accept",o),n.send(t)},createFormData:function(){return new FormData},populateFormData:function(e,t){var a,n=this.upload,o=t.length;for(a=0;a<o;a++)e.append(n.options.async.saveField||n.name,t[a].rawFile);return e},onRequestSuccess:function(t,a){function n(){s.upload._onUploadError({target:e(a,s.upload.wrapper)},o)}var o=t.target,s=this;o.status>=200&&o.status<=299?v(o.responseText,function(t){s.upload._onFileProgress({target:e(a,s.upload.wrapper)},100),s.upload._onUploadSuccess({target:e(a,s.upload.wrapper)},t,o),s.cleanupFileEntry(a)},n):n()},onRequestError:function(t,a){var n=t.target;this.upload._onUploadError({target:e(a,this.upload.wrapper)},n)},cleanupFileEntry:function(t){var a=t.data("relatedInput"),n=!0;a&&(e.each(a.data("relatedFileEntries")||[],function(){this.parent().length>0&&this[0]!=t[0]&&(n=n&&this.hasClass("k-file-success"))}),n&&a.remove())},removeFileEntry:function(e){this.cleanupFileEntry(e),this.upload._removeFileEntry(e)},onRequestProgress:function(t,a){var n=Math.round(100*t.loaded/t.total);this.upload._onFileProgress({target:e(a,this.upload.wrapper)},n)},stopUploadRequest:function(e){e.data("request").abort()}},U.ui.plugin(j)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,a){(a||t)()});;!function(i,define){define("kendo.window.min",["kendo.draganddrop.min"],i)}(function(){return function(i,t){function e(i){return t!==i}function n(i,t,e){return Math.max(Math.min(parseInt(i,10),e===1/0?e:parseInt(e,10)),parseInt(t,10))}function o(){return!this.type||this.type.toLowerCase().indexOf("script")>=0}function s(i){var t=this;t.owner=i,t._preventDragging=!1,t._draggable=new d(i.wrapper,{filter:">"+y,group:i.wrapper.id+"-resizing",dragstart:g(t.dragstart,t),drag:g(t.drag,t),dragend:g(t.dragend,t)}),t._draggable.userEvents.bind("press",g(t.addOverlay,t)),t._draggable.userEvents.bind("release",g(t.removeOverlay,t))}function r(i,t){var e=this;e.owner=i,e._preventDragging=!1,e._draggable=new d(i.wrapper,{filter:t,group:i.wrapper.id+"-moving",dragstart:g(e.dragstart,e),drag:g(e.drag,e),dragend:g(e.dragend,e),dragcancel:g(e.dragcancel,e)}),e._draggable.userEvents.stopPropagation=!1}var a=window.kendo,l=a.ui.Widget,d=a.ui.Draggable,c=i.isPlainObject,p=a._activeElement,h=a._outerWidth,f=a._outerHeight,g=i.proxy,u=i.extend,m=i.each,w=a.template,v="body",_=".kendoWindow",k=".k-window",z=".k-window-title",b=z+"bar",x=".k-window-content",y=".k-resize-handle",T=".k-overlay",O="k-content-frame",M="k-i-loading",S="k-state-hover",L="k-state-focused",I="k-window-maximized",P=":visible",C="hidden",H="cursor",D="open",W="activate",F="deactivate",j="close",E="refresh",N="minimize",R="maximize",A="resizeStart",q="resize",G="resizeEnd",U="dragstart",K="dragend",V="error",B="overflow",Q="zIndex",J=".k-window-actions .k-i-window-minimize,.k-window-actions .k-i-window-maximize",X=".k-i-pin",Y=".k-i-unpin",Z=X+","+Y,$=".k-window-titlebar .k-window-action",ii=".k-window-titlebar .k-i-refresh",ti=a.isLocalUrl,ei=l.extend({init:function(n,s){var r,d,p,h,f,u,m,w=this,v={},y=!1,T=s&&s.actions&&!s.actions.length;l.fn.init.call(w,n,s),s=w.options,h=s.position,n=w.element,f=s.content,T&&(s.actions=[]),w.appendTo=i(s.appendTo),f&&!c(f)&&(f=s.content={url:f}),n.find("script").filter(o).remove(),n.parent().is(w.appendTo)||h.top!==t&&h.left!==t||(n.is(P)?(v=n.offset(),y=!0):(d=n.css("visibility"),p=n.css("display"),n.css({visibility:C,display:""}),v=n.offset(),n.css({visibility:d,display:p})),h.top===t&&(h.top=v.top),h.left===t&&(h.left=v.left)),e(s.visible)&&null!==s.visible||(s.visible=n.is(P)),r=w.wrapper=n.closest(k),n.is(".k-content")&&r[0]||(n.addClass("k-window-content k-content"),w._createWindow(n,s),r=w.wrapper=n.closest(k),w._dimensions()),w._position(),s.pinned&&w.pin(!0),f&&w.refresh(f),s.visible&&w.toFront(),u=r.children(x),w._tabindex(u),s.visible&&s.modal&&w._overlay(r.is(P)).css({opacity:.5}),r.on("mouseenter"+_,$,g(w._buttonEnter,w)).on("mouseleave"+_,$,g(w._buttonLeave,w)).on("click"+_,"> "+$,g(w._windowActionHandler,w)),u.on("keydown"+_,g(w._keydown,w)).on("focus"+_,g(w._focus,w)).on("blur"+_,g(w._blur,w)),this._resizable(),this._draggable(),m=n.attr("id"),m&&(m+="_wnd_title",r.children(b).children(z).attr("id",m),u.attr({role:"dialog","aria-labelledby":m})),r.add(r.children(".k-resize-handle,"+b)).on("mousedown"+_,g(w.toFront,w)),w.touchScroller=a.touchScroller(n),w._resizeHandler=g(w._onDocumentResize,w),w._marker=a.guid().substring(0,8),i(window).on("resize"+_+w._marker,w._resizeHandler),s.visible&&(w.trigger(D),w.trigger(W)),a.notify(w)},_buttonEnter:function(t){i(t.currentTarget).addClass(S)},_buttonLeave:function(t){i(t.currentTarget).removeClass(S)},_focus:function(){this.wrapper.addClass(L)},_blur:function(){this.wrapper.removeClass(L)},_dimensions:function(){var i,t,e=this.wrapper,o=this.options,s=o.width,r=o.height,a=o.maxHeight,l=["minWidth","minHeight","maxWidth","maxHeight"];for(this.title(o.title),i=0;i<l.length;i++)t=o[l[i]]||"",t!=1/0&&e.css(l[i],t);a!=1/0&&this.element.css("maxHeight",a),e.width(s?(""+s).indexOf("%")>0?s:n(s,o.minWidth,o.maxWidth):""),e.height(r?(""+r).indexOf("%")>0?r:n(r,o.minHeight,o.maxHeight):""),o.visible||e.hide()},_position:function(){var i=this.wrapper,t=this.options.position;0===t.top&&(t.top=""+t.top),0===t.left&&(t.left=""+t.left),i.css({top:t.top||"",left:t.left||""})},_animationOptions:function(i){var t=this.options.animation,e={open:{effects:{}},close:{hide:!0,effects:{}}};return t&&t[i]||e[i]},_resize:function(){a.resize(this.element.children())},_resizable:function(){var t=this.options.resizable,e=this.wrapper;this.resizing&&(e.off("dblclick"+_).children(y).remove(),this.resizing.destroy(),this.resizing=null),t&&(e.on("dblclick"+_,b,g(function(t){i(t.target).closest(".k-window-action").length||this.toggleMaximization()},this)),m("n e s w se sw ne nw".split(" "),function(i,t){e.append(ni.resizeHandle(t))}),this.resizing=new s(this)),e=null},_draggable:function(){var i=this.options.draggable;this.dragging&&(this.dragging.destroy(),this.dragging=null),i&&(this.dragging=new r(this,i.dragHandle||b))},_actions:function(){var t=this.options.actions,e=this.wrapper.children(b),n=e.find(".k-window-actions"),o=["maximize","minimize"];t=i.map(t,function(i){return{name:o.indexOf(i.toLowerCase())>-1?"window-"+i:i}}),n.html(a.render(ni.action,t))},setOptions:function(i){var e,n;l.fn.setOptions.call(this,i),e=this.options.scrollable!==!1,this.restore(),this._dimensions(),this._position(),this._resizable(),this._draggable(),this._actions(),t!==i.modal&&(n=this.options.visible!==!1,this._overlay(i.modal&&n)),this.element.css(B,e?"":"hidden")},events:[D,W,F,j,N,R,E,A,q,G,U,K,V],options:{name:"Window",animation:{open:{effects:{zoom:{direction:"in"},fade:{direction:"in"}},duration:350},close:{effects:{zoom:{direction:"out",properties:{scale:.7}},fade:{direction:"out"}},duration:350,hide:!0}},title:"",actions:["Close"],autoFocus:!0,modal:!1,resizable:!0,draggable:!0,minWidth:90,minHeight:50,maxWidth:1/0,maxHeight:1/0,pinned:!1,scrollable:!0,position:{},content:null,visible:null,height:null,width:null,appendTo:"body",isMaximized:!1,isMinimized:!1},_closable:function(){return i.inArray("close",i.map(this.options.actions,function(i){return i.toLowerCase()}))>-1},_keydown:function(i){var t,e,o,s,r,l,d=this,c=d.options,p=a.keys,h=i.keyCode,f=d.wrapper,g=10,u=d.options.isMaximized;i.target!=i.currentTarget||d._closing||(h==p.ESC&&d._closable()&&d._close(!1),!c.draggable||i.ctrlKey||u||(t=a.getOffset(f),h==p.UP?e=f.css("top",t.top-g):h==p.DOWN?e=f.css("top",t.top+g):h==p.LEFT?e=f.css("left",t.left-g):h==p.RIGHT&&(e=f.css("left",t.left+g))),c.resizable&&i.ctrlKey&&!u&&(h==p.UP?(e=!0,s=f.height()-g):h==p.DOWN&&(e=!0,s=f.height()+g),h==p.LEFT?(e=!0,o=f.width()-g):h==p.RIGHT&&(e=!0,o=f.width()+g),e&&(r=n(o,c.minWidth,c.maxWidth),l=n(s,c.minHeight,c.maxHeight),isNaN(r)||(f.width(r),d.options.width=r+"px"),isNaN(l)||(f.height(l),d.options.height=l+"px"),d.resize())),e&&i.preventDefault())},_overlay:function(t){var e=this.appendTo.children(T),n=this.wrapper;return e.length||(e=i("<div class='k-overlay' />")),e.insertBefore(n[0]).toggle(t).css(Q,parseInt(n.css(Q),10)-1),e},_actionForIcon:function(i){var t=/\bk-i(-\w+)+\b/.exec(i[0].className)[0];return{"k-i-close":"_close","k-i-window-maximize":"maximize","k-i-window-minimize":"minimize","k-i-window-restore":"restore","k-i-refresh":"refresh","k-i-pin":"pin","k-i-unpin":"unpin"}[t]},_windowActionHandler:function(e){var n,o;if(!this._closing)return n=i(e.target).closest(".k-window-action").find(".k-icon"),o=this._actionForIcon(n),o?(e.preventDefault(),this[o](),!1):t},_modals:function(){var t=this,e=i(k).filter(function(){var e=i(this),n=t._object(e),o=n&&n.options;return o&&o.modal&&o.visible&&o.appendTo===t.options.appendTo&&e.is(P)}).sort(function(t,e){return+i(t).css("zIndex")-+i(e).css("zIndex")});return t=null,e},_object:function(i){var e=i.children(x),n=a.widgetInstance(e);return n instanceof ei?n:t},center:function(){var t,e,n=this,o=n.options.position,s=n.wrapper,r=i(window),a=0,l=0;return n.options.isMaximized?n:(n.options.pinned||(a=r.scrollTop(),l=r.scrollLeft()),e=l+Math.max(0,(r.width()-s.width())/2),t=a+Math.max(0,(r.height()-s.height()-parseInt(s.css("paddingTop"),10))/2),s.css({left:e,top:t}),o.top=t,o.left=e,n)},title:function(i){var t,e=this,n=e.wrapper,o=e.options,s=n.children(b),r=s.children(z);return arguments.length?(i===!1?(n.addClass("k-window-titleless"),s.remove()):(s.length?r.html(i):(n.prepend(ni.titlebar(o)),e._actions(),s=n.children(b)),t=parseInt(f(s),10),n.css("padding-top",t),s.css("margin-top",-t)),e.options.title=i,e):r.html()},content:function(i,t){var n=this.wrapper.children(x),o=n.children(".km-scroll-container");return n=o[0]?o:n,e(i)?(this.angular("cleanup",function(){return{elements:n.children()}}),a.destroy(this.element.children()),n.empty().html(i),this.angular("compile",function(){var i,e=[];for(i=n.length;--i>=0;)e.push({dataItem:t});return{elements:n.children(),data:e}}),this):n.html()},open:function(){var t,e,n,o=this,s=o.wrapper,r=o.options,l=this._animationOptions("open"),d=s.children(x),c=i(document);return o.trigger(D)||(o._closing&&s.kendoStop(!0,!0),o._closing=!1,o.toFront(),r.autoFocus&&o.element.focus(),r.visible=!0,r.modal&&(e=!!o._modals().length,t=o._overlay(e),t.kendoStop(!0,!0),l.duration&&a.effects.Fade&&!e?(n=a.fx(t).fadeIn(),n.duration(l.duration||0),n.endValue(.5),n.play()):t.css("opacity",.5),t.show()),s.is(P)||(d.css(B,C),s.show().kendoStop().kendoAnimate({effects:l.effects,duration:l.duration,complete:g(this._activate,this)}))),r.isMaximized&&(o._documentScrollTop=c.scrollTop(),o._documentScrollLeft=c.scrollLeft(),i("html, body").css(B,C)),o},_activate:function(){var i=this.options.scrollable!==!1;this.options.autoFocus&&this.element.focus(),this.element.css(B,i?"":"hidden"),a.resize(this.element.children()),this.trigger(W)},_removeOverlay:function(e){var n,o=this._modals(),s=this.options,r=s.modal&&!o.length,l=s.modal?this._overlay(!0):i(t),d=this._animationOptions("close");r?!e&&d.duration&&a.effects.Fade?(n=a.fx(l).fadeOut(),n.duration(d.duration||0),n.startValue(.5),n.play()):this._overlay(!1).remove():o.length&&this._object(o.last())._overlay(!0)},_close:function(t){var e=this,n=e.wrapper,o=e.options,s=this._animationOptions("open"),r=this._animationOptions("close"),a=i(document);if(n.is(P)&&!e.trigger(j,{userTriggered:!t})){if(e._closing)return;e._closing=!0,o.visible=!1,i(k).each(function(t,e){var o=i(e).children(x);e!=n&&o.find("> ."+O).length>0&&o.children(T).remove()}),this._removeOverlay(),n.kendoStop().kendoAnimate({effects:r.effects||s.effects,reverse:r.reverse===!0,duration:r.duration,complete:g(this._deactivate,this)})}e.options.isMaximized&&(i("html, body").css(B,""),e._documentScrollTop&&e._documentScrollTop>0&&a.scrollTop(e._documentScrollTop),e._documentScrollLeft&&e._documentScrollLeft>0&&a.scrollLeft(e._documentScrollLeft))},_deactivate:function(){var i,t=this;t.wrapper.hide().css("opacity",""),t.trigger(F),t.options.modal&&(i=t._object(t._modals().last()),i&&i.toFront())},close:function(){return this._close(!0),this},_actionable:function(t){return i(t).is($+","+$+" .k-icon,:input,a")},_shouldFocus:function(t){var e=p(),n=this.element;return this.options.autoFocus&&!i(e).is(n)&&!this._actionable(t)&&(!n.find(e).length||!n.find(t).length)},toFront:function(t){var e,n,o=this,s=o.wrapper,r=s[0],a=+s.css(Q),l=a,d=t&&t.target||null;return i(k).each(function(t,e){var n=i(e),o=n.css(Q),s=n.children(x);isNaN(o)||(a=Math.max(+o,a)),e!=r&&s.find("> ."+O).length>0&&s.append(ni.overlay)}),(!s[0].style.zIndex||l<a)&&s.css(Q,a+2),o.element.find("> .k-overlay").remove(),o._shouldFocus(d)&&(o.element.focus(),e=i(window).scrollTop(),n=parseInt(s.position().top,10),!o.options.pinned&&n>0&&n<e&&(e>0?i(window).scrollTop(n):s.css("top",e))),s=null,o},toggleMaximization:function(){return this._closing?this:this[this.options.isMaximized?"restore":"maximize"]()},restore:function(){var t=this,e=t.options,n=e.minHeight,o=t.restoreOptions,s=i(document);return e.isMaximized||e.isMinimized?(n&&n!=1/0&&t.wrapper.css("min-height",n),t.wrapper.css({position:e.pinned?"fixed":"absolute",left:o.left,top:o.top,width:o.width,height:o.height}).removeClass(I).find(".k-window-content,.k-resize-handle").show().end().find(".k-window-titlebar .k-i-window-restore").parent().remove().end().end().find(J).parent().show().end().end().find(Z).parent().show(),t.options.width=o.width,t.options.height=o.height,i("html, body").css(B,""),this._documentScrollTop&&this._documentScrollTop>0&&s.scrollTop(this._documentScrollTop),this._documentScrollLeft&&this._documentScrollLeft>0&&s.scrollLeft(this._documentScrollLeft),e.isMaximized=e.isMinimized=!1,t.resize(),t):t},_sizingAction:function(i,t){var e=this,n=e.wrapper,o=n[0].style,s=e.options;return s.isMaximized||s.isMinimized?e:(e.restoreOptions={width:o.width,height:o.height},n.children(y).hide().end().children(b).find(J).parent().hide().eq(0).before(ni.action({name:"window-restore"})),t.call(e),e.wrapper.children(b).find(Z).parent().toggle("maximize"!==i),e.trigger(i),e)},maximize:function(){return this._sizingAction("maximize",function(){var t=this,e=t.wrapper,n=e.position(),o=i(document);u(t.restoreOptions,{left:n.left,top:n.top}),e.css({left:0,top:0,position:"fixed"}).addClass(I),this._documentScrollTop=o.scrollTop(),this._documentScrollLeft=o.scrollLeft(),i("html, body").css(B,C),t.options.isMaximized=!0,t._onDocumentResize()}),this},isMaximized:function(){return this.options.isMaximized},minimize:function(){return this._sizingAction("minimize",function(){var i=this;i.wrapper.css({height:"",minHeight:""}),i.element.hide(),i.options.isMinimized=!0}),this},isMinimized:function(){return this.options.isMinimized},pin:function(t){var e=this,n=i(window),o=e.wrapper,s=parseInt(o.css("top"),10),r=parseInt(o.css("left"),10);(t||!e.options.pinned&&!e.options.isMaximized)&&(o.css({position:"fixed",top:s-n.scrollTop(),left:r-n.scrollLeft()}),o.children(b).find(X).addClass("k-i-unpin").removeClass("k-i-pin"),e.options.pinned=!0)},unpin:function(){var t=this,e=i(window),n=t.wrapper,o=parseInt(n.css("top"),10),s=parseInt(n.css("left"),10);t.options.pinned&&!t.options.isMaximized&&(n.css({position:"",top:o+e.scrollTop(),left:s+e.scrollLeft()}),n.children(b).find(Y).addClass("k-i-pin").removeClass("k-i-unpin"),t.options.pinned=!1)},_onDocumentResize:function(){var t,e,n=this,o=n.wrapper,s=i(window),r=a.support.zoomLevel();n.options.isMaximized&&(t=s.width()/r,e=s.height()/r-parseInt(o.css("padding-top"),10),o.css({width:t,height:e}),n.options.width=t,n.options.height=e,n.resize())},refresh:function(t){var n,o,s,r=this,a=r.options,l=i(r.element);return c(t)||(t={url:t}),t=u({},a.content,t),o=e(a.iframe)?a.iframe:t.iframe,s=t.url,s?(e(o)||(o=!ti(s)),o?(n=l.find("."+O)[0],n?n.src=s||n.src:l.html(ni.contentFrame(u({},a,{content:t}))),l.find("."+O).unbind("load"+_).on("load"+_,g(this._triggerRefresh,this))):r._ajaxRequest(t)):(t.template&&r.content(w(t.template)({})),r.trigger(E)),l.toggleClass("k-window-iframecontent",!!o),r},_triggerRefresh:function(){this.trigger(E)},_ajaxComplete:function(){clearTimeout(this._loadingIconTimeout),this.wrapper.find(ii).removeClass(M)},_ajaxError:function(i,t){this.trigger(V,{status:t,xhr:i})},_ajaxSuccess:function(i){return function(t){var e=t;i&&(e=w(i)(t||{})),this.content(e,t),this.element.prop("scrollTop",0),this.trigger(E)}},_showLoading:function(){this.wrapper.find(ii).addClass(M)},_ajaxRequest:function(t){this._loadingIconTimeout=setTimeout(g(this._showLoading,this),100),i.ajax(u({type:"GET",dataType:"html",cache:!1,error:g(this._ajaxError,this),complete:g(this._ajaxComplete,this),success:g(this._ajaxSuccess(t.template),this)},t))},_destroy:function(){this.resizing&&this.resizing.destroy(),this.dragging&&this.dragging.destroy(),this.wrapper.off(_).children(x).off(_).end().find(".k-resize-handle,.k-window-titlebar").off(_),i(window).off("resize"+_+this._marker),clearTimeout(this._loadingIconTimeout),l.fn.destroy.call(this),this.unbind(t),a.destroy(this.wrapper),this._removeOverlay(!0)},destroy:function(){this._destroy(),this.wrapper.empty().remove(),this.wrapper=this.appendTo=this.element=i()},_createWindow:function(){var t,e,n=this.element,o=this.options,s=a.support.isRtl(n);o.scrollable===!1&&n.css("overflow","hidden"),e=i(ni.wrapper(o)),t=n.find("iframe:not(.k-content)").map(function(){var i=this.getAttribute("src");return this.src="",i}),e.toggleClass("k-rtl",s).appendTo(this.appendTo).append(n).find("iframe:not(.k-content)").each(function(i){this.src=t[i]}),e.find(".k-window-title").css(s?"left":"right",h(e.find(".k-window-actions"))+10),n.css("visibility","").show(),n.find("[data-role=editor]").each(function(){var t=i(this).data("kendoEditor");t&&t.refresh()}),e=n=null}}),ni={wrapper:w("<div class='k-widget k-window' />"),action:w("<a role='button' href='\\#' class='k-window-action k-link' aria-label='#= name #'><span class='k-icon k-i-#= name.toLowerCase() #'></span></a>"),titlebar:w("<div class='k-window-titlebar k-header'>&nbsp;<span class='k-window-title'>#= title #</span><div class='k-window-actions' /></div>"),overlay:"<div class='k-overlay' />",contentFrame:w("<iframe frameborder='0' title='#= title #' class='"+O+"' src='#= content.url #'>This page requires frames in order to show content</iframe>"),resizeHandle:w("<div class='k-resize-handle k-resize-#= data #'></div>")};s.prototype={addOverlay:function(){this.owner.wrapper.append(ni.overlay)},removeOverlay:function(){this.owner.wrapper.find(T).remove()},dragstart:function(t){var e=this,n=e.owner,o=n.wrapper;e._preventDragging=n.trigger(A),e._preventDragging||(e.elementPadding=parseInt(o.css("padding-top"),10),e.initialPosition=a.getOffset(o,"position"),e.resizeDirection=t.currentTarget.prop("className").replace("k-resize-handle k-resize-",""),e.initialSize={width:o.width(),height:o.height()},e.containerOffset=a.getOffset(n.appendTo,"position"),o.children(y).not(t.currentTarget).hide(),i(v).css(H,t.currentTarget.css(H)))},drag:function(t){var e,o,s,r,a,l,d,c,p,h,f,g,u,m,w;this._preventDragging||(e=this,o=e.owner,s=o.wrapper,r=o.options,a=e.resizeDirection,l=e.containerOffset,d=e.initialPosition,c=e.initialSize,u=Math.max(t.x.location,0),m=Math.max(t.y.location,0),a.indexOf("e")>=0?(p=u-d.left-l.left,s.width(n(p,r.minWidth,r.maxWidth))):a.indexOf("w")>=0&&(g=d.left+c.width+l.left,p=n(g-u,r.minWidth,r.maxWidth),s.css({left:g-p-l.left,width:p})),w=m,o.options.pinned&&(w-=i(window).scrollTop()),a.indexOf("s")>=0?(h=w-d.top-e.elementPadding-l.top,s.height(n(h,r.minHeight,r.maxHeight))):a.indexOf("n")>=0&&(f=d.top+c.height+l.top,h=n(f-w,r.minHeight,r.maxHeight),s.css({top:f-h-l.top,height:h})),p&&(o.options.width=p+"px"),h&&(o.options.height=h+"px"),o.resize())},dragend:function(t){if(!this._preventDragging){var e=this,n=e.owner,o=n.wrapper;return o.children(y).not(t.currentTarget).show(),i(v).css(H,""),n.touchScroller&&n.touchScroller.reset(),27==t.keyCode&&o.css(e.initialPosition).css(e.initialSize),n.trigger(G),!1}},destroy:function(){this._draggable&&this._draggable.destroy(),this._draggable=this.owner=null}},r.prototype={dragstart:function(t){var e=this.owner,n=e.element,o=n.find(".k-window-actions"),s=a.getOffset(e.appendTo);this._preventDragging=e.trigger(U),this._preventDragging||(e.initialWindowPosition=a.getOffset(e.wrapper,"position"),e.initialPointerPosition={left:t.x.client,top:t.y.client},e.startPosition={left:t.x.client-e.initialWindowPosition.left,top:t.y.client-e.initialWindowPosition.top},e.minLeftPosition=o.length>0?h(o)+parseInt(o.css("right"),10)-h(n):20-h(n),e.minLeftPosition-=s.left,e.minTopPosition=-s.top,e.wrapper.append(ni.overlay).children(y).hide(),i(v).css(H,t.currentTarget.css(H)))},drag:function(t){var e,n;this._preventDragging||(e=this.owner,n=e.options.position,n.top=Math.max(t.y.client-e.startPosition.top,e.minTopPosition),n.left=Math.max(t.x.client-e.startPosition.left,e.minLeftPosition),a.support.transforms?i(e.wrapper).css("transform","translate("+(t.x.client-e.initialPointerPosition.left)+"px, "+(t.y.client-e.initialPointerPosition.top)+"px)"):i(e.wrapper).css(n))},_finishDrag:function(){var t=this.owner;t.wrapper.children(y).toggle(!t.options.isMinimized).end().find(T).remove(),i(v).css(H,"")},dragcancel:function(i){this._preventDragging||(this._finishDrag(),i.currentTarget.closest(k).css(this.owner.initialWindowPosition))},dragend:function(){if(!this._preventDragging)return i(this.owner.wrapper).css(this.owner.options.position).css("transform",""),this._finishDrag(),this.owner.trigger(K),!1},destroy:function(){this._draggable&&this._draggable.destroy(),this._draggable=this.owner=null}},a.ui.plugin(ei)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(i,t,e){(e||t)()});;!function(e,define){define("kendo.multiselect.min",["kendo.list.min","kendo.mobile.scroller.min"],e)}(function(){return function(e,t){function a(e,t){var a;if(null===e&&null!==t||null!==e&&null===t)return!1;if(a=e.length,a!==t.length)return!1;for(;a--;)if(e[a]!==t[a])return!1;return!0}var i=window.kendo,n=i.ui,s=n.List,l=i.keys,o=i._activeElement,r=i.data.ObservableArray,u=e.proxy,c="id",d="li",p="accept",_="filter",h="rebind",f="open",m="close",g="change",v="progress",w="select",T="deselect",b="aria-disabled",k="k-state-focused",y="k-loading-hidden",x="k-state-hover",C="k-state-disabled",I="disabled",V="readonly",S=".kendoMultiSelect",D="click"+S,O="keydown"+S,L="mouseenter"+S,F="mouseleave"+S,B=L+" "+F,E=/"/g,A=e.isArray,M=["font-family","font-size","font-stretch","font-style","font-weight","letter-spacing","text-transform","line-height"],H=s.extend({init:function(t,a){var n,l,o=this;o.ns=S,s.fn.init.call(o,t,a),o._optionsMap={},o._customOptions={},o._wrapper(),o._tagList(),o._input(),o._textContainer(),o._loader(),o._clearButton(),o._tabindex(o.input),t=o.element.attr("multiple","multiple").hide(),a=o.options,a.placeholder||(a.placeholder=t.data("placeholder")),n=t.attr(c),n&&(o._tagID=n+"_tag_active",n+="_taglist",o.tagList.attr(c,n)),o._aria(n),o._dataSource(),o._ignoreCase(),o._popup(),o._tagTemplate(),o.requireValueMapper(o.options),o._initList(),o._reset(),o._enable(),o._placeholder(),a.autoBind?o.dataSource.fetch():a.value&&o._preselect(a.value),l=e(o.element).parents("fieldset").is(":disabled"),l&&o.enable(!1),i.notify(o)},options:{name:"MultiSelect",tagMode:"multiple",enabled:!0,autoBind:!0,autoClose:!0,highlightFirst:!0,dataTextField:"",dataValueField:"",filter:"startswith",ignoreCase:!0,minLength:1,enforceMinLength:!1,delay:100,value:null,maxSelectedItems:null,placeholder:"",height:200,animation:{},virtual:!1,itemTemplate:"",tagTemplate:"",groupTemplate:"#:data#",fixedGroupTemplate:"#:data#",clearButton:!0},events:[f,m,g,w,T,"filtering","dataBinding","dataBound"],setDataSource:function(e){this.options.dataSource=e,this._state="",this._dataSource(),this.listView.setDataSource(this.dataSource),this.options.autoBind&&this.dataSource.fetch()},setOptions:function(e){var t=this._listOptions(e);s.fn.setOptions.call(this,e),this.listView.setOptions(t),this._accessors(),this._aria(this.tagList.attr(c)),this._tagTemplate()},currentTag:function(e){var a=this;return e===t?a._currentTag:(a._currentTag&&(a._currentTag.removeClass(k).removeAttr(c),a.input.removeAttr("aria-activedescendant")),e&&(e.addClass(k).attr(c,a._tagID),a.input.attr("aria-activedescendant",a._tagID)),a._currentTag=e,t)},dataItems:function(){return this.listView.selectedDataItems()},destroy:function(){var e=this,t=e.ns;clearTimeout(e._busy),clearTimeout(e._typingTimeout),e.wrapper.off(t),e.tagList.off(t),e.input.off(t),e._clear.off(t),s.fn.destroy.call(e)},_activateItem:function(){s.fn._activateItem.call(this),this.currentTag(null)},_listOptions:function(t){var a=this,n=s.fn._listOptions.call(a,e.extend(t,{selectedItemChange:u(a._selectedItemChange,a),selectable:"multiple"})),l=this.options.itemTemplate||this.options.template,o=n.itemTemplate||l||n.template;return o||(o="#:"+i.expr(n.dataTextField,"data")+"#"),n.template=o,n},_setListValue:function(){s.fn._setListValue.call(this,this._initialValues.slice(0))},_listChange:function(e){var a,i=this.dataSource.flatView(),n=this._optionsMap,s=this._value;for(this._state===h&&(this._state=""),a=0;a<e.added.length;a++)if(n[s(e.added[a].dataItem)]===t){this._render(i);break}this._selectValue(e.added,e.removed)},_selectedItemChange:function(e){var t,a,i=e.items;for(a=0;a<i.length;a++)t=i[a],this.tagList.children().eq(t.index).children("span:first").html(this.tagTextTemplate(t.item))},_wrapperMousedown:function(t){var a=this,n="input"!==t.target.nodeName.toLowerCase(),s=e(t.target),l=s.hasClass("k-select")||s.hasClass("k-icon");l&&(l=!s.closest(".k-select").children(".k-i-arrow-60-down").length),!n||l&&i.support.mobileOS||t.preventDefault(),l||(a.input[0]!==o()&&n&&a.input.focus(),1===a.options.minLength&&a.open())},_inputFocus:function(){this._placeholder(!1),this.wrapper.addClass(k)},_inputFocusout:function(){var e=this;clearTimeout(e._typingTimeout),e.wrapper.removeClass(k),e._placeholder(!e.listView.selectedDataItems()[0],!0),e.close(),e._state===_&&(e._state=p,e.listView.skipUpdate(!0)),e.element.blur()},_removeTag:function(e){var a,i,n=this,s=n._state,l=e.index(),o=n.listView,r=o.value()[l],u=n.listView.selectedDataItems()[l],c=n._customOptions[r];return n.trigger(T,{dataItem:u,item:e})?(n._close(),t):(c!==t||s!==p&&s!==_||(c=n._optionsMap[r]),i=function(){n.currentTag(null),n._change(),n._close()},c===t?o.select(o.select()[l]).done(i):(a=n.element[0].children[c],a.selected=!1,o.removeAt(l),e.remove(),i()),t)},_tagListClick:function(t){var a=e(t.currentTarget);a.children(".k-i-arrow-60-down").length||this._removeTag(a.closest(d))},_clearClick:function(){this.value(null),this.trigger("change")},_editable:function(t){var a=this,i=t.disable,n=t.readonly,s=a.wrapper.off(S),l=a.tagList.off(S),o=a.element.add(a.input.off(S));n||i?(i?s.addClass(C):s.removeClass(C),o.attr(I,i).attr(V,n).attr(b,i)):(s.removeClass(C).on(B,a._toggleHover).on("mousedown"+S+" touchend"+S,u(a._wrapperMousedown,a)),a.input.on(O,u(a._keydown,a)).on("paste"+S,u(a._search,a)).on("focus"+S,u(a._inputFocus,a)).on("focusout"+S,u(a._inputFocusout,a)),a._clear.on("click"+S,u(a._clearClick,a)),o.removeAttr(I).removeAttr(V).attr(b,!1),l.on(L,d,function(){e(this).addClass(x)}).on(F,d,function(){e(this).removeClass(x)}).on(D,"li.k-button .k-select",u(a._tagListClick,a)))},_close:function(){var e=this;e.options.autoClose?e.close():e.popup.position()},_filterSource:function(e,t){t||(t=this._retrieveData),this._retrieveData=!1,s.fn._filterSource.call(this,e,t)},close:function(){this.popup.close()},open:function(){var e=this;e._request&&(e._retrieveData=!1),e._retrieveData||!e.listView.bound()||e._state===p?(e._open=!0,e._state=h,e.listView.skipUpdate(!0),e._filterSource()):e._allowOpening()&&(e.popup.open(),e._focusItem())},toggle:function(e){e=e!==t?e:!this.popup.visible(),this[e?f:m]()},refresh:function(){this.listView.refresh()},_listBound:function(){var e=this,a=e.dataSource.flatView(),i=e.listView.skip();e._render(a),e._renderFooter(),e._renderNoData(),e._toggleNoData(!a.length),e._resizePopup(),e._open&&(e._open=!1,e.toggle(e._allowOpening())),e.popup.position(),!e.options.highlightFirst||i!==t&&0!==i||e.listView.focusFirst(),e._touchScroller&&e._touchScroller.reset(),e._hideBusy(),e._makeUnselectable(),e.trigger("dataBound")},_inputValue:function(){var e=this,t=e.input.val();return e.options.placeholder===t&&(t=""),t},value:function(e){var a=this,i=a.listView,n=i.value().slice(),s=a.options.maxSelectedItems,l=i.bound()&&i.isFiltered();return e===t?n:(a.requireValueMapper(a.options,e),e=a._normalizeValues(e),null!==s&&e.length>s&&(e=e.slice(0,s)),l&&a._clearFilter(),i.value(e),a._old=i.value(),l||a._fetchData(),t)},_preselect:function(t,a){var n=this;A(t)||t instanceof i.data.ObservableArray||(t=[t]),(e.isPlainObject(t[0])||t[0]instanceof i.data.ObservableObject||!n.options.dataValueField)&&(n.dataSource.data(t),n.value(a||n._initialValues),n._retrieveData=!0)},_setOption:function(e,t){var a=this.element[0].children[this._optionsMap[e]];a&&(a.selected=t)},_fetchData:function(){var e=this,t=!!e.dataSource.view().length,a=0===e.listView.value().length;a||e._request||(e._retrieveData||!e._fetch&&!t)&&(e._fetch=!0,e._retrieveData=!1,e.dataSource.read().done(function(){e._fetch=!1}))},_isBound:function(){return this.listView.bound()&&!this._retrieveData},_dataSource:function(){var e=this,t=e.element,a=e.options,n=a.dataSource||{};n=A(n)?{data:n}:n,n.select=t,n.fields=[{field:a.dataTextField},{field:a.dataValueField}],e.dataSource&&e._refreshHandler?e._unbindDataSource():(e._progressHandler=u(e._showBusy,e),e._errorHandler=u(e._hideBusy,e)),e.dataSource=i.data.DataSource.create(n).bind(v,e._progressHandler).bind("error",e._errorHandler)},_reset:function(){var t=this,a=t.element,i=a.attr("form"),n=i?e("#"+i):a.closest("form");n[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(t._initialValues),t._placeholder()})},t._form=n.on("reset",t._resetHandler))},_initValue:function(){var e=this.options.value||this.element.val();this._old=this._initialValues=this._normalizeValues(e)},_normalizeValues:function(t){var a=this;return null===t?t=[]:t&&e.isPlainObject(t)?t=[a._value(t)]:t&&e.isPlainObject(t[0])?t=e.map(t,function(e){return a._value(e)}):A(t)||t instanceof r?A(t)&&(t=t.slice()):t=[t],t},_change:function(){var e=this,t=e.value();a(t,e._old)||(e._old=t.slice(),e.trigger(g),e.element.trigger(g))},_click:function(e){var t=this,a=e.item;e.preventDefault(),t._select(a).done(function(){t._change(),t._close()})},_keydown:function(a){var n,s=this,o=a.keyCode,r=s._currentTag,u=s.listView,c=u.focus(),d=s.input.val(),p=i.support.isRtl(s.wrapper),_=s.popup.visible();if(o===l.DOWN){if(a.preventDefault(),!_)return s.open(),c||u.focusFirst(),t;c?(u.focusNext(),u.focus()||u.focusLast()):u.focusFirst()}else if(o===l.UP)_&&(c&&u.focusPrev(),u.focus()||s.close()),a.preventDefault();else if(o===l.LEFT&&!p||o===l.RIGHT&&p)d||(r=r?r.prev():e(s.tagList[0].lastChild),r[0]&&s.currentTag(r));else if(o===l.RIGHT&&!p||o===l.LEFT&&p)!d&&r&&(r=r.next(),s.currentTag(r[0]?r:null));else if(o===l.ENTER&&_)s._select(c).done(function(){s._change(),s._close()}),a.preventDefault();else if(o===l.ESC)_?a.preventDefault():s.currentTag(null),s.close();else if(o===l.HOME)_?u.focusFirst():d||(r=s.tagList[0].firstChild,r&&s.currentTag(e(r)));else if(o===l.END)_?u.focusLast():d||(r=s.tagList[0].lastChild,r&&s.currentTag(e(r)));else if(o!==l.DELETE&&o!==l.BACKSPACE||d)!s.popup.visible()||o!==l.PAGEDOWN&&o!==l.PAGEUP?(clearTimeout(s._typingTimeout),setTimeout(function(){s._scale()}),s._search()):(a.preventDefault(),n=o===l.PAGEDOWN?1:-1,u.scrollWith(n*u.screenHeight()));else{if("single"===s.options.tagMode)return u.value([]),s._change(),s._close(),t;o!==l.BACKSPACE||r||(r=e(s.tagList[0].lastChild)),r&&r[0]&&s._removeTag(r)}},_hideBusy:function(){var e=this;clearTimeout(e._busy),e.input.attr("aria-busy",!1),e._loading.addClass(y),e._request=!1,e._busy=null,e._showClear()},_showBusyHandler:function(){this.input.attr("aria-busy",!0),this._loading.removeClass(y),this._hideClear()},_showBusy:function(){var e=this;e._request=!0,e._busy||(e._busy=setTimeout(u(e._showBusyHandler,e),100))},_placeholder:function(e,a){var n=this,s=n.input,l=o(),r=n.options.placeholder,u=s.val(),c=s[0]===l,d=u.length;c&&!n.options.autoClose&&u!==r||(d=0,u=""),e===t&&(e=!1,s[0]!==l&&(e=!n.listView.selectedDataItems()[0])),n._prev=u,s.toggleClass("k-readonly",e).val(e?r:u),c&&!a&&i.caret(s[0],d,d),n._scale()},_scale:function(){var e,t=this,a=t.wrapper,i=a.width(),n=t._span.text(t.input.val());a.is(":visible")?e=n.width()+25:(n.appendTo(document.documentElement),i=e=n.width()+25,n.appendTo(a)),t.input.width(e>i?i:e)},_option:function(e,a,n){var s="<option";return e!==t&&(e+="",e.indexOf('"')!==-1&&(e=e.replace(E,"&quot;")),s+=' value="'+e+'"'),n&&(s+=" selected"),s+=">",a!==t&&(s+=i.htmlEncode(a)),s+="</option>"},_render:function(e){var t,a,i,n,s,l,o=this.listView.selectedDataItems(),r=this.listView.value(),u=e.length,c="";for(r.length!==o.length&&(o=this._buildSelectedItems(r)),s={},l={},n=0;n<u;n++)a=e[n],i=this._value(a),t=this._selectedItemIndex(i,o),t!==-1&&o.splice(t,1),l[i]=n,c+=this._option(i,this._text(a),t!==-1);if(o.length)for(n=0;n<o.length;n++)a=o[n],i=this._value(a),s[i]=u,l[i]=u,u+=1,c+=this._option(i,this._text(a),!0);this._customOptions=s,this._optionsMap=l,this.element.html(c)},_buildSelectedItems:function(e){var t,a,i=this.options.dataValueField,n=this.options.dataTextField,s=[];for(a=0;a<e.length;a++)t={},t[i]=e[a],t[n]=e[a],s.push(t);return s},_selectedItemIndex:function(e,t){for(var a=this._value,i=0;i<t.length;i++)if(e===a(t[i]))return i;return-1},_search:function(){var e=this;e._typingTimeout=setTimeout(function(){var t=e.input.val();e._prev!==t&&(e._prev=t,e.search(t))},e.options.delay)},_allowOpening:function(){return this._allowSelection()&&s.fn._allowOpening.call(this)},_allowSelection:function(){var e=this.options.maxSelectedItems;return null===e||e>this.listView.value().length},_angularTagItems:function(t){var a=this;a.angular(t,function(){return{elements:a.tagList[0].children,data:e.map(a.dataItems(),function(e){return{dataItem:e}})}})},_selectValue:function(e,t){var a,i,n,s=this,l=s.value(),o=s.dataSource.total(),r=s.tagList,u=s._value;if(s._angularTagItems("cleanup"),"multiple"===s.options.tagMode){for(n=t.length-1;n>-1;n--)a=t[n],r[0].removeChild(r[0].children[a.position]),s._setOption(u(a.dataItem),!1);for(n=0;n<e.length;n++)i=e[n],r.append(s.tagTemplate(i.dataItem)),s._setOption(u(i.dataItem),!0)}else{for((!s._maxTotal||s._maxTotal<o)&&(s._maxTotal=o),r.html(""),l.length&&r.append(s.tagTemplate({values:l,dataItems:s.dataItems(),maxTotal:s._maxTotal,currentTotal:o})),n=t.length-1;n>-1;n--)s._setOption(u(t[n].dataItem),!1);for(n=0;n<e.length;n++)s._setOption(u(e[n].dataItem),!0)}s._angularTagItems("compile"),s._placeholder()},_select:function(t){var a,i,n,s,l=e.Deferred().resolve();return t?(a=this,i=a.listView,n=i.dataItemByIndex(i.getElementIndex(t)),s=t.hasClass("k-state-selected"),a._state===h&&(a._state=""),a._allowSelection()?a.trigger(s?T:w,{dataItem:n,item:t})?(a._close(),l):i.select(t).done(function(){a._placeholder(),a._state===_&&(a._state=p,i.skipUpdate(!0))}):l):l},_input:function(){var t=this,a=t.element,i=a[0].accessKey,n=t._innerWrapper.children("input.k-input");n[0]||(n=e('<input class="k-input" style="width: 25px" />').appendTo(t._innerWrapper)),a.removeAttr("accesskey"),t._focused=t.input=n.attr({accesskey:i,autocomplete:"off",role:"listbox",title:a[0].title,"aria-expanded":!1})},_tagList:function(){var t=this,a=t._innerWrapper.children("ul");a[0]||(a=e('<ul role="listbox" deselectable="on" class="k-reset"/>').appendTo(t._innerWrapper)),t.tagList=a},_tagTemplate:function(){var e,t=this,a=t.options,n=a.tagTemplate,s=a.dataSource,l="multiple"===a.tagMode;t.element[0].length&&!s&&(a.dataTextField=a.dataTextField||"text",a.dataValueField=a.dataValueField||"value"),e=l?i.template("#:"+i.expr(a.dataTextField,"data")+"#",{useWithBlock:!1}):i.template("#:values.length# item(s) selected"),t.tagTextTemplate=n=n?i.template(n):e,t.tagTemplate=function(e){return'<li class="k-button" deselectable="on"><span deselectable="on">'+n(e)+'</span><span unselectable="on" aria-label="'+(l?"delete":"open")+'" class="k-select"><span class="k-icon '+(l?"k-i-close":"k-i-arrow-60-down")+'"></span></span></li>'}},_loader:function(){this._loading=e('<span class="k-icon k-i-loading '+y+'"></span>').insertAfter(this.input)},_clearButton:function(){this._clear=e('<span deselectable="on" class="k-icon k-clear-value k-i-close" title="clear"></span>').attr({role:"button",tabIndex:-1}),this.options.clearButton&&this._clear.insertAfter(this.input)},_textContainer:function(){var t=i.getComputedStyles(this.input[0],M);t.position="absolute",t.visibility="hidden",t.top=-3333,t.left=-3333,this._span=e("<span/>").css(t).appendTo(this.wrapper)},_wrapper:function(){var t=this,a=t.element,i=a.parent("span.k-multiselect");i[0]||(i=a.wrap('<div class="k-widget k-multiselect k-header" deselectable="on" />').parent(),i[0].style.cssText=a[0].style.cssText,i[0].title=a[0].title,e('<div class="k-multiselect-wrap k-floatwrap" deselectable="on" />').insertBefore(a)),t.wrapper=i.addClass(a[0].className).css("display",""),t._innerWrapper=e(i[0].firstChild)}});n.plugin(H)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,a){(a||t)()});;!function(t,define){define("kendo.validator.min",["kendo.core.min"],t)}(function(){return function(t,e){function a(e){var a,r=s.ui.validator.ruleResolvers||{},n={};for(a in r)t.extend(!0,n,r[a].resolve(e));return n}function r(t){return t.replace(/&amp/g,"&amp;").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">")}function n(t){return t=(t+"").split("."),t.length>1?t[1].length:0}function i(e){return t(t.parseHTML?t.parseHTML(e):e)}function u(e,a){var r,n,i,u,l=t();for(i=0,u=e.length;i<u;i++)r=e[i],c.test(r.className)&&(n=r.getAttribute(s.attr("for")),n===a&&(l=l.add(r)));return l}var l,s=window.kendo,o=s.ui.Widget,d=".kendoValidator",F="k-invalid-msg",c=RegExp(F,"i"),f="k-invalid",p="k-valid",h=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/i,m=/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,v=":input:not(:button,[type=submit],[type=reset],[disabled],[readonly])",g=":checkbox:not([disabled],[readonly])",D="[type=number],[type=range]",_="blur",y="name",k="form",E="novalidate",A="validate",b="change",C="validateInput",x=t.proxy,z=function(t,e){return"string"==typeof e&&(e=RegExp("^(?:"+e+")$")),e.test(t)},M=function(t,e,a){var r=t.val();return!t.filter(e).length||""===r||z(r,a)},w=function(t,e){return!!t.length&&null!=t[0].attributes[e]};s.ui.validator||(s.ui.validator={rules:{},messages:{}}),l=o.extend({init:function(e,r){var n=this,i=a(e),u="["+s.attr("validate")+"!=false]";r=r||{},r.rules=t.extend({},s.ui.validator.rules,i.rules,r.rules),r.messages=t.extend({},s.ui.validator.messages,i.messages,r.messages),o.fn.init.call(n,e,r),n._errorTemplate=s.template(n.options.errorTemplate),n.element.is(k)&&n.element.attr(E,E),n._inputSelector=v+u,n._checkboxSelector=g+u,n._errors={},n._attachEvents(),n._isValidated=!1},events:[A,b,C],options:{name:"Validator",errorTemplate:'<span class="k-widget k-tooltip k-tooltip-validation"><span class="k-icon k-i-warning"> </span> #=message#</span>',messages:{required:"{0} is required",pattern:"{0} is not valid",min:"{0} should be greater than or equal to {1}",max:"{0} should be smaller than or equal to {1}",step:"{0} is not valid",email:"{0} is not valid email",url:"{0} is not valid URL",date:"{0} is not valid date",dateCompare:"End date should be greater than or equal to the start date"},rules:{required:function(t){var e=t.filter("[type=checkbox]").length&&!t.is(":checked"),a=t.val();return!(w(t,"required")&&(!a||""===a||0===a.length||e))},pattern:function(t){return!t.filter("[type=text],[type=email],[type=url],[type=tel],[type=search],[type=password]").filter("[pattern]").length||""===t.val()||z(t.val(),t.attr("pattern"))},min:function(t){if(t.filter(D+",["+s.attr("type")+"=number]").filter("[min]").length&&""!==t.val()){var e=parseFloat(t.attr("min"))||0,a=s.parseFloat(t.val());return e<=a}return!0},max:function(t){if(t.filter(D+",["+s.attr("type")+"=number]").filter("[max]").length&&""!==t.val()){var e=parseFloat(t.attr("max"))||0,a=s.parseFloat(t.val());return e>=a}return!0},step:function(t){if(t.filter(D+",["+s.attr("type")+"=number]").filter("[step]").length&&""!==t.val()){var e,a=parseFloat(t.attr("min"))||0,r=parseFloat(t.attr("step"))||1,i=parseFloat(t.val()),u=n(r);return u?(e=Math.pow(10,u),Math.floor((i-a)*e)%(r*e)/Math.pow(100,u)===0):(i-a)%r===0}return!0},email:function(t){return M(t,"[type=email],["+s.attr("type")+"=email]",h)},url:function(t){return M(t,"[type=url],["+s.attr("type")+"=url]",m)},date:function(t){return!t.filter("[type^=date],["+s.attr("type")+"=date]").length||""===t.val()||null!==s.parseDate(t.val(),t.attr(s.attr("format")))}},validateOnBlur:!0},destroy:function(){o.fn.destroy.call(this),this.element.off(d)},value:function(){return!!this._isValidated&&0===this.errors().length},_submit:function(t){return!!this.validate()||(t.stopPropagation(),t.stopImmediatePropagation(),t.preventDefault(),!1)},_checkElement:function(t){var e=this.value();this.validateInput(t),this.value()!==e&&this.trigger(b)},_attachEvents:function(){var e=this;e.element.is(k)&&e.element.on("submit"+d,x(e._submit,e)),e.options.validateOnBlur&&(e.element.is(v)?(e.element.on(_+d,function(){e._checkElement(e.element)}),e.element.is(g)&&e.element.on("click"+d,function(){e._checkElement(e.element)})):(e.element.on(_+d,e._inputSelector,function(){e._checkElement(t(this))}),e.element.on("click"+d,e._checkboxSelector,function(){e._checkElement(t(this))})))},validate:function(){var t,e,a,r,n=!1,i=this.value();if(this._errors={},this.element.is(v))n=this.validateInput(this.element);else{for(r=!1,t=this.element.find(this._inputSelector),e=0,a=t.length;e<a;e++)this.validateInput(t.eq(e))||(r=!0);n=!r}return this.trigger(A,{valid:n}),i!==n&&this.trigger(b),n},validateInput:function(e){var a,n,u,l,o,d,c,h,m,v,g;return e=t(e),this._isValidated=!0,a=this,n=a._errorTemplate,u=a._checkValidity(e),l=u.valid,o="."+F,d=e.attr(y)||"",c=a._findMessageContainer(d).add(e.next(o).filter(function(){var e=t(this);return!e.filter("["+s.attr("for")+"]").length||e.attr(s.attr("for"))===d})).hide(),m=!e.attr("aria-invalid"),e.removeAttr("aria-invalid"),l?delete a._errors[d]:(h=a._extractMessage(e,u.key),a._errors[d]=h,v=i(n({message:r(h)})),g=c.attr("id"),a._decorateMessageContainer(v,d),g&&v.attr("id",g),c.replaceWith(v).length||v.insertAfter(e),v.show(),e.attr("aria-invalid",!0)),m!==l&&this.trigger(C,{valid:l,input:e}),e.toggleClass(f,!l),e.toggleClass(p,l),l},hideMessages:function(){var t=this,e="."+F,a=t.element;a.is(v)?a.next(e).hide():a.find(e).hide()},_findMessageContainer:function(e){var a,r,n,i=s.ui.validator.messageLocators,l=t();for(r=0,n=this.element.length;r<n;r++)l=l.add(u(this.element[r].getElementsByTagName("*"),e));for(a in i)l=l.add(i[a].locate(this.element,e));return l},_decorateMessageContainer:function(t,e){var a,r=s.ui.validator.messageLocators;t.addClass(F).attr(s.attr("for"),e||"");for(a in r)r[a].decorate(t,e);t.attr("role","alert")},_extractMessage:function(t,e){var a=this,r=a.options.messages[e],n=t.attr(y);return r=s.isFunction(r)?r(t):r,s.format(t.attr(s.attr(e+"-msg"))||t.attr("validationMessage")||t.attr("title")||r||"",n,t.attr(e)||t.attr(s.attr(e)))},_checkValidity:function(t){var e,a=this.options.rules;for(e in a)if(!a[e].call(this,t))return{valid:!1,key:e};return{valid:!0}},errors:function(){var t,e=[],a=this._errors;for(t in a)e.push(a[t]);return e}}),s.ui.plugin(l)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,a){(a||e)()});;!function(e,define){define("aspnetmvc/kendo.data.aspnetmvc.min",["kendo.data.min","kendo.combobox.min","kendo.multiselect.min","kendo.validator.min"],e)}(function(){!function(e,t){function n(t,n,r){var i,o={};return t.sort?(o[this.options.prefix+"sort"]=e.map(t.sort,function(e){return e.field+"-"+e.dir}).join("~"),delete t.sort):o[this.options.prefix+"sort"]="",t.page&&(o[this.options.prefix+"page"]=t.page,delete t.page),t.pageSize&&(o[this.options.prefix+"pageSize"]=t.pageSize,delete t.pageSize),t.group?(o[this.options.prefix+"group"]=e.map(t.group,function(e){return e.field+"-"+e.dir}).join("~"),delete t.group):o[this.options.prefix+"group"]="",t.aggregate&&(o[this.options.prefix+"aggregate"]=e.map(t.aggregate,function(e){return e.field+"-"+e.aggregate}).join("~"),delete t.aggregate),t.filter?(o[this.options.prefix+"filter"]=a(t.filter,r.encode),delete t.filter):(o[this.options.prefix+"filter"]="",delete t.filter),delete t.take,delete t.skip,i=new g(r),i.serialize(o,t,""),o}function a(n,i){return n.filters?e.map(n.filters,function(e){var t=e.filters&&e.filters.length>1,n=a(e,i);return n&&t&&(n="("+n+")"),n}).join("~"+n.logic+"~"):n.field?n.field+"~"+n.operator+"~"+r(n.value,i):t}function r(e,t){if("string"==typeof e){if(!(e.indexOf("Date(")>-1))return e=e.replace(l,"''"),t&&(e=encodeURIComponent(e)),"'"+e+"'";e=new Date(parseInt(e.replace(/^\/Date\((.*?)\)\/$/,"$1"),10))}return e&&e.getTime?"datetime'"+c.format("{0:yyyy-MM-ddTHH-mm-ss}",e)+"'":e}function i(e,n){return t!==e?e:n}function o(t){var n=t.HasSubgroups||t.hasSubgroups||!1,a=t.Items||t.items;return{value:i(t.Key,i(t.key,t.value)),field:t.Member||t.member||t.field,hasSubgroups:n,aggregates:d(t.Aggregates||t.aggregates),items:n?e.map(a,o):a}}function s(e){var t={};return t[e.AggregateMethodName.toLowerCase()]=e.Value,t}function d(e){var t,n,a,r={};for(t in e){r={},a=e[t];for(n in a)r[n.toLowerCase()]=a[n];e[t]=r}return e}function u(e){var t,n,a,r={};for(t=0,n=e.length;t<n;t++)a=e[t],r[a.Member]=f(!0,r[a.Member],s(a));return r}var c=window.kendo,l=/'/gi,f=e.extend,p=e.isArray,m=e.isPlainObject,v=".",g=function(e){e=e||{},this.culture=e.culture||c.culture(),this.stringifyDates=e.stringifyDates,this.decimalSeparator=this.culture.numberFormat[v]};g.prototype=g.fn={serialize:function(e,t,n){var a,r;for(r in t)a=n?n+"."+r:r,this.serializeField(e,t[r],t,r,a)},serializeField:function(e,n,a,r,i){p(n)?this.serializeArray(e,n,i):m(n)?this.serialize(e,n,i):e[i]===t&&(e[i]=a[r]=this.serializeValue(n))},serializeArray:function(e,t,n){var a,r,i,o,s;for(o=0,s=0;o<t.length;o++)a=t[o],r="["+s+"]",i=n+r,this.serializeField(e,a,t,r,i),s++},serializeValue:function(e){return e instanceof Date?e=this.stringifyDates?c.stringify(e).replace(/"/g,""):c.toString(e,"G",this.culture.name):"number"==typeof e&&(e=(""+e).replace(v,this.decimalSeparator)),e}},f(!0,c.data,{schemas:{"aspnetmvc-ajax":{groups:function(t){return e.map(this._dataAccessFunction(t),o)},aggregates:function(t){var n,a;if(t=t.d||t,n=t.AggregateResults||[],!e.isArray(n)){for(a in n)n[a]=u(n[a]);return n}return u(n)}}}}),f(!0,c.data,{transports:{"aspnetmvc-ajax":c.data.RemoteTransport.extend({init:function(e){var t=this,a=(e||{}).stringifyDates;c.data.RemoteTransport.fn.init.call(this,f(!0,{},this.options,e,{parameterMap:function(e,r){return n.call(t,e,r,{encode:!1,stringifyDates:a})}}))},read:function(e){var t=this.options.data,n=this.options.read.url;m(t)?(n&&(this.options.data=null),!t.Data.length&&n?c.data.RemoteTransport.fn.read.call(this,e):e.success(t)):c.data.RemoteTransport.fn.read.call(this,e)},options:{read:{type:"POST"},update:{type:"POST"},create:{type:"POST"},destroy:{type:"POST"},parameterMap:n,prefix:""}})}}),f(!0,c.data,{schemas:{webapi:c.data.schemas["aspnetmvc-ajax"]}}),f(!0,c.data,{transports:{webapi:c.data.RemoteTransport.extend({init:function(e){var t,a,r=this,i=(e||{}).stringifyDates;e.update&&(t="string"==typeof e.update?e.update:e.update.url,e.update=f(e.update,{url:function(n){return c.format(t,n[e.idField])}})),e.destroy&&(a="string"==typeof e.destroy?e.destroy:e.destroy.url,e.destroy=f(e.destroy,{url:function(t){return c.format(a,t[e.idField])}})),e.create&&"string"==typeof e.create&&(e.create={url:e.create}),c.data.RemoteTransport.fn.init.call(this,f(!0,{},this.options,e,{parameterMap:function(e,t){return n.call(r,e,t,{encode:!1,stringifyDates:i,culture:c.cultures["en-US"]})}}))},read:function(e){var t=this.options.data,n=this.options.read.url;m(t)?(n&&(this.options.data=null),!t.Data.length&&n?c.data.RemoteTransport.fn.read.call(this,e):e.success(t)):c.data.RemoteTransport.fn.read.call(this,e)},options:{read:{type:"GET"},update:{type:"PUT"},create:{type:"POST"},destroy:{type:"DELETE"},parameterMap:n,prefix:""}})}}),f(!0,c.data,{transports:{"aspnetmvc-server":c.data.RemoteTransport.extend({init:function(e){var t=this;c.data.RemoteTransport.fn.init.call(this,f(e,{parameterMap:function(e,a){return n.call(t,e,a,{encode:!0})}}))},read:function(t){var n,a,r=this.options.prefix,i=[r+"sort",r+"page",r+"pageSize",r+"group",r+"aggregate",r+"filter"],o=RegExp("("+i.join("|")+")=[^&]*&?","g");a=location.search.replace(o,"").replace("?",""),a.length&&!/&$/.test(a)&&(a+="&"),t=this.setup(t,"read"),n=t.url,n.indexOf("?")>=0?(a=a.replace(/(.*?=.*?)&/g,function(e){return n.indexOf(e.substr(0,e.indexOf("=")))>=0?"":e}),n+="&"+a):n+="?"+a,n+=e.map(t.data,function(e,t){return t+"="+e}).join("&"),location.href=n}})}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("aspnetmvc/kendo.combobox.aspnetmvc.min",["aspnetmvc/kendo.data.aspnetmvc.min"],e)}(function(){!function(e,t){var n=window.kendo,a=n.ui;a&&a.ComboBox&&(a.ComboBox.requestData=function(t){var n,a,r=e(t).data("kendoComboBox");if(r)return n=r.dataSource.filter(),a=r.input.val(),n&&n.filters.length||(a=""),{text:a}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("aspnetmvc/kendo.dropdownlist.aspnetmvc.min",["aspnetmvc/kendo.data.aspnetmvc.min"],e)}(function(){!function(e,t){var n=window.kendo,a=n.ui;a&&a.DropDownList&&(a.DropDownList.requestData=function(t){var n,a,r,i=e(t).data("kendoDropDownList");if(i)return n=i.dataSource.filter(),a=i.filterInput,r=a?a.val():"",n&&n.filters.length||(r=""),{text:r}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("aspnetmvc/kendo.multiselect.aspnetmvc.min",["aspnetmvc/kendo.combobox.aspnetmvc.min"],e)}(function(){!function(e,t){var n=window.kendo,a=n.ui;a&&a.MultiSelect&&(a.MultiSelect.requestData=function(t){var n,a=e(t).data("kendoMultiSelect");if(a)return n=a.input.val(),{text:n!==a.options.placeholder?n:""}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("aspnetmvc/kendo.imagebrowser.aspnetmvc.min",["aspnetmvc/kendo.multiselect.aspnetmvc.min"],e)}(function(){!function(e,t){var n=window.kendo,a=e.extend,r=e.isFunction;a(!0,n.data,{schemas:{"imagebrowser-aspnetmvc":{data:function(e){return e||[]},model:{id:"name",fields:{name:{field:"Name"},size:{field:"Size"},type:{field:"EntryType",parse:function(e){return 0==e?"f":"d"}}}}}}}),a(!0,n.data,{schemas:{"filebrowser-aspnetmvc":n.data.schemas["imagebrowser-aspnetmvc"]}}),a(!0,n.data,{transports:{"imagebrowser-aspnetmvc":n.data.RemoteTransport.extend({init:function(t){n.data.RemoteTransport.fn.init.call(this,e.extend(!0,{},this.options,t))},_call:function(t,a){a.data=e.extend({},a.data,{path:this.options.path()}),r(this.options[t])?this.options[t].call(this,a):n.data.RemoteTransport.fn[t].call(this,a)},read:function(e){this._call("read",e)},create:function(e){this._call("create",e)},destroy:function(e){this._call("destroy",e)},update:function(){},options:{read:{type:"POST"},update:{type:"POST"},create:{type:"POST"},destroy:{type:"POST"},parameterMap:function(e,t){return"read"!=t&&(e.EntryType="f"===e.EntryType?0:1),e}}})}}),a(!0,n.data,{transports:{"filebrowser-aspnetmvc":n.data.transports["imagebrowser-aspnetmvc"]}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("aspnetmvc/kendo.validator.aspnetmvc.min",["aspnetmvc/kendo.imagebrowser.aspnetmvc.min"],e)}(function(){!function(e,t){function n(){var e,t={};for(e in p)t["mvc"+e]=s(e);return t}function a(){var e,t={};for(e in p)t["mvc"+e]=d(e);return t}function r(e,t){var n,a,r,i={},o=e.data(),s=t.length;for(r in o)a=r.toLowerCase(),n=a.indexOf(t),n>-1&&(a=a.substring(n+s,r.length),a&&(i[a]=o[r]));return i}function i(t){var n,a,r=t.Fields||[],i={};for(n=0,a=r.length;n<a;n++)e.extend(!0,i,o(r[n]));return i}function o(e){var t,n,a,r,i={},o={},s=e.FieldName,d=e.ValidationRules;for(a=0,r=d.length;a<r;a++)t=d[a].ValidationType,n=d[a].ValidationParameters,i[s+t]=c(s,t,n),o[s+t]=u(d[a].ErrorMessage);return{rules:i,messages:o}}function s(e){return function(t){return t.attr("data-val-"+e)}}function d(e){return function(t){return!t.filter("[data-val-"+e+"]").length||p[e](t,r(t,e))}}function u(e){return function(){return e}}function c(e,t,n){return function(a){return!a.filter("[name="+e+"]").length||p[t](a,n)}}function l(e,t){return"string"==typeof t&&(t=RegExp("^(?:"+t+")$")),t.test(e)}var f=/("|\%|'|\[|\]|\$|\.|\,|\:|\;|\+|\*|\&|\!|\#|\(|\)|<|>|\=|\?|\@|\^|\{|\}|\~|\/|\||`)/g,p={required:function(e){var t,n,a,r=e.val(),i=e.filter("[type=checkbox]");return i.length&&(t=i[0].name.replace(f,"\\$1"),n="input:hidden[name='"+t+"']",a=i.next(n),a.length||(a=i.next("label.k-checkbox-label").next(n)),r=a.length?a.val():"checked"===e.attr("checked")),!(""===r||!r||0===r.length)},number:function(e){return""===e.val()||null==e.val()||null!==kendo.parseFloat(e.val())},regex:function(e,t){return""===e.val()||l(e.val(),t.pattern)},range:function(e,t){return""===e.val()||this.min(e,t)&&this.max(e,t)},min:function(e,t){var n=parseFloat(t.min)||0,a=kendo.parseFloat(e.val());return n<=a},max:function(e,t){var n=parseFloat(t.max)||0,a=kendo.parseFloat(e.val());return a<=n},date:function(e){return""===e.val()||null!==kendo.parseDate(e.val())},length:function(t,n){if(""!==t.val()){var a=e.trim(t.val()).length;return(!n.min||a>=(n.min||0))&&(!n.max||a<=(n.max||0))}return!0}};e.extend(!0,kendo.ui.validator,{rules:a(),messages:n(),messageLocators:{mvcLocator:{locate:function(e,t){return t=t.replace(f,"\\$1"),e.find(".field-validation-valid[data-valmsg-for='"+t+"'], .field-validation-error[data-valmsg-for='"+t+"']")},decorate:function(e,t){e.addClass("field-validation-error").attr("data-valmsg-for",t||"")}},mvcMetadataLocator:{locate:function(e,t){return t=t.replace(f,"\\$1"),e.find("#"+t+"_validationMessage.field-validation-valid")},decorate:function(e,t){e.addClass("field-validation-error").attr("id",t+"_validationMessage")}}},ruleResolvers:{mvcMetaDataResolver:{resolve:function(t){var n,a=window.mvcClientValidationMetadata||[];if(a.length)for(t=e(t),n=0;n<a.length;n++)if(a[n].FormId==t.attr("id"))return i(a[n]);return{}}}}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.aspnetmvc.min",["kendo.data.min","kendo.combobox.min","kendo.dropdownlist.min","kendo.multiselect.min","kendo.validator.min","aspnetmvc/kendo.data.aspnetmvc.min","aspnetmvc/kendo.combobox.aspnetmvc.min","aspnetmvc/kendo.dropdownlist.aspnetmvc.min","aspnetmvc/kendo.multiselect.aspnetmvc.min","aspnetmvc/kendo.imagebrowser.aspnetmvc.min","aspnetmvc/kendo.validator.aspnetmvc.min"],e)}(function(){!function(e,t){function n(t){kendo.__documentIsReady?t():e(t)}var a=e.extend;e(function(){kendo.__documentIsReady=!0}),a(kendo,{syncReady:n})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.angular.min",["kendo.core.min"],e)}(function(){return function(e,t,n){"use strict";function i(e){var t=T;try{return T=function(e){return e()},e()}finally{T=t}}function o(t,i,o,c,s,k){function h(){var n,k,h,g,b,y,S;return o.kRebind&&(n=e(e(i)[0].cloneNode(!0))),V=a(t,i,o,c,M).options,i.is("select")&&!function(t){if(t.length>0){var n=e(t[0]);!/\S/.test(n.text())&&/^\?/.test(n.val())&&n.remove()}}(i[0].options),k=M.call(i,P=V).data(c),u(k,t,o,c,s),t.$emit("kendoWidgetCreated",k),h=p(t,k),o.kRebind&&m(k,t,i,n,o.kRebind,h,o),o.kNgDisabled&&(g=o.kNgDisabled,b=t.$eval(g),b&&k.enable(!b),r(k,t,i,g)),o.kNgReadonly&&(y=o.kNgReadonly,S=t.$eval(y),S&&k.readonly(S),l(k,t,i,y)),o.kNgModel&&f(k,t,o.kNgModel),$&&d(k,t,i,$,w),k&&v(k,i),k}var g,b,$,w,M,y,V,S,_,x,A,L,D,O;if(!(i instanceof jQuery))throw Error("The Kendo UI directives require jQuery to be available before AngularJS. Please include jquery before angular in the document.");if(g=o.kNgDelay,b=t.$eval(g),k=k||[],$=k[0],w=k[1],M=e(i)[c],!M)return window.console.error("Could not find: "+c),null;if(y=a(t,i,o,c,M),V=y.options,y.unresolved.length){for(S=[],_=0,x=y.unresolved.length;_<x;_++)A=y.unresolved[_],L=e.Deferred(function(e){var i=t.$watch(A.path,function(t){t!==n&&(i(),e.resolve())})}).promise(),S.push(L);return e.when.apply(null,S).then(h),n}return g&&!b?(D=t.$root||t,O=function(){var e=t.$watch(g,function(t){t!==n&&(e(),i.removeAttr(o.$attr.kNgDelay),g=null,T(h))})},/^\$(digest|apply)$/.test(D.$$phase)?O():t.$apply(O),n):h()}function a(i,o,a,r,l){function u(e,o){var a=t.copy(i.$eval(o));a===n?v.push({option:e,path:o}):c[e]=a}var c,s,d,f,p=r.replace(/^kendo/,""),v=[],m=a.kOptions||a.options,k=i.$eval(m);return m&&k===n&&v.push({option:"options",path:m}),c=t.extend({},a.defaultOptions,k),s=l.widget.prototype.options,d=l.widget.prototype.events,e.each(a,function(e,t){var n,i,o,a;"source"!==e&&"kDataSource"!==e&&"kScopeField"!==e&&"scopeField"!==e&&(n="data"+e.charAt(0).toUpperCase()+e.slice(1),0===e.indexOf("on")&&(i=e.replace(/^on./,function(e){return e.charAt(2).toLowerCase()}),d.indexOf(i)>-1&&(c[i]=t)),s.hasOwnProperty(n)?u(n,t):s.hasOwnProperty(e)&&!D[e]?u(e,t):L[e]||(o=e.match(/^k(On)?([A-Z].*)/),o&&(a=o[2].charAt(0).toLowerCase()+o[2].slice(1),o[1]&&"kOnLabel"!=e?c[a]=t:("kOnLabel"==e&&(a="onLabel"),u(a,t)))))}),f=a.kDataSource||a.source,f&&(c.dataSource=A(i,o,p,f)),c.$angular=[i],{options:c,unresolved:v}}function r(e,t,i,o){return kendo.ui.PanelBar&&e instanceof kendo.ui.PanelBar||kendo.ui.Menu&&e instanceof kendo.ui.Menu?(x.warn("k-ng-disabled specified on a widget that does not have the enable() method: "+e.options.name),n):(t.$watch(o,function(t,n){t!=n&&e.enable(!t)}),n)}function l(e,t,i,o){return"function"!=typeof e.readonly?(x.warn("k-ng-readonly specified on a widget that does not have the readonly() method: "+e.options.name),n):(t.$watch(o,function(t,n){t!=n&&e.readonly(t)}),n)}function u(e,t,n,i,o){if(n[o]){var a=S(n[o]).assign;if(!a)throw Error(o+" attribute used but expression in it is not assignable: "+n[i]);a(t,e)}}function c(e){return/checkbox|radio/i.test(e.attr("type"))?e.prop("checked"):e.val()}function s(e){return O.test(e[0].tagName)}function d(e,t,i,o,a){var r,l,u,d,f;e.value&&(l=!1,r=s(i)?function(){return c(i)}:function(){return e.value()},u=function(){var i=o.$viewValue;i===n&&(i=o.$modelValue),i===n&&(i=null),l=!0,setTimeout(function(){if(l=!1,e){var n=t[e.element.attr("k-ng-model")];n&&(i=n),e.options.autoBind!==!1||e.listView.bound()?e.value(i):i&&e.value(i)}},0)},o.$render=u,setTimeout(function(){o.$render!==u&&(o.$render=u)()}),s(i)&&i.on("change",function(){l=!0}),d=function(e){return function(){var n;l||(e&&a&&(n=a.$pristine),o.$setViewValue(r()),e&&(o.$setPristine(),n&&a.$setPristine()),$(t))}},e.first("change",d(!1)),e.first("spin",d(!1)),kendo.ui.AutoComplete&&e instanceof kendo.ui.AutoComplete||e.first("dataBound",d(!0)),f=r(),isNaN(o.$viewValue)||f==o.$viewValue||(o.$isEmpty(o.$viewValue)?null!=f&&""!==f&&f!=o.$viewValue&&o.$setViewValue(f):e.value(o.$viewValue)),o.$setPristine())}function f(t,i,o){var a,r,l,u,c,s,d,f,p,v;return"function"!=typeof t.value?(x.warn("k-ng-model specified on a widget that does not have the value() method: "+t.options.name),n):(a=e(t.element).parents("form"),r=kendo.getter(a.attr("name"),!0)(i),l=S(o),u=l.assign,c=!1,s=kendo.ui.MultiSelect&&t instanceof kendo.ui.MultiSelect,d=function(e){return e&&s?e.length:0},f=d(l(i)),t.$angular_setLogicValue(l(i)),p=function(e,i){e===n&&(e=null),c||e==i&&d(e)==f||(f=d(e),t.$angular_setLogicValue(e))},s?i.$watchCollection(o,p):i.$watch(o,p),v=function(){c=!0,r&&r.$pristine&&r.$setDirty(),$(i,function(){u(i,t.$angular_getLogicValue()),f=d(l(i))}),c=!1},t.first("change",v),t.first("spin",v),n)}function p(e,t){var n=e.$on("$destroy",function(){n(),t&&(kendo.destroy(t.element),t=null)});return n}function v(t,n){function i(){r.disconnect()}function o(){r.observe(e(n)[0],{attributes:!0})}var a,r;window.MutationObserver&&t.wrapper&&(a=[].slice.call(e(n)[0].classList),r=new MutationObserver(function(n){i(),t&&(n.forEach(function(n){var i,o=e(t.wrapper)[0];switch(n.attributeName){case"class":i=[].slice.call(n.target.classList),i.forEach(function(e){a.indexOf(e)<0&&(o.classList.add(e),kendo.ui.ComboBox&&t instanceof kendo.ui.ComboBox&&t.input[0].classList.add(e))}),a.forEach(function(e){i.indexOf(e)<0&&(o.classList.remove(e),kendo.ui.ComboBox&&t instanceof kendo.ui.ComboBox&&t.input[0].classList.remove(e))}),a=i;break;case"disabled":"function"!=typeof t.enable||t.element.attr("readonly")||t.enable(!e(n.target).attr("disabled"));break;case"readonly":"function"!=typeof t.readonly||t.element.attr("disabled")||t.readonly(!!e(n.target).attr("readonly"))}}),o())}),o(),t.first("destroy",i))}function m(t,n,i,o,a,r,l){var u=n.$watch(a,function(a,c){var s,d,f,p,v;t._muteRebind||a===c||(u(),l._cleanUp&&l._cleanUp(),s=F[t.options.name],s&&s.forEach(function(t){var i=n.$eval(l["k"+t]);i&&o.append(e(i).attr(kendo.toHyphens("k"+t),""))}),d=e(t.wrapper)[0],f=e(t.element)[0],p="Upload"===t.options.name,p&&(i=e(f)),v=i.injector().get("$compile"),t._destroy(),r&&r(),t=null,f&&(d&&d.parentNode.replaceChild(f,d),e(i).replaceWith(o)),v(o)(n))},!0);$(n)}function k(e,t){return function(n,i){return e.call(t,n,i)}}function h(e,t){this[e]=kendo.stringify(t)}function g(e,n){function i(e,t){y.directive(e,["directiveFactory",function(n){return n.create(t,e)}])}var o,a,r,l,u=n?"Mobile":"";u+=e.fn.options.name,o=u,a="kendo"+u.charAt(0)+u.substr(1).toLowerCase(),u="kendo"+u,r=u.replace(/([A-Z])/g,"-$1"),C.indexOf(u.replace("kendo",""))==-1&&(l=u===a?[u]:[u,a],t.forEach(l,function(e){y.directive(e,function(){return{restrict:"E",replace:!0,template:function(e,t){var n=E[o]||"div",i=t.kScopeField||t.scopeField;return"<"+n+" "+r+(i?'="'+i+'"':"")+">"+e.html()+"</"+n+">"}}})})),B.indexOf(u.replace("kendo",""))>-1||(i(u,u),a!=u&&i(a,u))}function b(t){return t=e(t),kendo.widgetInstance(t,kendo.ui)||kendo.widgetInstance(t,kendo.mobile.ui)||kendo.widgetInstance(t,kendo.dataviz.ui)}function $(e,t){var n=e.$root||e,i=/^\$(digest|apply)$/.test(n.$$phase);t?i?t():n.$apply(t):i||n.$digest()}function w(t,n){t.$destroy(),n&&e(n).removeData("$scope").removeData("$$kendoScope").removeData("$isolateScope").removeData("$isolateScopeNoTemplate").removeClass("ng-scope")}function M(n,i,o){var a,r,l;if(e.isArray(n))return t.forEach(n,function(e){M(e,i,o)});if("string"==typeof n){for(a=n.split("."),r=kendo;r&&a.length>0;)r=r[a.shift()];if(!r)return N.push([n,i,o]),!1;n=r.prototype}return l=n[i],n[i]=function(){var e=this,t=arguments;return o.apply({self:e,next:function(){return l.apply(e,arguments.length>0?arguments:t)}},t)},!0}var y,V,S,T,_,x,P,A,L,D,O,E,C,B,N,F;t&&t.injector&&(y=t.module("kendo.directives",[]),V=t.injector(["ng"]),S=V.get("$parse"),T=V.get("$timeout"),x=V.get("$log"),A=function(){var e={TreeList:"TreeListDataSource",TreeView:"HierarchicalDataSource",Scheduler:"SchedulerDataSource",PivotGrid:"PivotDataSource",PivotConfigurator:"PivotDataSource",PanelBar:"HierarchicalDataSource",Menu:"$PLAIN",ContextMenu:"$PLAIN"},t=function(e,t){return"$PLAIN"==t?e:kendo.data[t].create(e)};return function(n,i,o,a){var r=e[o]||"DataSource",l=n.$eval(a),u=t(l,r);return n.$watch(a,function(e){var n,o=b(i);o&&"function"==typeof o.setDataSource&&e!==l&&(n=t(e,r),o.setDataSource(n),l=e)}),u}}(),L={kDataSource:!0,kOptions:!0,kRebind:!0,kNgModel:!0,kNgDelay:!0},D={name:!0,title:!0,style:!0},O=/^(input|select|textarea)$/i,y.factory("directiveFactory",["$compile",function(t){var n,i,a=!1;return _=t,i=function(t,i){return{restrict:"AC",require:["?ngModel","^?form"],scope:!1,controller:["$scope","$attrs","$element",function(e,t){this.template=k(h,t),t._cleanUp=k(function(){this.template=null,t._cleanUp=null},this)}],link:function(r,l,u,c){var s,d=e(l),f=t.replace(/([A-Z])/g,"-$1");d.attr(f,d.attr("data-"+f)),d[0].removeAttribute("data-"+f),s=o(r,l,u,t,i,c),s&&(n&&clearTimeout(n),n=setTimeout(function(){r.$emit("kendoRendered"),a||(a=!0,e("form").each(function(){var t=e(this).controller("form");t&&t.$setPristine()}))}))}}},{create:i}}]),E={Editor:"textarea",NumericTextBox:"input",DatePicker:"input",DateTimePicker:"input",TimePicker:"input",AutoComplete:"input",ColorPicker:"input",MaskedTextBox:"input",MultiSelect:"input",Upload:"input",Validator:"form",Button:"button",MobileButton:"a",MobileBackButton:"a",MobileDetailButton:"a",ListView:"ul",MobileListView:"ul",PanelBar:"ul",TreeView:"ul",Menu:"ul",ContextMenu:"ul",ActionSheet:"ul"},C=["MobileView","MobileDrawer","MobileLayout","MobileSplitView","MobilePane","MobileModalView"],B=["MobileApplication","MobileView","MobileModalView","MobileLayout","MobileActionSheet","MobileDrawer","MobileSplitView","MobilePane","MobileScrollView","MobilePopOver"],t.forEach(["MobileNavBar","MobileButton","MobileBackButton","MobileDetailButton","MobileTabStrip","MobileScrollView","MobileScroller"],function(e){B.push(e),e="kendo"+e,y.directive(e,function(){return{restrict:"A",link:function(t,n,i){o(t,n,i,e,e)}}})}),N=[],kendo.onWidgetRegistered(function(t){N=e.grep(N,function(e){return!M.apply(null,e)}),g(t.widget,"Mobile"==t.prefix)}),M(["ui.Widget","mobile.ui.Widget"],"angular",function(o,a){var r,l=this.self;return"init"==o?(!a&&P&&(a=P),P=null,a&&a.$angular&&(l.$angular_scope=a.$angular[0],l.$angular_init(l.element,a)),n):(r=l.$angular_scope,r&&i(function(){var i,u,c=a(),s=c.elements,d=c.data;if(s.length>0)switch(o){case"cleanup":t.forEach(s,function(t){var n=e(t).data("$$kendoScope");n&&n!==r&&n.$$kendoScope&&w(n,t)});break;case"compile":i=l.element.injector(),u=i?i.get("$compile"):_,t.forEach(s,function(t,i){var o,a;c.scopeFrom?o=c.scopeFrom:(a=d&&d[i],a!==n?(o=e.extend(r.$new(),a),o.$$kendoScope=!0):o=r),e(t).data("$$kendoScope",o),u(t)(o)}),$(r)}}),n)}),M("ui.Widget","$angular_getLogicValue",function(){return this.self.value()}),M("ui.Widget","$angular_setLogicValue",function(e){this.self.value(e)}),M("ui.Select","$angular_getLogicValue",function(){var e=this.self.dataItem(),t=this.self.options.dataValueField;return e?this.self.options.valuePrimitive?t?e[t]:e:e.toJSON():null}),M("ui.Select","$angular_setLogicValue",function(e){var t=this.self,i=t.options,o=i.dataValueField,a=i.text||"";e===n&&(e=""),o&&!i.valuePrimitive&&e&&(a=e[i.dataTextField]||"",e=e[o||i.dataTextField]),t.options.autoBind!==!1||t.listView.bound()?t.value(e):!a&&e&&i.valuePrimitive?t.value(e):t._preselect(e,a)}),M("ui.MultiSelect","$angular_getLogicValue",function(){var t=this.self.dataItems().slice(0),n=this.self.options.dataValueField;return n&&this.self.options.valuePrimitive&&(t=e.map(t,function(e){return e[n]})),t}),M("ui.MultiSelect","$angular_setLogicValue",function(t){var n,i,o,a;null==t&&(t=[]),n=this.self,i=n.options,o=i.dataValueField,a=t,o&&!i.valuePrimitive&&(t=e.map(t,function(e){return e[o]})),i.autoBind!==!1||i.valuePrimitive||n.listView.bound()?n.value(t):n._preselect(a,t)}),M("ui.AutoComplete","$angular_getLogicValue",function(){var e,t,n,i,o,a=this.self.options,r=this.self.value().split(a.separator),l=a.valuePrimitive,u=this.self.listView.selectedDataItems(),c=[];for(e=0,t=u.length;e<t;e++)for(n=u[e],i=a.dataTextField?n[a.dataTextField]:n,o=0;o<r.length;o++)if(i===r[o]){c.push(l?i:n.toJSON());break}return c}),M("ui.AutoComplete","$angular_setLogicValue",function(t){null==t&&(t=[]);var i=this.self,o=i.options.dataTextField;o&&!i.options.valuePrimitive&&(t=t.length!==n?e.map(t,function(e){return e[o]}):t[o]),i.value(t)}),M("ui.Widget","$angular_init",function(t,n){var i,o,a,r,l=this.self;if(n&&!e.isArray(n))for(i=l.$angular_scope,o=l.events.length;--o>=0;)a=l.events[o],r=n[a],r&&"string"==typeof r&&(n[a]=l.$angular_makeEventHandler(a,i,r))}),M("ui.Widget","$angular_makeEventHandler",function(e,t,n){return n=S(n),function(e){$(t,function(){n(t,{kendoEvent:e})})}}),M(["ui.Grid","ui.ListView","ui.TreeView","ui.PanelBar"],"$angular_makeEventHandler",function(e,n,i){return"change"!=e?this.next():(i=S(i),function(e){var o,a,r,l,u,c,s,d,f,p=e.sender,v=p.options,m={kendoEvent:e};for(t.isString(v.selectable)&&(o=v.selectable.indexOf("cell")!==-1,a=v.selectable.indexOf("multiple")!==-1),r=m.selected=this.select(),l=m.data=[],u=m.columns=[],s=0;s<r.length;s++)d=o?r[s].parentNode:r[s],f=p.dataItem(d),o?(t.element.inArray(f,l)<0&&l.push(f),c=t.element(r[s]).index(),t.element.inArray(c,u)<0&&u.push(c)):l.push(f);a||(m.dataItem=m.data=l[0],m.angularDataItem=kendo.proxyModelSetters(m.dataItem),m.selected=r[0]),$(n,function(){i(n,m)})})}),M("ui.Grid","$angular_init",function(i,o){if(this.next(),o.columns){var a=e.extend({},kendo.Template,o.templateSettings);t.forEach(o.columns,function(e){!e.field||e.template||e.format||e.values||e.encoded!==n&&!e.encoded||(e.template="<span ng-bind='"+kendo.expr(e.field,"dataItem")+"'>#: "+kendo.expr(e.field,a.paramName)+"#</span>")})}}),M("mobile.ui.ButtonGroup","value",function(e){var t=this.self;return null!=e&&(t.select(t.element.children("li.km-button").eq(e)),t.trigger("change"),t.trigger("select",{index:t.selectedIndex})),t.selectedIndex}),M("mobile.ui.ButtonGroup","_select",function(){this.next(),this.self.trigger("change")}),y.directive("kendoMobileApplication",function(){return{terminal:!0,link:function(e,t,n){o(e,t,n,"kendoMobileApplication","kendoMobileApplication")}}}).directive("kendoMobileView",function(){return{scope:!0,link:{pre:function(e,t,n){n.defaultOptions=e.viewOptions,n._instance=o(e,t,n,"kendoMobileView","kendoMobileView")},post:function(e,t,n){n._instance._layout(),n._instance._scroller()}}}}).directive("kendoMobileDrawer",function(){return{scope:!0,link:{pre:function(e,t,n){n.defaultOptions=e.viewOptions,n._instance=o(e,t,n,"kendoMobileDrawer","kendoMobileDrawer")},post:function(e,t,n){n._instance._layout(),n._instance._scroller()}}}}).directive("kendoMobileModalView",function(){return{scope:!0,link:{pre:function(e,t,n){n.defaultOptions=e.viewOptions,n._instance=o(e,t,n,"kendoMobileModalView","kendoMobileModalView")},post:function(e,t,n){n._instance._layout(),n._instance._scroller()}}}}).directive("kendoMobileSplitView",function(){return{terminal:!0,link:{pre:function(e,t,n){n.defaultOptions=e.viewOptions,n._instance=o(e,t,n,"kendoMobileSplitView","kendoMobileSplitView")},post:function(e,t,n){n._instance._layout()}}}}).directive("kendoMobilePane",function(){return{terminal:!0,link:{pre:function(e,t,n){n.defaultOptions=e.viewOptions,o(e,t,n,"kendoMobilePane","kendoMobilePane")}}}}).directive("kendoMobileLayout",function(){return{link:{pre:function(e,t,n){o(e,t,n,"kendoMobileLayout","kendoMobileLayout")}}}}).directive("kendoMobileActionSheet",function(){return{restrict:"A",link:function(t,n,i){n.find("a[k-action]").each(function(){e(this).attr("data-"+kendo.ns+"action",e(this).attr("k-action"))}),o(t,n,i,"kendoMobileActionSheet","kendoMobileActionSheet")}}}).directive("kendoMobilePopOver",function(){return{terminal:!0,link:{pre:function(e,t,n){n.defaultOptions=e.viewOptions,o(e,t,n,"kendoMobilePopOver","kendoMobilePopOver")}}}}).directive("kendoViewTitle",function(){return{restrict:"E",replace:!0,template:function(e){return"<span data-"+kendo.ns+"role='view-title'>"+e.html()+"</span>"}}}).directive("kendoMobileHeader",function(){return{restrict:"E",link:function(e,t){t.addClass("km-header").attr("data-role","header")}}}).directive("kendoMobileFooter",function(){return{restrict:"E",link:function(e,t){t.addClass("km-footer").attr("data-role","footer")}}}).directive("kendoMobileScrollViewPage",function(){return{restrict:"E",replace:!0,template:function(e){return"<div data-"+kendo.ns+"role='page'>"+e.html()+"</div>"}}}),t.forEach(["align","icon","rel","transition","actionsheetContext"],function(e){var t="k"+e.slice(0,1).toUpperCase()+e.slice(1);y.directive(t,function(){return{restrict:"A",priority:2,link:function(n,i,o){i.attr(kendo.attr(kendo.toHyphens(e)),n.$eval(o[t]))}}})}),F={TreeMap:["Template"],MobileListView:["HeaderTemplate","Template"],MobileScrollView:["EmptyTemplate","Template"],Grid:["AltRowTemplate","DetailTemplate","RowTemplate"],ListView:["EditTemplate","Template","AltTemplate"],Pager:["SelectTemplate","LinkTemplate"],PivotGrid:["ColumnHeaderTemplate","DataCellTemplate","RowHeaderTemplate"],Scheduler:["AllDayEventTemplate","DateHeaderTemplate","EventTemplate","MajorTimeHeaderTemplate","MinorTimeHeaderTemplate"],PanelBar:["Template"],TreeView:["Template"],Validator:["ErrorTemplate"]},function(){var e={};t.forEach(F,function(n,i){t.forEach(n,function(t){e[t]||(e[t]=[]),e[t].push("?^^kendo"+i)})}),t.forEach(e,function(e,t){var n="k"+t,i=kendo.toHyphens(n);y.directive(n,function(){return{restrict:"A",require:e,terminal:!0,compile:function(t,o){if(""===o[n]){t.removeAttr(i);var a=t[0].outerHTML;return function(t,o,r,l){for(var u;!u&&l.length;)u=l.shift();u?(u.template(n,a),o.remove()):x.warn(i+" without a matching parent widget found. It can be one of the following: "+e.join(", "))}}}}})})}())}(window.kendo.jQuery,window.angular),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;
/** 
 * Kendo UI v2017.1.223 (http://www.telerik.com/kendo-ui)                                                                                                                                               
 * Copyright 2017 Telerik AD. All rights reserved.                                                                                                                                                      
 *                                                                                                                                                                                                      
 * Kendo UI commercial licenses may be obtained at                                                                                                                                                      
 * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete                                                                                                                                  
 * If you do not own a commercial license, this file shall be governed by the trial license terms.                                                                                                      
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       

*/
!function(e){"function"==typeof define&&define.amd?define(["kendo.core.min"],e):e()}(function(){!function(e,M){kendo.cultures.de={name:"de",numberFormat:{pattern:["-n"],decimals:2,",":".",".":",",groupSize:[3],percent:{pattern:["-n %","n %"],decimals:2,",":".",".":",",groupSize:[3],symbol:"%"},currency:{name:"",abbr:"",pattern:["-n $","n $"],decimals:2,",":".",".":",",groupSize:[3],symbol:"€"}},calendars:{standard:{days:{names:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],namesAbbr:["So","Mo","Di","Mi","Do","Fr","Sa"],namesShort:["So","Mo","Di","Mi","Do","Fr","Sa"]},months:{names:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],namesAbbr:["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]},AM:[""],PM:[""],patterns:{d:"dd.MM.yyyy",D:"dddd, d. MMMM yyyy",F:"dddd, d. MMMM yyyy HH:mm:ss",g:"dd.MM.yyyy HH:mm",G:"dd.MM.yyyy HH:mm:ss",m:"d. MMMM",M:"d. MMMM",s:"yyyy'-'MM'-'dd'T'HH':'mm':'ss",t:"HH:mm",T:"HH:mm:ss",u:"yyyy'-'MM'-'dd HH':'mm':'ss'Z'",y:"MMMM yyyy",Y:"MMMM yyyy"},"/":".",":":":",firstDay:1}}}}(this)});
//# sourceMappingURL=kendo.culture.de.min.js.map

/*!
 * Bootstrap v3.4.1 (https://getbootstrap.com/)
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under the MIT license
 */
if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); !function (t) { "use strict"; var e = jQuery.fn.jquery.split(" ")[0].split("."); if (e[0] < 2 && e[1] < 9 || 1 == e[0] && 9 == e[1] && e[2] < 1 || 3 < e[0]) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4") }(), function (n) { "use strict"; n.fn.emulateTransitionEnd = function (t) { var e = !1, i = this; n(this).one("bsTransitionEnd", function () { e = !0 }); return setTimeout(function () { e || n(i).trigger(n.support.transition.end) }, t), this }, n(function () { n.support.transition = function o() { var t = document.createElement("bootstrap"), e = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" }; for (var i in e) if (t.style[i] !== undefined) return { end: e[i] }; return !1 }(), n.support.transition && (n.event.special.bsTransitionEnd = { bindType: n.support.transition.end, delegateType: n.support.transition.end, handle: function (t) { if (n(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) } }) }) }(jQuery), function (s) { "use strict"; var e = '[data-dismiss="alert"]', a = function (t) { s(t).on("click", e, this.close) }; a.VERSION = "3.4.1", a.TRANSITION_DURATION = 150, a.prototype.close = function (t) { var e = s(this), i = e.attr("data-target"); i || (i = (i = e.attr("href")) && i.replace(/.*(?=#[^\s]*$)/, "")), i = "#" === i ? [] : i; var o = s(document).find(i); function n() { o.detach().trigger("closed.bs.alert").remove() } t && t.preventDefault(), o.length || (o = e.closest(".alert")), o.trigger(t = s.Event("close.bs.alert")), t.isDefaultPrevented() || (o.removeClass("in"), s.support.transition && o.hasClass("fade") ? o.one("bsTransitionEnd", n).emulateTransitionEnd(a.TRANSITION_DURATION) : n()) }; var t = s.fn.alert; s.fn.alert = function o(i) { return this.each(function () { var t = s(this), e = t.data("bs.alert"); e || t.data("bs.alert", e = new a(this)), "string" == typeof i && e[i].call(t) }) }, s.fn.alert.Constructor = a, s.fn.alert.noConflict = function () { return s.fn.alert = t, this }, s(document).on("click.bs.alert.data-api", e, a.prototype.close) }(jQuery), function (s) { "use strict"; var n = function (t, e) { this.$element = s(t), this.options = s.extend({}, n.DEFAULTS, e), this.isLoading = !1 }; function i(o) { return this.each(function () { var t = s(this), e = t.data("bs.button"), i = "object" == typeof o && o; e || t.data("bs.button", e = new n(this, i)), "toggle" == o ? e.toggle() : o && e.setState(o) }) } n.VERSION = "3.4.1", n.DEFAULTS = { loadingText: "loading..." }, n.prototype.setState = function (t) { var e = "disabled", i = this.$element, o = i.is("input") ? "val" : "html", n = i.data(); t += "Text", null == n.resetText && i.data("resetText", i[o]()), setTimeout(s.proxy(function () { i[o](null == n[t] ? this.options[t] : n[t]), "loadingText" == t ? (this.isLoading = !0, i.addClass(e).attr(e, e).prop(e, !0)) : this.isLoading && (this.isLoading = !1, i.removeClass(e).removeAttr(e).prop(e, !1)) }, this), 0) }, n.prototype.toggle = function () { var t = !0, e = this.$element.closest('[data-toggle="buttons"]'); if (e.length) { var i = this.$element.find("input"); "radio" == i.prop("type") ? (i.prop("checked") && (t = !1), e.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == i.prop("type") && (i.prop("checked") !== this.$element.hasClass("active") && (t = !1), this.$element.toggleClass("active")), i.prop("checked", this.$element.hasClass("active")), t && i.trigger("change") } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active") }; var t = s.fn.button; s.fn.button = i, s.fn.button.Constructor = n, s.fn.button.noConflict = function () { return s.fn.button = t, this }, s(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (t) { var e = s(t.target).closest(".btn"); i.call(e, "toggle"), s(t.target).is('input[type="radio"], input[type="checkbox"]') || (t.preventDefault(), e.is("input,button") ? e.trigger("focus") : e.find("input:visible,button:visible").first().trigger("focus")) }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (t) { s(t.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(t.type)) }) }(jQuery), function (p) { "use strict"; var c = function (t, e) { this.$element = p(t), this.$indicators = this.$element.find(".carousel-indicators"), this.options = e, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", p.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", p.proxy(this.pause, this)).on("mouseleave.bs.carousel", p.proxy(this.cycle, this)) }; function r(n) { return this.each(function () { var t = p(this), e = t.data("bs.carousel"), i = p.extend({}, c.DEFAULTS, t.data(), "object" == typeof n && n), o = "string" == typeof n ? n : i.slide; e || t.data("bs.carousel", e = new c(this, i)), "number" == typeof n ? e.to(n) : o ? e[o]() : i.interval && e.pause().cycle() }) } c.VERSION = "3.4.1", c.TRANSITION_DURATION = 600, c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }, c.prototype.keydown = function (t) { if (!/input|textarea/i.test(t.target.tagName)) { switch (t.which) { case 37: this.prev(); break; case 39: this.next(); break; default: return }t.preventDefault() } }, c.prototype.cycle = function (t) { return t || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(p.proxy(this.next, this), this.options.interval)), this }, c.prototype.getItemIndex = function (t) { return this.$items = t.parent().children(".item"), this.$items.index(t || this.$active) }, c.prototype.getItemForDirection = function (t, e) { var i = this.getItemIndex(e); if (("prev" == t && 0 === i || "next" == t && i == this.$items.length - 1) && !this.options.wrap) return e; var o = (i + ("prev" == t ? -1 : 1)) % this.$items.length; return this.$items.eq(o) }, c.prototype.to = function (t) { var e = this, i = this.getItemIndex(this.$active = this.$element.find(".item.active")); if (!(t > this.$items.length - 1 || t < 0)) return this.sliding ? this.$element.one("slid.bs.carousel", function () { e.to(t) }) : i == t ? this.pause().cycle() : this.slide(i < t ? "next" : "prev", this.$items.eq(t)) }, c.prototype.pause = function (t) { return t || (this.paused = !0), this.$element.find(".next, .prev").length && p.support.transition && (this.$element.trigger(p.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this }, c.prototype.next = function () { if (!this.sliding) return this.slide("next") }, c.prototype.prev = function () { if (!this.sliding) return this.slide("prev") }, c.prototype.slide = function (t, e) { var i = this.$element.find(".item.active"), o = e || this.getItemForDirection(t, i), n = this.interval, s = "next" == t ? "left" : "right", a = this; if (o.hasClass("active")) return this.sliding = !1; var r = o[0], l = p.Event("slide.bs.carousel", { relatedTarget: r, direction: s }); if (this.$element.trigger(l), !l.isDefaultPrevented()) { if (this.sliding = !0, n && this.pause(), this.$indicators.length) { this.$indicators.find(".active").removeClass("active"); var h = p(this.$indicators.children()[this.getItemIndex(o)]); h && h.addClass("active") } var d = p.Event("slid.bs.carousel", { relatedTarget: r, direction: s }); return p.support.transition && this.$element.hasClass("slide") ? (o.addClass(t), "object" == typeof o && o.length && o[0].offsetWidth, i.addClass(s), o.addClass(s), i.one("bsTransitionEnd", function () { o.removeClass([t, s].join(" ")).addClass("active"), i.removeClass(["active", s].join(" ")), a.sliding = !1, setTimeout(function () { a.$element.trigger(d) }, 0) }).emulateTransitionEnd(c.TRANSITION_DURATION)) : (i.removeClass("active"), o.addClass("active"), this.sliding = !1, this.$element.trigger(d)), n && this.cycle(), this } }; var t = p.fn.carousel; p.fn.carousel = r, p.fn.carousel.Constructor = c, p.fn.carousel.noConflict = function () { return p.fn.carousel = t, this }; var e = function (t) { var e = p(this), i = e.attr("href"); i && (i = i.replace(/.*(?=#[^\s]+$)/, "")); var o = e.attr("data-target") || i, n = p(document).find(o); if (n.hasClass("carousel")) { var s = p.extend({}, n.data(), e.data()), a = e.attr("data-slide-to"); a && (s.interval = !1), r.call(n, s), a && n.data("bs.carousel").to(a), t.preventDefault() } }; p(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), p(window).on("load", function () { p('[data-ride="carousel"]').each(function () { var t = p(this); r.call(t, t.data()) }) }) }(jQuery), function (a) { "use strict"; var r = function (t, e) { this.$element = a(t), this.options = a.extend({}, r.DEFAULTS, e), this.$trigger = a('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle() }; function n(t) { var e, i = t.attr("data-target") || (e = t.attr("href")) && e.replace(/.*(?=#[^\s]+$)/, ""); return a(document).find(i) } function l(o) { return this.each(function () { var t = a(this), e = t.data("bs.collapse"), i = a.extend({}, r.DEFAULTS, t.data(), "object" == typeof o && o); !e && i.toggle && /show|hide/.test(o) && (i.toggle = !1), e || t.data("bs.collapse", e = new r(this, i)), "string" == typeof o && e[o]() }) } r.VERSION = "3.4.1", r.TRANSITION_DURATION = 350, r.DEFAULTS = { toggle: !0 }, r.prototype.dimension = function () { return this.$element.hasClass("width") ? "width" : "height" }, r.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var t, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); if (!(e && e.length && (t = e.data("bs.collapse")) && t.transitioning)) { var i = a.Event("show.bs.collapse"); if (this.$element.trigger(i), !i.isDefaultPrevented()) { e && e.length && (l.call(e, "hide"), t || e.data("bs.collapse", null)); var o = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; var n = function () { this.$element.removeClass("collapsing").addClass("collapse in")[o](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!a.support.transition) return n.call(this); var s = a.camelCase(["scroll", o].join("-")); this.$element.one("bsTransitionEnd", a.proxy(n, this)).emulateTransitionEnd(r.TRANSITION_DURATION)[o](this.$element[0][s]) } } } }, r.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var t = a.Event("hide.bs.collapse"); if (this.$element.trigger(t), !t.isDefaultPrevented()) { var e = this.dimension(); this.$element[e](this.$element[e]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; var i = function () { this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") }; if (!a.support.transition) return i.call(this); this.$element[e](0).one("bsTransitionEnd", a.proxy(i, this)).emulateTransitionEnd(r.TRANSITION_DURATION) } } }, r.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }, r.prototype.getParent = function () { return a(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function (t, e) { var i = a(e); this.addAriaAndCollapsedClass(n(i), i) }, this)).end() }, r.prototype.addAriaAndCollapsedClass = function (t, e) { var i = t.hasClass("in"); t.attr("aria-expanded", i), e.toggleClass("collapsed", !i).attr("aria-expanded", i) }; var t = a.fn.collapse; a.fn.collapse = l, a.fn.collapse.Constructor = r, a.fn.collapse.noConflict = function () { return a.fn.collapse = t, this }, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (t) { var e = a(this); e.attr("data-target") || t.preventDefault(); var i = n(e), o = i.data("bs.collapse") ? "toggle" : e.data(); l.call(i, o) }) }(jQuery), function (a) { "use strict"; var r = '[data-toggle="dropdown"]', o = function (t) { a(t).on("click.bs.dropdown", this.toggle) }; function l(t) { var e = t.attr("data-target"); e || (e = (e = t.attr("href")) && /#[A-Za-z]/.test(e) && e.replace(/.*(?=#[^\s]*$)/, "")); var i = "#" !== e ? a(document).find(e) : null; return i && i.length ? i : t.parent() } function s(o) { o && 3 === o.which || (a(".dropdown-backdrop").remove(), a(r).each(function () { var t = a(this), e = l(t), i = { relatedTarget: this }; e.hasClass("open") && (o && "click" == o.type && /input|textarea/i.test(o.target.tagName) && a.contains(e[0], o.target) || (e.trigger(o = a.Event("hide.bs.dropdown", i)), o.isDefaultPrevented() || (t.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", i))))) })) } o.VERSION = "3.4.1", o.prototype.toggle = function (t) { var e = a(this); if (!e.is(".disabled, :disabled")) { var i = l(e), o = i.hasClass("open"); if (s(), !o) { "ontouchstart" in document.documentElement && !i.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", s); var n = { relatedTarget: this }; if (i.trigger(t = a.Event("show.bs.dropdown", n)), t.isDefaultPrevented()) return; e.trigger("focus").attr("aria-expanded", "true"), i.toggleClass("open").trigger(a.Event("shown.bs.dropdown", n)) } return !1 } }, o.prototype.keydown = function (t) { if (/(38|40|27|32)/.test(t.which) && !/input|textarea/i.test(t.target.tagName)) { var e = a(this); if (t.preventDefault(), t.stopPropagation(), !e.is(".disabled, :disabled")) { var i = l(e), o = i.hasClass("open"); if (!o && 27 != t.which || o && 27 == t.which) return 27 == t.which && i.find(r).trigger("focus"), e.trigger("click"); var n = i.find(".dropdown-menu li:not(.disabled):visible a"); if (n.length) { var s = n.index(t.target); 38 == t.which && 0 < s && s--, 40 == t.which && s < n.length - 1 && s++, ~s || (s = 0), n.eq(s).trigger("focus") } } } }; var t = a.fn.dropdown; a.fn.dropdown = function e(i) { return this.each(function () { var t = a(this), e = t.data("bs.dropdown"); e || t.data("bs.dropdown", e = new o(this)), "string" == typeof i && e[i].call(t) }) }, a.fn.dropdown.Constructor = o, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = t, this }, a(document).on("click.bs.dropdown.data-api", s).on("click.bs.dropdown.data-api", ".dropdown form", function (t) { t.stopPropagation() }).on("click.bs.dropdown.data-api", r, o.prototype.toggle).on("keydown.bs.dropdown.data-api", r, o.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", o.prototype.keydown) }(jQuery), function (a) { "use strict"; var s = function (t, e) { this.options = e, this.$body = a(document.body), this.$element = a(t), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.fixedContent = ".navbar-fixed-top, .navbar-fixed-bottom", this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () { this.$element.trigger("loaded.bs.modal") }, this)) }; function r(o, n) { return this.each(function () { var t = a(this), e = t.data("bs.modal"), i = a.extend({}, s.DEFAULTS, t.data(), "object" == typeof o && o); e || t.data("bs.modal", e = new s(this, i)), "string" == typeof o ? e[o](n) : i.show && e.show(n) }) } s.VERSION = "3.4.1", s.TRANSITION_DURATION = 300, s.BACKDROP_TRANSITION_DURATION = 150, s.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, s.prototype.toggle = function (t) { return this.isShown ? this.hide() : this.show(t) }, s.prototype.show = function (i) { var o = this, t = a.Event("show.bs.modal", { relatedTarget: i }); this.$element.trigger(t), this.isShown || t.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () { o.$element.one("mouseup.dismiss.bs.modal", function (t) { a(t.target).is(o.$element) && (o.ignoreBackdropClick = !0) }) }), this.backdrop(function () { var t = a.support.transition && o.$element.hasClass("fade"); o.$element.parent().length || o.$element.appendTo(o.$body), o.$element.show().scrollTop(0), o.adjustDialog(), t && o.$element[0].offsetWidth, o.$element.addClass("in"), o.enforceFocus(); var e = a.Event("shown.bs.modal", { relatedTarget: i }); t ? o.$dialog.one("bsTransitionEnd", function () { o.$element.trigger("focus").trigger(e) }).emulateTransitionEnd(s.TRANSITION_DURATION) : o.$element.trigger("focus").trigger(e) })) }, s.prototype.hide = function (t) { t && t.preventDefault(), t = a.Event("hide.bs.modal"), this.$element.trigger(t), this.isShown && !t.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(s.TRANSITION_DURATION) : this.hideModal()) }, s.prototype.enforceFocus = function () { a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (t) { document === t.target || this.$element[0] === t.target || this.$element.has(t.target).length || this.$element.trigger("focus") }, this)) }, s.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function (t) { 27 == t.which && this.hide() }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal") }, s.prototype.resize = function () { this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal") }, s.prototype.hideModal = function () { var t = this; this.$element.hide(), this.backdrop(function () { t.$body.removeClass("modal-open"), t.resetAdjustments(), t.resetScrollbar(), t.$element.trigger("hidden.bs.modal") }) }, s.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, s.prototype.backdrop = function (t) { var e = this, i = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var o = a.support.transition && i; if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + i).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (t) { this.ignoreBackdropClick ? this.ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()) }, this)), o && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !t) return; o ? this.$backdrop.one("bsTransitionEnd", t).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION) : t() } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass("in"); var n = function () { e.removeBackdrop(), t && t() }; a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", n).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION) : n() } else t && t() }, s.prototype.handleUpdate = function () { this.adjustDialog() }, s.prototype.adjustDialog = function () { var t = this.$element[0].scrollHeight > document.documentElement.clientHeight; this.$element.css({ paddingLeft: !this.bodyIsOverflowing && t ? this.scrollbarWidth : "", paddingRight: this.bodyIsOverflowing && !t ? this.scrollbarWidth : "" }) }, s.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: "", paddingRight: "" }) }, s.prototype.checkScrollbar = function () { var t = window.innerWidth; if (!t) { var e = document.documentElement.getBoundingClientRect(); t = e.right - Math.abs(e.left) } this.bodyIsOverflowing = document.body.clientWidth < t, this.scrollbarWidth = this.measureScrollbar() }, s.prototype.setScrollbar = function () { var t = parseInt(this.$body.css("padding-right") || 0, 10); this.originalBodyPad = document.body.style.paddingRight || ""; var n = this.scrollbarWidth; this.bodyIsOverflowing && (this.$body.css("padding-right", t + n), a(this.fixedContent).each(function (t, e) { var i = e.style.paddingRight, o = a(e).css("padding-right"); a(e).data("padding-right", i).css("padding-right", parseFloat(o) + n + "px") })) }, s.prototype.resetScrollbar = function () { this.$body.css("padding-right", this.originalBodyPad), a(this.fixedContent).each(function (t, e) { var i = a(e).data("padding-right"); a(e).removeData("padding-right"), e.style.paddingRight = i || "" }) }, s.prototype.measureScrollbar = function () { var t = document.createElement("div"); t.className = "modal-scrollbar-measure", this.$body.append(t); var e = t.offsetWidth - t.clientWidth; return this.$body[0].removeChild(t), e }; var t = a.fn.modal; a.fn.modal = r, a.fn.modal.Constructor = s, a.fn.modal.noConflict = function () { return a.fn.modal = t, this }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (t) { var e = a(this), i = e.attr("href"), o = e.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, ""), n = a(document).find(o), s = n.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(i) && i }, n.data(), e.data()); e.is("a") && t.preventDefault(), n.one("show.bs.modal", function (t) { t.isDefaultPrevented() || n.one("hidden.bs.modal", function () { e.is(":visible") && e.trigger("focus") }) }), r.call(n, s, this) }) }(jQuery), function (g) { "use strict"; var o = ["sanitize", "whiteList", "sanitizeFn"], a = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"], t = { "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], a: ["target", "href", "title", "rel"], area: [], b: [], br: [], col: [], code: [], div: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: ["src", "alt", "title", "width", "height"], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [] }, r = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi, l = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; function u(t, e) { var i = t.nodeName.toLowerCase(); if (-1 !== g.inArray(i, e)) return -1 === g.inArray(i, a) || Boolean(t.nodeValue.match(r) || t.nodeValue.match(l)); for (var o = g(e).filter(function (t, e) { return e instanceof RegExp }), n = 0, s = o.length; n < s; n++)if (i.match(o[n])) return !0; return !1 } function n(t, e, i) { if (0 === t.length) return t; if (i && "function" == typeof i) return i(t); if (!document.implementation || !document.implementation.createHTMLDocument) return t; var o = document.implementation.createHTMLDocument("sanitization"); o.body.innerHTML = t; for (var n = g.map(e, function (t, e) { return e }), s = g(o.body).find("*"), a = 0, r = s.length; a < r; a++) { var l = s[a], h = l.nodeName.toLowerCase(); if (-1 !== g.inArray(h, n)) for (var d = g.map(l.attributes, function (t) { return t }), p = [].concat(e["*"] || [], e[h] || []), c = 0, f = d.length; c < f; c++)u(d[c], p) || l.removeAttribute(d[c].nodeName); else l.parentNode.removeChild(l) } return o.body.innerHTML } var m = function (t, e) { this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", t, e) }; m.VERSION = "3.4.1", m.TRANSITION_DURATION = 150, m.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1, viewport: { selector: "body", padding: 0 }, sanitize: !0, sanitizeFn: null, whiteList: t }, m.prototype.init = function (t, e, i) { if (this.enabled = !0, this.type = t, this.$element = g(e), this.options = this.getOptions(i), this.$viewport = this.options.viewport && g(document).find(g.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = { click: !1, hover: !1, focus: !1 }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); for (var o = this.options.trigger.split(" "), n = o.length; n--;) { var s = o[n]; if ("click" == s) this.$element.on("click." + this.type, this.options.selector, g.proxy(this.toggle, this)); else if ("manual" != s) { var a = "hover" == s ? "mouseenter" : "focusin", r = "hover" == s ? "mouseleave" : "focusout"; this.$element.on(a + "." + this.type, this.options.selector, g.proxy(this.enter, this)), this.$element.on(r + "." + this.type, this.options.selector, g.proxy(this.leave, this)) } } this.options.selector ? this._options = g.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, m.prototype.getDefaults = function () { return m.DEFAULTS }, m.prototype.getOptions = function (t) { var e = this.$element.data(); for (var i in e) e.hasOwnProperty(i) && -1 !== g.inArray(i, o) && delete e[i]; return (t = g.extend({}, this.getDefaults(), e, t)).delay && "number" == typeof t.delay && (t.delay = { show: t.delay, hide: t.delay }), t.sanitize && (t.template = n(t.template, t.whiteList, t.sanitizeFn)), t }, m.prototype.getDelegateOptions = function () { var i = {}, o = this.getDefaults(); return this._options && g.each(this._options, function (t, e) { o[t] != e && (i[t] = e) }), i }, m.prototype.enter = function (t) { var e = t instanceof this.constructor ? t : g(t.currentTarget).data("bs." + this.type); if (e || (e = new this.constructor(t.currentTarget, this.getDelegateOptions()), g(t.currentTarget).data("bs." + this.type, e)), t instanceof g.Event && (e.inState["focusin" == t.type ? "focus" : "hover"] = !0), e.tip().hasClass("in") || "in" == e.hoverState) e.hoverState = "in"; else { if (clearTimeout(e.timeout), e.hoverState = "in", !e.options.delay || !e.options.delay.show) return e.show(); e.timeout = setTimeout(function () { "in" == e.hoverState && e.show() }, e.options.delay.show) } }, m.prototype.isInStateTrue = function () { for (var t in this.inState) if (this.inState[t]) return !0; return !1 }, m.prototype.leave = function (t) { var e = t instanceof this.constructor ? t : g(t.currentTarget).data("bs." + this.type); if (e || (e = new this.constructor(t.currentTarget, this.getDelegateOptions()), g(t.currentTarget).data("bs." + this.type, e)), t instanceof g.Event && (e.inState["focusout" == t.type ? "focus" : "hover"] = !1), !e.isInStateTrue()) { if (clearTimeout(e.timeout), e.hoverState = "out", !e.options.delay || !e.options.delay.hide) return e.hide(); e.timeout = setTimeout(function () { "out" == e.hoverState && e.hide() }, e.options.delay.hide) } }, m.prototype.show = function () { var t = g.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { this.$element.trigger(t); var e = g.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); if (t.isDefaultPrevented() || !e) return; var i = this, o = this.tip(), n = this.getUID(this.type); this.setContent(), o.attr("id", n), this.$element.attr("aria-describedby", n), this.options.animation && o.addClass("fade"); var s = "function" == typeof this.options.placement ? this.options.placement.call(this, o[0], this.$element[0]) : this.options.placement, a = /\s?auto?\s?/i, r = a.test(s); r && (s = s.replace(a, "") || "top"), o.detach().css({ top: 0, left: 0, display: "block" }).addClass(s).data("bs." + this.type, this), this.options.container ? o.appendTo(g(document).find(this.options.container)) : o.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); var l = this.getPosition(), h = o[0].offsetWidth, d = o[0].offsetHeight; if (r) { var p = s, c = this.getPosition(this.$viewport); s = "bottom" == s && l.bottom + d > c.bottom ? "top" : "top" == s && l.top - d < c.top ? "bottom" : "right" == s && l.right + h > c.width ? "left" : "left" == s && l.left - h < c.left ? "right" : s, o.removeClass(p).addClass(s) } var f = this.getCalculatedOffset(s, l, h, d); this.applyPlacement(f, s); var u = function () { var t = i.hoverState; i.$element.trigger("shown.bs." + i.type), i.hoverState = null, "out" == t && i.leave(i) }; g.support.transition && this.$tip.hasClass("fade") ? o.one("bsTransitionEnd", u).emulateTransitionEnd(m.TRANSITION_DURATION) : u() } }, m.prototype.applyPlacement = function (t, e) { var i = this.tip(), o = i[0].offsetWidth, n = i[0].offsetHeight, s = parseInt(i.css("margin-top"), 10), a = parseInt(i.css("margin-left"), 10); isNaN(s) && (s = 0), isNaN(a) && (a = 0), t.top += s, t.left += a, g.offset.setOffset(i[0], g.extend({ using: function (t) { i.css({ top: Math.round(t.top), left: Math.round(t.left) }) } }, t), 0), i.addClass("in"); var r = i[0].offsetWidth, l = i[0].offsetHeight; "top" == e && l != n && (t.top = t.top + n - l); var h = this.getViewportAdjustedDelta(e, t, r, l); h.left ? t.left += h.left : t.top += h.top; var d = /top|bottom/.test(e), p = d ? 2 * h.left - o + r : 2 * h.top - n + l, c = d ? "offsetWidth" : "offsetHeight"; i.offset(t), this.replaceArrow(p, i[0][c], d) }, m.prototype.replaceArrow = function (t, e, i) { this.arrow().css(i ? "left" : "top", 50 * (1 - t / e) + "%").css(i ? "top" : "left", "") }, m.prototype.setContent = function () { var t = this.tip(), e = this.getTitle(); this.options.html ? (this.options.sanitize && (e = n(e, this.options.whiteList, this.options.sanitizeFn)), t.find(".tooltip-inner").html(e)) : t.find(".tooltip-inner").text(e), t.removeClass("fade in top bottom left right") }, m.prototype.hide = function (t) { var e = this, i = g(this.$tip), o = g.Event("hide.bs." + this.type); function n() { "in" != e.hoverState && i.detach(), e.$element && e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), t && t() } if (this.$element.trigger(o), !o.isDefaultPrevented()) return i.removeClass("in"), g.support.transition && i.hasClass("fade") ? i.one("bsTransitionEnd", n).emulateTransitionEnd(m.TRANSITION_DURATION) : n(), this.hoverState = null, this }, m.prototype.fixTitle = function () { var t = this.$element; (t.attr("title") || "string" != typeof t.attr("data-original-title")) && t.attr("data-original-title", t.attr("title") || "").attr("title", "") }, m.prototype.hasContent = function () { return this.getTitle() }, m.prototype.getPosition = function (t) { var e = (t = t || this.$element)[0], i = "BODY" == e.tagName, o = e.getBoundingClientRect(); null == o.width && (o = g.extend({}, o, { width: o.right - o.left, height: o.bottom - o.top })); var n = window.SVGElement && e instanceof window.SVGElement, s = i ? { top: 0, left: 0 } : n ? null : t.offset(), a = { scroll: i ? document.documentElement.scrollTop || document.body.scrollTop : t.scrollTop() }, r = i ? { width: g(window).width(), height: g(window).height() } : null; return g.extend({}, o, a, r, s) }, m.prototype.getCalculatedOffset = function (t, e, i, o) { return "bottom" == t ? { top: e.top + e.height, left: e.left + e.width / 2 - i / 2 } : "top" == t ? { top: e.top - o, left: e.left + e.width / 2 - i / 2 } : "left" == t ? { top: e.top + e.height / 2 - o / 2, left: e.left - i } : { top: e.top + e.height / 2 - o / 2, left: e.left + e.width } }, m.prototype.getViewportAdjustedDelta = function (t, e, i, o) { var n = { top: 0, left: 0 }; if (!this.$viewport) return n; var s = this.options.viewport && this.options.viewport.padding || 0, a = this.getPosition(this.$viewport); if (/right|left/.test(t)) { var r = e.top - s - a.scroll, l = e.top + s - a.scroll + o; r < a.top ? n.top = a.top - r : l > a.top + a.height && (n.top = a.top + a.height - l) } else { var h = e.left - s, d = e.left + s + i; h < a.left ? n.left = a.left - h : d > a.right && (n.left = a.left + a.width - d) } return n }, m.prototype.getTitle = function () { var t = this.$element, e = this.options; return t.attr("data-original-title") || ("function" == typeof e.title ? e.title.call(t[0]) : e.title) }, m.prototype.getUID = function (t) { for (; t += ~~(1e6 * Math.random()), document.getElementById(t);); return t }, m.prototype.tip = function () { if (!this.$tip && (this.$tip = g(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); return this.$tip }, m.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") }, m.prototype.enable = function () { this.enabled = !0 }, m.prototype.disable = function () { this.enabled = !1 }, m.prototype.toggleEnabled = function () { this.enabled = !this.enabled }, m.prototype.toggle = function (t) { var e = this; t && ((e = g(t.currentTarget).data("bs." + this.type)) || (e = new this.constructor(t.currentTarget, this.getDelegateOptions()), g(t.currentTarget).data("bs." + this.type, e))), t ? (e.inState.click = !e.inState.click, e.isInStateTrue() ? e.enter(e) : e.leave(e)) : e.tip().hasClass("in") ? e.leave(e) : e.enter(e) }, m.prototype.destroy = function () { var t = this; clearTimeout(this.timeout), this.hide(function () { t.$element.off("." + t.type).removeData("bs." + t.type), t.$tip && t.$tip.detach(), t.$tip = null, t.$arrow = null, t.$viewport = null, t.$element = null }) }, m.prototype.sanitizeHtml = function (t) { return n(t, this.options.whiteList, this.options.sanitizeFn) }; var e = g.fn.tooltip; g.fn.tooltip = function i(o) { return this.each(function () { var t = g(this), e = t.data("bs.tooltip"), i = "object" == typeof o && o; !e && /destroy|hide/.test(o) || (e || t.data("bs.tooltip", e = new m(this, i)), "string" == typeof o && e[o]()) }) }, g.fn.tooltip.Constructor = m, g.fn.tooltip.noConflict = function () { return g.fn.tooltip = e, this } }(jQuery), function (n) { "use strict"; var s = function (t, e) { this.init("popover", t, e) }; if (!n.fn.tooltip) throw new Error("Popover requires tooltip.js"); s.VERSION = "3.4.1", s.DEFAULTS = n.extend({}, n.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' }), ((s.prototype = n.extend({}, n.fn.tooltip.Constructor.prototype)).constructor = s).prototype.getDefaults = function () { return s.DEFAULTS }, s.prototype.setContent = function () { var t = this.tip(), e = this.getTitle(), i = this.getContent(); if (this.options.html) { var o = typeof i; this.options.sanitize && (e = this.sanitizeHtml(e), "string" === o && (i = this.sanitizeHtml(i))), t.find(".popover-title").html(e), t.find(".popover-content").children().detach().end()["string" === o ? "html" : "append"](i) } else t.find(".popover-title").text(e), t.find(".popover-content").children().detach().end().text(i); t.removeClass("fade top bottom left right in"), t.find(".popover-title").html() || t.find(".popover-title").hide() }, s.prototype.hasContent = function () { return this.getTitle() || this.getContent() }, s.prototype.getContent = function () { var t = this.$element, e = this.options; return t.attr("data-content") || ("function" == typeof e.content ? e.content.call(t[0]) : e.content) }, s.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".arrow") }; var t = n.fn.popover; n.fn.popover = function e(o) { return this.each(function () { var t = n(this), e = t.data("bs.popover"), i = "object" == typeof o && o; !e && /destroy|hide/.test(o) || (e || t.data("bs.popover", e = new s(this, i)), "string" == typeof o && e[o]()) }) }, n.fn.popover.Constructor = s, n.fn.popover.noConflict = function () { return n.fn.popover = t, this } }(jQuery), function (s) { "use strict"; function n(t, e) { this.$body = s(document.body), this.$scrollElement = s(t).is(document.body) ? s(window) : s(t), this.options = s.extend({}, n.DEFAULTS, e), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", s.proxy(this.process, this)), this.refresh(), this.process() } function e(o) { return this.each(function () { var t = s(this), e = t.data("bs.scrollspy"), i = "object" == typeof o && o; e || t.data("bs.scrollspy", e = new n(this, i)), "string" == typeof o && e[o]() }) } n.VERSION = "3.4.1", n.DEFAULTS = { offset: 10 }, n.prototype.getScrollHeight = function () { return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) }, n.prototype.refresh = function () { var t = this, o = "offset", n = 0; this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), s.isWindow(this.$scrollElement[0]) || (o = "position", n = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function () { var t = s(this), e = t.data("target") || t.attr("href"), i = /^#./.test(e) && s(e); return i && i.length && i.is(":visible") && [[i[o]().top + n, e]] || null }).sort(function (t, e) { return t[0] - e[0] }).each(function () { t.offsets.push(this[0]), t.targets.push(this[1]) }) }, n.prototype.process = function () { var t, e = this.$scrollElement.scrollTop() + this.options.offset, i = this.getScrollHeight(), o = this.options.offset + i - this.$scrollElement.height(), n = this.offsets, s = this.targets, a = this.activeTarget; if (this.scrollHeight != i && this.refresh(), o <= e) return a != (t = s[s.length - 1]) && this.activate(t); if (a && e < n[0]) return this.activeTarget = null, this.clear(); for (t = n.length; t--;)a != s[t] && e >= n[t] && (n[t + 1] === undefined || e < n[t + 1]) && this.activate(s[t]) }, n.prototype.activate = function (t) { this.activeTarget = t, this.clear(); var e = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]', i = s(e).parents("li").addClass("active"); i.parent(".dropdown-menu").length && (i = i.closest("li.dropdown").addClass("active")), i.trigger("activate.bs.scrollspy") }, n.prototype.clear = function () { s(this.selector).parentsUntil(this.options.target, ".active").removeClass("active") }; var t = s.fn.scrollspy; s.fn.scrollspy = e, s.fn.scrollspy.Constructor = n, s.fn.scrollspy.noConflict = function () { return s.fn.scrollspy = t, this }, s(window).on("load.bs.scrollspy.data-api", function () { s('[data-spy="scroll"]').each(function () { var t = s(this); e.call(t, t.data()) }) }) }(jQuery), function (r) { "use strict"; var a = function (t) { this.element = r(t) }; function e(i) { return this.each(function () { var t = r(this), e = t.data("bs.tab"); e || t.data("bs.tab", e = new a(this)), "string" == typeof i && e[i]() }) } a.VERSION = "3.4.1", a.TRANSITION_DURATION = 150, a.prototype.show = function () { var t = this.element, e = t.closest("ul:not(.dropdown-menu)"), i = t.data("target"); if (i || (i = (i = t.attr("href")) && i.replace(/.*(?=#[^\s]*$)/, "")), !t.parent("li").hasClass("active")) { var o = e.find(".active:last a"), n = r.Event("hide.bs.tab", { relatedTarget: t[0] }), s = r.Event("show.bs.tab", { relatedTarget: o[0] }); if (o.trigger(n), t.trigger(s), !s.isDefaultPrevented() && !n.isDefaultPrevented()) { var a = r(document).find(i); this.activate(t.closest("li"), e), this.activate(a, a.parent(), function () { o.trigger({ type: "hidden.bs.tab", relatedTarget: t[0] }), t.trigger({ type: "shown.bs.tab", relatedTarget: o[0] }) }) } } }, a.prototype.activate = function (t, e, i) { var o = e.find("> .active"), n = i && r.support.transition && (o.length && o.hasClass("fade") || !!e.find("> .fade").length); function s() { o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), n ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"), t.parent(".dropdown-menu").length && t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), i && i() } o.length && n ? o.one("bsTransitionEnd", s).emulateTransitionEnd(a.TRANSITION_DURATION) : s(), o.removeClass("in") }; var t = r.fn.tab; r.fn.tab = e, r.fn.tab.Constructor = a, r.fn.tab.noConflict = function () { return r.fn.tab = t, this }; var i = function (t) { t.preventDefault(), e.call(r(this), "show") }; r(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', i).on("click.bs.tab.data-api", '[data-toggle="pill"]', i) }(jQuery), function (l) { "use strict"; var h = function (t, e) { this.options = l.extend({}, h.DEFAULTS, e); var i = this.options.target === h.DEFAULTS.target ? l(this.options.target) : l(document).find(this.options.target); this.$target = i.on("scroll.bs.affix.data-api", l.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", l.proxy(this.checkPositionWithEventLoop, this)), this.$element = l(t), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition() }; function i(o) { return this.each(function () { var t = l(this), e = t.data("bs.affix"), i = "object" == typeof o && o; e || t.data("bs.affix", e = new h(this, i)), "string" == typeof o && e[o]() }) } h.VERSION = "3.4.1", h.RESET = "affix affix-top affix-bottom", h.DEFAULTS = { offset: 0, target: window }, h.prototype.getState = function (t, e, i, o) { var n = this.$target.scrollTop(), s = this.$element.offset(), a = this.$target.height(); if (null != i && "top" == this.affixed) return n < i && "top"; if ("bottom" == this.affixed) return null != i ? !(n + this.unpin <= s.top) && "bottom" : !(n + a <= t - o) && "bottom"; var r = null == this.affixed, l = r ? n : s.top; return null != i && n <= i ? "top" : null != o && t - o <= l + (r ? a : e) && "bottom" }, h.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset; this.$element.removeClass(h.RESET).addClass("affix"); var t = this.$target.scrollTop(), e = this.$element.offset(); return this.pinnedOffset = e.top - t }, h.prototype.checkPositionWithEventLoop = function () { setTimeout(l.proxy(this.checkPosition, this), 1) }, h.prototype.checkPosition = function () { if (this.$element.is(":visible")) { var t = this.$element.height(), e = this.options.offset, i = e.top, o = e.bottom, n = Math.max(l(document).height(), l(document.body).height()); "object" != typeof e && (o = i = e), "function" == typeof i && (i = e.top(this.$element)), "function" == typeof o && (o = e.bottom(this.$element)); var s = this.getState(n, t, i, o); if (this.affixed != s) { null != this.unpin && this.$element.css("top", ""); var a = "affix" + (s ? "-" + s : ""), r = l.Event(a + ".bs.affix"); if (this.$element.trigger(r), r.isDefaultPrevented()) return; this.affixed = s, this.unpin = "bottom" == s ? this.getPinnedOffset() : null, this.$element.removeClass(h.RESET).addClass(a).trigger(a.replace("affix", "affixed") + ".bs.affix") } "bottom" == s && this.$element.offset({ top: n - t - o }) } }; var t = l.fn.affix; l.fn.affix = i, l.fn.affix.Constructor = h, l.fn.affix.noConflict = function () { return l.fn.affix = t, this }, l(window).on("load", function () { l('[data-spy="affix"]').each(function () { var t = l(this), e = t.data(); e.offset = e.offset || {}, null != e.offsetBottom && (e.offset.bottom = e.offsetBottom), null != e.offsetTop && (e.offset.top = e.offsetTop), i.call(t, e) }) }) }(jQuery);
/*
 Helperfunctions for globalusage
 */
var ADI = ADI || {};
ADI.Helper = {

  // Leadingzero to all Numbers
  Leadingzero: function (number) {
    if (number < 10 && number >= 0) {
      return '0' + number;
    }
    else if (number > -10 && number < 0) {
      return '-0' + Math.abs(number);
    }
    else {
      return number;
    }
  }, // EOF Leadingzero

  // RoundMinutes to 15min
  RoundMinute: function (minute) {
    var roundedMinute;
    if (minute >= 0 && minute < 15) { roundedMinute = 15; }
    else if (minute >= 15 && minute < 30) { roundedMinute = 30; }
    else if (minute >= 30 && minute < 45) { roundedMinute = 45; }
    else if (minute >= 45 && minute < 60) { roundedMinute = 60; }
    return roundedMinute;
  }, // EOF RoundMinutes to 15min

  GetUrlVars: function () {
    var vars = [], hash;
    var hashes = window.location.href.slice(
      window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  }, // EOF GetUrlVars

  FragmentUrl: function (url) {
    /// <summary>
    /// Sucht einen Anchor-Tag in einer Anchor-URL
    /// <returns>Element-ID des Ankers</returns>
    /// </summary>
    if (typeof url != 'undefined') {
      var fragment = url.split('#');
      if (typeof fragment[1] != 'undefined' && fragment[1] != '') {
        return fragment[1];
      }
      else {
        return false;
      }
    }
    else {
      return false;
    }
  }, // EOF FragmentUrl

  GetObjectKeys: function (object) {
    var r = [];
    for (var k in obj) {
      if (!obj.hasOwnProperty(k))
        continue
      r.push(k)
    }
    return r;
  },

  InitFormValidation: function (formselector) {
    var form = $(formselector);
    if (form === undefined) {
      return;
    }
    form.removeData("validator");
    form.removeData("unobtrusiveValidation");
    form.off("submit.validate");
    $.validator.unobtrusive.parse(form);
  },

  SplitUrlDecodedString: function (string) {
    var vars = [], hash;
    var hashes = string.slice(
      string.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  DisableValidation: function (e) {

    var htmlForm = $(e).closest("form");
    htmlForm.removeData('unobtrusiveValidation');
    htmlForm.removeData('validator');
    htmlForm.find('input,textarea').each(function () {

      $(this).removeAttr("data-val")
      $(this).removeAttr("data-val-required")

    });
    $.validator.unobtrusive.parse(htmlForm);

  },

  ReinitializeComponents: function (formId) {
    //Tooltips und Popovers reinitialisieren
    $('body').tooltip({ selector: '[data-toggle=tooltip]', container: 'body', trigger: 'hover focus' });

    $('[data-popup="popover"]').each(function () {
      if ($(this).data('trigger')) {
        $(this).popover({ container: 'body', trigger: $(this).data('trigger') });
      }
      else {
        $(this).popover({ container: 'body', trigger: 'hover focus' });
      }
    });

    $(document).on('click', function (e) {
      $('[data-popup="popover"],[data-original-title]').each(function () {
        if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {
          (($(this).popover('hide').data('bs.popover') || {}).inState || {}).click = false
        }
      });
    });

    //Ladda reinitialisieren
    if (typeof Ladda !== 'undefined') {
      Ladda.bind('.ladda-button');
    }

    //Collapsable Panels reinitialisieren
    $('.panel [data-action=collapse]').off("click");
    $('.panel [data-action=collapse]').on("click", (function (e) {
      e.preventDefault();
      var $panelCollapse = $(this).parent().parent().parent().parent().nextAll();
      $(this).parents('.panel').toggleClass('panel-collapsed');
      $(this).toggleClass('rotate-180');

      $panelCollapse.slideToggle(150);
    }));

    //Collapsable Panel-Title reinitialisieren
    $('.page-title .heading-elements-toggle, .panel-title .heading-elements-toggle').off('click');
    $('.page-title .heading-elements-toggle, .panel-title .heading-elements-toggle').on('click', function () {
      $(this).parent().parent().toggleClass('has-visible-elements').children('.heading-elements').toggleClass('visible-elements');
    });

    //Collapsable Panel-Footer reinitialisieren
    $('.panel-footer .heading-elements-toggle').off('click');
    $('.panel-footer .heading-elements-toggle').on('click', function () {
      $(this).parent().toggleClass('has-visible-elements').children('.heading-elements').toggleClass('visible-elements');
    });

    /* Initialisierung der Switchery-Toggles */
    var uninitialisedSwitcheries = Array.prototype.slice.call(document.querySelectorAll('.switchery-toggle:not([data-switchery="true"])'));
    uninitialisedSwitcheries.forEach(function (html) {
      var switchery = new Switchery(html);
    });

    var allSwitcheries = Array.prototype.slice.call(document.querySelectorAll('input.switchery-toggle'));
    allSwitcheries.forEach(function (html) {
      html.style.removeProperty('display');
      html.style.setProperty('opacity', '0');
      html.style.setProperty('position', 'absolute');
    });

    if (typeof $().selectpicker !== 'undefined') {
      $('.bootstrap-dropdown').selectpicker('refresh');
    }

    var maxLengthSelector = $('[data-val-maxlength-max]:not([maxlength]),[data-val-length-max]:not([maxlength])');
    maxLengthSelector.each(function (index) {
      maxLengthSelector[index].setAttribute('maxlength', maxLengthSelector[index].getAttribute('data-val-maxlength-max') || maxLengthSelector[index].getAttribute('data-val-length-max'));
    });

    /* Form-Validierung reinitialisieren, wenn eine formId übergeben worden ist */
    if (typeof formId !== 'undefined' && formId !== null) {
      this.InitFormValidation(formId);
    }
  },

  GroupBy: function (array, prop) {
    return array.reduce(function (groups, item) {
      const val = item[prop];
      groups[val] = groups[val] || [];
      groups[val].push(item);
      return groups;
    }, {});
  },

  dive: function (pool, diver) {
    if (typeof pool !== 'object' || typeof diver !== 'object' || !diver.length)
      return;

    if (diver.length === 1)
      return pool[diver[0]];

    return this.dive(pool[diver.shift()], diver);
  },

  exifRotateBase64: function (srcBase64, callback) {
    var img = new Image();
    var srcOrientation = 1;
    img.onload = function () {
      var width = img.width;
      var height = img.height;
      var canvas = document.createElement('canvas');
      var ctx = canvas.getContext("2d");

      EXIF.getData(img, function() {
        srcOrientation = EXIF.getTag(this, "Orientation") || 1;
      });
      if (4 < srcOrientation && srcOrientation < 9) {
        canvas.width = height;
        canvas.height = width;
      } else {
        canvas.width = width;
        canvas.height = height;
      }

      switch (srcOrientation) {
        case 2: ctx.transform(-1, 0, 0, 1, width, 0); break;
        case 3: ctx.transform(-1, 0, 0, -1, width, height); break;
        case 4: ctx.transform(1, 0, 0, -1, 0, height); break;
        case 5: ctx.transform(0, 1, 1, 0, 0, 0); break;
        case 6: ctx.transform(0, 1, -1, 0, height, 0); break;
        case 7: ctx.transform(0, -1, -1, 0, height, width); break;
        case 8: ctx.transform(0, -1, 1, 0, 0, width); break;
        default: break;
      }

      ctx.drawImage(img, 0, 0);
      callback(canvas.toDataURL());
    };

    img.src = srcBase64;
  },

  SetFocusInsideContainer: function (selector) {
    let container = $(selector);

    //Priority 1: Custom focus class
    let focusSelector = container.find('.initial-focus');

    //Priority 2: The first interactible element
    if (!focusSelector.length) {
      focusSelector = container.find('input, button, select, .adi-dropdownlist').filter(':visible:not(:disabled):not([readonly])');
    }

    if (focusSelector.length) {
      let focusElement = focusSelector[0];
      $(focusElement).focus();

      //This places the cursor at the end of text-inputs
      let type = focusElement.getAttribute('type');
      if (type != 'button' && type != 'reset' && type != 'submit') {
        let text = focusElement.value;
        focusElement.value = '';
        focusElement.value = text;
      }
    }
  }
}; /* EOF|=== ADI.Helper */


/* Validation defaults */
(function setValidationDefaults() {

  if (!$ || !$.validator) { //double check before initializing in case jquery or validation loaded after this script
    if (!/complete|interactive|loaded/.test(document.readyState))
      document.addEventListener("DOMContentLoaded", setValidationDefaults)
    return;
  }

  var baseHighlight = $.validator.defaults.highlight,
    baseUnhighlight = $.validator.defaults.unhighlight;

  var getHighlightContainer = function ($elem) {
    if ($elem.is(".adi-dropdownlist, data-fileupload-input"))
      return $elem.prev();
    return $elem;
  }

  $.validator.setDefaults({
    ignore: function (index, element) {
      var $elem = $(element);
      if ($elem.is("[data-force-validation='true']")) //always validate data-force-validation attribute
        return false;
      if ($elem.is("[data-ignore-validation='true']")) //never validate data-ignore-validation attribute
        return true;

      return !$elem.hasClass('adi-dropdownlist')
        ? $elem.is(':hidden') //validate standard elements unless hidden
        : $elem.parent().is(':hidden'); //validate kendo-dropdownlists unless parent is hidden
    },
    showErrors: function (errorMap, errorList) {
      this.defaultShowErrors();
      if (typeof Ladda !== 'undefined' && errorList.length > 0) {
        Ladda.stopAll();
      }
    },
    highlight: function (element, errorClass, validClass) {
      var $elem = $(element);

      if ($elem.is(".adi-dropdownlist"))
        return baseHighlight.call(this, $elem.prev("span"), "invalid", validClass);

      if ($elem.is("[data-fileupload-input]"))
        return baseHighlight.call(this, $elem.prev("button"), "btn-danger", "btn-primary");

      return baseHighlight.call(this, element, errorClass, validClass);
    },
    unhighlight: function (element, errorClass, validClass) {
      var $elem = $(element);

      if ($elem.is(".adi-dropdownlist"))
        return baseUnhighlight.call(this, $elem.prev("span"), "invalid", validClass);

      if ($elem.is("[data-fileupload-input]"))
        return baseUnhighlight.call(this, $elem.prev("button"), "btn-danger", "btn-primary");

      return baseUnhighlight.call(this, element, errorClass, validClass);
    }
  });

}());

(function setPolyfills() {
  if (!String.prototype.replaceAll) { // Check if the native function not exist
    Object.defineProperty(String.prototype, 'replaceAll', { // Define replaceAll as a prototype for (Mother/Any) String
        configurable: true, writable: true, enumerable: false, // Editable & non-enumerable property (As it should be)
        value: function(search, replace) { // Set the function by closest input names (For good info in consoles)
            return this.replace( // Using native String.prototype.replace()
                Object.prototype.toString.call(search) === '[object RegExp]' // IsRegExp?
                    ? search.global // Is the RegEx global?
                        ? search // So pass it
                        : RegExp(search.source, /\/([a-z]*)$/.exec(search.toString())[1] + 'g') // If not, make a global clone from the RegEx
                    : RegExp(String(search).replace(/[.^$*+?()[{|\\]/g, "\\$&"), "g"), // Replace all reserved characters with '\' then make a global 'g' RegExp
                replace); // passing second argument
        }
    });
  }

  if (!String.prototype.startsWith) {
    Object.defineProperty(String.prototype, 'startsWith', {
      value: function (search, rawPos) {
        var pos = rawPos > 0 ? rawPos | 0 : 0;
        return this.substring(pos, pos + search.length) === search;
      }
    });
  }

  if (!String.prototype.endsWith) {
    String.prototype.endsWith = function (search, this_len) {
      if (this_len === undefined || this_len > this.length) {
        this_len = this.length;
      }
      return this.substring(this_len - search.length, this_len) === search;
    };
  }
}());
var ADI = ADI || {};
ADI.ExternalResources = {
  load: function (category) {
    const selector = category
      ? '[data-dormant="' + category + '"]'
      : '[data-dormant]';

    const loadedSelector = category
      ? '[data-dormant-loaded="' + category + '"]'
      : '[data-dormant-loaded]';

    const placeholderSelector = category
      ? '[data-dormant-placeholder="' + category + '"]'
      : '[data-dormant-placeholder]';

    $(selector).each(function () {
      const $dormant = $(this);
      const $element = $('<div data-dormant-loaded="' + category + '"></div>');
      $element.html($dormant.html());
      $dormant.after($element);
      $dormant.detach();
    });
    $(loadedSelector).show();
    $(placeholderSelector).hide();
  },

  unload(category) {
    const selector = category
      ? '[data-dormant-loaded="' + category + '"]'
      : '[data-dormant-loaded]';

    const placeholderSelector = category
      ? '[data-dormant-placeholder="' + category + '"]'
      : '[data-dormant-placeholder]';

    $(selector).hide();
    $(placeholderSelector).show();
  }
};
(function(t,e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Spinner=e()})(this,function(){"use strict";function t(t,e){var i,n=document.createElement(t||"div");for(i in e)n[i]=e[i];return n}function e(t){for(var e=1,i=arguments.length;i>e;e++)t.appendChild(arguments[e]);return t}function i(t,e,i,n){var r=["opacity",e,~~(100*t),i,n].join("-"),o=.01+100*(i/n),a=Math.max(1-(1-t)/e*(100-o),t),s=u.substring(0,u.indexOf("Animation")).toLowerCase(),l=s&&"-"+s+"-"||"";return c[r]||(p.insertRule("@"+l+"keyframes "+r+"{"+"0%{opacity:"+a+"}"+o+"%{opacity:"+t+"}"+(o+.01)+"%{opacity:1}"+(o+e)%100+"%{opacity:"+t+"}"+"100%{opacity:"+a+"}"+"}",p.cssRules.length),c[r]=1),r}function n(t,e){var i,n,r=t.style;for(e=e.charAt(0).toUpperCase()+e.slice(1),n=0;d.length>n;n++)if(i=d[n]+e,void 0!==r[i])return i;return void 0!==r[e]?e:void 0}function r(t,e){for(var i in e)t.style[n(t,i)||i]=e[i];return t}function o(t){for(var e=1;arguments.length>e;e++){var i=arguments[e];for(var n in i)void 0===t[n]&&(t[n]=i[n])}return t}function a(t,e){return"string"==typeof t?t:t[e%t.length]}function s(t){this.opts=o(t||{},s.defaults,f)}function l(){function i(e,i){return t("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',i)}p.addRule(".spin-vml","behavior:url(#default#VML)"),s.prototype.lines=function(t,n){function o(){return r(i("group",{coordsize:d+" "+d,coordorigin:-u+" "+-u}),{width:d,height:d})}function s(t,s,l){e(p,e(r(o(),{rotation:360/n.lines*t+"deg",left:~~s}),e(r(i("roundrect",{arcsize:n.corners}),{width:u,height:n.width,left:n.radius,top:-n.width>>1,filter:l}),i("fill",{color:a(n.color,t),opacity:n.opacity}),i("stroke",{opacity:0}))))}var l,u=n.length+n.width,d=2*u,c=2*-(n.width+n.length)+"px",p=r(o(),{position:"absolute",top:c,left:c});if(n.shadow)for(l=1;n.lines>=l;l++)s(l,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(l=1;n.lines>=l;l++)s(l);return e(t,p)},s.prototype.opacity=function(t,e,i,n){var r=t.firstChild;n=n.shadow&&n.lines||0,r&&r.childNodes.length>e+n&&(r=r.childNodes[e+n],r=r&&r.firstChild,r=r&&r.firstChild,r&&(r.opacity=i))}}var u,d=["webkit","Moz","ms","O"],c={},p=function(){var i=t("style",{type:"text/css"});return e(document.getElementsByTagName("head")[0],i),i.sheet||i.styleSheet}(),f={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};s.defaults={},o(s.prototype,{spin:function(e){this.stop();var i=this,n=i.opts,o=i.el=r(t(0,{className:n.className}),{position:n.position,width:0,zIndex:n.zIndex});if(n.radius+n.length+n.width,r(o,{left:n.left,top:n.top}),e&&e.insertBefore(o,e.firstChild||null),o.setAttribute("role","progressbar"),i.lines(o,i.opts),!u){var a,s=0,l=(n.lines-1)*(1-n.direction)/2,d=n.fps,c=d/n.speed,p=(1-n.opacity)/(c*n.trail/100),f=c/n.lines;(function h(){s++;for(var t=0;n.lines>t;t++)a=Math.max(1-(s+(n.lines-t)*f)%c*p,n.opacity),i.opacity(o,t*n.direction+l,a,n);i.timeout=i.el&&setTimeout(h,~~(1e3/d))})()}return i},stop:function(){var t=this.el;return t&&(clearTimeout(this.timeout),t.parentNode&&t.parentNode.removeChild(t),this.el=void 0),this},lines:function(n,o){function s(e,i){return r(t(),{position:"absolute",width:o.length+o.width+"px",height:o.width+"px",background:e,boxShadow:i,transformOrigin:"left",transform:"rotate("+~~(360/o.lines*d+o.rotate)+"deg) translate("+o.radius+"px"+",0)",borderRadius:(o.corners*o.width>>1)+"px"})}for(var l,d=0,c=(o.lines-1)*(1-o.direction)/2;o.lines>d;d++)l=r(t(),{position:"absolute",top:1+~(o.width/2)+"px",transform:o.hwaccel?"translate3d(0,0,0)":"",opacity:o.opacity,animation:u&&i(o.opacity,o.trail,c+d*o.direction,o.lines)+" "+1/o.speed+"s linear infinite"}),o.shadow&&e(l,r(s("#000","0 0 4px #000"),{top:"2px"})),e(n,e(l,s(a(o.color,d),"0 0 1px rgba(0,0,0,.1)")));return n},opacity:function(t,e,i){t.childNodes.length>e&&(t.childNodes[e].style.opacity=i)}});var h=r(t("group"),{behavior:"url(#default#VML)"});return!n(h,"transform")&&h.adj?l():u=n(h,"animation"),s});
/*!
 * Ladda 0.9.8 (2015-03-19, 17:22)
 * http://lab.hakim.se/ladda
 * MIT licensed
 *
 * Copyright (C) 2015 Hakim El Hattab, http://hakim.se
 */
(function(t,e){"object"==typeof exports?module.exports=e(require("spin.js")):"function"==typeof define&&define.amd?define(["spin.min.js"],e):t.Ladda=e(t.Spinner)})(this,function(t){"use strict";function e(t){if(t===void 0)return console.warn("Ladda button target must be defined."),void 0;t.querySelector(".ladda-label")||(t.innerHTML='<span class="ladda-label">'+t.innerHTML+"</span>");var e,n=t.querySelector(".ladda-spinner");n||(n=document.createElement("span"),n.className="ladda-spinner"),t.appendChild(n);var r,a={start:function(){return e||(e=o(t)),t.setAttribute("disabled",""),t.setAttribute("data-loading",""),clearTimeout(r),e.spin(n),this.setProgress(0),this},startAfter:function(t){return clearTimeout(r),r=setTimeout(function(){a.start()},t),this},stop:function(){return t.removeAttribute("disabled"),t.removeAttribute("data-loading"),clearTimeout(r),e&&(r=setTimeout(function(){e.stop()},1e3)),this},toggle:function(){return this.isLoading()?this.stop():this.start(),this},setProgress:function(e){e=Math.max(Math.min(e,1),0);var n=t.querySelector(".ladda-progress");0===e&&n&&n.parentNode?n.parentNode.removeChild(n):(n||(n=document.createElement("div"),n.className="ladda-progress",t.appendChild(n)),n.style.width=(e||0)*t.offsetWidth+"px")},enable:function(){return this.stop(),this},disable:function(){return this.stop(),t.setAttribute("disabled",""),this},isLoading:function(){return t.hasAttribute("data-loading")},remove:function(){clearTimeout(r),t.removeAttribute("disabled",""),t.removeAttribute("data-loading",""),e&&(e.stop(),e=null);for(var n=0,i=u.length;i>n;n++)if(a===u[n]){u.splice(n,1);break}}};return u.push(a),a}function n(t,e){for(;t.parentNode&&t.tagName!==e;)t=t.parentNode;return e===t.tagName?t:void 0}function r(t){for(var e=["input","textarea","select"],n=[],r=0;e.length>r;r++)for(var a=t.getElementsByTagName(e[r]),i=0;a.length>i;i++)a[i].hasAttribute("required")&&n.push(a[i]);return n}function a(t,a){a=a||{};var i=[];"string"==typeof t?i=s(document.querySelectorAll(t)):"object"==typeof t&&"string"==typeof t.nodeName&&(i=[t]);for(var o=0,u=i.length;u>o;o++)(function(){var t=i[o];if("function"==typeof t.addEventListener){var s=e(t),u=-1;t.addEventListener("click",function(){var e=!0,i=n(t,"FORM");if(i!==void 0)for(var o=r(i),d=0;o.length>d;d++)""===o[d].value.replace(/^\s+|\s+$/g,"")&&(e=!1),"checkbox"!==o[d].type&&"radio"!==o[d].type||o[d].checked||(e=!1),"email"===o[d].type&&(e=/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/.test(o[d].value));e&&(s.startAfter(1),"number"==typeof a.timeout&&(clearTimeout(u),u=setTimeout(s.stop,a.timeout)),"function"==typeof a.callback&&a.callback.apply(null,[s]))},!1)}})()}function i(){for(var t=0,e=u.length;e>t;t++)u[t].stop()}function o(e){var n,r=e.offsetHeight;0===r&&(r=parseFloat(window.getComputedStyle(e).height)),r>32&&(r*=.8),e.hasAttribute("data-spinner-size")&&(r=parseInt(e.getAttribute("data-spinner-size"),10)),e.hasAttribute("data-spinner-color")&&(n=e.getAttribute("data-spinner-color"));var a=12,i=.2*r,o=.6*i,s=7>i?2:3;return new t({color:n||"#fff",lines:a,radius:i,length:o,width:s,zIndex:"auto",top:"auto",left:"auto",className:""})}function s(t){for(var e=[],n=0;t.length>n;n++)e.push(t[n]);return e}var u=[];return{bind:a,create:e,stopAll:i}});
/*! angular-ladda 0.4.3 */
!function(e,n){"use strict";if("function"==typeof define&&define.amd)define(["angular","ladda"],n);else{if("undefined"==typeof module||"object"!=typeof module.exports)return n(e.angular,e.Ladda);module.exports=n(window.angular||require("angular"),require("ladda"))}}(this,function(e,n){"use strict";var t="angular-ladda";return e.module(t,[]).provider("ladda",function(){var n={style:"zoom-in"};return{setOption:function(t){e.extend(n,t)},$get:function(){return n}}}).directive("ladda",["ladda","$timeout",function(t,a){return{restrict:"A",priority:-1,link:function(r,i,d){a(function(){if(i.addClass("ladda-button"),e.isUndefined(i.attr("data-style"))&&i.attr("data-style",t.style||"zoom-in"),e.isUndefined(i.attr("data-spinner-size"))&&t.spinnerSize&&i.attr("data-spinner-size",t.spinnerSize),e.isUndefined(i.attr("data-spinner-color"))&&t.spinnerColor&&i.attr("data-spinner-color",t.spinnerColor),!i[0].querySelector(".ladda-label")){var a=document.createElement("span");a.className="ladda-label",e.element(a).append(i.contents()),i.append(a)}var o=n.create(i[0]);r.$watch(d.ladda,function(n){return n||e.isNumber(n)?(o.isLoading()||o.start(),void(e.isNumber(n)&&o.setProgress(n))):(o.stop(),void(d.ngDisabled&&i.attr("disabled",r.$eval(d.ngDisabled))))}),r.$on("$destroy",function(){o&&o.remove()})})}}}]),t});
/// <reference path="http://code.jquery.com/jquery-1.4.1-vsdoc.js" />
/*
* Print Element Plugin 1.2
*
* Copyright (c) 2010 Erik Zaadi
*
* Inspired by PrintArea (http://plugins.jquery.com/project/PrintArea) and
* http://stackoverflow.com/questions/472951/how-do-i-print-an-iframe-from-javascript-in-safari-chrome
*
*  Home Page : http://projects.erikzaadi/jQueryPlugins/jQuery.printElement 
*  Issues (bug reporting) : http://github.com/erikzaadi/jQueryPlugins/issues/labels/printElement
*  jQuery plugin page : http://plugins.jquery.com/project/printElement 
*  
*  Thanks to David B (http://github.com/ungenio) and icgJohn (http://www.blogger.com/profile/11881116857076484100)
*  For their great contributions!
* 
* Dual licensed under the MIT and GPL licenses:
*   http://www.opensource.org/licenses/mit-license.php
*   http://www.gnu.org/licenses/gpl.html
*   
*   Note, Iframe Printing is not supported in Opera and Chrome 3.0, a popup window will be shown instead
*/
; (function (window, undefined) {
  var document = window["document"];
  var $ = window["jQuery"];
  $.fn["printElement"] = function (options) {
    var mainOptions = $.extend({}, $.fn["printElement"]["defaults"], options);
    //iframe mode is not supported for opera and chrome 3.0 (it prints the entire page).
    //http://www.google.com/support/forum/p/Webmasters/thread?tid=2cb0f08dce8821c3&hl=en

    var browserType = navigator.userAgent.toLowerCase();


    if (mainOptions["printMode"] == 'iframe') {
      if (browserType.match(/opera/) || (/chrome/.test(navigator.userAgent.toLowerCase())))
        mainOptions["printMode"] = 'popup';
    }
    //Remove previously printed iframe if exists
    $("[id^='printElement_']").remove();

    return this.each(function () {
      //Support Metadata Plug-in if available
      var opts = $.meta ? $.extend({}, mainOptions, $(this).data()) : mainOptions;
      _printElement($(this), opts);
    });
  };
  $.fn["printElement"]["defaults"] = {
    "printMode": 'iframe', //Usage : iframe / popup
    "pageTitle": '', //Print Page Title
    "overrideElementCSS": null,
    /* Can be one of the following 3 options:
    * 1 : boolean (pass true for stripping all css linked)
    * 2 : array of $.fn.printElement.cssElement (s)
    * 3 : array of strings with paths to alternate css files (optimized for print)
    */
    "printBodyOptions": {
      "styleToAdd": 'padding:10px;margin:10px;', //style attributes to add to the body of print document
      "classNameToAdd": '' //css class to add to the body of print document
    },
    "leaveOpen": false, // in case of popup, leave the print page open or not
    "iframeElementOptions": {
      "styleToAdd": 'border:none;position:absolute;width:0px;height:0px;bottom:0px;left:0px;', //style attributes to add to the iframe element
      "classNameToAdd": '' //css class to add to the iframe element
    }
  };
  $.fn["printElement"]["cssElement"] = {
    "href": '',
    "media": ''
  };
  function _printElement(element, opts) {
    //Create markup to be printed
    var html = _getMarkup(element, opts);

    var popupOrIframe = null;
    var documentToWriteTo = null;
    if (opts["printMode"].toLowerCase() == 'popup') {
      popupOrIframe = window.open('about:blank', 'printElementWindow', 'width=650,height=440,scrollbars=yes');
      documentToWriteTo = popupOrIframe.document;
    }
    else {
      //The random ID is to overcome a safari bug http://www.cjboco.com.sharedcopy.com/post.cfm/442dc92cd1c0ca10a5c35210b8166882.html
      var printElementID = "printElement_" + (Math.round(Math.random() * 99999)).toString();
      //Native creation of the element is faster..
      var iframe = document.createElement('IFRAME');
      $(iframe).attr({
        style: opts["iframeElementOptions"]["styleToAdd"],
        id: printElementID,
        className: opts["iframeElementOptions"]["classNameToAdd"],
        frameBorder: 0,
        scrolling: 'no',
        src: 'about:blank'
      });
      document.body.appendChild(iframe);
      documentToWriteTo = (iframe.contentWindow || iframe.contentDocument);
      if (documentToWriteTo.document)
        documentToWriteTo = documentToWriteTo.document;
      iframe = document.frames ? document.frames[printElementID] : document.getElementById(printElementID);
      popupOrIframe = iframe.contentWindow || iframe;
    }
    focus();
    documentToWriteTo.open();
    documentToWriteTo.write(html);
    documentToWriteTo.close();
    _callPrint(popupOrIframe);
  };

  function _callPrint(element) {
    if (element && element["printPage"])
      element["printPage"]();
    else
      setTimeout(function () {
        _callPrint(element);
      }, 50);
  }

  function _getElementHTMLIncludingFormElements(element) {
    var $element = $(element);
    //Radiobuttons and checkboxes
    $(":checked", $element).each(function () {
      this.setAttribute('checked', 'checked');
    });
    //simple text inputs
    $("input[type='text']", $element).each(function () {
      this.setAttribute('value', $(this).val());
    });
    $("select", $element).each(function () {
      var $select = $(this);
      $("option", $select).each(function () {
        if ($select.val() == $(this).val())
          this.setAttribute('selected', 'selected');
      });
    });
    $("textarea", $element).each(function () {
      //Thanks http://blog.ekini.net/2009/02/24/jquery-getting-the-latest-textvalue-inside-a-textarea/
      var value = $(this).attr('value');
      //fix for issue 7 (http://plugins.jquery.com/node/13503 and http://github.com/erikzaadi/jQueryPlugins/issues#issue/7)
      if (browserType.match(/mozilla/) && this.firstChild)
        this.firstChild.textContent = value;
      else
        this.innerHTML = value;
    });
    //http://dbj.org/dbj/?p=91
    var elementHtml = $('<div></div>').append($element.clone()).html();
    return elementHtml;
  }

  function _getBaseHref() {
    var port = (window.location.port) ? ':' + window.location.port : '';
    return window.location.protocol + '//' + window.location.hostname + port + window.location.pathname;
  }

  function _getMarkup(element, opts) {
    var $element = $(element);
    var elementHtml = _getElementHTMLIncludingFormElements(element);

    var html = new Array();
    html.push('<html><head><title>' + opts["pageTitle"] + '</title>');
    if (opts["overrideElementCSS"]) {
      if (opts["overrideElementCSS"].length > 0) {
        for (var x = 0; x < opts["overrideElementCSS"].length; x++) {
          var current = opts["overrideElementCSS"][x];
          if (typeof (current) == 'string')
            html.push('<link type="text/css" rel="stylesheet" href="' + current + '" >');
          else
            html.push('<link type="text/css" rel="stylesheet" href="' + current["href"] + '" media="' + current["media"] + '" >');
        }
      }
    }
    else {
      $("link", document).filter(function () {
        return $(this).attr("rel").toLowerCase() == "stylesheet";
      }).each(function () {
        html.push('<link type="text/css" rel="stylesheet" href="' + $(this).attr("href") + '" media="' + $(this).attr('media') + '" >');
      });
    }
    //Ensure that relative links work
    var browserType = navigator.userAgent.toLowerCase();
    html.push('<base href="' + _getBaseHref() + '" />');
    html.push('</head><body style="' + opts["printBodyOptions"]["styleToAdd"] + '" class="' + opts["printBodyOptions"]["classNameToAdd"] + '">');
    html.push('<div class="' + $element.attr('class') + '">' + elementHtml + '</div>');
    html.push('<script type="text/javascript">function printPage(){focus();print();' + ((!browserType.match(/opera/) && !opts["leaveOpen"] && opts["printMode"].toLowerCase() == 'popup') ? 'close();' : '') + '}</script>');
    html.push('</body></html>');

    return html.join('');
  };
})(window);
/*! Clientseitige StringLength Validierung */
$("input[data-val-length-max]").each(function (index, element) {
  var length = parseInt($(this).attr("data-val-length-max"));
  $(this).prop("maxlength", length);
});

function setAdditionalHelpTopics(inModel, inTopics) {
  /// <summary>
  /// Wählt aus dem HelpCenterObject auf Basis des übergebenen HelpCenterModel
  /// die richtigen Topics aus und zeigt sie auf der Seite an.
  /// 
  /// <param name="inModel">nimmt das Model mit dem HelpCenterObject aus den Resourcen</param>
  /// <param name="inTopics">Es wird ein JS-Array übergeben, in dem JS-Objekte liegen</param>
  /// <returns type="object">Neues Array mit den anzuzeigenden Hilfetexten</returns>
  ///
  /// Aufrufbeispiel Confirmation aus den theme.js-files
  ///   if ($('#OrderConfirmation').length > 0) {
  ///     var faqObject = setAdditionalHelpTopics(topicModel, [{ catIdx: 0, topicIdx: 4 }, { catIdx: 0, topicIdx: 6 }]);
  ///     ko.applyBindings(faqObject);
  ///   }
  /// 
  /// </summary>

  var topics = [];
  for (var i = 0; i < inTopics.length; i++) {
    topics.push(inModel[inTopics[i].catIdx][inModel[inTopics[i].catIdx].name].entries[inTopics[i].topicIdx]);
  }
  return { faqModel: topics };
}


/** 
 * Abweichende Rechnungsadresse
 * BillAddress
 * Anzeige der abweichende Rechnungsadresse
 * BillAddress
 * 
 * @param Add
 * wird als Trigger verwendet z.B. aus Texten (hier: Framework.Resource("PreambleBillingaddressText"))
 *
 * @param Toggle
 * steuert das Formular
 * prüft ob das data-Attribut 'data-usebilladdress' auf true gesetzt ist
 * wenn true, wird das Formular geöffnet und die Adresse kann eingegeben werden
 * wenn false, ist der Haken nicht gesetzt und das Formular wird nicht gezeigt
 */
var BillAddress = {
  Init: function () {
    /**
     * Initialisiert Die Anzeige des Forms in Abhängigkeit, ob das data-Attribut "data-usebilladdress" true oder false ist
     */
    var _legend = $('#BillingAddress');
    var _checkbox = $('#Buyer_BillingAddressEditable_IsActive');
    var _usage = _legend.attr('data-usebilladdress');
    var btnAdd = _legend.find('a.addBillingAddress');
    var btnCancel = _legend.find('a.cancelBillingAddress');
    var _preamble = $('#ShowIfNoExtraBillingAddress');
    var _form = $('#FormFieldsetBillingData');

    // allow questions to be excluded from validation if billing address is not active
    $('#FormFieldsetBillingData input').each(function (index, elem) {
      let elemName = elem.getAttribute('name');
      let invisibleInputId = 'InvisibleQuestions-' + elemName.replaceAll('.', '_');
      if (!$('#' + invisibleInputId).length) {
        let invisibleInputValue = elemName.slice(elemName.lastIndexOf('.') + 1, elemName.length);
        let invisibleQuestionInput = '<input id="' + invisibleInputId + '" type="hidden" name="Buyer.BillingAddressEditable.InvisibleQuestions" value="' + invisibleInputValue + '" ' + (_usage === 'true' ? 'disabled' : '') + ' data-invisible-question-input></input>';
        $(invisibleQuestionInput).insertAfter($('#FormFieldsetBillingData'));
      }
    });

    if (_usage === 'true') {
      // change button to cancel
      btnAdd.fadeOut(100);
      btnCancel.fadeIn(100);

      // change fieldsetcontent
      _preamble.slideUp(100);
      _form.slideDown(100);
    }
  },

  CheckForBillAddress: function () {
    var _form = $('#FormFieldsetBillingData');
    var isEmpty = true;

    _form.find('input').each(function () {
      if ($(this).val()) {
        if ($(this).is(":hidden") == false
          && $(this).attr('id') != 'Buyer_BillingAddressEditable_SalutationLookup'
          && ($(this).attr('id') != 'Buyer_BillingAddressEditable_CountryLookup')) {
          isEmpty = false;
          return;
        }
      }
    });

    return isEmpty;
  },

  Add: function () {
    BillAddress.Toggle();
  },

  Toggle: function () {
    var _legend = $('#BillingAddress');
    var _checkbox = $('#Buyer_BillingAddressEditable_IsActive');
    var _usage = _legend.attr('data-usebilladdress');
    var btnAdd = _legend.find('a.addBillingAddress');
    var btnCancel = _legend.find('a.cancelBillingAddress');
    var _preamble = $('#ShowIfNoExtraBillingAddress');
    var _form = $('#FormFieldsetBillingData');

    if (_usage === 'false') {

      // Wenn noch alle Felder leer sind belege die Felder mit den oberen
      // Einträgen vor
      if (BillAddress.CheckForBillAddress()) {

        // Erzeugt ein serialisiertes Array und versucht das equivalente Input zu finden
        var buyerAddressArray = {};
        var updatedBillingData = {};
        $.each($('#WrapBuyerAddress :input:not(:hidden)').serializeArray(), function () {
          buyerAddressArray[this.name.replace('Buyer.BuyerAddress.', '')] = this.value;
        });
        // Für alle Dropdown-Listen
        $.each($('#WrapBuyerAddress :not(:hidden) [role=listbox] :input').serializeArray(), function () {
          buyerAddressArray[this.name.replace('Buyer.BuyerAddress.', '')] = this.value;
        });

        $.each(buyerAddressArray, function (key, value) {
          if ($('#FormFieldsetBillingData [name$="' + key + '"]').attr('data-role') == 'dropdownlist') {
            currentValue = $('#FormFieldsetBillingData [name*="' + key + '"]').data('kendoDropDownList').value();
            if (currentValue !== value) {
              $('#FormFieldsetBillingData [name$="' + key + '"]').val(value);
              $('#FormFieldsetBillingData [name$="' + key + '"]').data('kendoDropDownList').value(value);
              $('#FormFieldsetBillingData [name$="' + key + '"]').trigger("change", { async: false });
            }
            updatedBillingData[key] = value;
          } else if ($('#FormFieldsetBillingData [name$="' + key + '"]').length > 0) {
            $('#FormFieldsetBillingData [name$="' + key + '"]').val(value);
            updatedBillingData[key] = value;
          } else {
            // Versucht ein Alternativen namen zu finden z.b. Infofelder
            findAlternativName = key.split('TERPOnlineBuyers').pop();

            if ($('#FormFieldsetBillingData [name*="' + findAlternativName + '"]').length > 0) {
              $('#FormFieldsetBillingData [name*="' + findAlternativName + '"]').val(value);
              updatedBillingData[key] = value;
            }
          }
        });

        $.each(buyerAddressArray, function (key, value) {
          if (updatedBillingData[key] == undefined) {
            // Fallback Wenn es noch nicht angepasste Buyer Felder gibt, anhand des Labels das passende Billing finden
            if ($('#WrapBuyerAddress label:not(:hidden)[for*="' + key + '"]').length > 0) {
              var keyLabel = $('#WrapBuyerAddress label:not(:hidden)[for*="' + key + '"]').text();
              $('#FormFieldsetBillingData label:contains(' + keyLabel + ') ~ div :input').val(value)
            }
          }
        });

      }

      _legend.attr('data-usebilladdress', 'true');

      // set checkbox val
      _checkbox.prop('checked', true);

      // change button to cancel
      btnAdd.fadeOut(150);
      btnCancel.fadeIn(150);

      // change fieldsetcontent
      _preamble.slideUp(150, function () {
        _form.slideDown(150);
      });

      // exclude questions from validation if billing address is not active
      $('[data-invisible-question-input]').prop('disabled', true);

      // first input[type=text] -> focus
      _form.find('input[type="text"]:eq(1)').focus();
    } else {
      _legend.attr('data-usebilladdress', 'false');

      // reset checkbox val
      _checkbox.prop('checked', false);

      // exclude questions from validation if billing address is not active
      $('[data-invisible-question-input]').prop('disabled', false);

      // change button to add
      btnAdd.fadeIn(150);
      btnCancel.fadeOut(150);

      // change fieldsetcontent
      _form.slideUp(150, function () {
        _preamble.slideDown(150);
      });
    }
  }
}

/*! 
 * HelpCenter
 * \fn dynamicSort
 * Sortierung absteigend nach @param property!
 */
var dynamicSort = function (property) {
  var sortOrder = 1;
  if (property[0] === "-") {
    sortOrder = -1;
    property = property.substr(1, property.length - 1);
  }
  return function (a, b) {
    var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
    return result * sortOrder;
  }
}

/*
 HelpCenter
 fn setUpPopularQuestions
 @param: container <- jQuery-Object / JQuery-Container für die Listendarstellung
 @param: questionsarray <- Array / Array mit den darzustellenden Fragen
 @param: amount <- Number / Anzahl der darzustellenden Fragen
 */
var setUpPopularQuestions = function (container, questionsarray, amount) {
  questionsarray.sort(dynamicSort('viewed'));
  questionsarray.reverse();
  for (var i = 0; i < amount; i++) {
    var itemQuestion =
      '<li class="itemBubble">' +
      '<a href="' + questionsarray[i].url + '">' +
      questionsarray[i].question +
      '</a>' +
      '</li>';
    container.append(itemQuestion);
  }
}

/*
  Print AGB from Overlay (uses printelement.js)
*/
function printAGB(sender, title) {
  $('#AGBWindow').find('.printContainer').printElement(
    { pageTitle: title }
  );
}

function print(sender, title) {
  $(sender).printElement({ pageTitle: title });
}

function printData(documentToPrint, documentTitle) {
  if (!!navigator.userAgent.match(/Trident/gi)) {
    // Print für IE
    if (documentToPrint.length > 0) {
      newWin = window.open("");
      newWin.document.write(documentToPrint[0].outerHTML);
      newWin.document.execCommand('print', false, null);
      newWin.close();
    }
  }
  else {
    print(documentToPrint, documentTitle);
  }
}

$(document).ready(function () {

  if ($('#Buyer_BuyerAddress_NameIsReadOnly').length > 0) {
    var nameReadOnly = $('#Buyer_BuyerAddress_NameIsReadOnly').val();
    if (nameReadOnly === "True") {
      var $firstName = $('#Buyer_BuyerAddress_FirstName');
      if ($firstName.length && $firstName.val() !== '') {
        $firstName.attr('readonly', 'readonly');
        $firstName.addClass('disabled disabled-strong');
      }

      var $lastName = $('#Buyer_BuyerAddress_LastName');
      if ($lastName.length && $lastName.val() !== '') {
        $lastName.attr('readonly', 'readonly');
        $lastName.addClass('disabled disabled-strong');
      }
    }
  }
  if ($('#Buyer_BuyerAddress_CompanyNameAddressIsReadOnly').length > 0) {
    var companyNameAddressIsReadOnly = $('#Buyer_BuyerAddress_CompanyNameAddressIsReadOnly').val();
    if (companyNameAddressIsReadOnly == "True") {
      if ($('#Buyer_BuyerAddress_Address_Company').val()) {
        $('#Buyer_BuyerAddress_Address_Company').attr('readonly', 'readonly');
        $('#Buyer_BuyerAddress_Address_Company').addClass('disabled disabled-strong');
      }
      if ($('#Buyer_BuyerAddress_Address_Street').val()) {
        $('#Buyer_BuyerAddress_Address_Street').attr('readonly', 'readonly');
        $('#Buyer_BuyerAddress_Address_Street').addClass('disabled disabled-strong');
      }
      if ($('#Buyer_BuyerAddress_Address_StreetNumber').val()) {
        $('#Buyer_BuyerAddress_Address_StreetNumber').attr('readonly', 'readonly');
        $('#Buyer_BuyerAddress_Address_StreetNumber').addClass('disabled disabled-strong');
      }
      if ($('#Buyer_BuyerAddress_Address_PostalCode').val()) {
        $('#Buyer_BuyerAddress_Address_PostalCode').attr('readonly', 'readonly');
        $('#Buyer_BuyerAddress_Address_PostalCode').addClass('disabled disabled-strong');
      }
      if ($('#Buyer_BuyerAddress_Address_City').val()) {
        $('#Buyer_BuyerAddress_Address_City').attr('readonly', 'readonly');
        $('#Buyer_BuyerAddress_Address_City').addClass('disabled disabled-strong');
      }
      if ($('#Buyer_BuyerAddress_Address_CountryLookup').val()) {
        $('#Buyer_BuyerAddress_Address_CountryLookup').attr('readonly', 'readonly');
        $('#Buyer_BuyerAddress_Address_CountryLookup').addClass('disabled disabled-strong');
      }
      if ($('#Buyer_BuyerAddress_Address_County').val()) {
        $('#Buyer_BuyerAddress_Address_County').attr('readonly', 'readonly');
        $('#Buyer_BuyerAddress_Address_County').addClass('disabled disabled-strong');
      }
    }
  }

  /// <summary>
  /// Unterbindet das hochspringen zum Seitenanfang bei <a href="#">-Tags.
  /// </summary>
  $('.noJump').click(function (e) {
    e.preventDefault();
  });


  /// <summary>
  /// PayPal wird über JS verlinkt.
  /// Öffnet neues Fenster/Tab
  /// </summary>
  if ($('.payprovider.pp-paypal').length > 0) {
    $('.payprovider.pp-paypal').on('click', function (e) {
      window.open('https://www.paypal.com/webapps/mpp/home', '_blank');
    });
  }

  /* Show AGB Window */
  $('body').delegate('a[data-rel="showTermsOfUseWindow"]', 'click', function (e) {
    e.preventDefault();

    var window = '#AGBWindow';

    var usableFaireventAlias = '';
    if (typeof faireventAlias !== 'undefined') {
      {
        usableFaireventAlias = faireventAlias;
      }
    }
    var request = $.ajax({
      url: usableFaireventAlias + "/Shop/_AGB"
    });

    request.done(function (msg) {
      $(window + ' .modal-body').html(msg);
      $(window).modal('show');
    });
  });

  /* Show Privacy Policy Window */
  $('body').delegate('a[data-rel="showPrivacyPolicyWindow"]', 'click', function (e) {
    var window = '#PrivacyPolicyWindow';
    var usableFaireventAlias = '';
    if (typeof faireventAlias !== 'undefined') {
      {
        usableFaireventAlias = faireventAlias;
      }
    }
    var request = $.ajax({
      url: usableFaireventAlias + "/Shop/_PrivacyPolicy"
    });

    request.done(function (msg) {
      $(window + ' .modal-body').html(msg);
      $(window).modal('show');
    });
  });

  /* Visuell feedback for E-Mail-Confirmation */
  if ($('#Buyer_EMail').length > 0 && $('#Buyer_EMailConfirmation').length > 0) {
    $('#Buyer_EMailConfirmation').keyup(function (e) {
      $('#Buyer_EMail').css('position', 'relative');
      $('#Buyer_EMailConfirmation').css('position', 'relative');

      var parentControl = $('#Buyer_EMailConfirmation').parent();
      var emailField = $('#Buyer_EMail').val();
      var selfField = $('#Buyer_EMailConfirmation').val();

      if (emailField !== '') {

        parentControl.find('.fieldMatch').fadeIn(200);

        if (selfField === emailField) {
          parentControl.find('.fieldMatch').removeClass('noMatch');
          parentControl.find('.fieldMatch').addClass('match');
        }
        else {
          parentControl.find('.fieldMatch').removeClass('match');
          parentControl.find('.fieldMatch').addClass('noMatch');
        }
      }
    })
  }

  if ($('#HelpContactOverview').length > 0) {
    var HELPTOPICS = {};
    var faqContainer = $('#FAQ ul');
    var quickHelpContainer = $('#QuickHelp ul');
    var popularQuestionsArray = [];
    var quickHelpArray = [];
    var searchArray = [];

    if (ADI.Helper.GetUrlVars().quickhelp) {
      var quickHelp = ADI.Helper.GetUrlVars().quickhelp;
    }
    else {
      var quickHelp = 'order';
    }

    for (var k = 0; k < topicModel.length; k++) {
      var name = topicModel[k].name;

      for (var j = 0; j < topicModel[k][name].entries.length; j++) {
        var searchUrl = faireventAlias + '/HelpCenter/HelpContactTopics/?topic=' + topicModel[k][name].entries[j].topicCategory + '&id=' + topicModel[k][name].entries[j].id;
        var searchTitle = topicModel[k][name].entries[j].title;
        var searchSubtitle = topicModel[k][name].title;

        searchArray.push({ url: searchUrl, title: searchTitle + ' (' + searchSubtitle + ') ', body: topicModel[k][name].entries[j].body + searchTitle });

        for (var i = 0; i < topicModel[k][name].entries[j].questions.length; i++) {
          popularQuestionsArray.push(
            {
              viewed: topicModel[k][name].entries[j].questions[i].viewed,
              question: topicModel[k][name].entries[j].questions[i].question,
              url: topicModel[k][name].url + '&id=' + topicModel[k][name].entries[j].id
            }
          );
        }

        if (typeof topicModel[k][quickHelp] !== 'undefined') {
          for (var z = 0; z < topicModel[k][name].entries[j].questions.length; z++) {
            quickHelpArray.push(
              {
                viewed: topicModel[k][quickHelp].entries[j].questions[z].viewed,
                question: topicModel[k][quickHelp].entries[j].questions[z].question,
                url: topicModel[k][quickHelp].url + '&id=' + topicModel[k][quickHelp].entries[j].id
              }
            );
          }
        }
      }
    };

    HELPTOPICS.Model = {
      helpTopics: topicModel
    };

    ko.applyBindings(HELPTOPICS.Model);
    setUpPopularQuestions(faqContainer, popularQuestionsArray, 7);
    setUpPopularQuestions(quickHelpContainer, quickHelpArray, 7);

    $('#HelpSearch form').submit(function (e) {
      e.preventDefault();
      return false;
    });

    var queryAutocompleteResult = '';
    $('#SearchTopics').kendoAutoComplete({
      dataTextField: 'body',
      dataSource: searchArray,
      filter: 'contains',
      select: function (e) {
        var dataItem = this.dataItem(e.item.index());
        queryAutocompleteResult = dataItem.title;
        $(location).attr('href', this.dataItem(e.item.index()).url);
      },
      change: function (e) {
        var value = document.getElementById('SearchTopics').value;
        if (queryAutocompleteResult.length > 0)
          value = queryAutocompleteResult;

        if (typeof dataLayer !== 'undefined' && value.length > 0) {
          dataLayer.push({
            'event': 'search',
            'searchTerm': value
          });
        }
        document.getElementById('SearchTopics').value = queryAutocompleteResult;
      },
      template: '<span>#: title #</span>'
    });
  }

  if ($('#HelpTopics').length > 0) {
    var HELPTOPICS = {};
    var topicTheme = ADI.Helper.GetUrlVars().topic || 'order';

    if (ADI.Helper.GetUrlVars().id) {
      var topicID = ADI.Helper.GetUrlVars().id;
    }
    else {
      var topicID;
      $.each(topicModel, function (idx, val) {
        if (val.name == topicTheme) {
          topicID = val[topicTheme].entries[0].id;
        }
      });
    }

    // HelpArrays for SupportTopics for forms
    var questionsTechnicArr = [];
    var questionsCommonArr = [];

    // get the actual topics from topicTheme
    for (var k = 0; k < topicModel.length; k++) {
      if (topicModel[k][topicTheme]) {
        var completeModel = topicModel[k][topicTheme];

        $.each(completeModel.entries, function (idx, val) {
          if (val.id == topicID) {
            val.topicShow = true;
          }
        });

        // set parmas and observables to each entry
        for (var j = 0; j < topicModel[k][topicTheme].entries.length; j++) {
          var url = faireventAlias + '/HelpCenter/HelpContactTopics/?topic=' + topicModel[k][topicTheme].entries[j].topicCategory + '&id=' + topicModel[k][topicTheme].entries[j].id;
          for (var qs = 0; qs < completeModel.entries[j].questions.length; qs++) {
            completeModel.entries[j].questions[qs].url = url;
            if (completeModel.entries[j].questions[qs].showAsSupportTopic == 'common') {
              questionsCommonArr.push(completeModel.entries[j].questions[qs]);
              questionsCommonArr.sort(dynamicSort('viewed'));
              questionsCommonArr.reverse();
            }
            else if (completeModel.entries[j].questions[qs].showAsSupportTopic == 'technic') {
              questionsTechnicArr.push(completeModel.entries[j].questions[qs]);
              questionsTechnicArr.sort(dynamicSort('viewed'));
              questionsTechnicArr.reverse();
            }
          }

          topicModel[k][topicTheme].entries[j].topicShow = ko.observable(topicModel[k][topicTheme].entries[j].topicShow);
          topicModel[k][topicTheme].entries[j].topicUrl = url;
        }
        HELPTOPICS.Model = {
          helpTopics: topicModel[k][topicTheme]
        };
        ko.applyBindings(HELPTOPICS.Model.helpTopics);
      }
    }

    /* count entries of arrays */
    var amountCom = questionsCommonArr.length;
    var amountTec = questionsTechnicArr.length;

    for (var cq = 0; cq < amountCom; cq++) {
      if (cq < 4) {
        $('#wrapCommonSupport .listColLeft').append('<li class="itemSupportTopics"><a href="' + questionsCommonArr[cq].url + '">' + questionsCommonArr[cq].question + '</a></li>');
      }
      else if (cq > 4 && cq < 9) {
        $('#wrapCommonSupport .listColRight').append('<li class="itemSupportTopics"><a href="' + questionsCommonArr[cq].url + '">' + questionsCommonArr[cq].question + '</a></li>');
      }
    }

    for (var ct = 0; ct < amountTec; ct++) {
      if (ct < 4) {
        $('#wrapTechnicSupport .listColLeft').append('<li class="itemSupportTopics"><a href="' + questionsTechnicArr[ct].url + '">' + questionsTechnicArr[ct].question + '</a></li>');
      }
      else if (ct > 4 && ct < 9) {
        $('#wrapTechnicSupport .listColRight').append('<li class="itemSupportTopics"><a href="' + questionsTechnicArr[ct].url + '">' + questionsTechnicArr[ct].question + '</a></li>');
      }
    }

    // get Textbox to Supportforms
    var supportBox = $('#SupportTopic .topicText').html();
    $('.topicText:contains("#=SUPPORT#")').each(function () {
      $(this).html(supportBox);
    });
  }

  if ($('#HelpContactSupport').length > 0) {
    // Bind Listener to Select#HelpTopics
    // Wenn auf "-- Sonstiges" (option[value="noTopic"]) gesetzt wird, zusätzliches Feld für eigene Betreffzeile.
    $('#HelpTopics').change(function (e) {
      if ($(this).val() == 'noTopic') {
        // show new input
        $('[data-inputid="noTopicSubject"]').slideDown(300);
      }
      else {
        // look if new input is visible,
        // if hide it!
        $('[data-inputid="noTopicSubject"]:visible').slideUp(100);
      }
    });
  }

  /*
   Buyerdata:
   disable Copy&Paste for E-Mail-Confirmation
   For this we have to disable the default behaviour of the field
   */
  $('.inputemailconfirmation').bind('copy paste', function (e) {
    e.preventDefault();
  });

  /* Modalfenster öffnen, wenn die Zusammenfassung gesendet wird. */
  $('[data-role="FormSummary"]').submit(function (e) {
    if (!e.isDefaultPrevented()) {
      $('#overlayerMask').modal('show');
    }
  });

  $('[data-hover]').focus(function () {
    $('.creditCardSign').each(function () {
      $(this).fadeOut(0);
    });

    // get attribute
    var target = $(this).attr('data-hover');
    if ($('.creditCardSign.' + target).length) {
      $('.creditCardSign.' + target).fadeIn(200);
    }
    else {
      $('#' + target).fadeIn(200);
    }
  });

  /* Check for Numbers in CreditCardNumberfield */
  function validateNumber(event) {
    var key = window.event ? event.keyCode : event.which;

    if (event.keyCode == 8 || event.keyCode == 46
      || event.keyCode == 37 || event.keyCode == 39) {
      return true;
    }
    else if (key < 48 || key > 57) {
      return false;
    }
    else return true;
  };
  $('.inputCreditCard').keypress(validateNumber);

  /* OrderConfirmation */
  if ($('#TransactionError').length > 0) {
    var topics = [];
    topics.push(topicModel[1].payment.entries[3]);
    topics.push(topicModel[1].payment.entries[4]);
    topics.push(topicModel[1].payment.entries[2]);

    var faqObject = {
      faqModel: topics
    }
    ko.applyBindings(faqObject);
  }

  /**
   *  Gutscheincode bzw Promotioncode auswerten.
   *  Sendet den Code per AJAX an die Servermethode.
   *  Kriegt die neuen Preise zurück, oder so ähnlich
   */
  if ($('#CheckVoucher').length > 0) {

    $('#CheckVoucher').click(function (e) {
      e.preventDefault();

      var $trigger = $(this);
      var $validationsMsg = $('.voucherValidation');
      $validationsMsg.hide();

      var $voucherBtnLabel = $trigger.find('.voucherBtnLabel')
      $voucherBtnLabel.hide(0);

      var $loader = $trigger.find('#loader');
      $loader.fadeIn(50);

      var $voucherField = $(this).parent().parent().find('.voucherInput');

      let voucherCode = $voucherField.val(), counterIndex = 0, ecommerceItemArr = [];

      $.ajax({
        type: "POST",
        url: faireventAlias + "/Shop/ApplyVoucherCode",
        data: { voucherCode: $voucherField.val() }
      }).done(function (data) {
        if (data.success) {
          $.each(data.cart.MainArticlesInCart, function (i, val) {
            $.each(val.Articles, function (indexArticle, valArticle) {
              if (valArticle !== null && typeof valArticle !== 'undefined') {
                if (valArticle.Voucher !== null && typeof valArticle.Voucher !== 'undefined') {
                  if (valArticle.Voucher.VoucherCode === voucherCode) {
                    const discountArticle = valArticle.GrossPriceOriginal - valArticle.GrossPrice;

                    ecommerceItemArr.push({
                      "item_id": valArticle.ArticleNumber,
                      "item_name": valArticle.ArticleName,
                      "index": counterIndex,
                      "coupon": valArticle.Voucher.VoucherCode,
                      "discount": discountArticle < 0 ? 0 : discountArticle.toFixed(2),
                      "price": valArticle.GrossPrice,
                      "quantity": 1,
                    });

                    counterIndex++;
                  }
                }
              }
            });
          });

          if (typeof ADI !== 'undefined'
          && typeof ADI.Tracking !== 'undefined'
          && typeof ADI.Tracking.writeSelectPromotionEvent === 'function') {
            ADI.Tracking.writeSelectPromotionEvent(voucherCode, "select_promotion", ecommerceItemArr);
          }

          if (data.availableArticlesChanged === true) {
            location.reload();
            return;
          }

          $voucherField.val('');
          voucherCode = "";

          refreshCartWidget(data.cart);
          setPriceLabels(data.cart);

        } else {
          $validationsMsg.html(data.message).show();
        }

        $loader.hide();
        $voucherBtnLabel.fadeIn(50);

        if (data.success) {
          refreshVoucherSummary();
        }
      });
    });
  }

  if ($('#PaymentMethods').length > 0) {

    $('.wrapPaymentMethod .paymentBody.paymentSelected').each(function () {
      $(this).slideDown(200);
    });

    $('.wrapPaymentMethod .paymentHeader span.paymentSelected').each(function () {
      var provider = $(this).attr('id');
      $('.asideInfoBox.' + provider).fadeIn(200);
    });

    var paymentMethodChangedEvent = new Event('shopPaymentMethodChanged');

    $('.wrapPaymentMethod input[name="paymentMethod"]').each(function () {
      $(this).click(function (e) {

        var providerToShow = $(this).next('span').attr('id');

        $('.wrapPaymentMethod').each(function () {
          var provider = $(this).find('.paymentHeader span').attr('id');
          $('.asideInfoBox.' + provider).fadeOut(200);

          $(this).find('.paymentHeader span').removeClass('paymentSelected').addClass('paymentUnselected');
          $(this).find('.paymentBody').removeClass('paymentSelected').slideUp(50).addClass('paymentUnselected');
        });

        $('.asideInfoBox.' + providerToShow).fadeIn(200);
        $(this).parent().find('span').removeClass('paymentUnselected').addClass('paymentSelected');
        $(this).parents('.wrapPaymentMethod').find('.paymentBody').removeClass('paymentUnselected').slideDown(50).addClass('paymentSelected');

        document.getElementById('PaymentMethods').dispatchEvent(paymentMethodChangedEvent);
      });
    });
  }

  // Init TicketRegistrations
  if ($('.wrapTicketRegistrations').length > 0) {
    TicketRegistration.Init();
    $('body').append('<span id="notification"></span>');

    function onShow(e) {
      if (!$("." + e.sender._guid)[1]) {
        var firstInvalidElement = $('.articleUnregistered')[0];
        var element = $(firstInvalidElement);
        e.element.parent().css({ top: element.height() - e.element.height() + element.offset().top, left: element.width() + element.offset().left });
      }
    }

    notification = $("#notification").kendoNotification({
      show: onShow,
      position: {
        pinned: false,
        top: 0,
        right: 0
      },
      height: 30,
      autoHideAfter: 3000
    }).data("kendoNotification");
  }

  if ($('#voucherDropDown').length > 0) {
    $('#voucherDropDown').on('shown.bs.dropdown', function () {
      var $ticketCodeInput = $('#ticketCode');
      if ($ticketCodeInput.length > 0) {
        $ticketCodeInput.focus();
      }
    });
  }

  ADI.Helper.ReinitializeComponents();
}); // EOF document.ready

function showNotification() {
  var userLang = $('#languageSwitch').attr('lang');
  if (userLang !== undefined && userLang.indexOf('de') > -1) {
    message = "Bitte vervollständigen Sie zuerst Ihre Angaben.";
  } else {
    message = "Please first complete your data input.";
  }

  notification.getNotifications().parent().remove();
  notification.error(message);
}

function stripHTML() {
  OriginalString = $('#ticketCode').val();
  var StrippedString = OriginalString.replace(/[^a-zA-Z0-9]+/g, '');
  $('#ticketCode').val(StrippedString);
}

if ($.validator) {
  $.validator.addMethod('date',
    function (value, element) {
      if (this.optional(element)) {
        return true;
      }
      return value.match(/^(0?[1-9]|[12][0-9]|3[0-1])[/., -](0?[1-9]|1[0-2])[/., -](19|20)?\d{2}$/);
    });
}

$(document).on('keypress', '.voucherInput', function (e) {
  if (e.which == 13 && $(this).val()) {
    $('#CheckVoucher').trigger('click');
  }
});

$(document).on('click', '.removeVoucher', function (e) {
  var voucherCode = $(this).data("code");

  $.ajax({
    type: "POST",
    url: faireventAlias + "/Voucher/RemoveVoucherCode",
    data: { voucherCode }
  }).done(function (data) {
    if (data.success) {
      refreshCartWidget(data.cart);
      setPriceLabels(data.cart);
      refreshVoucherSummary();
      $('.voucherValidation').html(data.message).show();
      window.location.reload();
    } else {
      $('.voucherValidation').html(data.message).show();
    }
  });
});

function refreshVoucherSummary() {
  jQuery.ajax({
    method: "GET",
    url: window.location.href,
    success: function (data) {
      var $parent = $(".formVoucher").parent();
      var $voucherInfo = $parent.find('#VoucherInfo');

      if ($voucherInfo.length) {
        $voucherInfo.remove();
      }
      $parent.append(jQuery(data).find('#VoucherInfo'));
      $voucherInfo.removeClass('hidden');
    }
  })
}

function refreshCartWidget(cart) {
  var cartScope = angular.element($('#cartFilled').get(0)).scope();
  if (cartScope != null) {
    cartScope.cart = cart;
    cartScope.$apply();
  }
}

function setPriceLabels(cart) {

  const referenceTypeArticle = 3; //TERPVoucherReference Article
  let vcount = 1;

  $.each(cart.AvailableArticlesGrouped, function (i, val) {
    var original = document.getElementById('Single_' + val.ArticleInternalId);

    if (original) {

      var singleprice = original.parentNode;
      var articleTotal = document.getElementById('Total_' + val.ArticleInternalId); // Gesamtbetrag der einzelnen Artikel
      var template;

      if (val.Voucher != null && val.GrossPrice !== val.GrossPriceOriginal) {
        template = '<h3 id="Single_' + val.ArticleInternalId + '" class="text-nowrap originalPrice">' + val.GrossPriceOriginalFormatted + '</h3> <h3 id="SingleReduced_' + val.ArticleInternalId + '" class="text-nowrap reducedPrice">' + val.GrossPriceFormatted + '</h3>';
        voucherTemp = '<div>' + val.Voucher.VoucherCode + ' - ' + vcount + ' x ' + val.GrossPriceFormatted + ' </div>';

        if (val.Amount > 0 && val.Voucher.VoucherCodeModel == 1) {
          const nonReducedAmount = val.Amount - 1;

          if (nonReducedAmount > 0) {
            voucherTemp += '<div>' + nonReducedAmount + ' x ' + val.GrossPriceOriginalFormatted + ' </div>';
          }

          $('#articlePriceDetails_' + val.ArticleInternalId).html(voucherTemp);
          $('#articlePriceDetails_' + val.ArticleInternalId).show();
          vcount++;
        } else {
          $('#articlePriceDetails_' + val.ArticleInternalId).hide();
        }
      } else {
        template = '<h3 id="Single_' + val.ArticleInternalId + '" class="text-nowrap">' + val.GrossPriceOriginalFormatted + '</h3>';
      }
      if (val.Voucher == null || val.Voucher.Reference !== referenceTypeArticle || val.Amount === 0 || (val.Amount > 0 && val.Voucher.VoucherCodeModel == 2)) {
        singleprice.innerHTML = template;
        $('#articlePriceDetails_' + val.ArticleInternalId).hide();
      }
    }
    // Anzeige Gesamt des Artikels anpassen
    if (articleTotal) {
      articleTotal.innerHTML = val.GrossPriceSumFormatted;
    }
  });

  // Gesamtbetrag ändern
  const $cartTotal = $('#TotalPriceCart');
  if ($cartTotal.length > 0) {
    $cartTotal.html(cart.ValueFormatted);
  }
}

// jQuery plugin to prevent double submission of forms
jQuery.fn.preventDoubleSubmission = function () {
  $(this).on('submit', function (e) {
    var $form = $(this);

    if ($form.data('submitted') === true) {
      e.preventDefault();
    } else {
      if ($form.valid()) {
        $form.data('submitted', true);
      }
    }
  });
  return this;
};

$('form').preventDoubleSubmission();
var webShopApp = angular.module('webShopApp', ['angular.filter', 'kendo.directives', 'ngSanitize', 'angular-ladda'])
{
};

webShopApp.config(['$httpProvider', function ($httpProvider) {
  $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';

  if (!$httpProvider.defaults.headers.get) {
    $httpProvider.defaults.headers.get = {};
  }
  $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
  $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
}]);


webShopApp.factory('focus', function ($timeout) {
  return function (id) {
    $timeout(function () {
      var element = document.getElementById(id);
      if (element)
        element.focus();
    });
  };
});

webShopApp.directive('focus',	function (focus) {
	return {
	    scope: {
	      trigger: '@focus'
	    },
	    link: function (scope, element) {
	      scope.$watch('trigger', function (value) {
	        if (value === "true") {
	          focus(element[0].id);
	        }
	      });
	    }
	  };
	}
);

webShopApp.directive("ngOnload", function() {
  return {
    restrict: "A",
    scope: {
      callback: "&ngOnload"
    },
    link: function(scope, element, attrs) {
      var location = element.length > 0 && element[0].contentWindow ?
        element[0].contentWindow.location : undefined;

      // hooking up the onload event - calling the callback on load event
      element.on("load", function() {
        scope.callback({
          contentLocation: location
        });
      });
    }
  }
});


  webShopApp.directive('dynamic', function ($compile) {
  return {
    replace: false,
    link: function (scope, ele, attrs) {
      scope.$watch(attrs.dynamic, function (html) {
        ele.html(html);

        var elementToValidate = $(ele);
        elementToValidate.removeData("validator");
        $.validator.unobtrusive.parse(elementToValidate);

        $compile(ele.contents())(scope);
      });
    }
  };
});
webShopApp.factory('CartService', ['$rootScope', '$http', '$q', function ($rootScope, $http, $q) {
  var cartService = {};

  cartService.currentCart = {
    ArticlesInCartGrouped: [],
    ArticlesInCartAmount: 0,
    CartSum: 0
  };

  cartService.setCurrentCart = function (cart) {
    this.currentCart = cart;
    //console.log("CartService setCart: " + JSON.stringify(this.currentCart));
    this.broadcastCartChanged();
  };

  cartService.getCurrentCart = function () {
    return this.currentCart;
  };

  cartService.broadcastCartChanged = function () {
    $rootScope.$broadcast('handleCartChanged');
  };

  cartService.alterArticleAmount = function (articleInternalId, newValue) {
    var deferredObject = $q.defer();

    $http.post(
        faireventAlias + "/Shop/_UpdateArticleAmount",
        { article: { ArticleInternalId: articleInternalId }, amount: newValue }
    ).then(
      function (response) {
        deferredObject.resolve({ success: true, data: response.data });
      },
      function () {
        deferredObject.resolve({ success: false });
      }
    );

    return deferredObject.promise;
  }

  cartService.releaseTicketReservation = function (ticketInternalId, reservationGuid) {
    var deferredObject = $q.defer();

    $http.post(
        faireventAlias + "/Shop/ReleaseTicketReservation",
        { ticketInternalId: ticketInternalId, reservationGuid: reservationGuid }
    ).then(
      function (response) {
        deferredObject.resolve({ success: true, data: response.data });
      },
      function () {
        deferredObject.resolve({ success: false });
      }
    );

    return deferredObject.promise;
  }

  cartService.hasArticles = function () {
    return this.currentCart.ArticlesInCartAmount > 0;
  }

  cartService.hasArticlesForSale = function () {
    return $.grep(this.currentCart.ArticlesInCartGrouped, function (x) { return x != null && x.GrossPriceWithSubArticles > 0; }).length > 0;
  };

  cartService.showExpressCheckoutButtons = function () {
    return this.hasArticlesForSale() && $.grep(this.currentCart.ArticlesInCartGrouped, function (x) { return x != null && x.SellingRequiresLegitimation > 0; }).length === 0;
  }

  cartService.hasArticlesFreeOfCharge = function () {
    return $.grep(this.currentCart.ArticlesInCartGrouped, function (x) { return x != null && x.GrossPriceWithSubArticles === 0; }).length > 0;
  };

  cartService.hasArticle = function (articleInternalId) {
    return $.grep(this.currentCart.ArticlesInCartGrouped, function (x) { return x != null && x.ArticleInternalId === articleInternalId && x.Amount > 0; }).length > 0;
  };

  return cartService;
}]);
webShopApp.factory('LegitimationService', ['$http', function ($http) {
  var service = {};

  service.getLegitimations = function() {
    return $http.get(faireventAlias + '/Legitimation/GetLegitimations');
  };

  service.getDocumentContent = function (legitimationIdentifier, documentIdentifier) {

    var request = {
      method: 'GET',
      url: faireventAlias + '/Legitimation/GetDocumentContent',
      responseType: 'arraybuffer',
      headers: {
        'Content-Type': 'application/json; charset=utf-8',
      },
      params: { documentIdentifier: documentIdentifier, legitimationIdentifier: legitimationIdentifier }
    };

    return $http(request);
  };

  service.saveLegitimations = function (legitimation) {

    var postLegitimation = {};
    postLegitimation.Identifier = legitimation.Identifier;
    postLegitimation.Comment = legitimation.Comment;
    postLegitimation.Type = legitimation.Type;
    postLegitimation.LegitimationInternalId = legitimation.LegitimationInternalId;

    postLegitimation.LegitimationDocuments = [];
    $.each(legitimation.LegitimationDocuments, function (key, value) {
      postLegitimation.LegitimationDocuments.push(value);
    });

    var req = {
      method: 'POST',
      url: faireventAlias + '/Legitimation/SaveLegitimation',
      headers: {
        'Content-Type': "text/plain"
      },
      data: JSON.stringify(postLegitimation)
    };

    return $http(req);
  };


  service.uploadLegitimationDocument = function (legitimationIdentifier, document) {

    var postLegitimation = new Object();
    postLegitimation.Identifier = legitimationIdentifier;

    var postDocument = new Object();
    postDocument.Identifier = document.Identifier;
    postDocument.DocumentType = document.DocumentType;
    postDocument.FileExtension = document.Name.split(".").pop();
    postDocument.Name = document.Name;
    postDocument.Size = document.Size;
    postDocument.LegitimationType = 0;

    var req = {
      method: 'POST',
      url: faireventAlias + '/Legitimation/UploadLegitimationDocument',
      headers: {
        'Content-Type': undefined
      },
      transformRequest: function (data) {
        var formData = new FormData();
        formData.append("legitimationIdentifier", data.Identifier);
        formData.append("document", angular.toJson(data.Document));
        formData.append("file", data.File);
        return formData;
      },
      data: { Identifier: legitimationIdentifier, Document: postDocument, File: document.RawFile }
    };

    return $http(req);
  };

  service.deleteLegitimationDocument = function (legitimationIdentifier, documentIdentifier) {

    var req = {
      method: 'POST',
      url: faireventAlias + '/Legitimation/DeleteLegitimationDocument',
      params: {
        legitimationIdentifier: legitimationIdentifier,
        documentIdentifier: documentIdentifier
      }
    };

    return $http(req);
  };

  service.addFaxDocument = function (legitimationIdentifier) {
    var req = {
      method: 'POST',
      url: faireventAlias + '/Legitimation/AddFaxDocument',
      params: {
        legitimationIdentifier: legitimationIdentifier,
      }
    };
    return $http(req);
  };

  return service;
}]);
webShopApp.factory('PersonalizationService', ['$http', '$q', function ($http, $q) {
  var personalizationService = {};

  personalizationService.getAvailableTicketOwners = function () {
    var deferredObject = $q.defer();

    $http({
      method: "get",
      url: faireventAlias + '/Shop/GetAvailableTicketOwners'
    }).then(
      function (response) {
        deferredObject.resolve(response.data);
      },
      function () {
        //deferredObject.resolve({ ReservationResult: { ResultCode: -99 } });
      }
    );

    return deferredObject.promise;
  }

  personalizationService.getTicketPersonalizationForm = function (ticketIdentifier) {
    var deferredObject = $q.defer();

    $http({
      method: "get",
      url: faireventAlias + '/Shop/PersonalizationPartialForm',
      params: {
        registrationIdentifier: ticketIdentifier
      }
    }).then(
    function (response) {
      deferredObject.resolve(response.data);
    },
    function () {
      //deferredObject.resolve({ ReservationResult: { ResultCode: -99 } });
    });

    return deferredObject.promise;
  }

  personalizationService.getTicketPersonalizationFormForEdit = function (ticketIdentifier, registerForBuyer, ticketOwnerIdentifier) {
    var deferredObject = $q.defer();

    $http({
      method: "get",
      url: faireventAlias + '/Shop/PersonalizationPartialFormForEdit',
      params: {
        registrationIdentifier: ticketIdentifier,
        registerForBuyer: registerForBuyer,
        ticketOwnerIdentifier: ticketOwnerIdentifier
      }
    }).then(
    function (response) {
      deferredObject.resolve(response.data);
    });

    return deferredObject.promise;
  }

  personalizationService.personalizeTicketForPerson = function (personData) {
    var deferredObject = $q.defer();

    $.ajax({
      method: "post",
      url: faireventAlias + '/Shop/_RegisterTicketForPerson',
      data: personData,
      contentType: false,
      processData: false
    }).then(
      function (response) {
        deferredObject.resolve(response);
      },
      function () {
        //deferredObject.resolve({ ReservationResult: { ResultCode: -99 } });
      });

    return deferredObject.promise;
  }

  return personalizationService;
}]);
webShopApp.factory('RegistrationService', ['$http', '$q', function ($http, $q) {
  var registrationService = {};

  registrationService.checkAndReserveTicket = function (ticketCode, confirmReservation) {
    var deferredObject = $q.defer();

    $http({
      method: "post",
      url: faireventAlias + '/Shop/CheckAndReserveTicket',
      params: { ticketCode: ticketCode, confirmReservation: confirmReservation }
    }).then(
      function (response) {
        deferredObject.resolve(response.data);
    },
    function () {
      deferredObject.resolve({ ReservationResult: { ResultCode: -99 } });
    });

    return deferredObject.promise;
  }

  registrationService.getArticlesLinkBox = function (articleId) {
    var deferredObject = $q.defer();

    $http({
      method: "get",
      url: faireventAlias + '/Shop/_ArticlesLinkBox',
      params: { articleId: articleId }
    }).then(
      function (response) {
        deferredObject.resolve(response.data);
      },
      function () {
        deferredObject.resolve('');
      });

    return deferredObject.promise;
  }

  return registrationService;
}]);
webShopApp.controller('CartController', ['$scope', 'CartService', function ($scope, CartService) {
  $scope.Form = {
    cart: [],
    IsRequestInProgess: false
  }

  var init = function() {
    if ($scope.cart) {
      CartService.setCurrentCart($scope.cart);
    }
  };

  $scope.$watch('$viewContentLoaded', function() {
    init();
  });

  $scope.$on('handleCartChanged', function() {
    $scope.Form.cart = CartService.getCurrentCart();
  });

  $scope.hasArticlesForSale = function() {
    return CartService.hasArticlesForSale();
  };

  $scope.showExpressCheckoutButtons = function () {
    return CartService.showExpressCheckoutButtons();
  };

  $scope.hasArticlesFreeOfCharge = function() {
    return CartService.hasArticlesFreeOfCharge();
  };

  $scope.hasArticles = function() {
    return CartService.hasArticles();
  };

  $scope.hasArticle = function (articleInternalId) {
    return CartService.hasArticle(articleInternalId);
  };

  $scope.toggleGroup = function (groupid) {
    $('div[data-group-id="' + groupid + '"]').slideToggle(300);
    $('span[data-group-caret="' + groupid + '"] .fa').toggleClass("fa-caret-up fa-caret-down");
  };

  $scope.changeAmount = function(event, field, articleId, delta, deleterow) {
    /// <summary>
    /// Ändert den Warenkorb in der Artikelauswahl und im Warenkorb.
    /// Entweder mit der Direkteingabe in "field" oder mit "+"- und "-"-Button
    /// Bei jeder Änderung wird ein AJAX-Request durchgeführt, der den Warenkorb aktualisiert.
    /// Beim Response werden die Felder Anzahl, Gesamtpreis jedes Artikels, die Gesamtbeträge und die Gesamtanzahl
    /// in den jeweiligen HTML-Elementen aktualisiert.
    /// Mit deletrow = true wir eine komplette Zeile aus dem DOM gelöscht, wenn die Anzahl des Artikels gleich 0 ist und das Confirm mit
    /// "OK" bestätigt wurde.
    /// </summary>
    /// 
    /// <param name="event">gibt das ausgelöste Event zurück -> "click" bei den Buttons und "change" bei der Direkteingabe in "field"</param>
    /// <param name="field">Input-Feld für die Artikelanzahl</param>
    /// <param name="articleId">ArticleInternalId des Items</param>
    /// <param name="delta">Summand / Neuer Wert zur Artikelanzahl</param>
    /// <param name="deleterow">True / False -> gibt an, ob die ganze Zeile gelöscht werden soll (Warenkorb) vorher öffnet sich ein Confirm</param>
    /// <param name="msg">Text der im Confirm angezeigt werden soll.</param>

    var delay = (function() {
      var timer = 0;
      return function(callback, ms) {
        clearTimeout(timer);
        timer = setTimeout(callback, ms);
      };
    })();

    if (event.type == 'keyup') {
      delayTimer = 800;
    } else {
      delayTimer = 0;
    }

    delay(function() {

      if ($scope.Form.IsRequestInProgess) {
        return;
      }

      // Vars
      var input = document.getElementById(field),
          articleTotal = document.getElementById('Total_' + articleId), // Gesamtbetrag der einzelnen Artikel
          row = document.getElementById('RowArticle_' + articleId),     // Identifier für die gesamte Zeile
          sendAjax = false,                                             // Bei true wird der AJAX-Request ausgeführt
          prevValue = $(input).attr('data-prev'),                       // Wert vor Änderung
          confirmRemove = false,                                        // kommt nur in Verbindung mit deleterow=true zum tragen
          newValue;                                                     // neue Anzahl des Artikels

      // überprüfen ob der Wert der eingegeben ist ein String oder eine Number ist
      // neue Anzahl des Artikels berechnen
      var reg = new RegExp('^[0-9]+$');
    inputValue = 0;

    switch(input.type)
    {
      case 'checkbox':
        inputValue = input.checked ? 1 : 0;
        break;

      case 'radio':
        inputValue = input.checked && prevValue == 0 ? 1 : 0;
        if (inputValue === 0) {
          input.checked = false;
          $(input).attr('data-prev', 0);
        }
        break;

      default:
    inputValue = input.value == '' ? 0 : parseInt(input.value);
        (event.preventDefault) ? event.preventDefault() : event.returnValue = false;
        break;
    }

    if (typeof showArticleInfos === "function") {
      if ($('#showArticleInfos').is(':visible')) {
        $('#showArticleInfos').data("kendoWindow").close();
      }
    }

      if (event.type == 'keyup') {
        if (isNaN(input.value) == false && reg.test(input.value)) {
          if (inputValue > $(input).attr('max')) {
            newValue = $(input).attr('max');
          } else {
            newValue = inputValue;
          }
        } else {
          $(input).val($(input).attr('data-prev'));
          return;
        }
      } else {
        newValue = inputValue + delta
      }

      if (newValue <= 0) {
        newValue = 0;
      }
      sendAjax = true;

      // keinen AJAX-Request auslösen
      if (prevValue == 0 && newValue == 0) sendAjax = false;

      if (newValue > $(input).attr('max')) {
        newValue = $(input).attr('max');
        return;
      }

      if (sendAjax) {
        $scope.Form.IsRequestInProgess = true;
      $scope.articleId = articleId;

        if (articleTotal) {
        articleTotal.innerHTML = '<i class="fa fa-spinner fa-spin fa-fw fa-lg"></i>';
      }
        var result = CartService.alterArticleAmount(articleId, newValue);
        result.then(function (result) {

          if (confirmRemove) {
            $(row).remove();
          }
          $.each(result.data.Cart.AvailableArticlesGrouped, function (i, val) {
            if (val.ArticleInternalId == articleId) {
              input.value = val.Amount;

              if (input.value == 1 && input.type == 'radio') {
                allRadionsInGroup = $('input[name=' + input.name + ']').not('#' + input.id);
                allRadionsInGroup.prop("checked", false);
                allRadionsInGroup.prop("value", 0);
                allRadionsInGroup.attr('data-prev', 0);
              }

              if (input.value == 0 && input.type == 'checkbox') {
                allRadionsInGroup = $('#' + input.id);
                allRadionsInGroup.prop("checked", false);
                allRadionsInGroup.prop("value", 0);
                allRadionsInGroup.attr('data-prev', 0);
              }

              $(input).attr('data-prev', val.Amount);
              // Gesamtpreis Artikel ändern
              if (articleTotal) {
                articleTotal.innerHTML = val.GrossPriceSumFormatted;
              }
              $('#articlePriceDetails_' + val.ArticleInternalId).html('');
              $('#remainingTicketCountNumber_' + val.ArticleInternalId).html(Math.min(val.RemainingTicketCount, val.AttributeTicketCount));
              var amountDecrementAvailable = val.QuantityLimitPerSale == null || val.QuantityMinimumPerSale == null || val.QuantityMinimumPerSale !== val.QuantityLimitPerSale;
              $('[data-role="articleDec"]', $(row)).toggle(amountDecrementAvailable);
              $('[data-role="articleStopDec"]', $(row)).toggle(!amountDecrementAvailable);


              // Überprüfe ob der Voucher des zu entfernenen Artikels ein 1:1 Voucher ist und bei einem anderen Artikel im Warenkorb angewendet bzw. geblockt wurde
              var uniqueVoucherCodeIsUsedInCart = false;
              if (val.Voucher != null && val.Voucher.VoucherCodeModel == 1) {
                uniqueVoucherCodeIsUsedInCart = result.data.Cart.AvailableArticlesGrouped.reduce((isUsed, article) => isUsed || (article.Voucher != null && article.Voucher.VoucherCode == val.Voucher.VoucherCode && article.Amount > 0), false);
              }

              if (val.Voucher && val.Amount == 0 && val.GrossPrice !== val.GrossPriceOriginal && uniqueVoucherCodeIsUsedInCart == false) {
                for (const article of result.data.Cart.AvailableArticlesGrouped) {
                  if (article.Voucher != null && article.Voucher.VoucherCode == val.Voucher.VoucherCode) {
                    $('#Single_' + article.ArticleInternalId).addClass('originalPrice');
                    $('#SingleReduced_' + article.ArticleInternalId).show();

                    const $parentOfSinglePriceText = $('#Single_' + article.ArticleInternalId).parent();
                    if ($parentOfSinglePriceText.find('#SingleReduced_' + article.ArticleInternalId).length == 0) {
                      $parentOfSinglePriceText.html('<h3 id="Single_' + article.ArticleInternalId + '" class="originalPrice">' + article.GrossPriceOriginalFormatted + '</h3> <h3 id="SingleReduced_' + article.ArticleInternalId + '" class="reducedPrice">' + article.GrossPriceFormatted + '</h3>');
                    }
                  }
                }               
              }

              vcount = 1;
              count = 0;
              voucherTemp = '';
              articleTemp = '';

              $.each(val.Articles, function (key, value) {                
                if (value.Amount == 0 || value.Voucher !== null && value.GrossPrice === value.GrossPriceOriginal) {
                  return true;
                }
                if (value.Voucher && value.Voucher.VoucherCodeModel == 1) {
                  
                  voucherTemp = '<div>' + value.Voucher.VoucherCode + ' - ' + vcount + ' x ' + value.GrossPriceFormatted + ' </div>';
                  vcount++;

                  for (const article of result.data.Cart.AvailableArticlesGrouped) {
                    if (article.Voucher != null && article.Voucher.VoucherCode == value.Voucher.VoucherCode) {
                      $('#Single_' + article.ArticleInternalId).removeClass('originalPrice');
                      $('#SingleReduced_' + article.ArticleInternalId).hide();
                    }
                  }                  
                }
                if (vcount > 1 && value.Voucher == null) {
                  articleTemp = '<div>' + count + ' x ' + value.GrossPriceFormatted + ' </div>';
                }

                $('#articlePriceDetails_' + value.ArticleInternalId).html(voucherTemp + articleTemp)
                $('#articlePriceDetails_' + value.ArticleInternalId).show();
                count++;
              });
            } else {
              $('#Amount_' + val.ArticleInternalId).val(val.Amount);
            }
          });


          if ($('[ng-controller="CartController"]').length != 1) {
            if (result.data.error) {
              $('.wrapError').slideDown(200).find('.alert').html(result.data.error);
              $('.validation-summary-errors:visible').remove();
            } else {
              $('.wrapError').slideUp(100);
            }
          }

          // Gesamtbetrag ändern
          $scope.updateCartDisplayAmount(result);

          if (event.type == 'keyup') {
            input.select();
          }

        if (newValue > prevValue && typeof showArticleInfos === "function") {
          var errorTemplate = showArticleInfos(result.data.Cart.AvailableArticlesGrouped, $('#ContentChooseArticles'));

          if (typeof errorTemplate !== "undefined") {
            if ($('#showArticleInfos').length == 0) {
              $('#ContentChooseArticles').prepend('<div id="showArticleInfos"></div>');
            }
            $('#showArticleInfos').html(errorTemplate);

            
            $('#showArticleInfos').kendoWindow({
              width: "480px",
              title: ($('#languageSwitch').attr('lang') == 'de' ? 'Warnung' : 'Warning'),
              resizable: false,
              draggable: false,
              visible: false,
              actions: [
                "Close"
              ]
            }).data("kendoWindow").center().open().pin();
            $('#showArticleInfos').closest('.k-window').addClass('leistungenWarning')
          }
        }
          $scope.Form.IsRequestInProgess = false;
          $scope.articleId = false;

          if (result.data.error) {
            $('[data-role="articleStopInc"]', $(row)).find("i").attr("title", result.data.error);
            $scope.DisplayOneTimeMessage(input, result.data.error);
          }

          if (typeof dataLayer !== 'undefined') {
            try {
              ADI.Tracking.writeCartEventDataLayer(result.data.Cart, result.data.removedArticles, articleId, parseInt(prevValue));
            }
            catch (err) {
              console.log(err);
            }
          }
        });
      }
    }, delayTimer);

  };

  $scope.DisplayOneTimeMessage = function (elem, message) {
    var target = $(elem);

    if (!target.length || !message)
      return;

    // Calculate display duration based on the message length
    var duration = message.length * 70;
    if (duration < 1500) {
      duration = 1500;
    }

    if (!target.attr("data-hasMessage")) {  //ignore if already shown.
      target.attr("data-hasMessage", 1)
        .popover({
          trigger: "focus",
          placement: "top",
          container: 'body'
        })
        .popover("enable")
        .data('bs.popover').options.content = message;

      target.popover('show')
        .on('hidden.bs.popover', function () {
          target.popover('disable')
            .removeAttr("data-hasMessage");
        })
        .focus();
      
      setTimeout(function () {
        $(target).popover('hide');
      }, duration);
    }
  };

  $scope.updateCartDisplayAmount = function(result){
    var cartTotal = document.getElementById('TotalPriceCart');
    if (cartTotal) {
      cartTotal.innerHTML = result.data.Cart.ValueFormatted;
    }

    CartService.setCurrentCart(result.data.Cart);
    $scope.Form.cart = result.data.Cart;
  };

  $scope.isMaxLimitReached = function (articleId) {
    if (!$scope.Form.cart)
      return false;

    var availableArticle = _.find($scope.Form.cart.AvailableArticlesGrouped, function (elem) { return elem.ArticleInternalId == articleId });
    var cartArticle = _.find($scope.Form.cart.ArticlesInCartGrouped, function (elem) { return elem.ArticleInternalId == articleId });
    return availableArticle.QuantityLimitReached && !cartArticle;
  }

  $scope.releaseTicketReservation = function (ticketInternalId, reservationGuid, articleInternalId) {
    if ($scope.Form.IsRequestInProgess) {
      return;
    }

    $scope.Form.IsRequestInProgess = true;
    $scope.Form.EditedTicketInternalId = ticketInternalId;
    var result = CartService.releaseTicketReservation(ticketInternalId, reservationGuid);
    result.then(function (result) {
      CartService.setCurrentCart(result.data.Cart);
      $('#reservationCode_' + ticketInternalId).remove();
      $scope.Form.IsRequestInProgess = false;
      $scope.Form.EditedTicketInternalId = null;

      var articlesRow = _.find(result.data.Cart.ArticlesInCartGrouped, function (row) {
        return row.ArticleInternalId === articleInternalId;
      });

      if (articlesRow && articlesRow.GrossPrice !== 0) {
        $("#Total_" + articlesRow.ArticleInternalId).html(articlesRow.GrossPriceSumFormatted);        
      }

      if (result.data.Cart.ArticlesInCartAmount !== 0) {
        $scope.updateCartDisplayAmount(result);
      }
    });
  };

  $scope.isReservationInEdit = function (ticketInternalId) {
    return $scope.Form.IsRequestInProgess && $scope.Form.EditedTicketInternalId == ticketInternalId;
  }
}]);
webShopApp.controller('CartPreviewController', ['$scope', 'CartService', function ($scope, CartService) {
  var init = function () {
    if ($scope.cart) {
      CartService.setCurrentCart($scope.cart);
    }
  };

  var toggleDropDown = function () {
    var dropwDownToggle = $('a[data-toggle="dropdown"]', '.wrapShoppingCart');
    var dropwDownToggleParent = dropwDownToggle.parent('div');
    if ($scope.cart.ArticlesInCartAmount > 0) {
      var isOpen = dropwDownToggleParent.hasClass('open');
      if (isOpen == false) {
        dropwDownToggle.click();
      }
    } else {
      dropwDownToggleParent.removeClass('open');
    }
  }

  $scope.$watch('$viewContentLoaded', function () {
    init();
  });

  $scope.$on('handleCartChanged', function () {
    $scope.cart = CartService.getCurrentCart();
    //toggleDropDown();
  });

  $scope.showExpressCheckoutButtons = function () {
    return CartService.showExpressCheckoutButtons();
  };

  $scope.hasArticlesForSale = function () {
    return CartService.hasArticlesForSale();
  };
}]);
webShopApp.controller('LegitimationController', ['$scope', '$sce', '$timeout', 'LegitimationService', function ($scope, $sce, $timeout, LegitimationService) {
  var defaultData = {
    currentLegitimation: null,
    legitimations: [],
    IsRequestInProgess: false,
    UploadProgress: null,
    DocumentStatus: null,
    documentTypes: [],
    currentError: '',
    fileExtensions: '',
    maxDocumentCounts: [],
    showLegitimationChoice: false,
    reusableLegitimationCategories: 0,
  };

  $scope.uploadConfig = {
    //showFileList: false
  }

  $scope.form = defaultData;

  var selectFirstOpenLegitimation = function () {
    $scope.selectLegitimation($.grep($scope.form.legitimations, function (t, i) {
      return (!t.IsComplete);
    })[0]);
  };

  var findDocumentId = function (input, identifer) {
    var i = 0, len = input.length;
    for (; i < len; i++) {
      if (input[i].Identifier === identifer) {
        return i;
      }
    }
    return null;
  }

  var findDocument = function (input, identifer) {
    var i = 0, len = input.length;
    for (; i < len; i++) {
      if (input[i].Identifier === identifer) {
        return input[i];
      }
    }
    return null;
  }

  var getEmptyDocument = function () {
    return {
      Name: null,
      Size: null,
      Type: null,
      DocumentType: null,
      Error: null,
      Identifier: null,
      RawFile: null,
      UploadProgress: null,
      IsComplete: false,
      IsUploadComplete: false,
      LegitimationType: 0
    }
  };

  var loadLegitimations = function () {
    LegitimationService.getLegitimations().then(function (response) {
      if (response === "") {
        return;
      }

      $scope.form.legitimations = response.data;
      selectFirstOpenLegitimation();
    }, function (error) {
      console.log(error);
    });
  };

  var getUploadProgressValue = function () {
    var total = 0;
    var incompleteDocuments = $.grep($scope.form.currentLegitimation.LegitimationDocuments, function (d, i) { return !d.IsUploadComplete || d.UploadProgress != null; });

    $.each(incompleteDocuments, function () {
      total += this.UploadProgress;
    });
    return Math.floor(total / incompleteDocuments.length);
  };

  var isValidFileExtension = function (fileExtension) {
    return $.grep($scope.form.fileExtensions, function (t, i) {
      return (t.toUpperCase() === fileExtension.toUpperCase());
    }).length > 0;
  };

  var setDocumentStatus = function (type, text) {
    $scope.form.DocumentStatus = {};
    $scope.form.DocumentStatus.Type = type;

    var errorText = $.grep($scope.form.errorMessages, function (t, i) {
      return (t.Key === text)
    });

    if (errorText.length > 0) {
      $scope.form.DocumentStatus.Text = errorText[0].Text;
    } else {
      $scope.form.DocumentStatus.Text = text;
    }
  };

  var saveLegitimation = function (selectNext) {
    var legitimation = $scope.form.currentLegitimation;
    LegitimationService.saveLegitimations(legitimation).then(function (response) {

      if (response.data.Legitimation) {
        setLegitimation(response.data.Legitimation);
      }

      $scope.form.IsRequestInProgess = false;
      if (selectNext) {
        selectFirstOpenLegitimation();
      }
    }, function (error) {
      $scope.form.IsRequestInProgess = false;
      setDocumentStatus("error", error.statusText);
    });
  };

  var setLegitimation = function (legitimation) {
    $scope.form.currentLegitimation = legitimation;
    $.each($scope.form.legitimations, function (i, legitimationInList) {
      if (legitimationInList.Identifier === legitimation.Identifier) {
        $scope.form.legitimations[i] = legitimation;
      }
    });
  }

  var removeDocumentLocal = function (documentIdentifier) {
    document = findDocument(documentIdentifier);
    if (document) {
      var index = findDocumentId($scope.form.currentLegitimation.LegitimationDocuments, documentIdentifier);
      if (index != -1) {
        $scope.form.currentLegitimation.LegitimationDocuments.splice(index, 1);
        if ($scope.form.currentLegitimation.LegitimationDocuments.length == 0) {
          $scope.form.currentLegitimation.IsComplete = false;
        }
      }
    }
  };

  var initFormValidation = function () {
    var elementToValidate = $('#legitimationForm');
    if (elementToValidate) {
      elementToValidate.removeData("validator");
      $.validator.unobtrusive.parse(elementToValidate);
    }
  };

  $scope.init = function (initData) {
    $scope.form.fileExtensions = initData.AllowedFileExtensions;
    $scope.form.documentTypes = initData.DocumentTypes;
    $scope.form.errorMessages = initData.ErrorMessages;
    $scope.form.reusableLegitimationCategories = initData.ReusableLegitimationCategories;
    $scope.form.categoryInfoTexts = initData.CategoryInfoTexts;
    $scope.form.maxDocumentCounts = initData.MaxDocumentCounts;
    loadLegitimations();

    $timeout(function (e) {
      initFormValidation();
    }, 0);
  };

  /* Documents */
  $scope.onSelectFile = function (e) {
    $scope.form.DocumentStatus = null;

    for (var i = 0; i < e.files.length; i++) {
      var file = e.files[i];

      var documents = $scope.form.currentLegitimation.LegitimationDocuments;

      // Eindeutigkeit von Dateien
      var fileAlreadInList = $.grep(documents, function (t, i) {
        return (documents[i].Name === file.name && documents[i].Size == file.size);
      }).length > 0;
      if (fileAlreadInList) {
        setDocumentStatus("error", "FileAlreadyInListError");
        e.preventDefault();
        $scope.$apply();
        return;
      }

      //Dateiendung
      if (!isValidFileExtension(file.extension)) {
        setDocumentStatus("error", "FileExtensionError");
        e.preventDefault();
        $scope.$apply();
        return;
      }

      // Dateigröße
      if (file.size > 5242880) {
        setDocumentStatus("error", "FileSizeError");
        e.preventDefault();
        $scope.$apply();
        return;
      }

      if (file.size == 0 || file.size == null) {
        setDocumentStatus("error", "FileSizeErrorEmpty");
        e.preventDefault();
        $scope.$apply();
        return;
      }

      var document = findDocument(documents, file.uid);
      if (!document) {
        var document = findDocument(documents, e.sender.element.attr('data-document-identifier'));
        document.Identifier = file.uid;
      }

      if (document == null) {
        document = getEmptyDocument();
        document.Identifier = file.uid;
        $scope.form.currentLegitimation.LegitimationDocuments.push(document);
      }

      document.Size = file.size;
      document.FileExtension = file.extension;
      document.Name = file.name;

      $scope.form.currentLegitimation.IsComplete = false;
    }

    if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest') {
      $scope.$apply();
    }

    setTimeout(function () {
      $scope.saveLegitimation();
    }, 0)
  }

  $scope.addNewDocument = function (e) {
    var document = getEmptyDocument();
    //Generate Guid
    document.Identifier = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
      var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
      return v.toString(16);
    });

    $scope.form.currentLegitimation.LegitimationDocuments.push(document);

    if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest') {
      $scope.$apply();
    }

    initFormValidation();
  }

  $scope.onRemoveFile = function (e) {
    var document = findDocument($scope.form.currentLegitimation.LegitimationDocuments, e.files[0].uid);
    if (!document) {
      e.preventDefault();
      return;
    }

    if (!document.IsComplete) {
      removeDocumentLocal(e.files[0].uid);
      $scope.form.IsRequestInProgess = false;
      $scope.form.DocumentStatus = null;
    }

    e.data = {};
    e.data["legitimationIdentifier"] = $scope.form.currentLegitimation.Identifier;
    e.data["documentIdentifier"] = e.files[0].uid;
  }

  $scope.onUpload = function (e) {
    $scope.form.UploadProgress = null;
    $scope.form.IsRequestInProgess = true;
    $scope.form.DocumentStatus = null;
    var document = findDocument($scope.form.currentLegitimation.LegitimationDocuments, e.files[0].uid);
    if (!document) {
      e.preventDefault();
      return;
    }
    e.data = {};
    e.data["legitimationIdentifier"] = $scope.form.currentLegitimation.Identifier;
    e.data["document"] = JSON.stringify(document);
  }

  $scope.onSuccess = function (e) {
    if (e.operation == "upload") {
      var document = findDocument($scope.form.currentLegitimation.LegitimationDocuments, e.files[0].uid);
      if (document) {
        document.IsComplete = true;
        document.IsUploadComplete = true;
      }
    }

    if (e.operation == "remove") {
      if (e.response.Legitimation) {
        $scope.form.currentLegitimation.IsComplete = e.response.Legitimation.IsComplete && $scope.documentsAreComplete();
        $.each($scope.form.legitimations, function (i, legitimationInList) {
          if (legitimationInList.Identifier === legitimation.Identifier) {
            $scope.form.legitimations[i].IsComplete = $scope.form.currentLegitimation.IsComplete;
          }
        });

        if (e.response.DeletedDocumentIdentifier) {
          removeDocumentLocal(e.response.DeletedDocumentIdentifier);
        }
      }

      $scope.form.IsRequestInProgess = false;
    }

    if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest') {
      $scope.$apply();
    }
  }

  $scope.onError = function (e) {
    if (e.operation == "upload") {
      setDocumentStatus("error", "Upload error  " + e.files[0].name + ': ' + e.XMLHttpRequest.statusText);
      if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest') {
        $scope.$apply();
      }
    }
  }

  $scope.onComplete = function (e) {
    $timeout(function () {
      $scope.form.UploadProgress = null;
      $scope.form.IsRequestInProgess = false;

      $.each($scope.form.currentLegitimation.LegitimationDocuments, function () {
        this.UploadProgress = null;
      });

      if ($scope.documentsAreComplete($scope.form.currentLegitimation)) {
        saveLegitimation(false);
      }
    }, 0);
  }

  $scope.onProgress = function (e) {
    $timeout(function () {
      var documentId = e.files[0].uid;
      var document = findDocument($scope.form.currentLegitimation.LegitimationDocuments, documentId);
      if (document) {
        document.UploadProgress = e.percentComplete;
      }

      $scope.form.UploadProgress = getUploadProgressValue();
    }, 0);
  }

  $scope.onCancel = function (e) {
    $scope.form.IsRequestInProgess = false;
    $scope.form.UploadProgress = null;
    setDocumentStatus("error", "Upload canceled");
    if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest') {
      $scope.$apply();
    }
  }

  $scope.cancelUpload = function (e) {
    if ($scope.form.IsRequestInProgess) {
      $(".k-upload-action").click();
    }
  }

  $scope.deleteDocument = function (documentIdentifier) {
    if ($scope.form.IsRequestInProgess) {
      return;
    }

    $scope.form.IsRequestInProgess = true;
    var deleteButton = $('.k-delete', '[data-uid="' + documentIdentifier + '"]');
    if (deleteButton && deleteButton.length == 1) {
      deleteButton.click();
    } else {
      LegitimationService.deleteLegitimationDocument($scope.form.currentLegitimation.Identifier, documentIdentifier).then(function (response) {
        var legitimation = response.data.Legitimation;
        if (legitimation) {
          $scope.form.currentLegitimation.IsComplete = response.data.Legitimation.IsComplete && $scope.documentsAreComplete();
          $.each($scope.form.legitimations, function (i, legitimationInList) {
            if (legitimationInList.Identifier === response.data.Legitimation.Identifier) {
              $scope.form.legitimations[i].IsComplete = $scope.form.currentLegitimation.IsComplete;
            }
          });

          if (response.data.DeletedDocumentIdentifier) {
            removeDocumentLocal(response.data.DeletedDocumentIdentifier);
          }
        }
        else {
          removeDocumentLocal(documentIdentifier);
        }
        $scope.form.IsRequestInProgess = false;
        $scope.form.UploadProgress = null;
        $scope.form.DocumentStatus = null;
      });
    }
  };

  $scope.addFaxDocument = function () {
    if (!$scope.canAddDocuments()) {
      return;
    }
    $scope.form.IsRequestInProgess = true;
    LegitimationService.addFaxDocument($scope.form.currentLegitimation.Identifier).then(function (response) {
      if (response.data.Document) {
        $scope.form.currentLegitimation.LegitimationDocuments.push(response.data.Document);
      }

      if (response.data.Legitimation) {
        $scope.form.currentLegitimation.IsComplete = response.data.Legitimation.IsComplete;
        $.each($scope.form.legitimations, function (i, legitimationInList) {
          if (legitimationInList.Identifier === response.data.Legitimation.Identifier) {
            $scope.form.legitimations[i].IsComplete = response.data.Legitimation.IsComplete;
          }
        });
      }

      $timeout(function () {
        initFormValidation();
        $scope.form.IsRequestInProgess = false;
      }, 0);
    });
  };

  $scope.documentsAreComplete = function () {
    legitimation = $scope.form.currentLegitimation;
    return legitimation && legitimation.LegitimationDocuments.length > 0 && $.grep(legitimation.LegitimationDocuments, function (t, i) {
      return (!t.IsComplete);
    }) == 0;
  };

  $scope.documentUploadsAreComplete = function () {
    legitimation = $scope.form.currentLegitimation;
    return legitimation && legitimation.LegitimationDocuments.length > 0 && $.grep(legitimation.LegitimationDocuments, function (t, i) {
      return (!t.IsUploadComplete);
    }) == 0;
  };

  $scope.isCommentTooLong = function() {
    legitimation = $scope.form.currentLegitimation;
    return !!legitimation.Comment && legitimation.Comment.length >= 500; //todo: limit should be defined elsewhere
  }

  $scope.canAddDocuments = function () {
    return !$scope.form.IsRequestInProgess
      && $scope.form.currentLegitimation
      && ($scope.form.maxDocumentCounts[$scope.form.currentLegitimation.Category] == undefined && $scope.form.currentLegitimation.LegitimationDocuments.length < 3
        || $scope.form.currentLegitimation.LegitimationDocuments.length < $scope.form.maxDocumentCounts[$scope.form.currentLegitimation.Category]);
  };

  $scope.getFormattedSize = function (document) {
    if (!document) {
      return;
    }
    return parseFloat(Math.ceil(document.Size / 1024)).toFixed(0).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " KB";
  };

  $scope.isUploadInProgess = function (document) {
    if (!document) {
      return $scope.form.IsRequestInProgess && $scope.form.UploadProgress != null && $scope.form.UploadProgress >= 0;
    }

    return !document.IsUploadComplete && document.UploadProgress != null && document.UploadProgress < 100;
  };

  /* Legitimations */
  $scope.selectLegitimation = function (legitimation) {
    if ($scope.form.IsRequestInProgess) {
      return;
    }
    
    $scope.form.DocumentStatus = null;
    $scope.form.currentLegitimation = legitimation;

    $scope.form.showLegitimationChoice =
      legitimation != undefined
      && legitimation.TicketOwner.IsBuyer
      && ($scope.form.reusableLegitimationCategories & legitimation.Category) === legitimation.Category
      && legitimation.LegitimationInternalId != undefined
      && (legitimation.LegitimationInternalId > 0 || legitimation.LegitimationDocuments == undefined || legitimation.LegitimationDocuments.length < 1);

    var maxDocInfo = $('#MaxDocCountInfo');
    if (maxDocInfo != undefined && legitimation != undefined) {
      maxDocInfo.html($scope.form.maxDocumentCounts[legitimation.Category]);
    }
  };

  $scope.isLegitimationComplete = function () {
    return $scope.form.legitimations.length > 0 && $.grep($scope.form.legitimations, function (t, i) {
      return (!t.IsComplete);
      }).length === 0
      && (!$scope.form.currentLegitimation || $scope.form.currentLegitimation.Status != null);
  };

  $scope.showFaxTemplateNotice = function () {
    if ($scope.form.legitimations.length < 1) {
      return false;
    }

    var isFax;
    $scope.form.legitimations.forEach(function(legitimations) {
      legitimations.LegitimationDocuments.forEach(function (document) {
        if (isFax)
          return;

        if (document.LegitimationType === 1) {
          isFax = true;
        }
      });
    });
   
    return isFax;
  };

  $scope.saveLegitimation = function () {
    if ($scope.form.IsRequestInProgess) {
      return;
    }

    initFormValidation();

    var $form = $('#legitimationForm');
    if (!$form.valid()) {
      var validator = $form.validate();
      for (var i = 0; i < validator.errorList.length; i++) {
        setDocumentStatus("error", validator.errorList[i].message);
      }
      return;
    }

    $timeout(function (e) {
      $scope.form.IsRequestInProgess = true;
    }, 0);

    if (!$scope.documentUploadsAreComplete($scope.form.currentLegitimation)) {
      $timeout(function (e) {
        $scope.form.UploadProgress = 0;
      }, 0);
      $(".k-upload-selected").click();
    }
    else {
      saveLegitimation(true);
    }
  };

  $scope.containsPersistedLegitimation = function (legitimations) {
    return !$scope.checkLegitimationStatus(legitimations, [null, undefined]);
  };

  $scope.containsNotPersistedLegitimation = function (legitimations) {
    return $scope.checkLegitimationStatus(legitimations, [null, undefined]);
  };

  $scope.containsPendingLegitimation = function (legitimations) {
    return $scope.checkLegitimationStatus(legitimations, [0]);
  };

  $scope.checkLegitimationStatus = function (legitimations, statusValues) {
    if (legitimations === undefined || legitimations.length === 0) {
      return false;
    }

    if (statusValues === undefined || statusValues.length === 0) {
      return false;
    }

    return legitimations.some(function (legitimation) {
      return ~statusValues.indexOf(legitimation.Status);
    });
  } 

  $scope.assignLegitimation = function (currentLegitimation, legitimationId) {
    if (currentLegitimation !== undefined && legitimationId !== undefined) {
      currentLegitimation.LegitimationInternalId = legitimationId;
    }

    if (legitimationId !== 0) {
      saveLegitimation(true);
    }
    else if ($scope.documentUploadsAreComplete()) {
      saveLegitimation(false);
    }
  };
  
  $scope.hasLegitimationInfoText = function (category) {
    var infotext = $scope.form.categoryInfoTexts[category];

    if (infotext != undefined && infotext != "") {
      return true;
    }

    return false;
  };

  $scope.getLegitimationInfoText = function (category) {
    document.getElementById("additionalInfo").innerHTML = $scope.form.categoryInfoTexts[category];
  };

  $scope.IsSelected = function (legitimationId){
    if (legitimationId == undefined || $scope.form.currentLegitimation == undefined) {
      return false;
    }

    if ($scope.form.currentLegitimation.LegitimationInternalId == legitimationId) {
      if (legitimationId != 0) {
        return true;
      }
      else if ($scope.form.currentLegitimation.LegitimationDocuments.length > 0) {
        return true;
      }
    }

    return false;
  }
}]);
webShopApp.controller('PaymentController', ['$scope', function ($scope) {

  var defaultData = {
    isLoaderVisible: true,
    sourceUri: '',
    messageCounter: 0
  };

  $scope.form = defaultData;

  $scope.onPaymentFrameLoaded = function (frame) {

    window.addEventListener("message", function (e) {
      if (e.data === 'iframe_change') {
        $scope.$apply(function () {
          $scope.form.isLoaderVisible = true;
        });
      }
      else if (e.data.message === "css") {
        if ($scope.form.messageCounter >= 1 && e.data.height > 0 || e.data.height > 500) {
          $("#paymentFrame").css("height", e.data.height + "px");
        }
        $scope.form.messageCounter++;
      }
      setTimeout(function () {
        $scope.$apply(function () {
          $scope.form.isLoaderVisible = false;
        });
      }, 300);
    }, false);

    if ($scope.form.sourceUri !== frame.src) {
      $scope.form.sourceUri = frame.src;
      $scope.$apply(function () {
        $scope.form.isLoaderVisible = false;
      });
    } else {
      $scope.$apply(function () {
        $scope.form.isLoaderVisible = true;
      });
    }
  };
}]);
webShopApp.controller('PersonalizationController', ['$scope', '$sce', '$timeout', 'PersonalizationService', function ($scope, $sce, $timeout, PersonalizationService) {

  var defaultData = {
    currentTicketFormHtml: null,
    currentTicket: null,
    tickets: [],
    ticketOwners: [],
    ticketOwnerChooserVisible: false,
    RequestsInProgress: 0,
    ThirdPersonInfoText: false,
    toggleInfoText: false,
    errorMessages: []
  }

  $scope.form = defaultData;

  var getSelectedIndex = function (panelbar) {
    var panelbarItem = panelbar.select();
    var index = panelbarItem.parentsUntil(".k-panelbar", ".k-item").map(function () {
      return $(this).index();
    }).get().reverse();
    index.push(panelbarItem.index());

    return index;
  }

  var selectFirstUnregisteredTicket = function () {
    $scope.selectTicket($.grep($scope.form.tickets, function (t, i) {
      return !$scope.isTicketRegistered(t);
    })[0]);
  }

  var getCurrentTicketPersonalizationForm = function () {
    $scope.form.RequestsInProgress++;
    var result = PersonalizationService.getTicketPersonalizationForm($scope.form.currentTicket.TicketRegistrationIdentifier);

    result.then(function (result) {
      $scope.form.currentTicketFormHtml = result;
      $scope.form.currentTicket.RegisterForBuyer = $(result).filter('#RegisterForBuyer').val() === "True";
      $scope.form.RequestsInProgress--;
      $scope.form.personalizationConfirmed = false;
      $timeout(function () {
        ADITUS.QuestionListConditions().Init();
        ADITUS.QuestionListsMaxSelections().Init();
        ADITUS.QuestionModifiers().Init();
      });
    });
  }

  var setCart = function (cart) {
    var wasPersonalizationComplete = $scope.isPersonalizationComplete();

    $scope.form.tickets = getPersonalizableTickets(cart.TicketRegistrations);
    $scope.form.ticketOwners = cart.AvailableTicketOwners;
    selectFirstUnregisteredTicket();

    if (!wasPersonalizationComplete && $scope.isPersonalizationComplete()) {
      $('#SubmitRegistrations').submit();
    }
  }

  var getPersonalizableTickets = function (ticketRegistrations) {
    return ticketRegistrations.filter(function (it) { return !it.IsPersonalizationDisabled });
  }

  var getCurrentTicketPersonalizationFormForEdit = function (ticketOwnerIdentifier) {
    $scope.form.RequestsInProgress++;
    var result = PersonalizationService.getTicketPersonalizationFormForEdit($scope.form.currentTicket.TicketRegistrationIdentifier, $scope.form.currentTicket.RegisterForBuyer, ticketOwnerIdentifier);

    result.then(function (result) {
      $scope.form.RequestsInProgress--;

      if (result.constructor === {}.constructor) {
        // Ticket wurde direkt einer Person zugeordnet, also ist das Result JSON
        if (result.Errors !== undefined) {
          updateValidationSummary(null, result);
          $scope.form.currentTicketFormHtml = null;

          if ($scope.form.currentTicket.RegisterForBuyer) {
            $scope.form.ticketOwnerChooserVisible = false;
          }
          return;
        }
        else {
          setCart(result);
        }
      } else {
        $scope.form.currentTicketFormHtml = result;
      }
      $scope.form.ticketOwnerChooserVisible = false;
      $timeout(function () {
        ADITUS.QuestionListConditions().Init();
        ADITUS.QuestionListsMaxSelections().Init();
        ADITUS.QuestionModifiers().Init();
      });
    });
  }

  var resetCurrentTicket = function () {
    $scope.form.currentTicket.RegisterForBuyer = null;
    $scope.form.currentTicketFormHtml = null;
    $scope.form.ticketOwnerChooserVisible = false;
    $scope.form.errorMessages = [];
  }

  var updateValidationSummary = function ($form, result) {
    if ($form !== null) {
      var validator = $form.data('validator');
      validator.settings.showErrors = function (map, errors) {
        this.defaultShowErrors();
        var $validationSummary = $('[data-valmsg-summary=true]');
        if ($validationSummary.length) {
          $validationSummary.empty();
          var listContainer = $("<ul/>");
          var append = false;
          $.each(result.Errors, function () {
            if (this.Key === null || this.Key.trim() === '') {
              let message = this.Error || this.ErrorMessage;
              $("<li/>").append(message).appendTo(listContainer);
              $scope.form.errorMessages.push(message);
              append = true;
            }
          });
          if (append) {
            $validationSummary.addClass("validation-summary-errors").removeClass("validation-summary-valid");

            listContainer.appendTo($validationSummary);
          }
        }
      }

      var errors = {};
      $.each(result.Errors, function () {
        this.Key = getTargetElementKey(this.Key);
        if (this.Key && $("[name='" + this.Key + "']").length > 0) {
          errors[this.Key] = this.Error || this.ErrorMessage;
        } else if (this.Key && parseInt(this.Key)) {
          const $option = $form.find("option[value='" + this.Key + "']").prop('disabled', true);
          var tskey = $option.closest('select').attr('name');
          errors[tskey] = this.Error || this.ErrorMessage;
        }
      });
      $form.validate().showErrors(errors);
    }
    else {
      $.each(result.Errors, function () {
        if (this.Key === null || this.Key.trim() === '') {
          $scope.form.errorMessages.push(this.Error || this.ErrorMessage);
        }
      });
    }
  }

  var getTargetElementKey = function (errorKey) {
    var key = errorKey.replace(/[\[\]\.]/g, "");
    if (!key) {
      return null;
    }

    try {
      if ($('#' + key).length > 0) {
        return key;
      }
    } catch (e) {
      console.log(e.name + ': ' + e.message);
    }

    // Removing extra characters for the first part of the error key.
    var preparedErrorKey = errorKey.replace(/\[.*?\]/g, function(match) {
      return match.replace(/[\[\]\.]/g, '');
    });

    const keyParts = preparedErrorKey.split('.');

    // Some keys may contain a field display name. In this case,
    // it is not possible to identify the related element on the HTML page.
    // We try to identify the element by the first two components of the key.
    // Assume that it will be the area and the name of the field in the table.
    if (keyParts.length > 2) {
      const combinedKey = keyParts.slice(0, 2).join('');

      if ($('#' + combinedKey).length > 0) {
        key = combinedKey;
      }
    }

    return key;
  }

  $scope.checkIfTicketRequiresTimeslotRegistration = function (ticket) {
    var article = $scope.form.articlesInCart.find(function(article) {
      return article.ArticleInternalId === ticket.ArticleInternalId;
    });

    return article ? ticket.TimeSlots.AreTimeSlotsActive && article.IsTimeslotRegistrationRequired : false
  }

  $scope.$watch('$viewContentLoaded', function () {
    $timeout(function () {
      selectFirstUnregisteredTicket();
      if ($scope.form.alterRegistration && $scope.form.tickets.length == 1)
      {
        $scope.selectTicket($scope.form.tickets[0]);
      }
    }, 0);
  });

  $scope.selectTicket = function (ticket) {
    try {
      if (ticket === undefined) {
        $scope.form.currentTicket = null;
        return;
      }

      var ticketRequiresTimeslots = $scope.checkIfTicketRequiresTimeslotRegistration(ticket);
      if (ticket.IsDefaultRegistered && !ticketRequiresTimeslots) {
        return;
      }

      if (ticket.IsPersonalizationDisabled) {
        return;
      }

      $scope.form.currentTicket = ticket;
      $scope.form.ticketOwnerChooserVisible = false;
      $scope.form.errorMessages = [];

      if (!$scope.form.currentTicket.IsRegistered) {
        $scope.form.currentTicket.RegisterForBuyer = null;
      }

      if (
        !$scope.form.currentTicket.IsRegistered &&
        (
          $scope.form.currentTicket.TicketRegistrationIdentifier === $scope.form.tickets[0].TicketRegistrationIdentifier ||
          !$scope.form.currentTicket.IsRegistrationForOtherPersonAvailable ||
          ticketRequiresTimeslots && $scope.form.currentTicket.RegistrationType === 32
        )
      ) {
        //1. Call PersonalizationPartialFormForEdit
        //  ticket is not yet personalized and:
        //  a) this is the only/first ticket (normally buyer is pre-selected)
        //  b) or registration for third person is unavailable
        //  c) or registration is not possible but ticket requires timeslots
        //  TODO: d) or registration for buyer is unavailable
        var registerForBuyer = $scope.form.currentTicket.IsRegistrationForOtherPersonAvailable && $scope.form.currentTicket.BuyerRegistrationOptions === 3 ? false : true;
        $scope.setPersonForCurrentTicket(registerForBuyer, $scope.form.currentTicket.TicketOwnerIdentifier);
      } else if ($scope.form.currentTicket.IsRegistered) {
        //2. Call PersonalizationPartialForm
        // ticket is personalized, load data
        getCurrentTicketPersonalizationForm();
      } else {
        //3. Do nothing and display nothing
        // buyer or third person should be explicitly selected
        $scope.form.currentTicketFormHtml = null;
      }
    } catch (e) {
      ADI.persistSaleAction(1015, 1, '{A9F22244-AEDF-4C5F-A8C5-CA711B1CB426}', `Client-side exception during personalization. Exception: ${ex.message}. Stacktrace: ${ex.stack}`, false, true);
      $scope.form.errorMessages.push($scope.form.exceptionMessage);
    }
  }

  $scope.selectFirstUnregisteredTicket = function () {
    selectFirstUnregisteredTicket();
  }

  $scope.thidPersonInfoText = function (show) {
    resetCurrentTicket();
    $scope.form.ThirdPersonInfoText = show;
  }

  $scope.showTicketOwnerSelectionForCurrentTicket = function () {
    if ($scope.form.ticketOwners && $scope.form.ticketOwners.length > 0) {
      $scope.form.currentTicketFormHtml = null;
      $scope.form.ticketOwnerChooserVisible = true;
    }
    $timeout(function () {
      ADITUS.QuestionListConditions().Init();
      ADITUS.QuestionListsMaxSelections().Init();
      ADITUS.QuestionModifiers().Init();
    });
  }

  $scope.setPersonForCurrentTicket = function (isBuyer, ticketOwnerIdentifier) {
    try {
      //console.log('sel ticket person. ticket= ' + $scope.form.currentTicket.TicketRegistrationIdentifier + ', person = ' + ticketOwnerIdentifier);
      $scope.form.errorMessages = [];
      if (!isBuyer && !$scope.form.ThirdPersonInfoText && ticketOwnerIdentifier === undefined && $scope.form.ticketOwners && $scope.form.ticketOwners.length > 0) {
        $scope.form.currentTicketFormHtml = null;
        $scope.form.ticketOwnerChooserVisible = true;
      }

      if (isBuyer && $scope.form.ThirdPersonInfoText && $scope.form.currentTicket.RegisterForBuyer === isBuyer) {
        resetCurrentTicket();
        return;
      }

      if (!isBuyer && $scope.form.ThirdPersonInfoText && $scope.form.currentTicket.RegisterForBuyer === isBuyer
        && (ticketOwnerIdentifier !== undefined && $scope.form.currentTicket.TicketOwnerIdentifier === ticketOwnerIdentifier
          || ticketOwnerIdentifier === undefined && $scope.form.currentTicket.TicketOwnerIdentifier === null)) {
        resetCurrentTicket();
        return;
      }

      $scope.form.currentTicket.RegisterForBuyer = isBuyer;
      if (isBuyer
        || ($scope.form.ticketOwners.length === 0 && !$scope.form.currentTicket.TicketOwnerIdentifier)
        || ticketOwnerIdentifier) {
        if (!$scope.form.ThirdPersonInfoText) {
          getCurrentTicketPersonalizationFormForEdit(ticketOwnerIdentifier);
        }
      }
    } catch (e) {
      ADI.persistSaleAction(1015, 1, '{60FFCB70-71A8-474F-83DE-9000071FCEE2}', `Client-side exception during personalization. Exception: ${ex.message}. Stacktrace: ${ex.stack}`, false, true);
      $scope.form.errorMessages.push($scope.form.exceptionMessage);
    }
  }

  $scope.revalidateFreetextFields = function ($inputs) {
    var $freetexts = $inputs.filter('[id$=freetext]');
    return !$freetexts.length || $freetexts.valid(); //prevents freetextfield errors from being overriden 
  }

  $scope.proceedForm = function (e) {
    try {
      if (e.type !== "keypress" || kendo.keys.ENTER === e.keyCode) {

        e.preventDefault();
        e.stopPropagation();

        var targetElement = $(e.target);
        if (targetElement.hasClass("k-state-selected")) {
          return;
        }

        var form = targetElement.closest('form');

        var panelbar = form.find('.k-panelbar.profileData').data("kendoPanelBar");

        var panelBarSelectedItem = $(panelbar.select()[0]);

        var currentIndex = parseInt(getSelectedIndex(panelbar)[0]);
        var targetIndex = parseInt(targetElement.parent().attr('data-index'));

        if (isNaN(targetIndex) || targetIndex >= currentIndex)
        {
          var inputs = $("input", panelBarSelectedItem);
          if (inputs.length > 0 && !inputs.valid()) {
            if (typeof ADI !== 'undefined'
              && typeof ADI.Tracking !== 'undefined'
              && typeof ADI.Tracking.writeValidationDataLayer === 'function') {
              ADI.Tracking.writeValidationDataLayer(form);
            }
            $scope.revalidateFreetextFields(inputs);

            $('html,body').animate({
              scrollTop: panelBarSelectedItem.offset().top
            }, 100);
            return;
          }
        }

        var itemCount = panelbar.element.children("li").length - 1;
        var direction = targetElement.attr('data-target-direction');

        var nextItem = panelBarSelectedItem.next();
        var isValidJump = nextItem.is("li.hidden") //condition should be expanded if "previous question" button is ever implemented
          && (direction || targetElement.parent().prev().is(nextItem));

        if (isNaN(targetIndex) || targetIndex >= currentIndex)
        {
          if (direction) {
            direction = parseInt(direction);
            if (isValidJump) {
              direction *= 1 + panelBarSelectedItem.nextUntil("li:not(.hidden)").length;
            }
            targetIndex = currentIndex + direction;
          }
          else {
            targetIndex = parseInt(targetElement.parent().attr('data-index'));
          }
        }

        if (targetIndex >= currentIndex
          && (targetIndex >= itemCount && currentIndex === itemCount - 1
              || panelBarSelectedItem.nextAll("li").length - 1 === panelBarSelectedItem.nextAll("li.hidden").length)) {
          form.find('[type="submit"], [data-jssubmit="1"]').show();
          form.find('[data-target-direction="1"]').hide();
        } else {
          form.find('[type="submit"], [data-jssubmit="1"]').hide();
          form.find('[data-target-direction="1"]').show();
        }

        if (targetIndex > itemCount) {
          panelbarItem = panelbar.element.children("li.k-state-active");
          panelbar.collapse(panelbarItem);
        } else {
          if (isValidJump || targetIndex === currentIndex + 1 || targetIndex < currentIndex) {
            panelbarItem = panelbar.element.children("li").eq(targetIndex);
            panelbar.expand(panelbarItem);
            panelbar.select(panelbarItem);
          }
        }
      }
    } catch (ex) {
      ADI.persistSaleAction(1015, 1, '{EE0DDC91-7909-404A-9CCC-08F0E743C6FB}', `Client-side exception during personalization. Exception: ${ex.message}. Stacktrace: ${ex.stack}`, false, true);
      $scope.form.errorMessages.push($scope.form.exceptionMessage);
    }
  }

    $scope.isPersonalizationComplete = function () {
      if ($("#btnSubmitpersonalizationForm").is(':visible') && !$scope.form.personalizationConfirmed) {
        return false;
      }
      
      if ($("#btnSelectQuestionListTab").is(':visible')) {
        return false;
      }
      
      if ($scope.form.alterRegistration && !$scope.form.personalizationConfirmed) {
        return false;
      }
      
    return $.grep($scope.form.tickets, function (t, i) {
      return !$scope.isTicketRegistered(t);
    }).length === 0;

    $timeout(function () {
      ADITUS.QuestionListConditions().Init();
      ADITUS.QuestionListsMaxSelections().Init();
      ADITUS.QuestionModifiers().Init();
    });
  }

  $scope.personalizeTicket = function (ticketRegistrationIdentifier) {
    try {
      var $form = $('#ProfileDataTicketContainer_' + ticketRegistrationIdentifier).closest('form');
      let inputs = $form.find("input");

      if (!$form.valid() || (inputs.length > 0 && !inputs.valid())) {
        $form.cancelSubmit = true;
        if (typeof ADI !== 'undefined'
          && typeof ADI.Tracking !== 'undefined'
          && typeof ADI.Tracking.writeValidationDataLayer === 'function') {
          ADI.Tracking.writeValidationDataLayer($form);
        }

        $scope.revalidateFreetextFields(inputs);
        return;
      }

      var registerForBuyerElem = inputs.filter("#RegisterForBuyer");
      if (!registerForBuyerElem.val()) {
        registerForBuyerElem.val($scope.form.currentTicket.RegisterForBuyer);
      }

      $scope.form.RequestsInProgress++;
      var formData = ADI.BlobHelper.getFormData($form, true);
      var data = [];

      for (const [key, value] of formData.entries()) {
        data.push({ 'name': key, 'value': value });
      }

      if (typeof ADI !== 'undefined'
        && typeof ADI.Tracking !== 'undefined'
        && typeof ADI.Tracking.writePersonalizationDataLayer === 'function') {
        ADI.Tracking.writePersonalizationDataLayer(inputs, data, ticketRegistrationIdentifier);
      }

      var result = PersonalizationService.personalizeTicketForPerson(formData);
      result.then(function (result) {
        if (result.Errors !== undefined) {
          updateValidationSummary($form, result);

          if (result.Errors.length && result.Errors[0].Key) { //if there are errors - switches to tab with first error (if it's closed)
            let key = getTargetElementKey(result.Errors[0].Key);
            let target = $('#' + key).closest('li.k-item');
            if (target.length && !target.hasClass('k-state-active')) {
              let panelbar = target.closest('.k-panelbar').data('kendoPanelBar');
              panelbar.expand(target);
              panelbar.select(target);
              if (!target.is(':last-child')) {
                $form.find('[type="submit"], [data-jssubmit="1"]').hide();
                $form.find('[data-target-direction="1"]').show();
              }
            }
            else {
              $scope.form.tickets = getPersonalizableTickets(result.TicketRegistrations);
            }
          }

        }
        else {
          $scope.form.personalizationConfirmed = true;
          setCart(result);
        }
        $scope.form.RequestsInProgress--;
      });
    } catch (ex) {
      ADI.persistSaleAction(1015, 1, '{B0F6E1A7-8C80-453E-9E80-7FFC3D4A4BDD}', `Client-side exception during personalization. Exception: ${ex.message}. Stacktrace: ${ex.stack}`, false, true);
      $scope.form.errorMessages.push($scope.form.exceptionMessage);
    }
  }

  $scope.filterTickets = function (ticket) {
    return ticket.RequiresRegistration || $scope.checkIfTicketRequiresTimeslotRegistration(ticket);
  }

  $scope.isTicketRegistered = function (ticket) {
    if ($scope.form.alterRegistration) {
      return true;
    }      

    if ($scope.checkIfTicketRequiresTimeslotRegistration(ticket)) {
      return ticket.TimeSlots.SelectedDays.filter(function (i) { return i !== 0; }).length > 0 && ticket.IsRegistered;
    }
    return ticket.IsRegistered;
  }
}]);
webShopApp.controller('RegistrationController', ['$scope', '$sce', '$timeout', 'RegistrationService', 'CartService', 'focus', function ($scope, $sce, $timeout, RegistrationService, CartService, focus) {
  var validating = false;
  var pasted = false;
  var defaultData = {
    code1: '',
    code2: '',
    code3: '',
    code4: '',
    code5: '',
    hasResult: false,
    reservationRequiresConfirmation: false,
    resultMessage: '',
    resultSeverity: '',
    success: false,
    provideCartResetWithTicketOption: false,
    loading: false,
    hasValidCodeInput: false,
    cartHasArticles: false
  }

  $scope.form = defaultData;

  var getResultSeverity = function (result) {
    switch (result.ReservationResult.ResultCode) {
      case 0:
        return 'success';
      case -5:
        return result.AlreadyUsedCodeIsInCart ? 'info' : 'danger';
      default:
        return 'danger';
    }
  }

  var isResultSuccess = function (result) {
    if (result.ReservationResult.ResultCode === 0)
      return true;

    if (result.ReservationResult.ResultCode === -5 && result.AlreadyUsedCodeIsInCart)
      return true;

    return false;
  }

  var validateCode = function () {
    if (!validating) {
      //console.log("validate");
      validating = true;
      if ($scope.form.shortCode != null && $scope.form.shortCode != '') {
        $scope.form.hasValidCodeInput = true;
      }
      else {
        $scope.form.hasValidCodeInput = false;
        $scope.form.hasResult = false;
      }
      validating = false;
    }
    return $scope.form.hasValidCodeInput;
  }

  var tryAutoValidate = function () {
    if (!validating && !$scope.hasResult && !$scope.loading && validateCode()) {
      //console.log("autovalidate");
      $scope.checkAndReserveTicket(false);
    }
  }

  var reset = function (isPageLoad) {
    //console.log("reset");
    $scope.form = $.extend({}, defaultData);
    if (!isPageLoad) {
      $scope.form.shortCode = '';
      $scope.form.code1 = '';
      $scope.form.code2 = '';
      $scope.form.code3 = '';
      $scope.form.code4 = '';
      $scope.form.code5 = '';
    }

    $scope.form.cartHasArticles = CartService.getCurrentCart().ArticlesInCartAmount > 0;
    focus("shortCode");
  }

  $scope.$watch('$viewContentLoaded', function () {
    reset(true);
    $timeout(function () {
      if ($scope.form.shortCode) {
        if (typeof (grecaptcha) !== 'undefined' && $scope.grecaptchaKey && $scope.grecaptchaKey.length > 0) {
          try {
            grecaptcha.ready(function () {
              grecaptcha.execute($scope.grecaptchaKey, { action: 'register_ticket' }).then(function (token) {
                $.ajax({
                  method: "POST",
                  url: faireventAlias + '/Shop/ValidateCaptcha',
                  data: { token: token, ticketCode: $scope.form.shortCode }
                }).done(function (data) {
                  if (data) {
                    tryAutoValidate();
                  }
                });
              });
            });
          } catch (e) {
          }
        }
        else {
          tryAutoValidate();
        }
      }
    }, 0);
  });

  $scope.reset = function () {
    reset(false);
  }

  $scope.checkAndReserveTicket = function (confirmReservation) {
    if (!confirmReservation && $scope.form.hasResult || !validateCode() || $scope.form.loading) {
      return;
    }

    $scope.form.hasResult = false;
    $scope.form.loading = true;
    var ticketCode = $scope.form.shortCode;
    var result = RegistrationService.checkAndReserveTicket(ticketCode, confirmReservation);
    result.then(function (result) {
      if (result.SubResultCode === -2) {
        window.location = result.SubResultMessage;
        return;
      }

      $scope.form.lastCheckedTicket = result.ReservationResult.UsedTicketCode;
      $scope.form.success = isResultSuccess(result);
      $scope.form.resultMessage = $sce.trustAsHtml(result.ResultMessage);
      $scope.form.subResultMessage = $sce.trustAsHtml(result.SubResultMessage);
      $scope.form.hasResult = true;
      $scope.form.resultSeverity = getResultSeverity(result);
      $scope.form.cartHasArticles = result.Cart.ArticlesInCartAmount > 0;
      $scope.form.reservationRequiresConfirmation = result.SubResultCode === -1;
      $scope.form.provideCartResetWithTicketOption = result.ResultCode === -10;

      if (result.ReservationResult.Article && result.ReservationResult.Article.ArticleInternalId) {
        $scope.getArticlesLinkBox(result.ReservationResult.Article.ArticleInternalId);
      }

      if (result.ReservationResult.ResultCode == 0) {
        CartService.setCurrentCart(result.Cart);
        focus("btnNext");
      } else {
        focus("btnAnotherTicketCode");
      }
      $scope.form.loading = false;
    });
  };

  $scope.getArticlesLinkBox = function (articleId) {
    var result = RegistrationService.getArticlesLinkBox(articleId);

    result.then(function (result) {
      if (result != undefined) {
        document.getElementById('ArticlesLinkBox').innerHTML = result;
      }
    });
  };

  $scope.checkInput = function (event) {
    /* ToDo: bessere Lösung für Konflikt paste/keyup finden. Bei Paste soll dieses Event nicht ausgelöst werden. 
    if (!pasted) {
      //console.log("checkInput: " + event.target.id);
      var target = $(event.target);
      var maxLength = target.attr('maxlength');
      if (target.val().length == maxLength) {
        target.next('input, button').focus();
      }
      tryAutoValidate();
    }
    pasted = false;
    */
  };

  $scope.pasteCode = function (event) {
    //console.log("pasteCode");
    pasted = true;
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");
    var clipboardData = '';

    // Der IE greift auf ein anderes Event zurück.
    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) { // Check if IE
      clipboardData = window.clipboardData.getData("Text"); // Holt sich den Text als rein-text, IE
    } else {
      clipboardData = event.originalEvent.clipboardData.getData('text/plain'); // Holt sich den Text als rein-text, Firefox, Chrome, Safari
    }

    if (clipboardData && clipboardData.length > 0) {

      reset(false);
      //$scope.form.shortCode = clipboardData;
      //$scope.form.code1 = clipboardData.substring(0, 1);
      //$scope.form.code2 = clipboardData.substring(1, 5);
      //$scope.form.code3 = clipboardData.substring(5, 8);
      //$scope.form.code4 = clipboardData.substring(8, 11);
      //$scope.form.code5 = clipboardData.substring(11, 14);
      $timeout(function () {
        tryAutoValidate();
      }, 0);
    }
  };
}]);
var LANG = {};
LANG.OpenElement = function () {
  var listProp = {
    "chooserWidth": $('#languageSwitch').find('.adi-languagechooser-languageChoose').width(),
    "listHeight": $('#languageSwitch').find('.adi-languagechooser-listLanguages').height(),
    "isLargeFlag": $('#languageSwitch').find('.flag_24_reduced').height() != null || $('#languageSwitch').find('.flag_24').height() != null,
    "right": "19px"
  };
  
  if (listProp.isLargeFlag) {
    listProp.right = "28px";
    listProp.listHeight = "20";
  }

  $('#languageSwitch').find('.adi-languagechooser-languageChoose div')
    .css({
      "margin-right": "0px",
      "margin-left": "0px"
    });

  $('#languageSwitch').find('.adi-languagechooser-listLanguages')
      .css({
        "display": "block",
        "width": "0px",
        "top": listProp.listHeight + "px",
        "right": listProp.right,
        "z-index":"500",
        "position": "relative"
        
        
        //display: block; width: 21px; top: 20px; right: 28px; z-index: 500; position: relative;
      });
};

LANG.CloseElement = function () {
  $('#languageSwitch').find('.adi-languagechooser-listLanguages').fadeOut(200);
};

$(document).ready(function () {
  /*
  tooltip _LanguageChooser
  hover opens list of supported languages
  */
  // check if element is in DOM
  if ($('#languageSwitch').find('.adi-languagechooser-listLanguages').length > 0) {

    // delegate hover-event
    $('#languageSwitch').find('.adi-languagechooser-languageChoose').hover(function (e) {
      LANG.OpenElement();
    },
    function () {
      LANG.CloseElement();
    });
  }
});
function checkBoxClickHandler(event) {
  var target = $(event.target);
  if (target.is("input")) {
    var isChecked = target.prop("checked");

    var parentId = target.data("parent-id");
    if (parentId > 0) {
      ParentCheckBoxHandler(parentId, isChecked);
    }

    var itemId = target.data("id");
    var children = $("label.checkbox > input:checkbox[data-parent-id='" + itemId + "']");
    ChildCheckBoxHandler(children, isChecked);
  }
}

function ParentCheckBoxHandler(parentId, isChecked) {
  var parent = $("input:checkbox[data-id='" + parentId + "']");
  if (isChecked) {
    $(parent).prop("checked", "checked");
  } else {
    // Only uncheck if all siblings are already unchecked, too
    var children = $(parent).parent().siblings().children("input:checkbox[data-parent-id='" + parentId + "']");
    if (children && !($(children).is(":checked"))) {
      $(parent).prop("checked", null);
    }
  }

  var ancestorId = $(parent).data("parent-id");
  if (ancestorId > 0) { // Don't go beyond topmost parent
    ParentCheckBoxHandler(ancestorId, isChecked);
  }
}

function ChildCheckBoxHandler(children, isChecked) {
  $(children).each(function(index, element) {
    $(element).prop("checked", (isChecked ? "checked" : ""));

    var itemId = $(this).data("id");
    var descendants = $("input:checkbox[data-parent-id='" + itemId + "']");
    if (descendants) {
      ChildCheckBoxHandler(descendants, isChecked);
    }
  });
}


function initializeCheckListBase() {
  var checkListContainer = $(this);

  var groupParentNodes = $(checkListContainer).find("label.checkbox.parent:not(:has(input)), label.radio.parent:not(:has(input))");
  var groupNodeIcons = groupParentNodes.find("i");

  groupParentNodes.attr("style", "cursor:pointer");
  groupParentNodes.addClass("parent-group");
  groupNodeIcons.addClass("fa fa-fw fa-lg fa-caret-down");

  var initializeGroupNodes = function () {
    closeGroupNodesInitial(groupParentNodes);
  };

  if (!/complete|interactive|loaded/.test(document.readyState)) {
    document.addEventListener('DOMContentLoaded', initializeGroupNodes);
  } else {
    initializeGroupNodes();
  }

  $(groupParentNodes).click(function (event) {
    var currentGroupParent = event.currentTarget;
    $(currentGroupParent).find(":first-child").toggleClass("fa-caret-down fa-caret-right");
    $(currentGroupParent).next('.collapse').collapse('toggle');
  });
}

function closeGroupNodes(nodes) {
  for (var i = 0; i < nodes.length; ++i) {
    if (isParentClosebal(nodes[i])) {
      hideChildeNodes(nodes[i]);
    }
  }
}

function closeGroupNodesInitial(nodes) {
  var initialHierarchyStateValue = $(nodes[0]).parent().find("div[data-initial-hierarchy-state]").attr("data-initial-hierarchy-state");
  var initialHierarchyStateForNodesWithCheckedChildrenValue = $(nodes[0]).parent().find("div[data-initial-hierarchy-state-for-nodes-with-checked-children]").attr("data-initial-hierarchy-state-for-nodes-with-checked-children");

  for (var i = 0; i < nodes.get().reverse().length; ++i) {
    if (isParentClosebalInitial(nodes[i], initialHierarchyStateValue, initialHierarchyStateForNodesWithCheckedChildrenValue)) {
      hideChildeNodes(nodes[i]);
    }
  }
}

function hideChildeNodes(parentNode) {
  $(parentNode).find("i").removeClass("fa-caret-down").addClass("fa-caret-right");
  $(parentNode).next('.collapse').collapse('hide');
}

function hasSelectedChild(parentNode) {
  var children = $(parentNode).next();
  while (children.length && !children.hasClass("parent")) {
    if (children.find("input").is(":checked")) {
      return true;
    }
    children = children.next();
  }
  return false;
}

function isParentClosebalInitial(parentNode, initialHierarchyStateValue, initialHierarchyStateForNodesWithCheckedChildrenValue) {
  if (initialHierarchyStateForNodesWithCheckedChildrenValue == "inherit")
  {
    return initialHierarchyStateValue == "collapsed";
  }

  return initialHierarchyStateValue !== "expanded" && !hasSelectedChild(parentNode);
}

function canParentToggle(parentNode) {
  var hierarchyStateForNodesWithCheckedChildrenValue = $(parentNode).parent().find("div[data-hierarchy-state-for-nodes-with-checked-children]").attr("data-hierarchy-state-for-nodes-with-checked-children");

  if (hierarchyStateForNodesWithCheckedChildrenValue == "collapsible")
  {
    return true;
  }
  else
  {
    return !hasSelectedChild(parentNode);
  }
}

function isParentClosebal(parentNode) {
  var hierarchyAccordionValue = $(parentNode).parent().find("div[data-hierarchy-accordion]").attr("data-hierarchy-accordion");
  var hierarchyStateForNodesWithCheckedChildrenValue = $(parentNode).parent().find("div[data-hierarchy-state-for-nodes-with-checked-children]").attr("data-hierarchy-state-for-nodes-with-checked-children");
  
  if (hierarchyAccordionValue == "true")
  {
    return canParentToggle(parentNode);
  }
  else
  {
    return false;
  }
}
function registerCountyAutoFillHandler(sourceContainer, targetContainer, countryLookup, postalCodeLength, url) {
  if (typeof sourceContainer === 'undefined'
    || typeof targetContainer === 'undefined'
    || typeof countryLookup === 'undefined'
    || typeof url === 'undefined') {
    return;
  }

  $(sourceContainer).one('change',
    {
      source: sourceContainer,
      target: targetContainer,
      country: countryLookup,
      inputLength: postalCodeLength,
      url: url
    }, onPostcalCodeInputChanged);
};

function onPostcalCodeInputChanged(event) {
  var currentValue = $(event.data.source).val();

  if ((typeof event.data.inputLength !== 'undefined' && currentValue.length !== event.data.inputLength) || !currentValue) {
    setCounty(event.data.target, "");
    registerCountyAutoFillHandler(event.data.source, event.data.target, event.data.country, event.data.inputLength, event.data.url);
    return;
  }
  else {
    $.get(event.data.url, { postalCode: currentValue, countryLookup: event.data.country }, function (response) {
      if (response) {
        setCounty(event.data.target, response);
      } else {
        setCounty(event.data.target, "");
      }
    })
    .fail(function () {
      setCounty(event.data.target, "");
    })
    .always(function () {
      registerCountyAutoFillHandler(event.data.source, event.data.target, event.data.country, event.data.inputLength, event.data.url);
    });
  }
}

function setCounty(target, value) {
  //Desktop
  var dropDownContainer = $(target).data("kendoDropDownList");
  if (typeof dropDownContainer !== 'undefined') {
    dropDownContainer.value(value);
    return;
  }

  //Mobile
  dropDownContainer = $(target);
  if (typeof dropDownContainer !== 'undefined') {
    dropDownContainer.val(value);
  }
}



//     Underscore.js 1.8.3
//     http://underscorejs.org
//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
//     Underscore may be freely distributed under the MIT license.
(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])<u?i=a+1:o=a}return i},m.indexOf=r(1,m.findIndex,m.sortedIndex),m.lastIndexOf=r(-1,m.findLastIndex),m.range=function(n,t,r){null==t&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e<arguments.length;)i.push(arguments[e++]);return E(n,r,this,this,i)};return r},m.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this);
//# sourceMappingURL=underscore-min.map
/*
 * bootstrap-session-timeout
 * www.orangehilldev.com
 *
 * Copyright (c) 2014 Vedran Opacic
 * Licensed under the MIT license.
 */

(function($) {
  /*jshint multistr: true */
  'use strict';
  $.sessionTimeout = function(options) {
    var defaults = {
      title: 'Your Session is About to Expire!',
      message: 'Your session is about to expire.',
      logoutButton: 'Logout',
      keepAliveButton: 'Stay Connected',
      keepAliveUrl: window.location.pathname,
      ajaxType: 'POST',
      ajaxData: '',
      redirUrl: window.location.pathname,
      logoutUrl: window.location.pathname,
      warnAfter: 900000, // 15 minutes
      redirAfter: 7200000, // 60 minutes
      keepAliveInterval: 5000,
      keepAlive: false,
      ignoreUserActivity: false,
      onStart: false,
      onWarn: false,
      onRedir: false,
      countdownMessage: false,
      countdownBar: false,
      countdownSmart: false,
      hideModalOnAction: false
    };

    var opt = defaults,
        timer,
        countdown = {};

    // Extend user-set options over defaults
    if (options) {
      opt = $.extend(defaults, options);
    }

    // Some error handling if options are miss-configured
    if (opt.warnAfter >= opt.redirAfter) {
      console.error('Bootstrap-session-timeout plugin is miss-configured. Option "redirAfter" must be equal or greater than "warnAfter".');
      return false;
    }

    // Unless user set his own callback function, prepare bootstrap modal elements and events
    if (typeof opt.onWarn !== 'function') {
      // If opt.countdownMessage is defined add a coundown timer message to the modal dialog
      var countdownMessage = opt.countdownMessage ?
          '<p>' + opt.countdownMessage.replace(/{timer}/g, '<span class="countdown-holder"></span>') + '</p>' : '';
      var coundownBarHtml = opt.countdownBar ?
          '<div class="progress"> \
                  <div class="progress-bar progress-bar-striped countdown-bar active" role="progressbar" style="min-width: 15px; width: 100%;"> \
                    <span class="countdown-holder"></span> \
                  </div> \
                </div>' : '';

      // Create timeout warning dialog
      $('body').append('<div class="modal fade" id="session-timeout-dialog"> \
              <div class="modal-dialog"> \
                <div class="modal-content"> \
                  <div class="modal-header"> \
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> \
                    <h4 class="modal-title">' + opt.title + '</h4> \
                  </div> \
                  <div class="modal-body"> \
                    <p>' + opt.message + '</p> \
                    ' + countdownMessage + ' \
                    ' + coundownBarHtml + ' \
                  </div> \
                  <div class="modal-footer"> \
                    <button id="session-timeout-dialog-keepalive" type="button" class="btn btn-primary btn-theme" data-dismiss="modal">' + opt.keepAliveButton + '</button> \
                  </div> \
                </div> \
              </div> \
             </div>');

      // "Logout" button click
      $('#session-timeout-dialog-logout').on('click', function() {
        window.location = opt.logoutUrl;
      });
      // "Stay Connected" button click
      $('#session-timeout-dialog').on('hide.bs.modal', function() {
        // Restart session timer
        startSessionTimer();
      });
    }

    // Reset timer on any of these events
    if (!opt.ignoreUserActivity) {
      var mousePosition = [-1, -1];
      $(document).on('keyup mouseup mousemove touchend touchmove', function(e) {
        if (e.type === 'mousemove') {
          // Solves mousemove even when mouse not moving issue on Chrome:
          // https://code.google.com/p/chromium/issues/detail?id=241476
          if (e.clientX === mousePosition[0] && e.clientY === mousePosition[1]) {
            return;
          }
          mousePosition[0] = e.clientX;
          mousePosition[1] = e.clientY;
        }
        startSessionTimer();

        // If they moved the mouse not only reset the counter
        // but remove the modal too!
        if ($('#session-timeout-dialog').length > 0 &&
            $('#session-timeout-dialog').data('bs.modal')){
          if(opt.hideModalOnAction){
            if($('#session-timeout-dialog').data('bs.modal').isShown) {
              // http://stackoverflow.com/questions/11519660/twitter-bootstrap-modal-backdrop-doesnt-disappear
              $('#session-timeout-dialog').modal('hide');
              $('body').removeClass('modal-open');
              $('div.modal-backdrop').remove();
            }
          }
        }
      });
    }

    // Keeps the server side connection live, by pingin url set in keepAliveUrl option.
    // KeepAlivePinged is a helper var to ensure the functionality of the keepAliveInterval option
    var keepAlivePinged = false;

    function keepAlive() {
      if (!keepAlivePinged) {
        // Ping keepalive URL using (if provided) data and type from options
        $.ajax({
          type: opt.ajaxType,
          url: opt.keepAliveUrl,
          data: opt.ajaxData
        });
        keepAlivePinged = true;
        setTimeout(function() {
          keepAlivePinged = false;
        }, opt.keepAliveInterval);
      }
    }

    function startSessionTimer() {
      // Clear session timer
      clearTimeout(timer);
      if (opt.countdownMessage || opt.countdownBar) {
        startCountdownTimer('session', true);
      }

      if (typeof opt.onStart === 'function') {
        opt.onStart(opt);
      }

      // If keepAlive option is set to "true", ping the "keepAliveUrl" url
      if (opt.keepAlive) {
        keepAlive();
      }

      // Set session timer
      timer = setTimeout(function() {
        // Check for onWarn callback function and if there is none, launch dialog
        if (typeof opt.onWarn !== 'function') {
          $('#session-timeout-dialog').modal('show');
        } else {
          opt.onWarn(opt);
        }
        // Start dialog timer
        startDialogTimer();
      }, opt.warnAfter);
    }

    function startDialogTimer() {
      // Clear session timer
      clearTimeout(timer);
      if (!$('#session-timeout-dialog').hasClass('in') && (opt.countdownMessage || opt.countdownBar)) {
        // If warning dialog is not already open and either opt.countdownMessage
        // or opt.countdownBar are set start countdown
        startCountdownTimer('dialog', true);
      }
      // Set dialog timer
      timer = setTimeout(function() {
        // Check for onRedir callback function and if there is none, launch redirect
        if (typeof opt.onRedir !== 'function') {
          window.location = opt.redirUrl;
        } else {
          opt.onRedir(opt);
        }
      }, (opt.redirAfter - opt.warnAfter));
    }

    function startCountdownTimer(type, reset) {
      // Clear countdown timer
      clearTimeout(countdown.timer);

      if (type === 'dialog' && reset) {
        // If triggered by startDialogTimer start warning countdown
        countdown.timeLeft = Math.floor((opt.redirAfter - opt.warnAfter) / 1000);
      } else if (type === 'session' && reset) {
        // If triggered by startSessionTimer start full countdown
        // (this is needed if user doesn't close the warning dialog)
        countdown.timeLeft = Math.floor(opt.redirAfter / 1000);
      }
      // If opt.countdownBar is true, calculate remaining time percentage
      if (opt.countdownBar && type === 'dialog') {
        countdown.percentLeft = Math.floor(countdown.timeLeft / ((opt.redirAfter - opt.warnAfter) / 1000) * 100);
      } else if (opt.countdownBar && type === 'session') {
        countdown.percentLeft = Math.floor(countdown.timeLeft / (opt.redirAfter / 1000) * 100);
      }
      // Set countdown message time value
      var countdownEl = $('.countdown-holder');
      var secondsLeft = countdown.timeLeft >= 0 ? countdown.timeLeft : 0;
      if (opt.countdownSmart) {
        var minLeft = Math.floor(secondsLeft / 60);
        var secRemain = secondsLeft % 60;
        var countTxt = minLeft > 0 ? minLeft + 'm' : '';
        if (countTxt.length > 0) {
          countTxt += ' ';
        }
        countTxt += secRemain + 's';
        countdownEl.text(countTxt);
      } else {
        countdownEl.text(secondsLeft + "s");
      }

      // Set countdown message time value
      if (opt.countdownBar) {
        $('.countdown-bar').css('width', countdown.percentLeft + '%');
      }

      // Countdown by one second
      countdown.timeLeft = countdown.timeLeft - 1;
      countdown.timer = setTimeout(function() {
        // Call self after one second
        startCountdownTimer(type);
      }, 1000);
    }

    // Start session timer
    startSessionTimer();

  };
})(jQuery);
/**
 * Button click event for FormAutoFill widget
 */

var AutoFillForm = function (sender, dataurl) {
  var form = $(sender).closest('form');
  $.ajax({
    url: dataurl,
    type: "POST",
    data: {},
    success: function (data) {
      Object.keys(data).forEach(function (key) {
        var value = data[key];
        if (value) {
          var elem = form.find('#' + key);
          if (elem.hasClass("adi-dropdownlist")) {
            elem = elem.data("kendoDropDownList");
            elem.select(function (selectItem) {
              return selectItem.Value === value;
            });
          } else {
            elem.val(value);
          }
        }
      });
    },
    error: function (data) {
    }
  });
};
(function(){if("undefined"===typeof window.Payone)window.Payone={};else throw Error("Namespace 'Payone' is not available.");if("undefined"===typeof PayoneGlobals)window.PayoneGlobals={options:{},callback:function(a){document.getElementsByTagName("body")[0].removeChild(window.PayoneGlobals.options.payoneScript);var e=window.PayoneGlobals.options.callbackFunctionName;switch(window.PayoneGlobals.options.returnType){case "object":window[e]({get:function(e){return a[e]}});break;case "handler":window.PayoneGlobals.options.callbackHandler(a);
break;default:window[e](a)}}};else throw Error("Namespace 'PayoneGlobals' is not available.");Payone.ClientApi={};Payone.ClientApi.Origin="Payone";Payone.ClientApi.MessageEvents={ready:"READY",value:"VALUE",render:"RENDER",setRequestData:"SET_REQUEST_DATA",creditcardcheck:"CREDITCARDCHECK",isComplete:"IS_COMPLETE",focus:"FOCUS",cardtypeChanged:"CARD_TYPE_CHANGED",cardtypeDetection:"CARD_TYPE_DETECTION"};Payone.ClientApi.InputTypes={cardpan:"cardpan",cardcvc2:"cardcvc2",cardexpiremonth:"cardexpiremonth",
cardexpireyear:"cardexpireyear",cardtype:"cardtype"};Payone.ClientApi.CardTypes={"#":"",V:"Visa",M:"Mastercard",A:"Amex",O:"Maestro (Int)",U:"Maestro (UK)",D:"Diners",B:"Carte Bleue",C:"Discover",J:"JCB",P:"China Union Pay"};Payone.ClientApi.Defaults={iFrameUrl:"https://secure.pay1.de/client-api/js/v1/payone_iframe.html",secureDomain:"https://secure.pay1.de",clientApiUrl:"https://secure.pay1.de/client-api/",cardcvc2MaxLength:4,cardtypeDetectionMinLength:6,cardtypeUnknown:"?",cardtypeNotConfigured:"-",
cardtypePleaseSelectKey:"#"};Payone.ClientApi.Language={de:{months:{month1:"1",month2:"2",month3:"3",month4:"4",month5:"5",month6:"6",month7:"7",month8:"8",month9:"9",month10:"10",month11:"11",month12:"12"},invalidCardpan:"Ungültige Kartennummer. Bitte überprüfen Sie die Angaben auf der Karte.",invalidCvc:"Ungültige Kartenprüfnummer. Bitte überprüfen Sie die Angaben auf der Karte.",invalidPanForCardtype:"Kartentyp stimmt nicht mit der Kartennummer überein. Bitte überprüfen Sie die Angaben auf der Karte.",
invalidCardtype:"Ungültiger Kartentyp. Bitte überprüfen Sie die Angaben auf der Karte.",invalidExpireDate:"Verfallsdatum ungültig. Bitte überprüfen Sie die Angaben auf der Karte.",invalidIssueNumber:"Ungültige Kartenfolgenummer (Issue-Number). Bitte überprüfen Sie die Angaben auf der Karte.",transactionRejected:"Die Transaktion wurde abgelehnt. Überprüfen Sie ggf. Ihre eingegebenen Daten.",pleaseSelectCardType:"Kartentyp auswählen",placeholders:{cardpan:"",cvc:"",expireMonth:"",expireYear:"",issueNumber:""}},
en:{months:{month1:"1",month2:"2",month3:"3",month4:"4",month5:"5",month6:"6",month7:"7",month8:"8",month9:"9",month10:"10",month11:"11",month12:"12"},invalidCardpan:"Invalid card number. Please verify your card data.",invalidCvc:"Invalid Card Verification Value. Please verify your card data.",invalidPanForCardtype:"Card type does not match card number. Please verify your card data.",invalidCardtype:"Card type invalid. Please verify your card data.",invalidExpireDate:"Expiry date invalid. Please verify your card data.",
invalidIssueNumber:"Invalid Issue-Number (card sequence number). Please verify your card data.",transactionRejected:"Transaction has been rejected. Please verify your data.",pleaseSelectCardType:"Select cardtype",placeholders:{cardpan:"",cvc:"",expireMonth:"",expireYear:"",issueNumber:""}},fr:{months:{month1:"1",month2:"2",month3:"3",month4:"4",month5:"5",month6:"6",month7:"7",month8:"8",month9:"9",month10:"10",month11:"11",month12:"12"},invalidCardpan:"Numéro de carte invalide. Veuillez vérifier les données sur la carte.",
invalidCvc:"Numéro de contrôle de carte invalide. Veuillez vérifier les données sur la carte.",invalidPanForCardtype:"Le type de carte ne correspond pas au numéro de carte. Veuillez vérifier les données sur la carte.",invalidCardtype:"Type de carte invalide. Veuillez vérifier les données sur la carte.",invalidExpireDate:"Date d'expiration invalide. Veuillez vérifier les données sur la carte.",invalidIssueNumber:"Numéro d'émission (Issue Number) incorrect. Veuillez vérifier les données sur la carte.",
transactionRejected:"La transaction a été refusée. Veuillez le cas échéant vérifier vos données.",pleaseSelectCardType:"Sélectionnez le type de carte",placeholders:{cardpan:"",cvc:"",expireMonth:"",expireYear:"",issueNumber:""}},it:{months:{month1:"1",month2:"2",month3:"3",month4:"4",month5:"5",month6:"6",month7:"7",month8:"8",month9:"9",month10:"10",month11:"11",month12:"12"},invalidCardpan:"Numero della carta non valido. Verificare i dati della carta.",invalidCvc:"Numero di controllo della carta non valido. Verificare i dati della carta.",
invalidPanForCardtype:"Il tipo di carta non coincide con il numero della stessa. Verificare i dati della carta.",invalidCardtype:"Tipo di carta non valido. Verificare i dati della carta.",invalidExpireDate:"Data di scadenza non valida. Verificare i dati della carta.",invalidIssueNumber:"Cifre carta non valide (Issue-Number). Verificare i dati sulla carta.",transactionRejected:"La transazione è stata rifiutata. Verificare i dati inseriti.",pleaseSelectCardType:"Scegliere il tipo di carta",placeholders:{cardpan:"",
cvc:"",expireMonth:"",expireYear:"",issueNumber:""}},es:{months:{month1:"1",month2:"2",month3:"3",month4:"4",month5:"5",month6:"6",month7:"7",month8:"8",month9:"9",month10:"10",month11:"11",month12:"12"},invalidCardpan:"Número de tarjeta inválido. Sírvase verificar las indicaciones en la tarjeta.",invalidCvc:"Número de verificación inválido de tarjeta. Sírvase verificar las indicaciones en la tarjeta.",invalidPanForCardtype:"Tipo de tarjeta no coincide con número de tarjeta. Sírvase verificar las indicaciones en la tarjeta.",
invalidCardtype:"Tipo inválido de tarjeta. Sírvase verificar las indicaciones en la tarjeta.",invalidExpireDate:"Fecha de expiración inválida. Sírvase verificar las indicaciones en la tarjeta.",invalidIssueNumber:"Número de tarjeta no válido (número de emisión). Por favor, compruebe los datos de la tarjeta.",transactionRejected:"La transacción fue rechazada. Sírvase revisar sus datos ingresados.",pleaseSelectCardType:"Seleccione el tipo de tarjeta",placeholders:{cardpan:"",cvc:"",expireMonth:"",expireYear:"",
issueNumber:""}},pt:{months:{month1:"1",month2:"2",month3:"3",month4:"4",month5:"5",month6:"6",month7:"7",month8:"8",month9:"9",month10:"10",month11:"11",month12:"12"},invalidCardpan:"Número inválido do cartão de crédito. Favor verificar os dados do cartão.",invalidCvc:"Número inválido de segurança do cartão. Favor verificar os dados do cartão.",invalidPanForCardtype:"O tipo do cartão não combina com o número do cartão. Favor verificar os dados do cartão.",invalidCardtype:"Tipo de cartão inválido. Favor verificar os dados do cartão.",
invalidExpireDate:"Data de expiração inválida. Favor verificar os dados do cartão.",invalidIssueNumber:"Sequência de números do cartão inválida (Issue-Number). Por favor verifique os dados no cartão.",transactionRejected:"A transacção foi recusada. Favor verificar os dados entrados.",pleaseSelectCardType:"Selecione o tipo de cartão",placeholders:{cardpan:"",cvc:"",expireMonth:"",expireYear:"",issueNumber:""}},nl:{months:{month1:"1",month2:"2",month3:"3",month4:"4",month5:"5",month6:"6",month7:"7",
month8:"8",month9:"9",month10:"10",month11:"11",month12:"12"},invalidCardpan:"Ongeldig creditcardnummer. Controleer s.v.p. de gegevens op de card.",invalidCvc:"Ongeldig cardcontolenummer. Controleer s.v.p. de gegevens op de card.",invalidPanForCardtype:"Cardtype past niet bij cardnummer. Controleer s.v.p. de gegevens op de card.",invalidCardtype:"Ongeldig cardtype. Controleer s.v.p. de gegevens op de card.",invalidExpireDate:"Afloopdatum ongeldig. Controleer s.v.p. de gegevens op de card.",invalidIssueNumber:"Ongeldig kaartvolgnummer (issue number). Controleer de gegevens op de kaart a.u.b.",
transactionRejected:"De transactie is geweigerd. Controleer s.v.p. uw gegevens.",pleaseSelectCardType:"Select kaarttype",placeholders:{cardpan:"",cvc:"",expireMonth:"",expireYear:"",issueNumber:""}}};Payone.ClientApi.Request=function(a,e){if("object"!==typeof a)throw Error("Property 'data' must be of type 'object'");if("object"!==typeof e)throw Error("Property 'options' must be of type 'object'");if(e.callbackFunctionName&&"string"!==typeof e.callbackFunctionName)throw Error("Property 'options.callbackFunctionName' must be of type 'string'");
if(e.callbackHandler&&"function"!==typeof e.callbackHandler)throw Error("Property 'options.callbackHandler' must be of type 'function'");a.callback_method="PayoneGlobals.callback";var u=function(){var f="?",n,g;Object.keys(a).forEach(function(e){"string"===typeof e&&"undefined"!==typeof a[e]&&(f=f+encodeURIComponent(e)+"\x3d"+encodeURIComponent(a[e])+"\x26")});f=f.substring(0,f.length-1);n=Payone.ClientApi.Defaults.clientApiUrl+f;g=document.createElement("script");g.setAttribute("type","text/javascript");
g.setAttribute("src",n);e.payoneScript=g;window.PayoneGlobals.options=e;document.getElementsByTagName("body")[0].appendChild(g)};this.checkAndStore=this.send=u};Payone.ClientApi.HostedIFrames=function(a,e){var u,f,n,g,B,v,C,w,D,k,E,p,F,r="",z=!1,m,h={value:null,maxlength:null,length:null,applyToInput:null},G=!1,H=!1,I=!1,J=!1,K=!1,L=!1,A="object"===typeof a.autoCardtypeDetection&&!("boolean"===typeof a.autoCardtypeDetection.deactivate&&!0===a.autoCardtypeDetection.deactivate),x="object"===typeof a.fields.cardtype?
null:!1,s=function(a){var b;b=document.createElement("iframe");b.frameBorder=0;b.setAttribute("scrolling","no");b.allowtransparency="true";b.height=N(a);b.width=O(a);b.src=Payone.ClientApi.Defaults.iFrameUrl;switch(a){case Payone.ClientApi.InputTypes.cardpan:f=b;u.appendChild(b);break;case Payone.ClientApi.InputTypes.cardcvc2:g=b;n.appendChild(b);break;case Payone.ClientApi.InputTypes.cardexpiremonth:v=b;B.appendChild(b);break;case Payone.ClientApi.InputTypes.cardexpireyear:w=b;C.appendChild(b);break;
case Payone.ClientApi.InputTypes.cardtype:k=b,D.appendChild(b)}},l=function(a,b,c){b=JSON.stringify({event:b,message:c,origin:Payone.ClientApi.Origin});a.postMessage(b,Payone.ClientApi.Defaults.secureDomain)},N=function(d){switch(d){case Payone.ClientApi.InputTypes.cardpan:if(a.fields.cardpan.iframe&&a.fields.cardpan.iframe.height)return a.fields.cardpan.iframe.height;break;case Payone.ClientApi.InputTypes.cardcvc2:if(a.fields.cardcvc2.iframe&&a.fields.cardcvc2.iframe.height)return a.fields.cardcvc2.iframe.height;
break;case Payone.ClientApi.InputTypes.cardexpiremonth:if(a.fields.cardexpiremonth.iframe&&a.fields.cardexpiremonth.iframe.height)return a.fields.cardexpiremonth.iframe.height;break;case Payone.ClientApi.InputTypes.cardexpireyear:if(a.fields.cardexpireyear.iframe&&a.fields.cardexpireyear.iframe.height)return a.fields.cardexpireyear.iframe.height;break;case Payone.ClientApi.InputTypes.cardtype:if(a.fields.cardtype.iframe&&a.fields.cardtype.iframe.height)return a.fields.cardtype.iframe.height}return a.defaultStyle.iframe.height||
"auto"},O=function(d){switch(d){case Payone.ClientApi.InputTypes.cardpan:if(a.fields.cardpan.iframe&&a.fields.cardpan.iframe.width)return a.fields.cardpan.iframe.width;break;case Payone.ClientApi.InputTypes.cardcvc2:if(a.fields.cardcvc2.iframe&&a.fields.cardcvc2.iframe.width)return a.fields.cardcvc2.iframe.width;break;case Payone.ClientApi.InputTypes.cardexpiremonth:if(a.fields.cardexpiremonth.iframe&&a.fields.cardexpiremonth.iframe.width)return a.fields.cardexpiremonth.iframe.width;break;case Payone.ClientApi.InputTypes.cardexpireyear:if(a.fields.cardexpireyear.iframe&&
a.fields.cardexpireyear.iframe.width)return a.fields.cardexpireyear.iframe.width;break;case Payone.ClientApi.InputTypes.cardtype:if(a.fields.cardtype.iframe&&a.fields.cardtype.iframe.width)return a.fields.cardtype.iframe.width}return a.defaultStyle.iframe.width||"auto"},y=function(){E&&(E="");p&&(p.innerHTML="")},P=function(d){var b;try{if(d&&d.data&&(b=JSON.parse(d.data))&&b.event)switch(b.event){case Payone.ClientApi.MessageEvents.ready:d.source==f.contentWindow?(z=!0,t(f.contentWindow,Payone.ClientApi.InputTypes.cardpan),
l(d.source,Payone.ClientApi.MessageEvents.value,{type:Payone.ClientApi.InputTypes.cardtype,value:r}),l(d.source,Payone.ClientApi.MessageEvents.setRequestData,{requestData:e,clientApiUrl:Payone.ClientApi.Defaults.clientApiUrl})):d.source==v.contentWindow?t(v.contentWindow,Payone.ClientApi.InputTypes.cardexpiremonth):d.source==w.contentWindow?t(w.contentWindow,Payone.ClientApi.InputTypes.cardexpireyear):g&&d.source==g.contentWindow?t(g.contentWindow,Payone.ClientApi.InputTypes.cardcvc2):k&&d.source==
k.contentWindow&&t(k.contentWindow,Payone.ClientApi.InputTypes.cardtype);break;case Payone.ClientApi.MessageEvents.value:if(d.source&&d.source==f.contentWindow){y();var c=b.message;if("VALID"===c.status)c.errorcode=null,c.errormessage=null;else{c.pseudocardpan=null;c.truncatedcardpan=null;c.cardtype=null;c.cardexpiredate=null;switch(c.errorcode){case "31":case "1076":case "880":c.errormessage=m.invalidCardtype||Payone.ClientApi.Language.en.invalidCardtype;break;case "33":case "1077":c.errormessage=
m.invalidExpireDate||Payone.ClientApi.Language.en.invalidExpireDate;break;case "877":case "878":case "1078":c.errormessage=m.invalidCardpan||Payone.ClientApi.Language.en.invalidCardpan;break;case "879":case "1079":c.errormessage=m.invalidCvc||Payone.ClientApi.Language.en.invalidCvc;break;case "1075":c.errormessage=m.invalidIssueNumber||Payone.ClientApi.Language.en.invalidIssueNumber;break;default:c.errormessage=m.transactionRejected||Payone.ClientApi.Language.en.transactionRejected}p&&p.appendChild(document.createTextNode(c.errormessage))}window[F]({status:c.status,
pseudocardpan:c.pseudocardpan,truncatedcardpan:c.truncatedcardpan,cardtype:c.cardtype,cardexpiredate:c.cardexpiredate,errorcode:c.errorcode,errormessage:c.errormessage})}else y(),l(f.contentWindow,Payone.ClientApi.MessageEvents.value,b.message),d.source&&d.source==k.contentWindow&&(x=null!==x),a.fields&&a.fields.cardcvc2&&("object"===typeof a.fields.cardcvc2.length||a.fields.cardcvc2.maxlength)&&b.message&&b.message.type&&"cardtype"===b.message.type&&(h={value:b.message.value,maxlength:a.fields.cardcvc2.maxlength,
length:a.fields.cardcvc2.length,applyToInput:!1},l(f.contentWindow,Payone.ClientApi.MessageEvents.cardtypeChanged,h),h.applyToInput=!0,l(g.contentWindow,Payone.ClientApi.MessageEvents.cardtypeChanged,h));break;case Payone.ClientApi.MessageEvents.isComplete:d.source===f.contentWindow&&(G=b.message.isComplete,H=b.message.isCardTypeComplete,I=b.message.isCardpanComplete,J=b.message.isCvcComplete,K=b.message.isExpireMonthComplete,L=b.message.isExpireYearComplete);break;case Payone.ClientApi.MessageEvents.cardtypeDetection:var q=
Payone.ClientApi.Defaults.cardtypeUnknown;A&&b.message&&(d=q=b.message,d!==Payone.ClientApi.Defaults.cardtypeUnknown&&a.autoCardtypeDetection.supportedCardtypes.length&&-1===a.autoCardtypeDetection.supportedCardtypes.indexOf(d)&&(d=Payone.ClientApi.Defaults.cardtypeNotConfigured),q=d,!x||q!==Payone.ClientApi.Defaults.cardtypeUnknown&&q!==Payone.ClientApi.Defaults.cardtypeNotConfigured)&&("function"===typeof a.autoCardtypeDetection.callback&&a.autoCardtypeDetection.callback(q),M(q,"cardtypeDetection"))}}catch(R){}},
t=function(d,b){var c=[],e,f,g,h,k,n={},p=[];switch(b){case Payone.ClientApi.InputTypes.cardpan:f=a.fields.cardpan.style||a.defaultStyle.input||"";e=a.fields.cardpan.type||"text";g=a.fields.cardpan.size||null;h=a.fields.cardpan.maxlength||null;break;case Payone.ClientApi.InputTypes.cardcvc2:f=a.fields.cardcvc2.style||a.defaultStyle.input||"";e=a.fields.cardcvc2.type||"text";g=a.fields.cardcvc2.size||null;h=a.fields.cardcvc2.maxlength||null;k=a.fields.cardcvc2.length||null;break;case Payone.ClientApi.InputTypes.cardexpiremonth:e=
a.fields.cardexpiremonth.type||"select";f="select"===e?a.fields.cardexpiremonth.style||a.defaultStyle.select||"":a.fields.cardexpiremonth.style||a.defaultStyle.input||"";g=a.fields.cardexpiremonth.size||null;h=a.fields.cardexpiremonth.maxlength||null;n=m.months;break;case Payone.ClientApi.InputTypes.cardexpireyear:e=a.fields.cardexpireyear.type||"select";f="select"===e?a.fields.cardexpireyear.style||a.defaultStyle.select||"":a.fields.cardexpireyear.style||a.defaultStyle.input||"";g=a.fields.cardexpireyear.size||
null;h=a.fields.cardexpireyear.maxlength||null;break;case Payone.ClientApi.InputTypes.cardtype:e="select",f=a.fields.cardtype.style||a.defaultStyle.select||"",g=a.fields.cardtype.size||null,h=a.fields.cardtype.maxlength||null,p=a.fields.cardtype.cardtypes||[],n=m.pleaseSelectCardType}c.push(f);c.push(e);c.push(g);c.push(h);c.push(n);c.push(b);c.push(p);c.push(m.placeholders);c.push(k);l(d,Payone.ClientApi.MessageEvents.render,c)},Q=function(){switch(document.activeElement){case k:case f:case g:case v:case w:l(document.activeElement.contentWindow,
Payone.ClientApi.MessageEvents.focus)}},M=function(d,b){"undefined"===typeof b&&(x=!0);r=d;z&&(y(),l(f.contentWindow,Payone.ClientApi.MessageEvents.value,{type:Payone.ClientApi.InputTypes.cardtype,value:r}),h.value=r,null===h.length&&null===h.maxlength&&(h.maxlength=a.fields.cardcvc2.maxlength||null,h.length=a.fields.cardcvc2.length||null),h.applyToInput=!1,l(f.contentWindow,Payone.ClientApi.MessageEvents.cardtypeChanged,h),h.applyToInput=!0,l(g.contentWindow,Payone.ClientApi.MessageEvents.cardtypeChanged,
h),k&&k.contentWindow&&l(k.contentWindow,Payone.ClientApi.MessageEvents.cardtypeChanged,r))};(function(){a.error&&document.getElementById(a.error)&&(p=document.getElementById(a.error));if("object"===typeof a.autoCardtypeDetection&&"object"===typeof a.autoCardtypeDetection.supportedCardtypes&&"number"===typeof a.autoCardtypeDetection.supportedCardtypes.length)for(var d in a.autoCardtypeDetection.supportedCardtypes)a.autoCardtypeDetection.supportedCardtypes.hasOwnProperty(d)&&(a.autoCardtypeDetection.supportedCardtypes[d]=
a.autoCardtypeDetection.supportedCardtypes[d].toUpperCase());else a.autoCardtypeDetection={},a.autoCardtypeDetection.supportedCardtypes=[];window.addEventListener("message",P);if(a.fields.cardpan&&a.fields.cardpan.selector&&document.getElementById(a.fields.cardpan.selector))u=document.getElementById(a.fields.cardpan.selector),s(Payone.ClientApi.InputTypes.cardpan);else throw Error("Configuration Problem: Property 'fields.cardpan.selector' is mandatory");if(a.fields.cardexpiremonth&&a.fields.cardexpiremonth.selector&&
document.getElementById(a.fields.cardexpiremonth.selector))B=document.getElementById(a.fields.cardexpiremonth.selector),s(Payone.ClientApi.InputTypes.cardexpiremonth);else throw Error("Configuration Problem: Property 'fields.cardexpiremonth.selector' is mandatory");if(a.fields.cardexpireyear&&a.fields.cardexpireyear.selector&&document.getElementById(a.fields.cardexpireyear.selector))C=document.getElementById(a.fields.cardexpireyear.selector),s(Payone.ClientApi.InputTypes.cardexpireyear);else throw Error("Configuration Problem: Property 'fields.cardexpireyear.selector' is mandatory");
if(a.fields.cardcvc2&&a.fields.cardcvc2.selector&&document.getElementById(a.fields.cardcvc2.selector)){if(a.fields.cardcvc2.length&&"object"===typeof a.fields.cardcvc2.length)for(var b in a.fields.cardcvc2.length)"string"===typeof b&&a.fields.cardcvc2.length.hasOwnProperty(b)&&(a.fields.cardcvc2.length[b.toUpperCase()]=a.fields.cardcvc2.length[b]);n=document.getElementById(a.fields.cardcvc2.selector);s(Payone.ClientApi.InputTypes.cardcvc2)}a.fields.cardtype&&a.fields.cardtype.selector&&document.getElementById(a.fields.cardtype.selector)&&
(D=document.getElementById(a.fields.cardtype.selector),s(Payone.ClientApi.InputTypes.cardtype));m=a.language||Payone.ClientApi.Language.en})();this.setCardType=function(a){M(a)};this.enableCardTypeDetection=function(){A=!0};this.disableCardTypeDetection=function(){A=!1};this.isComplete=function(){return z&&G};this.isCardTypeComplete=function(){return H};this.isCvcComplete=function(){return J};this.isCardpanComplete=function(){return I};this.isExpireMonthComplete=function(){return K};this.isExpireYearComplete=
function(){return L};this.creditCardCheck=function(a){y();F=a;l(f.contentWindow,Payone.ClientApi.MessageEvents.creditcardcheck)};/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.setInterval(Q,100)}})();
/*
 * BS PayOne Client API script 
 */

var bspo = {};

bspo.Init = function (request, languageCode, isMobile) {
  try {
    this.supportedCardtypes = ["V", "M", "A"];

    var configGeneral = {
      fields: {
        cardpan: {
          selector: "BScardpan",
          type: "input"
        },
        cardcvc2: {
          selector: "BScardcvc",
          type: "text",
          length: { "V": 3, "M": 3, "A": 4 }
        },
        cardexpiremonth: {
          selector: "BScardexpiremonth",
          type: "select"
        },
        cardexpireyear: {
          selector: "BScardexpireyear",
          type: "select"
        }
      },
      autoCardtypeDetection: {
        supportedCardtypes: this.supportedCardtypes
      },
      language: Payone.ClientApi.Language[languageCode] || Payone.ClientApi.Language.de,
      error: "BSerror"
    };

    this.configDesktop = $.extend({
      defaultStyle: {
        input: "font-size: 1em; border: 0; width: 100%; height: 32px; padding-left: 5px;",
        select: "font-size: 1em; border: 0; width: 100%; height: 32px; padding-left: 5px;",
        iframe: {
          height: "32px",
          width: "100%"
        }
      }
    }, configGeneral);

    this.configMobile = $.extend({
      defaultStyle: {
        input: "font-size: 1em; border: 1px solid #c6c6c6; width: 100%; height: 34px; padding-left: .2em; background: #f9f9f9;",
        select: "font-size: 1em; border: 1px solid #c6c6c6; width: 100%; height: 34px; padding-left: .2em; background: #f9f9f9;",
        iframe: {
          height: "34px",
          width: "100%"
        }
      }
    }, configGeneral);

    this.iframes = new Payone.ClientApi.HostedIFrames(!!isMobile ? this.configMobile : this.configDesktop, request);

    bspo.CheckCard = function (sender) {
      var showLadda = typeof Ladda !== "undefined" && $(sender).hasClass("ladda-button");

      if (showLadda) {
        Ladda.create(sender).start();
      }

      if (this.iframes.isComplete()) {
        this.iframes.creditCardCheck('bspoCheckCallBack');
      } else {
        let bser = $('#BSerror');
        bser.text(bser.attr("BSvalidateMessage"));
        if (showLadda) {
          setTimeout(function () { Ladda.stopAll(); }, 100);          
        }
      }
    };

  } catch (e) {
    ADI.persistSaleAction(1015, 1, '{1BA8F220-C00A-4C21-82B4-FE5EA4971A62}', 'PayOne purchase Exception. Exception: ' + ex.message, false, true);
  }
};

//non-global functions do not work as callback for some reason. something with 'eval'?
function bspoCheckCallBack(response) {
  try {
    if (response.status === "VALID") {
      var $form = $("form#bspoform");
      $form.find("#pseudotoken").val(response.pseudocardpan);
      document.bspoform.submit();
    }
    else {
      Ladda.stopAll();
    }
  }  
  catch (e) {
    ADI.persistSaleAction(1015, 1, '{7B2B6F78-AAF5-469D-976C-BC034A50A11A}', 'PayOne purchase Exception. Exception: ' + ex.message, false, true);
  } 
};
/*
handles sale actions endpoint for client use
 */
var ADI = ADI || {};
ADI.persistSaleAction = function (saleActionType, saleActionOrigin, guid, message, successful, logAsError) {
  if (logAsError) {
    console.error(message);
  }

  $.post(
    faireventAlias + "/Shop/PersistSaleAction",
    {
      SaleActionType: saleActionType,
      SaleActionOrigin: saleActionOrigin,
      Guid: guid,
      Message: message,
      Successful: successful,
      LogAsError: logAsError
    }
  );
}
var ADITUS = ADITUS || {};

(function (window, ADITUS) {
  "use strict";

  let DataTablesTranslations = function () {
    return {
      de: {
        "sEmptyTable": "Keine Daten in der Tabelle vorhanden",
        "sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
        "sInfoEmpty": "0 bis 0 von 0 Einträgen",
        "sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
        "sInfoPostFix": "",
        "sInfoThousands": ".",
        "sLengthMenu": "_MENU_ Einträge pro Seite",
        "sLoadingRecords": "Wird geladen...",
        "sProcessing": "Bitte warten...",
        "sSearch": "<div class=\"input-group\"><span class= \"input-group-addon\"><i class=\"fa fa-search\" aria-hidden=\"true\"></i></span>_INPUT_</div>",
        "sSearchPlaceholder": "Suche",
        "sZeroRecords": "Keine Einträge vorhanden.",
        "oPaginate": {
          "sFirst": "Erste",
          "sPrevious": "Zurück",
          "sNext": "Nächste",
          "sLast": "Letzte"
        },
        "oAria": {
          "sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren",
          "sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren"
        }
      },
      en: {
        "sEmptyTable": "No data available in table",
        "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries",
        "sInfoEmpty": "Showing 0 to 0 of 0 entries",
        "sInfoFiltered": "(filtered from _MAX_ total entries)",
        "sInfoPostFix": "",
        "sInfoThousands": ",",
        "sLengthMenu": "_MENU_ entries per page",
        "sLoadingRecords": "Loading...",
        "sProcessing": "Processing...",
        "sSearch": "<div class=\"input-group\"><span class= \"input-group-addon\"><i class=\"fa fa-search\" aria-hidden=\"true\"></i></span>_INPUT_</div>",
        "sSearchPlaceholder": "Search",
        "sZeroRecords": "No matching records found",
        "oPaginate": {
          "sFirst": "First",
          "sLast": "Last",
          "sNext": "Next",
          "sPrevious": "Previous"
        },
        "oAria": {
          "sSortAscending": ": activate to sort column ascending",
          "sSortDescending": ": activate to sort column descending"
        }
      }
    };
  };

  ADITUS.Helper = ADITUS.Helper || {};
  ADITUS.Helper.DataTables = ADITUS.Helper.DataTables || {};
  ADITUS.Helper.DataTables.Translations = ADITUS.Helper.DataTables.Translations || new DataTablesTranslations();

})(window, ADITUS);


var questionListsClientConditionComparer = {
  QuestionListConditions: function () {
    var conditionElements = [];
    var comparableProperties = [];
    var scope = typeof angular !== 'undefined' ? angular.element($(".registerTickets")).scope() : false;
    var requestCounter = 0;
    var bindingPrefix = '';

    var options = {
      entryClassName: 'adi-questioncatalog',
      logging: false
    };

    /**
     * Initializes QuestionListConditions "class" with options
     * @param {any} optionsParam options to merge with default options
     */
    var init = function (optionsParam) {
      if (optionsParam !== undefined) {
        options.entryClassName = optionsParam.entryClassName || options.entryClassName;
        options.logging = optionsParam.logging || options.logging;
      }
      var conditionContainers = $('.' + options.entryClassName + '').find('[data-condition-structure]');
      var sampleIndex = conditionContainers.first().attr('id') || '';
      bindingPrefix = sampleIndex.slice(0, sampleIndex.lastIndexOf('_') + 1);

      $(conditionContainers).each(function () {
        var _self = this;
        conditionElements.push({
          container: $(_self),
          conditionStructure: $(_self).data('condition-structure'),
          conditionInternalId: $(_self).data('condition-structure').Condition.ConditionInternalId
        });

        addEventHandlerOfElementTypeRecursive(handleConditionValidation, $(_self).data('condition-structure'));
      });

      if (conditionContainers && conditionContainers.length > 0 && conditionElements && conditionElements.length > 0) {
        handleConditionValidation();
      }
    };

    /**
     * calls self on obj param properties iteration and adds event methods with function addEventHandlerOfElementType
     * @param {any} eventHandler method to bind
     * @param {any} obj obj to iterate its properties
     * @param {any} stack current layer in recursion
     */
    var addEventHandlerOfElementTypeRecursive = function (eventHandler, obj, stack) {
      for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
          if (typeof obj[property] == "object") {
            addEventHandlerOfElementTypeRecursive(handleConditionValidation, obj[property], stack + '.' + property);
          } else {
            if (property === 'PropertyName') {
              comparableProperties.push({
                name: obj[property],
                htmlName: getHtmlName(obj[property]),
                htmlId: getHtmlId(obj[property])
              });
              var element = $(':input[name="' + getHtmlName(obj[property]) + '"]');
              if (element.length > 0) {
                if ($(element).is('input:radio')) {
                  var radioElements = $('#' + getHtmlId(obj[property]) + '-container').find('input:radio');
                  if (radioElements.length > 0) {
                    $(radioElements).each(function () {
                      addEventHandlerOfElementType($(this), eventHandler);
                    });
                  }
                } else {
                  addEventHandlerOfElementType(element, eventHandler);
                }
              } else {
                var checkboxElements = $('#' + getHtmlId(obj[property]) + '-container').find('input:checkbox');
                if (checkboxElements.length > 0) {
                  $(checkboxElements).each(function () {
                    addEventHandlerOfElementType($(this), eventHandler);
                  });
                }
              }
            }
          }
        }
      }
    };

    /**
     * calls bindQuestionListEventHandler depending on controlElement dom type
     * @param {any} controlElement dom element to bind eventHandler
     * @param {any} eventHandler event method to bind at controlElement
     */
    var addEventHandlerOfElementType = function (controlElement, eventHandler) {
      if ($(controlElement).is('input:text')) {
        bindQuestionListEventHandler('blur', controlElement, eventHandler);
      }
      if ($(controlElement).is('input:checkbox')
        || $(controlElement).is('input:text[data-role="dropdownlist"]')
        || $(controlElement).is('input:text.adi-dropdownlist')
        || $(controlElement).is('input:radio')) {
        bindQuestionListEventHandler('change', controlElement, eventHandler);
      }
    };

    /**
     * binds eventHandler method to element with event eventName
     * @param {any} eventName event method to bind
     * @param {any} element element to bind to
     * @param {any} eventHandler event method to bind
     */
    var bindQuestionListEventHandler = function (eventName, element, eventHandler) {
      $(element).off(eventName, eventHandler).on(eventName, eventHandler);
    };

    /**
     * sends condition validation to server, calls changeDomConditional to chan ge dom elements depending on server result
     */
    var handleConditionValidation = function () {
      if (scope) {
        scope.$apply(function () { scope.form.IsRequestInProgess = true; });
        requestCounter++;
      }
      var propertyValues = [];
      $(comparableProperties).each(function () {
        var property = this;
        var el = $(':input[name="' + property.htmlName + '"]');
        var value;

        if (el.length > 0) {
          if ($(el).is('input:text')) {
            value = $(el).val();
          } else if ($(el).is('input:checkbox')) {
            if (el.length > 1) {
              var checkboxEls = $('#' + property.htmlId + '-container').find('input:checkbox:checked');
              if (checkboxEls.length > 0) {
                var _vals = [];
                $(checkboxEls).each(function () {
                  _vals.push($(this).val());
                });
                value = _vals.join();
              }
            } else {
              value = $(el).prop('checked');
            }
          } else if ($(el).is('input:radio')) {
            value = $('#' + property.htmlId + '-container').find('input:radio:checked').val();
          }
        } else {
          var checkboxElements = $('#' + property.htmlId + '-container').find('input:checkbox:checked');
          if (checkboxElements.length > 0) {
            var _values = [];
            $(checkboxElements).each(function () {
              _values.push($(this).val());
            });
            value = _values.join();
          }
        }

        var propertyValuesObj = {
          key: property.name,
          value: value || ''
        };

        if (propertyValues.filter(function (n) { return n.key === property.name; }).length === 0) {
          propertyValues.push(propertyValuesObj);
        }

      });
      var data = {
        conditionElements: conditionElements.map(function (n) {
          return {
            key: $(n.container).attr('id'),
            value: n.conditionInternalId
          };
        }),
        propertyValues: propertyValues
      };

      log(data);

      var location = window.location.href.split("/");
      var url = location[0] + "//" + location[2] + ($('[data-baseurl]').data('baseurl').endsWith('/') ? $('[data-baseurl]').data('baseurl').substr(0, $('[data-baseurl]').data('baseurl').length - 1) : $('[data-baseurl]').data('baseurl')) + '/QuestionCatalog/ValidateCondition?SkipCultureDetect=true';
      $.ajax({
        method: 'POST',
        url: url,
        data: data,
        success: function (data) {
          log('-- success');
          if (data.result.length > 0) {
            $(data.result).each(function () {
              var _self = this;
              log($('#' + _self.element));
              log(conditionElements.filter(function (n) { return n.conditionInternalId === _self.conditionInternalId; })[0].conditionStructure.Condition);
              log(_self.result);

              changeDomConditional($('#' + _self.element), conditionElements.filter(function (n) { return n.conditionInternalId === _self.conditionInternalId; })[0].conditionStructure.Condition, _self.result);
            });
          }
        },
        error: function (jqXHR, textStatus, errorThrown) {
          log('-- error ' + textStatus);

        },
        complete: function (data) {
          log('-- completed');
          if (scope) {
            requestCounter--;
            if (requestCounter <= 0) {
              scope.$apply(function () { scope.form.IsRequestInProgess = false; });
            }
          }
        }
      });
    };

    /**
     * Changes DOM element depending on the result and the condition.HandleFailType
     * @param {any} element element to change visibility
     * @param {any} condition condition depending on change (contains HandleFailType)
     * @param {any} result result of condition
     */
    var changeDomConditional = function (element, condition, result) {
      var inputElementString = $(element).find('[id^="' + $(element).attr('id').substr(0, $(element).attr('id').indexOf('-container')) + '"]').attr('id').substr(0, $(element).attr('id').indexOf('-container'));
      var invisibleElements = $(element).find('[name="' + inputElementString + '"]:not([type="hidden"])')
      var invisibleIndicatorHidden = '<input id="InvisibleQuestions-' + inputElementString + '" type="hidden" name="' + getHtmlName('InvisibleQuestions[]') + '" value="' + extractBindingProperty(inputElementString) + '"></input>'

      $(element).find('[id^="InvisibleButSent-"]').remove();
      $(element).find('[id^="InvisibleQuestions-"]').remove();

      if (!result) {

        // disable element / elements
        var elements = $(element).find('#' + $(element).attr('id').substr(0, $(element).attr('id').indexOf('-container')));
        if (elements.length === 0) {
          elements = $(element).find('[id^="' + $(element).attr('id').substr(0, $(element).attr('id').indexOf('-container')) + '"]');
        }
        elements.attr('disabled', 'disabled').attr('readonly', 'readonly').addClass('disabled');

        if (condition.HandleFailType === 0) {
          $(element).addClass('hidden');
          if (!$(element).siblings('[id]:not(.hidden)').length) {
            let parentpanelbar = $(element).closest('li');
            parentpanelbar.addClass('hidden');
            let activepanelbar = parentpanelbar.siblings('.k-state-active:first');
            if (scope && !activepanelbar.nextAll('li:not(.hidden)').length) {
              activepanelbar.closest('form').find('[type="submit"], [data-jssubmit="1"]').show();
              activepanelbar.closest('form').find('[data-target-direction="1"]').hide();
            }
          }
        }

        $(invisibleElements).each(function () {
          if ($(this).is('input:checkbox') || $(this).is('input:radio')) {
            if ($(this).is(':checked')) {
              $(element).append('<input id="InvisibleButSent-' + $(this).attr('id') + '" type="hidden" name="' + inputElementString + '" value="' + $(this).val() + '"></input>');
            }
          } else {
            $(element).append('<input id="InvisibleButSent-' + $(this).attr('id') + '" type="hidden" name="' + inputElementString + '" value="' + $(this).val() + '"></input>');
          }
        });

        $(element).append(invisibleIndicatorHidden);

        toggleClientValidation(element, inputElementString, false);
      } else {

        if (condition.HandleFailType === 0) {
          $(element).removeClass('hidden');
          let parentpanelbar = $(element).closest('li');
          parentpanelbar.removeClass('hidden');
          let activepanelbar = parentpanelbar.siblings('.k-state-active:first');
          if (scope && activepanelbar.nextAll('li:not(.hidden)').length) {
            activepanelbar.closest('form').find('[type="submit"], [data-jssubmit="1"]').hide();
            activepanelbar.closest('form').find('[data-target-direction="1"]').show();
          }
        }

        var elements = $(element).find('#' + $(element).attr('id').substr(0, $(element).attr('id').indexOf('-container')));
        if (elements.length === 0) {
          elements = $(element).find('[id^="' + $(element).attr('id').substr(0, $(element).attr('id').indexOf('-container')) + '"]');
        }
        elements.removeAttr('disabled').removeAttr('readonly').removeClass('disabled');

        toggleClientValidation(element, inputElementString, true);
      }
    }

    var toggleClientValidation = function (element, name, active) {
      if (active) {
        if ($(element).hasClass('client-validation-disabled')) {
          $(element).addClass('required').removeClass('client-validation-disabled');
          if ($(element).closest('form').data('validator').settings.rules[name]) {
            $(element).closest('form').data('validator').settings.rules[name].required = active;
          }
        }
      } else {
        if ($(element).hasClass('required')) {
          $(element).addClass('client-validation-disabled').removeClass('required');
          if ($(element).closest('form').data('validator').settings.rules[name]) {
            $(element).closest('form').data('validator').settings.rules[name].required = active;
          }
        }
      }
    }

    /**
     * Helper to get HtmlName of Field
     * @param {any} s field to get Html Name from
     */
    var getHtmlName = function (s) {
      var prefix = bindingPrefix ? bindingPrefix.replace(/_/g, '.') : '';
      return prefix + s.replace(/[\.\[\]]/g, '');
    };

    var extractBindingProperty = function (s) {
      var prefix = bindingPrefix ? bindingPrefix : '';
      var s1 = s.replace(/[\.\[\]]/g, '');
      return s1.replaceAll(prefix, '');
    };

    var getHtmlId = function (s) {
      var prefix = bindingPrefix ? bindingPrefix : '';
      return prefix + s.replace(/[\.\[\]]/g, '');
    };

    /**
     * Log objs to console, if options.logging is true
     * @param {any} s objs to log
     */
    var log = function (s) {
      if (options.logging) console.log(s);
    };

    return {
      Init: function () {
        conditionStructure = [];
        init({
          entryClassName: 'adi-questionlist',
          logging: false
        });
      }
    };
  }
};


var ADITUS = ADITUS || {};

$.extend(ADITUS, questionListsClientConditionComparer);

$(document).ready(function () {
  ADITUS.QuestionListConditions().Init();
});
var questionListsMaxSelections = {
  QuestionListsMaxSelections: function () {

    /**
     * Initializes an event named checkBoxHandlers for all checkBoxes in dom-elements with attribute data-max-selections
     */
    var init = function () {
      $('[data-max-selections]').each(function () {
        var checkBoxes = $(this).find('input:checkbox');
        var checked = $(this).find('input:checkbox:checked');
        var unchecked = $(this).find('input:checkbox:not(:checked)');

        if (checked.length >= parseInt($(this).data('max-selections'))) {
          unchecked.each(function () {
            $(this).attr('disabled', 'disabled');
          });
        }

        if (checkBoxes.length > 0) {
          checkBoxes.each(function () {
            $(this).off('change', checkBoxHandler).on('change', checkBoxHandler);
          });
        }
      });
    };

    /**
     * Event handler for property MaxSelection of Question
     * @param {any} e
     */
    var checkBoxHandler = function (e) {
      var container = $(e.target).closest('[data-max-selections]');
      var checked = container.find('input:checkbox:checked');
      var unchecked = container.find('input:checkbox:not(:checked)');
      if (checked.length >= parseInt(container.data('max-selections'))) {
        unchecked.each(function () {
          $(this).attr('disabled', 'disabled');
        });
      } else {
        unchecked.each(function () {
          $(this).removeAttr('disabled');
        });
      }
    };
    return {
      Init: function () {
        init();
      }
    };
  }
};

var ADITUS = ADITUS || {};

$.extend(ADITUS, questionListsMaxSelections);

$(document).ready(function () {
  ADITUS.QuestionListsMaxSelections().Init();
});
(function (window, $, ADITUS) {
  "use strict";

  let QuestionCatalogTableView = function () {
    let options = {};

    String.prototype.replaceIndex = function (oldIndex, newIndex) {
      return this.valueOf().replace(new RegExp('_' + oldIndex + '_', "g"), '_' + newIndex + '_')
        .replace(new RegExp("(\\\"\\[name='[\\w.]+\\[)(" + oldIndex + ")", "g"), "$1" + newIndex);
    };

    const onClearTableClick = function () {
      options.form.find('table').find('tbody').children().not(':first').remove();
      options.form.find("tr[data-modelIndex]").find('td :input').each(function () {
        var $input = $(this);
        if (!$input.is('[readonly="readonly"]') && !$input.is('[data-readonly-hidden-input-for]')) {
          var kendoDropDown = $input.data('kendoDropDownList');
          if (typeof kendoDropDown !== 'undefined') { //Sonderbehandlung für KendoDropdownLists
            kendoDropDown.value('');
          } else {
            $input.val('');
            hiddenTrigger($input, 'clear');
          }
        }

        prefillInput($input);
      });
      toggleRemoveButtons();
    };

    const hiddenTrigger = function ($input, ev) {
      if ($input.attr('type') === 'hidden' || $input.is("[data-fileupload-input]")) {
        $input.trigger(ev);
      }
    }

    const executeCallback = function () {
      let callback = options.form.find('table').attr('data-datastore-client-callback');
      if (callback !== undefined && window[callback] !== undefined) {
        window[callback].call(this, options.dataStore.storeCount);
      }
    };

    const onSubmitSuccess = function (data) {
      if (data) {
        options.form.find('.ql-submitresultcontainer').html(data.html);
      }

      options.dataStore = data;
      executeCallback();

      if (data.success) {
        onClearTableClick();
        ADI.BlobHelper.clearForm(options.form);
      }
      else {
        options.form.valid();
      }
    };

    const onSubmitAlways = function (msg) {
      toggleSubmitButton(true);

      options.form.find('tr:last input').each(function () {
        let attrValue = $(this).attr('data-name');
        $(this).removeAttr('data-name');
        $(this).attr('name', attrValue);
      });

    };

    const onSubmitTableClick = function () {
      var lastInputs = options.form.find('tr:last input');
      if (!areInputsEdited(lastInputs)) {
        lastInputs.each(function () {
          let attrValue = $(this).attr('name');
          $(this).removeAttr('name');
          $(this).attr('data-name', attrValue);
        });
      }

      const formData = ADI.BlobHelper.getFormData(options.form);
      formData.set('action', 'add');
      formData.set('MaxCapacity', options.form.find('table').attr("data-maxtotalcount"));
      formData.set('guid', options.form.find('table').attr("data-question-catalog-guid"));
      let dupIdent = options.form.find('table').attr("data-duplicate-identifiers");
      let dupCheck = !options.form.find('[data-dupicate-toggle]').prop('checked');
      if (dupIdent)
        $.each(dupIdent.split(','), function (ind, elem) {
          formData.set('DuplicateCheckIdentifiers[' + ind + '].Key', elem);
          formData.set('DuplicateCheckIdentifiers[' + ind + '].Value', dupCheck);
        });

      reinitValidation();

      try {
        toggleSubmitButton();
        $.ajax({
          method: 'POST',
          url: options.dataStoreActionCallbackUri,
          data: formData,
          contentType: false,
          processData: false,
          statusCode: {
            200: function (data) {
              onSubmitSuccess(data);
            }
          }
        })
          .always(onSubmitAlways);
      } catch (e) {
        toggleSubmitButton(true);
      }
    };

    this.getDuplicateData = function (formdata) {

    }

    let reinitValidation = function () {
      ADI.Helper.InitFormValidation(options.form);

      var validationSettings = options.form.data("validator").settings;

      (function (baseIgnore) {
        validationSettings.ignore = function (index, element) {
          var $elem = $(element);
          if ($elem.closest("tr").is(":last-child")) {
            return true;
          }
          if ($elem.attr("data-hidden-validation")) {
            return false;
          }
          return baseIgnore.call(this, index, element);
        };
      }(validationSettings.ignore));
    };


    let checkRowCount = function (sourceElement) {
      let table = $(sourceElement).closest("table");
      let rows = $(table).find('tbody > tr');
      let rowCounter = rows.length;
      let maxRows = parseInt(table.attr("data-table-maxrowcount"));

      if (rowCounter >= maxRows) {
        return false;
      }
      return true;
    };

    let prefillInput = function ($elem) {
      if (!$elem.is("[data-row-persistent]") && !$elem.is('[readonly="readonly"]') && !$elem.is('[data-readonly-hidden-input-for]')) {
        let ename = $elem.attr('name');
        let ekey = ename ? ename.split('.').pop() : 'undefined';
        $elem.val(options.presetQuestions[ekey] || '').removeAttr('checked').removeAttr('selected');
        hiddenTrigger($elem, 'clear');

        var inputKDDL = $elem.data('kendoDropDownList');
        if (inputKDDL) {
          //Reinitialize selected item
          inputKDDL.value(inputKDDL.value());
        }
      }
    }

    let addQuestionRow = function () {
      if (!checkRowCount(this)) {
        toggleRemoveButtons();
        return;
      }
      var currentRow = $(this).closest("tr[data-modelIndex]");

      if (!currentRow.length || currentRow.next('tr').length) {
        return;
      }

      reinitValidation();

      var currentIndex = parseInt(currentRow.attr("data-modelIndex"));
      var newIndex = currentIndex + 1;
      var newRow = currentRow.clone(true, true);
      var rowScript = document.createElement("script");

      newRow.attr('data-modelIndex', newIndex).find('td.ql-rowindex').html(newIndex + 1);

      $(':input, span', newRow).change(addQuestionRow).each(function () {

        var $elem = $(this);
        prefillInput($elem);

        $elem.removeClass("input-validation-error");
        $.each(['name', 'id', 'data-valmsg-for'], function () {
          var attrVal = $elem.attr(this);
          if (attrVal) {
            $elem.attr(this, attrVal.replace(currentIndex, newIndex));
          }
        });
      });

      $('script', newRow).each(function () {
        var $script = $(this);
        $script.detach(); //appending with jquery suppresses script.onload
        rowScript.text += $script.html().replaceIndex(currentIndex, newIndex);
      });

      currentRow.after(newRow);
      newRow[0].appendChild(rowScript);
      $('span.k-input.k-datepicker', newRow).removeClass('k-input');
      $('.k-state-active.k-state-focused.k-state-border-down', newRow).removeClass('k-state-active k-state-focused k-state-border-down');
      toggleRemoveButtons();
      tooltipResetHard();
    };

    let tooltipResetHard = function() {
      options.form.find('[data-toggle=tooltip]')
        .data('bs.tooltip', null)
        .tooltip('destroy')
        .tooltip({ container: 'body', trigger: 'hover' });
    }

    let removeQuestionRow = function (row) {
      var nextRow = row.next('tr');

      if (!nextRow.length) {        
        row.remove();
        reinitValidation();
        toggleRemoveButtons();
        options.form.find('tr:last-child').find('.input-validation-error').removeClass('input-validation-error');        
        return;
      }

      var indexCurrent = parseInt(row.attr("data-modelIndex"));
      var indexNext = indexCurrent + 1;

      $(':input', row).not('button').each(function () {
        var $input = $(this);
        var inputName = $input.attr('name');
        if (!inputName || $input.is("[data-row-persistent]")) {
          return;
        }

        var nextRowName = inputName.replace(/\[(\d+)+\]/g, function (match, number) {
          return '[' + (parseInt(number) + 1) + ']';
        });

        var nextRowInput = $('input[name="' + nextRowName + '"]');

        if (!nextRowInput.length) {
          return;
        }
        var inputKDDL = $input.data('kendoDropDownList');

        if (!inputKDDL)
          $input.val(nextRowInput.val()).prop('checked', nextRowInput.prop('checked'));
        else {
          inputKDDL.select(function (item) { return item.Value === nextRowInput.data('kendoDropDownList').value(); });

          if (!inputKDDL.value() && nextRowInput.data('kendoDropDownList').value()) {
            inputKDDL.value(nextRowInput.data('kendoDropDownList').value());
          }
        }

        hiddenTrigger($input, "change");
      });

      removeQuestionRow(nextRow);
    };

    let onDeleteClick = function () {
      $('[data-toggle="tooltip"]').tooltip("hide");
      removeQuestionRow($(this).closest("tr[data-modelIndex]"));
      options.dataStore.storeCount -= 1;
      executeCallback();
    };

    let areInputsEdited = function (inputs) {
      return inputs.filter(function () {
          var $this = $(this);
          return !$this.is(':hidden') && $this.val() != "" && $this.val() != this.defaultValue;
        }).length > 0;
    }

    let toggleRemoveButtons = function () {
      var $buttonList = $(options.selectors.guid + ' ' + options.selectors.buttons.delete).addClass('invisible');
      var table = options.form.find('table');
      if ($buttonList.length !== 1 || table.attr('data-table-maxrowcount') === '1' && areInputsEdited(table.find('input'))) {
        $buttonList.not(':last').removeClass('invisible');
        $('#btnQcClearTable').removeClass('hidden');
        $('#btnQcSubmitRows').removeClass('hidden');
      } else {
        $('#btnQcClearTable').addClass('hidden');
        $('#btnQcSubmitRows').addClass('hidden');
      }
    };

    let toggleSubmitButton = function (stopLadda) {
      $('#ql-IconSubmit').toggleClass('hidden');
      if (stopLadda) {
        Ladda.create(document.getElementById('btnQcSubmitRows')).stop();
      }
    };

    let unlockEmptyPrefills = function () {
      var hiddenPrefilledInputs = $('.adi-questioncatalog input[data-readonly-hidden-input-for][type=hidden]');

      hiddenPrefilledInputs.each(function (index, hiddenInput) {
        if (!hiddenInput.getAttribute('value')) {
          var bindingMemberName = hiddenInput.getAttribute('data-readonly-hidden-input-for');
          var visibleInput = document.getElementById(bindingMemberName.replace(/[\[\].]/g, '_'));

          if (visibleInput) {
            visibleInput.setAttribute('name', bindingMemberName);
            visibleInput.removeAttribute('readonly');
            hiddenInput.remove();
          }
        }
      });
    };

    let initTable = function () {
      $(options.selectors.buttons.submitTable, options.form).each(function () { $(this).off('click', onSubmitTableClick).on('click', onSubmitTableClick); });
      $(options.selectors.buttons.clearTable, options.form).each(function () { $(this).off('click', onClearTableClick).on('click', onClearTableClick); });
      $(':input', options.selectors.guid + ' tr[data-modelIndex]').change(addQuestionRow);
      $('.adi-dateeditor', options.selectors.guid + ' tr[data-modelIndex]').removeClass('adi-dateeditor');
      $(options.selectors.guid + ' ' + options.selectors.buttons.delete).each(function () { $(this).off('click', onDeleteClick).on('click', onDeleteClick); });
      toggleRemoveButtons();
      unlockEmptyPrefills();

      Ladda.bind(options.selectors.buttons.submitTable);
    };

    this.Init = function (params) {
      options = {
        guid: params.guid,
        preview: params.preview,
        dataStoreActionCallbackUri: params.dataStoreActionCallbackUri,
        selectors: {
          buttons: {
            submitTable: '[data-question-catalog-table-action="submit-table"]',
            clearTable: '[data-question-catalog-table-action="clear-table"]',
            delete: '[data-question-catalog-row-action="delete"]'
          },
          guid: '[data-question-catalog-guid="' + params.guid + '"]'
        },
        form: $('.table-questioncatalog[data-question-catalog-guid="' + params.guid + '"]').closest('form'),
        dataStore: {
          storeCount: 0
        }
      };
      options.presetQuestions = JSON.parse(options.form.find('table').attr("data-preset-questions"));

      initTable();
      reinitValidation();
    };

  };

  ADITUS.QuestionCatalogs = ADITUS.QuestionCatalogs || {};
  ADITUS.QuestionCatalogs.RenderModes = ADITUS.QuestionCatalogs.RenderModes || {};
  ADITUS.QuestionCatalogs.RenderModes.Table = ADITUS.QuestionCatalogs.RenderModes.Table || {};
  $.extend(true, ADITUS.QuestionCatalogs.RenderModes.Table, new QuestionCatalogTableView());

})(window, jQuery, ADITUS);

(function (window, $, ADITUS) {
  "use strict";

  let QuestionCatalogTablePreviewView = function () {

    let options = {};

    const initPreviewEvents = function (scope) {
      $(options.selectors.buttons.delete, scope).each(function () { $(this).off('click', onDeleteOpenModal).on('click', onDeleteOpenModal); });
      $(options.selectors.buttons.showEdit, scope).each(function () { $(this).off('click', onShowEditClick).on('click', onShowEditClick); });
      $(options.selectors.buttons.saveEdit, scope).each(function () { $(this).off('click', onSaveEditClick).on('click', onSaveEditClick); });
      $(options.selectors.buttons.cancelEdit, scope).each(function () { $(this).off('click', onCancelEditClick).on('click', onCancelEditClick); });
    };

    const initDataTable = function () {
      $(options.form).find('table').DataTable({
        dom: '<<"col-xs-12 col-sm-6 p-10"f><"col-xs-12 col-sm-6 p-10 form-inline"l><t><"col-xs-12 col-sm-6 p-10"i><"col-xs-12 col-sm-6 p-10"p>>',
        language: ADITUS.Helper.DataTables.Translations[$('html').attr('lang')],
        initComplete: function () {
          options.form.find('.dataTables_length select').addClass('form-control').attr('style', 'height: 36px;margin-top: 0;padding-top: 7px;');
        },
        order: [[1, "asc"]]
      });
    };

    let modalConfirm = function (callback) {
      $(options.deletePreviewModal).modal('show');

      $(options.selectors.buttons.modal.delete, options.form).on("click", function () {
        callback(true);
        $(options.deletePreviewModal).modal('hide');
      });

      $(options.selectors.buttons.modal.cancel, options.form).on("click", function () {
        callback(false);
        $(options.deletePreviewModal).modal('hide');
      });
    };

    const onDeleteOpenModal = function (callback) {
      var _self = this;
      modalConfirm(function (confirm) {
        if (confirm) {
          onDeleteClick(options, _self);
        }
      });
    };

    const onDeleteClick = function (options, target) {
      options.form.find('.ql-submitresultcontainer').html('');

      let postData = $(target).closest('tr').find('input, select').serializeArray();
      postData.push({ name: 'CatalogContext.Index', value: '1' });
      postData.push({ name: 'action', value: 'delete' });
      postData.push({ name: 'guid', value: options.form.find('table').attr("data-question-catalog-guid") });
      let onSuccessCallback = options.form.find('table').attr('data-datastore-client-callback');


      try {
        $.ajax({
          method: 'POST',
          url: options.dataStoreActionCallbackUri,
          data: postData
        }).done(function (data) {
          if (data) {
            options.form.find('.ql-submitresultcontainer').html(data.html);
          }
          if (data.success) {
            var datatable = $(options.form).find('table').DataTable();
            $(target).closest('tr').fadeOut(200, function () {
              datatable.row($(target).closest('tr')).remove().draw(false);
            });
          }
          if (onSuccessCallback !== undefined && window[onSuccessCallback] !== undefined) {
            window[onSuccessCallback].call(this, data.storeCount);
          }
        }).fail(function () {
          showPreviewRow($(target).closest('tr'));
        });
      } catch (e) {
        unblockTable();
      }

    };

    const retrieveMissingFileInputBlobs = (el) => {
      $(el).find('[data-fileupload-input]').each(function() {
        const $this = $(this);

        const currentBlob = ADI.BlobHelper.getBlob($this);
        const value = $this.val();
        if (!currentBlob && value) {
          const blob = ADI.BlobHelper.createBlobFromBase64(value);
          ADI.BlobHelper.setBlob($this, blob);
        } 
      });
    };

    const onSaveEditClick = function () {
      options.form.find('.ql-submitresultcontainer').html('');

      let _self = this;
      let row = $(this).closest('tr');

      AdiLoader(row).ShowLoadingIndicator();

      retrieveMissingFileInputBlobs(row);

      const formData = ADI.BlobHelper.getFormData(row);
      formData.set('action', 'update');
      formData.set('guid', options.form.find('table').attr("data-question-catalog-guid"));
      let dupIdent = options.form.find('table').attr("data-duplicate-identifiers");
      let dupCheck = !options.form.find('[data-dupicate-toggle]').prop('checked');
      if (dupIdent)
        $.each(dupIdent.split(','), function (ind, elem) {
          formData.set('DuplicateCheckIdentifiers[' + ind + '].Key', elem);
          formData.set('DuplicateCheckIdentifiers[' + ind + '].Value', dupCheck);
        });
      let onSuccessCallback = options.form.find('table').attr('data-datastore-client-callback');

      reinitValidation();

      if (options.form.valid()) {
        try {
          $.ajax({
            method: 'POST',
            url: options.dataStoreActionCallbackUri,
            data: formData,
            contentType: false,
            processData: false
          }).done(function (data) {
            if (data) {
              options.form.find('.ql-submitresultcontainer').html(data.html);
            }
            if (data.success) {
              onSaveSuccess(row.attr('data-modelindex'), $(_self).closest('tr'));
            } else {
              AdiLoader(row).HideLoadingIndicator();
            }
            if (onSuccessCallback !== undefined && window[onSuccessCallback] !== undefined) {
              window[onSuccessCallback].call(this, data.storeCount);
            }
            unblockTable();
          }).fail(function () {
            AdiLoader(row).HideLoadingIndicator();
            showPreviewRow($(_self).closest('tr'));
            unblockTable();
          });
        } catch (e) {
          unblockTable();
        }

        return;
      }

      AdiLoader(row).HideLoadingIndicator();
    };

    const onShowEditClick = function () {
      let row = $(this).closest('tr');

      AdiLoader(row).ShowLoadingIndicator();

      let postData = row.find('input, select').serializeArray();
      postData.push({ name: 'action', value: 'ShowSingleEditRow' });
      postData.push({ name: 'guid', value: options.form.find('table').attr("data-question-catalog-guid") });
      postData.push({ name: 'base64EncodedUseCaseInformation', value: options.form.find('[name="Base64EncodedUseCaseInformation"]').val() });
      postData.push({ name: 'currentModelIndex', value: row.attr('data-modelindex') });

      try {
        $.ajax({
          method: 'POST',
          url: options.dataStoreActionCallbackUri,
          data: postData
        }).done(function (data) {
          if (data) {
            row.after(data);
            var editRow = row.next();
            editRow.attr('data-edit-row-for', row.attr('data-modelindex'));
            $(options.selectors.buttons.delete + ', ' + options.selectors.buttons.showEdit, options.form).fadeOut(200).promise().done(function () { });
            row.fadeOut(200, function () {
              initPreviewEvents(editRow);
              blockTable();
              editRow.fadeIn(200, function () { });
              AdiLoader(row).HideLoadingIndicator();
              ADI.Helper.ReinitializeComponents();
            });

          }
        }).fail(function () {
          unblockTable();
          AdiLoader(row).HideLoadingIndicator();
        });
      } catch (e) {
        unblockTable();
        AdiLoader(row).HideLoadingIndicator();
      }

    };

    const onCancelEditClick = function () {
      options.form.find('.ql-submitresultcontainer').html('');
      $(this).closest('tr').find('td').each(function () {
        if ($('input', this).length > 0) {
          var inputKDDL = $('input', this).data('kendoDropDownList');
          var resetVal = $(this).attr('data-reset-val');
          if (!inputKDDL)
            $('input', this).val(resetVal).filter(':hidden').trigger('change');
          else {
            if (inputKDDL.value() !== resetVal) {
              inputKDDL.trigger('change');
              inputKDDL.select(function (item) {
                return item.Value === resetVal;
              });
            }
          }
        }
      });
      showPreviewRow($(this).closest('tr'));
    };

    const onSaveSuccess = function (modelIndex, target) {
      let row = options.form.find('tr[data-modelindex="' + modelIndex + '"]');
      if (row.length > 1) {
        row = row.not(target);
      }

      let postData = row.find('input, select').serializeArray();
      postData.push({ name: 'action', value: 'ShowSinglePreviewRow' });
      postData.push({ name: 'guid', value: options.form.find('table').attr("data-question-catalog-guid") });
      postData.push({ name: 'Base64EncodedUseCaseInformation', value: options.form.find('[name="Base64EncodedUseCaseInformation"]').val() });
      postData.push({ name: 'currentModelIndex', value: row.attr('data-modelindex') });

      try {
        $.ajax({
          method: 'POST',
          url: options.dataStoreActionCallbackUri,
          data: postData
        }).done(function (data) {
          if (data) {
            row.after(data);
            var previewRow = row.next();
            target.fadeOut(200, function () {
              AdiLoader(row).HideLoadingIndicator();
              previewRow.fadeIn(200, function () {
                $('.tooltip').tooltip('destroy');
                var datatable = $(options.form).find('table').DataTable();

                datatable.row(target).remove();
                target.remove();

                if (target.get(0) !== row.get(0)) {
                  datatable.row(row).remove();
                  row.remove();
                }

                datatable.rows.add(previewRow);

                $(options.selectors.buttons.delete, options.form).fadeIn(200, function () { });
                $(options.selectors.buttons.showEdit, options.form).fadeIn(200, function () { });

                datatable.draw(false);

                initPreviewEvents(previewRow);
              });
            });
          }
        }).fail(function () {
          showPreviewRow($(_self).closest('tr'));
        });
      } catch (e) {
        console.log(e);
      }
    };

    const showDataRow = function (tableRowContext) {
      $(options.selectors.buttons.delete, tableRowContext).addClass('hide');
      $(options.selectors.buttons.showEdit, tableRowContext).addClass('hide');

      $(options.selectors.buttons.saveEdit, tableRowContext).removeClass('hide');
      $(options.selectors.buttons.cancelEdit, tableRowContext).removeClass('hide');

      $(options.selectors.cells.data, tableRowContext).removeClass('hide');
      $(options.selectors.cells.preview, tableRowContext).addClass('hide');
    };

    const showPreviewRow = function (tableRowContext) {
      $(options.selectors.buttons.delete, options.form).fadeIn(200, function () { });
      $(options.selectors.buttons.showEdit, options.form).fadeIn(200, function () {
        tableRowContext.fadeOut(200, function () {
          $('tr[data-modelindex="' + tableRowContext.attr('data-edit-row-for') + '"]', options.form.find('table')).not(tableRowContext).fadeIn(200, function () {
            tableRowContext.remove();
            unblockTable();
          });
        });
      });
    };

    const reinitValidation = function () {
      ADI.Helper.InitFormValidation(options.form);

      var validationSettings = options.form.data("validator").settings;

      options.form.find('input, select').off('keyup paste change', validateSilent).on('keyup paste change', validateSilent);

    };

    const validateSilent = function () {
      var validate = options.form.validate();
      var isValid = validate.checkForm();
    };

    const blockTable = function () {
      var tr = options.form.find('.dataTable thead tr').not('.hidden').clone(false);
      options.form.find('.dataTable thead tr').addClass('hidden');
      options.form.find('.dataTable thead').prepend(tr.addClass('clone'));

      options.form.find('.dataTables_filter, .dataTables_length, .dataTables_paginate, .dataTable thead tr th').block({
        fadeIn: 200,
        fadeOut: 200,
        message: '',
        overlayCSS: {
          backgroundColor: '#fff',
          opacity: 0.8,
          cursor: 'wait'
        },
        css: {
          border: 0,
          padding: 0,
          backgroundColor: 'transparent'
        }
      });
    };

    const unblockTable = function () {
      options.form.find('.dataTable thead tr.clone').remove();
      options.form.find('.dataTable thead tr').removeClass('hidden');
      options.form.find('.dataTables_filter, .dataTables_length, .dataTables_paginate, .dataTable thead tr th').unblock();
    };

    this.Init = function (params) {
      options = {
        guid: params.guid,
        preview: params.preview,
        dataStoreActionCallbackUri: params.dataStoreActionCallbackUri,
        selectors: {
          buttons: {
            delete: '[data-question-catalog-row-action="delete"]',
            showEdit: '[data-question-catalog-row-action="show-edit"]',
            saveEdit: '[data-question-catalog-row-action="save-edit"]',
            cancelEdit: '[data-question-catalog-row-action="cancel-edit"]',
            modal: {
              delete: '[data-question-catalog-modal-btn="delete"]',
              cancel: '[data-question-catalog-modal-btn="cancel"]'
            }
          },
          cells: {
            data: '[data-preview-mode-container="data"]',
            preview: '[data-preview-mode-container="preview"]'
          },
          guid: '[data-question-catalog-guid="' + params.guid + '"]',
          scope: '[data-question-catalog-guid="' + params.guid + '"]'
        },
        form: $('.table-questioncatalog[data-question-catalog-guid="' + params.guid + '"]').closest('form'),
        deletePreviewModal: $('.table-questioncatalog[data-question-catalog-guid="' + params.guid + '"]').closest('form').find('[data-question-catalog-modal="delete-preview-row"]')
      };
      initPreviewEvents(options.selectors.scope);
      initDataTable();

      $(options.form).on('change', '[data-preview-is-editable] input', onSaveEditClick);
    };
  };

  ADITUS.QuestionCatalogs = ADITUS.QuestionCatalogs || {};
  ADITUS.QuestionCatalogs.RenderModes = ADITUS.QuestionCatalogs.RenderModes || {};
  ADITUS.QuestionCatalogs.RenderModes.Table = ADITUS.QuestionCatalogs.RenderModes.Table || {};
  ADITUS.QuestionCatalogs.RenderModes.Table.Preview = new QuestionCatalogTablePreviewView();

})(window, jQuery, ADITUS);
var ADITUS = ADITUS || {};

(function (window, $, ADITUS) {
  "use strict";

  const RenderModes = {
    None: -1,
    Structure: 0,
    Flat: 1,
    Table: 2
  };

  let QuestionCatalogs = function () {
    this.Init = function (params) {
      let options = {
        guid: params.guid,
        rendermode: params.rendermode,
        preview: params.preview,
        dataStoreActionCallbackUri: params.dataStoreActionCallbackUri,
        fileimport: params.fileimport
      };

      switch (options.rendermode) {
        case RenderModes.None:
          break;
        case RenderModes.Flat:
          break;
        case RenderModes.Table:
          if (options.preview) {
            ADITUS.QuestionCatalogs.RenderModes.Table.Preview.Init(options);
          } else {
            ADITUS.QuestionCatalogs.RenderModes.Table.Init(options);
          }
          break;
        default:
      }
    };

    let tweakKendoScript = function ($script, $input) {
      try {
        var context = $input.parent().closest('[id]').attr('id');
        return $script.html().replace("\"#" + $input.attr('id') + "\"",
          "\"[name='" + $input.attr('name') + "']\", $(\"#" + context + "\")");
      } catch (e) {
        return null;
      }
    }

    this.InitKendo = function () {
      $('input[data-controltype][id]').each(function () {
        var $input = $(this), $script = $input.closest('td').find('script');
        $script.html(tweakKendoScript($script, $input));
        if(!$input.attr("data-role"))
          $("<script></script>").html($script.detach().html()).insertBefore($input);
      }).removeAttr('id');
    };
  };

  ADITUS.QuestionCatalogs = $.extend(true, ADITUS.QuestionCatalogs, new QuestionCatalogs());
  ADITUS.QuestionCatalogs.Current = [];
})(window, jQuery, ADITUS);


const questionModifiers = {
  QuestionModifiers: function () {
    const options = {
      entryClassName: 'adi-questioncatalog',
      logging: false
    };

    var handlerFactory = {};

    const handleModifiers = function (event) {
      var modifiers = {};
      const $target = $(event.target);

      modifiers = $(event.target).data('questionModifiers');

      if (!modifiers) {
        const containerId = `${event.target.id}-container`;
        modifiers = $(`#${containerId}`).data('questionModifiers');
      }

      if (!modifiers) {
        return;
      }

      $(modifiers)
        .sort((a, b) => a.AccessOrder - b.AccessOrder)
        .each(function () {
          const params = {
            key: this.ModifierName,
            target: $target,
            additionalParameters: this.AdditionalParameters
          };
          handlerFactory.execute(params);
        });
    };

    const handleBeginTrim = function(params) {
      $(params.target).val($(params.target).val().trimStart());
    };

    const handleEndTrim = function(params) {
      $(params.target).val($(params.target).val().trimEnd());
    };

    const handleCompleteTrim = function(params) {
      $(params.target).val($(params.target).val().trim());
    };

    const handleToUpperCase = function(params) {
      $(params.target).val($(params.target).val().toUpperCase());
    };

    const handleToLowerCase = function(params) {
      $(params.target).val($(params.target).val().toLowerCase());
    };

    const handleToTitleCase = function(params) {
      const currentValue = $(params.target).val();
      if (!currentValue) {
        return;
      }

      const result = currentValue
        .split(' ')
        .map((w) => w.length ? (w[0].toUpperCase() + w.substr(1).toLowerCase()) : w)
        .join(' ');

      $(params.target).val(result);
    };

    const handleReplace = function(params) {
      const searchPattern = params.additionalParameters.ReplacePattern;
      const searchValue = params.additionalParameters.ReplaceValue;
      if (searchPattern && searchValue) {
        const regEx = new RegExp(searchPattern, 'ig');
        $(params.target).val($(params.target).val().replace(regEx, searchValue));
      }
    };

    const init = function (optionsParam) {
      if (optionsParam !== undefined) {
        options.entryClassName = optionsParam.entryClassName || options.entryClassName;
      }

      handlerFactory = ModifierHandlerFactory();
      handlerFactory.addHandler('BeginTrimModifier', handleBeginTrim);
      handlerFactory.addHandler('EndTrimModifier', handleEndTrim);
      handlerFactory.addHandler('AllTrimModifier', handleCompleteTrim);
      handlerFactory.addHandler('ToUpperCaseModifier', handleToUpperCase);
      handlerFactory.addHandler('ToLowerCaseModifier', handleToLowerCase);
      handlerFactory.addHandler('ToTitleCaseModifier', handleToTitleCase);
      handlerFactory.addHandler('ReplaceModifier', handleReplace);

      const modifierContainers = $(`.${options.entryClassName}`).find('[data-question-modifiers]');
      $(modifierContainers).each(function () {
        if (typeof this.type !== 'undefined' && this.type === 'text') {
          $(this).on('blur', handleModifiers);
        } else {
          $(this).on('blur', 'input:text', handleModifiers);
        }
      });
    };

    const ModifierHandlerFactory = function () {
      const map = {};

      const addHandler = function (key, func) {
        if (!map[key]) {
          map[key] = [];
        }

        map[key].push(func);
      };

      const execute = function(params) {
        const handlers = map[params.key];

        if (!handlers) {
          return;
        }

        for (const handler of handlers) {
          handler(params);
        }
      };

      return { addHandler, execute };
    };

    return {
      Init: function () {
        init({
          entryClassName: 'adi-questioncatalog'
        });
      }
    };
  }
};

var ADITUS = window.ADITUS || {};

$.extend(ADITUS, questionModifiers);

$(document).ready(function () {
  ADITUS.QuestionModifiers().Init();
});

var loadingOverlayDurationMS = 4000;
var badResultDurationMS = 5000;

var m_pathNameArray = document.location.pathname.split('/');

$(document).ready(function () {
  ModifyRegisterPage();
});

function ModifyRegisterPage() {
  var urlContainsRegister = 
    (!!m_pathNameArray[2] && m_pathNameArray[2].toLowerCase().includes('register')) 
    || (!!m_pathNameArray[3] && m_pathNameArray[3].toLowerCase().includes('register'));
  if (urlContainsRegister && m_IsRedirectAfterRegistrationEnabled) {
    NextToActionBuyerData();
  }
}

function NextToActionBuyerData() {
  setTimeout(function () {
    var alertSuccessElements = document.getElementsByClassName('alert alert-fa alert-success');
    var alertInfoElements = document.getElementsByClassName('alert alert-fa alert-info');
    var alertDangerElements = document.getElementsByClassName('alert alert-fa alert-danger');

    if (alertSuccessElements.length == 1 || alertInfoElements.length == 1) {
      setTimeout(function () {
        LoadAnimation();
        window.location = m_ActionBuyerData;
      }, 250)
    } else if (alertDangerElements.length == 1) {
      setTimeout(function () {
        Abort();
      }, badResultDurationMS)
    } else {
      // Wenn noch nicht fertig, erneut versuchen
      NextToActionBuyerData();
    }
  }, 1000);
}

function LoadAnimation() {
  if (!AllFormsValid()) {
    return;
  }

  var $overlayLoader = $('#overlayLoader');
  var $contentWithoutNav = $('#ContentWithoutNav');
  var $content = $('#Content');
  var $navElements = $('.pageNav');

  $overlayLoader.show();
  $contentWithoutNav.css('opacity', 0.2);
  $content.css('opacity', 0.2);
  $navElements.css('opacity', 0.2);

  setTimeout(function () {
    $overlayLoader.hide();
    $contentWithoutNav.css('opacity', 1);
    $content.css('opacity', 1);
    $navElements.css('opacity', 1);
  }, loadingOverlayDurationMS);
}

function AllFormsValid() {
  var forms = $('form');
  for (var i = 0; i < forms.length; i++) {
    var form = $(forms[i]);

    if (!form.valid()) {
      return false;
    }
  }
  return true;
}

function Abort() {
}
/* pwstrength-bootstrap 2018-02-25 - GPLv3 & MIT License */

!function (r) { var o = {}; !function (r, o) { "use strict"; r.fallback = { wordMinLength: "Your password is too short", wordMaxLength: "Your password is too long", wordNotEmail: "Do not use your email as your password", wordSimilarToUsername: "Your password cannot contain your username", wordTwoCharacterClasses: "Use different character classes", wordRepetitions: "Too many repetitions", wordSequences: "Your password contains sequences", wordCountLowerChars: "Not enough lower characters", wordCountUpperChars: "Not enough upper characters", wordCountNumbers: "Not enough numbers", wordCountSpecialChars: "Not enough special characters", errorList: "Errors:", veryWeak: "Very Weak", weak: "Weak", normal: "Normal", medium: "Medium", strong: "Strong", veryStrong: "Very Strong" }, r.t = function (e) { var s = ""; return (s = o ? o.t(e) : r.fallback[e]) === e ? "" : s } }(o, window.i18next); var e = {}; try { if (!r && module && module.exports) { r = require("jquery"); var s = require("jsdom").jsdom; r = r(s().defaultView) } } catch (r) { } !function (r, o) { "use strict"; var e = {}; o.forbiddenSequences = ["0123456789", "abcdefghijklmnopqrstuvwxyz", "qwertyuiop", "asdfghjkl", "zxcvbnm", "!@#$%^&*()_+"], e.wordNotEmail = function (r, o, e) { return o.match(/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i) ? e : 0 }, e.wordMinLength = function (r, o, e) { var s = o.length, t = Math.pow(s, r.rules.raisePower); return s < r.common.minChar && (t += e), t }, e.wordMaxLength = function (r, o, e) { var s = o.length, t = Math.pow(s, r.rules.raisePower); return s > r.common.maxChar ? e : t }, e.wordCountLowerChars = function (r, o, e) { if (0 == r.common.minCountLowerChars) return 0; for (var s = 0, t = 0; s < o.length; s++)/[a-z]/.test(o.charAt(s)) && t++; return t < r.common.minCountLowerChars ? e : 0 }, e.wordCountUpperChars = function (r, o, e) { if (0 == r.common.minCountUpperChars) return 0; for (var s = 0, t = 0; s < o.length; s++)/[A-Z]/.test(o.charAt(s)) && t++; return t < r.common.minCountUpperChars ? e : 0 }, e.wordCountSpecialChars = function (r, o, e) { if (0 == r.common.minCountSpecialChars) return 0; for (var s = 0, t = 0; s < o.length; s++)/[!@#$%\^&*?_,~"\/()=`+';.:\-<>|\u20AC\u00B0\u00A3\u00A7\u00B4{\[\]}\\]/.test(o.charAt(s)) && t++; return t < r.common.minCountSpecialChars ? e : 0 }, e.wordCountNumbers = function (r, o, e) { if (0 == r.common.minCountNumbers) return 0; for (var s = 0, t = 0; s < o.length; s++)/[0-9]/.test(o.charAt(s)) && t++; return t < r.common.minCountNumbers ? e : 0 }, e.wordMinLengthStaticScore = function (r, o, e) { return o.length < r.common.minChar ? 0 : e }, e.wordMaxLengthStaticScore = function (r, o, e) { return o.length > r.common.maxChar ? 0 : e }, e.wordSimilarToUsername = function (o, e, s) { var t = r(o.common.usernameField).val(); return t && e.toLowerCase().match(t.replace(/[\-\[\]\/\{\}\(\)\*\+\=\?\:\.\\\^\$\|\!\,]/g, "\\$&").toLowerCase()) ? s : 0 }, e.wordTwoCharacterClasses = function (r, o, e) { return o.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) || o.match(/([a-zA-Z])/) && o.match(/([0-9])/) || o.match(/(.[!,@,#,$,%,\^,&,*,?,_,~])/) && o.match(/[a-zA-Z0-9_]/) ? e : 0 }, e.wordRepetitions = function (r, o, e) { return o.match(/(.)\1\1/) ? e : 0 }, e.wordSequences = function (e, s, t) { var n, a = !1; return s.length > 2 && (r.each(o.forbiddenSequences, function (o, e) { if (!a) { var t = [e, e.split("").reverse().join("")]; r.each(t, function (r, o) { for (n = 0; n < s.length - 2; n += 1)o.indexOf(s.toLowerCase().substring(n, n + 3)) > -1 && (a = !0) }) } }), a) ? t : 0 }, e.wordLowercase = function (r, o, e) { return o.match(/[a-z]/) && e }, e.wordUppercase = function (r, o, e) { return o.match(/[A-Z]/) && e }, e.wordOneNumber = function (r, o, e) { return o.match(/\d+/) && e }, e.wordThreeNumbers = function (r, o, e) { return o.match(/(.*[0-9].*[0-9].*[0-9])/) && e }, e.wordOneSpecialChar = function (r, o, e) { return o.match(/[!,@,#,$,%,\^,&,*,?,_,~]/) && e }, e.wordTwoSpecialChar = function (r, o, e) { return o.match(/(.*[!,@,#,$,%,\^,&,*,?,_,~].*[!,@,#,$,%,\^,&,*,?,_,~])/) && e }, e.wordUpperLowerCombo = function (r, o, e) { return o.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) && e }, e.wordLetterNumberCombo = function (r, o, e) { return o.match(/([a-zA-Z])/) && o.match(/([0-9])/) && e }, e.wordLetterNumberCharCombo = function (r, o, e) { return o.match(/([a-zA-Z0-9].*[!,@,#,$,%,\^,&,*,?,_,~])|([!,@,#,$,%,\^,&,*,?,_,~].*[a-zA-Z0-9])/) && e }, e.wordIsACommonPassword = function (o, e, s) { return r.inArray(e, o.rules.commonPasswords) >= 0 ? s : 0 }, o.validation = e, o.executeRules = function (e, s) { var t = 0; return r.each(e.rules.activated, function (n, a) { if (a) { var i, c, u = e.rules.scores[n], d = o.validation[n]; r.isFunction(d) || (d = e.rules.extra[n]), r.isFunction(d) && ((i = d(e, s, u)) && (t += i), (i < 0 || !r.isNumeric(i) && !i) && (c = e.ui.spanError(e, n)).length > 0 && e.instances.errors.push(c)) } }), t } }(r, e); try { module && module.exports && (module.exports = e) } catch (r) { } var t = { errors: {} }; t.errors.texts = { wordMinLength: "Your password is too short!", wordMaxLength: "Your password is too long!", wordNotEmail: "Do not use your email as your password!", wordSimilarToUsername: "Your password cannot contain your username!", wordTwoCharacterClasses: "Use different character classes!", wordRepetitions: "Too many repetitions!", wordSequences: "Your password contains sequences!", wordCountLowerChars: "Not enough lower characters!", wordCountUpperChars: "Not enough upper characters!", wordCountNumbers: "Not enough numbers!", wordCountSpecialChars: "Not enough special characters!", errorList: "Errors:", veryWeak: "Very Weak", weak: "Weak", normal: "Normal", medium: "Medium", strong: "Strong", veryStrong: "Very Strong" }, t.common = {}, t.common.minChar = 6, t.common.maxChar = 20, t.common.minCountLowerChars = 0, t.common.minCountUpperChars = 0, t.common.minCountSpecialChars = 0, t.common.minCountNumbers = 0, t.common.usernameField = "#username", t.common.userInputs = [], t.common.onLoad = void 0, t.common.onKeyUp = void 0, t.common.onScore = void 0, t.common.zxcvbn = !1, t.common.zxcvbnTerms = [], t.common.events = ["keyup", "change", "paste"], t.common.debug = !1, t.rules = {}, t.rules.extra = {}, t.rules.scores = { wordNotEmail: -100, wordSimilarToUsername: -100, wordIsACommonPassword: -100, wordRepetitions: -25, wordSequences: -25, wordMinLength: -30, wordMaxLength: -50, wordCountLowerChars: -10, wordCountUpperChars: -10, wordCountSpecialChars: -10, wordCountNumbers: -10, wordTwoCharacterClasses: 2, wordLowercase: 1, wordUppercase: 3, wordOneNumber: 3, wordThreeNumbers: 5, wordOneSpecialChar: 3, wordTwoSpecialChar: 5, wordUpperLowerCombo: 2, wordLetterNumberCombo: 2, wordLetterNumberCharCombo: 2 }, t.rules.activated = { wordNotEmail: !0, wordMinLength: !0, wordMaxLength: !1, wordSimilarToUsername: !0, wordSequences: !0, wordCountLowerChars: !0, wordCountUpperChars: !0, wordCountSpecialChars: !0, wordCountNumbers: !0, wordTwoCharacterClasses: !0, wordRepetitions: !0, wordLowercase: !0, wordUppercase: !0, wordOneNumber: !0, wordThreeNumbers: !0, wordOneSpecialChar: !0, wordTwoSpecialChar: !0, wordUpperLowerCombo: !0, wordLetterNumberCombo: !0, wordLetterNumberCharCombo: !0, wordIsACommonPassword: !0 }, t.rules.raisePower = 1.4, t.rules.commonPasswords = ["123456", "password", "12345678", "qwerty", "123456789", "12345", "1234", "111111", "1234567", "dragon", "123123", "baseball", "abc123", "football", "monkey", "letmein", "696969", "shadow", "master", "666666", "qwertyuiop", "123321", "mustang", "1234567890", "michael", "654321", "pussy", "superman", "1qaz2wsx", "7777777", "fuckyou", "121212", "000000", "qazwsx", "123qwe", "killer", "trustno1", "jordan", "jennifer", "zxcvbnm", "asdfgh", "hunter", "buster", "soccer", "harley", "batman", "andrew", "tigger", "sunshine", "iloveyou", "fuckme", "2000", "charlie", "robert", "thomas", "hockey", "ranger", "daniel", "starwars", "klaster", "112233", "george", "asshole", "computer", "michelle", "jessica", "pepper", "1111", "zxcvbn", "555555", "11111111", "131313", "freedom", "777777", "pass", "fuck", "maggie", "159753", "aaaaaa", "ginger", "princess", "joshua", "cheese", "amanda", "summer", "love", "ashley", "6969", "nicole", "chelsea", "biteme", "matthew", "access", "yankees", "987654321", "dallas", "austin", "thunder", "taylor", "matrix"], t.ui = {}, t.ui.bootstrap2 = !1, t.ui.bootstrap4 = !1, t.ui.colorClasses = ["danger", "danger", "danger", "warning", "warning", "success"], t.ui.showProgressBar = !0, t.ui.progressBarEmptyPercentage = 1, t.ui.progressBarMinPercentage = 1, t.ui.progressExtraCssClasses = "", t.ui.progressBarExtraCssClasses = "", t.ui.showPopover = !1, t.ui.popoverPlacement = "bottom", t.ui.showStatus = !1, t.ui.spanError = function (r, o) { "use strict"; var e = r.errors.texts[o]; return e ? '<span style="color: #d52929">' + e + "</span>" : "" }, t.ui.popoverError = function (o) { "use strict"; var e = o.instances.errors, s = "<div>" + o.errors.texts.errorList + "<ul class='error-list' style='margin-bottom: 0;'>"; return r.each(e, function (r, o) { s += "<li>" + o + "</li>" }), s += "</ul></div>" }, t.ui.showVerdicts = !0, t.ui.showVerdictsInsideProgressBar = !1, t.ui.useVerdictCssClass = !1, t.ui.showErrors = !1, t.ui.showScore = !1, t.ui.container = void 0, t.ui.viewports = { progress: void 0, verdict: void 0, errors: void 0, score: void 0 }, t.ui.scores = [0, 14, 26, 38, 50], t.i18n = {}, t.i18n.t = o.t; var n = {}; !function (r, o) { "use strict"; var e = ["error", "warning", "success"], s = ["veryWeak", "weak", "normal", "medium", "strong", "veryStrong"]; o.getContainer = function (o, e) { var s; return (s = r(o.ui.container)) && 1 === s.length || (s = e.parent()), s }, o.findElement = function (r, o, e) { return o ? r.find(o).find(e) : r.find(e) }, o.getUIElements = function (r, e) { var s, t; return r.instances.viewports ? r.instances.viewports : (s = o.getContainer(r, e), (t = {}).$progressbar = o.findElement(s, r.ui.viewports.progress, "div.progress"), r.ui.showVerdictsInsideProgressBar && (t.$verdict = t.$progressbar.find("span.password-verdict")), r.ui.showPopover || (r.ui.showVerdictsInsideProgressBar || (t.$verdict = o.findElement(s, r.ui.viewports.verdict, "span.password-verdict")), t.$errors = o.findElement(s, r.ui.viewports.errors, "ul.error-list")), t.$score = o.findElement(s, r.ui.viewports.score, "span.password-score"), r.instances.viewports = t, t) }, o.initProgressBar = function (e, s) { var t = o.getContainer(e, s), n = "<div class='progress "; e.ui.bootstrap2 ? n += e.ui.progressBarExtraCssClasses + "'><div class='" : n += e.ui.progressExtraCssClasses + "'><div class='" + e.ui.progressBarExtraCssClasses + " progress-", n += "bar'>", e.ui.showVerdictsInsideProgressBar && (n += "<span class='password-verdict'></span>"), n += "</div></div>", e.ui.viewports.progress ? t.find(e.ui.viewports.progress).append(n) : r(n).insertAfter(s) }, o.initHelper = function (e, s, t, n) { var a = o.getContainer(e, s); n ? a.find(n).append(t) : r(t).insertAfter(s) }, o.initVerdict = function (r, e) { o.initHelper(r, e, "<span class='password-verdict'></span>", r.ui.viewports.verdict) }, o.initErrorList = function (r, e) { o.initHelper(r, e, "<ul class='error-list'></ul>", r.ui.viewports.errors) }, o.initScore = function (r, e) { o.initHelper(r, e, "<span class='password-score'></span>", r.ui.viewports.score) }, o.initPopover = function (r, o) { o.popover("destroy"), o.popover({ html: !0, placement: r.ui.popoverPlacement, trigger: "manual", content: " " }) }, o.initUI = function (r, e) { r.ui.showPopover ? o.initPopover(r, e) : (r.ui.showErrors && o.initErrorList(r, e), r.ui.showVerdicts && !r.ui.showVerdictsInsideProgressBar && o.initVerdict(r, e)), r.ui.showProgressBar && o.initProgressBar(r, e), r.ui.showScore && o.initScore(r, e) }, o.updateProgressBar = function (e, s, t, n) { var a = o.getUIElements(e, s).$progressbar, i = a.find(".progress-bar"), c = "progress-"; e.ui.bootstrap2 && (i = a.find(".bar"), c = ""), r.each(e.ui.colorClasses, function (r, o) { e.ui.bootstrap4 ? i.removeClass("bg-" + o) : i.removeClass(c + "bar-" + o) }), e.ui.bootstrap4 ? i.addClass("bg-" + e.ui.colorClasses[t]) : i.addClass(c + "bar-" + e.ui.colorClasses[t]), i.css("width", n + "%") }, o.updateVerdict = function (r, e, s, t) { var n = o.getUIElements(r, e).$verdict; n.removeClass(r.ui.colorClasses.join(" ")), s > -1 && n.addClass(r.ui.colorClasses[s]), r.ui.showVerdictsInsideProgressBar && n.css("white-space", "nowrap"), n.html(t) }, o.updateErrors = function (e, s, t) { var n = o.getUIElements(e, s).$errors, a = ""; t || r.each(e.instances.errors, function (r, o) { a += "<li>" + o + "</li>" }), n.html(a) }, o.updateScore = function (r, e, s, t) { var n = o.getUIElements(r, e).$score, a = ""; t || (a = s.toFixed(2)), n.html(a) }, o.updatePopover = function (r, o, e, s) { var t = o.data("bs.popover"), n = "", a = !0; r.ui.showVerdicts && !r.ui.showVerdictsInsideProgressBar && e.length > 0 && (n = "<h5><span class='password-verdict'>" + e + "</span></h5>", a = !1), r.ui.showErrors && (r.instances.errors.length > 0 && (a = !1), n += r.ui.popoverError(r)), a || s ? o.popover("hide") : (r.ui.bootstrap2 && (t = o.data("popover")), t.$arrow && t.$arrow.parents("body").length > 0 ? o.find("+ .popover .popover-content").html(n) : (t.options.content = n, o.popover("show"))) }, o.updateFieldStatus = function (o, s, t, n) { var a = o.ui.bootstrap2 ? ".control-group" : ".form-group", i = s.parents(a).first(); r.each(e, function (r, e) { o.ui.bootstrap2 || (e = "has-" + e), i.removeClass(e) }), n || (t = e[Math.floor(t / 2)], o.ui.bootstrap2 || (t = "has-" + t), i.addClass(t)) }, o.percentage = function (r, o, e) { var s = Math.floor(100 * o / e), t = r.ui.progressBarMinPercentage; return s = (s = s <= t ? t : s) > 100 ? 100 : s }, o.getVerdictAndCssClass = function (r, o) { var e, t; return void 0 === o ? ["", 0] : (e = o <= r.ui.scores[0] ? 0 : o < r.ui.scores[1] ? 1 : o < r.ui.scores[2] ? 2 : o < r.ui.scores[3] ? 3 : o < r.ui.scores[4] ? 4 : 5, t = s[e], [r.errors.texts[t], e]) }, o.updateUI = function (r, e, s) { var t, n, a, i; t = o.getVerdictAndCssClass(r, s), a = 0 === s ? "" : t[0], t = t[1], i = r.ui.useVerdictCssClass ? t : -1, r.ui.showProgressBar && (n = void 0 === s ? r.ui.progressBarEmptyPercentage : o.percentage(r, s, r.ui.scores[4]), o.updateProgressBar(r, e, t, n), r.ui.showVerdictsInsideProgressBar && o.updateVerdict(r, e, i, a)), r.ui.showStatus && o.updateFieldStatus(r, e, t, void 0 === s), r.ui.showPopover ? o.updatePopover(r, e, a, void 0 === s) : (r.ui.showVerdicts && !r.ui.showVerdictsInsideProgressBar && o.updateVerdict(r, e, i, a), r.ui.showErrors && o.updateErrors(r, e, void 0 === s)), r.ui.showScore && o.updateScore(r, e, s, void 0 === s) } }(r, n); !function (r, o) { "use strict"; var s, a, i; s = function (o) { var s, t, a, i, c = r(o.target), u = c.data("pwstrength-bootstrap"), d = c.val(); void 0 !== u && (u.instances.errors = [], 0 === d.length ? i = void 0 : (u.common.zxcvbn ? (s = [], r.each(u.common.userInputs.concat([u.common.usernameField]), function (o, e) { var t = r(e).val(); t && s.push(t) }), s = s.concat(u.common.zxcvbnTerms), i = zxcvbn(d, s).guesses, i = Math.log(i) * Math.LOG2E) : i = e.executeRules(u, d), r.isFunction(u.common.onScore) && (i = u.common.onScore(u, d, i))), n.updateUI(u, c, i), a = (t = n.getVerdictAndCssClass(u, i))[1], t = t[0], u.common.debug && console.log(i + " - " + t), r.isFunction(u.common.onKeyUp) && u.common.onKeyUp(o, { score: i, verdictText: t, verdictLevel: a })) }, a = function (o) { var e, t = r(o.target), n = t.val(), a = 0; e = function () { t.val() !== n ? s(o) : a < 3 && (a += 1, setTimeout(e, 100)) }, setTimeout(e, 100) }, o.init = function (o) { return this.each(function (e, i) { var c = r.extend(!0, {}, t), u = r.extend(!0, c, o), d = r(i); u.instances = {}, d.data("pwstrength-bootstrap", u), r.each(u.common.events, function (r, o) { var e = "paste" === o ? a : s; d.on(o, e) }), n.initUI(u, d), d.trigger("keyup"), r.isFunction(u.common.onLoad) && u.common.onLoad() }), this }, o.destroy = function () { this.each(function (o, e) { var s = r(e), t = s.data("pwstrength-bootstrap"), a = n.getUIElements(t, s); a.$progressbar.remove(), a.$verdict.remove(), a.$errors.remove(), s.removeData("pwstrength-bootstrap") }) }, o.forceUpdate = function () { this.each(function (r, o) { s({ target: o }) }) }, o.addRule = function (o, e, s, t) { this.each(function (n, a) { var i = r(a).data("pwstrength-bootstrap"); i.rules.activated[o] = t, i.rules.scores[o] = s, i.rules.extra[o] = e }) }, i = function (o, e, s) { this.each(function (t, n) { r(n).data("pwstrength-bootstrap").rules[e][o] = s }) }, o.changeScore = function (r, o) { i.call(this, r, "scores", o) }, o.ruleActive = function (r, o) { i.call(this, r, "activated", o) }, o.ruleIsMet = function (o) { if (r.isFunction(e.validation[o])) { "wordMinLength" === o ? o = "wordMinLengthStaticScore" : "wordMaxLength" === o && (o = "wordMaxLengthStaticScore"); var s = 0; return this.each(function (t, n) { var a = r(n).data("pwstrength-bootstrap"); s += e.validation[o](a, r(n).val(), 1) }), s === this.length } r.error("Rule " + o + " does not exist on jQuery.pwstrength-bootstrap.validation") }, r.fn.pwstrength = function (e) { var s; return o[e] ? s = o[e].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof e && e ? r.error("Method " + e + " does not exist on jQuery.pwstrength-bootstrap") : s = o.init.apply(this, arguments), s } }(r, {}) }(jQuery);
//# sourceMappingURL=pwstrength-bootstrap.min.map
/**
 * Anzeige der nicht erfüllten Regeln bei der Passworterstellung, abhängig von den definierten Passwortregeln
 * Anzeige der Passwortstärke
 * "..Scripts\Dependencies\bootstrap-pwstrength\pwstrength-bootstrap.js" muss vorhanden sein
 */
; (function (window, document, $, ADI, undefined) {
  var pwStrengthModule = {
    PasswordStrength: function (params) {

      /**
       * Festlegen der Parameter zur Konfiguration von "pwstrength-bootstrap.js"
       */
      var options = {
        pwStrengthOptionsObj: {
          ui: {
            container: '#pwsDiv',
            showProgressBar: true,
            showVerdictsInsideProgressBar: true,
            showErrors: true,
            viewports: {
              progress: '#pwsP',
              errors: '#pwsP',
            },
            progressBarExtraCssClasses: 'progress-bar-striped active',
          },
          common: {
            debug: true,
            usernameField: '#' + params.IdUserNameField,
            minChar: params.MinimumStringLength,
            maxChar: params.MaximumStringLength,
            minCountLowerChars: params.MinimumCountLowerCharacters,
            minCountUpperChars: params.MinimumCountUpperCharacters,
            minCountSpecialChars: params.MinimumCountSpecialCharacters,
            minCountNumbers: params.MinimumCountNumbers,
          },
          rules: {
            activated: {
              wordNotEmail: false,
              wordSimilarToUsername: false,
              wordSequences: true,
              wordRepetitions: true,
              wordTwoCharacterClasses: true,
              wordMaxLength: (params.MaximumStringLength > 0) ? true : false,
              wordMinLength: (params.MinimumStringLength > 0) ? true : false,
              wordCountLowerChars: (params.MinimumCountLowerCharacters > 0) ? true : false,
              wordCountUpperChars: (params.MinimumCountUpperCharacters > 0) ? true : false,
              wordCountNumbers: (params.MinimumCountNumbers > 0) ? true : false,
              wordCountSpecialChars: (params.MinimumCountSpecialCharacters > 0) ? true : false,
            }
          },
          errors: {
            texts: {
              wordMinLength: params.ErrorMessageMinimumStringLength,
              wordMaxLength: params.ErrorMessagedMaximumStringLength,
              wordNotEmail: params.ErrorMessageNotEmail,
              wordSimilarToUsername: params.ErrorMessageSimilarToUsername,
              wordTwoCharacterClasses: params.ErrorMessageTwoCharacterClasses,
//            wordRepetitions: params.ErrorMessageRepetitions,
              wordRepetitions: '', 
//            wordSequences: params.ErrorMessageSequences,
              wordSequences: '', 
              wordCountLowerChars: params.ErrorMessageMinimumCountLowerCharacters,
              wordCountUpperChars: params.ErrorMessageMinimumCountUpperCharacters,
              wordCountNumbers: params.ErrorMessageMinimumCountNumbers,
              wordCountSpecialChars: params.ErrorMessageMinimumCountSpecialCharacters,
              errorList: params.TextErrorList,
              veryWeak: params.TextStrengthVeryWeak,
              weak: params.TextStrengthWeak,
              normal: params.TextStrengthNormal,
              medium: params.TextStrengthMedium,
              strong: params.TextStrengthStrong,
              veryStrong: params.TextStrengthVeryStrong,
            }
          },
          idPasswordField: params.IdPasswordField,
          idPasswordContainer: params.IdPasswordContainer
        }
      };

      /**
       * Legt ein <div><p> unterhalb des Passwortfeldes an, in dem dann die Fehler und Passwortstärke angezeigt werden
       */
      var appendMyDiv = function () {
        if (!options.pwStrengthOptionsObj.idPasswordContainer) {
          return;
        }
        var c = $('#pwsDiv');
        if (c.length === 0) {
          var newDiv = $('<div>', { 'id': 'pwsDiv' });
          var container = $('#' + options.pwStrengthOptionsObj.idPasswordContainer);
          if (container.length > 0)
            container.append(newDiv);
          else
            $('#' + options.pwStrengthOptionsObj.idPasswordField).parent().append(newDiv);
          var newP = $('<p>', { 'id': 'pwsP' });
          $('#pwsDiv').append(newP);
        }
      };

      /**
       * Beim Focus des Passwortfeldes wird die eigentliche Anzeige angestoßen
       */
      var init = function () {

        $('#' + options.pwStrengthOptionsObj.idPasswordField).focus(function () {
          var ele = $('#pwsP');
          ele.html('');
          $('#' + options.pwStrengthOptionsObj.idPasswordField).pwstrength(options.pwStrengthOptionsObj);
        });

        $(document).ready(function () {
          appendMyDiv();
        });
      };

      return {
        Init: function () {
          init();
        }
      };
    }
  };

  var ADI = ADI || {};
  $.extend(ADI, pwStrengthModule);
})(window, document, jQuery, ADI);
var ADI = ADI || {};
ADI.ApplePay = {
  // Function to handle payment when the Apple Pay button is clicked/pressed.
  beginPayment: function (paymentRequestParameters) {

    var subtotal = parseFloat(paymentRequestParameters.SubTotalCosts);
    var delivery = parseFloat(paymentRequestParameters.DeliveryCosts);
    var deliveryTotal = (Number(subtotal) + Number(delivery) + Number(additionalFee)).toFixed(2);
    var paymentProviderInternalId = paymentRequestParameters.PaymentProviderID;
    var reservationUrl = paymentRequestParameters.PaymentAuthorizedCallbackUrl;
    var displayName = paymentRequestParameters.StoreName;
   
    var totalForDelivery = {
      label: displayName,
      amount: deliveryTotal,
      type: "final"
    };
      
    var lineItemsForDelivery = [

      { label: paymentRequestParameters.LabelTotalValue, amount: subtotal, type: "final" },
      { label: paymentRequestParameters.LabelTotalShipping, amount: delivery, type: "final" },
      { label: paymentRequestParameters.LabelAdditionalFees, amount: additionalFee, type: "final" }
    ];

    // Create the Apple Pay payment request as appropriate.
    var paymentRequest = {
      countryCode: paymentRequestParameters.CountryCode,
      currencyCode: paymentRequestParameters.Currency,
      merchantCapabilities: ["supports3DS"],
      supportedNetworks: ["amex", "masterCard", "visa"],
      lineItems: lineItemsForDelivery,
      total: totalForDelivery
    };

    // Create the Apple Pay session.
    var session = new ApplePaySession(3, paymentRequest);

    // Setup handler for validation the merchant session.
    session.onvalidatemerchant = function (event) {

      // Create the payload.
      var data = {
        validationUrl: event.validationURL,
        storeName: displayName,
        paymentProviderID: paymentProviderInternalId
      };

      // Post the payload to the server to validate the
      // merchant session using the merchant certificate.
      $.ajax({
        url: paymentRequestParameters.CreateApplePaySessionUrl,
        method: "POST",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(data)
      }).then(function (merchantSession) {
        // Complete validation by passing the merchant session to the Apple Pay session.
        session.completeMerchantValidation(JSON.parse(merchantSession));
      });
    };

    // Setup handler for shipping method selection.
    session.onshippingmethodselected = function (event) {
      session.completeShippingMethodSelection(null);
    };
    // Setup handler to receive the token when payment is authorized.
    session.onpaymentauthorized = function (event) {

      var authorizationResult = {
        status: ApplePaySession.STATUS_SUCCESS,
        errors: []
      };

      var data = {
        paymentToken: event.payment.token,
        paymentProviderID: paymentProviderInternalId
      };

      // Post the payload to the server to validate the
      // merchant session using the merchant certificate.
      $.ajax({
        url: reservationUrl,
        method: "POST",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(data)
      }).done(function (data) {

          //Finally, complete the payment and redirect
          if (data && data.success)
          {
            session.completePayment(authorizationResult);
            window.location.href = data.redirectUrl;
          }
          else {
            authorizationResult.status = ApplePaySession.STATUS_FAILURE;
            session.completePayment(authorizationResult);
          }
        });
    };

    session.onpaymentmethodselected = function (event) {
      var newTotal = totalForDelivery;
      var newLineItems = lineItemsForDelivery;

      var update = {
        newTotal: newTotal,
        newLineItems: newLineItems
      };

      session.completePaymentMethodSelection(update);
    };

    session.onshippingcontactselected = function (event) {
      session.completeShippingContactSelection(null);
    };

    // Start the session to display the Apple Pay sheet.
    session.begin();
  },
  isApplePaySupported: function () {
    return "ApplePaySession" in window;
  },
  initializeApplePayButton: function (merchantIdentifier, callbackFunction) {
    if (typeof merchantIdentifier === 'undefined') {
      return;
    }

    ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier).then(function (canMakePayments) {
      if (canMakePayments && typeof callbackFunction === 'function') {
        callbackFunction();
      }
    });
  }
};


/*************************
 * Croppie
 * Copyright 2019
 * Foliotek
 * Version: 2.6.5
 *************************/
(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module.
    define(factory);
  } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
    // CommonJS
    module.exports = factory();
  } else {
    // Browser globals
    root.Croppie = factory();
  }
}(typeof self !== 'undefined' ? self : this, function () {

  /* Polyfills */
  if (typeof Promise !== 'function') {
    /*! promise-polyfill 3.1.0 */
    !function (a) { function b(a, b) { return function () { a.apply(b, arguments) } } function c(a) { if ("object" !== typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" !== typeof a) throw new TypeError("not a function"); this._state = null, this._value = null, this._deferreds = [], i(a, b(e, this), b(f, this)) } function d(a) { var b = this; return null === this._state ? void this._deferreds.push(a) : void k(function () { var c = b._state ? a.onFulfilled : a.onRejected; if (null === c) return void (b._state ? a.resolve : a.reject)(b._value); var d; try { d = c(b._value) } catch (e) { return void a.reject(e) } a.resolve(d) }) } function e(a) { try { if (a === this) throw new TypeError("A promise cannot be resolved with itself."); if (a && ("object" === typeof a || "function" === typeof a)) { var c = a.then; if ("function" === typeof c) return void i(b(c, a), b(e, this), b(f, this)) } this._state = !0, this._value = a, g.call(this) } catch (d) { f.call(this, d) } } function f(a) { this._state = !1, this._value = a, g.call(this) } function g() { for (var a = 0, b = this._deferreds.length; b > a; a++)d.call(this, this._deferreds[a]); this._deferreds = null } function h(a, b, c, d) { this.onFulfilled = "function" === typeof a ? a : null, this.onRejected = "function" === typeof b ? b : null, this.resolve = c, this.reject = d } function i(a, b, c) { var d = !1; try { a(function (a) { d || (d = !0, b(a)) }, function (a) { d || (d = !0, c(a)) }) } catch (e) { if (d) return; d = !0, c(e) } } var j = setTimeout, k = "function" === typeof setImmediate && setImmediate || function (a) { j(a, 1) }, l = Array.isArray || function (a) { return "[object Array]" === Object.prototype.toString.call(a) }; c.prototype["catch"] = function (a) { return this.then(null, a) }, c.prototype.then = function (a, b) { var e = this; return new c(function (c, f) { d.call(e, new h(a, b, c, f)) }) }, c.all = function () { var a = Array.prototype.slice.call(1 === arguments.length && l(arguments[0]) ? arguments[0] : arguments); return new c(function (b, c) { function d(f, g) { try { if (g && ("object" === typeof g || "function" === typeof g)) { var h = g.then; if ("function" === typeof h) return void h.call(g, function (a) { d(f, a) }, c) } a[f] = g, 0 === --e && b(a) } catch (i) { c(i) } } if (0 === a.length) return b([]); for (var e = a.length, f = 0; f < a.length; f++)d(f, a[f]) }) }, c.resolve = function (a) { return a && "object" === typeof a && a.constructor === c ? a : new c(function (b) { b(a) }) }, c.reject = function (a) { return new c(function (b, c) { c(a) }) }, c.race = function (a) { return new c(function (b, c) { for (var d = 0, e = a.length; e > d; d++)a[d].then(b, c) }) }, c._setImmediateFn = function (a) { k = a }, "undefined" !== typeof module && module.exports ? module.exports = c : a.Promise || (a.Promise = c) }(this);
  }

  if (typeof window !== 'undefined' && typeof window.CustomEvent !== "function") {
    (function () {
      function CustomEvent(event, params) {
        params = params || { bubbles: false, cancelable: false, detail: undefined };
        var evt = document.createEvent('CustomEvent');
        evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
        return evt;
      }
      CustomEvent.prototype = window.Event.prototype;
      window.CustomEvent = CustomEvent;
    }());
  }

  if (typeof HTMLCanvasElement !== 'undefined' && !HTMLCanvasElement.prototype.toBlob) {
    Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
      value: function (callback, type, quality) {
        var binStr = atob(this.toDataURL(type, quality).split(',')[1]),
          len = binStr.length,
          arr = new Uint8Array(len);

        for (var i = 0; i < len; i++) {
          arr[i] = binStr.charCodeAt(i);
        }

        callback(new Blob([arr], { type: type || 'image/png' }));
      }
    });
  }
  /* End Polyfills */

  var cssPrefixes = ['Webkit', 'Moz', 'ms'],
    emptyStyles = typeof document !== 'undefined' ? document.createElement('div').style : {},
    EXIF_NORM = [1, 8, 3, 6],
    EXIF_FLIP = [2, 7, 4, 5],
    CSS_TRANS_ORG,
    CSS_TRANSFORM,
    CSS_USERSELECT;

  function vendorPrefix(prop) {
    if (prop in emptyStyles) {
      return prop;
    }

    var capProp = prop[0].toUpperCase() + prop.slice(1),
      i = cssPrefixes.length;

    while (i--) {
      prop = cssPrefixes[i] + capProp;
      if (prop in emptyStyles) {
        return prop;
      }
    }
  }

  CSS_TRANSFORM = vendorPrefix('transform');
  CSS_TRANS_ORG = vendorPrefix('transformOrigin');
  CSS_USERSELECT = vendorPrefix('userSelect');

  function getExifOffset(ornt, rotate) {
    var arr = EXIF_NORM.indexOf(ornt) > -1 ? EXIF_NORM : EXIF_FLIP,
      index = arr.indexOf(ornt),
      offset = (rotate / 90) % arr.length;// 180 = 2%4 = 2 shift exif by 2 indexes

    return arr[(arr.length + index + (offset % arr.length)) % arr.length];
  }

  // Credits to : Andrew Dupont - http://andrewdupont.net/2009/08/28/deep-extending-objects-in-javascript/
  function deepExtend(destination, source) {
    destination = destination || {};
    for (var property in source) {
      if (source[property] && source[property].constructor && source[property].constructor === Object) {
        destination[property] = destination[property] || {};
        deepExtend(destination[property], source[property]);
      } else {
        destination[property] = source[property];
      }
    }
    return destination;
  }

  function clone(object) {
    return deepExtend({}, object);
  }

  function debounce(func, wait, immediate) {
    var timeout;
    return function () {
      var context = this, args = arguments;
      var later = function () {
        timeout = null;
        if (!immediate) func.apply(context, args);
      };
      var callNow = immediate && !timeout;
      clearTimeout(timeout);
      timeout = setTimeout(later, wait);
      if (callNow) func.apply(context, args);
    };
  }

  function dispatchChange(element) {
    if ("createEvent" in document) {
      var evt = document.createEvent("HTMLEvents");
      evt.initEvent("change", false, true);
      element.dispatchEvent(evt);
    }
    else {
      element.fireEvent("onchange");
    }
  }

  //http://jsperf.com/vanilla-css
  function css(el, styles, val) {
    if (typeof (styles) === 'string') {
      var tmp = styles;
      styles = {};
      styles[tmp] = val;
    }

    for (var prop in styles) {
      el.style[prop] = styles[prop];
    }
  }

  function addClass(el, c) {
    if (el.classList) {
      el.classList.add(c);
    }
    else {
      el.className += ' ' + c;
    }
  }

  function removeClass(el, c) {
    if (el.classList) {
      el.classList.remove(c);
    }
    else {
      el.className = el.className.replace(c, '');
    }
  }

  function setAttributes(el, attrs) {
    for (var key in attrs) {
      el.setAttribute(key, attrs[key]);
    }
  }

  function num(v) {
    return parseInt(v, 10);
  }

  /* Utilities */
  function loadImage(src, doExif) {
    if (!src) { throw 'Source image missing'; }

    var img = new Image();
    img.style.opacity = '0';
    return new Promise(function (resolve, reject) {
      function _resolve() {
        img.style.opacity = '1';
        setTimeout(function () {
          resolve(img);
        }, 1);
      }

      img.removeAttribute('crossOrigin');
      if (src.match(/^https?:\/\/|^\/\//)) {
        img.setAttribute('crossOrigin', 'anonymous');
      }

      img.onload = function () {
        if (doExif) {
          EXIF.getData(img, function () {
            _resolve();
          });
        }
        else {
          _resolve();
        }
      };
      img.onerror = function (ev) {
        img.style.opacity = 1;
        setTimeout(function () {
          reject(ev);
        }, 1);
      };
      img.src = src;
    });
  }

  function naturalImageDimensions(img, ornt) {
    var w = img.naturalWidth;
    var h = img.naturalHeight;
    var orient = ornt || getExifOrientation(img);
    if (orient && orient >= 5) {
      var x = w;
      w = h;
      h = x;
    }
    return { width: w, height: h };
  }

  /* CSS Transform Prototype */
  var TRANSLATE_OPTS = {
    'translate3d': {
      suffix: ', 0px'
    },
    'translate': {
      suffix: ''
    }
  };
  var Transform = function (x, y, scale) {
    this.x = parseFloat(x);
    this.y = parseFloat(y);
    this.scale = parseFloat(scale);
  };

  Transform.parse = function (v) {
    if (v.style) {
      return Transform.parse(v.style[CSS_TRANSFORM]);
    }
    else if (v.indexOf('matrix') > -1 || v.indexOf('none') > -1) {
      return Transform.fromMatrix(v);
    }
    else {
      return Transform.fromString(v);
    }
  };

  Transform.fromMatrix = function (v) {
    var vals = v.substring(7).split(',');
    if (!vals.length || v === 'none') {
      vals = [1, 0, 0, 1, 0, 0];
    }

    return new Transform(num(vals[4]), num(vals[5]), parseFloat(vals[0]));
  };

  Transform.fromString = function (v) {
    var values = v.split(') '),
      translate = values[0].substring(Croppie.globals.translate.length + 1).split(','),
      scale = values.length > 1 ? values[1].substring(6) : 1,
      x = translate.length > 1 ? translate[0] : 0,
      y = translate.length > 1 ? translate[1] : 0;

    return new Transform(x, y, scale);
  };

  Transform.prototype.toString = function () {
    var suffix = TRANSLATE_OPTS[Croppie.globals.translate].suffix || '';
    return Croppie.globals.translate + '(' + this.x + 'px, ' + this.y + 'px' + suffix + ') scale(' + this.scale + ')';
  };

  var TransformOrigin = function (el) {
    if (!el || !el.style[CSS_TRANS_ORG]) {
      this.x = 0;
      this.y = 0;
      return;
    }
    var css = el.style[CSS_TRANS_ORG].split(' ');
    this.x = parseFloat(css[0]);
    this.y = parseFloat(css[1]);
  };

  TransformOrigin.prototype.toString = function () {
    return this.x + 'px ' + this.y + 'px';
  };

  function getExifOrientation(img) {
    return img.exifdata && img.exifdata.Orientation ? num(img.exifdata.Orientation) : 1;
  }

  function drawCanvas(canvas, img, orientation) {
    var width = img.width,
      height = img.height,
      ctx = canvas.getContext('2d');

    canvas.width = img.width;
    canvas.height = img.height;

    ctx.save();
    switch (orientation) {
      case 2:
        ctx.translate(width, 0);
        ctx.scale(-1, 1);
        break;

      case 3:
        ctx.translate(width, height);
        ctx.rotate(180 * Math.PI / 180);
        break;

      case 4:
        ctx.translate(0, height);
        ctx.scale(1, -1);
        break;

      case 5:
        canvas.width = height;
        canvas.height = width;
        ctx.rotate(90 * Math.PI / 180);
        ctx.scale(1, -1);
        break;

      case 6:
        canvas.width = height;
        canvas.height = width;
        ctx.rotate(90 * Math.PI / 180);
        ctx.translate(0, -height);
        break;

      case 7:
        canvas.width = height;
        canvas.height = width;
        ctx.rotate(-90 * Math.PI / 180);
        ctx.translate(-width, height);
        ctx.scale(1, -1);
        break;

      case 8:
        canvas.width = height;
        canvas.height = width;
        ctx.translate(0, width);
        ctx.rotate(-90 * Math.PI / 180);
        break;
    }
    ctx.drawImage(img, 0, 0, width, height);
    ctx.restore();
  }

  /* Private Methods */
  function _create() {
    var self = this,
      contClass = 'croppie-container',
      customViewportClass = self.options.viewport.type ? 'cr-vp-' + self.options.viewport.type : null,
      boundary, img, viewport, overlay, bw, bh;

    self.options.useCanvas = self.options.enableOrientation || _hasExif.call(self);
    // Properties on class
    self.data = {};
    self.elements = {};

    boundary = self.elements.boundary = document.createElement('div');
    viewport = self.elements.viewport = document.createElement('div');
    img = self.elements.img = document.createElement('img');
    overlay = self.elements.overlay = document.createElement('div');

    if (self.options.useCanvas) {
      self.elements.canvas = document.createElement('canvas');
      self.elements.preview = self.elements.canvas;
    }
    else {
      self.elements.preview = img;
    }

    addClass(boundary, 'cr-boundary');
    boundary.setAttribute('aria-dropeffect', 'none');
    bw = self.options.boundary.width;
    bh = self.options.boundary.height;
    css(boundary, {
      width: (bw + (isNaN(bw) ? '' : 'px')),
      height: (bh + (isNaN(bh) ? '' : 'px'))
    });

    addClass(viewport, 'cr-viewport');
    if (customViewportClass) {
      addClass(viewport, customViewportClass);
    }
    css(viewport, {
      width: self.options.viewport.width + 'px',
      height: self.options.viewport.height + 'px'
    });
    viewport.setAttribute('tabindex', 0);

    addClass(self.elements.preview, 'cr-image');
    setAttributes(self.elements.preview, { 'alt': 'preview', 'aria-grabbed': 'false' });
    addClass(overlay, 'cr-overlay');

    self.element.appendChild(boundary);
    boundary.appendChild(self.elements.preview);
    boundary.appendChild(viewport);
    boundary.appendChild(overlay);

    addClass(self.element, contClass);
    if (self.options.customClass) {
      addClass(self.element, self.options.customClass);
    }

    _initDraggable.call(this);

    if (self.options.enableZoom) {
      _initializeZoom.call(self);
    }

    // if (self.options.enableOrientation) {
    //     _initRotationControls.call(self);
    // }

    if (self.options.enableResize) {
      _initializeResize.call(self);
    }
  }

  // function _initRotationControls () {
  //     var self = this,
  //         wrap, btnLeft, btnRight, iLeft, iRight;

  //     wrap = document.createElement('div');
  //     self.elements.orientationBtnLeft = btnLeft = document.createElement('button');
  //     self.elements.orientationBtnRight = btnRight = document.createElement('button');

  //     wrap.appendChild(btnLeft);
  //     wrap.appendChild(btnRight);

  //     iLeft = document.createElement('i');
  //     iRight = document.createElement('i');
  //     btnLeft.appendChild(iLeft);
  //     btnRight.appendChild(iRight);

  //     addClass(wrap, 'cr-rotate-controls');
  //     addClass(btnLeft, 'cr-rotate-l');
  //     addClass(btnRight, 'cr-rotate-r');

  //     self.elements.boundary.appendChild(wrap);

  //     btnLeft.addEventListener('click', function () {
  //         self.rotate(-90);
  //     });
  //     btnRight.addEventListener('click', function () {
  //         self.rotate(90);
  //     });
  // }

  function _hasExif() {
    return this.options.enableExif && window.EXIF;
  }

  function _initializeResize() {
    var self = this;
    var wrap = document.createElement('div');
    var isDragging = false;
    var direction;
    var originalX;
    var originalY;
    var minSize = 50;
    var maxWidth;
    var maxHeight;
    var vr;
    var hr;

    addClass(wrap, 'cr-resizer');
    css(wrap, {
      width: this.options.viewport.width + 'px',
      height: this.options.viewport.height + 'px'
    });

    if (this.options.resizeControls.height) {
      vr = document.createElement('div');
      addClass(vr, 'cr-resizer-vertical');
      wrap.appendChild(vr);
    }

    if (this.options.resizeControls.width) {
      hr = document.createElement('div');
      addClass(hr, 'cr-resizer-horisontal');
      wrap.appendChild(hr);
    }

    function mouseDown(ev) {
      if (ev.button !== undefined && ev.button !== 0) return;

      ev.preventDefault();
      if (isDragging) {
        return;
      }

      var overlayRect = self.elements.overlay.getBoundingClientRect();

      isDragging = true;
      originalX = ev.pageX;
      originalY = ev.pageY;
      direction = ev.currentTarget.className.indexOf('vertical') !== -1 ? 'v' : 'h';
      maxWidth = overlayRect.width;
      maxHeight = overlayRect.height;

      if (ev.touches) {
        var touches = ev.touches[0];
        originalX = touches.pageX;
        originalY = touches.pageY;
      }

      window.addEventListener('mousemove', mouseMove);
      window.addEventListener('touchmove', mouseMove);
      window.addEventListener('mouseup', mouseUp);
      window.addEventListener('touchend', mouseUp);
      document.body.style[CSS_USERSELECT] = 'none';
    }

    function mouseMove(ev) {
      var pageX = ev.pageX;
      var pageY = ev.pageY;

      ev.preventDefault();

      if (ev.touches) {
        var touches = ev.touches[0];
        pageX = touches.pageX;
        pageY = touches.pageY;
      }

      var deltaX = pageX - originalX;
      var deltaY = pageY - originalY;
      var newHeight = self.options.viewport.height + deltaY;
      var newWidth = self.options.viewport.width + deltaX;

      if (direction === 'v' && newHeight >= minSize && newHeight <= maxHeight) {
        css(wrap, {
          height: newHeight + 'px'
        });

        self.options.boundary.height += deltaY;
        css(self.elements.boundary, {
          height: self.options.boundary.height + 'px'
        });

        self.options.viewport.height += deltaY;
        css(self.elements.viewport, {
          height: self.options.viewport.height + 'px'
        });
      }
      else if (direction === 'h' && newWidth >= minSize && newWidth <= maxWidth) {
        css(wrap, {
          width: newWidth + 'px'
        });

        self.options.boundary.width += deltaX;
        css(self.elements.boundary, {
          width: self.options.boundary.width + 'px'
        });

        self.options.viewport.width += deltaX;
        css(self.elements.viewport, {
          width: self.options.viewport.width + 'px'
        });
      }

      _updateOverlay.call(self);
      _updateZoomLimits.call(self);
      _updateCenterPoint.call(self);
      _triggerUpdate.call(self);
      originalY = pageY;
      originalX = pageX;
    }

    function mouseUp() {
      isDragging = false;
      window.removeEventListener('mousemove', mouseMove);
      window.removeEventListener('touchmove', mouseMove);
      window.removeEventListener('mouseup', mouseUp);
      window.removeEventListener('touchend', mouseUp);
      document.body.style[CSS_USERSELECT] = '';
    }

    if (vr) {
      vr.addEventListener('mousedown', mouseDown);
      vr.addEventListener('touchstart', mouseDown);
    }

    if (hr) {
      hr.addEventListener('mousedown', mouseDown);
      hr.addEventListener('touchstart', mouseDown);
    }

    this.elements.boundary.appendChild(wrap);
  }

  function _setZoomerVal(v) {
    if (this.options.enableZoom) {
      var z = this.elements.zoomer,
        val = fix(v, 4);

      z.value = Math.max(parseFloat(z.min), Math.min(parseFloat(z.max), val)).toString();
    }
  }

  function _initializeZoom() {
    var self = this,
      wrap = self.elements.zoomerWrap = document.createElement('div'),
      zoomer = self.elements.zoomer = document.createElement('input');

    addClass(wrap, 'cr-slider-wrap');
    addClass(zoomer, 'cr-slider');
    zoomer.type = 'range';
    zoomer.step = '0.0001';
    zoomer.value = '1';
    zoomer.style.display = self.options.showZoomer ? '' : 'none';
    zoomer.setAttribute('aria-label', 'zoom');

    self.element.appendChild(wrap);
    wrap.appendChild(zoomer);

    self._currentZoom = 1;

    function change() {
      _onZoom.call(self, {
        value: parseFloat(zoomer.value),
        origin: new TransformOrigin(self.elements.preview),
        viewportRect: self.elements.viewport.getBoundingClientRect(),
        transform: Transform.parse(self.elements.preview)
      });
    }

    function scroll(ev) {
      var delta, targetZoom;

      if (self.options.mouseWheelZoom === 'ctrl' && ev.ctrlKey !== true) {
        return 0;
      } else if (ev.wheelDelta) {
        delta = ev.wheelDelta / 1200; //wheelDelta min: -120 max: 120 // max x 10 x 2
      } else if (ev.deltaY) {
        delta = ev.deltaY / 1060; //deltaY min: -53 max: 53 // max x 10 x 2
      } else if (ev.detail) {
        delta = ev.detail / -60; //delta min: -3 max: 3 // max x 10 x 2
      } else {
        delta = 0;
      }

      targetZoom = self._currentZoom + (delta * self._currentZoom);

      ev.preventDefault();
      _setZoomerVal.call(self, targetZoom);
      change.call(self);
    }

    self.elements.zoomer.addEventListener('input', change);// this is being fired twice on keypress
    self.elements.zoomer.addEventListener('change', change);

    if (self.options.mouseWheelZoom) {
      self.elements.boundary.addEventListener('mousewheel', scroll);
      self.elements.boundary.addEventListener('DOMMouseScroll', scroll);
    }
  }

  function _onZoom(ui) {
    var self = this,
      transform = ui ? ui.transform : Transform.parse(self.elements.preview),
      vpRect = ui ? ui.viewportRect : self.elements.viewport.getBoundingClientRect(),
      origin = ui ? ui.origin : new TransformOrigin(self.elements.preview);

    function applyCss() {
      var transCss = {};
      transCss[CSS_TRANSFORM] = transform.toString();
      transCss[CSS_TRANS_ORG] = origin.toString();
      css(self.elements.preview, transCss);
    }

    self._currentZoom = ui ? ui.value : self._currentZoom;
    transform.scale = self._currentZoom;
    self.elements.zoomer.setAttribute('aria-valuenow', self._currentZoom);
    applyCss();

    if (self.options.enforceBoundary) {
      var boundaries = _getVirtualBoundaries.call(self, vpRect),
        transBoundaries = boundaries.translate,
        oBoundaries = boundaries.origin;

      if (transform.x >= transBoundaries.maxX) {
        origin.x = oBoundaries.minX;
        transform.x = transBoundaries.maxX;
      }

      if (transform.x <= transBoundaries.minX) {
        origin.x = oBoundaries.maxX;
        transform.x = transBoundaries.minX;
      }

      if (transform.y >= transBoundaries.maxY) {
        origin.y = oBoundaries.minY;
        transform.y = transBoundaries.maxY;
      }

      if (transform.y <= transBoundaries.minY) {
        origin.y = oBoundaries.maxY;
        transform.y = transBoundaries.minY;
      }
    }
    applyCss();
    _debouncedOverlay.call(self);
    _triggerUpdate.call(self);
  }

  function _getVirtualBoundaries(viewport) {
    var self = this,
      scale = self._currentZoom,
      vpWidth = viewport.width,
      vpHeight = viewport.height,
      centerFromBoundaryX = self.elements.boundary.clientWidth / 2,
      centerFromBoundaryY = self.elements.boundary.clientHeight / 2,
      imgRect = self.elements.preview.getBoundingClientRect(),
      curImgWidth = imgRect.width,
      curImgHeight = imgRect.height,
      halfWidth = vpWidth / 2,
      halfHeight = vpHeight / 2;

    var maxX = ((halfWidth / scale) - centerFromBoundaryX) * -1;
    var minX = maxX - ((curImgWidth * (1 / scale)) - (vpWidth * (1 / scale)));

    var maxY = ((halfHeight / scale) - centerFromBoundaryY) * -1;
    var minY = maxY - ((curImgHeight * (1 / scale)) - (vpHeight * (1 / scale)));

    var originMinX = (1 / scale) * halfWidth;
    var originMaxX = (curImgWidth * (1 / scale)) - originMinX;

    var originMinY = (1 / scale) * halfHeight;
    var originMaxY = (curImgHeight * (1 / scale)) - originMinY;

    return {
      translate: {
        maxX: maxX,
        minX: minX,
        maxY: maxY,
        minY: minY
      },
      origin: {
        maxX: originMaxX,
        minX: originMinX,
        maxY: originMaxY,
        minY: originMinY
      }
    };
  }

  function _updateCenterPoint(rotate) {
    var self = this,
      scale = self._currentZoom,
      data = self.elements.preview.getBoundingClientRect(),
      vpData = self.elements.viewport.getBoundingClientRect(),
      transform = Transform.parse(self.elements.preview.style[CSS_TRANSFORM]),
      pc = new TransformOrigin(self.elements.preview),
      top = (vpData.top - data.top) + (vpData.height / 2),
      left = (vpData.left - data.left) + (vpData.width / 2),
      center = {},
      adj = {};

    if (rotate) {
      var cx = pc.x;
      var cy = pc.y;
      var tx = transform.x;
      var ty = transform.y;

      center.y = cx;
      center.x = cy;
      transform.y = tx;
      transform.x = ty;
    }
    else {
      center.y = top / scale;
      center.x = left / scale;

      adj.y = (center.y - pc.y) * (1 - scale);
      adj.x = (center.x - pc.x) * (1 - scale);

      transform.x -= adj.x;
      transform.y -= adj.y;
    }

    var newCss = {};
    newCss[CSS_TRANS_ORG] = center.x + 'px ' + center.y + 'px';
    newCss[CSS_TRANSFORM] = transform.toString();
    css(self.elements.preview, newCss);
  }

  function _initDraggable() {
    var self = this,
      isDragging = false,
      originalX,
      originalY,
      originalDistance,
      vpRect,
      transform;

    function assignTransformCoordinates(deltaX, deltaY) {
      var imgRect = self.elements.preview.getBoundingClientRect(),
        top = transform.y + deltaY,
        left = transform.x + deltaX;

      if (self.options.enforceBoundary) {
        if (vpRect.top > imgRect.top + deltaY && vpRect.bottom < imgRect.bottom + deltaY) {
          transform.y = top;
        }

        if (vpRect.left > imgRect.left + deltaX && vpRect.right < imgRect.right + deltaX) {
          transform.x = left;
        }
      }
      else {
        transform.y = top;
        transform.x = left;
      }
    }

    function toggleGrabState(isDragging) {
      self.elements.preview.setAttribute('aria-grabbed', isDragging);
      self.elements.boundary.setAttribute('aria-dropeffect', isDragging ? 'move' : 'none');
    }

    function keyDown(ev) {
      var LEFT_ARROW = 37,
        UP_ARROW = 38,
        RIGHT_ARROW = 39,
        DOWN_ARROW = 40;

      if (ev.shiftKey && (ev.keyCode === UP_ARROW || ev.keyCode === DOWN_ARROW)) {
        var zoom;
        if (ev.keyCode === UP_ARROW) {
          zoom = parseFloat(self.elements.zoomer.value) + parseFloat(self.elements.zoomer.step)
        }
        else {
          zoom = parseFloat(self.elements.zoomer.value) - parseFloat(self.elements.zoomer.step)
        }
        self.setZoom(zoom);
      }
      else if (self.options.enableKeyMovement && (ev.keyCode >= 37 && ev.keyCode <= 40)) {
        ev.preventDefault();
        var movement = parseKeyDown(ev.keyCode);

        transform = Transform.parse(self.elements.preview);
        document.body.style[CSS_USERSELECT] = 'none';
        vpRect = self.elements.viewport.getBoundingClientRect();
        keyMove(movement);
      }

      function parseKeyDown(key) {
        switch (key) {
          case LEFT_ARROW:
            return [1, 0];
          case UP_ARROW:
            return [0, 1];
          case RIGHT_ARROW:
            return [-1, 0];
          case DOWN_ARROW:
            return [0, -1];
        }
      }
    }

    function keyMove(movement) {
      var deltaX = movement[0],
        deltaY = movement[1],
        newCss = {};

      assignTransformCoordinates(deltaX, deltaY);

      newCss[CSS_TRANSFORM] = transform.toString();
      css(self.elements.preview, newCss);
      _updateOverlay.call(self);
      document.body.style[CSS_USERSELECT] = '';
      _updateCenterPoint.call(self);
      _triggerUpdate.call(self);
      originalDistance = 0;
    }

    function mouseDown(ev) {
      if (ev.button !== undefined && ev.button !== 0) return;

      ev.preventDefault();
      if (isDragging) return;
      isDragging = true;
      originalX = ev.pageX;
      originalY = ev.pageY;

      if (ev.touches) {
        var touches = ev.touches[0];
        originalX = touches.pageX;
        originalY = touches.pageY;
      }
      toggleGrabState(isDragging);
      transform = Transform.parse(self.elements.preview);
      window.addEventListener('mousemove', mouseMove);
      window.addEventListener('touchmove', mouseMove);
      window.addEventListener('mouseup', mouseUp);
      window.addEventListener('touchend', mouseUp);
      document.body.style[CSS_USERSELECT] = 'none';
      vpRect = self.elements.viewport.getBoundingClientRect();
    }

    function mouseMove(ev) {
      ev.preventDefault();
      var pageX = ev.pageX,
        pageY = ev.pageY;

      if (ev.touches) {
        var touches = ev.touches[0];
        pageX = touches.pageX;
        pageY = touches.pageY;
      }

      var deltaX = pageX - originalX,
        deltaY = pageY - originalY,
        newCss = {};

      if (ev.type === 'touchmove') {
        if (ev.touches.length > 1) {
          var touch1 = ev.touches[0];
          var touch2 = ev.touches[1];
          var dist = Math.sqrt((touch1.pageX - touch2.pageX) * (touch1.pageX - touch2.pageX) + (touch1.pageY - touch2.pageY) * (touch1.pageY - touch2.pageY));

          if (!originalDistance) {
            originalDistance = dist / self._currentZoom;
          }

          var scale = dist / originalDistance;

          _setZoomerVal.call(self, scale);
          dispatchChange(self.elements.zoomer);
          return;
        }
      }

      assignTransformCoordinates(deltaX, deltaY);

      newCss[CSS_TRANSFORM] = transform.toString();
      css(self.elements.preview, newCss);
      _updateOverlay.call(self);
      originalY = pageY;
      originalX = pageX;
    }

    function mouseUp() {
      isDragging = false;
      toggleGrabState(isDragging);
      window.removeEventListener('mousemove', mouseMove);
      window.removeEventListener('touchmove', mouseMove);
      window.removeEventListener('mouseup', mouseUp);
      window.removeEventListener('touchend', mouseUp);
      document.body.style[CSS_USERSELECT] = '';
      _updateCenterPoint.call(self);
      _triggerUpdate.call(self);
      originalDistance = 0;
    }

    self.elements.overlay.addEventListener('mousedown', mouseDown);
    self.elements.viewport.addEventListener('keydown', keyDown);
    self.elements.overlay.addEventListener('touchstart', mouseDown);
  }

  function _updateOverlay() {
    if (!this.elements) return; // since this is debounced, it can be fired after destroy
    var self = this,
      boundRect = self.elements.boundary.getBoundingClientRect(),
      imgData = self.elements.preview.getBoundingClientRect();

    css(self.elements.overlay, {
      width: imgData.width + 'px',
      height: imgData.height + 'px',
      top: (imgData.top - boundRect.top) + 'px',
      left: (imgData.left - boundRect.left) + 'px'
    });
  }
  var _debouncedOverlay = debounce(_updateOverlay, 500);

  function _triggerUpdate() {
    var self = this,
      data = self.get();

    if (!_isVisible.call(self)) {
      return;
    }

    self.options.update.call(self, data);
    if (self.$ && typeof Prototype === 'undefined') {
      self.$(self.element).trigger('update.croppie', data);
    }
    else {
      var ev;
      if (window.CustomEvent) {
        ev = new CustomEvent('update', { detail: data });
      } else {
        ev = document.createEvent('CustomEvent');
        ev.initCustomEvent('update', true, true, data);
      }

      self.element.dispatchEvent(ev);
    }
  }

  function _isVisible() {
    return this.elements.preview.offsetHeight > 0 && this.elements.preview.offsetWidth > 0;
  }

  function _updatePropertiesFromImage() {
    var self = this,
      initialZoom = 1,
      cssReset = {},
      img = self.elements.preview,
      imgData,
      transformReset = new Transform(0, 0, initialZoom),
      originReset = new TransformOrigin(),
      isVisible = _isVisible.call(self);

    if (!isVisible || self.data.bound) {// if the croppie isn't visible or it doesn't need binding
      return;
    }

    self.data.bound = true;
    cssReset[CSS_TRANSFORM] = transformReset.toString();
    cssReset[CSS_TRANS_ORG] = originReset.toString();
    cssReset['opacity'] = 1;
    css(img, cssReset);

    imgData = self.elements.preview.getBoundingClientRect();

    self._originalImageWidth = imgData.width;
    self._originalImageHeight = imgData.height;
    self.data.orientation = _hasExif.call(self) ? getExifOrientation(self.elements.img) : self.data.orientation;

    if (self.options.enableZoom) {
      _updateZoomLimits.call(self, true);
    }
    else {
      self._currentZoom = initialZoom;
    }

    transformReset.scale = self._currentZoom;
    cssReset[CSS_TRANSFORM] = transformReset.toString();
    css(img, cssReset);

    if (self.data.points.length) {
      _bindPoints.call(self, self.data.points);
    }
    else {
      _centerImage.call(self);
    }

    _updateCenterPoint.call(self);
    _updateOverlay.call(self);
  }

  function _updateZoomLimits(initial) {
    var self = this,
      minZoom = Math.max(self.options.minZoom, 0) || 0,
      maxZoom = self.options.maxZoom || 1.5,
      initialZoom,
      defaultInitialZoom,
      zoomer = self.elements.zoomer,
      scale = parseFloat(zoomer.value),
      boundaryData = self.elements.boundary.getBoundingClientRect(),
      imgData = naturalImageDimensions(self.elements.img, self.data.orientation),
      vpData = self.elements.viewport.getBoundingClientRect(),
      minW,
      minH;
    if (self.options.enforceBoundary) {
      minW = vpData.width / imgData.width;
      minH = vpData.height / imgData.height;
      minZoom = Math.max(minW, minH);
    }

    if (minZoom >= maxZoom) {
      maxZoom = minZoom + 1;
    }

    zoomer.min = fix(minZoom, 4);
    zoomer.max = fix(maxZoom, 4);

    if (!initial && (scale < zoomer.min || scale > zoomer.max)) {
      _setZoomerVal.call(self, scale < zoomer.min ? zoomer.min : zoomer.max);
    }
    else if (initial) {
      defaultInitialZoom = Math.max((boundaryData.width / imgData.width), (boundaryData.height / imgData.height));
      initialZoom = self.data.boundZoom !== null ? self.data.boundZoom : defaultInitialZoom;
      _setZoomerVal.call(self, initialZoom);
    }

    dispatchChange(zoomer);
  }

  function _bindPoints(points) {
    if (points.length !== 4) {
      throw "Croppie - Invalid number of points supplied: " + points;
    }
    var self = this,
      pointsWidth = points[2] - points[0],
      // pointsHeight = points[3] - points[1],
      vpData = self.elements.viewport.getBoundingClientRect(),
      boundRect = self.elements.boundary.getBoundingClientRect(),
      vpOffset = {
        left: vpData.left - boundRect.left,
        top: vpData.top - boundRect.top
      },
      scale = vpData.width / pointsWidth,
      originTop = points[1],
      originLeft = points[0],
      transformTop = (-1 * points[1]) + vpOffset.top,
      transformLeft = (-1 * points[0]) + vpOffset.left,
      newCss = {};

    newCss[CSS_TRANS_ORG] = originLeft + 'px ' + originTop + 'px';
    newCss[CSS_TRANSFORM] = new Transform(transformLeft, transformTop, scale).toString();
    css(self.elements.preview, newCss);

    _setZoomerVal.call(self, scale);
    self._currentZoom = scale;
  }

  function _centerImage() {
    var self = this,
      imgDim = self.elements.preview.getBoundingClientRect(),
      vpDim = self.elements.viewport.getBoundingClientRect(),
      boundDim = self.elements.boundary.getBoundingClientRect(),
      vpLeft = vpDim.left - boundDim.left,
      vpTop = vpDim.top - boundDim.top,
      w = vpLeft - ((imgDim.width - vpDim.width) / 2),
      h = vpTop - ((imgDim.height - vpDim.height) / 2),
      transform = new Transform(w, h, self._currentZoom);

    css(self.elements.preview, CSS_TRANSFORM, transform.toString());
  }

  function _transferImageToCanvas(customOrientation) {
    var self = this,
      canvas = self.elements.canvas,
      img = self.elements.img,
      ctx = canvas.getContext('2d');

    ctx.clearRect(0, 0, canvas.width, canvas.height);
    canvas.width = img.width;
    canvas.height = img.height;

    var orientation = self.options.enableOrientation && customOrientation || getExifOrientation(img);
    drawCanvas(canvas, img, orientation);
  }

  function _getCanvas(data) {
    var self = this,
      points = data.points,
      left = num(points[0]),
      top = num(points[1]),
      right = num(points[2]),
      bottom = num(points[3]),
      width = right - left,
      height = bottom - top,
      circle = data.circle,
      canvas = document.createElement('canvas'),
      ctx = canvas.getContext('2d'),
      startX = 0,
      startY = 0,
      canvasWidth = data.outputWidth || width,
      canvasHeight = data.outputHeight || height;

    canvas.width = canvasWidth;
    canvas.height = canvasHeight;

    if (data.backgroundColor) {
      ctx.fillStyle = data.backgroundColor;
      ctx.fillRect(0, 0, canvasWidth, canvasHeight);
    }

    // By default assume we're going to draw the entire
    // source image onto the destination canvas.
    var sx = left,
      sy = top,
      sWidth = width,
      sHeight = height,
      dx = 0,
      dy = 0,
      dWidth = canvasWidth,
      dHeight = canvasHeight;

    //
    // Do not go outside of the original image's bounds along the x-axis.
    // Handle translations when projecting onto the destination canvas.
    //

    // The smallest possible source x-position is 0.
    if (left < 0) {
      sx = 0;
      dx = (Math.abs(left) / width) * canvasWidth;
    }

    // The largest possible source width is the original image's width.
    if (sWidth + sx > self._originalImageWidth) {
      sWidth = self._originalImageWidth - sx;
      dWidth = (sWidth / width) * canvasWidth;
    }

    //
    // Do not go outside of the original image's bounds along the y-axis.
    //

    // The smallest possible source y-position is 0.
    if (top < 0) {
      sy = 0;
      dy = (Math.abs(top) / height) * canvasHeight;
    }

    // The largest possible source height is the original image's height.
    if (sHeight + sy > self._originalImageHeight) {
      sHeight = self._originalImageHeight - sy;
      dHeight = (sHeight / height) * canvasHeight;
    }

    // console.table({ left, right, top, bottom, canvasWidth, canvasHeight, width, height, startX, startY, circle, sx, sy, dx, dy, sWidth, sHeight, dWidth, dHeight });

    ctx.drawImage(this.elements.preview, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
    if (circle) {
      ctx.fillStyle = '#fff';
      ctx.globalCompositeOperation = 'destination-in';
      ctx.beginPath();
      ctx.arc(canvas.width / 2, canvas.height / 2, canvas.width / 2, 0, Math.PI * 2, true);
      ctx.closePath();
      ctx.fill();
    }
    return canvas;
  }

  function _getHtmlResult(data) {
    var points = data.points,
      div = document.createElement('div'),
      img = document.createElement('img'),
      width = points[2] - points[0],
      height = points[3] - points[1];

    addClass(div, 'croppie-result');
    div.appendChild(img);
    css(img, {
      left: (-1 * points[0]) + 'px',
      top: (-1 * points[1]) + 'px'
    });
    img.src = data.url;
    css(div, {
      width: width + 'px',
      height: height + 'px'
    });

    return div;
  }

  function _getBase64Result(data) {
    return _getCanvas.call(this, data).toDataURL(data.format, data.quality);
  }

  function _getBlobResult(data) {
    var self = this;
    return new Promise(function (resolve) {
      _getCanvas.call(self, data).toBlob(function (blob) {
        resolve(blob);
      }, data.format, data.quality);
    });
  }

  function _replaceImage(img) {
    if (this.elements.img.parentNode) {
      Array.prototype.forEach.call(this.elements.img.classList, function (c) { img.classList.add(c); });
      this.elements.img.parentNode.replaceChild(img, this.elements.img);
      this.elements.preview = img; // if the img is attached to the DOM, they're not using the canvas
    }
    this.elements.img = img;
  }

  function _bind(options, cb) {
    var self = this,
      url,
      points = [],
      zoom = null,
      hasExif = _hasExif.call(self);

    if (typeof (options) === 'string') {
      url = options;
      options = {};
    }
    else if (Array.isArray(options)) {
      points = options.slice();
    }
    else if (typeof (options) === 'undefined' && self.data.url) { //refreshing
      _updatePropertiesFromImage.call(self);
      _triggerUpdate.call(self);
      return null;
    }
    else {
      url = options.url;
      points = options.points || [];
      zoom = typeof (options.zoom) === 'undefined' ? null : options.zoom;
    }

    self.data.bound = false;
    self.data.url = url || self.data.url;
    self.data.boundZoom = zoom;

    return loadImage(url, hasExif).then(function (img) {
      _replaceImage.call(self, img);
      if (!points.length) {
        var natDim = naturalImageDimensions(img);
        var rect = self.elements.viewport.getBoundingClientRect();
        var aspectRatio = rect.width / rect.height;
        var imgAspectRatio = natDim.width / natDim.height;
        var width, height;

        if (imgAspectRatio > aspectRatio) {
          height = natDim.height;
          width = height * aspectRatio;
        }
        else {
          width = natDim.width;
          height = natDim.height / aspectRatio;
        }

        var x0 = (natDim.width - width) / 2;
        var y0 = (natDim.height - height) / 2;
        var x1 = x0 + width;
        var y1 = y0 + height;
        self.data.points = [x0, y0, x1, y1];
      }
      else if (self.options.relative) {
        points = [
          points[0] * img.naturalWidth / 100,
          points[1] * img.naturalHeight / 100,
          points[2] * img.naturalWidth / 100,
          points[3] * img.naturalHeight / 100
        ];
      }

      self.data.orientation = options.orientation || 1;
      self.data.points = points.map(function (p) {
        return parseFloat(p);
      });
      if (self.options.useCanvas) {
        _transferImageToCanvas.call(self, self.data.orientation);
      }
      _updatePropertiesFromImage.call(self);
      _triggerUpdate.call(self);
      cb && cb();
    });
  }

  function fix(v, decimalPoints) {
    return parseFloat(v).toFixed(decimalPoints || 0);
  }

  function _get() {
    var self = this,
      imgData = self.elements.preview.getBoundingClientRect(),
      vpData = self.elements.viewport.getBoundingClientRect(),
      x1 = vpData.left - imgData.left,
      y1 = vpData.top - imgData.top,
      widthDiff = (vpData.width - self.elements.viewport.offsetWidth) / 2, //border
      heightDiff = (vpData.height - self.elements.viewport.offsetHeight) / 2,
      x2 = x1 + self.elements.viewport.offsetWidth + widthDiff,
      y2 = y1 + self.elements.viewport.offsetHeight + heightDiff,
      scale = self._currentZoom;

    if (scale === Infinity || isNaN(scale)) {
      scale = 1;
    }

    var max = self.options.enforceBoundary ? 0 : Number.NEGATIVE_INFINITY;
    x1 = Math.max(max, x1 / scale);
    y1 = Math.max(max, y1 / scale);
    x2 = Math.max(max, x2 / scale);
    y2 = Math.max(max, y2 / scale);

    return {
      points: [fix(x1), fix(y1), fix(x2), fix(y2)],
      zoom: scale,
      orientation: self.data.orientation
    };
  }

  var RESULT_DEFAULTS = {
    type: 'canvas',
    format: 'png',
    quality: 1
  },
    RESULT_FORMATS = ['jpeg', 'webp', 'png'];

  function _result(options) {
    var self = this,
      data = _get.call(self),
      opts = deepExtend(clone(RESULT_DEFAULTS), clone(options)),
      resultType = (typeof (options) === 'string' ? options : (opts.type || 'base64')),
      size = opts.size || 'viewport',
      format = opts.format,
      quality = opts.quality,
      backgroundColor = opts.backgroundColor,
      circle = typeof opts.circle === 'boolean' ? opts.circle : (self.options.viewport.type === 'circle'),
      vpRect = self.elements.viewport.getBoundingClientRect(),
      ratio = vpRect.width / vpRect.height,
      prom;

    if (size === 'viewport') {
      data.outputWidth = vpRect.width;
      data.outputHeight = vpRect.height;
    } else if (typeof size === 'object') {
      if (size.width && size.height) {
        data.outputWidth = size.width;
        data.outputHeight = size.height;
      } else if (size.width) {
        data.outputWidth = size.width;
        data.outputHeight = size.width / ratio;
      } else if (size.height) {
        data.outputWidth = size.height * ratio;
        data.outputHeight = size.height;
      }
    }

    if (RESULT_FORMATS.indexOf(format) > -1) {
      data.format = 'image/' + format;
      data.quality = quality;
    }

    data.circle = circle;
    data.url = self.data.url;
    data.backgroundColor = backgroundColor;

    prom = new Promise(function (resolve) {
      switch (resultType.toLowerCase()) {
        case 'rawcanvas':
          resolve(_getCanvas.call(self, data));
          break;
        case 'canvas':
        case 'base64':
          resolve(_getBase64Result.call(self, data));
          break;
        case 'blob':
          _getBlobResult.call(self, data).then(resolve);
          break;
        default:
          resolve(_getHtmlResult.call(self, data));
          break;
      }
    });
    return prom;
  }

  function _refresh() {
    _updatePropertiesFromImage.call(this);
  }

  function _rotate(deg) {
    if (!this.options.useCanvas || !this.options.enableOrientation) {
      throw 'Croppie: Cannot rotate without enableOrientation && EXIF.js included';
    }

    var self = this,
      canvas = self.elements.canvas;

    self.data.orientation = getExifOffset(self.data.orientation, deg);
    drawCanvas(canvas, self.elements.img, self.data.orientation);
    _updateCenterPoint.call(self, true);
    _updateZoomLimits.call(self);

    // Reverses image dimensions if the degrees of rotation is not divisible by 180.
    if ((Math.abs(deg) / 90) % 2 === 1) {
      var oldHeight = self._originalImageHeight;
      var oldWidth = self._originalImageWidth;
      self._originalImageWidth = oldHeight;
      self._originalImageHeight = oldWidth;
    }
  }

  function _destroy() {
    var self = this;
    self.element.removeChild(self.elements.boundary);
    removeClass(self.element, 'croppie-container');
    if (self.options.enableZoom) {
      self.element.removeChild(self.elements.zoomerWrap);
    }
    delete self.elements;
  }

  if (typeof window !== 'undefined' && window.jQuery) {
    var $ = window.jQuery;
    $.fn.croppie = function (opts) {
      var ot = typeof opts;

      if (ot === 'string') {
        var args = Array.prototype.slice.call(arguments, 1);
        var singleInst = $(this).data('croppie');

        if (opts === 'get') {
          return singleInst.get();
        }
        else if (opts === 'result') {
          return singleInst.result.apply(singleInst, args);
        }
        else if (opts === 'bind') {
          return singleInst.bind.apply(singleInst, args);
        }

        return this.each(function () {
          var i = $(this).data('croppie');
          if (!i) return;

          var method = i[opts];
          if ($.isFunction(method)) {
            method.apply(i, args);
            if (opts === 'destroy') {
              $(this).removeData('croppie');
            }
          }
          else {
            throw 'Croppie ' + opts + ' method not found';
          }
        });
      }
      else {
        return this.each(function () {
          var i = new Croppie(this, opts);
          i.$ = $;
          $(this).data('croppie', i);
        });
      }
    };
  }

  function Croppie(element, opts) {
    if (element.className.indexOf('croppie-container') > -1) {
      throw new Error("Croppie: Can't initialize croppie more than once");
    }
    this.element = element;
    this.options = deepExtend(clone(Croppie.defaults), opts);

    if (this.element.tagName.toLowerCase() === 'img') {
      var origImage = this.element;
      addClass(origImage, 'cr-original-image');
      setAttributes(origImage, { 'aria-hidden': 'true', 'alt': '' });
      var replacementDiv = document.createElement('div');
      this.element.parentNode.appendChild(replacementDiv);
      replacementDiv.appendChild(origImage);
      this.element = replacementDiv;
      this.options.url = this.options.url || origImage.src;
    }

    _create.call(this);
    if (this.options.url) {
      var bindOpts = {
        url: this.options.url,
        points: this.options.points
      };
      delete this.options['url'];
      delete this.options['points'];
      _bind.call(this, bindOpts);
    }
  }

  Croppie.defaults = {
    viewport: {
      width: 100,
      height: 100,
      type: 'square'
    },
    boundary: {},
    orientationControls: {
      enabled: true,
      leftClass: '',
      rightClass: ''
    },
    resizeControls: {
      width: true,
      height: true
    },
    customClass: '',
    showZoomer: true,
    enableZoom: true,
    enableResize: false,
    mouseWheelZoom: true,
    enableExif: false,
    enforceBoundary: true,
    enableOrientation: false,
    enableKeyMovement: true,
    update: function () { }
  };

  Croppie.globals = {
    translate: 'translate3d'
  };

  deepExtend(Croppie.prototype, {
    bind: function (options, cb) {
      return _bind.call(this, options, cb);
    },
    get: function () {
      var data = _get.call(this);
      var points = data.points;
      if (this.options.relative) {
        points[0] /= this.elements.img.naturalWidth / 100;
        points[1] /= this.elements.img.naturalHeight / 100;
        points[2] /= this.elements.img.naturalWidth / 100;
        points[3] /= this.elements.img.naturalHeight / 100;
      }
      return data;
    },
    result: function (type) {
      return _result.call(this, type);
    },
    refresh: function () {
      return _refresh.call(this);
    },
    setZoom: function (v) {
      _setZoomerVal.call(this, v);
      dispatchChange(this.elements.zoomer);
    },
    rotate: function (deg) {
      _rotate.call(this, deg);
    },
    destroy: function () {
      return _destroy.call(this);
    }
  });
  return Croppie;
}));
(function() {

    var debug = false;

    var root = this;

    var EXIF = function(obj) {
        if (obj instanceof EXIF) return obj;
        if (!(this instanceof EXIF)) return new EXIF(obj);
        this.EXIFwrapped = obj;
    };

    if (typeof exports !== 'undefined') {
        if (typeof module !== 'undefined' && module.exports) {
            exports = module.exports = EXIF;
        }
        exports.EXIF = EXIF;
    } else {
        root.EXIF = EXIF;
    }

    var ExifTags = EXIF.Tags = {

        // version tags
        0x9000 : "ExifVersion",             // EXIF version
        0xA000 : "FlashpixVersion",         // Flashpix format version

        // colorspace tags
        0xA001 : "ColorSpace",              // Color space information tag

        // image configuration
        0xA002 : "PixelXDimension",         // Valid width of meaningful image
        0xA003 : "PixelYDimension",         // Valid height of meaningful image
        0x9101 : "ComponentsConfiguration", // Information about channels
        0x9102 : "CompressedBitsPerPixel",  // Compressed bits per pixel

        // user information
        0x927C : "MakerNote",               // Any desired information written by the manufacturer
        0x9286 : "UserComment",             // Comments by user

        // related file
        0xA004 : "RelatedSoundFile",        // Name of related sound file

        // date and time
        0x9003 : "DateTimeOriginal",        // Date and time when the original image was generated
        0x9004 : "DateTimeDigitized",       // Date and time when the image was stored digitally
        0x9290 : "SubsecTime",              // Fractions of seconds for DateTime
        0x9291 : "SubsecTimeOriginal",      // Fractions of seconds for DateTimeOriginal
        0x9292 : "SubsecTimeDigitized",     // Fractions of seconds for DateTimeDigitized

        // picture-taking conditions
        0x829A : "ExposureTime",            // Exposure time (in seconds)
        0x829D : "FNumber",                 // F number
        0x8822 : "ExposureProgram",         // Exposure program
        0x8824 : "SpectralSensitivity",     // Spectral sensitivity
        0x8827 : "ISOSpeedRatings",         // ISO speed rating
        0x8828 : "OECF",                    // Optoelectric conversion factor
        0x9201 : "ShutterSpeedValue",       // Shutter speed
        0x9202 : "ApertureValue",           // Lens aperture
        0x9203 : "BrightnessValue",         // Value of brightness
        0x9204 : "ExposureBias",            // Exposure bias
        0x9205 : "MaxApertureValue",        // Smallest F number of lens
        0x9206 : "SubjectDistance",         // Distance to subject in meters
        0x9207 : "MeteringMode",            // Metering mode
        0x9208 : "LightSource",             // Kind of light source
        0x9209 : "Flash",                   // Flash status
        0x9214 : "SubjectArea",             // Location and area of main subject
        0x920A : "FocalLength",             // Focal length of the lens in mm
        0xA20B : "FlashEnergy",             // Strobe energy in BCPS
        0xA20C : "SpatialFrequencyResponse",    //
        0xA20E : "FocalPlaneXResolution",   // Number of pixels in width direction per FocalPlaneResolutionUnit
        0xA20F : "FocalPlaneYResolution",   // Number of pixels in height direction per FocalPlaneResolutionUnit
        0xA210 : "FocalPlaneResolutionUnit",    // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution
        0xA214 : "SubjectLocation",         // Location of subject in image
        0xA215 : "ExposureIndex",           // Exposure index selected on camera
        0xA217 : "SensingMethod",           // Image sensor type
        0xA300 : "FileSource",              // Image source (3 == DSC)
        0xA301 : "SceneType",               // Scene type (1 == directly photographed)
        0xA302 : "CFAPattern",              // Color filter array geometric pattern
        0xA401 : "CustomRendered",          // Special processing
        0xA402 : "ExposureMode",            // Exposure mode
        0xA403 : "WhiteBalance",            // 1 = auto white balance, 2 = manual
        0xA404 : "DigitalZoomRation",       // Digital zoom ratio
        0xA405 : "FocalLengthIn35mmFilm",   // Equivalent foacl length assuming 35mm film camera (in mm)
        0xA406 : "SceneCaptureType",        // Type of scene
        0xA407 : "GainControl",             // Degree of overall image gain adjustment
        0xA408 : "Contrast",                // Direction of contrast processing applied by camera
        0xA409 : "Saturation",              // Direction of saturation processing applied by camera
        0xA40A : "Sharpness",               // Direction of sharpness processing applied by camera
        0xA40B : "DeviceSettingDescription",    //
        0xA40C : "SubjectDistanceRange",    // Distance to subject

        // other tags
        0xA005 : "InteroperabilityIFDPointer",
        0xA420 : "ImageUniqueID"            // Identifier assigned uniquely to each image
    };

    var TiffTags = EXIF.TiffTags = {
        0x0100 : "ImageWidth",
        0x0101 : "ImageHeight",
        0x8769 : "ExifIFDPointer",
        0x8825 : "GPSInfoIFDPointer",
        0xA005 : "InteroperabilityIFDPointer",
        0x0102 : "BitsPerSample",
        0x0103 : "Compression",
        0x0106 : "PhotometricInterpretation",
        0x0112 : "Orientation",
        0x0115 : "SamplesPerPixel",
        0x011C : "PlanarConfiguration",
        0x0212 : "YCbCrSubSampling",
        0x0213 : "YCbCrPositioning",
        0x011A : "XResolution",
        0x011B : "YResolution",
        0x0128 : "ResolutionUnit",
        0x0111 : "StripOffsets",
        0x0116 : "RowsPerStrip",
        0x0117 : "StripByteCounts",
        0x0201 : "JPEGInterchangeFormat",
        0x0202 : "JPEGInterchangeFormatLength",
        0x012D : "TransferFunction",
        0x013E : "WhitePoint",
        0x013F : "PrimaryChromaticities",
        0x0211 : "YCbCrCoefficients",
        0x0214 : "ReferenceBlackWhite",
        0x0132 : "DateTime",
        0x010E : "ImageDescription",
        0x010F : "Make",
        0x0110 : "Model",
        0x0131 : "Software",
        0x013B : "Artist",
        0x8298 : "Copyright"
    };

    var GPSTags = EXIF.GPSTags = {
        0x0000 : "GPSVersionID",
        0x0001 : "GPSLatitudeRef",
        0x0002 : "GPSLatitude",
        0x0003 : "GPSLongitudeRef",
        0x0004 : "GPSLongitude",
        0x0005 : "GPSAltitudeRef",
        0x0006 : "GPSAltitude",
        0x0007 : "GPSTimeStamp",
        0x0008 : "GPSSatellites",
        0x0009 : "GPSStatus",
        0x000A : "GPSMeasureMode",
        0x000B : "GPSDOP",
        0x000C : "GPSSpeedRef",
        0x000D : "GPSSpeed",
        0x000E : "GPSTrackRef",
        0x000F : "GPSTrack",
        0x0010 : "GPSImgDirectionRef",
        0x0011 : "GPSImgDirection",
        0x0012 : "GPSMapDatum",
        0x0013 : "GPSDestLatitudeRef",
        0x0014 : "GPSDestLatitude",
        0x0015 : "GPSDestLongitudeRef",
        0x0016 : "GPSDestLongitude",
        0x0017 : "GPSDestBearingRef",
        0x0018 : "GPSDestBearing",
        0x0019 : "GPSDestDistanceRef",
        0x001A : "GPSDestDistance",
        0x001B : "GPSProcessingMethod",
        0x001C : "GPSAreaInformation",
        0x001D : "GPSDateStamp",
        0x001E : "GPSDifferential"
    };

     // EXIF 2.3 Spec
    var IFD1Tags = EXIF.IFD1Tags = {
        0x0100: "ImageWidth",
        0x0101: "ImageHeight",
        0x0102: "BitsPerSample",
        0x0103: "Compression",
        0x0106: "PhotometricInterpretation",
        0x0111: "StripOffsets",
        0x0112: "Orientation",
        0x0115: "SamplesPerPixel",
        0x0116: "RowsPerStrip",
        0x0117: "StripByteCounts",
        0x011A: "XResolution",
        0x011B: "YResolution",
        0x011C: "PlanarConfiguration",
        0x0128: "ResolutionUnit",
        0x0201: "JpegIFOffset",    // When image format is JPEG, this value show offset to JPEG data stored.(aka "ThumbnailOffset" or "JPEGInterchangeFormat")
        0x0202: "JpegIFByteCount", // When image format is JPEG, this value shows data size of JPEG image (aka "ThumbnailLength" or "JPEGInterchangeFormatLength")
        0x0211: "YCbCrCoefficients",
        0x0212: "YCbCrSubSampling",
        0x0213: "YCbCrPositioning",
        0x0214: "ReferenceBlackWhite"
    };

    var StringValues = EXIF.StringValues = {
        ExposureProgram : {
            0 : "Not defined",
            1 : "Manual",
            2 : "Normal program",
            3 : "Aperture priority",
            4 : "Shutter priority",
            5 : "Creative program",
            6 : "Action program",
            7 : "Portrait mode",
            8 : "Landscape mode"
        },
        MeteringMode : {
            0 : "Unknown",
            1 : "Average",
            2 : "CenterWeightedAverage",
            3 : "Spot",
            4 : "MultiSpot",
            5 : "Pattern",
            6 : "Partial",
            255 : "Other"
        },
        LightSource : {
            0 : "Unknown",
            1 : "Daylight",
            2 : "Fluorescent",
            3 : "Tungsten (incandescent light)",
            4 : "Flash",
            9 : "Fine weather",
            10 : "Cloudy weather",
            11 : "Shade",
            12 : "Daylight fluorescent (D 5700 - 7100K)",
            13 : "Day white fluorescent (N 4600 - 5400K)",
            14 : "Cool white fluorescent (W 3900 - 4500K)",
            15 : "White fluorescent (WW 3200 - 3700K)",
            17 : "Standard light A",
            18 : "Standard light B",
            19 : "Standard light C",
            20 : "D55",
            21 : "D65",
            22 : "D75",
            23 : "D50",
            24 : "ISO studio tungsten",
            255 : "Other"
        },
        Flash : {
            0x0000 : "Flash did not fire",
            0x0001 : "Flash fired",
            0x0005 : "Strobe return light not detected",
            0x0007 : "Strobe return light detected",
            0x0009 : "Flash fired, compulsory flash mode",
            0x000D : "Flash fired, compulsory flash mode, return light not detected",
            0x000F : "Flash fired, compulsory flash mode, return light detected",
            0x0010 : "Flash did not fire, compulsory flash mode",
            0x0018 : "Flash did not fire, auto mode",
            0x0019 : "Flash fired, auto mode",
            0x001D : "Flash fired, auto mode, return light not detected",
            0x001F : "Flash fired, auto mode, return light detected",
            0x0020 : "No flash function",
            0x0041 : "Flash fired, red-eye reduction mode",
            0x0045 : "Flash fired, red-eye reduction mode, return light not detected",
            0x0047 : "Flash fired, red-eye reduction mode, return light detected",
            0x0049 : "Flash fired, compulsory flash mode, red-eye reduction mode",
            0x004D : "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",
            0x004F : "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",
            0x0059 : "Flash fired, auto mode, red-eye reduction mode",
            0x005D : "Flash fired, auto mode, return light not detected, red-eye reduction mode",
            0x005F : "Flash fired, auto mode, return light detected, red-eye reduction mode"
        },
        SensingMethod : {
            1 : "Not defined",
            2 : "One-chip color area sensor",
            3 : "Two-chip color area sensor",
            4 : "Three-chip color area sensor",
            5 : "Color sequential area sensor",
            7 : "Trilinear sensor",
            8 : "Color sequential linear sensor"
        },
        SceneCaptureType : {
            0 : "Standard",
            1 : "Landscape",
            2 : "Portrait",
            3 : "Night scene"
        },
        SceneType : {
            1 : "Directly photographed"
        },
        CustomRendered : {
            0 : "Normal process",
            1 : "Custom process"
        },
        WhiteBalance : {
            0 : "Auto white balance",
            1 : "Manual white balance"
        },
        GainControl : {
            0 : "None",
            1 : "Low gain up",
            2 : "High gain up",
            3 : "Low gain down",
            4 : "High gain down"
        },
        Contrast : {
            0 : "Normal",
            1 : "Soft",
            2 : "Hard"
        },
        Saturation : {
            0 : "Normal",
            1 : "Low saturation",
            2 : "High saturation"
        },
        Sharpness : {
            0 : "Normal",
            1 : "Soft",
            2 : "Hard"
        },
        SubjectDistanceRange : {
            0 : "Unknown",
            1 : "Macro",
            2 : "Close view",
            3 : "Distant view"
        },
        FileSource : {
            3 : "DSC"
        },

        Components : {
            0 : "",
            1 : "Y",
            2 : "Cb",
            3 : "Cr",
            4 : "R",
            5 : "G",
            6 : "B"
        }
    };

    function addEvent(element, event, handler) {
        if (element.addEventListener) {
            element.addEventListener(event, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + event, handler);
        }
    }

    function imageHasData(img) {
        return !!(img.exifdata);
    }


    function base64ToArrayBuffer(base64, contentType) {
        contentType = contentType || base64.match(/^data\:([^\;]+)\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'
        base64 = base64.replace(/^data\:([^\;]+)\;base64,/gmi, '');
        var binary = atob(base64);
        var len = binary.length;
        var buffer = new ArrayBuffer(len);
        var view = new Uint8Array(buffer);
        for (var i = 0; i < len; i++) {
            view[i] = binary.charCodeAt(i);
        }
        return buffer;
    }

    function objectURLToBlob(url, callback) {
        var http = new XMLHttpRequest();
        http.open("GET", url, true);
        http.responseType = "blob";
        http.onload = function(e) {
            if (this.status == 200 || this.status === 0) {
                callback(this.response);
            }
        };
        http.send();
    }

    function getImageData(img, callback) {
        function handleBinaryFile(binFile) {
            var data = findEXIFinJPEG(binFile);
            img.exifdata = data || {};
            var iptcdata = findIPTCinJPEG(binFile);
            img.iptcdata = iptcdata || {};
            if (EXIF.isXmpEnabled) {
               var xmpdata= findXMPinJPEG(binFile);
               img.xmpdata = xmpdata || {};               
            }
            if (callback) {
                callback.call(img);
            }
        }

        if (img.src) {
            if (/^data\:/i.test(img.src)) { // Data URI
                var arrayBuffer = base64ToArrayBuffer(img.src);
                handleBinaryFile(arrayBuffer);

            } else if (/^blob\:/i.test(img.src)) { // Object URL
                var fileReader = new FileReader();
                fileReader.onload = function(e) {
                    handleBinaryFile(e.target.result);
                };
                objectURLToBlob(img.src, function (blob) {
                    fileReader.readAsArrayBuffer(blob);
                });
            } else {
                var http = new XMLHttpRequest();
                http.onload = function() {
                    if (this.status == 200 || this.status === 0) {
                        handleBinaryFile(http.response);
                    } else {
                        throw "Could not load image";
                    }
                    http = null;
                };
                http.open("GET", img.src, true);
                http.responseType = "arraybuffer";
                http.send(null);
            }
        } else if (self.FileReader && (img instanceof self.Blob || img instanceof self.File)) {
            var fileReader = new FileReader();
            fileReader.onload = function(e) {
                if (debug) console.log("Got file of length " + e.target.result.byteLength);
                handleBinaryFile(e.target.result);
            };

            fileReader.readAsArrayBuffer(img);
        }
    }

    function findEXIFinJPEG(file) {
        var dataView = new DataView(file);

        if (debug) console.log("Got file of length " + file.byteLength);
        if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {
            if (debug) console.log("Not a valid JPEG");
            return false; // not a valid jpeg
        }

        var offset = 2,
            length = file.byteLength,
            marker;

        while (offset < length) {
            if (dataView.getUint8(offset) != 0xFF) {
                if (debug) console.log("Not a valid marker at offset " + offset + ", found: " + dataView.getUint8(offset));
                return false; // not a valid marker, something is wrong
            }

            marker = dataView.getUint8(offset + 1);
            if (debug) console.log(marker);

            // we could implement handling for other markers here,
            // but we're only looking for 0xFFE1 for EXIF data

            if (marker == 225) {
                if (debug) console.log("Found 0xFFE1 marker");

                return readEXIFData(dataView, offset + 4, dataView.getUint16(offset + 2) - 2);

                // offset += 2 + file.getShortAt(offset+2, true);

            } else {
                offset += 2 + dataView.getUint16(offset+2);
            }

        }

    }

    function findIPTCinJPEG(file) {
        var dataView = new DataView(file);

        if (debug) console.log("Got file of length " + file.byteLength);
        if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {
            if (debug) console.log("Not a valid JPEG");
            return false; // not a valid jpeg
        }

        var offset = 2,
            length = file.byteLength;


        var isFieldSegmentStart = function(dataView, offset){
            return (
                dataView.getUint8(offset) === 0x38 &&
                dataView.getUint8(offset+1) === 0x42 &&
                dataView.getUint8(offset+2) === 0x49 &&
                dataView.getUint8(offset+3) === 0x4D &&
                dataView.getUint8(offset+4) === 0x04 &&
                dataView.getUint8(offset+5) === 0x04
            );
        };

        while (offset < length) {

            if ( isFieldSegmentStart(dataView, offset )){

                // Get the length of the name header (which is padded to an even number of bytes)
                var nameHeaderLength = dataView.getUint8(offset+7);
                if(nameHeaderLength % 2 !== 0) nameHeaderLength += 1;
                // Check for pre photoshop 6 format
                if(nameHeaderLength === 0) {
                    // Always 4
                    nameHeaderLength = 4;
                }

                var startOffset = offset + 8 + nameHeaderLength;
                var sectionLength = dataView.getUint16(offset + 6 + nameHeaderLength);

                return readIPTCData(file, startOffset, sectionLength);

                break;

            }


            // Not the marker, continue searching
            offset++;

        }

    }
    var IptcFieldMap = {
        0x78 : 'caption',
        0x6E : 'credit',
        0x19 : 'keywords',
        0x37 : 'dateCreated',
        0x50 : 'byline',
        0x55 : 'bylineTitle',
        0x7A : 'captionWriter',
        0x69 : 'headline',
        0x74 : 'copyright',
        0x0F : 'category'
    };
    function readIPTCData(file, startOffset, sectionLength){
        var dataView = new DataView(file);
        var data = {};
        var fieldValue, fieldName, dataSize, segmentType, segmentSize;
        var segmentStartPos = startOffset;
        while(segmentStartPos < startOffset+sectionLength) {
            if(dataView.getUint8(segmentStartPos) === 0x1C && dataView.getUint8(segmentStartPos+1) === 0x02){
                segmentType = dataView.getUint8(segmentStartPos+2);
                if(segmentType in IptcFieldMap) {
                    dataSize = dataView.getInt16(segmentStartPos+3);
                    segmentSize = dataSize + 5;
                    fieldName = IptcFieldMap[segmentType];
                    fieldValue = getStringFromDB(dataView, segmentStartPos+5, dataSize);
                    // Check if we already stored a value with this name
                    if(data.hasOwnProperty(fieldName)) {
                        // Value already stored with this name, create multivalue field
                        if(data[fieldName] instanceof Array) {
                            data[fieldName].push(fieldValue);
                        }
                        else {
                            data[fieldName] = [data[fieldName], fieldValue];
                        }
                    }
                    else {
                        data[fieldName] = fieldValue;
                    }
                }

            }
            segmentStartPos++;
        }
        return data;
    }



    function readTags(file, tiffStart, dirStart, strings, bigEnd) {
        var entries = file.getUint16(dirStart, !bigEnd),
            tags = {},
            entryOffset, tag,
            i;

        for (i=0;i<entries;i++) {
            entryOffset = dirStart + i*12 + 2;
            tag = strings[file.getUint16(entryOffset, !bigEnd)];
            if (!tag && debug) console.log("Unknown tag: " + file.getUint16(entryOffset, !bigEnd));
            tags[tag] = readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd);
        }
        return tags;
    }


    function readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd) {
        var type = file.getUint16(entryOffset+2, !bigEnd),
            numValues = file.getUint32(entryOffset+4, !bigEnd),
            valueOffset = file.getUint32(entryOffset+8, !bigEnd) + tiffStart,
            offset,
            vals, val, n,
            numerator, denominator;

        switch (type) {
            case 1: // byte, 8-bit unsigned int
            case 7: // undefined, 8-bit byte, value depending on field
                if (numValues == 1) {
                    return file.getUint8(entryOffset + 8, !bigEnd);
                } else {
                    offset = numValues > 4 ? valueOffset : (entryOffset + 8);
                    vals = [];
                    for (n=0;n<numValues;n++) {
                        vals[n] = file.getUint8(offset + n);
                    }
                    return vals;
                }

            case 2: // ascii, 8-bit byte
                offset = numValues > 4 ? valueOffset : (entryOffset + 8);
                return getStringFromDB(file, offset, numValues-1);

            case 3: // short, 16 bit int
                if (numValues == 1) {
                    return file.getUint16(entryOffset + 8, !bigEnd);
                } else {
                    offset = numValues > 2 ? valueOffset : (entryOffset + 8);
                    vals = [];
                    for (n=0;n<numValues;n++) {
                        vals[n] = file.getUint16(offset + 2*n, !bigEnd);
                    }
                    return vals;
                }

            case 4: // long, 32 bit int
                if (numValues == 1) {
                    return file.getUint32(entryOffset + 8, !bigEnd);
                } else {
                    vals = [];
                    for (n=0;n<numValues;n++) {
                        vals[n] = file.getUint32(valueOffset + 4*n, !bigEnd);
                    }
                    return vals;
                }

            case 5:    // rational = two long values, first is numerator, second is denominator
                if (numValues == 1) {
                    numerator = file.getUint32(valueOffset, !bigEnd);
                    denominator = file.getUint32(valueOffset+4, !bigEnd);
                    val = new Number(numerator / denominator);
                    val.numerator = numerator;
                    val.denominator = denominator;
                    return val;
                } else {
                    vals = [];
                    for (n=0;n<numValues;n++) {
                        numerator = file.getUint32(valueOffset + 8*n, !bigEnd);
                        denominator = file.getUint32(valueOffset+4 + 8*n, !bigEnd);
                        vals[n] = new Number(numerator / denominator);
                        vals[n].numerator = numerator;
                        vals[n].denominator = denominator;
                    }
                    return vals;
                }

            case 9: // slong, 32 bit signed int
                if (numValues == 1) {
                    return file.getInt32(entryOffset + 8, !bigEnd);
                } else {
                    vals = [];
                    for (n=0;n<numValues;n++) {
                        vals[n] = file.getInt32(valueOffset + 4*n, !bigEnd);
                    }
                    return vals;
                }

            case 10: // signed rational, two slongs, first is numerator, second is denominator
                if (numValues == 1) {
                    return file.getInt32(valueOffset, !bigEnd) / file.getInt32(valueOffset+4, !bigEnd);
                } else {
                    vals = [];
                    for (n=0;n<numValues;n++) {
                        vals[n] = file.getInt32(valueOffset + 8*n, !bigEnd) / file.getInt32(valueOffset+4 + 8*n, !bigEnd);
                    }
                    return vals;
                }
        }
    }

    /**
    * Given an IFD (Image File Directory) start offset
    * returns an offset to next IFD or 0 if it's the last IFD.
    */
    function getNextIFDOffset(dataView, dirStart, bigEnd){
        //the first 2bytes means the number of directory entries contains in this IFD
        var entries = dataView.getUint16(dirStart, !bigEnd);

        // After last directory entry, there is a 4bytes of data,
        // it means an offset to next IFD.
        // If its value is '0x00000000', it means this is the last IFD and there is no linked IFD.

        return dataView.getUint32(dirStart + 2 + entries * 12, !bigEnd); // each entry is 12 bytes long
    }

    function readThumbnailImage(dataView, tiffStart, firstIFDOffset, bigEnd){
        // get the IFD1 offset
        var IFD1OffsetPointer = getNextIFDOffset(dataView, tiffStart+firstIFDOffset, bigEnd);

        if (!IFD1OffsetPointer) {
            // console.log('******** IFD1Offset is empty, image thumb not found ********');
            return {};
        }
        else if (IFD1OffsetPointer > dataView.byteLength) { // this should not happen
            // console.log('******** IFD1Offset is outside the bounds of the DataView ********');
            return {};
        }
        // console.log('*******  thumbnail IFD offset (IFD1) is: %s', IFD1OffsetPointer);

        var thumbTags = readTags(dataView, tiffStart, tiffStart + IFD1OffsetPointer, IFD1Tags, bigEnd)

        // EXIF 2.3 specification for JPEG format thumbnail

        // If the value of Compression(0x0103) Tag in IFD1 is '6', thumbnail image format is JPEG.
        // Most of Exif image uses JPEG format for thumbnail. In that case, you can get offset of thumbnail
        // by JpegIFOffset(0x0201) Tag in IFD1, size of thumbnail by JpegIFByteCount(0x0202) Tag.
        // Data format is ordinary JPEG format, starts from 0xFFD8 and ends by 0xFFD9. It seems that
        // JPEG format and 160x120pixels of size are recommended thumbnail format for Exif2.1 or later.

        if (thumbTags['Compression']) {
            // console.log('Thumbnail image found!');

            switch (thumbTags['Compression']) {
                case 6:
                    // console.log('Thumbnail image format is JPEG');
                    if (thumbTags.JpegIFOffset && thumbTags.JpegIFByteCount) {
                    // extract the thumbnail
                        var tOffset = tiffStart + thumbTags.JpegIFOffset;
                        var tLength = thumbTags.JpegIFByteCount;
                        thumbTags['blob'] = new Blob([new Uint8Array(dataView.buffer, tOffset, tLength)], {
                            type: 'image/jpeg'
                        });
                    }
                break;

            case 1:
                console.log("Thumbnail image format is TIFF, which is not implemented.");
                break;
            default:
                console.log("Unknown thumbnail image format '%s'", thumbTags['Compression']);
            }
        }
        else if (thumbTags['PhotometricInterpretation'] == 2) {
            console.log("Thumbnail image format is RGB, which is not implemented.");
        }
        return thumbTags;
    }

    function getStringFromDB(buffer, start, length) {
        var outstr = "";
        for (var n = start; n < start+length; n++) {
            outstr += String.fromCharCode(buffer.getUint8(n));
        }
        return outstr;
    }

    function readEXIFData(file, start) {
        if (getStringFromDB(file, start, 4) != "Exif") {
            if (debug) console.log("Not valid EXIF data! " + getStringFromDB(file, start, 4));
            return false;
        }

        var bigEnd,
            tags, tag,
            exifData, gpsData,
            tiffOffset = start + 6;

        // test for TIFF validity and endianness
        if (file.getUint16(tiffOffset) == 0x4949) {
            bigEnd = false;
        } else if (file.getUint16(tiffOffset) == 0x4D4D) {
            bigEnd = true;
        } else {
            if (debug) console.log("Not valid TIFF data! (no 0x4949 or 0x4D4D)");
            return false;
        }

        if (file.getUint16(tiffOffset+2, !bigEnd) != 0x002A) {
            if (debug) console.log("Not valid TIFF data! (no 0x002A)");
            return false;
        }

        var firstIFDOffset = file.getUint32(tiffOffset+4, !bigEnd);

        if (firstIFDOffset < 0x00000008) {
            if (debug) console.log("Not valid TIFF data! (First offset less than 8)", file.getUint32(tiffOffset+4, !bigEnd));
            return false;
        }

        tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, TiffTags, bigEnd);

        if (tags.ExifIFDPointer) {
            exifData = readTags(file, tiffOffset, tiffOffset + tags.ExifIFDPointer, ExifTags, bigEnd);
            for (tag in exifData) {
                switch (tag) {
                    case "LightSource" :
                    case "Flash" :
                    case "MeteringMode" :
                    case "ExposureProgram" :
                    case "SensingMethod" :
                    case "SceneCaptureType" :
                    case "SceneType" :
                    case "CustomRendered" :
                    case "WhiteBalance" :
                    case "GainControl" :
                    case "Contrast" :
                    case "Saturation" :
                    case "Sharpness" :
                    case "SubjectDistanceRange" :
                    case "FileSource" :
                        exifData[tag] = StringValues[tag][exifData[tag]];
                        break;

                    case "ExifVersion" :
                    case "FlashpixVersion" :
                        exifData[tag] = String.fromCharCode(exifData[tag][0], exifData[tag][1], exifData[tag][2], exifData[tag][3]);
                        break;

                    case "ComponentsConfiguration" :
                        exifData[tag] =
                            StringValues.Components[exifData[tag][0]] +
                            StringValues.Components[exifData[tag][1]] +
                            StringValues.Components[exifData[tag][2]] +
                            StringValues.Components[exifData[tag][3]];
                        break;
                }
                tags[tag] = exifData[tag];
            }
        }

        if (tags.GPSInfoIFDPointer) {
            gpsData = readTags(file, tiffOffset, tiffOffset + tags.GPSInfoIFDPointer, GPSTags, bigEnd);
            for (tag in gpsData) {
                switch (tag) {
                    case "GPSVersionID" :
                        gpsData[tag] = gpsData[tag][0] +
                            "." + gpsData[tag][1] +
                            "." + gpsData[tag][2] +
                            "." + gpsData[tag][3];
                        break;
                }
                tags[tag] = gpsData[tag];
            }
        }

        // extract thumbnail
        tags['thumbnail'] = readThumbnailImage(file, tiffOffset, firstIFDOffset, bigEnd);

        return tags;
    }

   function findXMPinJPEG(file) {

        if (!('DOMParser' in self)) {
            // console.warn('XML parsing not supported without DOMParser');
            return;
        }
        var dataView = new DataView(file);

        if (debug) console.log("Got file of length " + file.byteLength);
        if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {
           if (debug) console.log("Not a valid JPEG");
           return false; // not a valid jpeg
        }

        var offset = 2,
            length = file.byteLength,
            dom = new DOMParser();

        while (offset < (length-4)) {
            if (getStringFromDB(dataView, offset, 4) == "http") {
                var startOffset = offset - 1;
                var sectionLength = dataView.getUint16(offset - 2) - 1;
                var xmpString = getStringFromDB(dataView, startOffset, sectionLength)
                var xmpEndIndex = xmpString.indexOf('xmpmeta>') + 8;
                xmpString = xmpString.substring( xmpString.indexOf( '<x:xmpmeta' ), xmpEndIndex );

                var indexOfXmp = xmpString.indexOf('x:xmpmeta') + 10
                //Many custom written programs embed xmp/xml without any namespace. Following are some of them.
                //Without these namespaces, XML is thought to be invalid by parsers
                xmpString = xmpString.slice(0, indexOfXmp)
                            + 'xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/" '
                            + 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
                            + 'xmlns:tiff="http://ns.adobe.com/tiff/1.0/" '
                            + 'xmlns:plus="http://schemas.android.com/apk/lib/com.google.android.gms.plus" '
                            + 'xmlns:ext="http://www.gettyimages.com/xsltExtension/1.0" '
                            + 'xmlns:exif="http://ns.adobe.com/exif/1.0/" '
                            + 'xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" '
                            + 'xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" '
                            + 'xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/" '
                            + 'xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" '
                            + 'xmlns:Iptc4xmpExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" '
                            + xmpString.slice(indexOfXmp)

                var domDocument = dom.parseFromString( xmpString, 'text/xml' );
                return xml2Object(domDocument);
            } else{
             offset++;
            }
        }
    }

    function xml2json(xml) {
        var json = {};
      
        if (xml.nodeType == 1) { // element node
          if (xml.attributes.length > 0) {
            json['@attributes'] = {};
            for (var j = 0; j < xml.attributes.length; j++) {
              var attribute = xml.attributes.item(j);
              json['@attributes'][attribute.nodeName] = attribute.nodeValue;
            }
          }
        } else if (xml.nodeType == 3) { // text node
          return xml.nodeValue;
        }
      
        // deal with children
        if (xml.hasChildNodes()) {
          for(var i = 0; i < xml.childNodes.length; i++) {
            var child = xml.childNodes.item(i);
            var nodeName = child.nodeName;
            if (json[nodeName] == null) {
              json[nodeName] = xml2json(child);
            } else {
              if (json[nodeName].push == null) {
                var old = json[nodeName];
                json[nodeName] = [];
                json[nodeName].push(old);
              }
              json[nodeName].push(xml2json(child));
            }
          }
        }
        
        return json;
    }

    function xml2Object(xml) {
        try {
            var obj = {};
            if (xml.children.length > 0) {
              for (var i = 0; i < xml.children.length; i++) {
                var item = xml.children.item(i);
                var attributes = item.attributes;
                for(var idx in attributes) {
                    var itemAtt = attributes[idx];
                    var dataKey = itemAtt.nodeName;
                    var dataValue = itemAtt.nodeValue;

                    if(dataKey !== undefined) {
                        obj[dataKey] = dataValue;
                    }
                }
                var nodeName = item.nodeName;

                if (typeof (obj[nodeName]) == "undefined") {
                  obj[nodeName] = xml2json(item);
                } else {
                  if (typeof (obj[nodeName].push) == "undefined") {
                    var old = obj[nodeName];

                    obj[nodeName] = [];
                    obj[nodeName].push(old);
                  }
                  obj[nodeName].push(xml2json(item));
                }
              }
            } else {
              obj = xml.textContent;
            }
            return obj;
          } catch (e) {
              console.log(e.message);
          }
    }

    EXIF.enableXmp = function() {
        EXIF.isXmpEnabled = true;
    }

    EXIF.disableXmp = function() {
        EXIF.isXmpEnabled = false;
    }

    EXIF.getData = function(img, callback) {
        if (((self.Image && img instanceof self.Image)
            || (self.HTMLImageElement && img instanceof self.HTMLImageElement))
            && !img.complete)
            return false;

        if (!imageHasData(img)) {
            getImageData(img, callback);
        } else {
            if (callback) {
                callback.call(img);
            }
        }
        return true;
    }

    EXIF.getTag = function(img, tag) {
        if (!imageHasData(img)) return;
        return img.exifdata[tag];
    }
    
    EXIF.getIptcTag = function(img, tag) {
        if (!imageHasData(img)) return;
        return img.iptcdata[tag];
    }

    EXIF.getAllTags = function(img) {
        if (!imageHasData(img)) return {};
        var a,
            data = img.exifdata,
            tags = {};
        for (a in data) {
            if (data.hasOwnProperty(a)) {
                tags[a] = data[a];
            }
        }
        return tags;
    }
    
    EXIF.getAllIptcTags = function(img) {
        if (!imageHasData(img)) return {};
        var a,
            data = img.iptcdata,
            tags = {};
        for (a in data) {
            if (data.hasOwnProperty(a)) {
                tags[a] = data[a];
            }
        }
        return tags;
    }

    EXIF.pretty = function(img) {
        if (!imageHasData(img)) return "";
        var a,
            data = img.exifdata,
            strPretty = "";
        for (a in data) {
            if (data.hasOwnProperty(a)) {
                if (typeof data[a] == "object") {
                    if (data[a] instanceof Number) {
                        strPretty += a + " : " + data[a] + " [" + data[a].numerator + "/" + data[a].denominator + "]\r\n";
                    } else {
                        strPretty += a + " : [" + data[a].length + " values]\r\n";
                    }
                } else {
                    strPretty += a + " : " + data[a] + "\r\n";
                }
            }
        }
        return strPretty;
    }

    EXIF.readFromBinaryFile = function(file) {
        return findEXIFinJPEG(file);
    }

    if (typeof define === 'function' && define.amd) {
        define('exif-js', [], function() {
            return EXIF;
        });
    }
}.call(this));
(function() {
  var a, b, c, d, e, f, g, h, i = [].slice, j = {}.hasOwnProperty, k = function(a, b) { function c() { this.constructor = a } for (var d in b) j.call(b, d) && (a[d] = b[d]); return c.prototype = b.prototype, a.prototype = new c, a.__super__ = b.prototype, a }; g = function() { }, b = function() { function a() { } return a.prototype.addEventListener = a.prototype.on, a.prototype.on = function(a, b) { return this._callbacks = this._callbacks || {}, this._callbacks[a] || (this._callbacks[a] = []), this._callbacks[a].push(b), this }, a.prototype.emit = function() { var a, b, c, d, e, f; if (d = arguments[0], a = 2 <= arguments.length ? i.call(arguments, 1) : [], this._callbacks = this._callbacks || {}, c = this._callbacks[d]) for (e = 0, f = c.length; f > e; e++) b = c[e], b.apply(this, a); return this }, a.prototype.removeListener = a.prototype.off, a.prototype.removeAllListeners = a.prototype.off, a.prototype.removeEventListener = a.prototype.off, a.prototype.off = function(a, b) { var c, d, e, f, g; if (!this._callbacks || 0 === arguments.length) return this._callbacks = {}, this; if (d = this._callbacks[a], !d) return this; if (1 === arguments.length) return delete this._callbacks[a], this; for (e = f = 0, g = d.length; g > f; e = ++f) if (c = d[e], c === b) { d.splice(e, 1); break } return this }, a }(), a = function(a) { function c(a, b) { var e, f, g; if (this.element = a, this.version = c.version, this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\n*/g, ""), this.clickableElements = [], this.listeners = [], this.files = [], "string" == typeof this.element && (this.element = document.querySelector(this.element)), !this.element || null == this.element.nodeType) throw new Error("Invalid dropzone element."); if (this.element.dropzone) throw new Error("Dropzone already attached."); if (c.instances.push(this), this.element.dropzone = this, e = null != (g = c.optionsForElement(this.element)) ? g : {}, this.options = d({}, this.defaultOptions, e, null != b ? b : {}), this.options.forceFallback || !c.isBrowserSupported()) return this.options.fallback.call(this); if (null == this.options.url && (this.options.url = this.element.getAttribute("action")), !this.options.url) throw new Error("No URL provided."); if (this.options.acceptedFiles && this.options.acceptedMimeTypes) throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); this.options.acceptedMimeTypes && (this.options.acceptedFiles = this.options.acceptedMimeTypes, delete this.options.acceptedMimeTypes), this.options.method = this.options.method.toUpperCase(), (f = this.getExistingFallback()) && f.parentNode && f.parentNode.removeChild(f), this.options.previewsContainer !== !1 && (this.previewsContainer = this.options.previewsContainer ? c.getElement(this.options.previewsContainer, "previewsContainer") : this.element), this.options.clickable && (this.clickableElements = this.options.clickable === !0 ? [this.element] : c.getElements(this.options.clickable, "clickable")), this.init() } var d, e; return k(c, a), c.prototype.Emitter = b, c.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"], c.prototype.defaultOptions = { url: null, method: "post", withCredentials: !1, parallelUploads: 2, uploadMultiple: !1, maxFilesize: 256, paramName: "file", createImageThumbnails: !0, maxThumbnailFilesize: 10, thumbnailWidth: 120, thumbnailHeight: 120, filesizeBase: 1e3, maxFiles: null, filesizeBase: 1e3, params: {}, clickable: !0, ignoreHiddenFiles: !0, acceptedFiles: null, acceptedMimeTypes: null, autoProcessQueue: !0, autoQueue: !0, addRemoveLinks: !1, previewsContainer: null, capture: null, dictDefaultMessage: "Drop files here to upload", dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", dictInvalidFileType: "You can't upload files of this type.", dictResponseError: "Server responded with {{statusCode}} code.", dictCancelUpload: "Cancel upload", dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", dictRemoveFile: "Remove file", dictRemoveFileConfirmation: null, dictMaxFilesExceeded: "You can not upload any more files.", accept: function(a, b) { return b() }, init: function() { return g }, forceFallback: !1, fallback: function() { var a, b, d, e, f, g; for (this.element.className = "" + this.element.className + " dz-browser-not-supported", g = this.element.getElementsByTagName("div"), e = 0, f = g.length; f > e; e++) a = g[e], /(^| )dz-message($| )/.test(a.className) && (b = a, a.className = "dz-message"); return b || (b = c.createElement('<div class="dz-message"><span></span></div>'), this.element.appendChild(b)), d = b.getElementsByTagName("span")[0], d && (d.textContent = this.options.dictFallbackMessage), this.element.appendChild(this.getFallbackForm()) }, resize: function(a) { var b, c, d; return b = { srcX: 0, srcY: 0, srcWidth: a.width, srcHeight: a.height }, c = a.width / a.height, b.optWidth = this.options.thumbnailWidth, b.optHeight = this.options.thumbnailHeight, null == b.optWidth && null == b.optHeight ? (b.optWidth = b.srcWidth, b.optHeight = b.srcHeight) : null == b.optWidth ? b.optWidth = c * b.optHeight : null == b.optHeight && (b.optHeight = 1 / c * b.optWidth), d = b.optWidth / b.optHeight, a.height < b.optHeight || a.width < b.optWidth ? (b.trgHeight = b.srcHeight, b.trgWidth = b.srcWidth) : c > d ? (b.srcHeight = a.height, b.srcWidth = b.srcHeight * d) : (b.srcWidth = a.width, b.srcHeight = b.srcWidth / d), b.srcX = (a.width - b.srcWidth) / 2, b.srcY = (a.height - b.srcHeight) / 2, b }, drop: function() { return this.element.classList.remove("dz-drag-hover") }, dragstart: g, dragend: function() { return this.element.classList.remove("dz-drag-hover") }, dragenter: function() { return this.element.classList.add("dz-drag-hover") }, dragover: function() { return this.element.classList.add("dz-drag-hover") }, dragleave: function() { return this.element.classList.remove("dz-drag-hover") }, paste: g, reset: function() { return this.element.classList.remove("dz-started") }, addedfile: function(a) { var b, d, e, f, g, h, i, j, k, l, m, n, o; if (this.element === this.previewsContainer && this.element.classList.add("dz-started"), this.previewsContainer) { for (a.previewElement = c.createElement(this.options.previewTemplate.trim()), a.previewTemplate = a.previewElement, this.previewsContainer.appendChild(a.previewElement), l = a.previewElement.querySelectorAll("[data-dz-name]"), f = 0, i = l.length; i > f; f++) b = l[f], b.textContent = a.name; for (m = a.previewElement.querySelectorAll("[data-dz-size]"), g = 0, j = m.length; j > g; g++) b = m[g], b.innerHTML = this.filesize(a.size); for (this.options.addRemoveLinks && (a._removeLink = c.createElement('<a class="dz-remove" href="javascript:undefined;" data-dz-remove>' + this.options.dictRemoveFile + "</a>"), a.previewElement.appendChild(a._removeLink)), d = function(b) { return function(d) { return d.preventDefault(), d.stopPropagation(), a.status === c.UPLOADING ? c.confirm(b.options.dictCancelUploadConfirmation, function() { return b.removeFile(a) }) : b.options.dictRemoveFileConfirmation ? c.confirm(b.options.dictRemoveFileConfirmation, function() { return b.removeFile(a) }) : b.removeFile(a) } }(this), n = a.previewElement.querySelectorAll("[data-dz-remove]"), o = [], h = 0, k = n.length; k > h; h++) e = n[h], o.push(e.addEventListener("click", d)); return o } }, removedfile: function(a) { var b; return a.previewElement && null != (b = a.previewElement) && b.parentNode.removeChild(a.previewElement), this._updateMaxFilesReachedClass() }, thumbnail: function(a, b) { var c, d, e, f; if (a.previewElement) { for (a.previewElement.classList.remove("dz-file-preview"), f = a.previewElement.querySelectorAll("[data-dz-thumbnail]"), d = 0, e = f.length; e > d; d++) c = f[d], c.alt = a.name, c.src = b; return setTimeout(function() { return function() { return a.previewElement.classList.add("dz-image-preview") } }(this), 1) } }, error: function(a, b) { var c, d, e, f, g; if (a.previewElement) { for (a.previewElement.classList.add("dz-error"), "String" != typeof b && b.error && (b = b.error), f = a.previewElement.querySelectorAll("[data-dz-errormessage]"), g = [], d = 0, e = f.length; e > d; d++) c = f[d], g.push(c.textContent = b); return g } }, errormultiple: g, processing: function(a) { return a.previewElement && (a.previewElement.classList.add("dz-processing"), a._removeLink) ? a._removeLink.textContent = this.options.dictCancelUpload : void 0 }, processingmultiple: g, uploadprogress: function(a, b) { var c, d, e, f, g; if (a.previewElement) { for (f = a.previewElement.querySelectorAll("[data-dz-uploadprogress]"), g = [], d = 0, e = f.length; e > d; d++) c = f[d], g.push("PROGRESS" === c.nodeName ? c.value = b : c.style.width = "" + b + "%"); return g } }, totaluploadprogress: g, sending: g, sendingmultiple: g, success: function(a) { return a.previewElement ? a.previewElement.classList.add("dz-success") : void 0 }, successmultiple: g, canceled: function(a) { return this.emit("error", a, "Upload canceled.") }, canceledmultiple: g, complete: function(a) { return a._removeLink && (a._removeLink.textContent = this.options.dictRemoveFile), a.previewElement ? a.previewElement.classList.add("dz-complete") : void 0 }, completemultiple: g, maxfilesexceeded: g, maxfilesreached: g, queuecomplete: g, previewTemplate: '<div class="dz-preview dz-file-preview">\n  <div class="dz-image"><img data-dz-thumbnail /></div>\n  <div class="dz-details">\n    <div class="dz-size"><span data-dz-size></span></div>\n    <div class="dz-filename"><span data-dz-name></span></div>\n  </div>\n  <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>\n  <div class="dz-error-message"><span data-dz-errormessage></span></div>\n  <div class="dz-success-mark">\n    <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n      <title>Check</title>\n      <defs></defs>\n      <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n        <path d="M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" id="Oval-2" stroke-opacity="0.198794158" stroke="#747474" fill-opacity="0.816519475" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>\n      </g>\n    </svg>\n  </div>\n  <div class="dz-error-mark">\n    <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n      <title>Error</title>\n      <defs></defs>\n      <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n        <g id="Check-+-Oval-2" sketch:type="MSLayerGroup" stroke="#747474" stroke-opacity="0.198794158" fill="#FFFFFF" fill-opacity="0.816519475">\n          <path d="M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" id="Oval-2" sketch:type="MSShapeGroup"></path>\n        </g>\n      </g>\n    </svg>\n  </div>\n</div>' }, d = function() { var a, b, c, d, e, f, g; for (d = arguments[0], c = 2 <= arguments.length ? i.call(arguments, 1) : [], f = 0, g = c.length; g > f; f++) { b = c[f]; for (a in b) e = b[a], d[a] = e } return d }, c.prototype.getAcceptedFiles = function() { var a, b, c, d, e; for (d = this.files, e = [], b = 0, c = d.length; c > b; b++) a = d[b], a.accepted && e.push(a); return e }, c.prototype.getRejectedFiles = function() { var a, b, c, d, e; for (d = this.files, e = [], b = 0, c = d.length; c > b; b++) a = d[b], a.accepted || e.push(a); return e }, c.prototype.getFilesWithStatus = function(a) { var b, c, d, e, f; for (e = this.files, f = [], c = 0, d = e.length; d > c; c++) b = e[c], b.status === a && f.push(b); return f }, c.prototype.getQueuedFiles = function() { return this.getFilesWithStatus(c.QUEUED) }, c.prototype.getUploadingFiles = function() { return this.getFilesWithStatus(c.UPLOADING) }, c.prototype.getActiveFiles = function() { var a, b, d, e, f; for (e = this.files, f = [], b = 0, d = e.length; d > b; b++) a = e[b], (a.status === c.UPLOADING || a.status === c.QUEUED) && f.push(a); return f }, c.prototype.init = function() { var a, b, d, e, f, g, h; for ("form" === this.element.tagName && this.element.setAttribute("enctype", "multipart/form-data"), this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message") && this.element.appendChild(c.createElement('<div class="dz-default dz-message"><span>' + this.options.dictDefaultMessage + "</span></div>")), this.clickableElements.length && (d = function(a) { return function() { return a.hiddenFileInput && document.body.removeChild(a.hiddenFileInput), a.hiddenFileInput = document.createElement("input"), a.hiddenFileInput.setAttribute("type", "file"), (null == a.options.maxFiles || a.options.maxFiles > 1) && a.hiddenFileInput.setAttribute("multiple", "multiple"), a.hiddenFileInput.className = "dz-hidden-input", null != a.options.acceptedFiles && a.hiddenFileInput.setAttribute("accept", a.options.acceptedFiles), null != a.options.capture && a.hiddenFileInput.setAttribute("capture", a.options.capture), a.hiddenFileInput.style.visibility = "hidden", a.hiddenFileInput.style.position = "absolute", a.hiddenFileInput.style.top = "0", a.hiddenFileInput.style.left = "0", a.hiddenFileInput.style.height = "0", a.hiddenFileInput.style.width = "0", document.body.appendChild(a.hiddenFileInput), a.hiddenFileInput.addEventListener("change", function() { var b, c, e, f; if (c = a.hiddenFileInput.files, c.length) for (e = 0, f = c.length; f > e; e++) b = c[e], a.addFile(b); return d() }) } }(this))(), this.URL = null != (g = window.URL) ? g : window.webkitURL, h = this.events, e = 0, f = h.length; f > e; e++) a = h[e], this.on(a, this.options[a]); return this.on("uploadprogress", function(a) { return function() { return a.updateTotalUploadProgress() } }(this)), this.on("removedfile", function(a) { return function() { return a.updateTotalUploadProgress() } }(this)), this.on("canceled", function(a) { return function(b) { return a.emit("complete", b) } }(this)), this.on("complete", function(a) { return function() { return 0 === a.getUploadingFiles().length && 0 === a.getQueuedFiles().length ? setTimeout(function() { return a.emit("queuecomplete") }, 0) : void 0 } }(this)), b = function(a) { return a.stopPropagation(), a.preventDefault ? a.preventDefault() : a.returnValue = !1 }, this.listeners = [{ element: this.element, events: { dragstart: function(a) { return function(b) { return a.emit("dragstart", b) } }(this), dragenter: function(a) { return function(c) { return b(c), a.emit("dragenter", c) } }(this), dragover: function(a) { return function(c) { var d; try { d = c.dataTransfer.effectAllowed } catch (e) { } return c.dataTransfer.dropEffect = "move" === d || "linkMove" === d ? "move" : "copy", b(c), a.emit("dragover", c) } }(this), dragleave: function(a) { return function(b) { return a.emit("dragleave", b) } }(this), drop: function(a) { return function(c) { return b(c), a.drop(c) } }(this), dragend: function(a) { return function(b) { return a.emit("dragend", b) } }(this) } }], this.clickableElements.forEach(function(a) { return function(b) { return a.listeners.push({ element: b, events: { click: function(d) { return b !== a.element || d.target === a.element || c.elementInside(d.target, a.element.querySelector(".dz-message")) ? a.hiddenFileInput.click() : void 0 } } }) } }(this)), this.enable(), this.options.init.call(this) }, c.prototype.destroy = function() { var a; return this.disable(), this.removeAllFiles(!0), (null != (a = this.hiddenFileInput) ? a.parentNode : void 0) && (this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput), this.hiddenFileInput = null), delete this.element.dropzone, c.instances.splice(c.instances.indexOf(this), 1) }, c.prototype.updateTotalUploadProgress = function() { var a, b, c, d, e, f, g, h; if (d = 0, c = 0, a = this.getActiveFiles(), a.length) { for (h = this.getActiveFiles(), f = 0, g = h.length; g > f; f++) b = h[f], d += b.upload.bytesSent, c += b.upload.total; e = 100 * d / c } else e = 100; return this.emit("totaluploadprogress", e, c, d) }, c.prototype._getParamName = function(a) { return "function" == typeof this.options.paramName ? this.options.paramName(a) : "" + this.options.paramName + (this.options.uploadMultiple ? "[" + a + "]" : "") }, c.prototype.getFallbackForm = function() { var a, b, d, e; return (a = this.getExistingFallback()) ? a : (d = '<div class="dz-fallback">', this.options.dictFallbackText && (d += "<p>" + this.options.dictFallbackText + "</p>"), d += '<input type="file" name="' + this._getParamName(0) + '" ' + (this.options.uploadMultiple ? 'multiple="multiple"' : void 0) + ' /><input type="submit" value="Upload!"></div>', b = c.createElement(d), "FORM" !== this.element.tagName ? (e = c.createElement('<form action="' + this.options.url + '" enctype="multipart/form-data" method="' + this.options.method + '"></form>'), e.appendChild(b)) : (this.element.setAttribute("enctype", "multipart/form-data"), this.element.setAttribute("method", this.options.method)), null != e ? e : b) }, c.prototype.getExistingFallback = function() { var a, b, c, d, e, f; for (b = function(a) { var b, c, d; for (c = 0, d = a.length; d > c; c++) if (b = a[c], /(^| )fallback($| )/.test(b.className)) return b }, f = ["div", "form"], d = 0, e = f.length; e > d; d++) if (c = f[d], a = b(this.element.getElementsByTagName(c))) return a }, c.prototype.setupEventListeners = function() { var a, b, c, d, e, f, g; for (f = this.listeners, g = [], d = 0, e = f.length; e > d; d++) a = f[d], g.push(function() { var d, e; d = a.events, e = []; for (b in d) c = d[b], e.push(a.element.addEventListener(b, c, !1)); return e }()); return g }, c.prototype.removeEventListeners = function() { var a, b, c, d, e, f, g; for (f = this.listeners, g = [], d = 0, e = f.length; e > d; d++) a = f[d], g.push(function() { var d, e; d = a.events, e = []; for (b in d) c = d[b], e.push(a.element.removeEventListener(b, c, !1)); return e }()); return g }, c.prototype.disable = function() { var a, b, c, d, e; for (this.clickableElements.forEach(function(a) { return a.classList.remove("dz-clickable") }), this.removeEventListeners(), d = this.files, e = [], b = 0, c = d.length; c > b; b++) a = d[b], e.push(this.cancelUpload(a)); return e }, c.prototype.enable = function() { return this.clickableElements.forEach(function(a) { return a.classList.add("dz-clickable") }), this.setupEventListeners() }, c.prototype.filesize = function(a) { var b, c, d, e, f, g, h, i; for (g = ["TB", "GB", "MB", "KB", "b"], d = e = null, c = h = 0, i = g.length; i > h; c = ++h) if (f = g[c], b = Math.pow(this.options.filesizeBase, 4 - c) / 10, a >= b) { d = a / Math.pow(this.options.filesizeBase, 4 - c), e = f; break } return d = Math.round(10 * d) / 10, "<strong>" + d + "</strong> " + e }, c.prototype._updateMaxFilesReachedClass = function() { return null != this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles ? (this.getAcceptedFiles().length === this.options.maxFiles && this.emit("maxfilesreached", this.files), this.element.classList.add("dz-max-files-reached")) : this.element.classList.remove("dz-max-files-reached") }, c.prototype.drop = function(a) { var b, c; a.dataTransfer && (this.emit("drop", a), b = a.dataTransfer.files, b.length && (c = a.dataTransfer.items, c && c.length && null != c[0].webkitGetAsEntry ? this._addFilesFromItems(c) : this.handleFiles(b))) }, c.prototype.paste = function(a) { var b, c; if (null != (null != a && null != (c = a.clipboardData) ? c.items : void 0)) return this.emit("paste", a), b = a.clipboardData.items, b.length ? this._addFilesFromItems(b) : void 0 }, c.prototype.handleFiles = function(a) { var b, c, d, e; for (e = [], c = 0, d = a.length; d > c; c++) b = a[c], e.push(this.addFile(b)); return e }, c.prototype._addFilesFromItems = function(a) { var b, c, d, e, f; for (f = [], d = 0, e = a.length; e > d; d++) c = a[d], f.push(null != c.webkitGetAsEntry && (b = c.webkitGetAsEntry()) ? b.isFile ? this.addFile(c.getAsFile()) : b.isDirectory ? this._addFilesFromDirectory(b, b.name) : void 0 : null != c.getAsFile ? null == c.kind || "file" === c.kind ? this.addFile(c.getAsFile()) : void 0 : void 0); return f }, c.prototype._addFilesFromDirectory = function(a, b) { var c, d; return c = a.createReader(), d = function(a) { return function(c) { var d, e, f; for (e = 0, f = c.length; f > e; e++) d = c[e], d.isFile ? d.file(function(c) { return a.options.ignoreHiddenFiles && "." === c.name.substring(0, 1) ? void 0 : (c.fullPath = "" + b + "/" + c.name, a.addFile(c)) }) : d.isDirectory && a._addFilesFromDirectory(d, "" + b + "/" + d.name) } }(this), c.readEntries(d, function(a) { return "undefined" != typeof console && null !== console && "function" == typeof console.log ? console.log(a) : void 0 }) }, c.prototype.accept = function(a, b) { return a.size > 1024 * this.options.maxFilesize * 1024 ? b(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(a.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)) : c.isValidFile(a, this.options.acceptedFiles) ? null != this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles ? (b(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)), this.emit("maxfilesexceeded", a)) : this.options.accept.call(this, a, b) : b(this.options.dictInvalidFileType) }, c.prototype.addFile = function(a) { return a.upload = { progress: 0, total: a.size, bytesSent: 0 }, this.files.push(a), a.status = c.ADDED, this.emit("addedfile", a), this._enqueueThumbnail(a), this.accept(a, function(b) { return function(c) { return c ? (a.accepted = !1, b._errorProcessing([a], c)) : (a.accepted = !0, b.options.autoQueue && b.enqueueFile(a)), b._updateMaxFilesReachedClass() } }(this)) }, c.prototype.enqueueFiles = function(a) { var b, c, d; for (c = 0, d = a.length; d > c; c++) b = a[c], this.enqueueFile(b); return null }, c.prototype.enqueueFile = function(a) { if (a.status !== c.ADDED || a.accepted !== !0) throw new Error("This file can't be queued because it has already been processed or was rejected."); return a.status = c.QUEUED, this.options.autoProcessQueue ? setTimeout(function(a) { return function() { return a.processQueue() } }(this), 0) : void 0 }, c.prototype._thumbnailQueue = [], c.prototype._processingThumbnail = !1, c.prototype._enqueueThumbnail = function(a) { return this.options.createImageThumbnails && a.type.match(/image.*/) && a.size <= 1024 * this.options.maxThumbnailFilesize * 1024 ? (this._thumbnailQueue.push(a), setTimeout(function(a) { return function() { return a._processThumbnailQueue() } }(this), 0)) : void 0 }, c.prototype._processThumbnailQueue = function() { return this._processingThumbnail || 0 === this._thumbnailQueue.length ? void 0 : (this._processingThumbnail = !0, this.createThumbnail(this._thumbnailQueue.shift(), function(a) { return function() { return a._processingThumbnail = !1, a._processThumbnailQueue() } }(this))) }, c.prototype.removeFile = function(a) { return a.status === c.UPLOADING && this.cancelUpload(a), this.files = h(this.files, a), this.emit("removedfile", a), 0 === this.files.length ? this.emit("reset") : void 0 }, c.prototype.removeAllFiles = function(a) { var b, d, e, f; for (null == a && (a = !1), f = this.files.slice(), d = 0, e = f.length; e > d; d++) b = f[d], (b.status !== c.UPLOADING || a) && this.removeFile(b); return null }, c.prototype.createThumbnail = function(a, b) { var c; return c = new FileReader, c.onload = function(d) { return function() { var e; return "image/svg+xml" === a.type ? (d.emit("thumbnail", a, c.result), void (null != b && b())) : (e = document.createElement("img"), e.onload = function() { var c, g, h, i, j, k, l, m; return a.width = e.width, a.height = e.height, h = d.options.resize.call(d, a), null == h.trgWidth && (h.trgWidth = h.optWidth), null == h.trgHeight && (h.trgHeight = h.optHeight), c = document.createElement("canvas"), g = c.getContext("2d"), c.width = h.trgWidth, c.height = h.trgHeight, f(g, e, null != (j = h.srcX) ? j : 0, null != (k = h.srcY) ? k : 0, h.srcWidth, h.srcHeight, null != (l = h.trgX) ? l : 0, null != (m = h.trgY) ? m : 0, h.trgWidth, h.trgHeight), i = c.toDataURL("image/png"), d.emit("thumbnail", a, i), null != b ? b() : void 0 }, e.onerror = b, e.src = c.result) } }(this), c.readAsDataURL(a) }, c.prototype.processQueue = function() { var a, b, c, d; if (b = this.options.parallelUploads, c = this.getUploadingFiles().length, a = c, !(c >= b) && (d = this.getQueuedFiles(), d.length > 0)) { if (this.options.uploadMultiple) return this.processFiles(d.slice(0, b - c)); for (; b > a;) { if (!d.length) return; this.processFile(d.shift()), a++ } } }, c.prototype.processFile = function(a) { return this.processFiles([a]) }, c.prototype.processFiles = function(a) { var b, d, e; for (d = 0, e = a.length; e > d; d++) b = a[d], b.processing = !0, b.status = c.UPLOADING, this.emit("processing", b); return this.options.uploadMultiple && this.emit("processingmultiple", a), this.uploadFiles(a) }, c.prototype._getFilesWithXhr = function(a) { var b, c; return c = function() { var c, d, e, f; for (e = this.files, f = [], c = 0, d = e.length; d > c; c++) b = e[c], b.xhr === a && f.push(b); return f }.call(this) }, c.prototype.cancelUpload = function(a) { var b, d, e, f, g, h, i; if (a.status === c.UPLOADING) { for (d = this._getFilesWithXhr(a.xhr), e = 0, g = d.length; g > e; e++) b = d[e], b.status = c.CANCELED; for (a.xhr.abort(), f = 0, h = d.length; h > f; f++) b = d[f], this.emit("canceled", b); this.options.uploadMultiple && this.emit("canceledmultiple", d) } else ((i = a.status) === c.ADDED || i === c.QUEUED) && (a.status = c.CANCELED, this.emit("canceled", a), this.options.uploadMultiple && this.emit("canceledmultiple", [a])); return this.options.autoProcessQueue ? this.processQueue() : void 0 }, e = function() { var a, b; return b = arguments[0], a = 2 <= arguments.length ? i.call(arguments, 1) : [], "function" == typeof b ? b.apply(this, a) : b }, c.prototype.uploadFile = function(a) { return this.uploadFiles([a]) }, c.prototype.uploadFiles = function(a) { var b, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L; for (w = new XMLHttpRequest, x = 0, B = a.length; B > x; x++) b = a[x], b.xhr = w; p = e(this.options.method, a), u = e(this.options.url, a), w.open(p, u, !0), w.withCredentials = !!this.options.withCredentials, s = null, g = function(c) { return function() { var d, e, f; for (f = [], d = 0, e = a.length; e > d; d++) b = a[d], f.push(c._errorProcessing(a, s || c.options.dictResponseError.replace("{{statusCode}}", w.status), w)); return f } }(this), t = function(c) { return function(d) { var e, f, g, h, i, j, k, l, m; if (null != d) for (f = 100 * d.loaded / d.total, g = 0, j = a.length; j > g; g++) b = a[g], b.upload = { progress: f, total: d.total, bytesSent: d.loaded }; else { for (e = !0, f = 100, h = 0, k = a.length; k > h; h++) b = a[h], (100 !== b.upload.progress || b.upload.bytesSent !== b.upload.total) && (e = !1), b.upload.progress = f, b.upload.bytesSent = b.upload.total; if (e) return } for (m = [], i = 0, l = a.length; l > i; i++) b = a[i], m.push(c.emit("uploadprogress", b, f, b.upload.bytesSent)); return m } }(this), w.onload = function(b) { return function(d) { var e; if (a[0].status !== c.CANCELED && 4 === w.readyState) { if (s = w.responseText, w.getResponseHeader("content-type") && ~w.getResponseHeader("content-type").indexOf("application/json")) try { s = JSON.parse(s) } catch (f) { d = f, s = "Invalid JSON response from server." } return t(), 200 <= (e = w.status) && 300 > e ? b._finished(a, s, d) : g() } } }(this), w.onerror = function() { return function() { return a[0].status !== c.CANCELED ? g() : void 0 } }(this), r = null != (G = w.upload) ? G : w, r.onprogress = t, j = { Accept: "application/json", "Cache-Control": "no-cache", "X-Requested-With": "XMLHttpRequest" }, this.options.headers && d(j, this.options.headers); for (h in j) i = j[h], w.setRequestHeader(h, i); if (f = new FormData, this.options.params) { H = this.options.params; for (o in H) v = H[o], f.append(o, v) } for (y = 0, C = a.length; C > y; y++) b = a[y], this.emit("sending", b, w, f); if (this.options.uploadMultiple && this.emit("sendingmultiple", a, w, f), "FORM" === this.element.tagName) for (I = this.element.querySelectorAll("input, textarea, select, button"), z = 0, D = I.length; D > z; z++) if (l = I[z], m = l.getAttribute("name"), n = l.getAttribute("type"), "SELECT" === l.tagName && l.hasAttribute("multiple")) for (J = l.options, A = 0, E = J.length; E > A; A++) q = J[A], q.selected && f.append(m, q.value); else (!n || "checkbox" !== (K = n.toLowerCase()) && "radio" !== K || l.checked) && f.append(m, l.value); for (k = F = 0, L = a.length - 1; L >= 0 ? L >= F : F >= L; k = L >= 0 ? ++F : --F) f.append(this._getParamName(k), a[k], a[k].name); return w.send(f) }, c.prototype._finished = function(a, b, d) { var e, f, g; for (f = 0, g = a.length; g > f; f++) e = a[f], e.status = c.SUCCESS, this.emit("success", e, b, d), this.emit("complete", e); return this.options.uploadMultiple && (this.emit("successmultiple", a, b, d), this.emit("completemultiple", a)), this.options.autoProcessQueue ? this.processQueue() : void 0 }, c.prototype._errorProcessing = function(a, b, d) { var e, f, g; for (f = 0, g = a.length; g > f; f++) e = a[f], e.status = c.ERROR, this.emit("error", e, b, d), this.emit("complete", e); return this.options.uploadMultiple && (this.emit("errormultiple", a, b, d), this.emit("completemultiple", a)), this.options.autoProcessQueue ? this.processQueue() : void 0 }, c }(b), a.version = "4.0.1", a.options = {}, a.optionsForElement = function(b) { return b.getAttribute("id") ? a.options[c(b.getAttribute("id"))] : void 0 }, a.instances = [], a.forElement = function(a) { if ("string" == typeof a && (a = document.querySelector(a)), null == (null != a ? a.dropzone : void 0)) throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); return a.dropzone }, a.autoDiscover = !0, a.discover = function() { var b, c, d, e, f, g; for (document.querySelectorAll ? d = document.querySelectorAll(".dropzone") : (d = [], b = function(a) { var b, c, e, f; for (f = [], c = 0, e = a.length; e > c; c++) b = a[c], f.push(/(^| )dropzone($| )/.test(b.className) ? d.push(b) : void 0); return f }, b(document.getElementsByTagName("div")), b(document.getElementsByTagName("form"))), g = [], e = 0, f = d.length; f > e; e++) c = d[e], g.push(a.optionsForElement(c) !== !1 ? new a(c) : void 0); return g }, a.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i], a.isBrowserSupported = function() { var b, c, d, e, f; if (b = !0, window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) if ("classList" in document.createElement("a")) for (f = a.blacklistedBrowsers, d = 0, e = f.length; e > d; d++) c = f[d], c.test(navigator.userAgent) && (b = !1); else b = !1; else b = !1; return b }, h = function(a, b) { var c, d, e, f; for (f = [], d = 0, e = a.length; e > d; d++) c = a[d], c !== b && f.push(c); return f }, c = function(a) { return a.replace(/[\-_](\w)/g, function(a) { return a.charAt(1).toUpperCase() }) }, a.createElement = function(a) { var b; return b = document.createElement("div"), b.innerHTML = a, b.childNodes[0] }, a.elementInside = function(a, b) { if (a === b) return !0; for (; a = a.parentNode;) if (a === b) return !0; return !1 }, a.getElement = function(a, b) { var c; if ("string" == typeof a ? c = document.querySelector(a) : null != a.nodeType && (c = a), null == c) throw new Error("Invalid `" + b + "` option provided. Please provide a CSS selector or a plain HTML element."); return c }, a.getElements = function(a, b) { var c, d, e, f, g, h, i, j; if (a instanceof Array) { e = []; try { for (f = 0, h = a.length; h > f; f++) d = a[f], e.push(this.getElement(d, b)) } catch (k) { c = k, e = null } } else if ("string" == typeof a) for (e = [], j = document.querySelectorAll(a), g = 0, i = j.length; i > g; g++) d = j[g], e.push(d); else null != a.nodeType && (e = [a]); if (null == e || !e.length) throw new Error("Invalid `" + b + "` option provided. Please provide a CSS selector, a plain HTML element or a list of those."); return e }, a.confirm = function(a, b, c) { return window.confirm(a) ? b() : null != c ? c() : void 0 }, a.isValidFile = function(a, b) { var c, d, e, f, g; if (!b) return !0; for (b = b.split(","), d = a.type, c = d.replace(/\/.*$/, ""), f = 0, g = b.length; g > f; f++) if (e = b[f], e = e.trim(), "." === e.charAt(0)) { if (-1 !== a.name.toLowerCase().indexOf(e.toLowerCase(), a.name.length - e.length)) return !0 } else if (/\/\*$/.test(e)) { if (c === e.replace(/\/.*$/, "")) return !0 } else if (d === e) return !0; return !1 }, "undefined" != typeof jQuery && null !== jQuery && (jQuery.fn.dropzone = function(b) { return this.each(function() { return new a(this, b) }) }), "undefined" != typeof module && null !== module ? module.exports = a : window.Dropzone = a, a.ADDED = "added", a.QUEUED = "queued", a.ACCEPTED = a.QUEUED, a.UPLOADING = "uploading", a.PROCESSING = a.UPLOADING, a.CANCELED = "canceled", a.ERROR = "error", a.SUCCESS = "success", e = function(a) { var b, c, d, e, f, g, h, i, j, k; for (h = a.naturalWidth, g = a.naturalHeight, c = document.createElement("canvas"), c.width = 1, c.height = g, d = c.getContext("2d"), d.drawImage(a, 0, 0), e = d.getImageData(0, 0, 1, g).data, k = 0, f = g, i = g; i > k;) b = e[4 * (i - 1) + 3], 0 === b ? f = i : k = i, i = f + k >> 1; return j = i / g, 0 === j ? 1 : j }, f = function(a, b, c, d, f, g, h, i, j, k) { var l; return l = e(b), a.drawImage(b, c, d, f, g, h, i, j, k / l) }, d = function(a, b) {
    var c, d, e, f, g, h, i, j, k; if (e = !1, k = !0, d = a.document, j = d.documentElement, c = d.addEventListener ? "addEventListener" : "attachEvent", i = d.addEventListener ? "removeEventListener" : "detachEvent", h = d.addEventListener ? "" : "on", f = function(c) {
    return "readystatechange" !== c.type || "complete" === d.readyState ? (("load" === c.type ? a : d)[i](h + c.type, f, !1), !e && (e = !0) ? b.call(a, c.type || c) : void 0) : void 0
    }, g = function() { var a; try { j.doScroll("left") } catch (b) { return a = b, void setTimeout(g, 50) } return f("poll") }, "complete" !== d.readyState) { if (d.createEventObject && j.doScroll) { try { k = !a.frameElement } catch (l) { } k && g() } return d[c](h + "DOMContentLoaded", f, !1), d[c](h + "readystatechange", f, !1), a[c](h + "load", f, !1) }
  }, a._autoDiscoverFunction = function() { return a.autoDiscover ? a.discover() : void 0 }, d(window, a._autoDiscoverFunction)
}).call(this);
var ADI = ADI || {};
ADI.PictureUpload = ADI.PictureUpload || (function () {
  var defaultSettings = {

  };

  var modifiedPicFile, fileName, dropContainer, cropContainer, picUploadButton, picRemoveButton, uploadClickDelegate, callback,
    picSelectButton, picFormatSwitchery, picFormatSwitcheryInput, template, picSpinnerTemplate, picDrop, picCrop, picSpinners, picPopover,
    picRotateLeftButton, picRotateRightButton;

  $.fn.conceal = function () {
    this.addClass('hidden');
    return this;
  };

  $.fn.reveal = function () {
    this.removeClass('hidden');
    return this;
  };

  function showDropzone() {
    dropContainer.reveal();
    cropContainer.conceal();
    picUploadButton.conceal();
    picRemoveButton.conceal();
    picFormatSwitchery.conceal();
  }

  function showCroppie() {
    dropContainer.conceal();
    cropContainer.reveal();
    picUploadButton.reveal();
    picRemoveButton.reveal();
    picFormatSwitchery.reveal();
  }

  function resetModal() {
    picUploadButton.prop("disabled", false);
    picDrop.removeAllFiles(true);
    picCrop.croppie('bind', { url: 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' });
    showDropzone();
    picDrop.hiddenFileInput.removeAttribute('multiple');
  }

  function setPopover(useSpan, targetButton) { //workaround for usecases where the widget gets deep copied
    var picPopover = useSpan ? targetButton.nextAll("span.picture-preview").first() : targetButton;
    var targetInput = targetButton.next("input");

    if (!picPopover.data("bs.popover"))
      picPopover.popover({
        container: 'body',
        content: function () { return "<img style='width:100%; height:100%;' src='" + targetInput.val() + "'/>" },
        html: true,
        placement: "top",
        trigger: "hover"
      });

    useSpan ? picPopover.removeClass("hidden") : picPopover.data("bs.popover").enabled = true;
  }

  function hidePopover(useSpan, targetButton) {
    if (useSpan) {
      targetButton.nextAll("span.picture-preview").first().addClass("hidden");
    }
    else if (targetButton.data("bs.popover")) {
      targetButton.data("bs.popover").enabled = false;
    }
  }

  function bindCroppie(imgData, options) {
    picCrop.croppie('bind', {
      url: imgData
    }).then(function () {
      picSpinners.conceal();
      $('div#template').reveal();
      picCrop.croppie('setZoom', 0);

      if (options.allowOriginal && picFormatSwitcheryInput.length) {
        options.toggleCropping(!picFormatSwitcheryInput.prop('checked'));
      };
    });
    showCroppie();
  }

  function readFile(file, options) {
    var reader = new FileReader();
    reader.onload = function (e) {
      var imgdata = e.target.result;
      if (options.isResizeEnabled) {
        var img = new Image();
        img.onload = function () {
          cropContainer.croppie('destroy');
          var factor = img.height / img.width;
          factor > 1
            ? initCroppie(1 / factor * options.targetWidth, options.targetHeight, options)
            : initCroppie(options.targetWidth, factor * options.targetHeight, options);
          bindCroppie(imgdata, options);
        };
        img.src = imgdata;
      }
      else
        bindCroppie(imgdata, options);
    }
    reader.readAsDataURL(file);
  }

  function onDropZoneUpload(result, adddata) {
    scopedData = adddata;
    if (!picFormatSwitcheryInput.prop("checked")) {
      picDrop.removeAllFiles(true);
      result.lastModifiedDate = new Date();
      result.name = fileName;
      result.isCropped = true;
      picDrop.addFile(result);
    }
    showDropzone();
    picDrop.processQueue();
  }

  function initCroppie(width, height, options) {
    picFormatSwitchery.detach();
    picCrop = cropContainer.croppie({
      enableExif: true,
      enableOrientation: true,
      enableResize: options.isResizeEnabled,
      viewport: {
        width: width,
        height: height,
        type: 'square'
      }
    });

    (function addZoomIcons() {
      var slidebarContainer = $(".cr-slider-wrap"),
        buttonString = "<i class='col-xs-1 no-padding pt-15' style='margin-top: 9px'></i>",
        zoomOutButton = $(buttonString).addClass('icon-zoomout3'),
        zoomInButton = $(buttonString).addClass('icon-zoomin3');

      slidebarContainer.addClass("mt-5")
        .css("width", options.allowOriginal ? "95%" : "75%")
        .prepend(zoomOutButton).prepend(picFormatSwitchery).append(zoomInButton)
        .find('input[type="range"]').addClass("col-xs-6 pt-20")
        .css("width", options.allowOriginal ? "50%" : "83.333333%");
    }());

    cropContainer.find('div.cr-boundary').append(picSpinnerTemplate.clone());
    picSpinners = $('i.picspinner');
  }

  function toggleModalButton(options) {
    var $input = $(this),
      $button = $input.prev('button');
    if ($input.val().startsWith("data")) {
      $button.removeClass('btn-danger').addClass('btn-success')
        .html('<i class="icon-pencil7"></i>&nbsp;' + options.text.changeTooltip);
      setPopover(options.displayPreviewSpan, $button);
      !options.displayPreviewSpan || $button.nextAll("a.picture-remove").first().reveal();
    }
    else {
      $button.addClass('btn-danger').removeClass('btn-success')
        .html("<i class='" + options.buttonIcon + "'></i>&nbsp;" + options.text.buttonText)
        .next('input').attr('data-display-value', options.text.novalueText);
      hidePopover(options.displayPreviewSpan, $button);
      !options.displayPreviewSpan || $button.nextAll("a.picture-remove").first().conceal();
    }
  };

  var initPicUpload = function (options) {

    var modalContainer = $('div#PictureUploaderModal')
    if (!modalContainer.length) {
      modalContainer = $('div#PictureUploaderModal_temp').detach().first().appendTo('body').attr('id', 'PictureUploaderModal');

      dropContainer = $('div#picUploader');
      cropContainer = $('div#picCropper');
      picUploadButton = $('button#picUploadButton');
      picRemoveButton = $('button#picRemoveButton');
      picRotateLeftButton = $('button#picRotateLeftButton');
      picRotateRightButton = $('button#picRotateRightButton');
      picSelectButton = $('button#picSelectButton');
      picFormatSwitchery = $('div#formatSwitchery');
      picFormatSwitcheryInput = picFormatSwitchery.find("input.switchery");
      template = $('div#template');
      picSpinnerTemplate = modalContainer.find('i.picspinner');

      template.detach();
      picSpinnerTemplate.detach();

      picRemoveButton.click(resetModal);
      modalContainer.on('hidden.bs.modal', resetModal)
      dropContainer.append(picSpinnerTemplate.clone());
      initCroppie(options.targetWidth, options.targetHeight, options);

      picUploadButton.click(function () {
        uploadClickDelegate();
      });

      picRotateLeftButton.click(function () {
        picCrop.croppie('rotate', 90);
      })

      picRotateRightButton.click(function () {
        picCrop.croppie('rotate', -90);
      })

      picDrop = new Dropzone(dropContainer[0], {
        url: options.uploadUrl,
        paramName: options.paramName,
        acceptedFiles: options.acceptedFiles,
        maxFiles: 1,
        autoProcessQueue: false,
        uploadMultiple: false,
        clickable: picSelectButton[0],
        maxFilesize: options.maxFilesize,
        previewTemplate: template.prop('outerHTML'),
        init: function () {
          this.on('addedfile', function (file) {
            if (this.files.length > 1) {
              this.removeFile(this.files[0]);
            }
          });

          this.on("thumbnail", function (file) {
            if (!file.isCropped && file.validateDimensions()) {
              fileName = picDrop.pictureUpload.fileName || file.name,
                picSpinners.reveal();
              $('div#template').conceal();
              readFile(file, picDrop.pictureUpload);
            }
          });

          this.on("sending", function (file, xhr, formData) {
            $.each(scopedData, function () {
              formData.append(this.name, this.value);
            });
          });

          this.on("success", function (file, response) {
            if (typeof callback === 'function') {
              callback.call(this, response, file);
              modalContainer.modal("hide");
              return;
            }
            dropContainer.find(".progress").conceal();
            dropContainer.find(".successmessage").reveal();
            location.reload();
          });

          this.on("error", function (file, data, response) {
            picSpinners.conceal();
            $('div#template').reveal()
            dropContainer.find(".errormessage").reveal();
            if (typeof response !== 'undefined') {
              if (response.responseText && response.responseText.length > 0) {
                dropContainer.find('span[data-dz-errormessage]').text(response.responseText);
              }
              else if (response.statusText && response.statusText.length > 0) {
                dropContainer.find('span[data-dz-errormessage]').text(response.statusText);
              }
            }
            dropContainer.find(".progress").conceal();
            picRemoveButton.reveal();
          });
        },

        accept: function (file, done) {
          file.validateDimensions = function () {
            if (picDrop.pictureUpload.isResizeEnabled)
              return true;

            if (file.width < picDrop.pictureUpload.targetWidth || file.height < picDrop.pictureUpload.targetHeight) {
              done(picDrop.pictureUpload.text.dimensionsTooLargeUwU);
              return false;
            }
            return true;
          };
          done();
        }
      });
    }
    else {
      $('div#PictureUploaderModal_temp').remove();
    }

    var toggleButton = $(options.toggleButtonSelector);
    toggleButton.click(function () {
      callback = typeof (options.callBack) === 'string' ? ADI.Helper.dive(window, options.callBack.split('.')) : null;

      picDrop.pictureUpload = options;
      picDrop.options.url = options.uploadUrl;
      picDrop.options.paramName = options.paramName;
      picDrop.options.acceptedFiles = options.acceptedFiles;
      picDrop.hiddenFileInput.setAttribute("accept", options.acceptedFiles);
      picDrop.options.maxFilesize = options.maxFileSize;
      picDrop.options.dictFileTooBig = options.text.fileTooBigOwO;
      picDrop.options.dictInvalidFileType = options.text.invalidFileType;

      var $button = $(this);

      modalContainer.modal("show");
      modalContainer.data("pictureUploadAction", function (result) {
        if (options.useDropZoneUpload) {
          onDropZoneUpload(result, options.additionalData);
        }
        else {
          ADI.BlobHelper.setBlob($button.next('input'), result);

          var reader = new FileReader();
          reader.onloadend = function (ev) {
            modalContainer.modal("hide");
            $button.next('input').val(ev.target.result).trigger('change').trigger('blur')
              .attr('data-display-value', options.text.valueText.replace('___', parseInt(ev.loaded / 1024)));
          }
          reader.readAsDataURL(result);
        }
      });

      uploadClickDelegate = function () {
        cropContainer.find('.cr-viewport').removeClass('hidden');
        picCrop.croppie('result', {
          type: 'blob',
          size: options.useOriginalPictureSize ? "original" : "viewport"
        }).then(function (result) {
          modalContainer.data("pictureUploadAction").call(this, result);
          if (!options.useDropZoneUpload) {
            resetModal();
          }
        });
      };

      if (options.allowOriginal) {
        options.toggleCropping = function (croppingEnabled) {
          let cropper = $('#picCropper');

          //Toggle Croppie UI
          cropper.find('.cr-viewport, .cr-overlay, .cr-resizer').toggleClass('hidden', !croppingEnabled);

          //Toggle zooming (slider)
          cropper.find('.cr-slider-wrap>input, .cr-slider-wrap>i').toggleClass('hidden', !croppingEnabled);

          //Toggle zooming (mousewheel)
          var boundary = cropper.find('.cr-boundary');
          if (boundary.length) {
            boundary[0].onwheel = croppingEnabled ? null : function () { return; };
          }

          //Toggle transformation
          let croppieImage = cropper.find('.cr-image');
          if (!croppingEnabled) {
            croppieImage.attr('croppie-style', croppieImage.attr('style')).removeAttr('style').css({ 'max-width': '100%', 'max-height': '100%', 'top': '50%', 'left': '50%', 'transform': 'translate(-50%, -50%)' });
          }
          else if (croppieImage.attr('croppie-style')) {
            croppieImage.attr('style', croppieImage.attr('croppie-style')).removeAttr('croppie-style');
          }
        };

        $('div#formatSwitchery input.switchery').off('change').on('change', function (e) {
          options.toggleCropping(!e.target.checked);
        });
      }
      else {
        options.toggleCropping = null;
      }
    });

    if (!options.useDropZoneUpload) {
      toggleButton.nextAll("a.picture-remove").first().click(function () {
        $(this).prevAll("input[data-fileupload-input]").first().val("").trigger("clear").trigger('blur');
      });
      toggleButton.next('input').on("change clear init", function () { toggleModalButton.call(this, options); });
      toggleButton.next('input').trigger('init');
      ADI.BlobHelper.setBlobDataOnSubmit(toggleButton.closest('form'), "input.pictureupload-input");
    }
  }

  return {
    init: function (customSettings) {
      var settings = $.extend(true, {}, defaultSettings, customSettings);
      initPicUpload(settings);
    }
  }
}());
var ADI = ADI || {};
ADI.FileUpload = ADI.FileUpload || (function () {
  var defaultSettings = {

  };

  var fileDrop, fileInput, fileReset, fileSpan, fileSpinner, callback;

  function resetModal() {
    fileReset.addClass('hidden');
    fileDrop.removeAllFiles(true);
    fileDrop.hiddenFileInput.removeAttribute('multiple');
    fileSpinner.addClass('hidden');
  }

  function switchButtonAppearance(options) {
    var $input = $(this),
      $button = $input.prev('button'),
      $filespan = $input.nextAll("span[data-file-name]").first();

    if ($input.val()) {
      $button.removeClass('btn-primary').addClass('btn-success')
        .html('<i class="icon-pencil7"></i>&nbsp;' + options.text.changeTooltip);
      $filespan.removeClass("hidden");
    }
    else {
      $button.addClass('btn-primary').removeClass('btn-success')
        .html("<i class='icon-file-upload'></i>&nbsp;" + options.text.buttonText)
        .next('input').attr('data-display-value', options.text.novalueText);
      $filespan.addClass("hidden");
    }
  };

  function setFileElements(toggleButton) {
    fileInput = toggleButton.next('input');
    fileSpan = fileInput.nextAll("span[data-file-name]").first();
  }

  function initFileUpload(options) {

    var modalContainer = $('div[data-file-upload="inited"]')
    if (!modalContainer.length) {
      modalContainer = $('div[data-file-upload="new"]').detach().first().appendTo('body')
        .attr('data-file-upload', 'inited').on('hidden.bs.modal', resetModal);
      fileReset = modalContainer.find("button[data-select-another]").click(resetModal);
      fileSpinner = modalContainer.find("i.picspinner")
      fileDrop = new Dropzone(modalContainer.find(".dropzone")[0], {
        maxFiles: 1,
        autoProcessQueue: options.useDropZoneUpload,
        uploadMultiple: false,
        clickable: modalContainer.find("[data-dropzone-button]")[0],
        previewTemplate: modalContainer.find("[data-dropzone-template]").detach().prop('outerHTML'),
        init: function () {
          this.on('addedfile', function (file) {
            fileSpinner.removeClass('hidden');
            if (this.files.length > 1) {
              this.removeFile(this.files[0]);
            }
          });

          this.on("sending", function (file, xhr, formData) {
            if (options.antiForgery) {
              var $antiForgery = modalContainer.find('.anti-forgery-container').find('input');
              formData.append($antiForgery.attr('name'), $antiForgery.val());
            };
          });

          this.on("success", function (file, response) {
            if (typeof callback === 'function') {
              callback.call(this, response, file);
              modalContainer.modal("hide");
              resetModal();
              return;
            }
            dropContainer.find(".progress").conceal();
            dropContainer.find(".successmessage").reveal();
            location.reload();
          });

          this.on('error', function (file, data, response) {
            var $dropContainer = $(this.element);
            if (typeof response !== 'undefined' && response.statusText && response.statusText.length > 0) {
              $dropContainer.find('span[data-dz-errormessage]').text(response.statusText);
            }
            $dropContainer.find(".progress").conceal();
            $dropContainer.find(".errormessage ").reveal();
            fileReset.removeClass('hidden');
            fileSpinner.addClass('hidden');
          });

          this.on('maxfilesreached', function (files) {
            if (!options.useDropZoneUpload) {
              var reader = new FileReader(),
                file = files[0];
              reader.onload = function (e) {
                fileSpan.find('span').text(file.name)
                fileInput.val(file.name + "|" + file.size + "|" + e.target.result).trigger('change').trigger('blur')
                  .attr('data-display-value', options.text.valueText.replace('___', parseInt(e.loaded / 1024)));
                modalContainer.modal('hide');
                fileSpinner.addClass('hidden');
              }
              reader.readAsDataURL(file);
              ADI.BlobHelper.setBlob(fileInput, file);
            }
          });
        }
      });
    }
    else {
      $('div[data-file-upload="new"]').remove();
    }

    var toggleButton = $(options.toggleButtonSelector);
    toggleButton.click(function () {
      callback = typeof (options.callBack) === 'string' ? ADI.Helper.dive(window, options.callBack.split('.')) : null;
      fileDrop.options.url = options.uploadUrl;
      fileDrop.options.paramName = options.paramName;
      if (options.acceptedFiles) {
        fileDrop.options.acceptedFiles = options.acceptedFiles;
        fileDrop.hiddenFileInput.setAttribute("accept", options.acceptedFiles);
      }
      fileDrop.options.maxFilesize = options.maxFileSize;
      fileDrop.options.dictFileTooBig = options.text.fileTooBigOwO;
      fileDrop.options.dictInvalidFileType = options.text.invalidFileType;
      setFileElements($(this));

      modalContainer.modal("show");
    }).removeAttr("data-selector");
    
    if (toggleButton && !options.useDropZoneUpload) {
      setFileElements(toggleButton);
      fileInput.on("change clear init", function () { switchButtonAppearance.call(this, options); });
      fileSpan.find('a').click(function () { fileInput.val("").trigger("clear").trigger('blur') })      
      fileInput.trigger("init");
      ADI.BlobHelper.setBlobDataOnSubmit(toggleButton.closest('form'), "input.fileupload-input");
    }
  }

  return {
    init: function (customSettings) {
      var settings = $.extend(true, {}, defaultSettings, customSettings);
      initFileUpload(settings);
    }
  }
}());
/*
handles client confirmation on the summary page
 */
var ADI = ADI || {};
ADI.shopConfirmation = ADI.shopConfirmation || (function () {

  var arrContainerSelectors = ["[data-confirm-container='1']", "[data-confirm-container='2']"], //for paypal
    containerSelector = "[data-confirm-container]",
    buttonSelector = "[data-confirm-button]";

  function revealContainers() {
    $(containerSelector).removeClass('hidden');
    $(buttonSelector).detach();
  }

  function revealButtons() {
    $(buttonSelector).removeClass("hidden");
    $(containerSelector).detach();
  }

  function toggleOverlay() {
    if ($('#overlayerMask').length) {
      $('#overlayerMask').modal('show');
    }
  }

  function toggleLoader(settings, toggle) {
    var target = settings.container || $(containerSelector + ', ' + buttonSelector).parent();
    if (!target || !target.length)
      return;
    if (toggle)
      AdiLoader(target).ShowLoadingIndicator(0);
    else
      AdiLoader(target).HideLoadingIndicator(0);
  }

  function createScript(callback, source)
  {
    var scriptElem = document.createElement('script');
    scriptElem.async = true;
    document.body.appendChild(scriptElem);
    scriptElem.onload = callback;
    scriptElem.src = source;

    if (typeof parent !== 'undefined') {
      parent.postMessage({ //is no longer required but looks cooler this way.
        type: 'script-dep',
        url: source
      }, '*');
    }
  }

  function initPayPalClientSDK(settings) {    
    var paypalSDK = function () {
      var returnUrl, cancelUrl, errorDetails;
      revealContainers();
      
      $.each(arrContainerSelectors, function () {
        var selector = this.valueOf();
        if (!$(selector).length)
          return;

        paypal.Buttons({
          style: {
            label: settings.label || 'pay', // checkout | credit | pay
            shape: settings.shape || 'rect', // pill | rect
            color: settings.color || 'blue', // gold | blue | silver
          },
          createOrder: function () {
            try {
              window.onbeforeunload = null;
              toggleLoader(settings, true);
              return fetch(settings.url, {
                method: 'post', headers: {
                  'Content-Type': 'application/json'
                }, body: JSON.stringify(settings.formData)
              })
                .then(function (response) {
                  return response.json();
                })
                .then(function (details) {
                  if (details.message && !details.success) {
                    errorDetails = details;
                    return false;
                  }
                  if (details.clientConfig) {                    
                    var config = JSON.parse(details.clientConfig);
                    returnUrl = settings.authorizationUrl + '&ExpressCheckoutRawData=' + config.identifier;
                    return config.identifier;
                  }
                  returnUrl = details.returnUrl;
                  cancelUrl = details.cancelUrl;
                  return details.identifier;
                });
            } catch (ex) {
              ADI.persistSaleAction(1015, 1, '{415CF0C5-51E7-494D-BD3F-85258E5536AA}', 'PayPal REST API CreateOrder exception: ' + ex.message, false, true);
            }
          },
          onApprove: function (data, actions) {
            toggleOverlay();
            if (settings.isExpress) {
              window.location.href = returnUrl;
            }
            else return fetch(returnUrl, {
              headers: {
                'content-type': 'application/json'
              }
            }).then(function (response) {
              var contentType = response.headers.get('content-type');
              if (contentType && ~contentType.indexOf('application/json')) {
                return response.json();
              } else {
                window.location.href = returnUrl;
              }
            }).then(function (result) {
              if (result.errorCode == 10005) {
                $('#overlayerMask').modal('hide');
                return actions.restart();
              } else {
                window.location.href = result.redirectUrl;
              }
            });   
          },
          onCancel: function (data, actions) { 
            if(cancelUrl)           
              window.location.href = cancelUrl;
            else
              toggleLoader(settings, false);
          },
          onError: function (err) {
            if (errorDetails && ADI.ExpressCheckout) {
              ADI.ExpressCheckout.handleError(errorDetails.message, errorDetails.button, errorDetails.header);
            } else {
              var message = errorDetails && errorDetails.message ? errorDetails.message : err;
              ADI.persistSaleAction(1015, 1, '{8B2CE062-D061-4D67-9F8C-28506F3623A1}', message, false, false);
            }
            errorDetails = null;
            toggleLoader(settings, false);
          }
        }).render(selector);
      });
    }

    try {
      var paypalSource = 'https://www.paypal.com/sdk/js?disable-funding=card,credit,venmo,sepa,bancontact,eps,giropay,ideal,mybank,p24,sofort&integration-date=2020-03-03&client-id=' + settings.client + '&locale=' + settings.locale + '&currency=' + settings.currency + (settings.SDKparams || '');
      createScript(paypalSDK, paypalSource);
    } catch (ex) {
      console.warn(ex, ex.stack);
      ADI.persistSaleAction(1015, 1, '{9506B514-FED5-45A3-ACDE-60C92453AA78}', 'PayPal REST API Client exception: ' + ex.message, false, true);
    }
  }

  function initKlarnaPaymentsFinalize(settings) {
    try {
      Klarna.Payments.init({ client_token: settings.token });
    } catch (ex) {
      ADI.persistSaleAction(1015, 1, '{34A3C0E3-EC74-4639-AB1C-463400A0258B}', 'Klarna Payments Finalize. Exception: ' + ex.message, false, true);
    }
    $(buttonSelector).attr('type', 'button').click(function (ev) {
      try {
        window.onbeforeunload = null;
        toggleLoader(settings, true);
        Klarna.Payments.finalize(
          {
            payment_method_category: settings.paymentMethod
          },
          null,
          function (res) {
            if (res.approved) {
              toggleOverlay();
              let $form = $(ev.currentTarget).closest('form');
              $('<input>').attr('type', 'hidden').attr('name', 'AuthorizationToken')
                .val(res.authorization_token).appendTo($form);
              $form[0].submit();
            } else {
              window.location.href = res.error ? settings.errorUrl : settings.cancelUrl;
            }
          }
        );
      } catch (ex) {
        ADI.persistSaleAction(1015, 1, '{DB3016C7-5A4B-4D57-8F5F-0FB574FC1697}', 'Klarna Payments Finalize. Exception: ' + ex.message, false, true);
      }
    });
    revealButtons();   
  }

  function initDefault() {
    revealButtons();
  }

  return {
    init: function (settings) {
      if (!settings)
        return initDefault();

      switch (settings.method) {
        case "payPalClientSDK":
          return initPayPalClientSDK(settings);
        case "klarnaPayments":
          return initKlarnaPaymentsFinalize(settings);
        default:
          return initDefault();
      }
    }
  };
}());
!function(){"use strict";function e(e){function t(t,n){var s,h,k=t==window,y=n&&void 0!==n.message?n.message:void 0;if(n=e.extend({},e.blockUI.defaults,n||{}),!n.ignoreIfBlocked||!e(t).data("blockUI.isBlocked")){if(n.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,n.overlayCSS||{}),s=e.extend({},e.blockUI.defaults.css,n.css||{}),n.onOverlayClick&&(n.overlayCSS.cursor="pointer"),h=e.extend({},e.blockUI.defaults.themedCSS,n.themedCSS||{}),y=void 0===y?n.message:y,k&&p&&o(window,{fadeOut:0}),y&&"string"!=typeof y&&(y.parentNode||y.jquery)){var m=y.jquery?y[0]:y,v={};e(t).data("blockUI.history",v),v.el=m,v.parent=m.parentNode,v.display=m.style.display,v.position=m.style.position,v.parent&&v.parent.removeChild(m)}e(t).data("blockUI.onUnblock",n.onUnblock);var g,I,w,U,x=n.baseZ;g=e(r||n.forceIframe?'<iframe class="blockUI" style="z-index:'+x++ +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+n.iframeSrc+'"></iframe>':'<div class="blockUI" style="display:none"></div>'),I=e(n.theme?'<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+x++ +';display:none"></div>':'<div class="blockUI blockOverlay" style="z-index:'+x++ +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'),n.theme&&k?(U='<div class="blockUI '+n.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(x+10)+';display:none;position:fixed">',n.title&&(U+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(n.title||"&nbsp;")+"</div>"),U+='<div class="ui-widget-content ui-dialog-content"></div>',U+="</div>"):n.theme?(U='<div class="blockUI '+n.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(x+10)+';display:none;position:absolute">',n.title&&(U+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(n.title||"&nbsp;")+"</div>"),U+='<div class="ui-widget-content ui-dialog-content"></div>',U+="</div>"):U=k?'<div class="blockUI '+n.blockMsgClass+' blockPage" style="z-index:'+(x+10)+';display:none;position:fixed"></div>':'<div class="blockUI '+n.blockMsgClass+' blockElement" style="z-index:'+(x+10)+';display:none;position:absolute"></div>',w=e(U),y&&(n.theme?(w.css(h),w.addClass("ui-widget-content")):w.css(s)),n.theme||I.css(n.overlayCSS),I.css("position",k?"fixed":"absolute"),(r||n.forceIframe)&&g.css("opacity",0);var C=[g,I,w],S=e(k?"body":t);e.each(C,function(){this.appendTo(S)}),n.theme&&n.draggable&&e.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var O=f&&(!e.support.boxModel||e("object,embed",k?null:t).length>0);if(u||O){if(k&&n.allowBodyStretch&&e.support.boxModel&&e("html,body").css("height","100%"),(u||!e.support.boxModel)&&!k)var E=d(t,"borderTopWidth"),T=d(t,"borderLeftWidth"),M=E?"(0 - "+E+")":0,B=T?"(0 - "+T+")":0;e.each(C,function(e,t){var o=t[0].style;if(o.position="absolute",2>e)k?o.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+n.quirksmodeOffsetHack+') + "px"'):o.setExpression("height",'this.parentNode.offsetHeight + "px"'),k?o.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):o.setExpression("width",'this.parentNode.offsetWidth + "px"'),B&&o.setExpression("left",B),M&&o.setExpression("top",M);else if(n.centerY)k&&o.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),o.marginTop=0;else if(!n.centerY&&k){var i=n.css&&n.css.top?parseInt(n.css.top,10):0,s="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+i+') + "px"';o.setExpression("top",s)}})}if(y&&(n.theme?w.find(".ui-widget-content").append(y):w.append(y),(y.jquery||y.nodeType)&&e(y).show()),(r||n.forceIframe)&&n.showOverlay&&g.show(),n.fadeIn){var j=n.onBlock?n.onBlock:c,H=n.showOverlay&&!y?j:c,z=y?j:c;n.showOverlay&&I._fadeIn(n.fadeIn,H),y&&w._fadeIn(n.fadeIn,z)}else n.showOverlay&&I.show(),y&&w.show(),n.onBlock&&n.onBlock.bind(w)();if(i(1,t,n),k?(p=w[0],b=e(n.focusableElements,p),n.focusInput&&setTimeout(l,20)):a(w[0],n.centerX,n.centerY),n.timeout){var W=setTimeout(function(){k?e.unblockUI(n):e(t).unblock(n)},n.timeout);e(t).data("blockUI.timeout",W)}}}function o(t,o){var s,l=t==window,a=e(t),d=a.data("blockUI.history"),c=a.data("blockUI.timeout");c&&(clearTimeout(c),a.removeData("blockUI.timeout")),o=e.extend({},e.blockUI.defaults,o||{}),i(0,t,o),null===o.onUnblock&&(o.onUnblock=a.data("blockUI.onUnblock"),a.removeData("blockUI.onUnblock"));var r;r=l?e("body").children().filter(".blockUI").add("body > .blockUI"):a.find(">.blockUI"),o.cursorReset&&(r.length>1&&(r[1].style.cursor=o.cursorReset),r.length>2&&(r[2].style.cursor=o.cursorReset)),l&&(p=b=null),o.fadeOut?(s=r.length,r.stop().fadeOut(o.fadeOut,function(){0===--s&&n(r,d,o,t)})):n(r,d,o,t)}function n(t,o,n,i){var s=e(i);if(!s.data("blockUI.isBlocked")){t.each(function(e,t){this.parentNode&&this.parentNode.removeChild(this)}),o&&o.el&&(o.el.style.display=o.display,o.el.style.position=o.position,o.el.style.cursor="default",o.parent&&o.parent.appendChild(o.el),s.removeData("blockUI.history")),s.data("blockUI.static")&&s.css("position","static"),"function"==typeof n.onUnblock&&n.onUnblock(i,n);var l=e(document.body),a=l.width(),d=l[0].style.width;l.width(a-1).width(a),l[0].style.width=d}}function i(t,o,n){var i=o==window,l=e(o);if((t||(!i||p)&&(i||l.data("blockUI.isBlocked")))&&(l.data("blockUI.isBlocked",t),i&&n.bindEvents&&(!t||n.showOverlay))){var a="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";t?e(document).bind(a,n,s):e(document).unbind(a,s)}}function s(t){if("keydown"===t.type&&t.keyCode&&9==t.keyCode&&p&&t.data.constrainTabKey){var o=b,n=!t.shiftKey&&t.target===o[o.length-1],i=t.shiftKey&&t.target===o[0];if(n||i)return setTimeout(function(){l(i)},10),!1}var s=t.data,a=e(t.target);return a.hasClass("blockOverlay")&&s.onOverlayClick&&s.onOverlayClick(t),a.parents("div."+s.blockMsgClass).length>0?!0:0===a.parents().children().filter("div.blockUI").length}function l(e){if(b){var t=b[e===!0?b.length-1:0];t&&t.focus()}}function a(e,t,o){var n=e.parentNode,i=e.style,s=(n.offsetWidth-e.offsetWidth)/2-d(n,"borderLeftWidth"),l=(n.offsetHeight-e.offsetHeight)/2-d(n,"borderTopWidth");t&&(i.left=s>0?s+"px":"0"),o&&(i.top=l>0?l+"px":"0")}function d(t,o){return parseInt(e.css(t,o),10)||0}e.fn._fadeIn=e.fn.fadeIn;var c=e.noop||function(){},r=/MSIE/.test(navigator.userAgent),u=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),f=(document.documentMode||0,e.isFunction(document.createElement("div").style.setExpression));e.blockUI=function(e){t(window,e)},e.unblockUI=function(e){o(window,e)},e.growlUI=function(t,o,n,i){var s=e('<div class="growlUI"></div>');t&&s.append("<h1>"+t+"</h1>"),o&&s.append("<h2>"+o+"</h2>"),void 0===n&&(n=3e3);var l=function(t){t=t||{},e.blockUI({message:s,fadeIn:"undefined"!=typeof t.fadeIn?t.fadeIn:700,fadeOut:"undefined"!=typeof t.fadeOut?t.fadeOut:1e3,timeout:"undefined"!=typeof t.timeout?t.timeout:n,centerY:!1,showOverlay:!1,onUnblock:i,css:e.blockUI.defaults.growlCSS})};l();s.css("opacity");s.mouseover(function(){l({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop(),t.fadeTo(300,1)}).mouseout(function(){e(".blockMsg").fadeOut(1e3)})},e.fn.block=function(o){if(this[0]===window)return e.blockUI(o),this;var n=e.extend({},e.blockUI.defaults,o||{});return this.each(function(){var t=e(this);n.ignoreIfBlocked&&t.data("blockUI.isBlocked")||t.unblock({fadeOut:0})}),this.each(function(){"static"==e.css(this,"position")&&(this.style.position="relative",e(this).data("blockUI.static",!0)),this.style.zoom=1,t(this,o)})},e.fn.unblock=function(t){return this[0]===window?(e.unblockUI(t),this):this.each(function(){o(this,t)})},e.blockUI.version=2.7,e.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var p=null,b=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)}();
function AdiLoader(container) {

  if (container === undefined) throw new Error('Container is missing');

  if (!(this instanceof AdiLoader)) {
    return new AdiLoader(container);
  }


  this.ShowLoadingIndicator = function (timeout, message) {
    var t = typeof timeout === "number" ? parseInt(timeout) : 10000;
    var m = typeof message === "string" ? message : '<i class="icon-spinner4 spinner"></i>';
    $(container).block({ 
      fadeIn: 50,
      fadeOut: 50,
      message: m,
      timeout: t, //unblock after t, default 2 seconds
      overlayCSS: {
        backgroundColor: '#fff',
        opacity: 0.8,
        cursor: 'wait'
      },
      css: {
        border: 0,
        padding: 0,
        backgroundColor: 'transparent'
      }
    });
  };

  this.HideLoadingIndicator = function() {
    $(container).unblock();
  };


  this.ButtonStart = function (id) {
    var ladda = $(id).ladda();
    ladda.ladda('start');
  };
  this.ButtonStop = function (id) {
    var ladda = $(id).ladda();
    ladda.ladda('stop');
  };

  this.ButtonStopAll = function() {
    Ladda.stopAll();
  };
}
'use strict';(function(d,a){"object"===typeof exports&&"undefined"!==typeof module?module.exports=a():"function"===typeof define&&define.amd?define(a):(d=d||self,d.QrScanner=a())})(this,function(){class d{static hasCamera(){return navigator.mediaDevices?navigator.mediaDevices.enumerateDevices().then(a=>a.some(a=>"videoinput"===a.kind)).catch(()=>!1):Promise.resolve(!1)}constructor(a,b,c=this._onDecodeError,e=this._calculateScanRegion,f="environment"){this.$video=a;this.$canvas=document.createElement("canvas");
this._onDecode=b;this._legacyCanvasSize=d.DEFAULT_CANVAS_SIZE;this._preferredFacingMode=f;this._flashOn=this._paused=this._active=!1;"number"===typeof c?(this._legacyCanvasSize=c,console.warn("You're using a deprecated version of the QrScanner constructor which will be removed in the future")):this._onDecodeError=c;"number"===typeof e?(this._legacyCanvasSize=e,console.warn("You're using a deprecated version of the QrScanner constructor which will be removed in the future")):this._calculateScanRegion=
e;this._scanRegion=this._calculateScanRegion(a);this._onPlay=this._onPlay.bind(this);this._onLoadedMetaData=this._onLoadedMetaData.bind(this);this._onVisibilityChange=this._onVisibilityChange.bind(this);this.$video.playsInline=!0;this.$video.muted=!0;this.$video.disablePictureInPicture=!0;this.$video.addEventListener("play",this._onPlay);this.$video.addEventListener("loadedmetadata",this._onLoadedMetaData);document.addEventListener("visibilitychange",this._onVisibilityChange);this._qrEnginePromise=
d.createQrEngine()}hasFlash(){if(!("ImageCapture"in window))return Promise.resolve(!1);let a=this.$video.srcObject?this.$video.srcObject.getVideoTracks()[0]:null;return a?(new ImageCapture(a)).getPhotoCapabilities().then(a=>a.fillLightMode.includes("flash")).catch(a=>{console.warn(a);return!1}):Promise.reject("Camera not started or not available")}isFlashOn(){return this._flashOn}toggleFlash(){return this._setFlash(!this._flashOn)}turnFlashOff(){return this._setFlash(!1)}turnFlashOn(){return this._setFlash(!0)}destroy(){this.$video.removeEventListener("loadedmetadata",
this._onLoadedMetaData);this.$video.removeEventListener("play",this._onPlay);document.removeEventListener("visibilitychange",this._onVisibilityChange);this.stop();d._postWorkerMessage(this._qrEnginePromise,"close")}start(){if(this._active&&!this._paused)return Promise.resolve();"https:"!==window.location.protocol&&console.warn("The camera stream is only accessible if the page is transferred via https.");this._active=!0;this._paused=!1;if(document.hidden)return Promise.resolve();clearTimeout(this._offTimeout);
this._offTimeout=null;if(this.$video.srcObject)return this.$video.play(),Promise.resolve();let a=this._preferredFacingMode;return this._getCameraStream(a,!0).catch(()=>{a="environment"===a?"user":"environment";return this._getCameraStream()}).then(b=>{a=this._getFacingMode(b)||a;this.$video.srcObject=b;this.$video.play();this._setVideoMirror(a)}).catch(a=>{this._active=!1;throw a;})}stop(){this.pause();this._active=!1}pause(){this._paused=!0;this._active&&(this.$video.pause(),this._offTimeout||(this._offTimeout=
setTimeout(()=>{let a=this.$video.srcObject?this.$video.srcObject.getTracks():[];for(let b of a)b.stop();this._offTimeout=this.$video.srcObject=null},300)))}static scanImage(a,b=null,c=null,e=null,f=!1,k=!1){let h=c instanceof Worker,g=Promise.all([c||d.createQrEngine(),d._loadImage(a)]).then(([a,g])=>{c=a;let k;[e,k]=this._drawToCanvas(g,b,e,f);return c instanceof Worker?(h||c.postMessage({type:"inversionMode",data:"both"}),new Promise((a,b)=>{let f,l,g;l=e=>{"qrResult"===e.data.type&&(c.removeEventListener("message",
l),c.removeEventListener("error",g),clearTimeout(f),null!==e.data.data?a(e.data.data):b(d.NO_QR_CODE_FOUND))};g=a=>{c.removeEventListener("message",l);c.removeEventListener("error",g);clearTimeout(f);b("Scanner error: "+(a?a.message||a:"Unknown Error"))};c.addEventListener("message",l);c.addEventListener("error",g);f=setTimeout(()=>g("timeout"),1E4);let h=k.getImageData(0,0,e.width,e.height);c.postMessage({type:"decode",data:h},[h.data.buffer])})):new Promise((a,b)=>{let f=setTimeout(()=>b("Scanner error: timeout"),
1E4);c.detect(e).then(c=>{c.length?a(c[0].rawValue):b(d.NO_QR_CODE_FOUND)}).catch(a=>b("Scanner error: "+(a.message||a))).finally(()=>clearTimeout(f))})});b&&k&&(g=g.catch(()=>d.scanImage(a,null,c,e,f)));return g=g.finally(()=>{h||d._postWorkerMessage(c,"close")})}setGrayscaleWeights(a,b,c,e=!0){d._postWorkerMessage(this._qrEnginePromise,"grayscaleWeights",{red:a,green:b,blue:c,useIntegerApproximation:e})}setInversionMode(a){d._postWorkerMessage(this._qrEnginePromise,"inversionMode",a)}static createQrEngine(a=
d.WORKER_PATH){return("BarcodeDetector"in window?BarcodeDetector.getSupportedFormats():Promise.resolve([])).then(b=>-1!==b.indexOf("qr_code")?new BarcodeDetector({formats:["qr_code"]}):new Worker(a))}_onPlay(){this._scanRegion=this._calculateScanRegion(this.$video);this._scanFrame()}_onLoadedMetaData(){this._scanRegion=this._calculateScanRegion(this.$video)}_onVisibilityChange(){document.hidden?this.pause():this._active&&this.start()}_calculateScanRegion(a){let b=Math.round(2/3*Math.min(a.videoWidth,
a.videoHeight));return{x:(a.videoWidth-b)/2,y:(a.videoHeight-b)/2,width:b,height:b,downScaledWidth:this._legacyCanvasSize,downScaledHeight:this._legacyCanvasSize}}_scanFrame(){if(!this._active||this.$video.paused||this.$video.ended)return!1;requestAnimationFrame(()=>{1>=this.$video.readyState?this._scanFrame():this._qrEnginePromise.then(a=>d.scanImage(this.$video,this._scanRegion,a,this.$canvas)).then(this._onDecode,a=>{this._active&&(-1!==(a.message||a).indexOf("service unavailable")&&(this._qrEnginePromise=
d.createQrEngine()),this._onDecodeError(a))}).then(()=>this._scanFrame())})}_onDecodeError(a){a!==d.NO_QR_CODE_FOUND&&console.log(a)}_getCameraStream(a,b=!1){let c=[{width:{min:1024}},{width:{min:768}},{}];a&&(b&&(a={exact:a}),c.forEach(b=>b.facingMode=a));return this._getMatchingCameraStream(c)}_getMatchingCameraStream(a){return navigator.mediaDevices&&0!==a.length?navigator.mediaDevices.getUserMedia({video:a.shift()}).catch(()=>this._getMatchingCameraStream(a)):Promise.reject("Camera not found.")}_setFlash(a){return this.hasFlash().then(b=>
b?this.$video.srcObject.getVideoTracks()[0].applyConstraints({advanced:[{torch:a}]}):Promise.reject("No flash available")).then(()=>this._flashOn=a)}_setVideoMirror(a){this.$video.style.transform="scaleX("+("user"===a?-1:1)+")"}_getFacingMode(a){return(a=a.getVideoTracks()[0])?/rear|back|environment/i.test(a.label)?"environment":/front|user|face/i.test(a.label)?"user":null:null}static _drawToCanvas(a,b=null,c=null,e=!1){c=c||document.createElement("canvas");let d=b&&b.x?b.x:0,k=b&&b.y?b.y:0,h=b&&
b.width?b.width:a.width||a.videoWidth,g=b&&b.height?b.height:a.height||a.videoHeight;e||(c.width=b&&b.downScaledWidth?b.downScaledWidth:h,c.height=b&&b.downScaledHeight?b.downScaledHeight:g);b=c.getContext("2d",{alpha:!1});b.imageSmoothingEnabled=!1;b.drawImage(a,d,k,h,g,0,0,c.width,c.height);return[c,b]}static _loadImage(a){if(a instanceof HTMLCanvasElement||a instanceof HTMLVideoElement||window.ImageBitmap&&a instanceof window.ImageBitmap||window.OffscreenCanvas&&a instanceof window.OffscreenCanvas)return Promise.resolve(a);
if(a instanceof Image)return d._awaitImageLoad(a).then(()=>a);if(a instanceof File||a instanceof Blob||a instanceof URL||"string"===typeof a){let b=new Image;b.src=a instanceof File||a instanceof Blob?URL.createObjectURL(a):a;return d._awaitImageLoad(b).then(()=>{(a instanceof File||a instanceof Blob)&&URL.revokeObjectURL(b.src);return b})}return Promise.reject("Unsupported image type.")}static _awaitImageLoad(a){return new Promise((b,c)=>{if(a.complete&&0!==a.naturalWidth)b();else{let d,f;d=()=>
{a.removeEventListener("load",d);a.removeEventListener("error",f);b()};f=()=>{a.removeEventListener("load",d);a.removeEventListener("error",f);c("Image load error")};a.addEventListener("load",d);a.addEventListener("error",f)}})}static _postWorkerMessage(a,b,c){return Promise.resolve(a).then(a=>{a instanceof Worker&&a.postMessage({type:b,data:c})})}}d.DEFAULT_CANVAS_SIZE=400;d.NO_QR_CODE_FOUND="No QR code found";d.WORKER_PATH="qr-scanner-worker.min.js";return d})
//# sourceMappingURL=qr-scanner.umd.min.js.map

var ADI = ADI || {};
ADI.BlobHelper = ADI.BlobHelper || (function () {
  const blobTag = "BlobResult";

  return {
    getBlob(elem) {
      return $(elem).data(blobTag);
    },

    setBlob: function (elem, blob) {
      const $elem = $(elem);
      const file = blob instanceof File
        ? blob
        : new File([blob], `${$elem.attr('name')}.png`, { type: blob.type });

      $elem.data(blobTag, file);
    },

    removeBlob(elem) {
      $(elem).data(blobTag, null);
    },

    clearForm(source) {
      const $fileSources = $(source).find("[data-fileupload-input]");

      for (const $fileSource of $fileSources) {
        this.removeBlob($fileSource);
      }
    },

    getFormData: function (source, removePrefix) {
      const $source = $(source);
      const serializedData = $source.is('form')
        ? $source.serializeArray()
        : $source.find('input, select').serializeArray();
      const formData = new FormData();
      const fileSources = $source.find("[data-fileupload-input]");

      $.each(fileSources, function () {
        const blob = $(this).data(blobTag);
        const fileData = serializedData.find((it) => it.name == $(this).attr("name"))
        if (blob && fileData) {
          fileData.value = blob;
        }
      });

      if (removePrefix) {
        $.each(serializedData, function (index, value) {
          serializedData[index].name = value.name.replace(/\[\d+\]/i, '');
        });
      }

      $.each(serializedData, function (index, value) {
        formData.append(value.name, value.value);
      });

      return formData;
    },

    setBlobDataOnSubmit: function (form, selector) {
      const $form = $(form);

      $form.on("formdata", function (ev) {
        const formData = ev.originalEvent.formData;
        const blobSources = $(this).find(selector);
        $.each(blobSources, function () {
          const blob = $(this).data(blobTag);
          if (blob) {
            formData.set($(this).attr('name'), blob);
          }
        });
      });
    },

    createBlobFromBase64(base64) {
      try {
        const toBlob = (b64Data, contentType) => {
          const sliceSize = 512;
          const byteCharacters = atob(b64Data);
          const byteArrays = [];

          for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
            const slice = byteCharacters.slice(offset, offset + sliceSize);

            const byteNumbers = new Array(slice.length);
            for (let i = 0; i < slice.length; i++) {
              byteNumbers[i] = slice.charCodeAt(i);
            }

            const byteArray = new Uint8Array(byteNumbers);
            byteArrays.push(byteArray);
          }

          const blob = new Blob(byteArrays, {type: contentType});
          return blob;
        }

        const [prefix, value] = base64.split(';');
        const [,contentType] = prefix.split(':');
        const [,encodedValue] = value.split('base64,');

        return toBlob(encodedValue, contentType || '');
      } catch (e) {
        console.log(e);
        return null;
      }
    }
  }
}());


