/*! CalcSPA 2025-03-12, Copyright (c) 2025 Australian Taxation Office */ function _typeof(obj){return obj&&"undefined"!=typeof Symbol&&obj.constructor===Symbol?"symbol":typeof obj}function renderDocument(document,options,windowWidth,windowHeight){return createWindowClone(document,document,windowWidth,windowHeight,options).then(function(container){log("Document cloned");var selector="["+html2canvasNodeAttribute+"='true']";document.querySelector(selector).removeAttribute(html2canvasNodeAttribute);var clonedWindow=container.contentWindow,node=clonedWindow.document.querySelector(selector),oncloneHandler="function"==typeof options.onclone?Promise.resolve(options.onclone(clonedWindow.document)):Promise.resolve(!0);return oncloneHandler.then(function(){return renderWindow(node,container,options,windowWidth,windowHeight)})})}function renderWindow(node,container,options,windowWidth,windowHeight){var clonedWindow=container.contentWindow,support=new Support(clonedWindow.document),imageLoader=new ImageLoader(options,support),bounds=getBounds(node),width="view"===options.type?windowWidth:documentWidth(clonedWindow.document),height="view"===options.type?windowHeight:documentHeight(clonedWindow.document),renderer=new CanvasRenderer(width,height,imageLoader,options,document),parser=new NodeParser(node,renderer,support,imageLoader,options);return parser.ready.then(function(){log("Finished rendering");var canvas;return canvas="view"===options.type?crop(renderer.canvas,{width:renderer.canvas.width,height:renderer.canvas.height,top:0,left:0,x:0,y:0}):node===clonedWindow.document.body||node===clonedWindow.document.documentElement||null!=options.canvas?renderer.canvas:crop(renderer.canvas,{width:null!=options.width?options.width:bounds.width,height:null!=options.height?options.height:bounds.height,top:bounds.top,left:bounds.left,x:clonedWindow.pageXOffset,y:clonedWindow.pageYOffset}),cleanupContainer(container,options),canvas})}function cleanupContainer(container,options){options.removeContainer&&(container.parentNode.removeChild(container),log("Cleaned up container"))}function crop(canvas,bounds){var croppedCanvas=document.createElement("canvas"),x1=Math.min(canvas.width-1,Math.max(0,bounds.left)),x2=Math.min(canvas.width,Math.max(1,bounds.left+bounds.width)),y1=Math.min(canvas.height-1,Math.max(0,bounds.top)),y2=Math.min(canvas.height,Math.max(1,bounds.top+bounds.height));return croppedCanvas.width=bounds.width,croppedCanvas.height=bounds.height,log("Cropping canvas at:","left:",bounds.left,"top:",bounds.top,"width:",x2-x1,"height:",y2-y1),log("Resulting crop with width",bounds.width,"and height",bounds.height," with x",x1,"and y",y1),croppedCanvas.getContext("2d").drawImage(canvas,x1,y1,x2-x1,y2-y1,bounds.x,bounds.y,x2-x1,y2-y1),croppedCanvas}function documentWidth(doc){return Math.max(Math.max(doc.body.scrollWidth,doc.documentElement.scrollWidth),Math.max(doc.body.offsetWidth,doc.documentElement.offsetWidth),Math.max(doc.body.clientWidth,doc.documentElement.clientWidth))}function documentHeight(doc){return Math.max(Math.max(doc.body.scrollHeight,doc.documentElement.scrollHeight),Math.max(doc.body.offsetHeight,doc.documentElement.offsetHeight),Math.max(doc.body.clientHeight,doc.documentElement.clientHeight))}function smallImage(){return"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}function createWindowClone(ownerDocument,containerDocument,width,height,options){labelCanvasElements(ownerDocument);var documentElement=ownerDocument.documentElement.cloneNode(!0),container=containerDocument.createElement("iframe");return container.className="html2canvas-container",container.style.visibility="hidden",container.style.position="fixed",container.style.left="-10000px",container.style.top="0px",container.style.border="0",container.width=width,container.height=height,container.scrolling="no",containerDocument.body.appendChild(container),new Promise(function(resolve){var documentClone=container.contentWindow.document;container.contentWindow.onload=container.onload=function(){var interval=setInterval(function(){documentClone.body.childNodes.length>0&&(cloneCanvasContents(ownerDocument,documentClone),clearInterval(interval),"view"===options.type&&container.contentWindow.scrollTo(x,y),resolve(container))},50)};var x=ownerDocument.defaultView.pageXOffset,y=ownerDocument.defaultView.pageYOffset;documentClone.open(),documentClone.write(""),restoreOwnerScroll(ownerDocument,x,y),documentClone.replaceChild(options.javascriptEnabled===!0?documentClone.adoptNode(documentElement):removeScriptNodes(documentClone.adoptNode(documentElement)),documentClone.documentElement),documentClone.close()})}function restoreOwnerScroll(ownerDocument,x,y){x===ownerDocument.defaultView.pageXOffset&&y===ownerDocument.defaultView.pageYOffset||ownerDocument.defaultView.scrollTo(x,y)}function loadUrlDocument(src,proxy,document,width,height,options){return new Proxy(src,proxy,window.document).then(documentFromHTML(src)).then(function(doc){return createWindowClone(doc,document,width,height,options)})}function documentFromHTML(src){return function(html){var doc,parser=new DOMParser;try{doc=parser.parseFromString(html,"text/html")}catch(e){log("DOMParser not supported, falling back to createHTMLDocument"),doc=document.implementation.createHTMLDocument("");try{doc.open(),doc.write(html),doc.close()}catch(ee){log("createHTMLDocument write not supported, falling back to document.body.innerHTML"),doc.body.innerHTML=html}}var b=doc.querySelector("base");if(!b||!b.href.host){var base=doc.createElement("base");base.href=src,doc.head.insertBefore(base,doc.head.firstChild)}return doc}}function labelCanvasElements(ownerDocument){[].slice.call(ownerDocument.querySelectorAll("canvas"),0).forEach(function(canvas){canvas.setAttribute(html2canvasCanvasCloneAttribute,"canvas-"+html2canvasCanvasCloneIndex++)})}function cloneCanvasContents(ownerDocument,documentClone){[].slice.call(ownerDocument.querySelectorAll("["+html2canvasCanvasCloneAttribute+"]"),0).forEach(function(canvas){try{var clonedCanvas=documentClone.querySelector("["+html2canvasCanvasCloneAttribute+'="'+canvas.getAttribute(html2canvasCanvasCloneAttribute)+'"]');clonedCanvas&&(clonedCanvas.width=canvas.width,clonedCanvas.height=canvas.height,clonedCanvas.getContext("2d").putImageData(canvas.getContext("2d").getImageData(0,0,canvas.width,canvas.height),0,0))}catch(e){log("Unable to copy canvas content from",canvas,e)}canvas.removeAttribute(html2canvasCanvasCloneAttribute)})}function removeScriptNodes(parent){return[].slice.call(parent.childNodes,0).filter(isElementNode).forEach(function(node){"SCRIPT"===node.tagName?parent.removeChild(node):removeScriptNodes(node)}),parent}function isElementNode(node){return node.nodeType===Node.ELEMENT_NODE}function absoluteUrl(url){var link=document.createElement("a");return link.href=url,link.href=link.href,link}function DummyImageContainer(src){if(this.src=src,log("DummyImageContainer for",src),!this.promise||!this.image){log("Initiating DummyImageContainer"),DummyImageContainer.prototype.image=new Image;var image=this.image;DummyImageContainer.prototype.promise=new Promise(function(resolve,reject){image.onload=resolve,image.onerror=reject,image.src=smallImage(),image.complete===!0&&resolve(image)})}}function Font(family,size){var baseline,middle,container=document.createElement("div"),img=document.createElement("img"),span=document.createElement("span"),sampleText="Hidden Text";container.style.visibility="hidden",container.style.fontFamily=family,container.style.fontSize=size,container.style.margin=0,container.style.padding=0,document.body.appendChild(container),img.src=smallImage(),img.width=1,img.height=1,img.style.margin=0,img.style.padding=0,img.style.verticalAlign="baseline",span.style.fontFamily=family,span.style.fontSize=size,span.style.margin=0,span.style.padding=0,span.appendChild(document.createTextNode(sampleText)),container.appendChild(span),container.appendChild(img),baseline=img.offsetTop-span.offsetTop+1,container.removeChild(span),container.appendChild(document.createTextNode(sampleText)),container.style.lineHeight="normal",img.style.verticalAlign="super",middle=img.offsetTop-container.offsetTop+1,document.body.removeChild(container),this.baseline=baseline,this.lineWidth=1,this.middle=middle}function FontMetrics(){this.data={}}function FrameContainer(container,sameOrigin,options){this.image=null,this.src=container;var self=this,bounds=getBounds(container);this.promise=(sameOrigin?new Promise(function(resolve){"about:blank"===container.contentWindow.document.URL||null==container.contentWindow.document.documentElement?container.contentWindow.onload=container.onload=function(){resolve(container)}:resolve(container)}):this.proxyLoad(options.proxy,bounds,options)).then(function(container){return html2canvas(container.contentWindow.document.documentElement,{type:"view",width:container.width,height:container.height,proxy:options.proxy,javascriptEnabled:options.javascriptEnabled,removeContainer:options.removeContainer,allowTaint:options.allowTaint,imageTimeout:options.imageTimeout/2})}).then(function(canvas){return self.image=canvas})}function GradientContainer(imageData){this.src=imageData.value,this.colorStops=[],this.type=null,this.x0=.5,this.y0=.5,this.x1=.5,this.y1=.5,this.promise=Promise.resolve(!0)}function ImageContainer(src,cors){this.src=src,this.image=new Image;var self=this;this.tainted=null,this.promise=new Promise(function(resolve,reject){self.image.onload=resolve,self.image.onerror=reject,cors&&(self.image.crossOrigin="anonymous"),self.image.src=src,self.image.complete===!0&&resolve(self.image)})}function ImageLoader(options,support){this.link=null,this.options=options,this.support=support,this.origin=this.getOrigin(window.location.href)}function LinearGradientContainer(imageData){GradientContainer.apply(this,arguments),this.type=this.TYPES.LINEAR;var hasDirection=null===imageData.args[0].match(this.stepRegExp);hasDirection?imageData.args[0].split(" ").reverse().forEach(function(position){switch(position){case"left":this.x0=0,this.x1=1;break;case"top":this.y0=0,this.y1=1;break;case"right":this.x0=1,this.x1=0;break;case"bottom":this.y0=1,this.y1=0;break;case"to":var y0=this.y0,x0=this.x0;this.y0=this.y1,this.x0=this.x1,this.x1=x0,this.y1=y0}},this):(this.y0=0,this.y1=1),this.colorStops=imageData.args.slice(hasDirection?1:0).map(function(colorStop){var colorStopMatch=colorStop.match(this.stepRegExp);return{color:colorStopMatch[1],stop:"%"===colorStopMatch[3]?colorStopMatch[2]/100:null}},this),null===this.colorStops[0].stop&&(this.colorStops[0].stop=0),null===this.colorStops[this.colorStops.length-1].stop&&(this.colorStops[this.colorStops.length-1].stop=1),this.colorStops.forEach(function(colorStop,index){null===colorStop.stop&&this.colorStops.slice(index).some(function(find,count){return null!==find.stop&&(colorStop.stop=(find.stop-this.colorStops[index-1].stop)/(count+1)+this.colorStops[index-1].stop,!0)},this)},this)}function log(){window.html2canvas.logging&&window.console&&window.console.log&&Function.prototype.bind.call(window.console.log,window.console).apply(window.console,[Date.now()-window.html2canvas.start+"ms","html2canvas:"].concat([].slice.call(arguments,0)))}function NodeContainer(node,parent){this.node=node,this.parent=parent,this.stack=null,this.bounds=null,this.borders=null,this.clip=[],this.backgroundClip=[],this.offsetBounds=null,this.visible=null,this.computedStyles=null,this.styles={},this.backgroundImages=null,this.transformData=null,this.transformMatrix=null,this.isPseudoElement=!1,this.opacity=null}function selectionValue(node){var option=node.options[node.selectedIndex||0];return option?option.text||"":""}function parseMatrix(match){if(match&&"matrix"===match[1])return match[2].split(",").map(function(s){return parseFloat(s.trim())})}function isPercentage(value){return value.toString().indexOf("%")!==-1}function parseBackgrounds(backgroundImage){var method,definition,prefix,prefix_i,block,quote,args,whitespace=" \r\n\t",results=[],mode=0,numParen=0,appendResult=function(){method&&('"'===definition.substr(0,1)&&(definition=definition.substr(1,definition.length-2)),definition&&args.push(definition),"-"===method.substr(0,1)&&(prefix_i=method.indexOf("-",1)+1)>0&&(prefix=method.substr(0,prefix_i),method=method.substr(prefix_i)),results.push({prefix:prefix,method:method.toLowerCase(),value:block,args:args,image:null})),args=[],method=prefix=definition=block=""};return args=[],method=prefix=definition=block="",backgroundImage.split("").forEach(function(c){if(!(0===mode&&whitespace.indexOf(c)>-1)){switch(c){case'"':quote?quote===c&&(quote=null):quote=c;break;case"(":if(quote)break;if(0===mode)return mode=1,void(block+=c);numParen++;break;case")":if(quote)break;if(1===mode){if(0===numParen)return mode=0,block+=c,void appendResult();numParen--}break;case",":if(quote)break;if(0===mode)return void appendResult();if(1===mode&&0===numParen&&!method.match(/^url$/i))return args.push(definition),definition="",void(block+=c)}block+=c,0===mode?method+=c:definition+=c}}),appendResult(),results}function removePx(str){return str.replace("px","")}function asFloat(str){return parseFloat(str)}function getBounds(node){if(node.getBoundingClientRect){var clientRect=node.getBoundingClientRect(),width=null==node.offsetWidth?clientRect.width:node.offsetWidth;return{top:clientRect.top,bottom:clientRect.bottom||clientRect.top+clientRect.height,right:clientRect.left+width,left:clientRect.left,width:width,height:null==node.offsetHeight?clientRect.height:node.offsetHeight}}return{}}function offsetBounds(node){var parent=node.offsetParent?offsetBounds(node.offsetParent):{top:0,left:0};return{top:node.offsetTop+parent.top,bottom:node.offsetTop+node.offsetHeight+parent.top,right:node.offsetLeft+parent.left+node.offsetWidth,left:node.offsetLeft+parent.left,width:node.offsetWidth,height:node.offsetHeight}}function NodeParser(element,renderer,support,imageLoader,options){log("Starting NodeParser"),this.renderer=renderer,this.options=options,this.range=null,this.support=support,this.renderQueue=[],this.stack=new StackingContext((!0),1,element.ownerDocument,null);var parent=new NodeContainer(element,null);if(element===element.ownerDocument.documentElement){var canvasBackground=new NodeContainer(this.renderer.isTransparent(parent.css("backgroundColor"))?element.ownerDocument.body:element.ownerDocument.documentElement,null);renderer.rectangle(0,0,renderer.width,renderer.height,canvasBackground.css("backgroundColor"))}parent.visibile=parent.isElementVisible(),this.createPseudoHideStyles(element.ownerDocument),this.disableAnimations(element.ownerDocument),this.nodes=flatten([parent].concat(this.getChildren(parent)).filter(function(container){return container.visible=container.isElementVisible()}).map(this.getPseudoElements,this)),this.fontMetrics=new FontMetrics,log("Fetched nodes, total:",this.nodes.length),log("Calculate overflow clips"),this.calculateOverflowClips(),log("Start fetching images"),this.images=imageLoader.fetch(this.nodes.filter(isElement)),this.ready=this.images.ready.then(bind(function(){return log("Images loaded, starting parsing"),log("Creating stacking contexts"),this.createStackingContexts(),log("Sorting stacking contexts"),this.sortStackingContexts(this.stack),this.parse(this.stack),log("Render queue created with "+this.renderQueue.length+" items"),new Promise(bind(function(resolve){options.async?"function"==typeof options.async?options.async.call(this,this.renderQueue,resolve):this.renderQueue.length>0?(this.renderIndex=0,this.asyncRenderer(this.renderQueue,resolve)):resolve():(this.renderQueue.forEach(this.paint,this),resolve())},this))},this))}function hasParentClip(container){return container.parent&&container.parent.clip.length}function toCamelCase(str){return str.replace(/(\-[a-z])/g,function(match){return match.toUpperCase().replace("-","")})}function ClearTransform(){}function calculateBorders(borders,nodeBounds,borderPoints,radius){return borders.map(function(border,borderSide){if(border.width>0){var bx=nodeBounds.left,by=nodeBounds.top,bw=nodeBounds.width,bh=nodeBounds.height-borders[2].width;switch(borderSide){case 0:bh=borders[0].width,border.args=drawSide({c1:[bx,by],c2:[bx+bw,by],c3:[bx+bw-borders[1].width,by+bh],c4:[bx+borders[3].width,by+bh]},radius[0],radius[1],borderPoints.topLeftOuter,borderPoints.topLeftInner,borderPoints.topRightOuter,borderPoints.topRightInner);break;case 1:bx=nodeBounds.left+nodeBounds.width-borders[1].width,bw=borders[1].width,border.args=drawSide({c1:[bx+bw,by],c2:[bx+bw,by+bh+borders[2].width],c3:[bx,by+bh],c4:[bx,by+borders[0].width]},radius[1],radius[2],borderPoints.topRightOuter,borderPoints.topRightInner,borderPoints.bottomRightOuter,borderPoints.bottomRightInner);break;case 2:by=by+nodeBounds.height-borders[2].width,bh=borders[2].width,border.args=drawSide({c1:[bx+bw,by+bh],c2:[bx,by+bh],c3:[bx+borders[3].width,by],c4:[bx+bw-borders[3].width,by]},radius[2],radius[3],borderPoints.bottomRightOuter,borderPoints.bottomRightInner,borderPoints.bottomLeftOuter,borderPoints.bottomLeftInner);break;case 3:bw=borders[3].width,border.args=drawSide({c1:[bx,by+bh+borders[2].width],c2:[bx,by],c3:[bx+bw,by+borders[0].width],c4:[bx+bw,by+bh]},radius[3],radius[0],borderPoints.bottomLeftOuter,borderPoints.bottomLeftInner,borderPoints.topLeftOuter,borderPoints.topLeftInner)}}return border})}function getCurvePoints(x,y,r1,r2){var kappa=4*((Math.sqrt(2)-1)/3),ox=r1*kappa,oy=r2*kappa,xm=x+r1,ym=y+r2;return{topLeft:bezierCurve({x:x,y:ym},{x:x,y:ym-oy},{x:xm-ox,y:y},{x:xm,y:y}),topRight:bezierCurve({x:x,y:y},{x:x+ox,y:y},{x:xm,y:ym-oy},{x:xm,y:ym}),bottomRight:bezierCurve({x:xm,y:y},{x:xm,y:y+oy},{x:x+ox,y:ym},{x:x,y:ym}),bottomLeft:bezierCurve({x:xm,y:ym},{x:xm-ox,y:ym},{x:x,y:y+oy},{x:x,y:y})}}function calculateCurvePoints(bounds,borderRadius,borders){var x=bounds.left,y=bounds.top,width=bounds.width,height=bounds.height,tlh=borderRadius[0][0],tlv=borderRadius[0][1],trh=borderRadius[1][0],trv=borderRadius[1][1],brh=borderRadius[2][0],brv=borderRadius[2][1],blh=borderRadius[3][0],blv=borderRadius[3][1],topWidth=width-trh,rightHeight=height-brv,bottomWidth=width-brh,leftHeight=height-blv;return{topLeftOuter:getCurvePoints(x,y,tlh,tlv).topLeft.subdivide(.5),topLeftInner:getCurvePoints(x+borders[3].width,y+borders[0].width,Math.max(0,tlh-borders[3].width),Math.max(0,tlv-borders[0].width)).topLeft.subdivide(.5),topRightOuter:getCurvePoints(x+topWidth,y,trh,trv).topRight.subdivide(.5),topRightInner:getCurvePoints(x+Math.min(topWidth,width+borders[3].width),y+borders[0].width,topWidth>width+borders[3].width?0:trh-borders[3].width,trv-borders[0].width).topRight.subdivide(.5),bottomRightOuter:getCurvePoints(x+bottomWidth,y+rightHeight,brh,brv).bottomRight.subdivide(.5),bottomRightInner:getCurvePoints(x+Math.min(bottomWidth,width-borders[3].width),y+Math.min(rightHeight,height+borders[0].width),Math.max(0,brh-borders[1].width),brv-borders[2].width).bottomRight.subdivide(.5),bottomLeftOuter:getCurvePoints(x,y+leftHeight,blh,blv).bottomLeft.subdivide(.5),bottomLeftInner:getCurvePoints(x+borders[3].width,y+leftHeight,Math.max(0,blh-borders[3].width),blv-borders[2].width).bottomLeft.subdivide(.5)}}function bezierCurve(start,startControl,endControl,end){var lerp=function(a,b,t){return{x:a.x+(b.x-a.x)*t,y:a.y+(b.y-a.y)*t}};return{start:start,startControl:startControl,endControl:endControl,end:end,subdivide:function(t){var ab=lerp(start,startControl,t),bc=lerp(startControl,endControl,t),cd=lerp(endControl,end,t),abbc=lerp(ab,bc,t),bccd=lerp(bc,cd,t),dest=lerp(abbc,bccd,t);return[bezierCurve(start,ab,abbc,dest),bezierCurve(dest,bccd,cd,end)]},curveTo:function(borderArgs){borderArgs.push(["bezierCurve",startControl.x,startControl.y,endControl.x,endControl.y,end.x,end.y])},curveToReversed:function(borderArgs){borderArgs.push(["bezierCurve",endControl.x,endControl.y,startControl.x,startControl.y,start.x,start.y])}}}function drawSide(borderData,radius1,radius2,outer1,inner1,outer2,inner2){var borderArgs=[];return radius1[0]>0||radius1[1]>0?(borderArgs.push(["line",outer1[1].start.x,outer1[1].start.y]),outer1[1].curveTo(borderArgs)):borderArgs.push(["line",borderData.c1[0],borderData.c1[1]]),radius2[0]>0||radius2[1]>0?(borderArgs.push(["line",outer2[0].start.x,outer2[0].start.y]),outer2[0].curveTo(borderArgs),borderArgs.push(["line",inner2[0].end.x,inner2[0].end.y]),inner2[0].curveToReversed(borderArgs)):(borderArgs.push(["line",borderData.c2[0],borderData.c2[1]]),borderArgs.push(["line",borderData.c3[0],borderData.c3[1]])),radius1[0]>0||radius1[1]>0?(borderArgs.push(["line",inner1[1].end.x,inner1[1].end.y]),inner1[1].curveToReversed(borderArgs)):borderArgs.push(["line",borderData.c4[0],borderData.c4[1]]),borderArgs}function parseCorner(borderArgs,radius1,radius2,corner1,corner2,x,y){radius1[0]>0||radius1[1]>0?(borderArgs.push(["line",corner1[0].start.x,corner1[0].start.y]),corner1[0].curveTo(borderArgs),corner1[1].curveTo(borderArgs)):borderArgs.push(["line",x,y]),(radius2[0]>0||radius2[1]>0)&&borderArgs.push(["line",corner2[0].start.x,corner2[0].start.y])}function negativeZIndex(container){return container.cssInt("zIndex")<0}function positiveZIndex(container){return container.cssInt("zIndex")>0}function zIndex0(container){return 0===container.cssInt("zIndex")}function inlineLevel(container){return["inline","inline-block","inline-table"].indexOf(container.css("display"))!==-1}function isStackingContext(container){return container instanceof StackingContext}function hasText(container){return container.node.data.trim().length>0}function noLetterSpacing(container){return/^(normal|none|0px)$/.test(container.parent.css("letterSpacing"))}function getBorderRadiusData(container){return["TopLeft","TopRight","BottomRight","BottomLeft"].map(function(side){var value=container.css("border"+side+"Radius"),arr=value.split(" ");return arr.length<=1&&(arr[1]=arr[0]),arr.map(asInt)})}function renderableNode(node){return node.nodeType===Node.TEXT_NODE||node.nodeType===Node.ELEMENT_NODE}function isPositionedForStacking(container){var position=container.css("position"),zIndex=["absolute","relative","fixed"].indexOf(position)!==-1?container.css("zIndex"):"auto";return"auto"!==zIndex}function isPositioned(container){return"static"!==container.css("position")}function isFloating(container){return"none"!==container.css("float")}function isInlineBlock(container){return["inline-block","inline-table"].indexOf(container.css("display"))!==-1}function not(callback){var context=this;return function(){return!callback.apply(context,arguments)}}function isElement(container){return container.node.nodeType===Node.ELEMENT_NODE}function isPseudoElement(container){return container.isPseudoElement===!0}function isTextNode(container){return container.node.nodeType===Node.TEXT_NODE}function zIndexSort(contexts){return function(a,b){return a.cssInt("zIndex")+contexts.indexOf(a)/contexts.length-(b.cssInt("zIndex")+contexts.indexOf(b)/contexts.length)}}function hasOpacity(container){return container.getOpacity()<1}function bind(callback,context){return function(){return callback.apply(context,arguments)}}function asInt(value){return parseInt(value,10)}function getWidth(border){return border.width}function nonIgnoredElement(nodeContainer){return nodeContainer.node.nodeType!==Node.ELEMENT_NODE||["SCRIPT","HEAD","TITLE","OBJECT","BR","OPTION"].indexOf(nodeContainer.node.nodeName)===-1}function flatten(arrays){return[].concat.apply([],arrays)}function stripQuotes(content){var first=content.substr(0,1);return first===content.substr(content.length-1)&&first.match(/'|"/)?content.substr(1,content.length-2):content}function getWords(characters){for(var word,words=[],i=0,onWordBoundary=!1;characters.length;)isWordBoundary(characters[i])===onWordBoundary?(word=characters.splice(0,i),word.length&&words.push(window.html2canvas.punycode.ucs2.encode(word)),onWordBoundary=!onWordBoundary,i=0):i++,i>=characters.length&&(word=characters.splice(0,i),word.length&&words.push(window.html2canvas.punycode.ucs2.encode(word)));return words}function isWordBoundary(characterCode){return[32,13,10,9,45].indexOf(characterCode)!==-1}function hasUnicode(string){return/[^\u0000-\u00ff]/.test(string)}function Proxy(src,proxyUrl,document){var callback=createCallback(supportsCORS),url=createProxyUrl(proxyUrl,src,callback);return supportsCORS?XHR(url):jsonp(document,url,callback).then(function(response){return decode64(response.content)})}function ProxyURL(src,proxyUrl,document){var callback=createCallback(supportsCORSImage),url=createProxyUrl(proxyUrl,src,callback);return supportsCORSImage?Promise.resolve(url):jsonp(document,url,callback).then(function(response){return"data:"+response.type+";base64,"+response.content})}function jsonp(document,url,callback){return new Promise(function(resolve,reject){var s=document.createElement("script"),cleanup=function(){delete window.html2canvas.proxy[callback],document.body.removeChild(s)};window.html2canvas.proxy[callback]=function(response){cleanup(),resolve(response)},s.src=url,s.onerror=function(e){cleanup(),reject(e)},document.body.appendChild(s)})}function createCallback(useCORS){return useCORS?"":"html2canvas_"+Date.now()+"_"+ ++proxyCount+"_"+Math.round(1e5*Math.random())}function createProxyUrl(proxyUrl,src,callback){return proxyUrl+"?url="+encodeURIComponent(src)+(callback.length?"&callback=html2canvas.proxy."+callback:"")}function ProxyImageContainer(src,proxy){var link=(document.createElement("script"),document.createElement("a"));link.href=src,src=link.href,this.src=src,this.image=new Image;var self=this;this.promise=new Promise(function(resolve,reject){self.image.crossOrigin="Anonymous",self.image.onload=resolve,self.image.onerror=reject,new ProxyURL(src,proxy,document).then(function(url){self.image.src=url})["catch"](reject)})}function PseudoElementContainer(node,parent,type){NodeContainer.call(this,node,parent),this.isPseudoElement=!0,this.before=":before"===type}function Renderer(width,height,images,options,document){this.width=width,this.height=height,this.images=images,this.options=options,this.document=document}function StackingContext(hasOwnStacking,opacity,element,parent){NodeContainer.call(this,element,parent),this.ownStacking=hasOwnStacking,this.contexts=[],this.children=[],this.opacity=(this.parent?this.parent.stack.opacity:1)*opacity}function Support(document){this.rangeBounds=this.testRangeBounds(document),this.cors=this.testCORS(),this.svg=this.testSVG()}function SVGContainer(src){this.src=src,this.image=null;var self=this;this.promise=this.hasFabric().then(function(){return self.isInline(src)?Promise.resolve(self.inlineFormatting(src)):XHR(src)}).then(function(svg){return new Promise(function(resolve){html2canvas.fabric.loadSVGFromString(svg,self.createCanvas.call(self,resolve))})})}function decode64(base64){var i,encoded1,encoded2,encoded3,encoded4,byte1,byte2,byte3,chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",len=base64.length,output="";for(i=0;i>4,byte2=(15&encoded2)<<4|encoded3>>2,byte3=(3&encoded3)<<6|encoded4,output+=64===encoded3?String.fromCharCode(byte1):64===encoded4||encoded4===-1?String.fromCharCode(byte1,byte2):String.fromCharCode(byte1,byte2,byte3);return output}function SVGNodeContainer(node,native){this.src=node,this.image=null;var self=this;this.promise=native?new Promise(function(resolve,reject){self.image=new Image,self.image.onload=resolve,self.image.onerror=reject,self.image.src="data:image/svg+xml,"+(new XMLSerializer).serializeToString(node),self.image.complete===!0&&resolve(self.image)}):this.hasFabric().then(function(){return new Promise(function(resolve){html2canvas.fabric.parseSVGDocument(node,self.createCanvas.call(self,resolve))})})}function TextContainer(node,parent){NodeContainer.call(this,node,parent)}function capitalize(m,p1,p2){if(m.length>0)return p1+p2.toUpperCase()}function WebkitGradientContainer(imageData){GradientContainer.apply(this,arguments),this.type="linear"===imageData.args[0]?this.TYPES.LINEAR:this.TYPES.RADIAL}function XHR(url){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest;xhr.open("GET",url),xhr.onload=function(){200===xhr.status?resolve(xhr.responseText):reject(new Error(xhr.statusText))},xhr.onerror=function(){reject(new Error("Network Error"))},xhr.send()})}function html2pdf(html,pdf,callback){var canvas=pdf.canvas;if(!canvas)return void alert("jsPDF canvas plugin not installed");if(canvas.pdf=pdf,pdf.annotations={_nameMap:[],createAnnotation:function(href,bounds){var options,x=pdf.context2d._wrapX(bounds.left),y=pdf.context2d._wrapY(bounds.top),index=(pdf.context2d._page(bounds.top),href.indexOf("#"));options=index>=0?{name:href.substring(index+1)}:{url:href},pdf.link(x,y,bounds.right-bounds.left,bounds.bottom-bounds.top,options)},setName:function(name,bounds){var x=pdf.context2d._wrapX(bounds.left),y=pdf.context2d._wrapY(bounds.top),page=pdf.context2d._page(bounds.top);this._nameMap[name]={page:page,x:x,y:y}}},canvas.annotations=pdf.annotations,pdf.context2d._pageBreakAt=function(y){this.pageBreaks.push(y)},pdf.context2d._gotoPage=function(pageOneBased){for(;pdf.internal.getNumberOfPages())<[^<]*)*<\/script>/gi,"");var iframe=document.createElement("iframe");document.body.appendChild(iframe);var doc;doc=iframe.contentDocument,void 0!=doc&&null!=doc||(doc=iframe.contentWindow.document),doc.open(),doc.write(html),doc.close();html2canvas(doc.body,{canvas:canvas,onrendered:function(canvas){callback&&(iframe&&iframe.parentElement.removeChild(iframe),callback(pdf))}})}else{var body=html;html2canvas(body,{canvas:canvas,onrendered:function(canvas){callback&&(iframe&&iframe.parentElement.removeChild(iframe),callback(pdf))}})}}var hostConfig={mainId:"Main",mainTarget:"body",hostArea:"mytax16"};"undefined"==typeof console?this.console={log:function(){},info:function(){},error:function(){},warn:function(){},debug:function(){}}:"undefined"==typeof console.debug&&(console.debug=console.log),function(definition){"function"==typeof define?define(definition):"function"==typeof YUI?YUI.add("es5",definition):definition()}(function(){function Empty(){}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}function isPrimitive(input){var type=typeof input;return null===input||"undefined"===type||"boolean"===type||"number"===type||"string"===type}function toPrimitive(input){var val,valueOf,toString;if(isPrimitive(input))return input;if(valueOf=input.valueOf,"function"==typeof valueOf&&(val=valueOf.call(input),isPrimitive(val)))return val;if(toString=input.toString,"function"==typeof toString&&(val=toString.call(input),isPrimitive(val)))return val;throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=_Array_slice_.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(_Array_slice_.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(_Array_slice_.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,_Array_slice_=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__), defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length){var array_splice=Array.prototype.splice;!function(){function makeArray(l){for(var a=[];l--;)a.unshift(l);return a}var lengthBefore,array=[];if(array.splice.bind(array,0,0).apply(null,makeArray(20)),array.splice.bind(array,0,0).apply(null,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length)return!0}()?Array.prototype.splice=function(start,deleteCount){var result,args=_Array_slice_.call(arguments,2),addElementsCount=args.length;if(!arguments.length)return[];if(void 0===start&&(start=0),void 0===deleteCount&&(deleteCount=this.length-start),addElementsCount>0){if(deleteCount<=0){if(start==this.length)return this.push.apply(this,args),[];if(0==start)return this.unshift.apply(this,args),[]}return result=_Array_slice_.call(this,start,start+deleteCount),args.push.apply(args,_Array_slice_.call(this,start+deleteCount,this.length)),args.unshift.apply(args,_Array_slice_.call(this,0,start)),args.unshift(0,this.length),array_splice.apply(this,args),result}return array_splice.call(this,start,deleteCount)}:Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(_Array_slice_.call(arguments,2))):[]}}if(1!=[].unshift(0)){var array_unshift=Array.prototype.unshift;Array.prototype.unshift=function(){return array_unshift.apply(this,arguments),this.length}}Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;++i>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;i>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;i>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;i>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;i>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;i>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(--i<0)throw new TypeError("reduceRight of empty array with no initial value")}if(i<0)return result;do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&[0,1].indexOf(1,2)==-1||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);i>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function keys(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;i9999?"+":"")+("00000"+Math.abs(year)).slice(0<=year&&year<=9999?-4:-6),length=result.length;length--;)value=result[length],value<10&&(result[length]="0"+value);return year+"-"+result.slice(0,2).join("-")+"T"+result.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"});var dateToJSONIsSupported=!1;try{dateToJSONIsSupported=Date.prototype.toJSON&&null===new Date(NaN).toJSON()&&new Date(negativeDate).toJSON().indexOf(negativeYearString)!==-1&&Date.prototype.toJSON.call({toISOString:function(){return!0}})}catch(e){}dateToJSONIsSupported||(Date.prototype.toJSON=function(key){var toISO,o=Object(this),tv=toPrimitive(o);if("number"==typeof tv&&!isFinite(tv))return null;if(toISO=o.toISOString,"function"!=typeof toISO)throw new TypeError("toISOString property is not callable");return toISO.call(o)}),!Date.parse,Date=function(NativeDate){function Date(Y,M,D,h,m,s,ms){var length=arguments.length;if(this instanceof NativeDate){var date=1==length&&String(Y)===Y?new NativeDate(Date.parse(Y)):length>=7?new NativeDate(Y,M,D,h,m,s,ms):length>=6?new NativeDate(Y,M,D,h,m,s):length>=5?new NativeDate(Y,M,D,h,m):length>=4?new NativeDate(Y,M,D,h):length>=3?new NativeDate(Y,M,D):length>=2?new NativeDate(Y,M):length>=1?new NativeDate(Y):new NativeDate;return date.constructor=Date,date}return NativeDate.apply(this,arguments)}function dayFromMonth(year,month){var t=month>1?1:0;return months[month]+Math.floor((year-1969+t)/4)-Math.floor((year-1901+t)/100)+Math.floor((year-1601+t)/400)+365*(year-1970)}var isoDateExpression=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"),months=[0,31,59,90,120,151,181,212,243,273,304,334,365];for(var key in NativeDate)Date[key]=NativeDate[key];return Date.now=NativeDate.now,Date.UTC=NativeDate.UTC,Date.prototype=NativeDate.prototype,Date.prototype.constructor=Date,Date.parse=function(string){var match=isoDateExpression.exec(string);if(match){var result,year=Number(match[1]),month=Number(match[2]||1)-1,day=Number(match[3]||1)-1,hour=Number(match[4]||0),minute=Number(match[5]||0),second=Number(match[6]||0),millisecond=Math.floor(1e3*Number(match[7]||0)),offset=!match[4]||match[8]?0:Number(new NativeDate(1970,0)),signOffset="-"===match[9]?1:-1,hourOffset=Number(match[10]||0),minuteOffset=Number(match[11]||0);return hour<(minute>0||second>0||millisecond>0?24:25)&&minute<60&&second<60&&millisecond<1e3&&month>-1&&month<12&&hourOffset<24&&minuteOffset<60&&day>-1&&day=0;)c+=data[i],data[i]=Math.floor(c/n),c=c%n*base}function toString(){for(var i=size,s="";--i>=0;)if(""!==s||0===i||0!==data[i]){var t=String(data[i]);""===s?s=t:s+="0000000".slice(0,7-t.length)+t}return s}function pow(x,n,acc){return 0===n?acc:n%2===1?pow(x,n-1,acc*x):pow(x*x,n/2,acc)}function log(x){for(var n=0;x>=4096;)n+=12,x/=4096;for(;x>=2;)n+=1,x/=2;return n}var base,size,data;base=1e7,size=6,data=[0,0,0,0,0,0],Number.prototype.toFixed=function(fractionDigits){var f,x,s,m,e,z,j,k;if(f=Number(fractionDigits),f=f!==f?0:Math.floor(f),f<0||f>20)throw new RangeError("Number.toFixed called with invalid number of decimals");if(x=Number(this),x!==x)return"NaN";if(x<=-1e21||x>=1e21)return String(x);if(s="",x<0&&(s="-",x=-x),m="0",x>1e-21)if(e=log(x*pow(2,69,1))-69,z=e<0?x*pow(2,-e,1):x/pow(2,e,1),z*=4503599627370496,e=52-e,e>0){for(multiply(0,z),j=f;j>=7;)multiply(1e7,0),j-=7;for(multiply(pow(10,j,1),0),j=e-1;j>=23;)divide(1<<23),j-=23;divide(1<0?(k=m.length,m=k<=f?s+"0.0000000000000000000".slice(0,f-k+2)+m:s+m.slice(0,k-f)+"."+m.slice(k-f)):m=s+m,m}}();var string_split=String.prototype.split;if(2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||"t"==="tesst".split(/(s)*/)[1]||0==="".split(/.?/).length||".".split(/()()/).length>1?!function(){var compliantExecNpcg=void 0===/()??/.exec("")[1];String.prototype.split=function(separator,limit){var string=this;if(void 0===separator&&0===limit)return[];if("[object RegExp]"!==Object.prototype.toString.call(separator))return string_split.apply(this,arguments);var separator2,match,lastIndex,lastLength,output=[],flags=(separator.ignoreCase?"i":"")+(separator.multiline?"m":"")+(separator.extended?"x":"")+(separator.sticky?"y":""),lastLastIndex=0,separator=new RegExp(separator.source,flags+"g");for(string+="",compliantExecNpcg||(separator2=new RegExp("^"+separator.source+"$(?!\\s)",flags)),limit=void 0===limit?-1>>>0:limit>>>0;(match=separator.exec(string))&&(lastIndex=match.index+match[0].length,!(lastIndex>lastLastIndex&&(output.push(string.slice(lastLastIndex,match.index)),!compliantExecNpcg&&match.length>1&&match[0].replace(separator2,function(){for(var i=1;i1&&match.index=limit)));)separator.lastIndex===match.index&&separator.lastIndex++;return lastLastIndex===string.length?!lastLength&&separator.test("")||output.push(""):output.push(string.slice(lastLastIndex)),output.length>limit?output.slice(0,limit):output}}():"0".split(void 0,0).length&&(String.prototype.split=function(separator,limit){return void 0===separator&&0===limit?[]:string_split.apply(this,arguments)}),"".substr&&"b"!=="0b".substr(-1)){var string_substr=String.prototype.substr;String.prototype.substr=function(start,length){return string_substr.call(this,start<0&&(start=this.length+start)<0?0:start,length)}}var ws="\t\n\x0B\f\r   ᠎              \u2028\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=new RegExp("^"+ws+ws+"*"),trimEndRegexp=new RegExp(ws+ws+"*$");String.prototype.trim=function(){if(void 0===this||null===this)throw new TypeError("can't convert "+this+" to object");return String(this).replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can't convert "+o+" to object");return Object(o)}}),function(){var DEBUG=!0;!function(undefined){var window=this||(0,eval)("this"),document=window.document,navigator=window.navigator,jQueryInstance=window.jQuery,JSON=window.JSON;!function(factory){"function"==typeof define&&define.amd?define(["exports","require"],factory):factory("function"==typeof require&&"object"==typeof exports&&"object"==typeof module?module.exports||exports:window.ko={})}(function(koExports,amdRequire){function valuesArePrimitiveAndEqual(a,b){var oldValueIsPrimitive=null===a||typeof a in primitiveTypes;return!!oldValueIsPrimitive&&a===b}function throttle(callback,timeout){var timeoutInstance;return function(){timeoutInstance||(timeoutInstance=setTimeout(function(){timeoutInstance=undefined,callback()},timeout))}}function debounce(callback,timeout){var timeoutInstance;return function(){clearTimeout(timeoutInstance),timeoutInstance=setTimeout(callback,timeout)}}function applyExtenders(requestedExtenders){var target=this;return requestedExtenders&&ko.utils.objectForEach(requestedExtenders,function(key,value){var extenderHandler=ko.extenders[key];"function"==typeof extenderHandler&&(target=extenderHandler(target,value)||target)}),target}function makeEventHandlerShortcut(eventName){ko.bindingHandlers[eventName]={init:function(element,valueAccessor,allBindings,viewModel,bindingContext){var newValueAccessor=function(){var result={};return result[eventName]=valueAccessor(),result};return ko.bindingHandlers.event.init.call(this,element,newValueAccessor,allBindings,viewModel,bindingContext)}}}function makeWithIfBinding(bindingKey,isWith,isNot,makeContextCallback){ko.bindingHandlers[bindingKey]={init:function(element,valueAccessor,allBindings,viewModel,bindingContext){var didDisplayOnLastUpdate,savedNodes;return ko.computed(function(){var dataValue=ko.utils.unwrapObservable(valueAccessor()),shouldDisplay=!isNot!=!dataValue,isFirstRender=!savedNodes,needsRefresh=isFirstRender||isWith||shouldDisplay!==didDisplayOnLastUpdate;needsRefresh&&(isFirstRender&&ko.computedContext.getDependenciesCount()&&(savedNodes=ko.utils.cloneNodes(ko.virtualElements.childNodes(element),!0)),shouldDisplay?(isFirstRender||ko.virtualElements.setDomNodeChildren(element,ko.utils.cloneNodes(savedNodes)),ko.applyBindingsToDescendants(makeContextCallback?makeContextCallback(bindingContext,dataValue):bindingContext,element)):ko.virtualElements.emptyNode(element),didDisplayOnLastUpdate=shouldDisplay)},null,{disposeWhenNodeIsRemoved:element}),{controlsDescendantBindings:!0}}},ko.expressionRewriting.bindingRewriteValidators[bindingKey]=!1,ko.virtualElements.allowedBindings[bindingKey]=!0}var ko="undefined"!=typeof koExports?koExports:{};ko.exportSymbol=function(koPath,object){for(var tokens=koPath.split("."),target=ko,i=0;i",iElems[0];);return version>4?version:undefined}(),isIe6=6===ieVersion,isIe7=7===ieVersion,cssClassNameRegex=/\S+/g;return{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(array,action){for(var i=0,j=array.length;i0?array.splice(index,1):0===index&&array.shift()},arrayGetDistinctValues:function(array){array=array||[];for(var result=[],i=0,j=array.length;i0){for(var insertionPoint=nodesToReplaceArray[0],parent=insertionPoint.parentNode,i=0,j=newNodesArray.length;i1){var current=continuousNodeArray[0],last=continuousNodeArray[continuousNodeArray.length-1];for(continuousNodeArray.length=0;current!==last;)if(continuousNodeArray.push(current),current=current.nextSibling,!current)return;continuousNodeArray.push(last)}}return continuousNodeArray},setOptionNodeSelectionState:function(optionNode,isSelected){ieVersion<7?optionNode.setAttribute("selected",isSelected):optionNode.selected=isSelected},stringTrim:function(string){return null===string||string===undefined?"":string.trim?string.trim():string.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},stringStartsWith:function(string,startsWith){return string=string||"",!(startsWith.length>string.length)&&string.substring(0,startsWith.length)===startsWith},domNodeIsContainedBy:function(node,containedByNode){if(node===containedByNode)return!0;if(11===node.nodeType)return!1;if(containedByNode.contains)return containedByNode.contains(3===node.nodeType?node.parentNode:node);if(containedByNode.compareDocumentPosition)return 16==(16&containedByNode.compareDocumentPosition(node));for(;node&&node!=containedByNode;)node=node.parentNode;return!!node},domNodeIsAttachedToDocument:function(node){return ko.utils.domNodeIsContainedBy(node,node.ownerDocument.documentElement)},anyDomNodeIsAttachedToDocument:function(nodes){return!!ko.utils.arrayFirst(nodes,ko.utils.domNodeIsAttachedToDocument)},tagNameLower:function(element){return element&&element.tagName&&element.tagName.toLowerCase()},registerEventHandler:function(element,eventType,handler){var mustUseAttachEvent=ieVersion&&eventsThatMustBeRegisteredUsingAttachEvent[eventType];if(!mustUseAttachEvent&&jQueryInstance)jQueryInstance(element).bind(eventType,handler);else if(mustUseAttachEvent||"function"!=typeof element.addEventListener){if("undefined"==typeof element.attachEvent)throw new Error("Browser doesn't support addEventListener or attachEvent");var attachEventHandler=function(event){handler.call(element,event)},attachEventName="on"+eventType;element.attachEvent(attachEventName,attachEventHandler),ko.utils.domNodeDisposal.addDisposeCallback(element,function(){element.detachEvent(attachEventName,attachEventHandler)})}else element.addEventListener(eventType,handler,!1)},triggerEvent:function(element,eventType){if(!element||!element.nodeType)throw new Error("element must be a DOM node when calling triggerEvent");var useClickWorkaround=isClickOnCheckableElement(element,eventType);if(jQueryInstance&&!useClickWorkaround)jQueryInstance(element).trigger(eventType);else if("function"==typeof document.createEvent){if("function"!=typeof element.dispatchEvent)throw new Error("The supplied element doesn't support dispatchEvent");var eventCategory=knownEventTypesByEventName[eventType]||"HTMLEvents",event=document.createEvent(eventCategory);event.initEvent(eventType,!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,element),element.dispatchEvent(event)}else if(useClickWorkaround&&element.click)element.click();else{if("undefined"==typeof element.fireEvent)throw new Error("Browser doesn't support triggering events");element.fireEvent("on"+eventType)}},unwrapObservable:function(value){return ko.isObservable(value)?value():value},peekObservable:function(value){return ko.isObservable(value)?value.peek():value},toggleDomNodeCssClass:toggleDomNodeCssClass,setTextContent:function(element,textContent){var value=ko.utils.unwrapObservable(textContent);null!==value&&value!==undefined||(value="");var innerTextNode=ko.virtualElements.firstChild(element);!innerTextNode||3!=innerTextNode.nodeType||ko.virtualElements.nextSibling(innerTextNode)?ko.virtualElements.setDomNodeChildren(element,[element.ownerDocument.createTextNode(value)]):innerTextNode.data=value,ko.utils.forceRefresh(element)},setElementName:function(element,name){if(element.name=name,ieVersion<=7)try{element.mergeAttributes(document.createElement(""),!1)}catch(e){}},forceRefresh:function(node){if(ieVersion>=9){var elem=1==node.nodeType?node:node.parentNode;elem.style&&(elem.style.zoom=elem.style.zoom)}},ensureSelectElementIsRenderedCorrectly:function(selectElement){if(ieVersion){var originalWidth=selectElement.style.width;selectElement.style.width=0,selectElement.style.width=originalWidth}},range:function(min,max){min=ko.utils.unwrapObservable(min),max=ko.utils.unwrapObservable(max);for(var result=[],i=min;i<=max;i++)result.push(i);return result},makeArray:function(arrayLikeObject){for(var result=[],i=0,j=arrayLikeObject.length;i=0;i--)isMatchingField(fields[i])&&matches.push(fields[i]);return matches},parseJson:function(jsonString){return"string"==typeof jsonString&&(jsonString=ko.utils.stringTrim(jsonString))?JSON&&JSON.parse?JSON.parse(jsonString):new Function("return "+jsonString)():null},stringifyJson:function(data,replacer,space){if(!JSON||!JSON.stringify)throw new Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return JSON.stringify(ko.utils.unwrapObservable(data),replacer,space)},postJson:function(urlOrForm,data,options){options=options||{};var params=options.params||{},includeFields=options.includeFields||this.fieldsIncludedWithJsonPost,url=urlOrForm;if("object"==typeof urlOrForm&&"form"===ko.utils.tagNameLower(urlOrForm)){var originalForm=urlOrForm;url=originalForm.action;for(var i=includeFields.length-1;i>=0;i--)for(var fields=ko.utils.getFormFields(originalForm,includeFields[i]),j=fields.length-1;j>=0;j--)params[fields[j].name]=fields[j].value}data=ko.utils.unwrapObservable(data);var form=document.createElement("form");form.style.display="none",form.action=url,form.method="post";for(var key in data){var input=document.createElement("input");input.type="hidden",input.name=key,input.value=ko.utils.stringifyJson(ko.utils.unwrapObservable(data[key])),form.appendChild(input)}objectForEach(params,function(key,value){var input=document.createElement("input");input.type="hidden",input.name=key,input.value=value,form.appendChild(input)}),document.body.appendChild(form),options.submitter?options.submitter(form):form.submit(),setTimeout(function(){form.parentNode.removeChild(form)},0)}}}(),ko.exportSymbol("utils",ko.utils),ko.exportSymbol("utils.arrayForEach",ko.utils.arrayForEach),ko.exportSymbol("utils.arrayFirst",ko.utils.arrayFirst),ko.exportSymbol("utils.arrayFilter",ko.utils.arrayFilter),ko.exportSymbol("utils.arrayGetDistinctValues",ko.utils.arrayGetDistinctValues),ko.exportSymbol("utils.arrayIndexOf",ko.utils.arrayIndexOf),ko.exportSymbol("utils.arrayMap",ko.utils.arrayMap),ko.exportSymbol("utils.arrayPushAll",ko.utils.arrayPushAll),ko.exportSymbol("utils.arrayRemoveItem",ko.utils.arrayRemoveItem),ko.exportSymbol("utils.extend",ko.utils.extend),ko.exportSymbol("utils.fieldsIncludedWithJsonPost",ko.utils.fieldsIncludedWithJsonPost),ko.exportSymbol("utils.getFormFields",ko.utils.getFormFields),ko.exportSymbol("utils.peekObservable",ko.utils.peekObservable),ko.exportSymbol("utils.postJson",ko.utils.postJson),ko.exportSymbol("utils.parseJson",ko.utils.parseJson),ko.exportSymbol("utils.registerEventHandler",ko.utils.registerEventHandler),ko.exportSymbol("utils.stringifyJson",ko.utils.stringifyJson),ko.exportSymbol("utils.range",ko.utils.range),ko.exportSymbol("utils.toggleDomNodeCssClass",ko.utils.toggleDomNodeCssClass),ko.exportSymbol("utils.triggerEvent",ko.utils.triggerEvent),ko.exportSymbol("utils.unwrapObservable",ko.utils.unwrapObservable),ko.exportSymbol("utils.objectForEach",ko.utils.objectForEach),ko.exportSymbol("utils.addOrRemoveItem",ko.utils.addOrRemoveItem),ko.exportSymbol("utils.setTextContent",ko.utils.setTextContent),ko.exportSymbol("unwrap",ko.utils.unwrapObservable),Function.prototype.bind||(Function.prototype.bind=function(object){var originalFunction=this;if(1===arguments.length)return function(){return originalFunction.apply(object,arguments)};var partialArgs=Array.prototype.slice.call(arguments,1);return function(){var args=partialArgs.slice(0);return args.push.apply(args,arguments),originalFunction.apply(object,args)}}),ko.utils.domData=new function(){function getAll(node,createIfNotFound){var dataStoreKey=node[dataStoreKeyExpandoPropertyName],hasExistingDataStore=dataStoreKey&&"null"!==dataStoreKey&&dataStore[dataStoreKey];if(!hasExistingDataStore){if(!createIfNotFound)return undefined;dataStoreKey=node[dataStoreKeyExpandoPropertyName]="ko"+uniqueId++,dataStore[dataStoreKey]={}}return dataStore[dataStoreKey]}var uniqueId=0,dataStoreKeyExpandoPropertyName="__ko__"+(new Date).getTime(),dataStore={};return{get:function(node,key){var allDataForNode=getAll(node,!1);return allDataForNode===undefined?undefined:allDataForNode[key]},set:function(node,key,value){if(value!==undefined||getAll(node,!1)!==undefined){var allDataForNode=getAll(node,!0); allDataForNode[key]=value}},clear:function(node){var dataStoreKey=node[dataStoreKeyExpandoPropertyName];return!!dataStoreKey&&(delete dataStore[dataStoreKey],node[dataStoreKeyExpandoPropertyName]=null,!0)},nextKey:function(){return uniqueId++ +dataStoreKeyExpandoPropertyName}}},ko.exportSymbol("utils.domData",ko.utils.domData),ko.exportSymbol("utils.domData.clear",ko.utils.domData.clear),ko.utils.domNodeDisposal=new function(){function getDisposeCallbacksCollection(node,createIfNotFound){var allDisposeCallbacks=ko.utils.domData.get(node,domDataKey);return allDisposeCallbacks===undefined&&createIfNotFound&&(allDisposeCallbacks=[],ko.utils.domData.set(node,domDataKey,allDisposeCallbacks)),allDisposeCallbacks}function destroyCallbacksCollection(node){ko.utils.domData.set(node,domDataKey,undefined)}function cleanSingleNode(node){var callbacks=getDisposeCallbacksCollection(node,!1);if(callbacks){callbacks=callbacks.slice(0);for(var i=0;i",""]||!tags.indexOf("",""]||(!tags.indexOf("",""]||[0,"",""],markup="ignored
"+wrap[1]+html+wrap[2]+"
";for("function"==typeof windowContext.innerShiv?div.appendChild(windowContext.innerShiv(markup)):div.innerHTML=markup;wrap[0]--;)div=div.lastChild;return ko.utils.makeArray(div.lastChild.childNodes)}function jQueryHtmlParse(html,documentContext){if(jQueryInstance.parseHTML)return jQueryInstance.parseHTML(html,documentContext)||[];var elems=jQueryInstance.clean([html],documentContext);if(elems&&elems[0]){for(var elem=elems[0];elem.parentNode&&11!==elem.parentNode.nodeType;)elem=elem.parentNode;elem.parentNode&&elem.parentNode.removeChild(elem)}return elems}ko.utils.parseHtmlFragment=function(html,documentContext){return jQueryInstance?jQueryHtmlParse(html,documentContext):simpleHtmlParse(html,documentContext)},ko.utils.setHtml=function(node,html){if(ko.utils.emptyDomNode(node),html=ko.utils.unwrapObservable(html),null!==html&&html!==undefined)if("string"!=typeof html&&(html=html.toString()),jQueryInstance)jQueryInstance(node).html(html);else for(var parsedNodes=ko.utils.parseHtmlFragment(html,node.ownerDocument),i=0;i"},unmemoize:function(memoId,callbackParams){var callback=memos[memoId];if(callback===undefined)throw new Error("Couldn't find any memo with ID "+memoId+". Perhaps it's already been unmemoized.");try{return callback.apply(null,callbackParams||[]),!0}finally{delete memos[memoId]}},unmemoizeDomNodeAndDescendants:function(domNode,extraCallbackParamsArray){var memos=[];findMemoNodes(domNode,memos);for(var i=0,j=memos.length;i0?(observable.isDifferent(_latestValue,arguments[0])&&(observable.valueWillMutate(),_latestValue=arguments[0],DEBUG&&(observable._latestValue=_latestValue),observable.valueHasMutated()),this):(ko.dependencyDetection.registerDependency(observable),_latestValue)}var _latestValue=initialValue;return ko.subscribable.call(observable),ko.utils.setPrototypeOfOrExtend(observable,ko.observable.fn),DEBUG&&(observable._latestValue=_latestValue),observable.peek=function(){return _latestValue},observable.valueHasMutated=function(){observable.notifySubscribers(_latestValue)},observable.valueWillMutate=function(){observable.notifySubscribers(_latestValue,"beforeChange")},ko.exportProperty(observable,"peek",observable.peek),ko.exportProperty(observable,"valueHasMutated",observable.valueHasMutated),ko.exportProperty(observable,"valueWillMutate",observable.valueWillMutate),observable},ko.observable.fn={equalityComparer:valuesArePrimitiveAndEqual};var protoProperty=ko.observable.protoProperty="__ko_proto__";ko.observable.fn[protoProperty]=ko.observable,ko.utils.canSetPrototype&&ko.utils.setPrototypeOf(ko.observable.fn,ko.subscribable.fn),ko.hasPrototype=function(instance,prototype){return null!==instance&&instance!==undefined&&instance[protoProperty]!==undefined&&(instance[protoProperty]===prototype||ko.hasPrototype(instance[protoProperty],prototype))},ko.isObservable=function(instance){return ko.hasPrototype(instance,ko.observable)},ko.isWriteableObservable=function(instance){return"function"==typeof instance&&instance[protoProperty]===ko.observable||!("function"!=typeof instance||instance[protoProperty]!==ko.dependentObservable||!instance.hasWriteFunction)},ko.exportSymbol("observable",ko.observable),ko.exportSymbol("isObservable",ko.isObservable),ko.exportSymbol("isWriteableObservable",ko.isWriteableObservable),ko.exportSymbol("isWritableObservable",ko.isWriteableObservable),ko.observableArray=function(initialValues){if(initialValues=initialValues||[],"object"!=typeof initialValues||!("length"in initialValues))throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");var result=ko.observable(initialValues);return ko.utils.setPrototypeOfOrExtend(result,ko.observableArray.fn),result.extend({trackArrayChanges:!0})},ko.observableArray.fn={remove:function(valueOrPredicate){for(var underlyingArray=this.peek(),removedValues=[],predicate="function"!=typeof valueOrPredicate||ko.isObservable(valueOrPredicate)?function(value){return value===valueOrPredicate}:valueOrPredicate,i=0;i=0}):[]},destroy:function(valueOrPredicate){var underlyingArray=this.peek(),predicate="function"!=typeof valueOrPredicate||ko.isObservable(valueOrPredicate)?function(value){return value===valueOrPredicate}:valueOrPredicate;this.valueWillMutate();for(var i=underlyingArray.length-1;i>=0;i--){var value=underlyingArray[i];predicate(value)&&(underlyingArray[i]._destroy=!0)}this.valueHasMutated()},destroyAll:function(arrayOfValues){return arrayOfValues===undefined?this.destroy(function(){return!0}):arrayOfValues?this.destroy(function(value){return ko.utils.arrayIndexOf(arrayOfValues,value)>=0}):[]},indexOf:function(item){var underlyingArray=this();return ko.utils.arrayIndexOf(underlyingArray,item)},replace:function(oldItem,newItem){var index=this.indexOf(oldItem);index>=0&&(this.valueWillMutate(),this.peek()[index]=newItem,this.valueHasMutated())}},ko.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(methodName){ko.observableArray.fn[methodName]=function(){var underlyingArray=this.peek();this.valueWillMutate(),this.cacheDiffForKnownOperation(underlyingArray,methodName,arguments);var methodCallResult=underlyingArray[methodName].apply(underlyingArray,arguments);return this.valueHasMutated(),methodCallResult}}),ko.utils.arrayForEach(["slice"],function(methodName){ko.observableArray.fn[methodName]=function(){var underlyingArray=this();return underlyingArray[methodName].apply(underlyingArray,arguments)}}),ko.utils.canSetPrototype&&ko.utils.setPrototypeOf(ko.observableArray.fn,ko.observable.fn),ko.exportSymbol("observableArray",ko.observableArray);var arrayChangeEventName="arrayChange";ko.extenders.trackArrayChanges=function(target){function trackChanges(){if(!trackingChanges){trackingChanges=!0;var underlyingNotifySubscribersFunction=target.notifySubscribers;target.notifySubscribers=function(valueToNotify,event){return event&&event!==defaultEvent||++pendingNotifications,underlyingNotifySubscribersFunction.apply(this,arguments)};var previousContents=[].concat(target.peek()||[]);cachedDiff=null,arrayChangeSubscription=target.subscribe(function(currentContents){if(currentContents=[].concat(currentContents||[]),target.hasSubscriptionsForEvent(arrayChangeEventName))var changes=getChanges(previousContents,currentContents);previousContents=currentContents,cachedDiff=null,pendingNotifications=0,changes&&changes.length&&target.notifySubscribers(changes,arrayChangeEventName)})}}function getChanges(previousContents,currentContents){return(!cachedDiff||pendingNotifications>1)&&(cachedDiff=ko.utils.compareArrays(previousContents,currentContents,{sparse:!0})),cachedDiff}if(!target.cacheDiffForKnownOperation){var arrayChangeSubscription,trackingChanges=!1,cachedDiff=null,pendingNotifications=0,underlyingBeforeSubscriptionAddFunction=target.beforeSubscriptionAdd,underlyingAfterSubscriptionRemoveFunction=target.afterSubscriptionRemove;target.beforeSubscriptionAdd=function(event){underlyingBeforeSubscriptionAddFunction&&underlyingBeforeSubscriptionAddFunction.call(target,event),event===arrayChangeEventName&&trackChanges()},target.afterSubscriptionRemove=function(event){underlyingAfterSubscriptionRemoveFunction&&underlyingAfterSubscriptionRemoveFunction.call(target,event),event!==arrayChangeEventName||target.hasSubscriptionsForEvent(arrayChangeEventName)||(arrayChangeSubscription.dispose(),trackingChanges=!1)},target.cacheDiffForKnownOperation=function(rawArray,operationName,args){function pushDiff(status,value,index){return diff[diff.length]={status:status,value:value,index:index}}if(trackingChanges&&!pendingNotifications){var diff=[],arrayLength=rawArray.length,argsLength=args.length,offset=0;switch(operationName){case"push":offset=arrayLength;case"unshift":for(var index=0;index=0?(clearTimeout(evaluationTimeoutInstance),evaluationTimeoutInstance=setTimeout(function(){evaluateImmediate(!0)},throttleEvaluationTimeout)):dependentObservable._evalRateLimited?dependentObservable._evalRateLimited():evaluateImmediate(!0)}function evaluateImmediate(notifyChange){if(!_isBeingEvaluated&&!_isDisposed){if(disposeWhen&&disposeWhen()){if(!_suppressDisposalUntilDisposeWhenReturnsFalse)return void dispose()}else _suppressDisposalUntilDisposeWhenReturnsFalse=!1;_isBeingEvaluated=!0;try{var disposalCandidates=dependencyTracking,disposalCount=_dependenciesCount,isInitial=pure?undefined:!_dependenciesCount;ko.dependencyDetection.begin({callback:function(subscribable,id){_isDisposed||(disposalCount&&disposalCandidates[id]?(addDependencyTracking(id,subscribable,disposalCandidates[id]),delete disposalCandidates[id],--disposalCount):dependencyTracking[id]||addDependencyTracking(id,subscribable,isSleeping?{_target:subscribable}:subscribable.subscribe(evaluatePossiblyAsync)))},computed:dependentObservable,isInitial:isInitial}),dependencyTracking={},_dependenciesCount=0;try{var newValue=evaluatorFunctionTarget?readFunction.call(evaluatorFunctionTarget):readFunction()}finally{ko.dependencyDetection.end(),disposalCount&&!isSleeping&&ko.utils.objectForEach(disposalCandidates,function(id,toDispose){toDispose.dispose&&toDispose.dispose()}),_needsEvaluation=!1}dependentObservable.isDifferent(_latestValue,newValue)&&(isSleeping||notify(_latestValue,"beforeChange"),_latestValue=newValue,DEBUG&&(dependentObservable._latestValue=_latestValue),isSleeping?dependentObservable.updateVersion():notifyChange&¬ify(_latestValue)),isInitial&¬ify(_latestValue,"awake")}finally{_isBeingEvaluated=!1}_dependenciesCount||dispose()}}function dependentObservable(){if(arguments.length>0){if("function"!=typeof writeFunction)throw new Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return writeFunction.apply(evaluatorFunctionTarget,arguments),this}return ko.dependencyDetection.registerDependency(dependentObservable),(_needsEvaluation||isSleeping&&haveDependenciesChanged())&&evaluateImmediate(),_latestValue}function peek(){return(_needsEvaluation&&!_dependenciesCount||isSleeping&&haveDependenciesChanged())&&evaluateImmediate(),_latestValue}function isActive(){return _needsEvaluation||_dependenciesCount>0}function notify(value,event){dependentObservable.notifySubscribers(value,event)}var _latestValue,_needsEvaluation=!0,_isBeingEvaluated=!1,_suppressDisposalUntilDisposeWhenReturnsFalse=!1,_isDisposed=!1,readFunction=evaluatorFunctionOrOptions,pure=!1,isSleeping=!1;if(readFunction&&"object"==typeof readFunction?(options=readFunction,readFunction=options.read):(options=options||{},readFunction||(readFunction=options.read)),"function"!=typeof readFunction)throw new Error("Pass a function that returns the value of the ko.computed");var writeFunction=options.write,disposeWhenNodeIsRemoved=options.disposeWhenNodeIsRemoved||options.disposeWhenNodeIsRemoved||null,disposeWhenOption=options.disposeWhen||options.disposeWhen,disposeWhen=disposeWhenOption,dispose=disposeComputed,dependencyTracking={},_dependenciesCount=0,evaluationTimeoutInstance=null;evaluatorFunctionTarget||(evaluatorFunctionTarget=options.owner),ko.subscribable.call(dependentObservable),ko.utils.setPrototypeOfOrExtend(dependentObservable,ko.dependentObservable.fn),dependentObservable.peek=peek,dependentObservable.getDependenciesCount=function(){return _dependenciesCount},dependentObservable.hasWriteFunction="function"==typeof writeFunction,dependentObservable.dispose=function(){dispose()},dependentObservable.isActive=isActive;var originalLimit=dependentObservable.limit;return dependentObservable.limit=function(limitFunction){originalLimit.call(dependentObservable,limitFunction),dependentObservable._evalRateLimited=function(){dependentObservable._rateLimitedBeforeChange(_latestValue),_needsEvaluation=!0,dependentObservable._rateLimitedChange(dependentObservable)}},options.pure?(pure=!0,isSleeping=!0,dependentObservable.beforeSubscriptionAdd=function(event){if(!_isDisposed&&isSleeping&&"change"==event){if(isSleeping=!1,_needsEvaluation||haveDependenciesChanged())dependencyTracking=null,_dependenciesCount=0,_needsEvaluation=!0,evaluateImmediate();else{var dependeciesOrder=[];ko.utils.objectForEach(dependencyTracking,function(id,dependency){dependeciesOrder[dependency._order]=id}),ko.utils.arrayForEach(dependeciesOrder,function(id,order){var dependency=dependencyTracking[id],subscription=dependency._target.subscribe(evaluatePossiblyAsync);subscription._order=order,subscription._version=dependency._version,dependencyTracking[id]=subscription})}_isDisposed||notify(_latestValue,"awake")}},dependentObservable.afterSubscriptionRemove=function(event){_isDisposed||"change"!=event||dependentObservable.hasSubscriptionsForEvent("change")||(ko.utils.objectForEach(dependencyTracking,function(id,dependency){dependency.dispose&&(dependencyTracking[id]={_target:dependency._target,_order:dependency._order,_version:dependency._version},dependency.dispose())}),isSleeping=!0,notify(undefined,"asleep"))},dependentObservable._originalGetVersion=dependentObservable.getVersion,dependentObservable.getVersion=function(){return isSleeping&&(_needsEvaluation||haveDependenciesChanged())&&evaluateImmediate(),dependentObservable._originalGetVersion()}):options.deferEvaluation&&(dependentObservable.beforeSubscriptionAdd=function(event){"change"!=event&&"beforeChange"!=event||peek()}),ko.exportProperty(dependentObservable,"peek",dependentObservable.peek),ko.exportProperty(dependentObservable,"dispose",dependentObservable.dispose),ko.exportProperty(dependentObservable,"isActive",dependentObservable.isActive),ko.exportProperty(dependentObservable,"getDependenciesCount",dependentObservable.getDependenciesCount),disposeWhenNodeIsRemoved&&(_suppressDisposalUntilDisposeWhenReturnsFalse=!0,disposeWhenNodeIsRemoved.nodeType&&(disposeWhen=function(){return!ko.utils.domNodeIsAttachedToDocument(disposeWhenNodeIsRemoved)||disposeWhenOption&&disposeWhenOption()})),isSleeping||options.deferEvaluation||evaluateImmediate(),disposeWhenNodeIsRemoved&&isActive()&&disposeWhenNodeIsRemoved.nodeType&&(dispose=function(){ko.utils.domNodeDisposal.removeDisposeCallback(disposeWhenNodeIsRemoved,dispose),disposeComputed()},ko.utils.domNodeDisposal.addDisposeCallback(disposeWhenNodeIsRemoved,dispose)),dependentObservable},ko.isComputed=function(instance){return ko.hasPrototype(instance,ko.dependentObservable)};var protoProp=ko.observable.protoProperty;ko.dependentObservable[protoProp]=ko.observable,ko.dependentObservable.fn={equalityComparer:valuesArePrimitiveAndEqual},ko.dependentObservable.fn[protoProp]=ko.dependentObservable,ko.utils.canSetPrototype&&ko.utils.setPrototypeOf(ko.dependentObservable.fn,ko.subscribable.fn),ko.exportSymbol("dependentObservable",ko.dependentObservable),ko.exportSymbol("computed",ko.dependentObservable),ko.exportSymbol("isComputed",ko.isComputed),ko.pureComputed=function(evaluatorFunctionOrOptions,evaluatorFunctionTarget){return"function"==typeof evaluatorFunctionOrOptions?ko.computed(evaluatorFunctionOrOptions,evaluatorFunctionTarget,{pure:!0}):(evaluatorFunctionOrOptions=ko.utils.extend({},evaluatorFunctionOrOptions),evaluatorFunctionOrOptions.pure=!0,ko.computed(evaluatorFunctionOrOptions,evaluatorFunctionTarget))},ko.exportSymbol("pureComputed",ko.pureComputed),function(){function mapJsObjectGraph(rootObject,mapInputCallback,visitedObjects){visitedObjects=visitedObjects||new objectLookup,rootObject=mapInputCallback(rootObject);var canHaveProperties=!("object"!=typeof rootObject||null===rootObject||rootObject===undefined||rootObject instanceof Date||rootObject instanceof String||rootObject instanceof Number||rootObject instanceof Boolean);if(!canHaveProperties)return rootObject;var outputProperties=rootObject instanceof Array?[]:{};return visitedObjects.save(rootObject,outputProperties),visitPropertiesOrArrayEntries(rootObject,function(indexer){var propertyValue=mapInputCallback(rootObject[indexer]);switch(typeof propertyValue){case"boolean":case"number":case"string":case"function":outputProperties[indexer]=propertyValue;break;case"object":case"undefined":var previouslyMappedValue=visitedObjects.get(propertyValue);outputProperties[indexer]=previouslyMappedValue!==undefined?previouslyMappedValue:mapJsObjectGraph(propertyValue,mapInputCallback,visitedObjects)}}),outputProperties}function visitPropertiesOrArrayEntries(rootObject,visitorCallback){if(rootObject instanceof Array){for(var i=0;i=0?this.values[existingIndex]=value:(this.keys.push(key),this.values.push(value))},get:function(key){var existingIndex=ko.utils.arrayIndexOf(this.keys,key);return existingIndex>=0?this.values[existingIndex]:undefined}}}(),ko.exportSymbol("toJS",ko.toJS),ko.exportSymbol("toJSON",ko.toJSON),function(){var hasDomDataExpandoProperty="__ko__hasDomDataOptionValue__";ko.selectExtensions={readValue:function(element){switch(ko.utils.tagNameLower(element)){case"option":return element[hasDomDataExpandoProperty]===!0?ko.utils.domData.get(element,ko.bindingHandlers.options.optionValueDomDataKey):ko.utils.ieVersion<=7?element.getAttributeNode("value")&&element.getAttributeNode("value").specified?element.value:element.text:element.value;case"select":return element.selectedIndex>=0?ko.selectExtensions.readValue(element.options[element.selectedIndex]):undefined;default:return element.value}},writeValue:function(element,value,allowUnset){switch(ko.utils.tagNameLower(element)){case"option":switch(typeof value){case"string":ko.utils.domData.set(element,ko.bindingHandlers.options.optionValueDomDataKey,undefined),hasDomDataExpandoProperty in element&&delete element[hasDomDataExpandoProperty],element.value=value;break;default:ko.utils.domData.set(element,ko.bindingHandlers.options.optionValueDomDataKey,value),element[hasDomDataExpandoProperty]=!0,element.value="number"==typeof value?value:""}break;case"select":""!==value&&null!==value||(value=undefined);for(var optionValue,selection=-1,i=0,n=element.options.length;i=0||value===undefined&&element.size>1)&&(element.selectedIndex=selection);break;default:null!==value&&value!==undefined||(value=""),element.value=value}}}}(),ko.exportSymbol("selectExtensions",ko.selectExtensions),ko.exportSymbol("selectExtensions.readValue",ko.selectExtensions.readValue),ko.exportSymbol("selectExtensions.writeValue",ko.selectExtensions.writeValue),ko.expressionRewriting=function(){function getWriteableValue(expression){if(ko.utils.arrayIndexOf(javaScriptReservedWords,expression)>=0)return!1;var match=expression.match(javaScriptAssignmentTarget);return null!==match&&(match[1]?"Object("+match[1]+")"+match[2]:expression)}function parseObjectLiteral(objectLiteralString){var str=ko.utils.stringTrim(objectLiteralString);123===str.charCodeAt(0)&&(str=str.slice(1,-1));var key,result=[],toks=str.match(bindingToken),values=[],depth=0;if(toks){toks.push(",");for(var tok,i=0;tok=toks[i];++i){var c=tok.charCodeAt(0);if(44===c){if(depth<=0){result.push(key&&values.length?{key:key,value:values.join("")}:{unknown:key||values.join("")}),key=depth=0,values=[];continue}}else if(58===c){if(!depth&&!key&&1===values.length){key=values.pop();continue}}else if(47===c&&i&&tok.length>1){var match=toks[i-1].match(divisionLookBehind);match&&!keywordRegexLookBehind[match[0]]&&(str=str.substr(str.indexOf(tok)+1),toks=str.match(bindingToken),toks.push(","),i=-1,tok="/")}else 40===c||123===c||91===c?++depth:41===c||125===c||93===c?--depth:key||values.length||34!==c&&39!==c||(tok=tok.slice(1,-1));values.push(tok)}}return result}function preProcessBindings(bindingsStringOrKeyValueArray,bindingOptions){function processKeyValue(key,val){function callPreprocessHook(obj){return!obj||!obj.preprocess||(val=obj.preprocess(val,key,processKeyValue))}var writableVal;if(!bindingParams){if(!callPreprocessHook(ko.getBindingHandler(key)))return;twoWayBindings[key]&&(writableVal=getWriteableValue(val))&&propertyAccessorResultStrings.push("'"+key+"':function(_z){"+writableVal+"=_z}")}makeValueAccessors&&(val="function(){return "+val+" }"),resultStrings.push("'"+key+"':"+val)}bindingOptions=bindingOptions||{};var resultStrings=[],propertyAccessorResultStrings=[],makeValueAccessors=bindingOptions.valueAccessors,bindingParams=bindingOptions.bindingParams,keyValueArray="string"==typeof bindingsStringOrKeyValueArray?parseObjectLiteral(bindingsStringOrKeyValueArray):bindingsStringOrKeyValueArray;return ko.utils.arrayForEach(keyValueArray,function(keyValue){processKeyValue(keyValue.key||keyValue.unknown,keyValue.value)}),propertyAccessorResultStrings.length&&processKeyValue("_ko_property_writers","{"+propertyAccessorResultStrings.join(",")+" }"),resultStrings.join(",")}var javaScriptReservedWords=["true","false","null","undefined"],javaScriptAssignmentTarget=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,stringDouble='"(?:[^"\\\\]|\\\\.)*"',stringSingle="'(?:[^'\\\\]|\\\\.)*'",stringRegexp="/(?:[^/\\\\]|\\\\.)*/w*",specials=",\"'{}()/:[\\]",everyThingElse="[^\\s:,/][^"+specials+"]*[^\\s"+specials+"]",oneNotSpace="[^\\s]",bindingToken=RegExp(stringDouble+"|"+stringSingle+"|"+stringRegexp+"|"+everyThingElse+"|"+oneNotSpace,"g"),divisionLookBehind=/[\])"'A-Za-z0-9_$]+$/,keywordRegexLookBehind={"in":1,"return":1,"typeof":1},twoWayBindings={};return{bindingRewriteValidators:[],twoWayBindings:twoWayBindings,parseObjectLiteral:parseObjectLiteral,preProcessBindings:preProcessBindings,keyValueArrayContainsKey:function(keyValueArray,key){for(var i=0;i0?allVirtualChildren[allVirtualChildren.length-1].nextSibling:startComment.nextSibling:null}function getUnbalancedChildTags(node){var childNode=node.firstChild,captureRemaining=null;if(childNode)do if(captureRemaining)captureRemaining.push(childNode);else if(isStartComment(childNode)){var matchingEndComment=getMatchingEndComment(childNode,!0);matchingEndComment?childNode=matchingEndComment:captureRemaining=[childNode]}else isEndComment(childNode)&&(captureRemaining=[childNode]);while(childNode=childNode.nextSibling);return captureRemaining}var commentNodesHaveTextProperty=document&&""===document.createComment("test").text,startCommentRegex=commentNodesHaveTextProperty?/^$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,endCommentRegex=commentNodesHaveTextProperty?/^$/:/^\s*\/ko\s*$/,htmlTagsWithOptionallyClosingChildren={ul:!0,ol:!0};ko.virtualElements={allowedBindings:{},childNodes:function(node){return isStartComment(node)?getVirtualChildren(node):node.childNodes},emptyNode:function(node){if(isStartComment(node))for(var virtualChildren=ko.virtualElements.childNodes(node),i=0,j=virtualChildren.length;i=0:isCheckbox?element.checked=modelValue:element.checked=checkedValue()===modelValue}var checkedValue=ko.pureComputed(function(){return allBindings.has("checkedValue")?ko.utils.unwrapObservable(allBindings.get("checkedValue")):allBindings.has("value")?ko.utils.unwrapObservable(allBindings.get("value")):element.value}),isCheckbox="checkbox"==element.type,isRadio="radio"==element.type;if(isCheckbox||isRadio){var isValueArray=isCheckbox&&ko.utils.unwrapObservable(valueAccessor())instanceof Array,oldElemValue=isValueArray?checkedValue():undefined,useCheckedValue=isRadio||isValueArray;isRadio&&!element.name&&ko.bindingHandlers.uniqueName.init(element,function(){return!0}),ko.computed(updateModel,null,{disposeWhenNodeIsRemoved:element}),ko.utils.registerEventHandler(element,"click",updateModel),ko.computed(updateView,null,{disposeWhenNodeIsRemoved:element})}}},ko.expressionRewriting.twoWayBindings.checked=!0,ko.bindingHandlers.checkedValue={update:function(element,valueAccessor){element.value=ko.utils.unwrapObservable(valueAccessor())}}}();var classesWrittenByBindingKey="__ko__cssValue";ko.bindingHandlers.css={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor());null!==value&&"object"==typeof value?ko.utils.objectForEach(value,function(className,shouldHaveClass){shouldHaveClass=ko.utils.unwrapObservable(shouldHaveClass),ko.utils.toggleDomNodeCssClass(element,className,shouldHaveClass)}):(value=String(value||""),ko.utils.toggleDomNodeCssClass(element,element[classesWrittenByBindingKey],!1),element[classesWrittenByBindingKey]=value,ko.utils.toggleDomNodeCssClass(element,value,!0))}},ko.bindingHandlers.enable={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor());value&&element.disabled?element.removeAttribute("disabled"):value||element.disabled||(element.disabled=!0)}},ko.bindingHandlers.disable={update:function(element,valueAccessor){ko.bindingHandlers.enable.update(element,function(){return!ko.utils.unwrapObservable(valueAccessor())})}},ko.bindingHandlers.event={init:function(element,valueAccessor,allBindings,viewModel,bindingContext){var eventsToHandle=valueAccessor()||{};ko.utils.objectForEach(eventsToHandle,function(eventName){"string"==typeof eventName&&ko.utils.registerEventHandler(element,eventName,function(event){var handlerReturnValue,handlerFunction=valueAccessor()[eventName];if(handlerFunction){try{var argsForHandler=ko.utils.makeArray(arguments);viewModel=bindingContext.$data,argsForHandler.unshift(viewModel),handlerReturnValue=handlerFunction.apply(viewModel,argsForHandler)}finally{handlerReturnValue!==!0&&(event.preventDefault?event.preventDefault():event.returnValue=!1)}var bubble=allBindings.get(eventName+"Bubble")!==!1;bubble||(event.cancelBubble=!0,event.stopPropagation&&event.stopPropagation())}})})}},ko.bindingHandlers.foreach={makeTemplateValueAccessor:function(valueAccessor){return function(){var modelValue=valueAccessor(),unwrappedValue=ko.utils.peekObservable(modelValue);return unwrappedValue&&"number"!=typeof unwrappedValue.length?(ko.utils.unwrapObservable(modelValue),{foreach:unwrappedValue.data,as:unwrappedValue.as,includeDestroyed:unwrappedValue.includeDestroyed,afterAdd:unwrappedValue.afterAdd,beforeRemove:unwrappedValue.beforeRemove,afterRender:unwrappedValue.afterRender,beforeMove:unwrappedValue.beforeMove,afterMove:unwrappedValue.afterMove,templateEngine:ko.nativeTemplateEngine.instance}):{foreach:modelValue,templateEngine:ko.nativeTemplateEngine.instance}}},init:function(element,valueAccessor,allBindings,viewModel,bindingContext){return ko.bindingHandlers.template.init(element,ko.bindingHandlers.foreach.makeTemplateValueAccessor(valueAccessor))},update:function(element,valueAccessor,allBindings,viewModel,bindingContext){return ko.bindingHandlers.template.update(element,ko.bindingHandlers.foreach.makeTemplateValueAccessor(valueAccessor),allBindings,viewModel,bindingContext)}},ko.expressionRewriting.bindingRewriteValidators.foreach=!1,ko.virtualElements.allowedBindings.foreach=!0;var hasfocusUpdatingProperty="__ko_hasfocusUpdating",hasfocusLastValue="__ko_hasfocusLastValue";ko.bindingHandlers.hasfocus={init:function(element,valueAccessor,allBindings){var handleElementFocusChange=function(isFocused){element[hasfocusUpdatingProperty]=!0;var ownerDoc=element.ownerDocument;if("activeElement"in ownerDoc){var active;try{active=ownerDoc.activeElement}catch(e){active=ownerDoc.body}isFocused=active===element}var modelValue=valueAccessor();ko.expressionRewriting.writeValueToProperty(modelValue,allBindings,"hasfocus",isFocused,!0),element[hasfocusLastValue]=isFocused,element[hasfocusUpdatingProperty]=!1},handleElementFocusIn=handleElementFocusChange.bind(null,!0),handleElementFocusOut=handleElementFocusChange.bind(null,!1);ko.utils.registerEventHandler(element,"focus",handleElementFocusIn),ko.utils.registerEventHandler(element,"focusin",handleElementFocusIn),ko.utils.registerEventHandler(element,"blur",handleElementFocusOut),ko.utils.registerEventHandler(element,"focusout",handleElementFocusOut)},update:function(element,valueAccessor){var value=!!ko.utils.unwrapObservable(valueAccessor());element[hasfocusUpdatingProperty]||element[hasfocusLastValue]===value||(value?element.focus():element.blur(),ko.dependencyDetection.ignore(ko.utils.triggerEvent,null,[element,value?"focusin":"focusout"]))}},ko.expressionRewriting.twoWayBindings.hasfocus=!0,ko.bindingHandlers.hasFocus=ko.bindingHandlers.hasfocus,ko.expressionRewriting.twoWayBindings.hasFocus=!0,ko.bindingHandlers.html={init:function(){return{controlsDescendantBindings:!0}},update:function(element,valueAccessor){ko.utils.setHtml(element,valueAccessor())}},makeWithIfBinding("if"),makeWithIfBinding("ifnot",!1,!0),makeWithIfBinding("with",!0,!1,function(bindingContext,dataValue){return bindingContext.createChildContext(dataValue)});var captionPlaceholder={};ko.bindingHandlers.options={init:function(element){if("select"!==ko.utils.tagNameLower(element))throw new Error("options binding applies only to SELECT elements");for(;element.length>0;)element.remove(0);return{controlsDescendantBindings:!0}},update:function(element,valueAccessor,allBindings){function selectedOptions(){return ko.utils.arrayFilter(element.options,function(node){return node.selected})}function applyToObject(object,predicate,defaultValue){var predicateType=typeof predicate;return"function"==predicateType?predicate(object):"string"==predicateType?object[predicate]:defaultValue}function optionForArrayItem(arrayEntry,index,oldOptions){oldOptions.length&&(previousSelectedValues=!valueAllowUnset&&oldOptions[0].selected?[ko.selectExtensions.readValue(oldOptions[0])]:[],itemUpdate=!0);var option=element.ownerDocument.createElement("option");if(arrayEntry===captionPlaceholder)ko.utils.setTextContent(option,allBindings.get("optionsCaption")),ko.selectExtensions.writeValue(option,undefined);else{var optionValue=applyToObject(arrayEntry,allBindings.get("optionsValue"),arrayEntry);ko.selectExtensions.writeValue(option,ko.utils.unwrapObservable(optionValue));var optionText=applyToObject(arrayEntry,allBindings.get("optionsText"),optionValue);ko.utils.setTextContent(option,optionText)}return[option]}function setSelectionCallback(arrayEntry,newOptions){if(itemUpdate&&valueAllowUnset)ko.selectExtensions.writeValue(element,ko.utils.unwrapObservable(allBindings.get("value")),!0);else if(previousSelectedValues.length){var isSelected=ko.utils.arrayIndexOf(previousSelectedValues,ko.selectExtensions.readValue(newOptions[0]))>=0;ko.utils.setOptionNodeSelectionState(newOptions[0],isSelected),itemUpdate&&!isSelected&&ko.dependencyDetection.ignore(ko.utils.triggerEvent,null,[element,"change"])}}var captionValue,filteredArray,selectWasPreviouslyEmpty=0==element.length,multiple=element.multiple,previousScrollTop=!selectWasPreviouslyEmpty&&multiple?element.scrollTop:null,unwrappedArray=ko.utils.unwrapObservable(valueAccessor()),valueAllowUnset=allBindings.get("valueAllowUnset")&&allBindings.has("value"),includeDestroyed=allBindings.get("optionsIncludeDestroyed"),arrayToDomNodeChildrenOptions={},previousSelectedValues=[];valueAllowUnset||(multiple?previousSelectedValues=ko.utils.arrayMap(selectedOptions(),ko.selectExtensions.readValue):element.selectedIndex>=0&&previousSelectedValues.push(ko.selectExtensions.readValue(element.options[element.selectedIndex]))),unwrappedArray&&("undefined"==typeof unwrappedArray.length&&(unwrappedArray=[unwrappedArray]),filteredArray=ko.utils.arrayFilter(unwrappedArray,function(item){return includeDestroyed||item===undefined||null===item||!ko.utils.unwrapObservable(item._destroy)}),allBindings.has("optionsCaption")&&(captionValue=ko.utils.unwrapObservable(allBindings.get("optionsCaption")),null!==captionValue&&captionValue!==undefined&&filteredArray.unshift(captionPlaceholder)));var itemUpdate=!1;arrayToDomNodeChildrenOptions.beforeRemove=function(option){element.removeChild(option)};var callback=setSelectionCallback;allBindings.has("optionsAfterRender")&&"function"==typeof allBindings.get("optionsAfterRender")&&(callback=function(arrayEntry,newOptions){setSelectionCallback(arrayEntry,newOptions),ko.dependencyDetection.ignore(allBindings.get("optionsAfterRender"),null,[newOptions[0],arrayEntry!==captionPlaceholder?arrayEntry:undefined])}),ko.utils.setDomNodeChildrenFromArrayMapping(element,filteredArray,optionForArrayItem,arrayToDomNodeChildrenOptions,callback),ko.dependencyDetection.ignore(function(){if(valueAllowUnset)ko.selectExtensions.writeValue(element,ko.utils.unwrapObservable(allBindings.get("value")),!0);else{var selectionChanged;selectionChanged=multiple?previousSelectedValues.length&&selectedOptions().length=0?ko.selectExtensions.readValue(element.options[element.selectedIndex])!==previousSelectedValues[0]:previousSelectedValues.length||element.selectedIndex>=0,selectionChanged&&ko.utils.triggerEvent(element,"change")}}),ko.utils.ensureSelectElementIsRenderedCorrectly(element),previousScrollTop&&Math.abs(previousScrollTop-element.scrollTop)>20&&(element.scrollTop=previousScrollTop)}},ko.bindingHandlers.options.optionValueDomDataKey=ko.utils.domData.nextKey(),ko.bindingHandlers.selectedOptions={after:["options","foreach"],init:function(element,valueAccessor,allBindings){ko.utils.registerEventHandler(element,"change",function(){var value=valueAccessor(),valueToWrite=[];ko.utils.arrayForEach(element.getElementsByTagName("option"),function(node){node.selected&&valueToWrite.push(ko.selectExtensions.readValue(node))}),ko.expressionRewriting.writeValueToProperty(value,allBindings,"selectedOptions",valueToWrite)})},update:function(element,valueAccessor){if("select"!=ko.utils.tagNameLower(element))throw new Error("values binding applies only to SELECT elements");var newValue=ko.utils.unwrapObservable(valueAccessor());newValue&&"number"==typeof newValue.length&&ko.utils.arrayForEach(element.getElementsByTagName("option"),function(node){var isSelected=ko.utils.arrayIndexOf(newValue,ko.selectExtensions.readValue(node))>=0;ko.utils.setOptionNodeSelectionState(node,isSelected)})}},ko.expressionRewriting.twoWayBindings.selectedOptions=!0,ko.bindingHandlers.style={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor()||{});ko.utils.objectForEach(value,function(styleName,styleValue){styleValue=ko.utils.unwrapObservable(styleValue),null!==styleValue&&styleValue!==undefined&&styleValue!==!1||(styleValue=""),element.style[styleName]=styleValue})}},ko.bindingHandlers.submit={init:function(element,valueAccessor,allBindings,viewModel,bindingContext){if("function"!=typeof valueAccessor())throw new Error("The value for a submit binding must be a function");ko.utils.registerEventHandler(element,"submit",function(event){var handlerReturnValue,value=valueAccessor();try{handlerReturnValue=value.call(bindingContext.$data,element)}finally{handlerReturnValue!==!0&&(event.preventDefault?event.preventDefault():event.returnValue=!1)}})}},ko.bindingHandlers.text={init:function(){return{controlsDescendantBindings:!0}},update:function(element,valueAccessor){ko.utils.setTextContent(element,valueAccessor())}},ko.virtualElements.allowedBindings.text=!0,function(){if(window&&window.navigator)var parseVersion=function(matches){if(matches)return parseFloat(matches[1])},operaVersion=window.opera&&window.opera.version&&parseInt(window.opera.version()),userAgent=window.navigator.userAgent,safariVersion=parseVersion(userAgent.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),firefoxVersion=parseVersion(userAgent.match(/Firefox\/([^ ]*)/));if(ko.utils.ieVersion<10)var selectionChangeRegisteredName=ko.utils.domData.nextKey(),selectionChangeHandlerName=ko.utils.domData.nextKey(),selectionChangeHandler=function(event){var target=this.activeElement,handler=target&&ko.utils.domData.get(target,selectionChangeHandlerName);handler&&handler(event)},registerForSelectionChangeEvent=function(element,handler){var ownerDoc=element.ownerDocument;ko.utils.domData.get(ownerDoc,selectionChangeRegisteredName)||(ko.utils.domData.set(ownerDoc,selectionChangeRegisteredName,!0),ko.utils.registerEventHandler(ownerDoc,"selectionchange",selectionChangeHandler)),ko.utils.domData.set(element,selectionChangeHandlerName,handler)};ko.bindingHandlers.textInput={init:function(element,valueAccessor,allBindings){var timeoutHandle,elementValueBeforeEvent,previousElementValue=element.value,updateModel=function(event){clearTimeout(timeoutHandle),elementValueBeforeEvent=timeoutHandle=undefined;var elementValue=element.value;previousElementValue!==elementValue&&(DEBUG&&event&&(element._ko_textInputProcessedEvent=event.type),previousElementValue=elementValue,ko.expressionRewriting.writeValueToProperty(valueAccessor(),allBindings,"textInput",elementValue))},deferUpdateModel=function(event){if(!timeoutHandle){elementValueBeforeEvent=element.value;var handler=DEBUG?updateModel.bind(element,{type:event.type}):updateModel;timeoutHandle=setTimeout(handler,4)}},updateView=function(){var modelValue=ko.utils.unwrapObservable(valueAccessor());return null!==modelValue&&modelValue!==undefined||(modelValue=""),elementValueBeforeEvent!==undefined&&modelValue===elementValueBeforeEvent?void setTimeout(updateView,4):void(element.value!==modelValue&&(previousElementValue=modelValue,element.value=modelValue))},onEvent=function(event,handler){ko.utils.registerEventHandler(element,event,handler)};DEBUG&&ko.bindingHandlers.textInput._forceUpdateOn?ko.utils.arrayForEach(ko.bindingHandlers.textInput._forceUpdateOn,function(eventName){"after"==eventName.slice(0,5)?onEvent(eventName.slice(5),deferUpdateModel):onEvent(eventName,updateModel)}):ko.utils.ieVersion<10?(onEvent("propertychange",function(event){"value"===event.propertyName&&updateModel(event)}),8==ko.utils.ieVersion&&(onEvent("keyup",updateModel),onEvent("keydown",updateModel)),ko.utils.ieVersion>=8&&(registerForSelectionChangeEvent(element,updateModel),onEvent("dragend",deferUpdateModel))):(onEvent("input",updateModel),safariVersion<5&&"textarea"===ko.utils.tagNameLower(element)?(onEvent("keydown",deferUpdateModel),onEvent("paste",deferUpdateModel),onEvent("cut",deferUpdateModel)):operaVersion<11?onEvent("keydown",deferUpdateModel):firefoxVersion<4&&(onEvent("DOMAutoComplete",updateModel),onEvent("dragdrop",updateModel),onEvent("drop",updateModel))),onEvent("change",updateModel),ko.computed(updateView,null,{disposeWhenNodeIsRemoved:element})}},ko.expressionRewriting.twoWayBindings.textInput=!0,ko.bindingHandlers.textinput={preprocess:function(value,name,addBinding){addBinding("textInput",value)}}}(),ko.bindingHandlers.uniqueName={init:function(element,valueAccessor){if(valueAccessor()){var name="ko_unique_"+ ++ko.bindingHandlers.uniqueName.currentIndex;ko.utils.setElementName(element,name)}}},ko.bindingHandlers.uniqueName.currentIndex=0,ko.bindingHandlers.value={after:["options","foreach"],init:function(element,valueAccessor,allBindings){if("input"==element.tagName.toLowerCase()&&("checkbox"==element.type||"radio"==element.type))return void ko.applyBindingAccessorsToNode(element,{checkedValue:valueAccessor});var eventsToCatch=["change"],requestedEventsToCatch=allBindings.get("valueUpdate"),propertyChangedFired=!1,elementValueBeforeEvent=null;requestedEventsToCatch&&("string"==typeof requestedEventsToCatch&&(requestedEventsToCatch=[requestedEventsToCatch]),ko.utils.arrayPushAll(eventsToCatch,requestedEventsToCatch),eventsToCatch=ko.utils.arrayGetDistinctValues(eventsToCatch));var valueUpdateHandler=function(){elementValueBeforeEvent=null,propertyChangedFired=!1;var modelValue=valueAccessor(),elementValue=ko.selectExtensions.readValue(element);ko.expressionRewriting.writeValueToProperty(modelValue,allBindings,"value",elementValue)},ieAutoCompleteHackNeeded=ko.utils.ieVersion&&"input"==element.tagName.toLowerCase()&&"text"==element.type&&"off"!=element.autocomplete&&(!element.form||"off"!=element.form.autocomplete);ieAutoCompleteHackNeeded&&ko.utils.arrayIndexOf(eventsToCatch,"propertychange")==-1&&(ko.utils.registerEventHandler(element,"propertychange",function(){propertyChangedFired=!0}),ko.utils.registerEventHandler(element,"focus",function(){propertyChangedFired=!1}),ko.utils.registerEventHandler(element,"blur",function(){propertyChangedFired&&valueUpdateHandler()})),ko.utils.arrayForEach(eventsToCatch,function(eventName){var handler=valueUpdateHandler;ko.utils.stringStartsWith(eventName,"after")&&(handler=function(){elementValueBeforeEvent=ko.selectExtensions.readValue(element),setTimeout(valueUpdateHandler,0)},eventName=eventName.substring("after".length)),ko.utils.registerEventHandler(element,eventName,handler)});var updateFromModel=function(){var newValue=ko.utils.unwrapObservable(valueAccessor()),elementValue=ko.selectExtensions.readValue(element);if(null!==elementValueBeforeEvent&&newValue===elementValueBeforeEvent)return void setTimeout(updateFromModel,0);var valueHasChanged=newValue!==elementValue;if(valueHasChanged)if("select"===ko.utils.tagNameLower(element)){var allowUnset=allBindings.get("valueAllowUnset"),applyValueAction=function(){ko.selectExtensions.writeValue(element,newValue,allowUnset)};applyValueAction(),allowUnset||newValue===ko.selectExtensions.readValue(element)?setTimeout(applyValueAction,0):ko.dependencyDetection.ignore(ko.utils.triggerEvent,null,[element,"change"])}else ko.selectExtensions.writeValue(element,newValue)};ko.computed(updateFromModel,null,{disposeWhenNodeIsRemoved:element})},update:function(){}},ko.expressionRewriting.twoWayBindings.value=!0,ko.bindingHandlers.visible={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor()),isCurrentlyVisible=!("none"==element.style.display);value&&!isCurrentlyVisible?element.style.display="":!value&&isCurrentlyVisible&&(element.style.display="none")}},makeEventHandlerShortcut("click"),ko.templateEngine=function(){},ko.templateEngine.prototype.renderTemplateSource=function(templateSource,bindingContext,options,templateDocument){throw new Error("Override renderTemplateSource")},ko.templateEngine.prototype.createJavaScriptEvaluatorBlock=function(script){throw new Error("Override createJavaScriptEvaluatorBlock")},ko.templateEngine.prototype.makeTemplateSource=function(template,templateDocument){if("string"==typeof template){templateDocument=templateDocument||document;var elem=templateDocument.getElementById(template);if(!elem)throw new Error("Cannot find template with ID "+template);return new ko.templateSources.domElement(elem)}if(1==template.nodeType||8==template.nodeType)return new ko.templateSources.anonymousTemplate(template);throw new Error("Unknown template type: "+template)},ko.templateEngine.prototype.renderTemplate=function(template,bindingContext,options,templateDocument){var templateSource=this.makeTemplateSource(template,templateDocument);return this.renderTemplateSource(templateSource,bindingContext,options,templateDocument)},ko.templateEngine.prototype.isTemplateRewritten=function(template,templateDocument){return this.allowTemplateRewriting===!1||this.makeTemplateSource(template,templateDocument).data("isRewritten")},ko.templateEngine.prototype.rewriteTemplate=function(template,rewriterCallback,templateDocument){var templateSource=this.makeTemplateSource(template,templateDocument),rewritten=rewriterCallback(templateSource.text());templateSource.text(rewritten),templateSource.data("isRewritten",!0)},ko.exportSymbol("templateEngine",ko.templateEngine),ko.templateRewriting=function(){function validateDataBindValuesForRewriting(keyValueArray){for(var allValidators=ko.expressionRewriting.bindingRewriteValidators,i=0;i]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,memoizeVirtualContainerBindingSyntaxRegex=//g;return{ensureTemplateIsRewritten:function(template,templateEngine,templateDocument){templateEngine.isTemplateRewritten(template,templateDocument)||templateEngine.rewriteTemplate(template,function(htmlString){return ko.templateRewriting.memoizeBindingAttributeSyntax(htmlString,templateEngine)},templateDocument)},memoizeBindingAttributeSyntax:function(htmlString,templateEngine){return htmlString.replace(memoizeDataBindingAttributeSyntaxRegex,function(){return constructMemoizedTagReplacement(arguments[4],arguments[1],arguments[2],templateEngine)}).replace(memoizeVirtualContainerBindingSyntaxRegex,function(){return constructMemoizedTagReplacement(arguments[1],"","#comment",templateEngine)})},applyMemoizedBindingsToNextSibling:function(bindings,nodeName){return ko.memoization.memoize(function(domNode,bindingContext){var nodeToBind=domNode.nextSibling;nodeToBind&&nodeToBind.nodeName.toLowerCase()===nodeName&&ko.applyBindingAccessorsToNode(nodeToBind,bindings,bindingContext)})}}}(),ko.exportSymbol("__tr_ambtns",ko.templateRewriting.applyMemoizedBindingsToNextSibling),function(){ko.templateSources={},ko.templateSources.domElement=function(element){this.domElement=element},ko.templateSources.domElement.prototype.text=function(){var tagNameLower=ko.utils.tagNameLower(this.domElement),elemContentsProperty="script"===tagNameLower?"text":"textarea"===tagNameLower?"value":"innerHTML";if(0==arguments.length)return this.domElement[elemContentsProperty];var valueToWrite=arguments[0];"innerHTML"===elemContentsProperty?ko.utils.setHtml(this.domElement,valueToWrite):this.domElement[elemContentsProperty]=valueToWrite};var dataDomDataPrefix=ko.utils.domData.nextKey()+"_";ko.templateSources.domElement.prototype.data=function(key){return 1===arguments.length?ko.utils.domData.get(this.domElement,dataDomDataPrefix+key):void ko.utils.domData.set(this.domElement,dataDomDataPrefix+key,arguments[1])};var anonymousTemplatesDomDataKey=ko.utils.domData.nextKey();ko.templateSources.anonymousTemplate=function(element){this.domElement=element},ko.templateSources.anonymousTemplate.prototype=new ko.templateSources.domElement,ko.templateSources.anonymousTemplate.prototype.constructor=ko.templateSources.anonymousTemplate,ko.templateSources.anonymousTemplate.prototype.text=function(){if(0==arguments.length){var templateData=ko.utils.domData.get(this.domElement,anonymousTemplatesDomDataKey)||{};return templateData.textData===undefined&&templateData.containerData&&(templateData.textData=templateData.containerData.innerHTML),templateData.textData}var valueToWrite=arguments[0];ko.utils.domData.set(this.domElement,anonymousTemplatesDomDataKey,{textData:valueToWrite})},ko.templateSources.domElement.prototype.nodes=function(){if(0==arguments.length){var templateData=ko.utils.domData.get(this.domElement,anonymousTemplatesDomDataKey)||{};return templateData.containerData}var valueToWrite=arguments[0];ko.utils.domData.set(this.domElement,anonymousTemplatesDomDataKey,{containerData:valueToWrite})},ko.exportSymbol("templateSources",ko.templateSources),ko.exportSymbol("templateSources.domElement",ko.templateSources.domElement),ko.exportSymbol("templateSources.anonymousTemplate",ko.templateSources.anonymousTemplate)}(),function(){function invokeForEachNodeInContinuousRange(firstNode,lastNode,action){for(var node,nextInQueue=firstNode,firstOutOfRangeNode=ko.virtualElements.nextSibling(lastNode);nextInQueue&&(node=nextInQueue)!==firstOutOfRangeNode;)nextInQueue=ko.virtualElements.nextSibling(node),action(node,nextInQueue)}function activateBindingsOnContinuousNodeArray(continuousNodeArray,bindingContext){if(continuousNodeArray.length){var firstNode=continuousNodeArray[0],lastNode=continuousNodeArray[continuousNodeArray.length-1],parentNode=firstNode.parentNode,provider=ko.bindingProvider.instance,preprocessNode=provider.preprocessNode;if(preprocessNode){if(invokeForEachNodeInContinuousRange(firstNode,lastNode,function(node,nextNodeInRange){var nodePreviousSibling=node.previousSibling,newNodes=preprocessNode.call(provider,node);newNodes&&(node===firstNode&&(firstNode=newNodes[0]||nextNodeInRange),node===lastNode&&(lastNode=newNodes[newNodes.length-1]||nodePreviousSibling))}),continuousNodeArray.length=0,!firstNode)return;firstNode===lastNode?continuousNodeArray.push(firstNode):(continuousNodeArray.push(firstNode,lastNode),ko.utils.fixUpContinuousNodeArray(continuousNodeArray,parentNode))}invokeForEachNodeInContinuousRange(firstNode,lastNode,function(node){1!==node.nodeType&&8!==node.nodeType||ko.applyBindings(bindingContext,node)}),invokeForEachNodeInContinuousRange(firstNode,lastNode,function(node){1!==node.nodeType&&8!==node.nodeType||ko.memoization.unmemoizeDomNodeAndDescendants(node,[bindingContext])}),ko.utils.fixUpContinuousNodeArray(continuousNodeArray,parentNode)}}function getFirstNodeFromPossibleArray(nodeOrNodeArray){return nodeOrNodeArray.nodeType?nodeOrNodeArray:nodeOrNodeArray.length>0?nodeOrNodeArray[0]:null}function executeTemplate(targetNodeOrNodeArray,renderMode,template,bindingContext,options){options=options||{};var firstTargetNode=targetNodeOrNodeArray&&getFirstNodeFromPossibleArray(targetNodeOrNodeArray),templateDocument=(firstTargetNode||template||{}).ownerDocument,templateEngineToUse=options.templateEngine||_templateEngine;ko.templateRewriting.ensureTemplateIsRewritten(template,templateEngineToUse,templateDocument);var renderedNodesArray=templateEngineToUse.renderTemplate(template,bindingContext,options,templateDocument);if("number"!=typeof renderedNodesArray.length||renderedNodesArray.length>0&&"number"!=typeof renderedNodesArray[0].nodeType)throw new Error("Template engine must return an array of DOM nodes");var haveAddedNodesToParent=!1;switch(renderMode){case"replaceChildren":ko.virtualElements.setDomNodeChildren(targetNodeOrNodeArray,renderedNodesArray),haveAddedNodesToParent=!0;break;case"replaceNode": ko.utils.replaceDomNodes(targetNodeOrNodeArray,renderedNodesArray),haveAddedNodesToParent=!0;break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+renderMode)}return haveAddedNodesToParent&&(activateBindingsOnContinuousNodeArray(renderedNodesArray,bindingContext),options.afterRender&&ko.dependencyDetection.ignore(options.afterRender,null,[renderedNodesArray,bindingContext.$data])),renderedNodesArray}function resolveTemplateName(template,data,context){return ko.isObservable(template)?template():"function"==typeof template?template(data,context):template}function disposeOldComputedAndStoreNewOne(element,newComputed){var oldComputed=ko.utils.domData.get(element,templateComputedDomDataKey);oldComputed&&"function"==typeof oldComputed.dispose&&oldComputed.dispose(),ko.utils.domData.set(element,templateComputedDomDataKey,newComputed&&newComputed.isActive()?newComputed:undefined)}var _templateEngine;ko.setTemplateEngine=function(templateEngine){if(templateEngine!=undefined&&!(templateEngine instanceof ko.templateEngine))throw new Error("templateEngine must inherit from ko.templateEngine");_templateEngine=templateEngine},ko.renderTemplate=function(template,dataOrBindingContext,options,targetNodeOrNodeArray,renderMode){if(options=options||{},(options.templateEngine||_templateEngine)==undefined)throw new Error("Set a template engine before calling renderTemplate");if(renderMode=renderMode||"replaceChildren",targetNodeOrNodeArray){var firstTargetNode=getFirstNodeFromPossibleArray(targetNodeOrNodeArray),whenToDispose=function(){return!firstTargetNode||!ko.utils.domNodeIsAttachedToDocument(firstTargetNode)},activelyDisposeWhenNodeIsRemoved=firstTargetNode&&"replaceNode"==renderMode?firstTargetNode.parentNode:firstTargetNode;return ko.dependentObservable(function(){var bindingContext=dataOrBindingContext&&dataOrBindingContext instanceof ko.bindingContext?dataOrBindingContext:new ko.bindingContext(ko.utils.unwrapObservable(dataOrBindingContext)),templateName=resolveTemplateName(template,bindingContext.$data,bindingContext),renderedNodesArray=executeTemplate(targetNodeOrNodeArray,renderMode,templateName,bindingContext,options);"replaceNode"==renderMode&&(targetNodeOrNodeArray=renderedNodesArray,firstTargetNode=getFirstNodeFromPossibleArray(targetNodeOrNodeArray))},null,{disposeWhen:whenToDispose,disposeWhenNodeIsRemoved:activelyDisposeWhenNodeIsRemoved})}return ko.memoization.memoize(function(domNode){ko.renderTemplate(template,dataOrBindingContext,options,domNode,"replaceNode")})},ko.renderTemplateForEach=function(template,arrayOrObservableArray,options,targetNode,parentBindingContext){var arrayItemContext,executeTemplateForArrayItem=function(arrayValue,index){arrayItemContext=parentBindingContext.createChildContext(arrayValue,options.as,function(context){context.$index=index});var templateName=resolveTemplateName(template,arrayValue,arrayItemContext);return executeTemplate(null,"ignoreTargetNode",templateName,arrayItemContext,options)},activateBindingsCallback=function(arrayValue,addedNodesArray,index){activateBindingsOnContinuousNodeArray(addedNodesArray,arrayItemContext),options.afterRender&&options.afterRender(addedNodesArray,arrayValue),arrayItemContext=null};return ko.dependentObservable(function(){var unwrappedArray=ko.utils.unwrapObservable(arrayOrObservableArray)||[];"undefined"==typeof unwrappedArray.length&&(unwrappedArray=[unwrappedArray]);var filteredArray=ko.utils.arrayFilter(unwrappedArray,function(item){return options.includeDestroyed||item===undefined||null===item||!ko.utils.unwrapObservable(item._destroy)});ko.dependencyDetection.ignore(ko.utils.setDomNodeChildrenFromArrayMapping,null,[targetNode,filteredArray,executeTemplateForArrayItem,options,activateBindingsCallback])},null,{disposeWhenNodeIsRemoved:targetNode})};var templateComputedDomDataKey=ko.utils.domData.nextKey();ko.bindingHandlers.template={init:function(element,valueAccessor){var bindingValue=ko.utils.unwrapObservable(valueAccessor());if("string"==typeof bindingValue||bindingValue.name)ko.virtualElements.emptyNode(element);else if("nodes"in bindingValue){var nodes=bindingValue.nodes||[];if(ko.isObservable(nodes))throw new Error('The "nodes" option must be a plain, non-observable array.');var container=ko.utils.moveCleanedNodesToContainerElement(nodes);new ko.templateSources.anonymousTemplate(element).nodes(container)}else{var templateNodes=ko.virtualElements.childNodes(element),container=ko.utils.moveCleanedNodesToContainerElement(templateNodes);new ko.templateSources.anonymousTemplate(element).nodes(container)}return{controlsDescendantBindings:!0}},update:function(element,valueAccessor,allBindings,viewModel,bindingContext){var dataValue,templateName,value=valueAccessor(),options=ko.utils.unwrapObservable(value),shouldDisplay=!0,templateComputed=null;if("string"==typeof options?(templateName=value,options={}):(templateName=options.name,"if"in options&&(shouldDisplay=ko.utils.unwrapObservable(options["if"])),shouldDisplay&&"ifnot"in options&&(shouldDisplay=!ko.utils.unwrapObservable(options.ifnot)),dataValue=ko.utils.unwrapObservable(options.data)),"foreach"in options){var dataArray=shouldDisplay&&options.foreach||[];templateComputed=ko.renderTemplateForEach(templateName||element,dataArray,options,element,bindingContext)}else if(shouldDisplay){var innerBindingContext="data"in options?bindingContext.createChildContext(dataValue,options.as):bindingContext;templateComputed=ko.renderTemplate(templateName||element,innerBindingContext,options,element)}else ko.virtualElements.emptyNode(element);disposeOldComputedAndStoreNewOne(element,templateComputed)}},ko.expressionRewriting.bindingRewriteValidators.template=function(bindingValue){var parsedBindingValue=ko.expressionRewriting.parseObjectLiteral(bindingValue);return 1==parsedBindingValue.length&&parsedBindingValue[0].unknown?null:ko.expressionRewriting.keyValueArrayContainsKey(parsedBindingValue,"name")?null:"This template engine does not support anonymous templates nested within its templates"},ko.virtualElements.allowedBindings.template=!0}(),ko.exportSymbol("setTemplateEngine",ko.setTemplateEngine),ko.exportSymbol("renderTemplate",ko.renderTemplate),ko.utils.findMovesInArrayComparison=function(left,right,limitFailedCompares){if(left.length&&right.length){var failedCompares,l,r,leftItem,rightItem;for(failedCompares=l=0;(!limitFailedCompares||failedCompares0&&(ko.utils.replaceDomNodes(mappedNodes,newMappedNodes),callbackAfterAddingNodes&&ko.dependencyDetection.ignore(callbackAfterAddingNodes,null,[valueToMap,newMappedNodes,index])),mappedNodes.length=0,ko.utils.arrayPushAll(mappedNodes,newMappedNodes)},null,{disposeWhenNodeIsRemoved:containerNode,disposeWhen:function(){return!ko.utils.anyDomNodeIsAttachedToDocument(mappedNodes)}});return{mappedNodes:mappedNodes,dependentObservable:dependentObservable.isActive()?dependentObservable:undefined}}var lastMappingResultDomDataKey=ko.utils.domData.nextKey();ko.utils.setDomNodeChildrenFromArrayMapping=function(domNode,array,mapping,options,callbackAfterAddingNodes){function itemMovedOrRetained(editScriptIndex,oldPosition){mapData=lastMappingResult[oldPosition],newMappingResultIndex!==oldPosition&&(itemsForMoveCallbacks[editScriptIndex]=mapData),mapData.indexObservable(newMappingResultIndex++),ko.utils.fixUpContinuousNodeArray(mapData.mappedNodes,domNode),newMappingResult.push(mapData),itemsToProcess.push(mapData)}function callCallback(callback,items){if(callback)for(var i=0,n=items.length;i=0)return 2}catch(ex){}return 1}();this.renderTemplateSource=function(templateSource,bindingContext,options,templateDocument){templateDocument=templateDocument||document,options=options||{},ensureHasReferencedJQueryTemplates();var precompiled=templateSource.data("precompiled");if(!precompiled){var templateText=templateSource.text()||"";templateText="{{ko_with $item.koBindingContext}}"+templateText+"{{/ko_with}}",precompiled=jQueryInstance.template(null,templateText),templateSource.data("precompiled",precompiled)}var data=[bindingContext.$data],jQueryTemplateOptions=jQueryInstance.extend({koBindingContext:bindingContext},options.templateOptions),resultNodes=executeTemplate(precompiled,data,jQueryTemplateOptions);return resultNodes.appendTo(templateDocument.createElement("div")),jQueryInstance.fragments={},resultNodes},this.createJavaScriptEvaluatorBlock=function(script){return"{{ko_code ((function() { return "+script+" })()) }}"},this.addTemplate=function(templateName,templateMarkup){document.write("")},jQueryTmplVersion>0&&(jQueryInstance.tmpl.tag.ko_code={open:"__.push($1 || '');"},jQueryInstance.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},ko.jqueryTmplTemplateEngine.prototype=new ko.templateEngine,ko.jqueryTmplTemplateEngine.prototype.constructor=ko.jqueryTmplTemplateEngine;var jqueryTmplTemplateEngineInstance=new ko.jqueryTmplTemplateEngine;jqueryTmplTemplateEngineInstance.jQueryTmplVersion>0&&ko.setTemplateEngine(jqueryTmplTemplateEngineInstance),ko.exportSymbol("jqueryTmplTemplateEngine",ko.jqueryTmplTemplateEngine)}()})}()}(),function(factory){"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?factory(require("knockout"),exports):"function"==typeof define&&define.amd?define(["knockout","exports"],factory):factory(ko,ko.validation={})}(function(ko,exports){function minMaxValidatorFactory(validatorName){var isMaxValidation="max"===validatorName;return function(val,options){if(kv.utils.isEmptyVal(val))return!0;var comparisonValue,type;void 0===options.typeAttr?(type="text",comparisonValue=options):(type=options.typeAttr,comparisonValue=options.value),isNaN(comparisonValue)||comparisonValue instanceof Date||(type="number");var regex,valMatches,comparisonValueMatches;switch(type.toLowerCase()){case"week":if(regex=/^(\d{4})-W(\d{2})$/,valMatches=val.match(regex),null===valMatches)throw new Error("Invalid value for "+validatorName+" attribute for week input. Should look like '2000-W33' http://www.w3.org/TR/html-markup/input.week.html#input.week.attrs.min");return comparisonValueMatches=comparisonValue.match(regex),!!comparisonValueMatches&&(isMaxValidation?valMatches[1]comparisonValueMatches[1]||valMatches[1]===comparisonValueMatches[1]&&valMatches[2]>=comparisonValueMatches[2]);case"month":if(regex=/^(\d{4})-(\d{2})$/,valMatches=val.match(regex),null===valMatches)throw new Error("Invalid value for "+validatorName+" attribute for month input. Should look like '2000-03' http://www.w3.org/TR/html-markup/input.month.html#input.month.attrs.min");return comparisonValueMatches=comparisonValue.match(regex),!!comparisonValueMatches&&(isMaxValidation?valMatches[1]comparisonValueMatches[1]||valMatches[1]===comparisonValueMatches[1]&&valMatches[2]>=comparisonValueMatches[2]);case"number":case"range":return isMaxValidation?!isNaN(val)&&parseFloat(val)<=parseFloat(comparisonValue):!isNaN(val)&&parseFloat(val)>=parseFloat(comparisonValue);default:return isMaxValidation?val<=comparisonValue:val>=comparisonValue}}}function validateSync(observable,rule,ctx){return!!rule.validator(observable(),void 0===ctx.params||unwrap(ctx.params))||(observable.setError(kv.formatMessage(ctx.message||rule.message,unwrap(ctx.params),observable)),!1)}function validateAsync(observable,rule,ctx){observable.isValidating(!0);var callBack=function(valObj){var isValid=!1,msg="";return observable.__valid__()?(valObj.message?(isValid=valObj.isValid,msg=valObj.message):isValid=valObj,isValid||(observable.error(kv.formatMessage(msg||ctx.message||rule.message,unwrap(ctx.params),observable)),observable.__valid__(isValid)),void observable.isValidating(!1)):void observable.isValidating(!1)};kv.utils.async(function(){rule.validator(observable(),void 0===ctx.params||unwrap(ctx.params),callBack)})}if("undefined"==typeof ko)throw new Error("Knockout is required, please ensure it is loaded before loading this validation plug-in");ko.validation=exports;var kv=ko.validation,koUtils=ko.utils,unwrap=koUtils.unwrapObservable,forEach=koUtils.arrayForEach,extend=koUtils.extend,defaults={registerExtenders:!0,messagesOnModified:!0,errorsAsTitle:!0,errorsAsTitleOnModified:!1,messageTemplate:null,insertMessages:!0,parseInputAttributes:!1,writeInputAttributes:!1,decorateInputElement:!1,decorateElementOnModified:!0,errorClass:null,errorElementClass:"validationElement",errorMessageClass:"validationMessage",allowHtmlMessages:!1,grouping:{deep:!1,observable:!0,live:!1},validate:{}},configuration=extend({},defaults);configuration.html5Attributes=["required","pattern","min","max","step"],configuration.html5InputTypes=["email","number","date"],configuration.reset=function(){extend(configuration,defaults)},kv.configuration=configuration,kv.utils=function(){var seedId=(new Date).getTime(),domData={},domDataKey="__ko_validation__";return{isArray:function(o){return o.isArray||"[object Array]"===Object.prototype.toString.call(o)},isObject:function(o){return null!==o&&"object"==typeof o},isNumber:function(o){return!isNaN(o)},isObservableArray:function(instance){return!!instance&&"function"==typeof instance.remove&&"function"==typeof instance.removeAll&&"function"==typeof instance.destroy&&"function"==typeof instance.destroyAll&&"function"==typeof instance.indexOf&&"function"==typeof instance.replace},values:function(o){var r=[];for(var i in o)o.hasOwnProperty(i)&&r.push(o[i]);return r},getValue:function(o){return"function"==typeof o?o():o},hasAttribute:function(node,attr){return null!==node.getAttribute(attr)},getAttribute:function(element,attr){return element.getAttribute(attr)},setAttribute:function(element,attr,value){return element.setAttribute(attr,value)},isValidatable:function(o){return!!(o&&o.rules&&o.isValid&&o.isModified)},insertAfter:function(node,newNode){node.parentNode.insertBefore(newNode,node.nextSibling)},newId:function(){return seedId+=1},getConfigOptions:function(element){var options=kv.utils.contextFor(element);return options||kv.configuration},setDomData:function(node,data){var key=node[domDataKey];key||(node[domDataKey]=key=kv.utils.newId()),domData[key]=data},getDomData:function(node){var key=node[domDataKey];if(key)return domData[key]},contextFor:function(node){switch(node.nodeType){case 1:case 8:var context=kv.utils.getDomData(node);if(context)return context;if(node.parentNode)return kv.utils.contextFor(node.parentNode)}},isEmptyVal:function(val){return void 0===val||(null===val||(""===val||void 0))},getOriginalElementTitle:function(element){var savedOriginalTitle=kv.utils.getAttribute(element,"data-orig-title"),currentTitle=element.title,hasSavedOriginalTitle=kv.utils.hasAttribute(element,"data-orig-title");return hasSavedOriginalTitle?savedOriginalTitle:currentTitle},async:function(expr){window.setImmediate?window.setImmediate(expr):window.setTimeout(expr,0)},forEach:function(object,callback){if(kv.utils.isArray(object))return forEach(object,callback);for(var prop in object)object.hasOwnProperty(prop)&&callback(object[prop],prop)}}}();var api=function(){function cleanUpSubscriptions(context){forEach(context.subscriptions,function(subscription){subscription.dispose()}),context.subscriptions=[]}function dispose(context){context.options.deep&&(forEach(context.flagged,function(obj){delete obj.__kv_traversed}),context.flagged.length=0),context.options.live||cleanUpSubscriptions(context)}function runTraversal(obj,context){context.validatables=[],cleanUpSubscriptions(context),traverseGraph(obj,context),dispose(context)}function traverseGraph(obj,context,level){var objValues=[],val=obj.peek?obj.peek():obj;obj.__kv_traversed!==!0&&(context.options.deep&&(obj.__kv_traversed=!0,context.flagged.push(obj)),level=void 0!==level?level:context.options.deep?1:-1,ko.isObservable(obj)&&(obj.errors||utils.isValidatable(obj)||obj.extend({validatable:!0}),context.validatables.push(obj),context.options.live&&utils.isObservableArray(obj)&&context.subscriptions.push(obj.subscribe(function(){context.graphMonitor.valueHasMutated()}))),val&&!val._destroy&&(utils.isArray(val)?objValues=val:utils.isObject(val)&&(objValues=utils.values(val))),0!==level&&utils.forEach(objValues,function(observable){!observable||observable.nodeType||ko.isComputed(observable)&&!observable.rules||traverseGraph(observable,context,level+1)}))}function collectErrors(array){var errors=[];return forEach(array,function(observable){utils.isValidatable(observable)&&!observable.isValid()&&errors.push(observable.error.peek())}),errors}var isInitialized=0,configuration=kv.configuration,utils=kv.utils;return{init:function(options,force){isInitialized>0&&!force||(options=options||{},options.errorElementClass=options.errorElementClass||options.errorClass||configuration.errorElementClass,options.errorMessageClass=options.errorMessageClass||options.errorClass||configuration.errorMessageClass,extend(configuration,options),configuration.registerExtenders&&kv.registerExtenders(),isInitialized=1)},reset:kv.configuration.reset,group:function(obj,options){options=extend(extend({},configuration.grouping),options);var context={options:options,graphMonitor:ko.observable(),flagged:[],subscriptions:[],validatables:[]},result=null;return result=options.observable?ko.computed(function(){return context.graphMonitor(),runTraversal(obj,context),collectErrors(context.validatables)}):function(){return runTraversal(obj,context),collectErrors(context.validatables)},result.showAllMessages=function(show){void 0===show&&(show=!0),result.forEach(function(observable){utils.isValidatable(observable)&&observable.isModified(show)})},result.isAnyMessageShown=function(){var invalidAndModifiedPresent;return invalidAndModifiedPresent=!!result.find(function(observable){return utils.isValidatable(observable)&&!observable.isValid()&&observable.isModified()})},result.filter=function(predicate){return predicate=predicate||function(){return!0},result(),koUtils.arrayFilter(context.validatables,predicate)},result.find=function(predicate){return predicate=predicate||function(){return!0},result(),koUtils.arrayFirst(context.validatables,predicate)},result.forEach=function(callback){callback=callback||function(){},result(),forEach(context.validatables,callback)},result.map=function(mapping){return mapping=mapping||function(item){return item},result(),koUtils.arrayMap(context.validatables,mapping)},result._updateState=function(newValue){if(!utils.isObject(newValue))throw new Error("An object is required.");return obj=newValue,options.observable?void context.graphMonitor.valueHasMutated():(runTraversal(newValue,context),collectErrors(context.validatables))},result},formatMessage:function(message,params,observable){if(utils.isObject(params)&¶ms.typeAttr&&(params=params.value),"function"==typeof message)return message(params,observable);var replacements=unwrap(params);return null==replacements&&(replacements=[]),utils.isArray(replacements)||(replacements=[replacements]),message.replace(/{(\d+)}/gi,function(match,index){return"undefined"!=typeof replacements[index]?replacements[index]:match})},addRule:function(observable,rule){observable.extend({validatable:!0});var hasRule=!!koUtils.arrayFirst(observable.rules(),function(item){return item.rule&&item.rule===rule.rule});return hasRule||observable.rules.push(rule),observable},addAnonymousRule:function(observable,ruleObj){void 0===ruleObj.message&&(ruleObj.message="Error"),ruleObj.onlyIf&&(ruleObj.condition=ruleObj.onlyIf),kv.addRule(observable,ruleObj)},addExtender:function(ruleName){ko.extenders[ruleName]=function(observable,params){return params&&(params.message||params.onlyIf)?kv.addRule(observable,{rule:ruleName,message:params.message,params:!!utils.isEmptyVal(params.params)||params.params,condition:params.onlyIf}):kv.addRule(observable,{rule:ruleName,params:params})}},registerExtenders:function(){if(configuration.registerExtenders)for(var ruleName in kv.rules)kv.rules.hasOwnProperty(ruleName)&&(ko.extenders[ruleName]||kv.addExtender(ruleName))},insertValidationMessage:function(element){var span=document.createElement("SPAN");return span.className=utils.getConfigOptions(element).errorMessageClass,utils.insertAfter(element,span),span},parseInputValidationAttributes:function(element,valueAccessor){forEach(kv.configuration.html5Attributes,function(attr){if(utils.hasAttribute(element,attr)){var params=element.getAttribute(attr)||!0;if("min"===attr||"max"===attr){var typeAttr=element.getAttribute("type");"undefined"!=typeof typeAttr&&typeAttr||(typeAttr="text"),params={typeAttr:typeAttr,value:params}}kv.addRule(valueAccessor(),{rule:attr,params:params})}});var currentType=element.getAttribute("type");forEach(kv.configuration.html5InputTypes,function(type){type===currentType&&kv.addRule(valueAccessor(),{rule:"date"===type?"dateISO":type,params:!0})})},writeInputValidationAttributes:function(element,valueAccessor){var observable=valueAccessor();if(observable&&observable.rules){var contexts=observable.rules();forEach(kv.configuration.html5Attributes,function(attr){var ctx=koUtils.arrayFirst(contexts,function(ctx){return ctx.rule&&ctx.rule.toLowerCase()===attr.toLowerCase()});ctx&&ko.computed({read:function(){var params=ko.unwrap(ctx.params);"pattern"===ctx.rule&¶ms instanceof RegExp&&(params=params.source),element.setAttribute(attr,params)},disposeWhenNodeIsRemoved:element})}),contexts=null}},makeBindingHandlerValidatable:function(handlerName){var init=ko.bindingHandlers[handlerName].init;ko.bindingHandlers[handlerName].init=function(element,valueAccessor,allBindingsAccessor,viewModel,bindingContext){return init(element,valueAccessor,allBindingsAccessor,viewModel,bindingContext),ko.bindingHandlers.validationCore.init(element,valueAccessor,allBindingsAccessor,viewModel,bindingContext)}},setRules:function(target,definition){var setRules=function(target,definition){if(target&&definition)for(var prop in definition)if(definition.hasOwnProperty(prop)){var ruleDefinitions=definition[prop];if(target[prop]){var targetValue=target[prop],unwrappedTargetValue=unwrap(targetValue),rules={},nonRules={};for(var rule in ruleDefinitions)ruleDefinitions.hasOwnProperty(rule)&&(kv.rules[rule]?rules[rule]=ruleDefinitions[rule]:nonRules[rule]=ruleDefinitions[rule]);if(ko.isObservable(targetValue)&&targetValue.extend(rules),unwrappedTargetValue&&utils.isArray(unwrappedTargetValue))for(var i=0;i0)},message:"This field is required."},kv.rules.min={validator:minMaxValidatorFactory("min"),message:"Please enter a value greater than or equal to {0}."},kv.rules.max={validator:minMaxValidatorFactory("max"),message:"Please enter a value less than or equal to {0}."},kv.rules.minLength={validator:function(val,minLength){if(kv.utils.isEmptyVal(val))return!0;var normalizedVal=kv.utils.isNumber(val)?""+val:val;return normalizedVal.length>=minLength},message:"Please enter at least {0} characters."},kv.rules.maxLength={validator:function(val,maxLength){if(kv.utils.isEmptyVal(val))return!0;var normalizedVal=kv.utils.isNumber(val)?""+val:val;return normalizedVal.length<=maxLength},message:"Please enter no more than {0} characters."},kv.rules.pattern={validator:function(val,regex){return kv.utils.isEmptyVal(val)||null!==val.toString().match(regex)},message:"Please check this value."},kv.rules.step={validator:function(val,step){if(kv.utils.isEmptyVal(val)||"any"===step)return!0;var dif=100*val%(100*step);return Math.abs(dif)<1e-5||Math.abs(1-dif)<1e-5},message:"The value must increment by {0}."},kv.rules.email={validator:function(val,validate){return!validate||(kv.utils.isEmptyVal(val)||validate&&/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([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])))$/i.test(val))},message:"Please enter a proper email address." },kv.rules.date={validator:function(value,validate){return!validate||(kv.utils.isEmptyVal(value)||validate&&!/Invalid|NaN/.test(new Date(value)))},message:"Please enter a proper date."},kv.rules.dateISO={validator:function(value,validate){return!validate||(kv.utils.isEmptyVal(value)||validate&&/^\d{4}[-/](?:0?[1-9]|1[012])[-/](?:0?[1-9]|[12][0-9]|3[01])$/.test(value))},message:"Please enter a proper date."},kv.rules.number={validator:function(value,validate){return!validate||(kv.utils.isEmptyVal(value)||validate&&/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value))},message:"Please enter a number."},kv.rules.digit={validator:function(value,validate){return!validate||(kv.utils.isEmptyVal(value)||validate&&/^\d+$/.test(value))},message:"Please enter a digit."},kv.rules.phoneUS={validator:function(phoneNumber,validate){return!validate||(!!kv.utils.isEmptyVal(phoneNumber)||"string"==typeof phoneNumber&&(phoneNumber=phoneNumber.replace(/\s+/g,""),validate&&phoneNumber.length>9&&phoneNumber.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/)))},message:"Please specify a valid phone number."},kv.rules.equal={validator:function(val,params){var otherValue=params;return val===kv.utils.getValue(otherValue)},message:"Values must equal."},kv.rules.notEqual={validator:function(val,params){var otherValue=params;return val!==kv.utils.getValue(otherValue)},message:"Please choose another value."},kv.rules.unique={validator:function(val,options){var c=kv.utils.getValue(options.collection),external=kv.utils.getValue(options.externalValue),counter=0;return!val||!c||(koUtils.arrayFilter(c,function(item){val===(options.valueAccessor?options.valueAccessor(item):item)&&counter++}),counter<(external?1:2))},message:"Please make sure the value is unique."},function(){kv.registerExtenders()}(),ko.bindingHandlers.validationCore=function(){return{init:function(element,valueAccessor,allBindingsAccessor,viewModel,bindingContext){var config=kv.utils.getConfigOptions(element),observable=valueAccessor();if(config.parseInputAttributes&&kv.utils.async(function(){kv.parseInputValidationAttributes(element,valueAccessor)}),config.insertMessages&&kv.utils.isValidatable(observable)){var validationMessageElement=kv.insertValidationMessage(element);config.messageTemplate?ko.renderTemplate(config.messageTemplate,{field:observable},null,validationMessageElement,"replaceNode"):ko.applyBindingsToNode(validationMessageElement,{validationMessage:observable})}config.writeInputAttributes&&kv.utils.isValidatable(observable)&&kv.writeInputValidationAttributes(element,valueAccessor),config.decorateInputElement&&kv.utils.isValidatable(observable)&&ko.applyBindingsToNode(element,{validationElement:observable})}}}(),kv.makeBindingHandlerValidatable("value"),kv.makeBindingHandlerValidatable("checked"),ko.bindingHandlers.textInput&&kv.makeBindingHandlerValidatable("textInput"),kv.makeBindingHandlerValidatable("selectedOptions"),ko.bindingHandlers.validationMessage={update:function(element,valueAccessor){var obsv=valueAccessor(),config=kv.utils.getConfigOptions(element),isModified=(unwrap(obsv),!1),isValid=!1;if(null===obsv||"undefined"==typeof obsv)throw new Error("Cannot bind validationMessage to undefined value. data-bind expression: "+element.getAttribute("data-bind"));isModified=obsv.isModified&&obsv.isModified(),isValid=obsv.isValid&&obsv.isValid();var error=null;config.messagesOnModified&&!isModified||(error=isValid?null:obsv.error);var isVisible=!(config.messagesOnModified&&!isModified)&&!isValid,isCurrentlyVisible="none"!==element.style.display;config.allowHtmlMessages?koUtils.setHtml(element,error):ko.bindingHandlers.text.update(element,function(){return error}),isCurrentlyVisible&&!isVisible?element.style.display="none":!isCurrentlyVisible&&isVisible&&(element.style.display="")}},ko.bindingHandlers.validationElement={update:function(element,valueAccessor,allBindingsAccessor){var obsv=valueAccessor(),config=kv.utils.getConfigOptions(element),isModified=(unwrap(obsv),!1),isValid=!1;if(null===obsv||"undefined"==typeof obsv)throw new Error("Cannot bind validationElement to undefined value. data-bind expression: "+element.getAttribute("data-bind"));isModified=obsv.isModified&&obsv.isModified(),isValid=obsv.isValid&&obsv.isValid();var cssSettingsAccessor=function(){var css={},shouldShow=!(config.decorateElementOnModified&&!isModified)&&!isValid;return css[config.errorElementClass]=shouldShow,css};ko.bindingHandlers.css.update(element,cssSettingsAccessor,allBindingsAccessor),config.errorsAsTitle&&ko.bindingHandlers.attr.update(element,function(){var hasModification=!config.errorsAsTitleOnModified||isModified,title=kv.utils.getOriginalElementTitle(element);return hasModification&&!isValid?{title:obsv.error,"data-orig-title":title}:!hasModification||isValid?{title:title,"data-orig-title":null}:void 0})}},ko.bindingHandlers.validationOptions=function(){return{init:function(element,valueAccessor,allBindingsAccessor,viewModel,bindingContext){var options=unwrap(valueAccessor());if(options){var newConfig=extend({},kv.configuration);extend(newConfig,options),kv.utils.setDomData(element,newConfig)}}}}(),ko.extenders.validation=function(observable,rules){return forEach(kv.utils.isArray(rules)?rules:[rules],function(rule){kv.addAnonymousRule(observable,rule)}),observable},ko.extenders.validatable=function(observable,options){if(kv.utils.isObject(options)||(options={enable:options}),"enable"in options||(options.enable=!0),options.enable&&!kv.utils.isValidatable(observable)){var config=kv.configuration.validate||{},validationOptions={throttleEvaluation:options.throttle||config.throttle};observable.error=ko.observable(null),observable.rules=ko.observableArray(),observable.isValidating=ko.observable(!1),observable.__valid__=ko.observable(!0),observable.isModified=ko.observable(!1),observable.isValid=ko.computed(observable.__valid__),observable.setError=function(error){var previousError=observable.error.peek(),previousIsValid=observable.__valid__.peek();observable.error(error),observable.__valid__(!1),previousError===error||previousIsValid||observable.isValid.notifySubscribers()},observable.clearError=function(){return observable.error(null),observable.__valid__(!0),observable};var h_change=observable.subscribe(function(){observable.isModified(!0)}),h_obsValidationTrigger=ko.computed(extend({read:function(){observable(),observable.rules();return kv.validateObservable(observable),!0}},validationOptions));extend(h_obsValidationTrigger,validationOptions),observable._disposeValidation=function(){observable.isValid.dispose(),observable.rules.removeAll(),h_change.dispose(),h_obsValidationTrigger.dispose(),delete observable.rules,delete observable.error,delete observable.isValid,delete observable.isValidating,delete observable.__valid__,delete observable.isModified,delete observable.setError,delete observable.clearError,delete observable._disposeValidation}}else options.enable===!1&&observable._disposeValidation&&observable._disposeValidation();return observable},kv.validateObservable=function(observable){for(var rule,ctx,i=0,ruleContexts=observable.rules(),len=ruleContexts.length;i=qStartingLine&&lineNumber<=qEndingLine}function captureLine(){if(hasStacks)try{throw new Error}catch(e){var lines=e.stack.split("\n"),firstLine=lines[0].indexOf("@")>0?lines[1]:lines[2],fileNameAndLineNumber=getFileNameAndLineNumber(firstLine);if(!fileNameAndLineNumber)return;return qFileName=fileNameAndLineNumber[0],fileNameAndLineNumber[1]}}function deprecate(callback,name,alternative){return function(){return"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(name+" is deprecated, use "+alternative+" instead.",new Error("").stack),callback.apply(callback,arguments)}}function Q(value){return isPromise(value)?value:isPromiseAlike(value)?coerce(value):fulfill(value)}function defer(){function become(newPromise){resolvedPromise=newPromise,promise.source=newPromise,array_reduce(messages,function(undefined,message){nextTick(function(){newPromise.promiseDispatch.apply(newPromise,message)})},void 0),messages=void 0,progressListeners=void 0}var resolvedPromise,messages=[],progressListeners=[],deferred=object_create(defer.prototype),promise=object_create(Promise.prototype);if(promise.promiseDispatch=function(resolve,op,operands){var args=array_slice(arguments);messages?(messages.push(args),"when"===op&&operands[1]&&progressListeners.push(operands[1])):nextTick(function(){resolvedPromise.promiseDispatch.apply(resolvedPromise,args)})},promise.valueOf=deprecate(function(){if(messages)return promise;var nearerValue=nearer(resolvedPromise);return isPromise(nearerValue)&&(resolvedPromise=nearerValue),nearerValue},"valueOf","inspect"),promise.inspect=function(){return resolvedPromise?resolvedPromise.inspect():{state:"pending"}},Q.longStackSupport&&hasStacks)try{throw new Error}catch(e){promise.stack=e.stack.substring(e.stack.indexOf("\n")+1)}return deferred.promise=promise,deferred.resolve=function(value){resolvedPromise||become(Q(value))},deferred.fulfill=function(value){resolvedPromise||become(fulfill(value))},deferred.reject=function(reason){resolvedPromise||become(reject(reason))},deferred.notify=function(progress){resolvedPromise||array_reduce(progressListeners,function(undefined,progressListener){nextTick(function(){progressListener(progress)})},void 0)},deferred}function promise(resolver){if("function"!=typeof resolver)throw new TypeError("resolver must be a function.");var deferred=defer();try{resolver(deferred.resolve,deferred.reject,deferred.notify)}catch(reason){deferred.reject(reason)}return deferred.promise}function race(answerPs){return promise(function(resolve,reject){for(var i=0,len=answerPs.length;i=length)throw new TypeError}for(;index2?self.resolve(array_slice(arguments,1)):self.resolve(value)}},Q.promise=promise,Q.passByCopy=function(object){return object},Promise.prototype.passByCopy=function(){return this},Q.join=function(x,y){return Q(x).join(y)},Promise.prototype.join=function(that){return Q([this,that]).spread(function(x,y){if(x===y)return x;throw new Error("Can't join: not the same: "+x+" "+y)})},Q.race=race,Promise.prototype.race=function(){return this.then(Q.race)},Q.makePromise=Promise,Promise.prototype.toString=function(){ return"[object Promise]"},Promise.prototype.then=function(fulfilled,rejected,progressed){function _fulfilled(value){try{return"function"==typeof fulfilled?fulfilled(value):value}catch(exception){return reject(exception)}}function _rejected(exception){if("function"==typeof rejected){makeStackTraceLong(exception,self);try{return rejected(exception)}catch(newException){return reject(newException)}}return reject(exception)}function _progressed(value){return"function"==typeof progressed?progressed(value):value}var self=this,deferred=defer(),done=!1;return nextTick(function(){self.promiseDispatch(function(value){done||(done=!0,deferred.resolve(_fulfilled(value)))},"when",[function(exception){done||(done=!0,deferred.resolve(_rejected(exception)))}])}),self.promiseDispatch(void 0,"when",[void 0,function(value){var newValue,threw=!1;try{newValue=_progressed(value)}catch(e){if(threw=!0,!Q.onerror)throw e;Q.onerror(e)}threw||deferred.notify(newValue)}]),deferred.promise},Q.when=when,Promise.prototype.thenResolve=function(value){return this.then(function(){return value})},Q.thenResolve=function(promise,value){return Q(promise).thenResolve(value)},Promise.prototype.thenReject=function(reason){return this.then(function(){throw reason})},Q.thenReject=function(promise,reason){return Q(promise).thenReject(reason)},Q.nearer=nearer,Q.isPromise=isPromise,Q.isPromiseAlike=isPromiseAlike,Q.isPending=isPending,Promise.prototype.isPending=function(){return"pending"===this.inspect().state},Q.isFulfilled=isFulfilled,Promise.prototype.isFulfilled=function(){return"fulfilled"===this.inspect().state},Q.isRejected=isRejected,Promise.prototype.isRejected=function(){return"rejected"===this.inspect().state};var unhandledReasons=[],unhandledRejections=[],unhandledReasonsDisplayed=!1,trackUnhandledRejections=!0;Q.resetUnhandledRejections=resetUnhandledRejections,Q.getUnhandledReasons=function(){return unhandledReasons.slice()},Q.stopUnhandledRejectionTracking=function(){resetUnhandledRejections(),"undefined"!=typeof process&&process.on&&process.removeListener("exit",logUnhandledReasons),trackUnhandledRejections=!1},resetUnhandledRejections(),Q.reject=reject,Q.fulfill=fulfill,Q.master=master,Q.spread=spread,Promise.prototype.spread=function(fulfilled,rejected){return this.all().then(function(array){return fulfilled.apply(void 0,array)},rejected)},Q.async=async,Q.spawn=spawn,Q["return"]=_return,Q.promised=promised,Q.dispatch=dispatch,Promise.prototype.dispatch=function(op,args){var self=this,deferred=defer();return nextTick(function(){self.promiseDispatch(deferred.resolve,op,args)}),deferred.promise},Q.get=function(object,key){return Q(object).dispatch("get",[key])},Promise.prototype.get=function(key){return this.dispatch("get",[key])},Q.set=function(object,key,value){return Q(object).dispatch("set",[key,value])},Promise.prototype.set=function(key,value){return this.dispatch("set",[key,value])},Q.del=Q["delete"]=function(object,key){return Q(object).dispatch("delete",[key])},Promise.prototype.del=Promise.prototype["delete"]=function(key){return this.dispatch("delete",[key])},Q.mapply=Q.post=function(object,name,args){return Q(object).dispatch("post",[name,args])},Promise.prototype.mapply=Promise.prototype.post=function(name,args){return this.dispatch("post",[name,args])},Q.send=Q.mcall=Q.invoke=function(object,name){return Q(object).dispatch("post",[name,array_slice(arguments,2)])},Promise.prototype.send=Promise.prototype.mcall=Promise.prototype.invoke=function(name){return this.dispatch("post",[name,array_slice(arguments,1)])},Q.fapply=function(object,args){return Q(object).dispatch("apply",[void 0,args])},Promise.prototype.fapply=function(args){return this.dispatch("apply",[void 0,args])},Q["try"]=Q.fcall=function(object){return Q(object).dispatch("apply",[void 0,array_slice(arguments,1)])},Promise.prototype.fcall=function(){return this.dispatch("apply",[void 0,array_slice(arguments)])},Q.fbind=function(object){var promise=Q(object),args=array_slice(arguments,1);return function(){return promise.dispatch("apply",[this,args.concat(array_slice(arguments))])}},Promise.prototype.fbind=function(){var promise=this,args=array_slice(arguments);return function(){return promise.dispatch("apply",[this,args.concat(array_slice(arguments))])}},Q.keys=function(object){return Q(object).dispatch("keys",[])},Promise.prototype.keys=function(){return this.dispatch("keys",[])},Q.all=all,Promise.prototype.all=function(){return all(this)},Q.allResolved=deprecate(allResolved,"allResolved","allSettled"),Promise.prototype.allResolved=function(){return allResolved(this)},Q.allSettled=allSettled,Promise.prototype.allSettled=function(){return this.then(function(promises){return all(array_map(promises,function(promise){function regardless(){return promise.inspect()}return promise=Q(promise),promise.then(regardless,regardless)}))})},Q.fail=Q["catch"]=function(object,rejected){return Q(object).then(void 0,rejected)},Promise.prototype.fail=Promise.prototype["catch"]=function(rejected){return this.then(void 0,rejected)},Q.progress=progress,Promise.prototype.progress=function(progressed){return this.then(void 0,void 0,progressed)},Q.fin=Q["finally"]=function(object,callback){return Q(object)["finally"](callback)},Promise.prototype.fin=Promise.prototype["finally"]=function(callback){return callback=Q(callback),this.then(function(value){return callback.fcall().then(function(){return value})},function(reason){return callback.fcall().then(function(){throw reason})})},Q.done=function(object,fulfilled,rejected,progress){return Q(object).done(fulfilled,rejected,progress)},Promise.prototype.done=function(fulfilled,rejected,progress){var onUnhandledError=function(error){nextTick(function(){if(makeStackTraceLong(error,promise),!Q.onerror)throw error;Q.onerror(error)})},promise=fulfilled||rejected||progress?this.then(fulfilled,rejected,progress):this;"object"==typeof process&&process&&process.domain&&(onUnhandledError=process.domain.bind(onUnhandledError)),promise.then(void 0,onUnhandledError)},Q.timeout=function(object,ms,message){return Q(object).timeout(ms,message)},Promise.prototype.timeout=function(ms,message){var deferred=defer(),timeoutId=setTimeout(function(){deferred.reject(new Error(message||"Timed out after "+ms+" ms"))},ms);return this.then(function(value){clearTimeout(timeoutId),deferred.resolve(value)},function(exception){clearTimeout(timeoutId),deferred.reject(exception)},deferred.notify),deferred.promise},Q.delay=function(object,timeout){return void 0===timeout&&(timeout=object,object=void 0),Q(object).delay(timeout)},Promise.prototype.delay=function(timeout){return this.then(function(value){var deferred=defer();return setTimeout(function(){deferred.resolve(value)},timeout),deferred.promise})},Q.nfapply=function(callback,args){return Q(callback).nfapply(args)},Promise.prototype.nfapply=function(args){var deferred=defer(),nodeArgs=array_slice(args);return nodeArgs.push(deferred.makeNodeResolver()),this.fapply(nodeArgs).fail(deferred.reject),deferred.promise},Q.nfcall=function(callback){var args=array_slice(arguments,1);return Q(callback).nfapply(args)},Promise.prototype.nfcall=function(){var nodeArgs=array_slice(arguments),deferred=defer();return nodeArgs.push(deferred.makeNodeResolver()),this.fapply(nodeArgs).fail(deferred.reject),deferred.promise},Q.nfbind=Q.denodeify=function(callback){var baseArgs=array_slice(arguments,1);return function(){var nodeArgs=baseArgs.concat(array_slice(arguments)),deferred=defer();return nodeArgs.push(deferred.makeNodeResolver()),Q(callback).fapply(nodeArgs).fail(deferred.reject),deferred.promise}},Promise.prototype.nfbind=Promise.prototype.denodeify=function(){var args=array_slice(arguments);return args.unshift(this),Q.denodeify.apply(void 0,args)},Q.nbind=function(callback,thisp){var baseArgs=array_slice(arguments,2);return function(){function bound(){return callback.apply(thisp,arguments)}var nodeArgs=baseArgs.concat(array_slice(arguments)),deferred=defer();return nodeArgs.push(deferred.makeNodeResolver()),Q(bound).fapply(nodeArgs).fail(deferred.reject),deferred.promise}},Promise.prototype.nbind=function(){var args=array_slice(arguments,0);return args.unshift(this),Q.nbind.apply(void 0,args)},Q.nmapply=Q.npost=function(object,name,args){return Q(object).npost(name,args)},Promise.prototype.nmapply=Promise.prototype.npost=function(name,args){var nodeArgs=array_slice(args||[]),deferred=defer();return nodeArgs.push(deferred.makeNodeResolver()),this.dispatch("post",[name,nodeArgs]).fail(deferred.reject),deferred.promise},Q.nsend=Q.nmcall=Q.ninvoke=function(object,name){var nodeArgs=array_slice(arguments,2),deferred=defer();return nodeArgs.push(deferred.makeNodeResolver()),Q(object).dispatch("post",[name,nodeArgs]).fail(deferred.reject),deferred.promise},Promise.prototype.nsend=Promise.prototype.nmcall=Promise.prototype.ninvoke=function(name){var nodeArgs=array_slice(arguments,1),deferred=defer();return nodeArgs.push(deferred.makeNodeResolver()),this.dispatch("post",[name,nodeArgs]).fail(deferred.reject),deferred.promise},Q.nodeify=nodeify,Promise.prototype.nodeify=function(nodeback){return nodeback?void this.then(function(value){nextTick(function(){nodeback(null,value)})},function(error){nextTick(function(){nodeback(error)})}):this};var qEndingLine=captureLine();return Q}),function(undefined){function defaultParsingFlags(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function padToken(func,count){return function(a){return leftZeroFill(func.call(this,a),count)}}function ordinalizeToken(func,period){return function(a){return this.lang().ordinal(func.call(this,a),period)}}function Language(){}function Moment(config){checkOverflow(config),extend(this,config)}function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._milliseconds=+milliseconds+1e3*seconds+6e4*minutes+36e5*hours,this._days=+days+7*weeks,this._months=+months+12*years,this._data={},this._bubble()}function extend(a,b){for(var i in b)b.hasOwnProperty(i)&&(a[i]=b[i]);return b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function cloneMoment(m){var i,result={};for(i in m)m.hasOwnProperty(i)&&momentProperties.hasOwnProperty(i)&&(result[i]=m[i]);return result}function absRound(number){return number<0?Math.ceil(number):Math.floor(number)}function leftZeroFill(number,targetLength,forceSign){for(var output=""+Math.abs(number),sign=number>=0;output.length=0?Math.floor(coercedNumber):Math.ceil(coercedNumber)),value}function daysInMonth(year,month){return new Date(Date.UTC(year,month+1,0)).getUTCDate()}function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}function checkOverflow(m){var overflow;m._a&&m._pf.overflow===-2&&(overflow=m._a[MONTH]<0||m._a[MONTH]>11?MONTH:m._a[DATE]<1||m._a[DATE]>daysInMonth(m._a[YEAR],m._a[MONTH])?DATE:m._a[HOUR]<0||m._a[HOUR]>23?HOUR:m._a[MINUTE]<0||m._a[MINUTE]>59?MINUTE:m._a[SECOND]<0||m._a[SECOND]>59?SECOND:m._a[MILLISECOND]<0||m._a[MILLISECOND]>999?MILLISECOND:-1,m._pf._overflowDayOfYear&&(overflowDATE)&&(overflow=DATE),m._pf.overflow=overflow)}function isValid(m){return null==m._isValid&&(m._isValid=!isNaN(m._d.getTime())&&m._pf.overflow<0&&!m._pf.empty&&!m._pf.invalidMonth&&!m._pf.nullInput&&!m._pf.invalidFormat&&!m._pf.userInvalidated,m._strict&&(m._isValid=m._isValid&&0===m._pf.charsLeftOver&&0===m._pf.unusedTokens.length)),m._isValid}function normalizeLanguage(key){return key?key.toLowerCase().replace("_","-"):key}function makeAs(input,model){return model._isUTC?moment(input).zone(model._offset||0):moment(input).local()}function loadLang(key,values){return values.abbr=key,languages[key]||(languages[key]=new Language),languages[key].set(values),languages[key]}function unloadLang(key){delete languages[key]}function getLangDefinition(key){var j,lang,next,split,i=0,get=function(k){if(!languages[k]&&hasModule)try{require("./lang/"+k)}catch(e){}return languages[k]};if(!key)return moment.fn._lang;if(!isArray(key)){if(lang=get(key))return lang;key=[key]}for(;i0;){if(lang=get(split.slice(0,j).join("-")))return lang;if(next&&next.length>=j&&compareArrays(split,next,!0)>=j-1)break;j--}i++}return moment.fn._lang}function removeFormattingTokens(input){return input.match(/\[[\s\S]/)?input.replace(/^\[|\]$/g,""):input.replace(/\\/g,"")}function makeFormatFunction(format){var i,length,array=format.match(formattingTokens);for(i=0,length=array.length;i=0&&localFormattingTokens.test(format);)format=format.replace(localFormattingTokens,replaceLongDateFormatTokens),localFormattingTokens.lastIndex=0,i-=1;return format}function getParseRegexForToken(token,config){var a,strict=config._strict;switch(token){case"DDDD":return parseTokenThreeDigits;case"YYYY":case"GGGG":case"gggg":return strict?parseTokenFourDigits:parseTokenOneToFourDigits;case"Y":case"G":case"g":return parseTokenSignedNumber;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return strict?parseTokenSixDigits:parseTokenOneToSixDigits;case"S":if(strict)return parseTokenOneDigit;case"SS":if(strict)return parseTokenTwoDigits;case"SSS":if(strict)return parseTokenThreeDigits;case"DDD":return parseTokenOneToThreeDigits;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return parseTokenWord;case"a":case"A":return getLangDefinition(config._l)._meridiemParse;case"X":return parseTokenTimestampMs;case"Z":case"ZZ":return parseTokenTimezone;case"T":return parseTokenT;case"SSSS":return parseTokenDigits;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return strict?parseTokenTwoDigits:parseTokenOneOrTwoDigits;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return parseTokenOneOrTwoDigits;default:return a=new RegExp(regexpEscape(unescapeFormat(token.replace("\\","")),"i"))}}function timezoneMinutesFromString(string){string=string||"";var possibleTzMatches=string.match(parseTokenTimezone)||[],tzChunk=possibleTzMatches[possibleTzMatches.length-1]||[],parts=(tzChunk+"").match(parseTimezoneChunker)||["-",0,0],minutes=+(60*parts[1])+toInt(parts[2]);return"+"===parts[0]?-minutes:minutes}function addTimeToArrayFromToken(token,input,config){var a,datePartArray=config._a;switch(token){case"M":case"MM":null!=input&&(datePartArray[MONTH]=toInt(input)-1);break;case"MMM":case"MMMM":a=getLangDefinition(config._l).monthsParse(input),null!=a?datePartArray[MONTH]=a:config._pf.invalidMonth=input;break;case"D":case"DD":null!=input&&(datePartArray[DATE]=toInt(input));break;case"DDD":case"DDDD":null!=input&&(config._dayOfYear=toInt(input));break;case"YY":datePartArray[YEAR]=toInt(input)+(toInt(input)>68?1900:2e3);break;case"YYYY":case"YYYYY":case"YYYYYY":datePartArray[YEAR]=toInt(input);break;case"a":case"A":config._isPm=getLangDefinition(config._l).isPM(input);break;case"H":case"HH":case"h":case"hh":datePartArray[HOUR]=toInt(input);break;case"m":case"mm":datePartArray[MINUTE]=toInt(input);break;case"s":case"ss":datePartArray[SECOND]=toInt(input);break;case"S":case"SS":case"SSS":case"SSSS":datePartArray[MILLISECOND]=toInt(1e3*("0."+input));break;case"X":config._d=new Date(1e3*parseFloat(input));break;case"Z":case"ZZ":config._useUTC=!0,config._tzm=timezoneMinutesFromString(input);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":token=token.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":token=token.substr(0,2),input&&(config._w=config._w||{},config._w[token]=input)}}function dateFromConfig(config){var i,date,currentDate,yearToUse,fixYear,w,temp,lang,weekday,week,input=[];if(!config._d){for(currentDate=currentDateArray(config),config._w&&null==config._a[DATE]&&null==config._a[MONTH]&&(fixYear=function(val){var int_val=parseInt(val,10);return val?val.length<3?int_val>68?1900+int_val:2e3+int_val:int_val:null==config._a[YEAR]?moment().weekYear():config._a[YEAR]},w=config._w,null!=w.GG||null!=w.W||null!=w.E?temp=dayOfYearFromWeeks(fixYear(w.GG),w.W||1,w.E,4,1):(lang=getLangDefinition(config._l),weekday=null!=w.d?parseWeekday(w.d,lang):null!=w.e?parseInt(w.e,10)+lang._week.dow:0,week=parseInt(w.w,10)||1,null!=w.d&&weekdaydaysInYear(yearToUse)&&(config._pf._overflowDayOfYear=!0),date=makeUTCDate(yearToUse,0,config._dayOfYear),config._a[MONTH]=date.getUTCMonth(),config._a[DATE]=date.getUTCDate()),i=0;i<3&&null==config._a[i];++i)config._a[i]=input[i]=currentDate[i];for(;i<7;i++)config._a[i]=input[i]=null==config._a[i]?2===i?1:0:config._a[i];input[HOUR]+=toInt((config._tzm||0)/60),input[MINUTE]+=toInt((config._tzm||0)%60),config._d=(config._useUTC?makeUTCDate:makeDate).apply(null,input)}}function dateFromObject(config){var normalizedInput;config._d||(normalizedInput=normalizeObjectUnits(config._i),config._a=[normalizedInput.year,normalizedInput.month,normalizedInput.day,normalizedInput.hour,normalizedInput.minute,normalizedInput.second,normalizedInput.millisecond],dateFromConfig(config))}function currentDateArray(config){var now=new Date;return config._useUTC?[now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate()]:[now.getFullYear(),now.getMonth(),now.getDate()]}function makeDateFromStringAndFormat(config){config._a=[],config._pf.empty=!0;var i,parsedInput,tokens,token,skipped,lang=getLangDefinition(config._l),string=""+config._i,stringLength=string.length,totalParsedInputLength=0;for(tokens=expandFormat(config._f,lang).match(formattingTokens)||[],i=0;i0&&config._pf.unusedInput.push(skipped),string=string.slice(string.indexOf(parsedInput)+parsedInput.length),totalParsedInputLength+=parsedInput.length),formatTokenFunctions[token]?(parsedInput?config._pf.empty=!1:config._pf.unusedTokens.push(token),addTimeToArrayFromToken(token,parsedInput,config)):config._strict&&!parsedInput&&config._pf.unusedTokens.push(token);config._pf.charsLeftOver=stringLength-totalParsedInputLength,string.length>0&&config._pf.unusedInput.push(string),config._isPm&&config._a[HOUR]<12&&(config._a[HOUR]+=12),config._isPm===!1&&12===config._a[HOUR]&&(config._a[HOUR]=0),dateFromConfig(config),checkOverflow(config)}function unescapeFormat(s){return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4})}function regexpEscape(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function makeDateFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(0===config._f.length)return config._pf.invalidFormat=!0,void(config._d=new Date(NaN));for(i=0;i0,args[4]=lang,substituteTimeAgo.apply({},args)}function weekOfYear(mom,firstDayOfWeek,firstDayOfWeekOfYear){var adjustedMoment,end=firstDayOfWeekOfYear-firstDayOfWeek,daysToDayOfWeek=firstDayOfWeekOfYear-mom.day();return daysToDayOfWeek>end&&(daysToDayOfWeek-=7),daysToDayOfWeekfirstDayOfWeekOfYear?7:0)-(d0?year:year-1,dayOfYear:dayOfYear>0?dayOfYear:daysInYear(year-1)+dayOfYear}}function makeMoment(config){var input=config._i,format=config._f;return null===input?moment.invalid({nullInput:!0}):("string"==typeof input&&(config._i=input=getLangDefinition().preparse(input)),moment.isMoment(input)?(config=cloneMoment(input),config._d=new Date((+input._d))):format?isArray(format)?makeDateFromStringAndArray(config):makeDateFromStringAndFormat(config):makeDateFromInput(config),new Moment(config))}function makeGetterAndSetter(name,key){moment.fn[name]=moment.fn[name+"s"]=function(input){var utc=this._isUTC?"UTC":"";return null!=input?(this._d["set"+utc+key](input),moment.updateOffset(this),this):this._d["get"+utc+key]()}}function makeDurationGetter(name){moment.duration.fn[name]=function(){return this._data[name]}}function makeDurationAsGetter(name,factor){moment.duration.fn["as"+name]=function(){return+this/factor}}function makeGlobal(deprecate){var warned=!1,local_moment=moment;"undefined"==typeof ender&&(deprecate?(global.moment=function(){return!warned&&console&&console.warn&&(warned=!0,console.warn("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.")),local_moment.apply(null,arguments)},extend(global.moment,local_moment)):global.moment=moment)}for(var moment,i,VERSION="2.5.1",global=this,round=Math.round,YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,languages={},momentProperties={_isAMomentObject:null,_i:null,_f:null,_l:null,_strict:null,_isUTC:null,_offset:null,_pf:null,_lang:null},hasModule="undefined"!=typeof module&&module.exports&&"undefined"!=typeof require,aspNetJsonRegex=/^\/?Date\((\-?\d+)/i,aspNetTimeSpanJsonRegex=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,isoDurationRegex=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,formattingTokens=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,parseTokenOneOrTwoDigits=/\d\d?/,parseTokenOneToThreeDigits=/\d{1,3}/,parseTokenOneToFourDigits=/\d{1,4}/,parseTokenOneToSixDigits=/[+\-]?\d{1,6}/,parseTokenDigits=/\d+/,parseTokenWord=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,parseTokenTimezone=/Z|[\+\-]\d\d:?\d\d/gi,parseTokenT=/T/i,parseTokenTimestampMs=/[\+\-]?\d+(\.\d{1,3})?/,parseTokenOneDigit=/\d/,parseTokenTwoDigits=/\d\d/,parseTokenThreeDigits=/\d{3}/,parseTokenFourDigits=/\d{4}/,parseTokenSixDigits=/[+-]?\d{6}/,parseTokenSignedNumber=/[+-]?\d+/,isoRegex=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,isoFormat="YYYY-MM-DDTHH:mm:ssZ",isoDates=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],isoTimes=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],parseTimezoneChunker=/([\+\-]|\d\d)/gi,proxyGettersAndSetters="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),unitMillisecondFactors={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},unitAliases={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},camelFunctions={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},formatFunctions={},ordinalizeTokens="DDD w W M D d".split(" "),paddedTokens="M D H h m s w W".split(" "),formatTokenFunctions={M:function(){return this.month()+1},MMM:function(format){return this.lang().monthsShort(this,format)},MMMM:function(format){return this.lang().months(this,format)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(format){return this.lang().weekdaysMin(this,format)},ddd:function(format){return this.lang().weekdaysShort(this,format)},dddd:function(format){return this.lang().weekdays(this,format)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return leftZeroFill(this.year()%100,2)},YYYY:function(){return leftZeroFill(this.year(),4)},YYYYY:function(){return leftZeroFill(this.year(),5)},YYYYYY:function(){var y=this.year(),sign=y>=0?"+":"-";return sign+leftZeroFill(Math.abs(y),6)},gg:function(){return leftZeroFill(this.weekYear()%100,2)},gggg:function(){return leftZeroFill(this.weekYear(),4)},ggggg:function(){return leftZeroFill(this.weekYear(),5)},GG:function(){return leftZeroFill(this.isoWeekYear()%100,2)},GGGG:function(){return leftZeroFill(this.isoWeekYear(),4)},GGGGG:function(){return leftZeroFill(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return toInt(this.milliseconds()/100)},SS:function(){return leftZeroFill(toInt(this.milliseconds()/10),2)},SSS:function(){return leftZeroFill(this.milliseconds(),3)},SSSS:function(){return leftZeroFill(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return a<0&&(a=-a,b="-"),b+leftZeroFill(toInt(a/60),2)+":"+leftZeroFill(toInt(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return a<0&&(a=-a,b="-"),b+leftZeroFill(toInt(a/60),2)+leftZeroFill(toInt(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},lists=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];ordinalizeTokens.length;)i=ordinalizeTokens.pop(),formatTokenFunctions[i+"o"]=ordinalizeToken(formatTokenFunctions[i],i);for(;paddedTokens.length;)i=paddedTokens.pop(),formatTokenFunctions[i+i]=padToken(formatTokenFunctions[i],2);for(formatTokenFunctions.DDDD=padToken(formatTokenFunctions.DDD,3),extend(Language.prototype,{set:function(config){var prop,i;for(i in config)prop=config[i],"function"==typeof prop?this[i]=prop:this["_"+i]=prop},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"), months:function(m){return this._months[m.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(m){return this._monthsShort[m.month()]},monthsParse:function(monthName){var i,mom,regex;for(this._monthsParse||(this._monthsParse=[]),i=0;i<12;i++)if(this._monthsParse[i]||(mom=moment.utc([2e3,i]),regex="^"+this.months(mom,"")+"|^"+this.monthsShort(mom,""),this._monthsParse[i]=new RegExp(regex.replace(".",""),"i")),this._monthsParse[i].test(monthName))return i},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(m){return this._weekdays[m.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(m){return this._weekdaysShort[m.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(m){return this._weekdaysMin[m.day()]},weekdaysParse:function(weekdayName){var i,mom,regex;for(this._weekdaysParse||(this._weekdaysParse=[]),i=0;i<7;i++)if(this._weekdaysParse[i]||(mom=moment([2e3,1]).day(i),regex="^"+this.weekdays(mom,"")+"|^"+this.weekdaysShort(mom,"")+"|^"+this.weekdaysMin(mom,""),this._weekdaysParse[i]=new RegExp(regex.replace(".",""),"i")),this._weekdaysParse[i].test(weekdayName))return i},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(key){var output=this._longDateFormat[key];return!output&&this._longDateFormat[key.toUpperCase()]&&(output=this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)}),this._longDateFormat[key]=output),output},isPM:function(input){return"p"===(input+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(hours,minutes,isLower){return hours>11?isLower?"pm":"PM":isLower?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(key,mom){var output=this._calendar[key];return"function"==typeof output?output.apply(mom):output},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return"function"==typeof output?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)},pastFuture:function(diff,output){var format=this._relativeTime[diff>0?"future":"past"];return"function"==typeof format?format(output):format.replace(/%s/i,output)},ordinal:function(number){return this._ordinal.replace("%d",number)},_ordinal:"%d",preparse:function(string){return string},postformat:function(string){return string},week:function(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),moment=function(input,format,lang,strict){var c;return"boolean"==typeof lang&&(strict=lang,lang=undefined),c={},c._isAMomentObject=!0,c._i=input,c._f=format,c._l=lang,c._strict=strict,c._isUTC=!1,c._pf=defaultParsingFlags(),makeMoment(c)},moment.utc=function(input,format,lang,strict){var c;return"boolean"==typeof lang&&(strict=lang,lang=undefined),c={},c._isAMomentObject=!0,c._useUTC=!0,c._isUTC=!0,c._l=lang,c._i=input,c._f=format,c._strict=strict,c._pf=defaultParsingFlags(),makeMoment(c).utc()},moment.unix=function(input){return moment(1e3*input)},moment.duration=function(input,key){var sign,ret,parseIso,duration=input,match=null;return moment.isDuration(input)?duration={ms:input._milliseconds,d:input._days,M:input._months}:"number"==typeof input?(duration={},key?duration[key]=input:duration.milliseconds=input):(match=aspNetTimeSpanJsonRegex.exec(input))?(sign="-"===match[1]?-1:1,duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(match[MILLISECOND])*sign}):(match=isoDurationRegex.exec(input))&&(sign="-"===match[1]?-1:1,parseIso=function(inp){var res=inp&&parseFloat(inp.replace(",","."));return(isNaN(res)?0:res)*sign},duration={y:parseIso(match[2]),M:parseIso(match[3]),d:parseIso(match[4]),h:parseIso(match[5]),m:parseIso(match[6]),s:parseIso(match[7]),w:parseIso(match[8])}),ret=new Duration(duration),moment.isDuration(input)&&input.hasOwnProperty("_lang")&&(ret._lang=input._lang),ret},moment.version=VERSION,moment.defaultFormat=isoFormat,moment.updateOffset=function(){},moment.lang=function(key,values){var r;return key?(values?loadLang(normalizeLanguage(key),values):null===values?(unloadLang(key),key="en"):languages[key]||getLangDefinition(key),r=moment.duration.fn._lang=moment.fn._lang=getLangDefinition(key),r._abbr):moment.fn._lang._abbr},moment.langData=function(key){return key&&key._lang&&key._lang._abbr&&(key=key._lang._abbr),getLangDefinition(key)},moment.isMoment=function(obj){return obj instanceof Moment||null!=obj&&obj.hasOwnProperty("_isAMomentObject")},moment.isDuration=function(obj){return obj instanceof Duration},i=lists.length-1;i>=0;--i)makeList(lists[i]);for(moment.normalizeUnits=function(units){return normalizeUnits(units)},moment.invalid=function(flags){var m=moment.utc(NaN);return null!=flags?extend(m._pf,flags):m._pf.userInvalidated=!0,m},moment.parseZone=function(input){return moment(input).parseZone()},extend(moment.fn=Moment.prototype,{clone:function(){return moment(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date((+this)):this._d},toISOString:function(){var m=moment(this).utc();return 00)},parsingFlags:function(){return extend({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(inputString){var output=formatMoment(this,inputString||moment.defaultFormat);return this.lang().postformat(output)},add:function(input,val){var dur;return dur="string"==typeof input?moment.duration(+val,input):moment.duration(input,val),addOrSubtractDurationFromMoment(this,dur,1),this},subtract:function(input,val){var dur;return dur="string"==typeof input?moment.duration(+val,input):moment.duration(input,val),addOrSubtractDurationFromMoment(this,dur,-1),this},diff:function(input,units,asFloat){var diff,output,that=makeAs(input,this),zoneDiff=6e4*(this.zone()-that.zone());return units=normalizeUnits(units),"year"===units||"month"===units?(diff=432e5*(this.daysInMonth()+that.daysInMonth()),output=12*(this.year()-that.year())+(this.month()-that.month()),output+=(this-moment(this).startOf("month")-(that-moment(that).startOf("month")))/diff,output-=6e4*(this.zone()-moment(this).startOf("month").zone()-(that.zone()-moment(that).startOf("month").zone()))/diff,"year"===units&&(output/=12)):(diff=this-that,output="second"===units?diff/1e3:"minute"===units?diff/6e4:"hour"===units?diff/36e5:"day"===units?(diff-zoneDiff)/864e5:"week"===units?(diff-zoneDiff)/6048e5:diff),asFloat?output:absRound(output)},from:function(time,withoutSuffix){return moment.duration(this.diff(time)).lang(this.lang()._abbr).humanize(!withoutSuffix)},fromNow:function(withoutSuffix){return this.from(moment(),withoutSuffix)},calendar:function(){var sod=makeAs(moment(),this).startOf("day"),diff=this.diff(sod,"days",!0),format=diff<-6?"sameElse":diff<-1?"lastWeek":diff<0?"lastDay":diff<1?"sameDay":diff<2?"nextDay":diff<7?"nextWeek":"sameElse";return this.format(this.lang().calendar(format,this))},isLeapYear:function(){return isLeapYear(this.year())},isDST:function(){return this.zone()+moment(input).startOf(units)},isBefore:function(input,units){return units="undefined"!=typeof units?units:"millisecond",+this.clone().startOf(units)<+moment(input).startOf(units)},isSame:function(input,units){return units=units||"ms",+this.clone().startOf(units)===+makeAs(input,this).startOf(units)},min:function(other){return other=moment.apply(null,arguments),otherthis?this:other},zone:function(input){var offset=this._offset||0;return null==input?this._isUTC?offset:this._d.getTimezoneOffset():("string"==typeof input&&(input=timezoneMinutesFromString(input)),Math.abs(input)<16&&(input=60*input),this._offset=input,this._isUTC=!0,offset!==input&&addOrSubtractDurationFromMoment(this,moment.duration(offset-input,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(input){return input=input?moment(input).zone():0,(this.zone()-input)%60===0},daysInMonth:function(){return daysInMonth(this.year(),this.month())},dayOfYear:function(input){var dayOfYear=round((moment(this).startOf("day")-moment(this).startOf("year"))/864e5)+1;return null==input?dayOfYear:this.add("d",input-dayOfYear)},quarter:function(){return Math.ceil((this.month()+1)/3)},weekYear:function(input){var year=weekOfYear(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==input?year:this.add("y",input-year)},isoWeekYear:function(input){var year=weekOfYear(this,1,4).year;return null==input?year:this.add("y",input-year)},week:function(input){var week=this.lang().week(this);return null==input?week:this.add("d",7*(input-week))},isoWeek:function(input){var week=weekOfYear(this,1,4).week;return null==input?week:this.add("d",7*(input-week))},weekday:function(input){var weekday=(this.day()+7-this.lang()._week.dow)%7;return null==input?weekday:this.add("d",input-weekday)},isoWeekday:function(input){return null==input?this.day()||7:this.day(this.day()%7?input:input-7)},get:function(units){return units=normalizeUnits(units),this[units]()},set:function(units,value){return units=normalizeUnits(units),"function"==typeof this[units]&&this[units](value),this},lang:function(key){return key===undefined?this._lang:(this._lang=getLangDefinition(key),this)}}),i=0;i=0){var spannode=document.createElement("span");spannode.className="highlight";var middlebit=node.splitText(pos),middleclone=(middlebit.splitText(pat.length),middlebit.cloneNode(!0));spannode.appendChild(middleclone),middlebit.parentNode.replaceChild(spannode,middlebit),skip=1}}else if(1==node.nodeType&&node.childNodes&&!/(script|style)/i.test(node.tagName))for(var i=0;i15&&raise(id,tooManyDigits,n),num=!1):x.s=45===str.charCodeAt(0)?(str=str.slice(1),-1):1,str=convertBase(str,10,b,x.s)}else{if(n instanceof BigNumber)return x.s=n.s,x.e=n.e,x.c=(n=n.c)?n.slice():n,void(id=0);if((num="number"==typeof n)&&0*n==0){if(x.s=1/n<0?(n=-n,-1):1,n===~~n){for(e=0,i=n;i>=10;i/=10,e++);return x.e=e,x.c=[n],void(id=0)}str=n+""}else{if(!isNumeric.test(str=n+""))return parseNumeric(x,str,num);x.s=45===str.charCodeAt(0)?(str=str.slice(1),-1):1}}for((e=str.indexOf("."))>-1&&(str=str.replace(".","")),(i=str.search(/e/i))>0?(e<0&&(e=i),e+=+str.slice(i+1),str=str.substring(0,i)):e<0&&(e=str.length),i=0;48===str.charCodeAt(i);i++);for(len=str.length;48===str.charCodeAt(--len););if(str=str.slice(i,len+1))if(len=str.length,num&&ERRORS&&len>15&&raise(id,tooManyDigits,x.s*n),e=e-i-1,e>MAX_EXP)x.c=x.e=null;else if(e=0&&(k=POW_PRECISION,POW_PRECISION=0,str=str.replace(".",""),y=new BigNumber(baseIn),x=y.pow(str.length-i),POW_PRECISION=k,y.c=toBaseOut(toFixedPoint(coeffToString(x.c),x.e),10,baseOut),y.e=y.c.length),xc=toBaseOut(str,baseIn,baseOut),e=k=xc.length;0==xc[--k];xc.pop());if(!xc[0])return"0";if(i<0?--e:(x.c=xc,x.e=e,x.s=sign,x=div(x,y,dp,rm,baseOut),xc=x.c,r=x.r,e=x.e),d=e+dp+1,i=xc[d],k=baseOut/2,r=r||d<0||null!=xc[d+1],r=rm<4?(null!=i||r)&&(0==rm||rm==(x.s<0?3:2)):i>k||i==k&&(4==rm||r||6==rm&&1&xc[d-1]||rm==(x.s<0?8:7)),d<1||!xc[0])str=r?toFixedPoint("1",-dp):"0";else{if(xc.length=d,r)for(--baseOut;++xc[--d]>baseOut;)xc[d]=0,d||(++e,xc.unshift(1));for(k=xc.length;!xc[--k];);for(i=0,str="";i<=k;str+=ALPHABET.charAt(xc[i++]));str=toFixedPoint(str,e)}return str}function format(n,i,rm,caller){var c0,e,ne,len,str;if(rm=null!=rm&&isValidInt(rm,0,8,caller,roundingMode)?0|rm:ROUNDING_MODE,!n.c)return n.toString();if(c0=n.c[0],ne=n.e,null==i)str=coeffToString(n.c),str=19==caller||24==caller&&ne<=TO_EXP_NEG?toExponential(str,ne):toFixedPoint(str,ne);else if(n=round(new BigNumber(n),i,rm),e=n.e,str=coeffToString(n.c),len=str.length,19==caller||24==caller&&(i<=e||e<=TO_EXP_NEG)){for(;lenlen){if(--i>0)for(str+=".";i--;str+="0");}else if(i+=e-len,i>0)for(e+1==len&&(str+=".");i--;str+="0");return n.s<0&&c0?"-"+str:str}function maxOrMin(args,method){var m,n,i=0;for(isArray(args[0])&&(args=args[0]),m=new BigNumber(args[0]);++imax||n!=truncate(n))&&raise(caller,(name||"decimal places")+(nmax?" out of range":" not an integer"),n),!0}function normalise(n,c,e){for(var i=1,j=c.length;!c[--j];c.pop());for(j=c[0];j>=10;j/=10,i++);return(e=i+e*LOG_BASE-1)>MAX_EXP?n.c=n.e=null:e=10;k/=10,d++);if(i=sd-d,i<0)i+=LOG_BASE,j=sd,n=xc[ni=0],rd=n/pows10[d-j-1]%10|0;else if(ni=mathceil((i+1)/LOG_BASE),ni>=xc.length){if(!r)break out;for(;xc.length<=ni;xc.push(0));n=rd=0,d=1,i%=LOG_BASE,j=i-LOG_BASE+1}else{for(n=k=xc[ni],d=1;k>=10;k/=10,d++);i%=LOG_BASE,j=i-LOG_BASE+d,rd=j<0?0:n/pows10[d-j-1]%10|0}if(r=r||sd<0||null!=xc[ni+1]||(j<0?n:n%pows10[d-j-1]),r=rm<4?(rd||r)&&(0==rm||rm==(x.s<0?3:2)):rd>5||5==rd&&(4==rm||r||6==rm&&(i>0?j>0?n/pows10[d-j]:0:xc[ni-1])%10&1||rm==(x.s<0?8:7)),sd<1||!xc[0])return xc.length=0,r?(sd-=x.e+1,xc[0]=pows10[sd%LOG_BASE],x.e=-sd||0):xc[0]=x.e=0,x;if(0==i?(xc.length=ni,k=1,ni--):(xc.length=ni+1,k=pows10[LOG_BASE-i],xc[ni]=j>0?mathfloor(n/pows10[d-j]%pows10[j])*k:0),r)for(;;){if(0==ni){for(i=1,j=xc[0];j>=10;j/=10,i++);for(j=xc[0]+=k,k=1;j>=10;j/=10,k++);i!=k&&(x.e++,xc[0]==BASE&&(xc[0]=1));break}if(xc[ni]+=k,xc[ni]!=BASE)break;xc[ni--]=0,k=1}for(i=xc.length;0===xc[--i];xc.pop());}x.e>MAX_EXP?x.c=x.e=null:x.ei)return null!=(v=a[i++])};return has(p="DECIMAL_PLACES")&&isValidInt(v,0,MAX,2,p)&&(DECIMAL_PLACES=0|v),r[p]=DECIMAL_PLACES,has(p="ROUNDING_MODE")&&isValidInt(v,0,8,2,p)&&(ROUNDING_MODE=0|v),r[p]=ROUNDING_MODE,has(p="EXPONENTIAL_AT")&&(isArray(v)?isValidInt(v[0],-MAX,0,2,p)&&isValidInt(v[1],0,MAX,2,p)&&(TO_EXP_NEG=0|v[0],TO_EXP_POS=0|v[1]):isValidInt(v,-MAX,MAX,2,p)&&(TO_EXP_NEG=-(TO_EXP_POS=0|(v<0?-v:v)))),r[p]=[TO_EXP_NEG,TO_EXP_POS],has(p="RANGE")&&(isArray(v)?isValidInt(v[0],-MAX,-1,2,p)&&isValidInt(v[1],1,MAX,2,p)&&(MIN_EXP=0|v[0],MAX_EXP=0|v[1]):isValidInt(v,-MAX,MAX,2,p)&&(0|v?MIN_EXP=-(MAX_EXP=0|(v<0?-v:v)):ERRORS&&raise(2,p+" cannot be zero",v))),r[p]=[MIN_EXP,MAX_EXP],has(p="ERRORS")&&(v===!!v||1===v||0===v?(id=0,isValidInt=(ERRORS=!!v)?intValidatorWithErrors:intValidatorNoErrors):ERRORS&&raise(2,p+notBool,v)),r[p]=ERRORS,has(p="CRYPTO")&&(v===!!v||1===v||0===v?(CRYPTO=!(!v||!crypto||"object"!=typeof crypto),v&&!CRYPTO&&ERRORS&&raise(2,"crypto unavailable",crypto)):ERRORS&&raise(2,p+notBool,v)),r[p]=CRYPTO,has(p="MODULO_MODE")&&isValidInt(v,0,9,2,p)&&(MODULO_MODE=0|v),r[p]=MODULO_MODE,has(p="POW_PRECISION")&&isValidInt(v,0,MAX,2,p)&&(POW_PRECISION=0|v),r[p]=POW_PRECISION,has(p="FORMAT")&&("object"==typeof v?FORMAT=v:ERRORS&&raise(2,p+" not an object",v)),r[p]=FORMAT,r},BigNumber.max=function(){return maxOrMin(arguments,P.lt)},BigNumber.min=function(){return maxOrMin(arguments,P.gt)},BigNumber.random=function(){var pow2_53=9007199254740992,random53bitInt=Math.random()*pow2_53&2097151?function(){return mathfloor(Math.random()*pow2_53)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(dp){var a,b,e,k,v,i=0,c=[],rand=new BigNumber(ONE);if(dp=null!=dp&&isValidInt(dp,0,MAX,14)?0|dp:DECIMAL_PLACES,k=mathceil(dp/LOG_BASE),CRYPTO)if(crypto&&crypto.getRandomValues){for(a=crypto.getRandomValues(new Uint32Array(k*=2));i>>11),v>=9e15?(b=crypto.getRandomValues(new Uint32Array(2)),a[i]=b[0],a[i+1]=b[1]):(c.push(v%1e14),i+=2);i=k/2}else if(crypto&&crypto.randomBytes){for(a=crypto.randomBytes(k*=7);i=9e15?crypto.randomBytes(7).copy(a,i):(c.push(v%1e14),i+=7);i=k/7}else ERRORS&&raise(14,"crypto unavailable",crypto);if(!i)for(;i=10;v/=10,i++);ibL?1:-1;else for(i=cmp=0;ib[i]?1:-1;break}return cmp}function subtract(a,b,aL,base){for(var i=0;aL--;)a[aL]-=i,i=a[aL]1;a.shift());}return function(x,y,dp,rm,base){var cmp,e,i,more,n,prod,prodL,q,qc,rem,remL,rem0,xi,xL,yc0,yL,yz,s=x.s==y.s?1:-1,xc=x.c,yc=y.c;if(!(xc&&xc[0]&&yc&&yc[0]))return new BigNumber(x.s&&y.s&&(xc?!yc||xc[0]!=yc[0]:yc)?xc&&0==xc[0]||!yc?0*s:s/0:NaN);for(q=new BigNumber(s),qc=q.c=[],e=x.e-y.e,s=dp+e+1,base||(base=BASE,e=bitFloor(x.e/LOG_BASE)-bitFloor(y.e/LOG_BASE),s=s/LOG_BASE|0),i=0;yc[i]==(xc[i]||0);i++);if(yc[i]>(xc[i]||0)&&e--,s<0)qc.push(1),more=!0;else{for(xL=xc.length,yL=yc.length,i=0,s+=2,n=mathfloor(base/(yc[0]+1)),n>1&&(yc=multiply(yc,n,base),xc=multiply(xc,n,base),yL=yc.length,xL=xc.length),xi=yL,rem=xc.slice(0,yL),remL=rem.length;remL=base/2&&yc0++;do{if(n=0,cmp=compare(yc,rem,yL,remL),cmp<0){if(rem0=rem[0],yL!=remL&&(rem0=rem0*base+(rem[1]||0)),n=mathfloor(rem0/yc0),n>1)for(n>=base&&(n=base-1),prod=multiply(yc,n,base),prodL=prod.length,remL=rem.length;1==compare(prod,rem,prodL,remL);)n--,subtract(prod,yL=10;s/=10,i++);round(q,dp+(q.e=i+e*LOG_BASE-1)+1,rm,more)}else q.e=e,q.r=+more;return q}}(),parseNumeric=function(){var basePrefix=/^(-?)0([xbo])(?=\w[\w.]*$)/i,dotAfter=/^([^.]+)\.$/,dotBefore=/^\.([^.]+)$/,isInfinityOrNaN=/^-?(Infinity|NaN)$/,whitespaceOrPlus=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(x,str,num,b){var base,s=num?str:str.replace(whitespaceOrPlus,"");if(isInfinityOrNaN.test(s))x.s=isNaN(s)?null:s<0?-1:1;else{if(!num&&(s=s.replace(basePrefix,function(m,p1,p2){return base="x"==(p2=p2.toLowerCase())?16:"b"==p2?2:8,b&&b!=base?m:p1}),b&&(base=b,s=s.replace(dotAfter,"$1").replace(dotBefore,"0.$1")),str!=s))return new BigNumber(s,base);ERRORS&&raise(id,"not a"+(b?" base "+b:"")+" number",str),x.s=null}x.c=x.e=null,id=0}}(),P.absoluteValue=P.abs=function(){var x=new BigNumber(this);return x.s<0&&(x.s=1),x},P.ceil=function(){return round(new BigNumber(this),this.e+1,2)},P.comparedTo=P.cmp=function(y,b){return id=1,compare(this,new BigNumber(y,b))},P.decimalPlaces=P.dp=function(){var n,v,c=this.c;if(!c)return null;if(n=((v=c.length-1)-bitFloor(this.e/LOG_BASE))*LOG_BASE,v=c[v])for(;v%10==0;v/=10,n--);return n<0&&(n=0),n},P.dividedBy=P.div=function(y,b){return id=3,div(this,new BigNumber(y,b),DECIMAL_PLACES,ROUNDING_MODE)},P.dividedToIntegerBy=P.divToInt=function(y,b){return id=4,div(this,new BigNumber(y,b),0,1)},P.equals=P.eq=function(y,b){return id=5,0===compare(this,new BigNumber(y,b))},P.floor=function(){return round(new BigNumber(this),this.e+1,3)},P.greaterThan=P.gt=function(y,b){return id=6,compare(this,new BigNumber(y,b))>0},P.greaterThanOrEqualTo=P.gte=function(y,b){return id=7,1===(b=compare(this,new BigNumber(y,b)))||0===b},P.isFinite=function(){return!!this.c},P.isInteger=P.isInt=function(){return!!this.c&&bitFloor(this.e/LOG_BASE)>this.c.length-2},P.isNaN=function(){return!this.s},P.isNegative=P.isNeg=function(){return this.s<0},P.isZero=function(){return!!this.c&&0==this.c[0]},P.lessThan=P.lt=function(y,b){return id=8,compare(this,new BigNumber(y,b))<0},P.lessThanOrEqualTo=P.lte=function(y,b){return id=9,(b=compare(this,new BigNumber(y,b)))===-1||0===b},P.minus=P.sub=function(y,b){var i,j,t,xLTy,x=this,a=x.s;if(id=10,y=new BigNumber(y,b),b=y.s,!a||!b)return new BigNumber(NaN);if(a!=b)return y.s=-b,x.plus(y);var xe=x.e/LOG_BASE,ye=y.e/LOG_BASE,xc=x.c,yc=y.c;if(!xe||!ye){if(!xc||!yc)return xc?(y.s=-b,y):new BigNumber(yc?x:NaN);if(!xc[0]||!yc[0])return yc[0]?(y.s=-b,y):new BigNumber(xc[0]?x:3==ROUNDING_MODE?-0:0)}if(xe=bitFloor(xe),ye=bitFloor(ye),xc=xc.slice(),a=xe-ye){for((xLTy=a<0)?(a=-a,t=xc):(ye=xe,t=yc),t.reverse(),b=a;b--;t.push(0));t.reverse()}else for(j=(xLTy=(a=xc.length)<(b=yc.length))?a:b,a=b=0;b0)for(;b--;xc[i++]=0);for(b=BASE-1;j>a;){if(xc[--j]0?(ye=xe,t=yc):(a=-a,t=xc),t.reverse();a--;t.push(0));t.reverse()}for(a=xc.length,b=yc.length,a-b<0&&(t=yc,yc=xc,xc=t,b=a),a=0;b;)a=(xc[--b]=xc[b]+yc[b]+a)/BASE|0,xc[b]%=BASE;return a&&(xc.unshift(a),++ye),normalise(y,xc,ye)},P.precision=P.sd=function(z){var n,v,x=this,c=x.c;if(null!=z&&z!==!!z&&1!==z&&0!==z&&(ERRORS&&raise(13,"argument"+notBool,z),z!=!!z&&(z=null)),!c)return null;if(v=c.length-1,n=v*LOG_BASE+1,v=c[v]){for(;v%10==0;v/=10,n--);for(v=c[0];v>=10;v/=10,n++);}return z&&x.e+1>n&&(n=x.e+1),n},P.round=function(dp,rm){var n=new BigNumber(this);return(null==dp||isValidInt(dp,0,MAX,15))&&round(n,~~dp+this.e+1,null!=rm&&isValidInt(rm,0,8,15,roundingMode)?0|rm:ROUNDING_MODE),n},P.shift=function(k){var n=this;return isValidInt(k,-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER,16,"argument")?n.times("1e"+truncate(k)):new BigNumber(n.c&&n.c[0]&&(k<-MAX_SAFE_INTEGER||k>MAX_SAFE_INTEGER)?n.s*(k<0?0:1/0):n)},P.squareRoot=P.sqrt=function(){var m,n,r,rep,t,x=this,c=x.c,s=x.s,e=x.e,dp=DECIMAL_PLACES+4,half=new BigNumber("0.5");if(1!==s||!c||!c[0])return new BigNumber(!s||s<0&&(!c||c[0])?NaN:c?x:1/0);if(s=Math.sqrt(+x),0==s||s==1/0?(n=coeffToString(c),(n.length+e)%2==0&&(n+="0"),s=Math.sqrt(n),e=bitFloor((e+1)/2)-(e<0||e%2),s==1/0?n="1e"+e:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new BigNumber(n)):r=new BigNumber(s+""),r.c[0])for(e=r.e,s=e+dp,s<3&&(s=0);;)if(t=r,r=half.times(t.plus(div(x,t,dp,1))),coeffToString(t.c).slice(0,s)===(n=coeffToString(r.c)).slice(0,s)){if(r.e=0;){for(c=0,ylo=yc[i]%sqrtBase,yhi=yc[i]/sqrtBase|0,k=xcL,j=i+k;j>i;)xlo=xc[--k]%sqrtBase,xhi=xc[k]/sqrtBase|0,m=yhi*xlo+xhi*ylo,xlo=ylo*xlo+m%sqrtBase*sqrtBase+zc[j]+c,c=(xlo/base|0)+(m/sqrtBase|0)+yhi*xhi,zc[j--]=xlo%base;zc[j]=c}return c?++e:zc.shift(),normalise(y,zc,e)},P.toDigits=function(sd,rm){var n=new BigNumber(this);return sd=null!=sd&&isValidInt(sd,1,MAX,18,"precision")?0|sd:null,rm=null!=rm&&isValidInt(rm,0,8,18,roundingMode)?0|rm:ROUNDING_MODE,sd?round(n,sd,rm):n},P.toExponential=function(dp,rm){return format(this,null!=dp&&isValidInt(dp,0,MAX,19)?~~dp+1:null,rm,19)},P.toFixed=function(dp,rm){return format(this,null!=dp&&isValidInt(dp,0,MAX,20)?~~dp+this.e+1:null,rm,20)},P.toFormat=function(dp,rm){var str=format(this,null!=dp&&isValidInt(dp,0,MAX,21)?~~dp+this.e+1:null,rm,21);if(this.c){var i,arr=str.split("."),g1=+FORMAT.groupSize,g2=+FORMAT.secondaryGroupSize,groupSeparator=FORMAT.groupSeparator,intPart=arr[0],fractionPart=arr[1],isNeg=this.s<0,intDigits=isNeg?intPart.slice(1):intPart,len=intDigits.length;if(g2&&(i=g1,g1=g2,g2=i,len-=i),g1>0&&len>0){for(i=len%g1||g1,intPart=intDigits.substr(0,i);i0&&(intPart+=groupSeparator+intDigits.slice(i)),isNeg&&(intPart="-"+intPart)}str=fractionPart?intPart+FORMAT.decimalSeparator+((g2=+FORMAT.fractionGroupSize)?fractionPart.replace(new RegExp("\\d{"+g2+"}\\B","g"),"$&"+FORMAT.fractionGroupSeparator):fractionPart):intPart}return str},P.toFraction=function(md){var arr,d0,d2,e,exp,n,n0,q,s,k=ERRORS,x=this,xc=x.c,d=new BigNumber(ONE),n1=d0=new BigNumber(ONE),d1=n0=new BigNumber(ONE);if(null!=md&&(ERRORS=!1,n=new BigNumber(md),ERRORS=k,(k=n.isInt())&&!n.lt(ONE)||(ERRORS&&raise(22,"max denominator "+(k?"out of range":"not an integer"),md),md=!k&&n.c&&round(n,n.e+1,1).gte(ONE)?n:null)),!xc)return x.toString();for(s=coeffToString(xc),e=d.e=s.length-x.e-1,d.c[0]=POWS_TEN[(exp=e%LOG_BASE)<0?LOG_BASE+exp:exp],md=!md||n.cmp(d)>0?e>0?d:n1:n,exp=MAX_EXP,MAX_EXP=1/0,n=new BigNumber(s),n0.c[0]=0;q=div(n,d,0,1),d2=d0.plus(q.times(d1)),1!=d2.cmp(md);)d0=d1,d1=d2,n1=n0.plus(q.times(d2=n1)),n0=d2,d=n.minus(q.times(d2=d)),n=d2;return d2=div(md.minus(d0),d1,0,1),n0=n0.plus(d2.times(n1)),d0=d0.plus(d2.times(d1)),n0.s=n1.s=x.s,e*=2,arr=div(n1,d1,e,ROUNDING_MODE).minus(x).abs().cmp(div(n0,d0,e,ROUNDING_MODE).minus(x).abs())<1?[n1.toString(),d1.toString()]:[n0.toString(),d0.toString()],MAX_EXP=exp,arr},P.toNumber=function(){var x=this;return+x||(x.s?0*x.s:NaN)},P.toPower=P.pow=function(n){var k,y,i=mathfloor(n<0?-n:+n),x=this;if(!isValidInt(n,-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER,23,"exponent")&&(!isFinite(n)||i>MAX_SAFE_INTEGER&&(n/=0)||parseFloat(n)!=n&&!(n=NaN)))return new BigNumber(Math.pow(+x,n));for(k=POW_PRECISION?mathceil(POW_PRECISION/LOG_BASE+2):0,y=new BigNumber(ONE);;){if(i%2){if(y=y.times(x),!y.c)break;k&&y.c.length>k&&(y.c.length=k)}if(i=mathfloor(i/2),!i)break;x=x.times(x),k&&x.c&&x.c.length>k&&(x.c.length=k)}return n<0&&(y=ONE.div(y)),k?round(y,POW_PRECISION,ROUNDING_MODE):y},P.toPrecision=function(sd,rm){return format(this,null!=sd&&isValidInt(sd,1,MAX,24,"precision")?0|sd:null,rm,24)},P.toString=function(b){var str,n=this,s=n.s,e=n.e;return null===e?s?(str="Infinity",s<0&&(str="-"+str)):str="NaN":(str=coeffToString(n.c),str=null!=b&&isValidInt(b,2,64,25,"base")?convertBase(toFixedPoint(str,e),0|b,10,s):e<=TO_EXP_NEG||e>=TO_EXP_POS?toExponential(str,e):toFixedPoint(str,e),s<0&&n.c[0]&&(str="-"+str)),str},P.truncated=P.trunc=function(){return round(new BigNumber(this),this.e+1,1)},P.valueOf=P.toJSON=function(){return this.toString()},null!=configObj&&BigNumber.config(configObj),BigNumber}function bitFloor(n){var i=0|n;return n>0||n===i?i:i-1}function coeffToString(a){for(var s,z,i=1,j=a.length,r=a[0]+"";il^a?1:-1;for(j=(k=xc.length)<(l=yc.length)?k:l,i=0;iyc[i]^a?1:-1;return k==l?0:k>l^a?1:-1}function intValidatorNoErrors(n,min,max){return(n=truncate(n))>=min&&n<=max}function isArray(obj){return"[object Array]"==Object.prototype.toString.call(obj)}function toBaseOut(str,baseIn,baseOut){for(var j,arrL,arr=[0],i=0,len=str.length;ibaseOut-1&&(null==arr[j+1]&&(arr[j+1]=0),arr[j+1]+=arr[j]/baseOut|0,arr[j]%=baseOut)}return arr.reverse()}function toExponential(str,e){return(str.length>1?str.charAt(0)+"."+str.slice(1):str)+(e<0?"e":"e+")+e}function toFixedPoint(str,e){var len,z;if(e<0){for(z="0.";++e;z+="0");str=z+str}else if(len=str.length,++e>len){for(z="0",e-=len;--e;z+="0");str+=z}else e=this.startDate&&d<=this.endDate?(this.date=d,this.setValue(),this.viewDate=this.date,this.fill()):this.element.trigger({type:"outOfRange",date:d,startDate:this.startDate,endDate:this.endDate})},setFormat:function(format){this.format=DPGlobal.parseFormat(format,this.formatType);var element;this.isInput?element=this.element:this.component&&(element=this.element.find("input")),element&&element.val()&&this.setValue()},setValue:function(){var formatted=this.getFormattedDate();this.isInput?this.element.val(formatted):(this.component&&this.element.find("input").val(formatted),this.element.data("date",formatted)),this.linkField&&$("#"+this.linkField).val(this.getFormattedDate(this.linkFormat))},getFormattedDate:function(format){return void 0==format&&(format=this.format),DPGlobal.formatDate(this.date,format,this.language,this.formatType)},setStartDate:function(startDate){this.startDate=startDate||-(1/0),this.startDate!==-(1/0)&&(this.startDate=DPGlobal.parseDate(this.startDate,this.format,this.language,this.formatType)),this.update(),this.updateNavArrows()},setEndDate:function(endDate){this.endDate=endDate||1/0,this.endDate!==1/0&&(this.endDate=DPGlobal.parseDate(this.endDate,this.format,this.language,this.formatType)),this.update(),this.updateNavArrows()},setDaysOfWeekDisabled:function(daysOfWeekDisabled){this.daysOfWeekDisabled=daysOfWeekDisabled||[],$.isArray(this.daysOfWeekDisabled)||(this.daysOfWeekDisabled=this.daysOfWeekDisabled.split(/,\s*/)),this.daysOfWeekDisabled=$.map(this.daysOfWeekDisabled,function(d){return parseInt(d,10)}),this.update(),this.updateNavArrows()},setMinutesDisabled:function(minutesDisabled){this.minutesDisabled=minutesDisabled||[],$.isArray(this.minutesDisabled)||(this.minutesDisabled=this.minutesDisabled.split(/,\s*/)),this.minutesDisabled=$.map(this.minutesDisabled,function(d){return parseInt(d,10)}),this.update(),this.updateNavArrows()},setHoursDisabled:function(hoursDisabled){this.hoursDisabled=hoursDisabled||[],$.isArray(this.hoursDisabled)||(this.hoursDisabled=this.hoursDisabled.split(/,\s*/)),this.hoursDisabled=$.map(this.hoursDisabled,function(d){return parseInt(d,10)}),this.update(),this.updateNavArrows()},place:function(){if(!this.isInline){if(!this.zIndex){var index_highest=0;$("div").each(function(){var index_current=parseInt($(this).css("zIndex"),10);index_current>index_highest&&(index_highest=index_current)}),this.zIndex=index_highest+10}var offset,top,left,containerOffset;containerOffset=this.container instanceof $?this.container.offset():$(this.container).offset(),this.component?(offset=this.component.offset(),left=offset.left,"bottom-left"!=this.pickerPosition&&"top-left"!=this.pickerPosition||(left+=this.component.outerWidth()-this.picker.outerWidth())):(offset=this.element.offset(),left=offset.left),left+220>document.body.clientWidth&&(left=document.body.clientWidth-220),top="top-left"==this.pickerPosition||"top-right"==this.pickerPosition?offset.top-this.picker.outerHeight():offset.top+this.height,top-=containerOffset.top,left-=containerOffset.left,this.picker.css({top:top,left:left,zIndex:this.zIndex})}},update:function(){var date,fromArgs=!1;arguments&&arguments.length&&("string"==typeof arguments[0]||arguments[0]instanceof Date)?(date=arguments[0],fromArgs=!0):(date=(this.isInput?this.element.val():this.element.find("input").val())||this.element.data("date")||this.initialDate,("string"==typeof date||date instanceof String)&&(date=date.replace(/^\s+|\s+$/g,""))),date||(date=new Date,fromArgs=!1),this.date=DPGlobal.parseDate(date,this.format,this.language,this.formatType),fromArgs&&this.setValue(),this.datethis.endDate?this.viewDate=new Date(this.endDate):this.viewDate=new Date(this.date),this.fill()},fillDow:function(){for(var dowCnt=this.weekStart,html="";dowCnt'+dates[this.language].daysMin[dowCnt++%7]+"";html+="",this.picker.find(".datetimepicker-days thead").append(html)},fillMonths:function(){for(var html="",i=0;i<12;)html+=''+dates[this.language].monthsShort[i++]+"";this.picker.find(".datetimepicker-months td").html(html)},fill:function(){if(null!=this.date&&null!=this.viewDate){var d=new Date(this.viewDate),year=d.getUTCFullYear(),month=d.getUTCMonth(),dayMonth=d.getUTCDate(),hours=d.getUTCHours(),minutes=d.getUTCMinutes(),startYear=this.startDate!==-(1/0)?this.startDate.getUTCFullYear():-(1/0),startMonth=this.startDate!==-(1/0)?this.startDate.getUTCMonth()+1:-(1/0),endYear=this.endDate!==1/0?this.endDate.getUTCFullYear():1/0,endMonth=this.endDate!==1/0?this.endDate.getUTCMonth()+1:1/0,currentDate=new UTCDate(this.date.getUTCFullYear(),this.date.getUTCMonth(),this.date.getUTCDate()).valueOf(),today=new Date;if(this.picker.find(".datetimepicker-days thead th:eq(1)").text(dates[this.language].months[month]+" "+year),"time"==this.formatViewType){var formatted=this.getFormattedDate();this.picker.find(".datetimepicker-hours thead th:eq(1)").text(formatted),this.picker.find(".datetimepicker-minutes thead th:eq(1)").text(formatted)}else this.picker.find(".datetimepicker-hours thead th:eq(1)").text(dayMonth+" "+dates[this.language].months[month]+" "+year),this.picker.find(".datetimepicker-minutes thead th:eq(1)").text(dayMonth+" "+dates[this.language].months[month]+" "+year);this.picker.find("tfoot th.today").text(dates[this.language].today).toggle(this.todayBtn!==!1),this.updateNavArrows(),this.fillMonths();var prevMonth=UTCDate(year,month-1,28,0,0,0,0),day=DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(),prevMonth.getUTCMonth());prevMonth.setUTCDate(day),prevMonth.setUTCDate(day-(prevMonth.getUTCDay()-this.weekStart+7)%7);var nextMonth=new Date(prevMonth);nextMonth.setUTCDate(nextMonth.getUTCDate()+42),nextMonth=nextMonth.valueOf();for(var clsName,html=[];prevMonth.valueOf()"),clsName="",prevMonth.getUTCFullYear()year||prevMonth.getUTCFullYear()==year&&prevMonth.getUTCMonth()>month)&&(clsName+=" new"),this.todayHighlight&&prevMonth.getUTCFullYear()==today.getFullYear()&&prevMonth.getUTCMonth()==today.getMonth()&&prevMonth.getUTCDate()==today.getDate()&&(clsName+=" today"),prevMonth.valueOf()==currentDate&&(clsName+=" active"),(prevMonth.valueOf()+864e5<=this.startDate||prevMonth.valueOf()>this.endDate||$.inArray(prevMonth.getUTCDay(),this.daysOfWeekDisabled)!==-1)&&(clsName+=" disabled"),html.push(''+prevMonth.getUTCDate()+""),prevMonth.getUTCDay()==this.weekEnd&&html.push(""),prevMonth.setUTCDate(prevMonth.getUTCDate()+1);this.picker.find(".datetimepicker-days tbody").empty().append(html.join("")),html=[];for(var txt="",meridian="",meridianOld="",hoursDisabled=this.hoursDisabled||[],i=0;i<24;i++)if(hoursDisabled.indexOf(i)===-1){var actual=UTCDate(year,month,dayMonth,i);clsName="",actual.valueOf()+36e5<=this.startDate||actual.valueOf()>this.endDate?clsName+=" disabled":hours==i&&(clsName+=" active"),this.showMeridian&&2==dates[this.language].meridiem.length?(meridian=i<12?dates[this.language].meridiem[0]:dates[this.language].meridiem[1],meridian!=meridianOld&&(""!=meridianOld&&html.push(""),html.push('
'+meridian.toUpperCase()+"")),meridianOld=meridian,txt=i%12?i%12:12,html.push(''+txt+""),23==i&&html.push("
")):(txt=i+":00",html.push(''+txt+""))}this.picker.find(".datetimepicker-hours td").html(html.join("")),html=[],txt="",meridian="",meridianOld="";for(var minutesDisabled=this.minutesDisabled||[],i=0;i<60;i+=this.minuteStep)if(minutesDisabled.indexOf(i)===-1){var actual=UTCDate(year,month,dayMonth,hours,i,0);clsName="",actual.valueOf()this.endDate?clsName+=" disabled":Math.floor(minutes/this.minuteStep)==Math.floor(i/this.minuteStep)&&(clsName+=" active"),this.showMeridian&&2==dates[this.language].meridiem.length?(meridian=hours<12?dates[this.language].meridiem[0]:dates[this.language].meridiem[1],meridian!=meridianOld&&(""!=meridianOld&&html.push(""),html.push('
'+meridian.toUpperCase()+"")),meridianOld=meridian,txt=hours%12?hours%12:12,html.push(''+txt+":"+(i<10?"0"+i:i)+""),59==i&&html.push("
")):(txt=i+":00",html.push(''+hours+":"+(i<10?"0"+i:i)+""))}this.picker.find(".datetimepicker-minutes td").html(html.join(""));var currentYear=this.date.getUTCFullYear(),months=this.picker.find(".datetimepicker-months").find("th:eq(1)").text(year).end().find("span").removeClass("active");currentYear==year&&months.eq(this.date.getUTCMonth()+2).addClass("active"),(yearendYear)&&months.addClass("disabled"),year==startYear&&months.slice(0,startMonth+1).addClass("disabled"),year==endYear&&months.slice(endMonth).addClass("disabled"),html="",year=10*parseInt(year/10,10);var yearCont=this.picker.find(".datetimepicker-years").find("th:eq(1)").text(year+"-"+(year+9)).end().find("td");year-=1;for(var i=-1;i<11;i++)html+='endYear?" disabled":"")+'">'+year+"",year+=1;yearCont.html(html),this.place()}},updateNavArrows:function(){var d=new Date(this.viewDate),year=d.getUTCFullYear(),month=d.getUTCMonth(),day=d.getUTCDate(),hour=d.getUTCHours();switch(this.viewMode){case 0:this.startDate!==-(1/0)&&year<=this.startDate.getUTCFullYear()&&month<=this.startDate.getUTCMonth()&&day<=this.startDate.getUTCDate()&&hour<=this.startDate.getUTCHours()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&year>=this.endDate.getUTCFullYear()&&month>=this.endDate.getUTCMonth()&&day>=this.endDate.getUTCDate()&&hour>=this.endDate.getUTCHours()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:this.startDate!==-(1/0)&&year<=this.startDate.getUTCFullYear()&&month<=this.startDate.getUTCMonth()&&day<=this.startDate.getUTCDate()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&year>=this.endDate.getUTCFullYear()&&month>=this.endDate.getUTCMonth()&&day>=this.endDate.getUTCDate()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 2:this.startDate!==-(1/0)&&year<=this.startDate.getUTCFullYear()&&month<=this.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&year>=this.endDate.getUTCFullYear()&&month>=this.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 3:case 4:this.startDate!==-(1/0)&&year<=this.startDate.getUTCFullYear()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&year>=this.endDate.getUTCFullYear()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"})}},mousewheel:function(e){if(e.preventDefault(),e.stopPropagation(),!this.wheelPause){this.wheelPause=!0;var originalEvent=e.originalEvent,delta=originalEvent.wheelDelta,mode=delta>0?1:0===delta?0:-1;this.wheelViewModeNavigationInverseDirection&&(mode=-mode),this.showMode(mode),setTimeout($.proxy(function(){this.wheelPause=!1},this),this.wheelViewModeNavigationDelay)}},click:function(e){e.stopPropagation(),e.preventDefault();var target=$(e.target).closest("span, td, th, legend");if(target.is("."+this.icontype)&&(target=$(target).parent().closest("span, td, th, legend")),1==target.length){if(target.is(".disabled"))return void this.element.trigger({type:"outOfRange",date:this.viewDate,startDate:this.startDate,endDate:this.endDate});switch(target[0].nodeName.toLowerCase()){case"th":switch(target[0].className){case"switch":this.showMode(1);break;case"prev":case"next":var dir=DPGlobal.modes[this.viewMode].navStep*("prev"==target[0].className?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveHour(this.viewDate,dir);break;case 1:this.viewDate=this.moveDate(this.viewDate,dir);break;case 2:this.viewDate=this.moveMonth(this.viewDate,dir);break;case 3:case 4:this.viewDate=this.moveYear(this.viewDate,dir)}this.fill(),this.element.trigger({type:target[0].className+":"+this.convertViewModeText(this.viewMode),date:this.viewDate,startDate:this.startDate,endDate:this.endDate});break;case"today":var date=new Date;date=UTCDate(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds(),0),datethis.endDate&&(date=this.endDate),this.viewMode=this.startViewMode,this.showMode(0),this._setDate(date),this.fill(),this.autoclose&&this.hide()}break;case"span":if(!target.is(".disabled")){var year=this.viewDate.getUTCFullYear(),month=this.viewDate.getUTCMonth(),day=this.viewDate.getUTCDate(),hours=this.viewDate.getUTCHours(),minutes=this.viewDate.getUTCMinutes(),seconds=this.viewDate.getUTCSeconds();if(target.is(".month")?(this.viewDate.setUTCDate(1),month=target.parent().find("span").index(target),day=this.viewDate.getUTCDate(),this.viewDate.setUTCMonth(month),this.element.trigger({type:"changeMonth",date:this.viewDate}),this.viewSelect>=3&&this._setDate(UTCDate(year,month,day,hours,minutes,seconds,0))):target.is(".year")?(this.viewDate.setUTCDate(1),year=parseInt(target.text(),10)||0,this.viewDate.setUTCFullYear(year),this.element.trigger({type:"changeYear",date:this.viewDate}),this.viewSelect>=4&&this._setDate(UTCDate(year,month,day,hours,minutes,seconds,0))):target.is(".hour")?(hours=parseInt(target.text(),10)||0,(target.hasClass("hour_am")||target.hasClass("hour_pm"))&&(12==hours&&target.hasClass("hour_am")?hours=0:12!=hours&&target.hasClass("hour_pm")&&(hours+=12)),this.viewDate.setUTCHours(hours),this.element.trigger({type:"changeHour",date:this.viewDate}),this.viewSelect>=1&&this._setDate(UTCDate(year,month,day,hours,minutes,seconds,0))):target.is(".minute")&&(minutes=parseInt(target.text().substr(target.text().indexOf(":")+1),10)||0,this.viewDate.setUTCMinutes(minutes),this.element.trigger({type:"changeMinute",date:this.viewDate}),this.viewSelect>=0&&this._setDate(UTCDate(year,month,day,hours,minutes,seconds,0))),0!=this.viewMode){var oldViewMode=this.viewMode;this.showMode(-1),this.fill(),oldViewMode==this.viewMode&&this.autoclose&&this.hide()}else this.fill(),this.autoclose&&this.hide()}break;case"td":if(target.is(".day")&&!target.is(".disabled")){var day=parseInt(target.text(),10)||1,year=this.viewDate.getUTCFullYear(),month=this.viewDate.getUTCMonth(),hours=this.viewDate.getUTCHours(),minutes=this.viewDate.getUTCMinutes(),seconds=this.viewDate.getUTCSeconds();target.is(".old")?0===month?(month=11,year-=1):month-=1:target.is(".new")&&(11==month?(month=0,year+=1):month+=1),this.viewDate.setUTCFullYear(year),this.viewDate.setUTCMonth(month,day),this.element.trigger({type:"changeDay",date:this.viewDate}),this.viewSelect>=2&&this._setDate(UTCDate(year,month,day,hours,minutes,seconds,0))}var oldViewMode=this.viewMode;this.showMode(-1),this.fill(),oldViewMode==this.viewMode&&this.autoclose&&this.hide()}}},_setDate:function(date,which){which&&"date"!=which||(this.date=date),which&&"view"!=which||(this.viewDate=date),this.fill(),this.setValue();var element;this.isInput?element=this.element:this.component&&(element=this.element.find("input")),element&&(element.change(),this.autoclose&&(!which||"date"==which)),this.element.trigger({type:"changeDate",date:this.date})},moveMinute:function(date,dir){if(!dir)return date;var new_date=new Date(date.valueOf()); return new_date.setUTCMinutes(new_date.getUTCMinutes()+dir*this.minuteStep),new_date},moveHour:function(date,dir){if(!dir)return date;var new_date=new Date(date.valueOf());return new_date.setUTCHours(new_date.getUTCHours()+dir),new_date},moveDate:function(date,dir){if(!dir)return date;var new_date=new Date(date.valueOf());return new_date.setUTCDate(new_date.getUTCDate()+dir),new_date},moveMonth:function(date,dir){if(!dir)return date;var new_month,test,new_date=new Date(date.valueOf()),day=new_date.getUTCDate(),month=new_date.getUTCMonth(),mag=Math.abs(dir);if(dir=dir>0?1:-1,1==mag)test=dir==-1?function(){return new_date.getUTCMonth()==month}:function(){return new_date.getUTCMonth()!=new_month},new_month=month+dir,new_date.setUTCMonth(new_month),(new_month<0||new_month>11)&&(new_month=(new_month+12)%12);else{for(var i=0;i=this.startDate&&date<=this.endDate},keydown:function(e){if(this.picker.is(":not(:visible)"))return void(27==e.keyCode&&this.show());var dir,newDate,newViewDate,dateChanged=!1;switch(e.keyCode){case 27:this.hide(),e.preventDefault();break;case 37:case 39:if(!this.keyboardNavigation)break;dir=37==e.keyCode?-1:1,viewMode=this.viewMode,e.ctrlKey?viewMode+=2:e.shiftKey&&(viewMode+=1),4==viewMode?(newDate=this.moveYear(this.date,dir),newViewDate=this.moveYear(this.viewDate,dir)):3==viewMode?(newDate=this.moveMonth(this.date,dir),newViewDate=this.moveMonth(this.viewDate,dir)):2==viewMode?(newDate=this.moveDate(this.date,dir),newViewDate=this.moveDate(this.viewDate,dir)):1==viewMode?(newDate=this.moveHour(this.date,dir),newViewDate=this.moveHour(this.viewDate,dir)):0==viewMode&&(newDate=this.moveMinute(this.date,dir),newViewDate=this.moveMinute(this.viewDate,dir)),this.dateWithinRange(newDate)&&(this.date=newDate,this.viewDate=newViewDate,this.setValue(),this.update(),e.preventDefault(),dateChanged=!0);break;case 38:case 40:if(!this.keyboardNavigation)break;dir=38==e.keyCode?-1:1,viewMode=this.viewMode,e.ctrlKey?viewMode+=2:e.shiftKey&&(viewMode+=1),4==viewMode?(newDate=this.moveYear(this.date,dir),newViewDate=this.moveYear(this.viewDate,dir)):3==viewMode?(newDate=this.moveMonth(this.date,dir),newViewDate=this.moveMonth(this.viewDate,dir)):2==viewMode?(newDate=this.moveDate(this.date,7*dir),newViewDate=this.moveDate(this.viewDate,7*dir)):1==viewMode?this.showMeridian?(newDate=this.moveHour(this.date,6*dir),newViewDate=this.moveHour(this.viewDate,6*dir)):(newDate=this.moveHour(this.date,4*dir),newViewDate=this.moveHour(this.viewDate,4*dir)):0==viewMode&&(newDate=this.moveMinute(this.date,4*dir),newViewDate=this.moveMinute(this.viewDate,4*dir)),this.dateWithinRange(newDate)&&(this.date=newDate,this.viewDate=newViewDate,this.setValue(),this.update(),e.preventDefault(),dateChanged=!0);break;case 13:if(0!=this.viewMode){var oldViewMode=this.viewMode;this.showMode(-1),this.fill(),oldViewMode==this.viewMode&&this.autoclose&&this.hide()}else this.fill(),this.autoclose&&this.hide();e.preventDefault();break;case 9:this.hide()}if(dateChanged){var element;this.isInput?element=this.element:this.component&&(element=this.element.find("input")),element&&element.change(),this.element.trigger({type:"changeDate",date:this.date})}},showMode:function(dir){if(dir){var newViewMode=Math.max(0,Math.min(DPGlobal.modes.length-1,this.viewMode+dir));newViewMode>=this.minView&&newViewMode<=this.maxView&&(this.element.trigger({type:"changeMode",date:this.viewDate,oldViewMode:this.viewMode,newViewMode:newViewMode}),this.viewMode=newViewMode)}this.picker.find(">div").hide().filter(".datetimepicker-"+DPGlobal.modes[this.viewMode].clsName).css("display","block"),this.updateNavArrows()},reset:function(e){this._setDate(null,"date")},convertViewModeText:function(viewMode){switch(viewMode){case 4:return"decade";case 3:return"year";case 2:return"month";case 1:return"day";case 0:return"hour"}}};var old=$.fn.datetimepicker;$.fn.datetimepicker=function(option){var args=Array.apply(null,arguments);args.shift();var internal_return;return this.each(function(){var $this=$(this),data=$this.data("datetimepicker"),options="object"==typeof option&&option;if(data||$this.data("datetimepicker",data=new Datetimepicker(this,$.extend({},$.fn.datetimepicker.defaults,options))),"string"==typeof option&&"function"==typeof data[option]&&(internal_return=data[option].apply(data,args),void 0!==internal_return))return!1}),void 0!==internal_return?internal_return:this},$.fn.datetimepicker.defaults={},$.fn.datetimepicker.Constructor=Datetimepicker;var dates=$.fn.datetimepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["am","pm"],suffix:["st","nd","rd","th"],today:"Today"}},DPGlobal={modes:[{clsName:"minutes",navFnc:"Hours",navStep:1},{clsName:"hours",navFnc:"Date",navStep:1},{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(year){return year%4===0&&year%100!==0||year%400===0},getDaysInMonth:function(year,month){return[31,DPGlobal.isLeapYear(year)?29:28,31,30,31,30,31,31,30,31,30,31][month]},getDefaultFormat:function(type,field){if("standard"==type)return"input"==field?"yyyy-mm-dd hh:ii":"yyyy-mm-dd hh:ii:ss";if("php"==type)return"input"==field?"Y-m-d H:i":"Y-m-d H:i:s";throw new Error("Invalid format type.")},validParts:function(type){if("standard"==type)return/hh?|HH?|p|P|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g;if("php"==type)return/[dDjlNwzFmMnStyYaABgGhHis]/g;throw new Error("Invalid format type.")},nonpunctuation:/[^ -\/:-@\[-`{-~\t\n\rTZ]+/g,parseFormat:function(format,type){var separators=format.replace(this.validParts(type),"\0").split("\0"),parts=format.match(this.validParts(type));if(!separators||!separators.length||!parts||0==parts.length)throw new Error("Invalid date format.");return{separators:separators,parts:parts}},parseDate:function(date,format,language,type){if(date instanceof Date){var dateUTC=new Date(date.valueOf()-6e4*date.getTimezoneOffset());return dateUTC.setMilliseconds(0),dateUTC}if(/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(date)&&(format=this.parseFormat("yyyy-mm-dd",type)),/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(date)&&(format=this.parseFormat("yyyy-mm-dd hh:ii",type)),/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(date)&&(format=this.parseFormat("yyyy-mm-dd hh:ii:ss",type)),/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(date)){var part,dir,part_re=/([-+]\d+)([dmwy])/,parts=date.match(/([-+]\d+)([dmwy])/g);date=new Date;for(var i=0;i',headTemplateV3:' ',contTemplate:'',footTemplate:''};DPGlobal.template='
'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'
'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'
'+DPGlobal.headTemplate+""+DPGlobal.footTemplate+'
'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'
'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+"
",DPGlobal.templateV3='
'+DPGlobal.headTemplateV3+DPGlobal.contTemplate+DPGlobal.footTemplate+'
'+DPGlobal.headTemplateV3+DPGlobal.contTemplate+DPGlobal.footTemplate+'
'+DPGlobal.headTemplateV3+""+DPGlobal.footTemplate+'
'+DPGlobal.headTemplateV3+DPGlobal.contTemplate+DPGlobal.footTemplate+'
'+DPGlobal.headTemplateV3+DPGlobal.contTemplate+DPGlobal.footTemplate+"
",$.fn.datetimepicker.DPGlobal=DPGlobal,$.fn.datetimepicker.noConflict=function(){return $.fn.datetimepicker=old,this},$(document).on("focus.datetimepicker.data-api click.datetimepicker.data-api",'[data-provide="datetimepicker"]',function(e){var $this=$(this);$this.data("datetimepicker")||(e.preventDefault(),$this.datetimepicker("show"))}),$(function(){$('[data-provide="datetimepicker-inline"]').datetimepicker()})}(window.jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.tooltip"),options="object"==typeof option&&option;!data&&/destroy|hide/.test(option)||(data||$this.data("bs.tooltip",data=new Tooltip(this,options)),"string"==typeof option&&data[option]())})}var Tooltip=function(element,options){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.init("tooltip",element,options)};Tooltip.VERSION="3.3.4",Tooltip.TRANSITION_DURATION=150,Tooltip.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},Tooltip.prototype.init=function(type,element,options){if(this.enabled=!0,this.type=type,this.$element=$(element),this.options=this.getOptions(options),this.$viewport=this.options.viewport&&$(this.options.viewport.selector||this.options.viewport),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 triggers=this.options.trigger.split(" "),i=triggers.length;i--;){var trigger=triggers[i];if("click"==trigger)this.$element.on("click."+this.type,this.options.selector,$.proxy(this.toggle,this));else if("manual"!=trigger){var eventIn="hover"==trigger?"mouseenter":"focusin",eventOut="hover"==trigger?"mouseleave":"focusout";this.$element.on(eventIn+"."+this.type,this.options.selector,$.proxy(this.enter,this)),this.$element.on(eventOut+"."+this.type,this.options.selector,$.proxy(this.leave,this))}}this.options.selector?this._options=$.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},Tooltip.prototype.getDefaults=function(){return Tooltip.DEFAULTS},Tooltip.prototype.getOptions=function(options){return options=$.extend({},this.getDefaults(),this.$element.data(),options),options.delay&&"number"==typeof options.delay&&(options.delay={show:options.delay,hide:options.delay}),options},Tooltip.prototype.getDelegateOptions=function(){var options={},defaults=this.getDefaults();return this._options&&$.each(this._options,function(key,value){defaults[key]!=value&&(options[key]=value)}),options},Tooltip.prototype.enter=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);return self&&self.$tip&&self.$tip.is(":visible")?void(self.hoverState="in"):(self||(self=new this.constructor(obj.currentTarget,this.getDelegateOptions()),$(obj.currentTarget).data("bs."+this.type,self)),clearTimeout(self.timeout),self.hoverState="in",self.options.delay&&self.options.delay.show?void(self.timeout=setTimeout(function(){"in"==self.hoverState&&self.show()},self.options.delay.show)):self.show())},Tooltip.prototype.leave=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);return self||(self=new this.constructor(obj.currentTarget,this.getDelegateOptions()),$(obj.currentTarget).data("bs."+this.type,self)),clearTimeout(self.timeout),self.hoverState="out",self.options.delay&&self.options.delay.hide?void(self.timeout=setTimeout(function(){"out"==self.hoverState&&self.hide()},self.options.delay.hide)):self.hide()},Tooltip.prototype.show=function(){var e=$.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var inDom=$.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!inDom)return;var that=this,$tip=this.tip(),tipId=this.getUID(this.type);this.setContent(),$tip.attr("id",tipId),this.$element.attr("aria-describedby",tipId),this.options.animation&&$tip.addClass("fade");var placement="function"==typeof this.options.placement?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placement,autoToken=/\s?auto?\s?/i,autoPlace=autoToken.test(placement);autoPlace&&(placement=placement.replace(autoToken,"")||"top"),$tip.detach().css({top:0,left:0,display:"block"}).addClass(placement).data("bs."+this.type,this),this.options.container?$tip.appendTo(this.options.container):$tip.insertAfter(this.$element);var pos=this.getPosition(),actualWidth=$tip[0].offsetWidth,actualHeight=$tip[0].offsetHeight;if(autoPlace){var orgPlacement=placement,$container=this.options.container?$(this.options.container):this.$element.parent(),containerDim=this.getPosition($container);placement="bottom"==placement&&pos.bottom+actualHeight>containerDim.bottom?"top":"top"==placement&&pos.top-actualHeightcontainerDim.width?"left":"left"==placement&&pos.left-actualWidthviewportDimensions.top+viewportDimensions.height&&(delta.top=viewportDimensions.top+viewportDimensions.height-bottomEdgeOffset)}else{var leftEdgeOffset=pos.left-viewportPadding,rightEdgeOffset=pos.left+viewportPadding+actualWidth;leftEdgeOffsetviewportDimensions.width&&(delta.left=viewportDimensions.left+viewportDimensions.width-rightEdgeOffset)}return delta},Tooltip.prototype.getTitle=function(){var title,$e=this.$element,o=this.options;return title=$e.attr("data-original-title")||("function"==typeof o.title?o.title.call($e[0]):o.title)},Tooltip.prototype.getUID=function(prefix){do prefix+=~~(1e6*Math.random());while(document.getElementById(prefix));return prefix},Tooltip.prototype.tip=function(){return this.$tip=this.$tip||$(this.options.template)},Tooltip.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},Tooltip.prototype.enable=function(){this.enabled=!0},Tooltip.prototype.disable=function(){this.enabled=!1},Tooltip.prototype.toggleEnabled=function(){this.enabled=!this.enabled},Tooltip.prototype.toggle=function(e){var self=this;e&&(self=$(e.currentTarget).data("bs."+this.type),self||(self=new this.constructor(e.currentTarget,this.getDelegateOptions()),$(e.currentTarget).data("bs."+this.type,self))),self.tip().hasClass("in")?self.leave(self):self.enter(self)},Tooltip.prototype.destroy=function(){var that=this;clearTimeout(this.timeout),this.hide(function(){that.$element.off("."+that.type).removeData("bs."+that.type)})};var old=$.fn.tooltip;$.fn.tooltip=Plugin,$.fn.tooltip.Constructor=Tooltip,$.fn.tooltip.noConflict=function(){return $.fn.tooltip=old,this}}(jQuery),function(root,factory){"function"==typeof define&&define.amd?define("bloodhound",["jquery"],function(a0){return root.Bloodhound=factory(a0)}):"object"==typeof exports?module.exports=factory(require("jquery")):root.Bloodhound=factory(jQuery)}(this,function($){var _=function(){"use strict";return{isMsie:function(){return!!/(msie|trident)/i.test(navigator.userAgent)&&navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]},isBlankString:function(str){return!str||/^\s*$/.test(str)},escapeRegExChars:function(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(obj){return"string"==typeof obj},isNumber:function(obj){return"number"==typeof obj},isArray:$.isArray,isFunction:$.isFunction,isObject:$.isPlainObject,isUndefined:function(obj){return"undefined"==typeof obj},isElement:function(obj){return!(!obj||1!==obj.nodeType)},isJQuery:function(obj){return obj instanceof $},toStr:function(s){return _.isUndefined(s)||null===s?"":s+""},bind:$.proxy,each:function(collection,cb){function reverseArgs(index,value){return cb(value,index)}$.each(collection,reverseArgs)},map:$.map,filter:$.grep,every:function(obj,test){var result=!0;return obj?($.each(obj,function(key,val){if(!(result=test.call(null,val,key,obj)))return!1}),!!result):result},some:function(obj,test){var result=!1;return obj?($.each(obj,function(key,val){if(result=test.call(null,val,key,obj))return!1}),!!result):result},mixin:$.extend,identity:function(x){return x},clone:function(obj){return $.extend(!0,{},obj)},getIdGenerator:function(){var counter=0;return function(){return counter++}},templatify:function(obj){function template(){return String(obj)}return $.isFunction(obj)?obj:template},defer:function(fn){setTimeout(fn,0)},debounce:function(func,wait,immediate){var timeout,result;return function(){var later,callNow,context=this,args=arguments;return later=function(){timeout=null,immediate||(result=func.apply(context,args))},callNow=immediate&&!timeout,clearTimeout(timeout),timeout=setTimeout(later,wait),callNow&&(result=func.apply(context,args)),result}},throttle:function(func,wait){var context,args,timeout,result,previous,later;return previous=0,later=function(){previous=new Date,timeout=null,result=func.apply(context,args)},function(){var now=new Date,remaining=wait-(now-previous);return context=this,args=arguments,remaining<=0?(clearTimeout(timeout),timeout=null,previous=now,result=func.apply(context,args)):timeout||(timeout=setTimeout(later,remaining)),result}},stringify:function(val){return _.isString(val)?val:JSON.stringify(val)},noop:function(){}}}(),VERSION="0.11.1",tokenizers=function(){"use strict";function whitespace(str){return str=_.toStr(str),str?str.split(/\s+/):[]}function nonword(str){return str=_.toStr(str),str?str.split(/\W+/):[]}function getObjTokenizer(tokenizer){return function(keys){return keys=_.isArray(keys)?keys:[].slice.call(arguments,0),function(o){var tokens=[];return _.each(keys,function(k){tokens=tokens.concat(tokenizer(_.toStr(o[k])))}),tokens}}}return{nonword:nonword,whitespace:whitespace,obj:{nonword:getObjTokenizer(nonword),whitespace:getObjTokenizer(whitespace)}}}(),LruCache=function(){"use strict";function LruCache(maxSize){this.maxSize=_.isNumber(maxSize)?maxSize:100,this.reset(),this.maxSize<=0&&(this.set=this.get=$.noop)}function List(){this.head=this.tail=null}function Node(key,val){this.key=key,this.val=val,this.prev=this.next=null}return _.mixin(LruCache.prototype,{set:function(key,val){var node,tailItem=this.list.tail;this.size>=this.maxSize&&(this.list.remove(tailItem),delete this.hash[tailItem.key],this.size--),(node=this.hash[key])?(node.val=val,this.list.moveToFront(node)):(node=new Node(key,val),this.list.add(node),this.hash[key]=node,this.size++)},get:function(key){var node=this.hash[key];if(node)return this.list.moveToFront(node),node.val},reset:function(){this.size=0,this.hash={},this.list=new List}}),_.mixin(List.prototype,{add:function(node){this.head&&(node.next=this.head,this.head.prev=node),this.head=node,this.tail=this.tail||node},remove:function(node){node.prev?node.prev.next=node.next:this.head=node.next,node.next?node.next.prev=node.prev:this.tail=node.prev},moveToFront:function(node){this.remove(node),this.add(node)}}),LruCache}(),PersistentStorage=function(){"use strict";function PersistentStorage(namespace,override){this.prefix=["__",namespace,"__"].join(""),this.ttlKey="__ttl__",this.keyMatcher=new RegExp("^"+_.escapeRegExChars(this.prefix)),this.ls=override||LOCAL_STORAGE,!this.ls&&this._noop()}function now(){return(new Date).getTime()}function encode(val){return JSON.stringify(_.isUndefined(val)?null:val)}function decode(val){return $.parseJSON(val)}function gatherMatchingKeys(keyMatcher){var i,key,keys=[],len=LOCAL_STORAGE.length;for(i=0;ittl)}}),PersistentStorage}(),Transport=function(){"use strict";function Transport(o){o=o||{},this.cancelled=!1,this.lastReq=null,this._send=o.transport,this._get=o.limiter?o.limiter(this._get):this._get,this._cache=o.cache===!1?new LruCache(0):sharedCache}var pendingRequestsCount=0,pendingRequests={},maxPendingRequests=6,sharedCache=new LruCache(10);return Transport.setMaxPendingRequests=function(num){maxPendingRequests=num},Transport.resetCache=function(){sharedCache.reset()},_.mixin(Transport.prototype,{ _fingerprint:function(o){return o=o||{},o.url+o.type+$.param(o.data||{})},_get:function(o,cb){function done(resp){cb(null,resp),that._cache.set(fingerprint,resp)}function fail(){cb(!0)}function always(){pendingRequestsCount--,delete pendingRequests[fingerprint],that.onDeckRequestArgs&&(that._get.apply(that,that.onDeckRequestArgs),that.onDeckRequestArgs=null)}var fingerprint,jqXhr,that=this;fingerprint=this._fingerprint(o),this.cancelled||fingerprint!==this.lastReq||((jqXhr=pendingRequests[fingerprint])?jqXhr.done(done).fail(fail):pendingRequestsCountarrayB[bi]?bi++:(intersection.push(arrayA[ai]),ai++,bi++);return intersection}var CHILDREN="c",IDS="i";return _.mixin(SearchIndex.prototype,{bootstrap:function(o){this.datums=o.datums,this.trie=o.trie},add:function(data){var that=this;data=_.isArray(data)?data:[data],_.each(data,function(datum){var id,tokens;that.datums[id=that.identify(datum)]=datum,tokens=normalizeTokens(that.datumTokenizer(datum)),_.each(tokens,function(token){var node,chars,ch;for(node=that.trie,chars=token.split("");ch=chars.shift();)node=node[CHILDREN][ch]||(node[CHILDREN][ch]=newNode()),node[IDS].push(id)})})},get:function(ids){var that=this;return _.map(ids,function(id){return that.datums[id]})},search:function(query){var tokens,matches,that=this;return tokens=normalizeTokens(this.queryTokenizer(query)),_.each(tokens,function(token){var node,chars,ch,ids;if(matches&&0===matches.length)return!1;for(node=that.trie,chars=token.split("");node&&(ch=chars.shift());)node=node[CHILDREN][ch];return node&&0===chars.length?(ids=node[IDS].slice(0),void(matches=matches?getIntersection(matches,ids):ids)):(matches=[],!1)}),matches?_.map(unique(matches),function(id){return that.datums[id]}):[]},all:function(){var values=[];for(var key in this.datums)values.push(this.datums[key]);return values},reset:function(){this.datums={},this.trie=newNode()},serialize:function(){return{datums:this.datums,trie:this.trie}}}),SearchIndex}(),Prefetch=function(){"use strict";function Prefetch(o){this.url=o.url,this.ttl=o.ttl,this.cache=o.cache,this.prepare=o.prepare,this.transform=o.transform,this.transport=o.transport,this.thumbprint=o.thumbprint,this.storage=new PersistentStorage(o.cacheKey)}var keys;return keys={data:"data",protocol:"protocol",thumbprint:"thumbprint"},_.mixin(Prefetch.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},store:function(data){this.cache&&(this.storage.set(keys.data,data,this.ttl),this.storage.set(keys.protocol,location.protocol,this.ttl),this.storage.set(keys.thumbprint,this.thumbprint,this.ttl))},fromCache:function(){var isExpired,stored={};return this.cache?(stored.data=this.storage.get(keys.data),stored.protocol=this.storage.get(keys.protocol),stored.thumbprint=this.storage.get(keys.thumbprint),isExpired=stored.thumbprint!==this.thumbprint||stored.protocol!==location.protocol,stored.data&&!isExpired?stored.data:null):null},fromNetwork:function(cb){function onError(){cb(!0)}function onResponse(resp){cb(null,that.transform(resp))}var settings,that=this;cb&&(settings=this.prepare(this._settings()),this.transport(settings).fail(onError).done(onResponse))},clear:function(){return this.storage.clear(),this}}),Prefetch}(),Remote=function(){"use strict";function Remote(o){this.url=o.url,this.prepare=o.prepare,this.transform=o.transform,this.transport=new Transport({cache:o.cache,limiter:o.limiter,transport:o.transport})}return _.mixin(Remote.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},get:function(query,cb){function onResponse(err,resp){cb(err?[]:that.transform(resp))}var settings,that=this;if(cb)return query=query||"",settings=this.prepare(query,this._settings()),this.transport.get(settings,onResponse)},cancelLastRequest:function(){this.transport.cancel()}}),Remote}(),oParser=function(){"use strict";function parsePrefetch(o){var defaults;return o?(defaults={url:null,ttl:864e5,cache:!0,cacheKey:null,thumbprint:"",prepare:_.identity,transform:_.identity,transport:null},o=_.isString(o)?{url:o}:o,o=_.mixin(defaults,o),!o.url&&$.error("prefetch requires url to be set"),o.transform=o.filter||o.transform,o.cacheKey=o.cacheKey||o.url,o.thumbprint=VERSION+o.thumbprint,o.transport=o.transport?callbackToDeferred(o.transport):$.ajax,o):null}function parseRemote(o){var defaults;if(o)return defaults={url:null,cache:!0,prepare:null,replace:null,wildcard:null,limiter:null,rateLimitBy:"debounce",rateLimitWait:300,transform:_.identity,transport:null},o=_.isString(o)?{url:o}:o,o=_.mixin(defaults,o),!o.url&&$.error("remote requires url to be set"),o.transform=o.filter||o.transform,o.prepare=toRemotePrepare(o),o.limiter=toLimiter(o),o.transport=o.transport?callbackToDeferred(o.transport):$.ajax,delete o.replace,delete o.wildcard,delete o.rateLimitBy,delete o.rateLimitWait,o}function toRemotePrepare(o){function prepareByReplace(query,settings){return settings.url=replace(settings.url,query),settings}function prepareByWildcard(query,settings){return settings.url=settings.url.replace(wildcard,encodeURIComponent(query)),settings}function idenityPrepare(query,settings){return settings}var prepare,replace,wildcard;return prepare=o.prepare,replace=o.replace,wildcard=o.wildcard,prepare?prepare:prepare=replace?prepareByReplace:o.wildcard?prepareByWildcard:idenityPrepare}function toLimiter(o){function debounce(wait){return function(fn){return _.debounce(fn,wait)}}function throttle(wait){return function(fn){return _.throttle(fn,wait)}}var limiter,method,wait;return limiter=o.limiter,method=o.rateLimitBy,wait=o.rateLimitWait,limiter||(limiter=/^throttle$/i.test(method)?throttle(wait):debounce(wait)),limiter}function callbackToDeferred(fn){return function(o){function onSuccess(resp){_.defer(function(){deferred.resolve(resp)})}function onError(err){_.defer(function(){deferred.reject(err)})}var deferred=$.Deferred();return fn(o,onSuccess,onError),deferred}}return function(o){var defaults,sorter;return defaults={initialize:!0,identify:_.stringify,datumTokenizer:null,queryTokenizer:null,sufficient:5,sorter:null,local:[],prefetch:null,remote:null},o=_.mixin(defaults,o||{}),!o.datumTokenizer&&$.error("datumTokenizer is required"),!o.queryTokenizer&&$.error("queryTokenizer is required"),sorter=o.sorter,o.sorter=sorter?function(x){return x.sort(sorter)}:_.identity,o.local=_.isFunction(o.local)?o.local():o.local,o.prefetch=parsePrefetch(o.prefetch),o.remote=parseRemote(o.remote),o}}(),Bloodhound=function(){"use strict";function Bloodhound(o){o=oParser(o),this.sorter=o.sorter,this.identify=o.identify,this.sufficient=o.sufficient,this.local=o.local,this.remote=o.remote?new Remote(o.remote):null,this.prefetch=o.prefetch?new Prefetch(o.prefetch):null,this.index=new SearchIndex({identify:this.identify,datumTokenizer:o.datumTokenizer,queryTokenizer:o.queryTokenizer}),o.initialize!==!1&&this.initialize()}var old;return old=window&&window.Bloodhound,Bloodhound.noConflict=function(){return window&&(window.Bloodhound=old),Bloodhound},Bloodhound.tokenizers=tokenizers,_.mixin(Bloodhound.prototype,{__ttAdapter:function(){function withAsync(query,sync,async){return that.search(query,sync,async)}function withoutAsync(query,sync){return that.search(query,sync)}var that=this;return this.remote?withAsync:withoutAsync},_loadPrefetch:function(){function done(err,data){return err?deferred.reject():(that.add(data),that.prefetch.store(that.index.serialize()),void deferred.resolve())}var deferred,serialized,that=this;return deferred=$.Deferred(),this.prefetch?(serialized=this.prefetch.fromCache())?(this.index.bootstrap(serialized),deferred.resolve()):this.prefetch.fromNetwork(done):deferred.resolve(),deferred.promise()},_initialize:function(){function addLocalToIndex(){that.add(that.local)}var that=this;return this.clear(),(this.initPromise=this._loadPrefetch()).done(addLocalToIndex),this.initPromise},initialize:function(force){return!this.initPromise||force?this._initialize():this.initPromise},add:function(data){return this.index.add(data),this},get:function(ids){return ids=_.isArray(ids)?ids:[].slice.call(arguments),this.index.get(ids)},search:function(query,sync,async){function processRemote(remote){var nonDuplicates=[];_.each(remote,function(r){!_.some(local,function(l){return that.identify(r)===that.identify(l)})&&nonDuplicates.push(r)}),async&&async(nonDuplicates)}var local,that=this;return local=this.sorter(this.index.search(query)),sync(this.remote?local.slice():local),this.remote&&local.length',menu:'
'}}function buildSelectors(classes){var selectors={};return _.each(classes,function(v,k){selectors[k]="."+v}),selectors}function buildCss(){var css={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},menu:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}};return _.isMsie()&&_.mixin(css.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),css}var defaultClassNames={wrapper:"twitter-typeahead",input:"tt-input",hint:"tt-hint",menu:"tt-menu",dataset:"tt-dataset",suggestion:"tt-suggestion",selectable:"tt-selectable",empty:"tt-empty",open:"tt-open",cursor:"tt-cursor",highlight:"tt-highlight"};return build}(),EventBus=function(){"use strict";function EventBus(o){o&&o.el||$.error("EventBus initialized without el"),this.$el=$(o.el)}var namespace,deprecationMap;return namespace="typeahead:",deprecationMap={render:"rendered",cursorchange:"cursorchanged",select:"selected",autocomplete:"autocompleted"},_.mixin(EventBus.prototype,{_trigger:function(type,args){var $e;return $e=$.Event(namespace+type),(args=args||[]).unshift($e),this.$el.trigger.apply(this.$el,args),$e},before:function(type){var args,$e;return args=[].slice.call(arguments,1),$e=this._trigger("before"+type,args),$e.isDefaultPrevented()},trigger:function(type){var deprecatedType;this._trigger(type,[].slice.call(arguments,1)),(deprecatedType=deprecationMap[type])&&this._trigger(deprecatedType,[].slice.call(arguments,1))}}),EventBus}(),EventEmitter=function(){"use strict";function on(method,types,cb,context){var type;if(!cb)return this;for(types=types.split(splitter),cb=context?bindContext(cb,context):cb,this._callbacks=this._callbacks||{};type=types.shift();)this._callbacks[type]=this._callbacks[type]||{sync:[],async:[]},this._callbacks[type][method].push(cb);return this}function onAsync(types,cb,context){return on.call(this,"async",types,cb,context)}function onSync(types,cb,context){return on.call(this,"sync",types,cb,context)}function off(types){var type;if(!this._callbacks)return this;for(types=types.split(splitter);type=types.shift();)delete this._callbacks[type];return this}function trigger(types){var type,callbacks,args,syncFlush,asyncFlush;if(!this._callbacks)return this;for(types=types.split(splitter),args=[].slice.call(arguments,1);(type=types.shift())&&(callbacks=this._callbacks[type]);)syncFlush=getFlush(callbacks.sync,this,[type].concat(args)),asyncFlush=getFlush(callbacks.async,this,[type].concat(args)),syncFlush()&&nextTick(asyncFlush);return this}function getFlush(callbacks,context,args){function flush(){for(var cancelled,i=0,len=callbacks.length;!cancelled&&i