D:
/
virtualhost
/
localuser
/
host3914537801
/
www
/
templates
/
default
/
wap
/
web
/
js
/
Upload File
HOME
function CityPicker() { this.province = [ ["0", "省份"], ["1", "北京"], ["2", "上海"], ["3", "天津"], ["4", "重庆"], ["5", "黑龙江"], ["6", "吉林"], ["7", "辽宁"], ["8", "内蒙古"], ["9", "宁夏"], ["10", "新疆"], ["11", "青海"], ["12", "甘肃"], ["13", "陕西"], ["14", "河北"], ["15", "河南"], ["16", "山东"], ["17", "山西"], ["18", "湖北"], ["19", "湖南"], ["20", "安徽"], ["21", "江苏"], ["22", "浙江"], ["23", "江西"], ["24", "广东"], ["25", "广西"], ["26", "福建"], ["27", "四川"], ["28", "云南"], ["29", "贵州"], ["30", "西藏"], ["31", "海南"], ["32", "香港"], ["33", "澳门"], ["34", "台湾"] ], this.city = [ ["0-0", "市区"], ["1-1", "北京"], ["2-18", "上海"], ["3-38", "天津"], ["4-46", "重庆"], ["5-50", "哈尔滨"], ["5-130", "大庆"], ["5-132", "佳木斯"], ["5-135", "绥化"], ["5-129", "鸡西"], ["5-52", "牡丹江"], ["5-134", "黑河"], ["5-51", "齐齐哈尔"], ["5-128", "双鸭山"], ["5-136", "大兴安岭地区"], ["5-131", "伊春"], ["5-127", "鹤岗"], ["5-133", "七台河"], ["6-53", "长春"], ["6-54", "吉林"], ["6-143", "延边朝鲜族自治州"], ["6-142", "白城"], ["6-137", "四平"], ["6-140", "白山"], ["6-139", "通化"], ["6-138", "辽源"], ["6-141", "松原"], ["6-450", "延吉"], ["6-451", "梅河口"], ["7-55", "沈阳"], ["7-56", "大连"], ["7-144", "鞍山"], ["7-146", "本溪"], ["7-149", "营口"], ["7-150", "盘锦"], ["7-151", "阜新"], ["7-147", "丹东"], ["7-57", "锦州"], ["7-148", "葫芦岛"], ["7-145", "抚顺"], ["7-153", "铁岭"], ["7-152", "辽阳"], ["7-154", "朝阳"], ["7-467", "瓦房店"], ["8-58", "呼和浩特"], ["8-59", "包头"], ["8-158", "鄂尔多斯"], ["8-156", "赤峰"], ["8-469", "呼伦贝尔"], ["8-157", "通辽"], ["8-161", "锡林郭勒盟"], ["8-160", "乌兰察布"], ["8-155", "乌海"], ["8-164", "兴安盟"], ["8-162", "巴彦淖尔盟"], ["8-163", "阿拉善盟"], ["8-468", "巴彦淖尔"], ["8-471", "乌兰浩特"], ["8-470", "集宁"], ["8-472", "锡林浩特"], ["9-60", "银川"], ["9-166", "吴忠"], ["9-167", "固原"], ["9-165", "石嘴山"], ["10-61", "乌鲁木齐"], ["10-168", "克拉玛依"], ["10-501", "昌吉回族自治州"], ["10-175", "巴音郭楞蒙古自治州"], ["10-507", "石河子"], ["10-177", "博尔塔拉蒙古自治州"], ["10-511", "伊犁哈萨克自治州"], ["10-502", "哈密"], ["10-506", "库尔勒"], ["10-512", "伊宁"], ["10-500", "阿克苏地区"], ["10-503", "和田地区"], ["10-504", "喀什地区"], ["10-174", "克孜勒苏柯尔克孜自治州"], ["10-510", "奎屯"], ["10-508", "吐鲁番"], ["10-509", "乌市"], ["11-62", "西宁"], ["11-473", "格尔木"], ["11-179", "海东"], ["11-181", "黄南藏族自治州"], ["11-183", "果洛藏族自治州"], ["11-180", "海北藏族自治州"], ["11-182", "海南藏族自治州"], ["11-185", "海西蒙古族藏族自治州"], ["11-184", "玉树藏族自治州"], ["12-63", "兰州"], ["12-195", "陇南"], ["12-194", "定西"], ["12-190", "张掖"], ["12-186", "金昌"], ["12-192", "酒泉"], ["12-191", "平凉"], ["12-193", "庆阳"], ["12-64", "天水"], ["12-187", "白银"], ["12-196", "甘南藏族自治州"], ["12-188", "嘉峪关"], ["12-422", "嘉峪"], ["12-197", "临夏回族自治州"], ["12-423", "武威"], ["13-65", "西安"], ["13-202", "榆林"], ["13-201", "汉中"], ["13-200", "渭南"], ["13-199", "咸阳"], ["13-66", "宝鸡"], ["13-67", "延安"], ["13-203", "安康"], ["13-204", "商洛"], ["13-198", "铜川"], ["13-496", "韩城"], ["14-205", "唐山"], ["14-207", "邯郸"], ["14-212", "廊坊"], ["14-68", "石家庄"], ["14-69", "保定"], ["14-208", "邢台"], ["14-209", "张家口"], ["14-206", "秦皇岛"], ["14-211", "沧州"], ["14-213", "衡水"], ["14-210", "承德"], ["14-436", "霸州"], ["14-439", "涿州"], ["14-437", "青县"], ["14-438", "任丘"], ["15-70", "郑州"], ["15-226", "信阳"], ["15-71", "洛阳"], ["15-225", "商丘"], ["15-228", "驻马店"], ["15-220", "濮阳"], ["15-215", "平顶山"], ["15-530", "济源"], ["15-224", "南阳"], ["15-216", "焦作"], ["15-218", "新乡"], ["15-219", "安阳"], ["15-223", "三门峡"], ["15-222", "漯河"], ["15-221", "许昌"], ["15-227", "周口"], ["15-214", "开封"], ["15-217", "鹤壁"], ["16-72", "济南"], ["16-73", "青岛"], ["16-234", "济宁"], ["16-74", "烟台"], ["16-232", "潍坊"], ["16-239", "临沂"], ["16-235", "泰安"], ["16-229", "淄博"], ["16-236", "日照"], ["16-233", "威海"], ["16-231", "东营"], ["16-241", "滨州"], ["16-240", "聊城"], ["16-230", "枣庄"], ["16-238", "德州"], ["16-475", "菏泽"], ["16-237", "莱芜"], ["16-485", "乳山"], ["16-487", "滕州"], ["16-482", "龙口"], ["16-486", "寿光"], ["16-489", "招远"], ["16-474", "高密"], ["16-478", "胶南"], ["16-477", "即墨"], ["16-479", "莱州"], ["16-483", "蓬莱"], ["16-484", "青州"], ["16-488", "文登"], ["17-75", "太原"], ["17-249", "临汾"], ["17-76", "大同"], ["17-245", "长治"], ["17-251", "吕梁"], ["17-250", "运城"], ["17-243", "朔州"], ["17-246", "晋城"], ["17-247", "忻州"], ["17-248", "晋中"], ["17-244", "阳泉"], ["17-494", "孝义"], ["17-491", "河津"], ["17-492", "侯马"], ["17-495", "榆次"], ["18-77", "武汉"], ["18-260", "黄冈"], ["18-256", "宜昌"], ["18-254", "十堰"], ["18-253", "襄阳"], ["18-263", "恩施土家族苗族自治州"], ["18-252", "黄石"], ["18-262", "随州"], ["18-259", "孝感"], ["18-255", "荆州"], ["18-445", "仙桃"], ["18-258", "鄂州"], ["18-444", "潜江"], ["18-257", "荆门"], ["18-261", "咸宁"], ["18-443", "汉阳"], ["18-440", "安陆"], ["19-78", "长沙"], ["19-266", "衡阳"], ["19-264", "株洲"], ["19-273", "永州"], ["19-272", "郴州"], ["19-267", "邵阳"], ["19-265", "湘潭"], ["19-268", "岳阳"], ["19-274", "怀化"], ["19-269", "常德"], ["19-271", "益阳"], ["19-276", "湘西土家族苗族自治州"], ["19-275", "娄底"], ["19-270", "张家界"], ["19-448", "邵东"], ["20-79", "合肥"], ["20-278", "淮南"], ["20-80", "芜湖"], ["20-284", "滁州"], ["20-286", "宿州"], ["20-277", "蚌埠"], ["20-285", "阜阳"], ["20-291", "宣城"], ["20-282", "安庆"], ["20-279", "马鞍山"], ["20-280", "淮北"], ["20-288", "六安"], ["20-281", "铜陵"], ["20-283", "黄山"], ["20-289", "亳州"], ["20-287", "巢湖"], ["20-290", "池州"], ["20-413", "宁国"], ["20-412", "蒙城"], ["20-414", "桐城"], ["21-81", "南京"], ["21-303", "苏州"], ["21-301", "常州"], ["21-292", "徐州"], ["21-299", "南通"], ["21-302", "无锡"], ["21-298", "泰州"], ["21-294", "淮安"], ["21-296", "盐城"], ["21-295", "宿迁"], ["21-297", "扬州"], ["21-300", "镇江"], ["21-293", "连云港"], ["21-458", "昆山"], ["21-465", "张家港"], ["21-452", "常熟"], ["21-453", "丹阳"], ["21-460", "太仓"], ["21-464", "宜兴"], ["21-454", "海门"], ["21-459", "溧阳"], ["21-462", "吴江"], ["21-456", "江阴"], ["21-457", "靖江"], ["21-455", "江都"], ["22-82", "杭州"], ["22-304", "宁波"], ["22-306", "嘉兴"], ["22-305", "温州"], ["22-308", "绍兴"], ["22-307", "湖州"], ["22-312", "台州"], ["22-309", "金华"], ["22-313", "丽水"], ["22-310", "衢州"], ["22-311", "舟山"], ["22-528", "诸暨"], ["22-520", "平湖"], ["22-523", "嵊州"], ["22-524", "温岭"], ["22-525", "义乌"], ["22-526", "永康"], ["22-514", "慈溪"], ["22-515", "东阳"], ["22-516", "奉化"], ["22-517", "乐清"], ["22-518", "临安"], ["22-519", "临海"], ["22-521", "瑞安"], ["22-522", "上虞"], ["22-529", "新昌"], ["22-527", "余姚"], ["23-83", "南昌"], ["23-319", "赣州"], ["23-323", "上饶"], ["23-317", "九江"], ["23-320", "吉安"], ["23-314", "景德镇"], ["23-321", "宜春"], ["23-322", "抚州"], ["23-315", "萍乡"], ["23-316", "新余"], ["23-318", "鹰潭"], ["23-466", "高安"], ["24-84", "广州"], ["24-85", "深圳"], ["24-329", "惠州"], ["24-334", "佛山"], ["24-331", "东莞"], ["24-332", "中山"], ["24-336", "湛江"], ["24-333", "江门"], ["24-325", "汕头"], ["24-338", "肇庆"], ["24-324", "珠海"], ["24-327", "河源"], ["24-341", "揭阳"], ["24-337", "茂名"], ["24-326", "韶关"], ["24-335", "阳江"], ["24-330", "汕尾"], ["24-342", "云浮"], ["24-328", "梅州"], ["24-339", "清远"], ["24-340", "潮州"], ["24-427", "顺德"], ["24-428", "台山"], ["24-424", "花都"], ["24-425", "开平"], ["24-426", "南海"], ["24-429", "增城"], ["25-86", "南宁"], ["25-343", "柳州"], ["25-350", "玉林"], ["25-345", "梧州"], ["25-346", "北海"], ["25-348", "钦州"], ["25-344", "桂林"], ["25-355", "崇左"], ["25-347", "防城港"], ["25-351", "百色"], ["25-349", "贵港"], ["25-353", "河池"], ["25-354", "来宾"], ["25-352", "贺州"], ["26-87", "福州"], ["26-88", "厦门"], ["26-358", "泉州"], ["26-359", "漳州"], ["26-361", "龙岩"], ["26-357", "莆田"], ["26-415", "福清"], ["26-362", "宁德"], ["26-356", "三明"], ["26-360", "南平"], ["26-418", "南安"], ["26-417", "晋江"], ["26-420", "石狮"], ["26-416", "建瓯"], ["26-419", "邵武"], ["26-421", "仙游"], ["27-89", "成都"], ["27-372", "南充"], ["27-375", "达州"], ["27-367", "绵阳"], ["27-366", "德阳"], ["27-373", "宜宾"], ["27-376", "巴中"], ["27-365", "泸州"], ["27-368", "广元"], ["27-370", "内江"], ["27-379", "资阳"], ["27-378", "眉山"], ["27-364", "攀枝花"], ["27-377", "雅安"], ["27-369", "遂宁"], ["27-363", "自贡"], ["27-374", "广安"], ["27-371", "乐山"], ["27-380", "阿坝藏族羌族自治州"], ["27-382", "凉山彝族自治州"], ["27-381", "甘孜藏族自治州"], ["27-497", "广汉"], ["27-499", "西昌"], ["28-90", "昆明"], ["28-392", "西双版纳傣族自治州"], ["28-386", "昭通"], ["28-395", "德宏傣族景颇族自治州"], ["28-391", "红河哈尼族彝族自治州"], ["28-390", "文山壮族苗族自治州"], ["28-385", "保山"], ["28-513", "大理白族自治州"], ["28-383", "曲靖"], ["28-393", "楚雄"], ["28-389", "丽江"], ["28-384", "玉溪"], ["28-388", "临沧"], ["28-396", "怒江傈僳族自治州"], ["28-397", "迪庆藏族自治州"], ["28-387", "普洱"], ["29-91", "贵阳"], ["29-399", "遵义"], ["29-400", "安顺"], ["29-402", "毕节"], ["29-398", "六盘水"], ["29-405", "黔南布依族苗族自治州"], ["29-403", "黔西南布依族苗族自治州"], ["29-404", "黔东南苗族侗族自治州"], ["29-434", "凯里"], ["29-432", "都匀"], ["29-435", "铜仁"], ["30-92", "拉萨"], ["30-410", "阿里地区"], ["30-407", "昌都"], ["30-411", "林芝"], ["30-406", "那曲地区"], ["30-409", "日喀则"], ["30-408", "山南"], ["31-93", "海口"], ["31-94", "三亚"], ["32-95", "香港"], ["33-96", "澳门"], ["34-98", "高雄"], ["34-101", "基隆"], ["34-97", "台北"], ["34-100", "台南"], ["34-99", "台中"], ["34-102", "新竹"] ] }! function() { function e(e) { return e.replace(b, "").replace(x, ",").replace(w, "").replace(T, "").replace(E, "").split(C) } function t(e) { return "'" + e.replace(/('|\\)/g, "\\$1").replace(/\r/g, "\\r").replace(/\n/g, "\\n") + "'" } function n(n, i) { function r(e) { return p += e.split(/\n/).length - 1, u && (e = e.replace(/\s+/g, " ").replace(/<!--[\w\W]*?-->/g, "")), e && (e = y[1] + t(e) + y[2] + "\n"), e } function a(t) { var n = p; if (d ? t = d(t, i) : s && (t = t.replace(/\n/g, function() { return "$line=" + ++p + ";" })), 0 === t.indexOf("=")) { var r = c && !/^=[=#]/.test(t); if (t = t.replace(/^=[=#]?|[\s;]*$/g, ""), r) { var a = t.replace(/\s*\([^\)]+\)/, ""); h[a] || /^(include|print)$/.test(a) || (t = "$escape(" + t + ")") } else t = "$string(" + t + ")"; t = y[1] + t + y[2] } return s && (t = "$line=" + n + ";" + t), g(e(t), function(e) { if (e && !v[e]) { var t; t = "print" === e ? x : "include" === e ? w : h[e] ? "$utils." + e : f[e] ? "$helpers." + e : "$data." + e, T += e + "=" + t + ",", v[e] = !0 } }), t + "\n" } var s = i.debug, o = i.openTag, l = i.closeTag, d = i.parser, u = i.compress, c = i.escape, p = 1, v = { $data: 1, $filename: 1, $utils: 1, $helpers: 1, $out: 1, $line: 1 }, m = "".trim, y = m ? ["$out='';", "$out+=", ";", "$out"] : ["$out=[];", "$out.push(", ");", "$out.join('')"], b = m ? "$out+=text;return $out;" : "$out.push(text);", x = "function(){var text=''.concat.apply('',arguments);" + b + "}", w = "function(filename,data){data=data||$data;var text=$utils.$include(filename,data,$filename);" + b + "}", T = "'use strict';var $utils=this,$helpers=$utils.$helpers," + (s ? "$line=0," : ""), E = y[0], C = "return new String(" + y[3] + ");"; g(n.split(o), function(e) { e = e.split(l); var t = e[0], n = e[1]; 1 === e.length ? E += r(t) : (E += a(t), n && (E += r(n))) }); var S = T + E + C; s && (S = "try{" + S + "}catch(e){throw {filename:$filename,name:'Render Error',message:e.message,line:$line,source:" + t(n) + ".split(/\\n/)[$line-1].replace(/^\\s+/,'')};}"); try { var k = new Function("$data", "$filename", S); return k.prototype = h, k } catch (e) { throw e.temp = "function anonymous($data,$filename) {" + S + "}", e } } var i = function(e, t) { return "string" == typeof t ? m(t, { filename: e }) : s(e, t) }; i.version = "3.0.0", i.config = function(e, t) { r[e] = t }; var r = i.defaults = { openTag: "<%", closeTag: "%>", escape: !0, cache: !0, compress: !1, parser: null }, a = i.cache = {}; i.render = function(e, t) { return m(e, t) }; var s = i.renderFile = function(e, t) { var n = i.get(e) || v({ filename: e, name: "Render Error", message: "Template not found" }); return t ? n(t) : n }; i.get = function(e) { var t; if (a[e]) t = a[e]; else if ("object" == typeof document) { var n = document.getElementById(e); if (n) { var i = (n.value || n.innerHTML).replace(/^\s*|\s*$/g, ""); t = m(i, { filename: e }) } } return t }; var o = function(e, t) { return "string" != typeof e && (t = typeof e, "number" === t ? e += "" : e = "function" === t ? o(e.call(e)) : ""), e }, l = { "<": "<", ">": ">", '"': """, "'": "'", "&": "&" }, d = function(e) { return l[e] }, u = function(e) { return o(e).replace(/&(?![\w#]+;)|[<>"']/g, d) }, c = Array.isArray || function(e) { return "[object Array]" === {}.toString.call(e) }, p = function(e, t) { var n, i; if (c(e)) for (n = 0, i = e.length; i > n; n++) t.call(e, e[n], n, e); else for (n in e) t.call(e, e[n], n) }, h = i.utils = { $helpers: {}, $include: s, $string: o, $escape: u, $each: p }; i.helper = function(e, t) { f[e] = t }; var f = i.helpers = h.$helpers; i.onerror = function(e) { var t = "Template Error\n\n"; for (var n in e) t += "<" + n + ">\n" + e[n] + "\n\n" }; var v = function(e) { return i.onerror(e), function() { return "{Template Error}" } }, m = i.compile = function(e, t) { function i(n) { try { return new l(n, o) + "" } catch (i) { return t.debug ? v(i)() : (t.debug = !0, m(e, t)(n)) } } t = t || {}; for (var s in r) void 0 === t[s] && (t[s] = r[s]); var o = t.filename; try { var l = n(e, t) } catch (e) { return e.filename = o || "anonymous", e.name = "Syntax Error", v(e) } return i.prototype = l.prototype, i.toString = function() { return l.toString() }, o && t.cache && (a[o] = i), i }, g = h.$each, y = "break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined", b = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|\s*\.\s*[$\w\.]+/g, x = /[^\w$]+/g, w = new RegExp(["\\b" + y.replace(/,/g, "\\b|\\b") + "\\b"].join("|"), "g"), T = /^\d[^,]*|,\d[^,]*/g, E = /^,+|,+$/g, C = /^$|,+/; r.openTag = "{{", r.closeTag = "}}"; var S = function(e, t) { var n = t.split(":"), i = n.shift(), r = n.join(":") || ""; return r && (r = ", " + r), "$helpers." + i + "(" + e + r + ")" }; r.parser = function(e) { e = e.replace(/^\s/, ""); var t = e.split(" "), n = t.shift(), r = t.join(" "); switch (n) { case "if": e = "if(" + r + "){"; break; case "else": t = "if" === t.shift() ? " if(" + t.join(" ") + ")" : "", e = "}else" + t + "{"; break; case "/if": e = "}"; break; case "each": var a = t[0] || "$data", s = t[1] || "as", o = t[2] || "$value", l = t[3] || "$index", d = o + "," + l; "as" !== s && (a = "[]"), e = "$each(" + a + ",function(" + d + "){"; break; case "/each": e = "});"; break; case "echo": e = "print(" + r + ");"; break; case "print": case "include": e = n + "(" + t.join(",") + ");"; break; default: if (/^\s*\|\s*[\w\$]/.test(r)) { var u = !0; 0 === e.indexOf("#") && (e = e.substr(1), u = !1); for (var c = 0, p = e.split("|"), h = p.length, f = p[c++]; h > c; c++) f = S(f, p[c]); e = (u ? "=" : "=#") + f } else e = i.helpers[n] ? "=#" + n + "(" + t.join(",") + ");" : "=" + e } return e }, "function" == typeof define ? define(function() { return i }) : "undefined" != typeof exports ? module.exports = i : this.template = i }(), function(e, t) { function n(e) { var t = e.length, n = re.type(e); return !re.isWindow(e) && (!(1 !== e.nodeType || !t) || ("array" === n || "function" !== n && (0 === t || "number" == typeof t && t > 0 && t - 1 in e))) } function i(e) { var t = he[e] = {}; return re.each(e.match(se) || [], function(e, n) { t[n] = !0 }), t } function r() { Object.defineProperty(this.cache = {}, 0, { get: function() { return {} } }), this.expando = re.expando + Math.random() } function a(e, n, i) { var r; if (i === t && 1 === e.nodeType) if (r = "data-" + n.replace(ge, "-$1").toLowerCase(), "string" == typeof(i = e.getAttribute(r))) { try { i = "true" === i || "false" !== i && ("null" === i ? null : +i + "" === i ? +i : me.test(i) ? JSON.parse(i) : i) } catch (e) {} fe.set(e, n, i) } else i = t; return i } function s() { return !0 } function o() { return !1 } function l() { try { return G.activeElement } catch (e) {} } function d(e, t) { for (; (e = e[t]) && 1 !== e.nodeType;); return e } function u(e, t, n) { if (re.isFunction(t)) return re.grep(e, function(e, i) { return !!t.call(e, i, e) !== n }); if (t.nodeType) return re.grep(e, function(e) { return e === t !== n }); if ("string" == typeof t) { if (ke.test(t)) return re.filter(t, e, n); t = re.filter(t, e) } return re.grep(e, function(e) { return ee.call(t, e) >= 0 !== n }) } function c(e, t) { return re.nodeName(e, "table") && re.nodeName(1 === t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e } function p(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function h(e) { var t = Oe.exec(e.type); return t ? e.type = t[1] : e.removeAttribute("type"), e } function f(e, t) { for (var n = e.length, i = 0; i < n; i++) ve.set(e[i], "globalEval", !t || ve.get(t[i], "globalEval")) } function v(e, t) { var n, i, r, a, s, o, l, d; if (1 === t.nodeType) { if (ve.hasData(e) && (a = ve.access(e), s = re.extend({}, a), d = a.events, ve.set(t, s), d)) { delete s.handle, s.events = {}; for (r in d) for (n = 0, i = d[r].length; n < i; n++) re.event.add(t, r, d[r][n]) } fe.hasData(e) && (o = fe.access(e), l = re.extend({}, o), fe.set(t, l)) } } function m(e, n) { var i = e.getElementsByTagName ? e.getElementsByTagName(n || "*") : e.querySelectorAll ? e.querySelectorAll(n || "*") : []; return n === t || n && re.nodeName(e, n) ? re.merge([e], i) : i } function g(e, t) { var n = t.nodeName.toLowerCase(); "input" === n && Ne.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue) } function y(e, t) { if (t in e) return t; for (var n = t.charAt(0).toUpperCase() + t.slice(1), i = t, r = Ke.length; r--;) if ((t = Ke[r] + n) in e) return t; return i } function b(e, t) { return e = t || e, "none" === re.css(e, "display") || !re.contains(e.ownerDocument, e) } function x(t) { return e.getComputedStyle(t, null) } function w(e, t) { for (var n, i, r, a = [], s = 0, o = e.length; s < o; s++) i = e[s], i.style && (a[s] = ve.get(i, "olddisplay"), n = i.style.display, t ? (a[s] || "none" !== n || (i.style.display = ""), "" === i.style.display && b(i) && (a[s] = ve.access(i, "olddisplay", S(i.nodeName)))) : a[s] || (r = b(i), (n && "none" !== n || !r) && ve.set(i, "olddisplay", r ? n : re.css(i, "display")))); for (s = 0; s < o; s++) i = e[s], i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? a[s] || "" : "none")); return e } function T(e, t, n) { var i = Xe.exec(t); return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : t } function E(e, t, n, i, r) { for (var a = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, s = 0; a < 4; a += 2)"margin" === n && (s += re.css(e, n + Ue[a], !0, r)), i ? ("content" === n && (s -= re.css(e, "padding" + Ue[a], !0, r)), "margin" !== n && (s -= re.css(e, "border" + Ue[a] + "Width", !0, r))) : (s += re.css(e, "padding" + Ue[a], !0, r), "padding" !== n && (s += re.css(e, "border" + Ue[a] + "Width", !0, r))); return s } function C(e, t, n) { var i = !0, r = "width" === t ? e.offsetWidth : e.offsetHeight, a = x(e), s = re.support.boxSizing && "border-box" === re.css(e, "boxSizing", !1, a); if (r <= 0 || null == r) { if (r = Be(e, t, a), (r < 0 || null == r) && (r = e.style[t]), We.test(r)) return r; i = s && (re.support.boxSizingReliable || r === e.style[t]), r = parseFloat(r) || 0 } return r + E(e, t, n || (s ? "border" : "content"), i, a) + "px" } function S(e) { var t = G, n = Ye[e]; return n || (n = k(e, t), "none" !== n && n || (qe = (qe || re("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(t.documentElement), t = (qe[0].contentWindow || qe[0].contentDocument).document, t.write("<!doctype html><html><body>"), t.close(), n = k(e, t), qe.detach()), Ye[e] = n), n } function k(e, t) { var n = re(t.createElement(e)).appendTo(t.body), i = re.css(n[0], "display"); return n.remove(), i } function M(e, t, n, i) { var r; if (re.isArray(t)) re.each(t, function(t, r) { n || Qe.test(e) ? i(e, r) : M(e + "[" + ("object" == typeof r ? t : "") + "]", r, n, i) }); else if (n || "object" !== re.type(t)) i(e, t); else for (r in t) M(e + "[" + r + "]", t[r], n, i) } function $(e) { return function(t, n) { "string" != typeof t && (n = t, t = "*"); var i, r = 0, a = t.toLowerCase().match(se) || []; if (re.isFunction(n)) for (; i = a[r++];)"+" === i[0] ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n) } } function P(e, t, n, i) { function r(o) { var l; return a[o] = !0, re.each(e[o] || [], function(e, o) { var d = o(t, n, i); return "string" != typeof d || s || a[d] ? s ? !(l = d) : void 0 : (t.dataTypes.unshift(d), r(d), !1) }), l } var a = {}, s = e === vt; return r(t.dataTypes[0]) || !a["*"] && r("*") } function L(e, n) { var i, r, a = re.ajaxSettings.flatOptions || {}; for (i in n) n[i] !== t && ((a[i] ? e : r || (r = {}))[i] = n[i]); return r && re.extend(!0, e, r), e } function D(e, n, i) { for (var r, a, s, o, l = e.contents, d = e.dataTypes; "*" === d[0];) d.shift(), r === t && (r = e.mimeType || n.getResponseHeader("Content-Type")); if (r) for (a in l) if (l[a] && l[a].test(r)) { d.unshift(a); break } if (d[0] in i) s = d[0]; else { for (a in i) { if (!d[0] || e.converters[a + " " + d[0]]) { s = a; break } o || (o = a) } s = s || o } if (s) return s !== d[0] && d.unshift(s), i[s] } function z(e, t, n, i) { var r, a, s, o, l, d = {}, u = e.dataTypes.slice(); if (u[1]) for (s in e.converters) d[s.toLowerCase()] = e.converters[s]; for (a = u.shift(); a;) if (e.responseFields[a] && (n[e.responseFields[a]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = a, a = u.shift()) if ("*" === a) a = l; else if ("*" !== l && l !== a) { if (!(s = d[l + " " + a] || d["* " + a])) for (r in d) if (o = r.split(" "), o[1] === a && (s = d[l + " " + o[0]] || d["* " + o[0]])) { !0 === s ? s = d[r] : !0 !== d[r] && (a = o[0], u.unshift(o[1])); break } if (!0 !== s) if (s && e.throws) t = s(t); else try { t = s(t) } catch (e) { return { state: "parsererror", error: s ? e : "No conversion from " + l + " to " + a } } } return { state: "success", data: t } } function N() { return setTimeout(function() { Et = t }), Et = re.now() } function I(e, t) { re.each(t, function(t, n) { for (var i = (Pt[t] || []).concat(Pt["*"]), r = 0, a = i.length; r < a; r++) if (i[r].call(e, t, n)) return }) } function A(e, t, n) { var i, r, a = 0, s = $t.length, o = re.Deferred().always(function() { delete l.elem }), l = function() { if (r) return !1; for (var t = Et || N(), n = Math.max(0, d.startTime + d.duration - t), i = n / d.duration || 0, a = 1 - i, s = 0, l = d.tweens.length; s < l; s++) d.tweens[s].run(a); return o.notifyWith(e, [d, a, n]), a < 1 && l ? n : (o.resolveWith(e, [d]), !1) }, d = o.promise({ elem: e, props: re.extend({}, t), opts: re.extend(!0, { specialEasing: {} }, n), originalProperties: t, originalOptions: n, startTime: Et || N(), duration: n.duration, tweens: [], createTween: function(t, n) { var i = re.Tween(e, d.opts, t, n, d.opts.specialEasing[t] || d.opts.easing); return d.tweens.push(i), i }, stop: function(t) { var n = 0, i = t ? d.tweens.length : 0; if (r) return this; for (r = !0; n < i; n++) d.tweens[n].run(1); return t ? o.resolveWith(e, [d, t]) : o.rejectWith(e, [d, t]), this } }), u = d.props; for (O(u, d.opts.specialEasing); a < s; a++) if (i = $t[a].call(d, e, u, d.opts)) return i; return I(d, u), re.isFunction(d.opts.start) && d.opts.start.call(e, d), re.fx.timer(re.extend(l, { elem: e, anim: d, queue: d.opts.queue })), d.progress(d.opts.progress).done(d.opts.done, d.opts.complete).fail(d.opts.fail).always(d.opts.always) } function O(e, t) { var n, i, r, a, s; for (n in e) if (i = re.camelCase(n), r = t[i], a = e[n], re.isArray(a) && (r = a[1], a = e[n] = a[0]), n !== i && (e[i] = a, delete e[n]), (s = re.cssHooks[i]) && "expand" in s) { a = s.expand(a), delete e[i]; for (n in a) n in e || (e[n] = a[n], t[n] = r) } else t[i] = r } function H(e, n, i) { var r, a, s, o, l, d, u, c, p, h = this, f = e.style, v = {}, m = [], g = e.nodeType && b(e); i.queue || (c = re._queueHooks(e, "fx"), null == c.unqueued && (c.unqueued = 0, p = c.empty.fire, c.empty.fire = function() { c.unqueued || p() }), c.unqueued++, h.always(function() { h.always(function() { c.unqueued--, re.queue(e, "fx").length || c.empty.fire() }) })), 1 === e.nodeType && ("height" in n || "width" in n) && (i.overflow = [f.overflow, f.overflowX, f.overflowY], "inline" === re.css(e, "display") && "none" === re.css(e, "float") && (f.display = "inline-block")), i.overflow && (f.overflow = "hidden", h.always(function() { f.overflow = i.overflow[0], f.overflowX = i.overflow[1], f.overflowY = i.overflow[2] })), l = ve.get(e, "fxshow"); for (r in n) if (s = n[r], St.exec(s)) { if (delete n[r], d = d || "toggle" === s, s === (g ? "hide" : "show")) { if ("show" !== s || l === t || l[r] === t) continue; g = !0 } m.push(r) } if (o = m.length) { l = ve.get(e, "fxshow") || ve.access(e, "fxshow", {}), "hidden" in l && (g = l.hidden), d && (l.hidden = !g), g ? re(e).show() : h.done(function() { re(e).hide() }), h.done(function() { var t; ve.remove(e, "fxshow"); for (t in v) re.style(e, t, v[t]) }); for (r = 0; r < o; r++) a = m[r], u = h.createTween(a, g ? l[a] : 0), v[a] = l[a] || re.style(e, a), a in l || (l[a] = u.start, g && (u.end = u.start, u.start = "width" === a || "height" === a ? 1 : 0)) } } function j(e, t, n, i, r) { return new j.prototype.init(e, t, n, i, r) } function B(e, t) { var n, i = { height: e }, r = 0; for (t = t ? 1 : 0; r < 4; r += 2 - t) n = Ue[r], i["margin" + n] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i } function q(e) { return re.isWindow(e) ? e : 9 === e.nodeType && e.defaultView } var F, R, X = typeof t, W = e.location, G = e.document, Y = G.documentElement, V = e.jQuery, _ = e.$, U = {}, K = [], J = K.concat, Q = K.push, Z = K.slice, ee = K.indexOf, te = U.toString, ne = U.hasOwnProperty, ie = "2.0.0".trim, re = function(e, t) { return new re.fn.init(e, t, F) }, ae = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, se = /\S+/g, oe = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, le = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, de = /^-ms-/, ue = /-([\da-z])/gi, ce = function(e, t) { return t.toUpperCase() }, pe = function() { G.removeEventListener("DOMContentLoaded", pe, !1), e.removeEventListener("load", pe, !1), re.ready() }; re.fn = re.prototype = { jquery: "2.0.0", constructor: re, init: function(e, n, i) { var r, a; if (!e) return this; if ("string" == typeof e) { if (!(r = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : oe.exec(e)) || !r[1] && n) return !n || n.jquery ? (n || i).find(e) : this.constructor(n).find(e); if (r[1]) { if (n = n instanceof re ? n[0] : n, re.merge(this, re.parseHTML(r[1], n && n.nodeType ? n.ownerDocument || n : G, !0)), le.test(r[1]) && re.isPlainObject(n)) for (r in n) re.isFunction(this[r]) ? this[r](n[r]) : this.attr(r, n[r]); return this } return a = G.getElementById(r[2]), a && a.parentNode && (this.length = 1, this[0] = a), this.context = G, this.selector = e, this } return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : re.isFunction(e) ? i.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), re.makeArray(e, this)) }, selector: "", length: 0, toArray: function() { return Z.call(this) }, get: function(e) { return null == e ? this.toArray() : e < 0 ? this[this.length + e] : this[e] }, pushStack: function(e) { var t = re.merge(this.constructor(), e); return t.prevObject = this, t.context = this.context, t }, each: function(e, t) { return re.each(this, e, t) }, ready: function(e) { return re.ready.promise().done(e), this }, slice: function() { return this.pushStack(Z.apply(this, arguments)) }, first: function() { return this.eq(0) }, last: function() { return this.eq(-1) }, eq: function(e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(n >= 0 && n < t ? [this[n]] : []) }, map: function(e) { return this.pushStack(re.map(this, function(t, n) { return e.call(t, n, t) })) }, end: function() { return this.prevObject || this.constructor(null) }, push: Q, sort: [].sort, splice: [].splice }, re.fn.init.prototype = re.fn, re.extend = re.fn.extend = function() { var e, n, i, r, a, s, o = arguments[0] || {}, l = 1, d = arguments.length, u = !1; for ("boolean" == typeof o && (u = o, o = arguments[1] || {}, l = 2), "object" == typeof o || re.isFunction(o) || (o = {}), d === l && (o = this, --l); l < d; l++) if (null != (e = arguments[l])) for (n in e) i = o[n], r = e[n], o !== r && (u && r && (re.isPlainObject(r) || (a = re.isArray(r))) ? (a ? (a = !1, s = i && re.isArray(i) ? i : []) : s = i && re.isPlainObject(i) ? i : {}, o[n] = re.extend(u, s, r)) : r !== t && (o[n] = r)); return o }, re.extend({ expando: "jQuery" + ("2.0.0" + Math.random()).replace(/\D/g, ""), noConflict: function(t) { return e.$ === re && (e.$ = _), t && e.jQuery === re && (e.jQuery = V), re }, isReady: !1, readyWait: 1, holdReady: function(e) { e ? re.readyWait++ : re.ready(!0) }, ready: function(e) { (!0 === e ? --re.readyWait : re.isReady) || (re.isReady = !0, !0 !== e && --re.readyWait > 0 || (R.resolveWith(G, [re]), re.fn.trigger && re(G).trigger("ready").off("ready"))) }, isFunction: function(e) { return "function" === re.type(e) }, isArray: Array.isArray, isWindow: function(e) { return null != e && e === e.window }, isNumeric: function(e) { return !isNaN(parseFloat(e)) && isFinite(e) }, type: function(e) { return null == e ? String(e) : "object" == typeof e || "function" == typeof e ? U[te.call(e)] || "object" : typeof e }, isPlainObject: function(e) { if ("object" !== re.type(e) || e.nodeType || re.isWindow(e)) return !1; try { if (e.constructor && !ne.call(e.constructor.prototype, "isPrototypeOf")) return !1 } catch (e) { return !1 } return !0 }, isEmptyObject: function(e) { var t; for (t in e) return !1; return !0 }, error: function(e) { throw new Error(e) }, parseHTML: function(e, t, n) { if (!e || "string" != typeof e) return null; "boolean" == typeof t && (n = t, t = !1), t = t || G; var i = le.exec(e), r = !n && []; return i ? [t.createElement(i[1])] : (i = re.buildFragment([e], t, r), r && re(r).remove(), re.merge([], i.childNodes)) }, parseJSON: JSON.parse, parseXML: function(e) { var n, i; if (!e || "string" != typeof e) return null; try { i = new DOMParser, n = i.parseFromString(e, "text/xml") } catch (e) { n = t } return n && !n.getElementsByTagName("parsererror").length || re.error("Invalid XML: " + e), n }, noop: function() {}, globalEval: function(e) { var t, n = eval; (e = re.trim(e)) && (1 === e.indexOf("use strict") ? (t = G.createElement("script"), t.text = e, G.head.appendChild(t).parentNode.removeChild(t)) : n(e)) }, camelCase: function(e) { return e.replace(de, "ms-").replace(ue, ce) }, nodeName: function(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() }, each: function(e, t, i) { var r = 0, a = e.length, s = n(e); if (i) { if (s) for (; r < a && !1 !== t.apply(e[r], i); r++); else for (r in e) if (!1 === t.apply(e[r], i)) break } else if (s) for (; r < a && !1 !== t.call(e[r], r, e[r]); r++); else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e }, trim: function(e) { return null == e ? "" : ie.call(e) }, makeArray: function(e, t) { var i = t || []; return null != e && (n(Object(e)) ? re.merge(i, "string" == typeof e ? [e] : e) : Q.call(i, e)), i }, inArray: function(e, t, n) { return null == t ? -1 : ee.call(t, e, n) }, merge: function(e, n) { var i = n.length, r = e.length, a = 0; if ("number" == typeof i) for (; a < i; a++) e[r++] = n[a]; else for (; n[a] !== t;) e[r++] = n[a++]; return e.length = r, e }, grep: function(e, t, n) { var i, r = [], a = 0, s = e.length; for (n = !! n; a < s; a++) i = !! t(e[a], a), n !== i && r.push(e[a]); return r }, map: function(e, t, i) { var r, a = 0, s = e.length, o = n(e), l = []; if (o) for (; a < s; a++) null != (r = t(e[a], a, i)) && (l[l.length] = r); else for (a in e) null != (r = t(e[a], a, i)) && (l[l.length] = r); return J.apply([], l) }, guid: 1, proxy: function(e, n) { var i, r, a; return "string" == typeof n && (i = e[n], n = e, e = i), re.isFunction(e) ? (r = Z.call(arguments, 2), a = function() { return e.apply(n || this, r.concat(Z.call(arguments))) }, a.guid = e.guid = e.guid || re.guid++, a) : t }, access: function(e, n, i, r, a, s, o) { var l = 0, d = e.length, u = null == i; if ("object" === re.type(i)) { a = !0; for (l in i) re.access(e, n, l, i[l], !0, s, o) } else if (r !== t && (a = !0, re.isFunction(r) || (o = !0), u && (o ? (n.call(e, r), n = null) : (u = n, n = function(e, t, n) { return u.call(re(e), n) })), n)) for (; l < d; l++) n(e[l], i, o ? r : r.call(e[l], l, n(e[l], i))); return a ? e : u ? n.call(e) : d ? n(e[0], i) : s }, now: Date.now, swap: function(e, t, n, i) { var r, a, s = {}; for (a in t) s[a] = e.style[a], e.style[a] = t[a]; r = n.apply(e, i || []); for (a in t) e.style[a] = s[a]; return r } }), re.ready.promise = function(t) { return R || (R = re.Deferred(), "complete" === G.readyState ? setTimeout(re.ready) : (G.addEventListener("DOMContentLoaded", pe, !1), e.addEventListener("load", pe, !1))), R.promise(t) }, re.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(e, t) { U["[object " + t + "]"] = t.toLowerCase() }), F = re(G), function(e, t) { function n(e) { return ge.test(e + "") } function i() { var e, t = []; return e = function(n, i) { return t.push(n += " ") > C.cacheLength && delete e[t.shift()], e[n] = i } } function r(e) { return e[j] = !0, e } function a(e) { var t = D.createElement("div"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } } function s(e, t, n, i) { var r, a, s, o, l, d, u, h, f, v; if ((t ? t.ownerDocument || t : B) !== D && L(t), t = t || D, n = n || [], !e || "string" != typeof e) return n; if (1 !== (o = t.nodeType) && 9 !== o) return []; if (N && !i) { if (r = ye.exec(e)) if (s = r[1]) { if (9 === o) { if (!(a = t.getElementById(s)) || !a.parentNode) return n; if (a.id === s) return n.push(a), n } else if (t.ownerDocument && (a = t.ownerDocument.getElementById(s)) && H(t, a) && a.id === s) return n.push(a), n } else { if (r[2]) return Z.apply(n, t.getElementsByTagName(e)), n; if ((s = r[3]) && q.getElementsByClassName && t.getElementsByClassName) return Z.apply(n, t.getElementsByClassName(s)), n } if (q.qsa && (!I || !I.test(e))) { if (h = u = j, f = t, v = 9 === o && e, 1 === o && "object" !== t.nodeName.toLowerCase()) { for (d = c(e), (u = t.getAttribute("id")) ? h = u.replace(we, "\\$&") : t.setAttribute("id", h), h = "[id='" + h + "'] ", l = d.length; l--;) d[l] = h + p(d[l]); f = pe.test(e) && t.parentNode || t, v = d.join(",") } if (v) try { return Z.apply(n, f.querySelectorAll(v)), n } catch (e) {} finally { u || t.removeAttribute("id") } } } return x(e.replace(de, "$1"), t, n, i) } function o(e, t) { var n = t && e, i = n && (~t.sourceIndex || U) - (~e.sourceIndex || U); if (i) return i; if (n) for (; n = n.nextSibling;) if (n === t) return -1; return e ? 1 : -1 } function l(e, n, i) { var r; return i ? t : (r = e.getAttributeNode(n)) && r.specified ? r.value : !0 === e[n] ? n.toLowerCase() : null } function d(e, n, i) { return i ? t : e.getAttribute(n, "type" === n.toLowerCase() ? 1 : 2) } function u(e) { return r(function(t) { return t = +t, r(function(n, i) { for (var r, a = e([], n.length, t), s = a.length; s--;) n[r = a[s]] && (n[r] = !(i[r] = n[r])) }) }) } function c(e, t) { var n, i, r, a, o, l, d, u = W[e + " "]; if (u) return t ? 0 : u.slice(0); for (o = e, l = [], d = C.preFilter; o;) { n && !(i = ue.exec(o)) || (i && (o = o.slice(i[0].length) || o), l.push(r = [])), n = !1, (i = ce.exec(o)) && (n = i.shift(), r.push({ value: n, type: i[0].replace(de, " ") }), o = o.slice(n.length)); for (a in C.filter)!(i = me[a].exec(o)) || d[a] && !(i = d[a](i)) || (n = i.shift(), r.push({ value: n, type: a, matches: i }), o = o.slice(n.length)); if (!n) break } return t ? o.length : o ? s.error(e) : W(e, l).slice(0) } function p(e) { for (var t = 0, n = e.length, i = ""; t < n; t++) i += e[t].value; return i } function h(e, t, n) { var i = t.dir, r = n && "parentNode" === i, a = R++; return t.first ? function(t, n, a) { for (; t = t[i];) if (1 === t.nodeType || r) return e(t, n, a) } : function(t, n, s) { var o, l, d, u = F + " " + a; if (s) { for (; t = t[i];) if ((1 === t.nodeType || r) && e(t, n, s)) return !0 } else for (; t = t[i];) if (1 === t.nodeType || r) if (d = t[j] || (t[j] = {}), (l = d[i]) && l[0] === u) { if (!0 === (o = l[1]) || o === E) return !0 === o } else if (l = d[i] = [u], l[1] = e(t, n, s) || E, !0 === l[1]) return !0 } } function f(e) { return e.length > 1 ? function(t, n, i) { for (var r = e.length; r--;) if (!e[r](t, n, i)) return !1; return !0 } : e[0] } function v(e, t, n, i, r) { for (var a, s = [], o = 0, l = e.length, d = null != t; o < l; o++)(a = e[o]) && (n && !n(a, i, r) || (s.push(a), d && t.push(o))); return s } function m(e, t, n, i, a, s) { return i && !i[j] && (i = m(i)), a && !a[j] && (a = m(a, s)), r(function(r, s, o, l) { var d, u, c, p = [], h = [], f = s.length, m = r || b(t || "*", o.nodeType ? [o] : o, []), g = !e || !r && t ? m : v(m, p, e, o, l), y = n ? a || (r ? e : f || i) ? [] : s : g; if (n && n(g, y, o, l), i) for (d = v(y, h), i(d, [], o, l), u = d.length; u--;)(c = d[u]) && (y[h[u]] = !(g[h[u]] = c)); if (r) { if (a || e) { if (a) { for (d = [], u = y.length; u--;)(c = y[u]) && d.push(g[u] = c); a(null, y = [], d, l) } for (u = y.length; u--;)(c = y[u]) && (d = a ? te.call(r, c) : p[u]) > -1 && (r[d] = !(s[d] = c)) } } else y = v(y === s ? y.splice(f, y.length) : y), a ? a(null, s, y, l) : Z.apply(s, y) }) } function g(e) { for (var t, n, i, r = e.length, a = C.relative[e[0].type], s = a || C.relative[" "], o = a ? 1 : 0, l = h(function(e) { return e === t }, s, !0), d = h(function(e) { return te.call(t, e) > -1 }, s, !0), u = [function(e, n, i) { return !a && (i || n !== $) || ((t = n).nodeType ? l(e, n, i) : d(e, n, i)) }]; o < r; o++) if (n = C.relative[e[o].type]) u = [h(f(u), n)]; else { if (n = C.filter[e[o].type].apply(null, e[o].matches), n[j]) { for (i = ++o; i < r && !C.relative[e[i].type]; i++); return m(o > 1 && f(u), o > 1 && p(e.slice(0, o - 1)).replace(de, "$1"), n, o < i && g(e.slice(o, i)), i < r && g(e = e.slice(i)), i < r && p(e)) } u.push(n) } return f(u) } function y(e, t) { var n = 0, i = t.length > 0, a = e.length > 0, o = function(r, o, l, d, u) { var c, p, h, f = [], m = 0, g = "0", y = r && [], b = null != u, x = $, w = r || a && C.find.TAG("*", u && o.parentNode || o), T = F += null == x ? 1 : Math.random() || .1; for (b && ($ = o !== D && o, E = n); null != (c = w[g]); g++) { if (a && c) { for (p = 0; h = e[p++];) if (h(c, o, l)) { d.push(c); break } b && (F = T, E = ++n) } i && ((c = !h && c) && m--, r && y.push(c)) } if (m += g, i && g !== m) { for (p = 0; h = t[p++];) h(y, f, o, l); if (r) { if (m > 0) for (; g--;) y[g] || f[g] || (f[g] = J.call(d)); f = v(f) } Z.apply(d, f), b && !r && f.length > 0 && m + t.length > 1 && s.uniqueSort(d) } return b && (F = T, $ = x), y }; return i ? r(o) : o } function b(e, t, n) { for (var i = 0, r = t.length; i < r; i++) s(e, t[i], n); return n } function x(e, t, n, i) { var r, a, s, o, l, d = c(e); if (!i && 1 === d.length) { if (a = d[0] = d[0].slice(0), a.length > 2 && "ID" === (s = a[0]).type && 9 === t.nodeType && N && C.relative[a[1].type]) { if (!(t = (C.find.ID(s.matches[0].replace(Te, Ee), t) || [])[0])) return n; e = e.slice(a.shift().value.length) } for (r = me.needsContext.test(e) ? 0 : a.length; r-- && (s = a[r], !C.relative[o = s.type]);) if ((l = C.find[o]) && (i = l(s.matches[0].replace(Te, Ee), pe.test(a[0].type) && t.parentNode || t))) { if (a.splice(r, 1), !(e = i.length && p(a))) return Z.apply(n, i), n; break } } return M(e, d)(i, t, !N, n, pe.test(e)), n } function w() {} var T, E, C, S, k, M, $, P, L, D, z, N, I, A, O, H, j = "sizzle" + -new Date, B = e.document, q = {}, F = 0, R = 0, X = i(), W = i(), G = i(), Y = !1, V = function() { return 0 }, _ = typeof t, U = 1 << 31, K = [], J = K.pop, Q = K.push, Z = K.push, ee = K.slice, te = K.indexOf || function(e) { for (var t = 0, n = this.length; t < n; t++) if (this[t] === e) return t; return -1 }, ne = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", ie = "[\\x20\\t\\r\\n\\f]", ae = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", se = ae.replace("w", "w#"), oe = "\\[" + ie + "*(" + ae + ")" + ie + "*(?:([*^$|!~]?=)" + ie + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + se + ")|)|)" + ie + "*\\]", le = ":(" + ae + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + oe.replace(3, 8) + ")*)|.*)\\)|)", de = new RegExp("^" + ie + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ie + "+$", "g"), ue = new RegExp("^" + ie + "*," + ie + "*"), ce = new RegExp("^" + ie + "*([>+~]|" + ie + ")" + ie + "*"), pe = new RegExp(ie + "*[+~]"), he = new RegExp("=" + ie + "*([^\\]'\"]*)" + ie + "*\\]", "g"), fe = new RegExp(le), ve = new RegExp("^" + se + "$"), me = { "ID": new RegExp("^#(" + ae + ")"), "CLASS": new RegExp("^\\.(" + ae + ")"), "TAG": new RegExp("^(" + ae.replace("w", "w*") + ")"), "ATTR": new RegExp("^" + oe), "PSEUDO": new RegExp("^" + le), "CHILD": new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ie + "*(even|odd|(([+-]|)(\\d*)n|)" + ie + "*(?:([+-]|)" + ie + "*(\\d+)|))" + ie + "*\\)|)", "i"), "boolean": new RegExp("^(?:" + ne + ")$", "i"), "needsContext": new RegExp("^" + ie + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ie + "*((?:-\\d)?\\d*)" + ie + "*\\)|)(?=[^-]|$)", "i") }, ge = /^[^{]+\{\s*\[native \w/, ye = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, be = /^(?:input|select|textarea|button)$/i, xe = /^h\d$/i, we = /'|\\/g, Te = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, Ee = function(e, t) { var n = "0x" + t - 65536; return n !== n ? t : n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320) }; try { Z.apply(K = ee.call(B.childNodes), B.childNodes), K[B.childNodes.length].nodeType } catch (e) { Z = { apply: K.length ? function(e, t) { Q.apply(e, ee.call(t)) } : function(e, t) { for (var n = e.length, i = 0; e[n++] = t[i++];); e.length = n - 1 } } } k = s.isXML = function(e) { var t = e && (e.ownerDocument || e).documentElement; return !!t && "HTML" !== t.nodeName }, L = s.setDocument = function(e) { var i = e ? e.ownerDocument || e : B; return i !== D && 9 === i.nodeType && i.documentElement ? (D = i, z = i.documentElement, N = !k(i), q.getElementsByTagName = a(function(e) { return e.appendChild(i.createComment("")), !e.getElementsByTagName("*").length }), q.attributes = a(function(e) { return e.className = "i", !e.getAttribute("className") }), q.getElementsByClassName = a(function(e) { return e.innerHTML = "<div class='a'></div><div class='a i'></div>", e.firstChild.className = "i", 2 === e.getElementsByClassName("i").length }), q.sortDetached = a(function(e) { return 1 & e.compareDocumentPosition(D.createElement("div")) }), q.getById = a(function(e) { return z.appendChild(e).id = j, !i.getElementsByName || !i.getElementsByName(j).length }), q.getById ? (C.find.ID = function(e, t) { if (typeof t.getElementById !== _ && N) { var n = t.getElementById(e); return n && n.parentNode ? [n] : [] } }, C.filter.ID = function(e) { var t = e.replace(Te, Ee); return function(e) { return e.getAttribute("id") === t } }) : (C.find.ID = function(e, n) { if (typeof n.getElementById !== _ && N) { var i = n.getElementById(e); return i ? i.id === e || typeof i.getAttributeNode !== _ && i.getAttributeNode("id").value === e ? [i] : t : [] } }, C.filter.ID = function(e) { var t = e.replace(Te, Ee); return function(e) { var n = typeof e.getAttributeNode !== _ && e.getAttributeNode("id"); return n && n.value === t } }), C.find.TAG = q.getElementsByTagName ? function(e, t) { if (typeof t.getElementsByTagName !== _) return t.getElementsByTagName(e) } : function(e, t) { var n, i = [], r = 0, a = t.getElementsByTagName(e); if ("*" === e) { for (; n = a[r++];) 1 === n.nodeType && i.push(n); return i } return a }, C.find.CLASS = q.getElementsByClassName && function(e, t) { if (typeof t.getElementsByClassName !== _ && N) return t.getElementsByClassName(e) }, A = [], I = [], (q.qsa = n(i.querySelectorAll)) && (a(function(e) { e.innerHTML = "<select><option selected=''></option></select>", e.querySelectorAll("[selected]").length || I.push("\\[" + ie + "*(?:value|" + ne + ")"), e.querySelectorAll(":checked").length || I.push(":checked") }), a(function(e) { var t = D.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("t", ""), e.querySelectorAll("[t^='']").length && I.push("[*^$]=" + ie + "*(?:''|\"\")"), e.querySelectorAll(":enabled").length || I.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), I.push(",.*:") })), (q.matchesSelector = n(O = z.webkitMatchesSelector || z.mozMatchesSelector || z.oMatchesSelector || z.msMatchesSelector)) && a(function(e) { q.disconnectedMatch = O.call(e, "div"), O.call(e, "[s!='']:x"), A.push("!=", le) }), I = I.length && new RegExp(I.join("|")), A = A.length && new RegExp(A.join("|")), H = n(z.contains) || z.compareDocumentPosition ? function(e, t) { var n = 9 === e.nodeType ? e.documentElement : e, i = t && t.parentNode; return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i))) } : function(e, t) { if (t) for (; t = t.parentNode;) if (t === e) return !0; return !1 }, V = z.compareDocumentPosition ? function(e, t) { if (e === t) return Y = !0, 0; var n = t.compareDocumentPosition && e.compareDocumentPosition && e.compareDocumentPosition(t); return n ? 1 & n || !q.sortDetached && t.compareDocumentPosition(e) === n ? e === i || H(B, e) ? -1 : t === i || H(B, t) ? 1 : P ? te.call(P, e) - te.call(P, t) : 0 : 4 & n ? -1 : 1 : e.compareDocumentPosition ? -1 : 1 } : function(e, t) { var n, r = 0, a = e.parentNode, s = t.parentNode, l = [e], d = [t]; if (e === t) return Y = !0, 0; if (!a || !s) return e === i ? -1 : t === i ? 1 : a ? -1 : s ? 1 : P ? te.call(P, e) - te.call(P, t) : 0; if (a === s) return o(e, t); for (n = e; n = n.parentNode;) l.unshift(n); for (n = t; n = n.parentNode;) d.unshift(n); for (; l[r] === d[r];) r++; return r ? o(l[r], d[r]) : l[r] === B ? -1 : d[r] === B ? 1 : 0 }, D) : D }, s.matches = function(e, t) { return s(e, null, null, t) }, s.matchesSelector = function(e, t) { if ((e.ownerDocument || e) !== D && L(e), t = t.replace(he, "='$1']"), q.matchesSelector && N && (!A || !A.test(t)) && (!I || !I.test(t))) try { var n = O.call(e, t); if (n || q.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n } catch (e) {} return s(t, D, null, [e]).length > 0 }, s.contains = function(e, t) { return (e.ownerDocument || e) !== D && L(e), H(e, t) }, s.attr = function(e, n) { (e.ownerDocument || e) !== D && L(e); var i = C.attrHandle[n.toLowerCase()], r = i && i(e, n, !N); return r === t ? q.attributes || !N ? e.getAttribute(n) : (r = e.getAttributeNode(n)) && r.specified ? r.value : null : r }, s.error = function(e) { throw new Error("Syntax error, unrecognized expression: " + e) }, s.uniqueSort = function(e) { var t, n = [], i = 0, r = 0; if (Y = !q.detectDuplicates, P = !q.sortStable && e.slice(0), e.sort(V), Y) { for (; t = e[r++];) t === e[r] && (i = n.push(r)); for (; i--;) e.splice(n[i], 1) } return e }, S = s.getText = function(e) { var t, n = "", i = 0, r = e.nodeType; if (r) { if (1 === r || 9 === r || 11 === r) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) n += S(e) } else if (3 === r || 4 === r) return e.nodeValue } else for (; t = e[i]; i++) n += S(t); return n }, C = s.selectors = { cacheLength: 50, createPseudo: r, match: me, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { "ATTR": function(e) { return e[1] = e[1].replace(Te, Ee), e[3] = (e[4] || e[5] || "").replace(Te, Ee), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, "CHILD": function(e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || s.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && s.error(e[0]), e }, "PSEUDO": function(e) { var t, n = !e[5] && e[2]; return me.CHILD.test(e[0]) ? null : (e[4] ? e[2] = e[4] : n && fe.test(n) && (t = c(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { "TAG": function(e) { var t = e.replace(Te, Ee).toLowerCase(); return "*" === e ? function() { return !0 } : function(e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, "CLASS": function(e) { var t = X[e + " "]; return t || (t = new RegExp("(^|" + ie + ")" + e + "(" + ie + "|$)")) && X(e, function(e) { return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== _ && e.getAttribute("class") || "") }) }, "ATTR": function(e, t, n) { return function(i) { var r = s.attr(i, e); return null == r ? "!=" === t : !t || (r += "", "=" === t ? r === n : "!=" === t ? r !== n : "^=" === t ? n && 0 === r.indexOf(n) : "*=" === t ? n && r.indexOf(n) > -1 : "$=" === t ? n && r.slice(-n.length) === n : "~=" === t ? (" " + r + " ").indexOf(n) > -1 : "|=" === t && (r === n || r.slice(0, n.length + 1) === n + "-")) } }, "CHILD": function(e, t, n, i, r) { var a = "nth" !== e.slice(0, 3), s = "last" !== e.slice(-4), o = "of-type" === t; return 1 === i && 0 === r ? function(e) { return !!e.parentNode } : function(t, n, l) { var d, u, c, p, h, f, v = a !== s ? "nextSibling" : "previousSibling", m = t.parentNode, g = o && t.nodeName.toLowerCase(), y = !l && !o; if (m) { if (a) { for (; v;) { for (c = t; c = c[v];) if (o ? c.nodeName.toLowerCase() === g : 1 === c.nodeType) return !1; f = v = "only" === e && !f && "nextSibling" } return !0 } if (f = [s ? m.firstChild : m.lastChild], s && y) { for (u = m[j] || (m[j] = {}), d = u[e] || [], h = d[0] === F && d[1], p = d[0] === F && d[2], c = h && m.childNodes[h]; c = ++h && c && c[v] || (p = h = 0) || f.pop();) if (1 === c.nodeType && ++p && c === t) { u[e] = [F, h, p]; break } } else if (y && (d = (t[j] || (t[j] = {}))[e]) && d[0] === F) p = d[1]; else for (; (c = ++h && c && c[v] || (p = h = 0) || f.pop()) && ((o ? c.nodeName.toLowerCase() !== g : 1 !== c.nodeType) || !++p || (y && ((c[j] || (c[j] = {}))[e] = [F, p]), c !== t));); return (p -= r) === i || p % i == 0 && p / i >= 0 } } }, "PSEUDO": function(e, t) { var n, i = C.pseudos[e] || C.setFilters[e.toLowerCase()] || s.error("unsupported pseudo: " + e); return i[j] ? i(t) : i.length > 1 ? (n = [e, e, "", t], C.setFilters.hasOwnProperty(e.toLowerCase()) ? r(function(e, n) { for (var r, a = i(e, t), s = a.length; s--;) r = te.call(e, a[s]), e[r] = !(n[r] = a[s]) }) : function(e) { return i(e, 0, n) }) : i } }, pseudos: { "not": r(function(e) { var t = [], n = [], i = M(e.replace(de, "$1")); return i[j] ? r(function(e, t, n, r) { for (var a, s = i(e, null, r, []), o = e.length; o--;)(a = s[o]) && (e[o] = !(t[o] = a)) }) : function(e, r, a) { return t[0] = e, i(t, null, a, n), !n.pop() } }), "has": r(function(e) { return function(t) { return s(e, t).length > 0 } }), "contains": r(function(e) { return function(t) { return (t.textContent || t.innerText || S(t)).indexOf(e) > -1 } }), "lang": r(function(e) { return ve.test(e || "") || s.error("unsupported lang: " + e), e = e.replace(Te, Ee).toLowerCase(), function(t) { var n; do { if (n = N ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-") } while ((t = t.parentNode) && 1 === t.nodeType); return !1 } }), "target": function(t) { var n = e.location && e.location.hash; return n && n.slice(1) === t.id }, "root": function(e) { return e === z }, "focus": function(e) { return e === D.activeElement && (!D.hasFocus || D.hasFocus()) && !! (e.type || e.href || ~e.tabIndex) }, "enabled": function(e) { return !1 === e.disabled }, "disabled": function(e) { return !0 === e.disabled }, "checked": function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && !! e.checked || "option" === t && !! e.selected }, "selected": function(e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, "empty": function(e) { for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeName > "@" || 3 === e.nodeType || 4 === e.nodeType) return !1; return !0 }, "parent": function(e) { return !C.pseudos.empty(e) }, "header": function(e) { return xe.test(e.nodeName) }, "input": function(e) { return be.test(e.nodeName) }, "button": function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t }, "text": function(e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || t.toLowerCase() === e.type) }, "first": u(function() { return [0] }), "last": u(function(e, t) { return [t - 1] }), "eq": u(function(e, t, n) { return [n < 0 ? n + t : n] }), "even": u(function(e, t) { for (var n = 0; n < t; n += 2) e.push(n); return e }), "odd": u(function(e, t) { for (var n = 1; n < t; n += 2) e.push(n); return e }), "lt": u(function(e, t, n) { for (var i = n < 0 ? n + t : n; --i >= 0;) e.push(i); return e }), "gt": u(function(e, t, n) { for (var i = n < 0 ? n + t : n; ++i < t;) e.push(i); return e }) } }; for (T in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) C.pseudos[T] = function(e) { return function(t) { return "input" === t.nodeName.toLowerCase() && t.type === e } }(T); for (T in { submit: !0, reset: !0 }) C.pseudos[T] = function(e) { return function(t) { var n = t.nodeName.toLowerCase(); return ("input" === n || "button" === n) && t.type === e } }(T); M = s.compile = function(e, t) { var n, i = [], r = [], a = G[e + " "]; if (!a) { for (t || (t = c(e)), n = t.length; n--;) a = g(t[n]), a[j] ? i.push(a) : r.push(a); a = G(e, y(r, i)) } return a }, C.pseudos.nth = C.pseudos.eq, w.prototype = C.filters = C.pseudos, C.setFilters = new w, q.sortStable = j.split("").sort(V).join("") === j, L(), [0, 0].sort(V), q.detectDuplicates = Y, a(function(e) { if (e.innerHTML = "<a href='#'></a>", "#" !== e.firstChild.getAttribute("href")) for (var t = "type|href|height|width".split("|"), n = t.length; n--;) C.attrHandle[t[n]] = d }), a(function(e) { if (null != e.getAttribute("disabled")) for (var t = ne.split("|"), n = t.length; n--;) C.attrHandle[t[n]] = l }), re.find = s, re.expr = s.selectors, re.expr[":"] = re.expr.pseudos, re.unique = s.uniqueSort, re.text = s.getText, re.isXMLDoc = s.isXML, re.contains = s.contains }(e); var he = {}; re.Callbacks = function(e) { e = "string" == typeof e ? he[e] || i(e) : re.extend({}, e); var n, r, a, s, o, l, d = [], u = !e.once && [], c = function(t) { for (n = e.memory && t, r = !0, l = s || 0, s = 0, o = d.length, a = !0; d && l < o; l++) if (!1 === d[l].apply(t[0], t[1]) && e.stopOnFalse) { n = !1; break } a = !1, d && (u ? u.length && c(u.shift()) : n ? d = [] : p.disable()) }, p = { add: function() { if (d) { var t = d.length; ! function t(n) { re.each(n, function(n, i) { var r = re.type(i); "function" === r ? e.unique && p.has(i) || d.push(i) : i && i.length && "string" !== r && t(i) }) }(arguments), a ? o = d.length : n && (s = t, c(n)) } return this }, remove: function() { return d && re.each(arguments, function(e, t) { for (var n; (n = re.inArray(t, d, n)) > -1;) d.splice(n, 1), a && (n <= o && o--, n <= l && l--) }), this }, has: function(e) { return e ? re.inArray(e, d) > -1 : !(!d || !d.length) }, empty: function() { return d = [], o = 0, this }, disable: function() { return d = u = n = t, this }, disabled: function() { return !d }, lock: function() { return u = t, n || p.disable(), this }, locked: function() { return !u }, fireWith: function(e, t) { return t = t || [], t = [e, t.slice ? t.slice() : t], !d || r && !u || (a ? u.push(t) : c(t)), this }, fire: function() { return p.fireWith(this, arguments), this }, fired: function() { return !!r } }; return p }, re.extend({ Deferred: function(e) { var t = [ ["resolve", "done", re.Callbacks("once memory"), "resolved"], ["reject", "fail", re.Callbacks("once memory"), "rejected"], ["notify", "progress", re.Callbacks("memory")] ], n = "pending", i = { state: function() { return n }, always: function() { return r.done(arguments).fail(arguments), this }, then: function() { var e = arguments; return re.Deferred(function(n) { re.each(t, function(t, a) { var s = a[0], o = re.isFunction(e[t]) && e[t]; r[a[1]](function() { var e = o && o.apply(this, arguments); e && re.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s + "With"](this === i ? n.promise() : this, o ? [e] : arguments) }) }), e = null }).promise() }, promise: function(e) { return null != e ? re.extend(e, i) : i } }, r = {}; return i.pipe = i.then, re.each(t, function(e, a) { var s = a[2], o = a[3]; i[a[1]] = s.add, o && s.add(function() { n = o }, t[1 ^ e][2].disable, t[2][2].lock), r[a[0]] = function() { return r[a[0] + "With"](this === r ? i : this, arguments), this }, r[a[0] + "With"] = s.fireWith }), i.promise(r), e && e.call(r, r), r }, when: function(e) { var t, n, i, r = 0, a = Z.call(arguments), s = a.length, o = 1 !== s || e && re.isFunction(e.promise) ? s : 0, l = 1 === o ? e : re.Deferred(), d = function(e, n, i) { return function(r) { n[e] = this, i[e] = arguments.length > 1 ? Z.call(arguments) : r, i === t ? l.notifyWith(n, i) : --o || l.resolveWith(n, i) } }; if (s > 1) for (t = new Array(s), n = new Array(s), i = new Array(s); r < s; r++) a[r] && re.isFunction(a[r].promise) ? a[r].promise().done(d(r, i, a)).fail(l.reject).progress(d(r, n, t)) : --o; return o || l.resolveWith(i, a), l.promise() } }), re.support = function(t) { var n = G.createElement("input"), i = G.createDocumentFragment(), r = G.createElement("div"), a = G.createElement("select"), s = a.appendChild(G.createElement("option")); return n.type ? (n.type = "checkbox", t.checkOn = "" !== n.value, t.optSelected = s.selected, t.reliableMarginRight = !0, t.boxSizingReliable = !0, t.pixelPosition = !1, n.checked = !0, t.noCloneChecked = n.cloneNode(!0).checked, a.disabled = !0, t.optDisabled = !s.disabled, n = G.createElement("input"), n.value = "t", n.type = "radio", t.radioValue = "t" === n.value, n.setAttribute("checked", "t"), n.setAttribute("name", "t"), i.appendChild(n), t.checkClone = i.cloneNode(!0).cloneNode(!0).lastChild.checked, t.focusinBubbles = "onfocusin" in e, r.style.backgroundClip = "content-box", r.cloneNode(!0).style.backgroundClip = "", t.clearCloneStyle = "content-box" === r.style.backgroundClip, re(function() { var n, i, a = G.getElementsByTagName("body")[0]; a && (n = G.createElement("div"), n.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", a.appendChild(n).appendChild(r), r.innerHTML = "", r.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%", re.swap(a, null != a.style.zoom ? { zoom: 1 } : {}, function() { t.boxSizing = 4 === r.offsetWidth }), e.getComputedStyle && (t.pixelPosition = "1%" !== (e.getComputedStyle(r, null) || {}).top, t.boxSizingReliable = "4px" === (e.getComputedStyle(r, null) || { width: "4px" }).width, i = r.appendChild(G.createElement("div")), i.style.cssText = r.style.cssText = "padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box", i.style.marginRight = i.style.width = "0", r.style.width = "1px", t.reliableMarginRight = !parseFloat((e.getComputedStyle(i, null) || {}).marginRight)), a.removeChild(n)) }), t) : t }({}); var fe, ve, me = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, ge = /([A-Z])/g; r.uid = 1, r.accepts = function(e) { return !e.nodeType || (1 === e.nodeType || 9 === e.nodeType) }, r.prototype = { key: function(e) { if (!r.accepts(e)) return 0; var t = {}, n = e[this.expando]; if (!n) { n = r.uid++; try { t[this.expando] = { value: n }, Object.defineProperties(e, t) } catch (i) { t[this.expando] = n, re.extend(e, t) } } return this.cache[n] || (this.cache[n] = {}), n }, set: function(e, t, n) { var i, r = this.key(e), a = this.cache[r]; if ("string" == typeof t) a[t] = n; else if (re.isEmptyObject(a)) this.cache[r] = t; else for (i in t) a[i] = t[i] }, get: function(e, n) { var i = this.cache[this.key(e)]; return n === t ? i : i[n] }, access: function(e, n, i) { return n === t || n && "string" == typeof n && i === t ? this.get(e, n) : (this.set(e, n, i), i !== t ? i : n) }, remove: function(e, n) { var i, r, a = this.key(e), s = this.cache[a]; if (n === t) this.cache[a] = {}; else { re.isArray(n) ? r = n.concat(n.map(re.camelCase)) : n in s ? r = [n] : (r = re.camelCase(n), r = r in s ? [r] : r.match(se) || []), i = r.length; for (; i--;) delete s[r[i]] } }, hasData: function(e) { return !re.isEmptyObject(this.cache[e[this.expando]] || {}) }, discard: function(e) { delete this.cache[this.key(e)] } }, fe = new r, ve = new r, re.extend({ acceptData: r.accepts, hasData: function(e) { return fe.hasData(e) || ve.hasData(e) }, data: function(e, t, n) { return fe.access(e, t, n) }, removeData: function(e, t) { fe.remove(e, t) }, _data: function(e, t, n) { return ve.access(e, t, n) }, _removeData: function(e, t) { ve.remove(e, t) } }), re.fn.extend({ data: function(e, n) { var i, r, s = this[0], o = 0, l = null; if (e === t) { if (this.length && (l = fe.get(s), 1 === s.nodeType && !ve.get(s, "hasDataAttrs"))) { for (i = s.attributes; o < i.length; o++) r = i[o].name, 0 === r.indexOf("data-") && (r = re.camelCase(r.substring(5)), a(s, r, l[r])); ve.set(s, "hasDataAttrs", !0) } return l } return "object" == typeof e ? this.each(function() { fe.set(this, e) }) : re.access(this, function(n) { var i, r = re.camelCase(e); if (s && n === t) { if ((i = fe.get(s, e)) !== t) return i; if ((i = fe.get(s, r)) !== t) return i; if ((i = a(s, r, t)) !== t) return i } else this.each(function() { var i = fe.get(this, r); fe.set(this, r, n), -1 !== e.indexOf("-") && i !== t && fe.set(this, e, n) }) }, null, n, arguments.length > 1, null, !0) }, removeData: function(e) { return this.each(function() { fe.remove(this, e) }) } }), re.extend({ queue: function(e, t, n) { var i; if (e) return t = (t || "fx") + "queue", i = ve.get(e, t), n && (!i || re.isArray(n) ? i = ve.access(e, t, re.makeArray(n)) : i.push(n)), i || [] }, dequeue: function(e, t) { t = t || "fx"; var n = re.queue(e, t), i = n.length, r = n.shift(), a = re._queueHooks(e, t), s = function() { re.dequeue(e, t) }; "inprogress" === r && (r = n.shift(), i--), a.cur = r, r && ("fx" === t && n.unshift("inprogress"), delete a.stop, r.call(e, s, a)), !i && a && a.empty.fire() }, _queueHooks: function(e, t) { var n = t + "queueHooks"; return ve.get(e, n) || ve.access(e, n, { empty: re.Callbacks("once memory").add(function() { ve.remove(e, [t + "queue", n]) }) }) } }), re.fn.extend({ queue: function(e, n) { var i = 2; return "string" != typeof e && (n = e, e = "fx", i--), arguments.length < i ? re.queue(this[0], e) : n === t ? this : this.each(function() { var t = re.queue(this, e, n); re._queueHooks(this, e), "fx" === e && "inprogress" !== t[0] && re.dequeue(this, e) }) }, dequeue: function(e) { return this.each(function() { re.dequeue(this, e) }) }, delay: function(e, t) { return e = re.fx ? re.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function(t, n) { var i = setTimeout(t, e); n.stop = function() { clearTimeout(i) } }) }, clearQueue: function(e) { return this.queue(e || "fx", []) }, promise: function(e, n) { var i, r = 1, a = re.Deferred(), s = this, o = this.length, l = function() { --r || a.resolveWith(s, [s]) }; for ("string" != typeof e && (n = e, e = t), e = e || "fx"; o--;)(i = ve.get(s[o], e + "queueHooks")) && i.empty && (r++, i.empty.add(l)); return l(), a.promise(n) } }); var ye, be = /[\t\r\n]/g, xe = /\r/g, we = /^(?:input|select|textarea|button)$/i; re.fn.extend({ attr: function(e, t) { return re.access(this, re.attr, e, t, arguments.length > 1) }, removeAttr: function(e) { return this.each(function() { re.removeAttr(this, e) }) }, prop: function(e, t) { return re.access(this, re.prop, e, t, arguments.length > 1) }, removeProp: function(e) { return this.each(function() { delete this[re.propFix[e] || e] }) }, addClass: function(e) { var t, n, i, r, a, s = 0, o = this.length, l = "string" == typeof e && e; if (re.isFunction(e)) return this.each(function(t) { re(this).addClass(e.call(this, t, this.className)) }); if (l) for (t = (e || "").match(se) || []; s < o; s++) if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(be, " ") : " ")) { for (a = 0; r = t[a++];) i.indexOf(" " + r + " ") < 0 && (i += r + " "); n.className = re.trim(i) } return this }, removeClass: function(e) { var t, n, i, r, a, s = 0, o = this.length, l = 0 === arguments.length || "string" == typeof e && e; if (re.isFunction(e)) return this.each(function(t) { re(this).removeClass(e.call(this, t, this.className)) }); if (l) for (t = (e || "").match(se) || []; s < o; s++) if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(be, " ") : "")) { for (a = 0; r = t[a++];) for (; i.indexOf(" " + r + " ") >= 0;) i = i.replace(" " + r + " ", " "); n.className = e ? re.trim(i) : "" } return this }, toggleClass: function(e, t) { var n = typeof e, i = "boolean" == typeof t; return re.isFunction(e) ? this.each(function(n) { re(this).toggleClass(e.call(this, n, this.className, t), t) }) : this.each(function() { if ("string" === n) for (var r, a = 0, s = re(this), o = t, l = e.match(se) || []; r = l[a++];) o = i ? o : !s.hasClass(r), s[o ? "addClass" : "removeClass"](r); else n !== X && "boolean" !== n || (this.className && ve.set(this, "__className__", this.className), this.className = this.className || !1 === e ? "" : ve.get(this, "__className__") || "") }) }, hasClass: function(e) { for (var t = " " + e + " ", n = 0, i = this.length; n < i; n++) if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(be, " ").indexOf(t) >= 0) return !0; return !1 }, val: function(e) { var n, i, r, a = this[0]; { if (arguments.length) return r = re.isFunction(e), this.each(function(i) { var a, s = re(this); 1 === this.nodeType && (a = r ? e.call(this, i, s.val()) : e, null == a ? a = "" : "number" == typeof a ? a += "" : re.isArray(a) && (a = re.map(a, function(e) { return null == e ? "" : e + "" })), (n = re.valHooks[this.type] || re.valHooks[this.nodeName.toLowerCase()]) && "set" in n && n.set(this, a, "value") !== t || (this.value = a)) }); if (a) return (n = re.valHooks[a.type] || re.valHooks[a.nodeName.toLowerCase()]) && "get" in n && (i = n.get(a, "value")) !== t ? i : (i = a.value, "string" == typeof i ? i.replace(xe, "") : null == i ? "" : i) } } }), re.extend({ valHooks: { option: { get: function(e) { var t = e.attributes.value; return !t || t.specified ? e.value : e.text } }, select: { get: function(e) { for (var t, n, i = e.options, r = e.selectedIndex, a = "select-one" === e.type || r < 0, s = a ? null : [], o = a ? r + 1 : i.length, l = r < 0 ? o : a ? r : 0; l < o; l++) if (n = i[l], (n.selected || l === r) && (re.support.optDisabled ? !n.disabled : null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !re.nodeName(n.parentNode, "optgroup"))) { if (t = re(n).val(), a) return t; s.push(t) } return s }, set: function(e, t) { for (var n, i, r = e.options, a = re.makeArray(t), s = r.length; s--;) i = r[s], (i.selected = re.inArray(re(i).val(), a) >= 0) && (n = !0); return n || (e.selectedIndex = -1), a } } }, attr: function(e, n, i) { var r, a, s = e.nodeType; if (e && 3 !== s && 8 !== s && 2 !== s) return typeof e.getAttribute === X ? re.prop(e, n, i) : (1 === s && re.isXMLDoc(e) || (n = n.toLowerCase(), r = re.attrHooks[n] || (re.expr.match.boolean.test(n) ? ye : void 0)), i === t ? r && "get" in r && null !== (a = r.get(e, n)) ? a : (a = re.find.attr(e, n), null == a ? t : a) : null !== i ? r && "set" in r && (a = r.set(e, i, n)) !== t ? a : (e.setAttribute(n, i + ""), i) : void re.removeAttr(e, n)) }, removeAttr: function(e, t) { var n, i, r = 0, a = t && t.match(se); if (a && 1 === e.nodeType) for (; n = a[r++];) i = re.propFix[n] || n, re.expr.match.boolean.test(n) && (e[i] = !1), e.removeAttribute(n) }, attrHooks: { type: { set: function(e, t) { if (!re.support.radioValue && "radio" === t && re.nodeName(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t } } } }, propFix: { "for": "htmlFor", "class": "className" }, prop: function(e, n, i) { var r, a, s, o = e.nodeType; if (e && 3 !== o && 8 !== o && 2 !== o) return s = 1 !== o || !re.isXMLDoc(e), s && (n = re.propFix[n] || n, a = re.propHooks[n]), i !== t ? a && "set" in a && (r = a.set(e, i, n)) !== t ? r : e[n] = i : a && "get" in a && null !== (r = a.get(e, n)) ? r : e[n] }, propHooks: { tabIndex: { get: function(e) { return e.hasAttribute("tabindex") || we.test(e.nodeName) || e.href ? e.tabIndex : -1 } } } }), ye = { set: function(e, t, n) { return !1 === t ? re.removeAttr(e, n) : e.setAttribute(n, n), n } }, re.each(re.expr.match.boolean.source.match(/\w+/g), function(e, n) { var i = re.expr.attrHandle[n] || re.find.attr; re.expr.attrHandle[n] = function(e, n, r) { var a = re.expr.attrHandle[n], s = r ? t : (re.expr.attrHandle[n] = t) != i(e, n, r) ? n.toLowerCase() : null; return re.expr.attrHandle[n] = a, s } }), re.support.optSelected || (re.propHooks.selected = { get: function(e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null } }), re.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { re.propFix[this.toLowerCase()] = this }), re.each(["radio", "checkbox"], function() { re.valHooks[this] = { set: function(e, t) { if (re.isArray(t)) return e.checked = re.inArray(re(e).val(), t) >= 0 } }, re.support.checkOn || (re.valHooks[this].get = function(e) { return null === e.getAttribute("value") ? "on" : e.value }) }); var Te = /^key/, Ee = /^(?:mouse|contextmenu)|click/, Ce = /^(?:focusinfocus|focusoutblur)$/, Se = /^([^.]*)(?:\.(.+)|)$/; re.event = { global: {}, add: function(e, n, i, r, a) { var s, o, l, d, u, c, p, h, f, v, m, g = ve.get(e); if (g) { for (i.handler && (s = i, i = s.handler, a = s.selector), i.guid || (i.guid = re.guid++), (d = g.events) || (d = g.events = {}), (o = g.handle) || (o = g.handle = function(e) { return typeof re === X || e && re.event.triggered === e.type ? t : re.event.dispatch.apply(o.elem, arguments) }, o.elem = e), n = (n || "").match(se) || [""], u = n.length; u--;) l = Se.exec(n[u]) || [], f = m = l[1], v = (l[2] || "").split(".").sort(), f && (p = re.event.special[f] || {}, f = (a ? p.delegateType : p.bindType) || f, p = re.event.special[f] || {}, c = re.extend({ type: f, origType: m, data: r, handler: i, guid: i.guid, selector: a, needsContext: a && re.expr.match.needsContext.test(a), namespace: v.join(".") }, s), (h = d[f]) || (h = d[f] = [], h.delegateCount = 0, p.setup && !1 !== p.setup.call(e, r, v, o) || e.addEventListener && e.addEventListener(f, o, !1)), p.add && (p.add.call(e, c), c.handler.guid || (c.handler.guid = i.guid)), a ? h.splice(h.delegateCount++, 0, c) : h.push(c), re.event.global[f] = !0); e = null } }, remove: function(e, t, n, i, r) { var a, s, o, l, d, u, c, p, h, f, v, m = ve.hasData(e) && ve.get(e); if (m && (l = m.events)) { for (t = (t || "").match(se) || [""], d = t.length; d--;) if (o = Se.exec(t[d]) || [], h = v = o[1], f = (o[2] || "").split(".").sort(), h) { for (c = re.event.special[h] || {}, h = (i ? c.delegateType : c.bindType) || h, p = l[h] || [], o = o[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), s = a = p.length; a--;) u = p[a], !r && v !== u.origType || n && n.guid !== u.guid || o && !o.test(u.namespace) || i && i !== u.selector && ("**" !== i || !u.selector) || (p.splice(a, 1), u.selector && p.delegateCount--, c.remove && c.remove.call(e, u)); s && !p.length && (c.teardown && !1 !== c.teardown.call(e, f, m.handle) || re.removeEvent(e, h, m.handle), delete l[h]) } else for (h in l) re.event.remove(e, h + t[d], n, i, !0); re.isEmptyObject(l) && (delete m.handle, ve.remove(e, "events")) } }, trigger: function(n, i, r, a) { var s, o, l, d, u, c, p, h = [r || G], f = ne.call(n, "type") ? n.type : n, v = ne.call(n, "namespace") ? n.namespace.split(".") : []; if (o = l = r = r || G, 3 !== r.nodeType && 8 !== r.nodeType && !Ce.test(f + re.event.triggered) && (f.indexOf(".") >= 0 && (v = f.split("."), f = v.shift(), v.sort()), u = f.indexOf(":") < 0 && "on" + f, n = n[re.expando] ? n : new re.Event(f, "object" == typeof n && n), n.isTrigger = a ? 2 : 3, n.namespace = v.join("."), n.namespace_re = n.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, n.result = t, n.target || (n.target = r), i = null == i ? [n] : re.makeArray(i, [n]), p = re.event.special[f] || {}, a || !p.trigger || !1 !== p.trigger.apply(r, i))) { if (!a && !p.noBubble && !re.isWindow(r)) { for (d = p.delegateType || f, Ce.test(d + f) || (o = o.parentNode); o; o = o.parentNode) h.push(o), l = o; l === (r.ownerDocument || G) && h.push(l.defaultView || l.parentWindow || e) } for (s = 0; (o = h[s++]) && !n.isPropagationStopped();) n.type = s > 1 ? d : p.bindType || f, c = (ve.get(o, "events") || {})[n.type] && ve.get(o, "handle"), c && c.apply(o, i), (c = u && o[u]) && re.acceptData(o) && c.apply && !1 === c.apply(o, i) && n.preventDefault(); return n.type = f, a || n.isDefaultPrevented() || p._default && !1 !== p._default.apply(h.pop(), i) || !re.acceptData(r) || u && re.isFunction(r[f]) && !re.isWindow(r) && (l = r[u], l && (r[u] = null), re.event.triggered = f, r[f](), re.event.triggered = t, l && (r[u] = l)), n.result } }, dispatch: function(e) { e = re.event.fix(e); var n, i, r, a, s, o = [], l = Z.call(arguments), d = (ve.get(this, "events") || {})[e.type] || [], u = re.event.special[e.type] || {}; if (l[0] = e, e.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, e)) { for (o = re.event.handlers.call(this, e, d), n = 0; (a = o[n++]) && !e.isPropagationStopped();) for (e.currentTarget = a.elem, i = 0; (s = a.handlers[i++]) && !e.isImmediatePropagationStopped();) e.namespace_re && !e.namespace_re.test(s.namespace) || (e.handleObj = s, e.data = s.data, (r = ((re.event.special[s.origType] || {}).handle || s.handler).apply(a.elem, l)) !== t && !1 === (e.result = r) && (e.preventDefault(), e.stopPropagation())); return u.postDispatch && u.postDispatch.call(this, e), e.result } }, handlers: function(e, n) { var i, r, a, s, o = [], l = n.delegateCount, d = e.target; if (l && d.nodeType && (!e.button || "click" !== e.type)) for (; d !== this; d = d.parentNode || this) if (!0 !== d.disabled || "click" !== e.type) { for (r = [], i = 0; i < l; i++) s = n[i], a = s.selector + " ", r[a] === t && (r[a] = s.needsContext ? re(a, this).index(d) >= 0 : re.find(a, this, null, [d]).length), r[a] && r.push(s); r.length && o.push({ elem: d, handlers: r }) } return l < n.length && o.push({ elem: this, handlers: n.slice(l) }), o }, props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function(e, t) { return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e } }, mouseHooks: { props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function(e, n) { var i, r, a, s = n.button; return null == e.pageX && null != n.clientX && (i = e.target.ownerDocument || G, r = i.documentElement, a = i.body, e.pageX = n.clientX + (r && r.scrollLeft || a && a.scrollLeft || 0) - (r && r.clientLeft || a && a.clientLeft || 0), e.pageY = n.clientY + (r && r.scrollTop || a && a.scrollTop || 0) - (r && r.clientTop || a && a.clientTop || 0)), e.which || s === t || (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e } }, fix: function(e) { if (e[re.expando]) return e; var t, n, i, r = e.type, a = e, s = this.fixHooks[r]; for (s || (this.fixHooks[r] = s = Ee.test(r) ? this.mouseHooks : Te.test(r) ? this.keyHooks : {}), i = s.props ? this.props.concat(s.props) : this.props, e = new re.Event(a), t = i.length; t--;) n = i[t], e[n] = a[n]; return 3 === e.target.nodeType && (e.target = e.target.parentNode), s.filter ? s.filter(e, a) : e }, special: { load: { noBubble: !0 }, focus: { trigger: function() { if (this !== l() && this.focus) return this.focus(), !1 }, delegateType: "focusin" }, blur: { trigger: function() { if (this === l() && this.blur) return this.blur(), !1 }, delegateType: "focusout" }, click: { trigger: function() { if ("checkbox" === this.type && this.click && re.nodeName(this, "input")) return this.click(), !1 }, _default: function(e) { return re.nodeName(e.target, "a") } }, beforeunload: { postDispatch: function(e) { e.result !== t && (e.originalEvent.returnValue = e.result) } } }, simulate: function(e, t, n, i) { var r = re.extend(new re.Event, n, { type: e, isSimulated: !0, originalEvent: {} }); i ? re.event.trigger(r, null, t) : re.event.dispatch.call(t, r), r.isDefaultPrevented() && n.preventDefault() } }, re.removeEvent = function(e, t, n) { e.removeEventListener && e.removeEventListener(t, n, !1) }, re.Event = function(e, t) { if (!(this instanceof re.Event)) return new re.Event(e, t); e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.getPreventDefault && e.getPreventDefault() ? s : o) : this.type = e, t && re.extend(this, t), this.timeStamp = e && e.timeStamp || re.now(), this[re.expando] = !0 }, re.Event.prototype = { isDefaultPrevented: o, isPropagationStopped: o, isImmediatePropagationStopped: o, preventDefault: function() { var e = this.originalEvent; this.isDefaultPrevented = s, e && e.preventDefault && e.preventDefault() }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = s, e && e.stopPropagation && e.stopPropagation() }, stopImmediatePropagation: function() { this.isImmediatePropagationStopped = s, this.stopPropagation() } }, re.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function(e, t) { re.event.special[e] = { delegateType: t, bindType: t, handle: function(e) { var n, i = this, r = e.relatedTarget, a = e.handleObj; return r && (r === i || re.contains(i, r)) || (e.type = a.origType, n = a.handler.apply(this, arguments), e.type = t), n } } }), re.support.focusinBubbles || re.each({ focus: "focusin", blur: "focusout" }, function(e, t) { var n = 0, i = function(e) { re.event.simulate(t, e.target, re.event.fix(e), !0) }; re.event.special[t] = { setup: function() { 0 == n++ && G.addEventListener(e, i, !0) }, teardown: function() { 0 == --n && G.removeEventListener(e, i, !0) } } }), re.fn.extend({ on: function(e, n, i, r, a) { var s, l; if ("object" == typeof e) { "string" != typeof n && (i = i || n, n = t); for (l in e) this.on(l, n, i, e[l], a); return this } if (null == i && null == r ? (r = n, i = n = t) : null == r && ("string" == typeof n ? (r = i, i = t) : (r = i, i = n, n = t)), !1 === r) r = o; else if (!r) return this; return 1 === a && (s = r, r = function(e) { return re().off(e), s.apply(this, arguments) }, r.guid = s.guid || (s.guid = re.guid++)), this.each(function() { re.event.add(this, e, r, i, n) }) }, one: function(e, t, n, i) { return this.on(e, t, n, i, 1) }, off: function(e, n, i) { var r, a; if (e && e.preventDefault && e.handleObj) return r = e.handleObj, re(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; if ("object" == typeof e) { for (a in e) this.off(a, n, e[a]); return this } return !1 !== n && "function" != typeof n || (i = n, n = t), !1 === i && (i = o), this.each(function() { re.event.remove(this, e, i, n) }) }, trigger: function(e, t) { return this.each(function() { re.event.trigger(e, t, this) }) }, triggerHandler: function(e, t) { var n = this[0]; if (n) return re.event.trigger(e, t, n, !0) } }); var ke = /^.[^:#\[\.,]*$/, Me = re.expr.match.needsContext, $e = { children: !0, contents: !0, next: !0, prev: !0 }; re.fn.extend({ find: function(e) { var t, n, i, r = this.length; if ("string" != typeof e) return t = this, this.pushStack(re(e).filter(function() { for (i = 0; i < r; i++) if (re.contains(t[i], this)) return !0 })); for (n = [], i = 0; i < r; i++) re.find(e, this[i], n); return n = this.pushStack(r > 1 ? re.unique(n) : n), n.selector = (this.selector ? this.selector + " " : "") + e, n }, has: function(e) { var t = re(e, this), n = t.length; return this.filter(function() { for (var e = 0; e < n; e++) if (re.contains(this, t[e])) return !0 }) }, not: function(e) { return this.pushStack(u(this, e || [], !0)) }, filter: function(e) { return this.pushStack(u(this, e || [], !1)) }, is: function(e) { return !!e && ("string" == typeof e ? Me.test(e) ? re(e, this.context).index(this[0]) >= 0 : re.filter(e, this).length > 0 : this.filter(e).length > 0) }, closest: function(e, t) { for (var n, i = 0, r = this.length, a = [], s = Me.test(e) || "string" != typeof e ? re(e, t || this.context) : 0; i < r; i++) for (n = this[i]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (s ? s.index(n) > -1 : 1 === n.nodeType && re.find.matchesSelector(n, e))) { n = a.push(n); break } return this.pushStack(a.length > 1 ? re.unique(a) : a) }, index: function(e) { return e ? "string" == typeof e ? ee.call(re(e), this[0]) : ee.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function(e, t) { var n = "string" == typeof e ? re(e, t) : re.makeArray(e && e.nodeType ? [e] : e), i = re.merge(this.get(), n); return this.pushStack(re.unique(i)) }, addBack: function(e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }), re.each({ parent: function(e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function(e) { return re.dir(e, "parentNode") }, parentsUntil: function(e, t, n) { return re.dir(e, "parentNode", n) }, next: function(e) { return d(e, "nextSibling") }, prev: function(e) { return d(e, "previousSibling") }, nextAll: function(e) { return re.dir(e, "nextSibling") }, prevAll: function(e) { return re.dir(e, "previousSibling") }, nextUntil: function(e, t, n) { return re.dir(e, "nextSibling", n) }, prevUntil: function(e, t, n) { return re.dir(e, "previousSibling", n) }, siblings: function(e) { return re.sibling((e.parentNode || {}).firstChild, e) }, children: function(e) { return re.sibling(e.firstChild) }, contents: function(e) { return re.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : re.merge([], e.childNodes) } }, function(e, t) { re.fn[e] = function(n, i) { var r = re.map(this, t, n); return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (r = re.filter(i, r)), this.length > 1 && ($e[e] || re.unique(r), "p" === e[0] && r.reverse()), this.pushStack(r) } }), re.extend({ filter: function(e, t, n) { var i = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? re.find.matchesSelector(i, e) ? [i] : [] : re.find.matches(e, re.grep(t, function(e) { return 1 === e.nodeType })) }, dir: function(e, n, i) { for (var r = [], a = i !== t; (e = e[n]) && 9 !== e.nodeType;) if (1 === e.nodeType) { if (a && re(e).is(i)) break; r.push(e) } return r }, sibling: function(e, t) { for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); return n } }); var Pe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, Le = /<([\w:]+)/, De = /<|&#?\w+;/, ze = /<(?:script|style|link)/i, Ne = /^(?:checkbox|radio)$/i, Ie = /checked\s*(?:[^=]|=\s*.checked.)/i, Ae = /^$|\/(?:java|ecma)script/i, Oe = /^true\/(.*)/, He = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, je = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; je.optgroup = je.option, je.tbody = je.tfoot = je.colgroup = je.caption = je.col = je.thead, je.th = je.td, re.fn.extend({ text: function(e) { return re.access(this, function(e) { return e === t ? re.text(this) : this.empty().append((this[0] && this[0].ownerDocument || G).createTextNode(e)) }, null, e, arguments.length) }, append: function() { return this.domManip(arguments, function(e) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { c(this, e).appendChild(e) } }) }, prepend: function() { return this.domManip(arguments, function(e) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var t = c(this, e); t.insertBefore(e, t.firstChild) } }) }, before: function() { return this.domManip(arguments, function(e) { this.parentNode && this.parentNode.insertBefore(e, this) }) }, after: function() { return this.domManip(arguments, function(e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) }) }, remove: function(e, t) { for (var n, i = e ? re.filter(e, this) : this, r = 0; null != (n = i[r]); r++) t || 1 !== n.nodeType || re.cleanData(m(n)), n.parentNode && (t && re.contains(n.ownerDocument, n) && f(m(n, "script")), n.parentNode.removeChild(n)); return this }, empty: function() { for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (re.cleanData(m(e, !1)), e.textContent = ""); return this }, clone: function(e, t) { return e = null != e && e, t = null == t ? e : t, this.map(function() { return re.clone(this, e, t) }) }, html: function(e) { return re.access(this, function(e) { var n = this[0] || {}, i = 0, r = this.length; if (e === t && 1 === n.nodeType) return n.innerHTML; if ("string" == typeof e && !ze.test(e) && !je[(Le.exec(e) || ["", ""])[1].toLowerCase()]) { e = e.replace(Pe, "<$1></$2>"); try { for (; i < r; i++) n = this[i] || {}, 1 === n.nodeType && (re.cleanData(m(n, !1)), n.innerHTML = e); n = 0 } catch (e) {} } n && this.empty().append(e) }, null, e, arguments.length) }, replaceWith: function() { var e = re.map(this, function(e) { return [e.nextSibling, e.parentNode] }), t = 0; return this.domManip(arguments, function(n) { var i = e[t++], r = e[t++]; r && (re(this).remove(), r.insertBefore(n, i)) }, !0), t ? this : this.remove() }, detach: function(e) { return this.remove(e, !0) }, domManip: function(e, t, n) { e = J.apply([], e); var i, r, a, s, o, l, d = 0, u = this.length, c = this, f = u - 1, v = e[0], g = re.isFunction(v); if (g || !(u <= 1 || "string" != typeof v || re.support.checkClone) && Ie.test(v)) return this.each(function(i) { var r = c.eq(i); g && (e[0] = v.call(this, i, r.html())), r.domManip(e, t, n) }); if (u && (i = re.buildFragment(e, this[0].ownerDocument, !1, !n && this), r = i.firstChild, 1 === i.childNodes.length && (i = r), r)) { for (a = re.map(m(i, "script"), p), s = a.length; d < u; d++) o = i, d !== f && (o = re.clone(o, !0, !0), s && re.merge(a, m(o, "script"))), t.call(this[d], o, d); if (s) for (l = a[a.length - 1].ownerDocument, re.map(a, h), d = 0; d < s; d++) o = a[d], Ae.test(o.type || "") && !ve.access(o, "globalEval") && re.contains(l, o) && (o.src ? re._evalUrl(o.src) : re.globalEval(o.textContent.replace(He, ""))) } return this } }), re.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function(e, t) { re.fn[e] = function(e) { for (var n, i = [], r = re(e), a = r.length - 1, s = 0; s <= a; s++) n = s === a ? this : this.clone(!0), re(r[s])[t](n), Q.apply(i, n.get()); return this.pushStack(i) } }), re.extend({ clone: function(e, t, n) { var i, r, a, s, o = e.cloneNode(!0), l = re.contains(e.ownerDocument, e); if (!(re.support.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || re.isXMLDoc(e))) for (s = m(o), a = m(e), i = 0, r = a.length; i < r; i++) g(a[i], s[i]); if (t) if (n) for (a = a || m(e), s = s || m(o), i = 0, r = a.length; i < r; i++) v(a[i], s[i]); else v(e, o); return s = m(o, "script"), s.length > 0 && f(s, !l && m(e, "script")), o }, buildFragment: function(e, t, n, i) { for (var r, a, s, o, l, d, u = 0, c = e.length, p = t.createDocumentFragment(), h = []; u < c; u++) if ((r = e[u]) || 0 === r) if ("object" === re.type(r)) re.merge(h, r.nodeType ? [r] : r); else if (De.test(r)) { for (a = a || p.appendChild(t.createElement("div")), s = (Le.exec(r) || ["", ""])[1].toLowerCase(), o = je[s] || je._default, a.innerHTML = o[1] + r.replace(Pe, "<$1></$2>") + o[2], d = o[0]; d--;) a = a.firstChild; re.merge(h, a.childNodes), a = p.firstChild, a.textContent = "" } else h.push(t.createTextNode(r)); for (p.textContent = "", u = 0; r = h[u++];) if ((!i || -1 === re.inArray(r, i)) && (l = re.contains(r.ownerDocument, r), a = m(p.appendChild(r), "script"), l && f(a), n)) for (d = 0; r = a[d++];) Ae.test(r.type || "") && n.push(r); return p }, cleanData: function(e) { for (var t, n, i, r = e.length, a = 0, s = re.event.special; a < r; a++) { if (n = e[a], re.acceptData(n) && (t = ve.access(n))) for (i in t.events) s[i] ? re.event.remove(n, i) : re.removeEvent(n, i, t.handle); fe.discard(n), ve.discard(n) } }, _evalUrl: function(e) { return re.ajax({ url: e, type: "GET", dataType: "text", async: !1, global: !1, success: re.globalEval }) } }), re.fn.extend({ wrapAll: function(e) { var t; return re.isFunction(e) ? this.each(function(t) { re(this).wrapAll(e.call(this, t)) }) : (this[0] && (t = re(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() { for (var e = this; e.firstElementChild;) e = e.firstElementChild; return e }).append(this)), this) }, wrapInner: function(e) { return re.isFunction(e) ? this.each(function(t) { re(this).wrapInner(e.call(this, t)) }) : this.each(function() { var t = re(this), n = t.contents(); n.length ? n.wrapAll(e) : t.append(e) }) }, wrap: function(e) { var t = re.isFunction(e); return this.each(function(n) { re(this).wrapAll(t ? e.call(this, n) : e) }) }, unwrap: function() { return this.parent().each(function() { re.nodeName(this, "body") || re(this).replaceWith(this.childNodes) }).end() } }); var Be, qe, Fe = /^(none|table(?!-c[ea]).+)/, Re = /^margin/, Xe = new RegExp("^(" + ae + ")(.*)$", "i"), We = new RegExp("^(" + ae + ")(?!px)[a-z%]+$", "i"), Ge = new RegExp("^([+-])=(" + ae + ")", "i"), Ye = { BODY: "block" }, Ve = { position: "absolute", visibility: "hidden", display: "block" }, _e = { letterSpacing: 0, fontWeight: 400 }, Ue = ["Top", "Right", "Bottom", "Left"], Ke = ["Webkit", "O", "Moz", "ms"]; re.fn.extend({ css: function(e, n) { return re.access(this, function(e, n, i) { var r, a, s = {}, o = 0; if (re.isArray(n)) { for (r = x(e), a = n.length; o < a; o++) s[n[o]] = re.css(e, n[o], !1, r); return s } return i !== t ? re.style(e, n, i) : re.css(e, n) }, e, n, arguments.length > 1) }, show: function() { return w(this, !0) }, hide: function() { return w(this) }, toggle: function(e) { var t = "boolean" == typeof e; return this.each(function() { (t ? e : b(this)) ? re(this).show() : re(this).hide() }) } }), re.extend({ cssHooks: { opacity: { get: function(e, t) { if (t) { var n = Be(e, "opacity"); return "" === n ? "1" : n } } } }, cssNumber: { "columnCount": !0, "fillOpacity": !0, "fontWeight": !0, "lineHeight": !0, "opacity": !0, "orphans": !0, "widows": !0, "zIndex": !0, "zoom": !0 }, cssProps: { "float": "cssFloat" }, style: function(e, n, i, r) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var a, s, o, l = re.camelCase(n), d = e.style; if (n = re.cssProps[l] || (re.cssProps[l] = y(d, l)), o = re.cssHooks[n] || re.cssHooks[l], i === t) return o && "get" in o && (a = o.get(e, !1, r)) !== t ? a : d[n]; s = typeof i, "string" === s && (a = Ge.exec(i)) && (i = (a[1] + 1) * a[2] + parseFloat(re.css(e, n)), s = "number"), null == i || "number" === s && isNaN(i) || ("number" !== s || re.cssNumber[l] || (i += "px"), re.support.clearCloneStyle || "" !== i || 0 !== n.indexOf("background") || (d[n] = "inherit"), o && "set" in o && (i = o.set(e, i, r)) === t || (d[n] = i)) } }, css: function(e, n, i, r) { var a, s, o, l = re.camelCase(n); return n = re.cssProps[l] || (re.cssProps[l] = y(e.style, l)), o = re.cssHooks[n] || re.cssHooks[l], o && "get" in o && (a = o.get(e, !0, i)), a === t && (a = Be(e, n, r)), "normal" === a && n in _e && (a = _e[n]), "" === i || i ? (s = parseFloat(a), !0 === i || re.isNumeric(s) ? s || 0 : a) : a } }), Be = function(e, n, i) { var r, a, s, o = i || x(e), l = o ? o.getPropertyValue(n) || o[n] : t, d = e.style; return o && ("" !== l || re.contains(e.ownerDocument, e) || (l = re.style(e, n)), We.test(l) && Re.test(n) && (r = d.width, a = d.minWidth, s = d.maxWidth, d.minWidth = d.maxWidth = d.width = l, l = o.width, d.width = r, d.minWidth = a, d.maxWidth = s)), l }, re.each(["height", "width"], function(e, t) { re.cssHooks[t] = { get: function(e, n, i) { if (n) return 0 === e.offsetWidth && Fe.test(re.css(e, "display")) ? re.swap(e, Ve, function() { return C(e, t, i) }) : C(e, t, i) }, set: function(e, n, i) { var r = i && x(e); return T(e, n, i ? E(e, t, i, re.support.boxSizing && "border-box" === re.css(e, "boxSizing", !1, r), r) : 0) } } }), re(function() { re.support.reliableMarginRight || (re.cssHooks.marginRight = { get: function(e, t) { if (t) return re.swap(e, { "display": "inline-block" }, Be, [e, "marginRight"]) } }), !re.support.pixelPosition && re.fn.position && re.each(["top", "left"], function(e, t) { re.cssHooks[t] = { get: function(e, n) { if (n) return n = Be(e, t), We.test(n) ? re(e).position()[t] + "px" : n } } }) }), re.expr && re.expr.filters && (re.expr.filters.hidden = function(e) { return e.offsetWidth <= 0 && e.offsetHeight <= 0 }, re.expr.filters.visible = function(e) { return !re.expr.filters.hidden(e) }), re.each({ margin: "", padding: "", border: "Width" }, function(e, t) { re.cssHooks[e + t] = { expand: function(n) { for (var i = 0, r = {}, a = "string" == typeof n ? n.split(" ") : [n]; i < 4; i++) r[e + Ue[i] + t] = a[i] || a[i - 2] || a[0]; return r } }, Re.test(e) || (re.cssHooks[e + t].set = T) }); var Je = /%20/g, Qe = /\[\]$/, Ze = /\r?\n/g, et = /^(?:submit|button|image|reset|file)$/i, tt = /^(?:input|select|textarea|keygen)/i; re.fn.extend({ serialize: function() { return re.param(this.serializeArray()) }, serializeArray: function() { return this.map(function() { var e = re.prop(this, "elements"); return e ? re.makeArray(e) : this }).filter(function() { var e = this.type; return this.name && !re(this).is(":disabled") && tt.test(this.nodeName) && !et.test(e) && (this.checked || !Ne.test(e)) }).map(function(e, t) { var n = re(this).val(); return null == n ? null : re.isArray(n) ? re.map(n, function(e) { return { name: t.name, value: e.replace(Ze, "\r\n") } }) : { name: t.name, value: n.replace(Ze, "\r\n") } }).get() } }), re.param = function(e, n) { var i, r = [], a = function(e, t) { t = re.isFunction(t) ? t() : null == t ? "" : t, r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t) }; if (n === t && (n = re.ajaxSettings && re.ajaxSettings.traditional), re.isArray(e) || e.jquery && !re.isPlainObject(e)) re.each(e, function() { a(this.name, this.value) }); else for (i in e) M(i, e[i], n, a); return r.join("&").replace(Je, "+") }, re.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) { re.fn[t] = function(e, n) { return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t) } }), re.fn.extend({ hover: function(e, t) { return this.mouseenter(e).mouseleave(t || e) }, bind: function(e, t, n) { return this.on(e, null, t, n) }, unbind: function(e, t) { return this.off(e, null, t) }, delegate: function(e, t, n, i) { return this.on(t, e, n, i) }, undelegate: function(e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) } }); var nt, it, rt = re.now(), at = /\?/, st = /#.*$/, ot = /([?&])_=[^&]*/, lt = /^(.*?):[ \t]*([^\r\n]*)$/gm, dt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, ut = /^(?:GET|HEAD)$/, ct = /^\/\//, pt = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, ht = re.fn.load, ft = {}, vt = {}, mt = "*/".concat("*"); try { it = W.href } catch (e) { it = G.createElement("a"), it.href = "", it = it.href } nt = pt.exec(it.toLowerCase()) || [], re.fn.load = function(e, n, i) { if ("string" != typeof e && ht) return ht.apply(this, arguments); var r, a, s, o = this, l = e.indexOf(" "); return l >= 0 && (r = e.slice(l), e = e.slice(0, l)), re.isFunction(n) ? (i = n, n = t) : n && "object" == typeof n && (a = "POST"), o.length > 0 && re.ajax({ url: e, type: a, dataType: "html", data: n }).done(function(e) { s = arguments, o.html(r ? re("<div>").append(re.parseHTML(e)).find(r) : e) }).complete(i && function(e, t) { o.each(i, s || [e.responseText, t, e]) }), this }, re.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) { re.fn[t] = function(e) { return this.on(t, e) } }), re.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: it, type: "GET", isLocal: dt.test(nt[1]), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": mt, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": re.parseJSON, "text xml": re.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function(e, t) { return t ? L(L(e, re.ajaxSettings), t) : L(re.ajaxSettings, e) }, ajaxPrefilter: $(ft), ajaxTransport: $(vt), ajax: function(e, n) { function i(e, n, i, o) { var d, c, y, b, w, E = n; 2 !== x && (x = 2, l && clearTimeout(l), r = t, s = o || "", T.readyState = e > 0 ? 4 : 0, d = e >= 200 && e < 300 || 304 === e, i && (b = D(p, T, i)), b = z(p, b, T, d), d ? (p.ifModified && (w = T.getResponseHeader("Last-Modified"), w && (re.lastModified[a] = w), (w = T.getResponseHeader("etag")) && (re.etag[a] = w)), 204 === e ? E = "nocontent" : 304 === e ? E = "notmodified" : (E = b.state, c = b.data, y = b.error, d = !y)) : (y = E, !e && E || (E = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (n || E) + "", d ? v.resolveWith(h, [c, E, T]) : v.rejectWith(h, [T, E, y]), T.statusCode(g), g = t, u && f.trigger(d ? "ajaxSuccess" : "ajaxError", [T, p, d ? c : y]), m.fireWith(h, [T, E]), u && (f.trigger("ajaxComplete", [T, p]), --re.active || re.event.trigger("ajaxStop"))) } "object" == typeof e && (n = e, e = t), n = n || {}; var r, a, s, o, l, d, u, c, p = re.ajaxSetup({}, n), h = p.context || p, f = p.context && (h.nodeType || h.jquery) ? re(h) : re.event, v = re.Deferred(), m = re.Callbacks("once memory"), g = p.statusCode || {}, y = {}, b = {}, x = 0, w = "canceled", T = { readyState: 0, getResponseHeader: function(e) { var t; if (2 === x) { if (!o) for (o = {}; t = lt.exec(s);) o[t[1].toLowerCase()] = t[2]; t = o[e.toLowerCase()] } return null == t ? null : t }, getAllResponseHeaders: function() { return 2 === x ? s : null }, setRequestHeader: function(e, t) { var n = e.toLowerCase(); return x || (e = b[n] = b[n] || e, y[e] = t), this }, overrideMimeType: function(e) { return x || (p.mimeType = e), this }, statusCode: function(e) { var t; if (e) if (x < 2) for (t in e) g[t] = [g[t], e[t]]; else T.always(e[T.status]); return this }, abort: function(e) { var t = e || w; return r && r.abort(t), i(0, t), this } }; if (v.promise(T).complete = m.add, T.success = T.done, T.error = T.fail, p.url = ((e || p.url || it) + "").replace(st, "").replace(ct, nt[1] + "//"), p.type = n.method || n.type || p.method || p.type, p.dataTypes = re.trim(p.dataType || "*").toLowerCase().match(se) || [""], null == p.crossDomain && (d = pt.exec(p.url.toLowerCase()), p.crossDomain = !(!d || d[1] === nt[1] && d[2] === nt[2] && (d[3] || ("http:" === d[1] ? "80" : "443")) === (nt[3] || ("http:" === nt[1] ? "80" : "443")))), p.data && p.processData && "string" != typeof p.data && (p.data = re.param(p.data, p.traditional)), P(ft, p, n, T), 2 === x) return T; u = p.global, u && 0 == re.active++ && re.event.trigger("ajaxStart"), p.type = p.type.toUpperCase(), p.hasContent = !ut.test(p.type), a = p.url, p.hasContent || (p.data && (a = p.url += (at.test(a) ? "&" : "?") + p.data, delete p.data), !1 === p.cache && (p.url = ot.test(a) ? a.replace(ot, "$1_=" + rt++) : a + (at.test(a) ? "&" : "?") + "_=" + rt++)), p.ifModified && (re.lastModified[a] && T.setRequestHeader("If-Modified-Since", re.lastModified[a]), re.etag[a] && T.setRequestHeader("If-None-Match", re.etag[a])), (p.data && p.hasContent && !1 !== p.contentType || n.contentType) && T.setRequestHeader("Content-Type", p.contentType), T.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + mt + "; q=0.01" : "") : p.accepts["*"]); for (c in p.headers) T.setRequestHeader(c, p.headers[c]); if (p.beforeSend && (!1 === p.beforeSend.call(h, T, p) || 2 === x)) return T.abort(); w = "abort"; for (c in { success: 1, error: 1, complete: 1 }) T[c](p[c]); if (r = P(vt, p, n, T)) { T.readyState = 1, u && f.trigger("ajaxSend", [T, p]), p.async && p.timeout > 0 && (l = setTimeout(function() { T.abort("timeout") }, p.timeout)); try { x = 1, r.send(y, i) } catch (e) { if (!(x < 2)) throw e; i(-1, e) } } else i(-1, "No Transport"); return T }, getJSON: function(e, t, n) { return re.get(e, t, n, "json") }, getScript: function(e, n) { return re.get(e, t, n, "script") } }), re.each(["get", "post"], function(e, n) { re[n] = function(e, i, r, a) { return re.isFunction(i) && (a = a || r, r = i, i = t), re.ajax({ url: e, type: n, dataType: a, data: i, success: r }) } }), re.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /(?:java|ecma)script/ }, converters: { "text script": function(e) { return re.globalEval(e), e } } }), re.ajaxPrefilter("script", function(e) { e.cache === t && (e.cache = !1), e.crossDomain && (e.type = "GET") }), re.ajaxTransport("script", function(e) { if (e.crossDomain) { var t, n; return { send: function(i, r) { t = re("<script>").prop({ async: !0, charset: e.scriptCharset, src: e.url }).on("load error", n = function(e) { t.remove(), n = null, e && r("error" === e.type ? 404 : 200, e.type) }), G.head.appendChild(t[0]) }, abort: function() { n && n() } } } }); var gt = [], yt = /(=)\?(?=&|$)|\?\?/; re.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { var e = gt.pop() || re.expando + "_" + rt++; return this[e] = !0, e } }), re.ajaxPrefilter("json jsonp", function(n, i, r) { var a, s, o, l = !1 !== n.jsonp && (yt.test(n.url) ? "url" : "string" == typeof n.data && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && yt.test(n.data) && "data"); if (l || "jsonp" === n.dataTypes[0]) return a = n.jsonpCallback = re.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, l ? n[l] = n[l].replace(yt, "$1" + a) : !1 !== n.jsonp && (n.url += (at.test(n.url) ? "&" : "?") + n.jsonp + "=" + a), n.converters["script json"] = function() { return o || re.error(a + " was not called"), o[0] }, n.dataTypes[0] = "json", s = e[a], e[a] = function() { o = arguments }, r.always(function() { e[a] = s, n[a] && (n.jsonpCallback = i.jsonpCallback, gt.push(a)), o && re.isFunction(s) && s(o[0]), o = s = t }), "script" }), re.ajaxSettings.xhr = function() { try { return new XMLHttpRequest } catch (e) {} }; var bt = re.ajaxSettings.xhr(), xt = { 0: 200, 1223: 204 }, wt = 0, Tt = {}; e.ActiveXObject && re(e).on("unload", function() { for (var e in Tt) Tt[e](); Tt = t }), re.support.cors = !! bt && "withCredentials" in bt, re.support.ajax = bt = !! bt, re.ajaxTransport(function(e) { var n; if (re.support.cors || bt && !e.crossDomain) return { send: function(i, r) { var a, s, o = e.xhr(); if (o.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields) for (a in e.xhrFields) o[a] = e.xhrFields[a]; e.mimeType && o.overrideMimeType && o.overrideMimeType(e.mimeType), e.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); for (a in i) o.setRequestHeader(a, i[a]); n = function(e) { return function() { n && (delete Tt[s], n = o.onload = o.onerror = null, "abort" === e ? o.abort() : "error" === e ? r(o.status || 404, o.statusText) : r(xt[o.status] || o.status, o.statusText, "string" == typeof o.responseText ? { text: o.responseText } : t, o.getAllResponseHeaders())) } }, o.onload = n(), o.onerror = n("error"), n = Tt[s = wt++] = n("abort"), o.send(e.hasContent && e.data || null) }, abort: function() { n && n() } } }); var Et, Ct, St = /^(?:toggle|show|hide)$/, kt = new RegExp("^(?:([+-])=|)(" + ae + ")([a-z%]*)$", "i"), Mt = /queueHooks$/, $t = [H], Pt = { "*": [function(e, t) { var n, i, r = this.createTween(e, t), a = kt.exec(t), s = r.cur(), o = +s || 0, l = 1, d = 20; if (a) { if (n = +a[2], "px" !== (i = a[3] || (re.cssNumber[e] ? "" : "px")) && o) { o = re.css(r.elem, e, !0) || n || 1; do { l = l || ".5", o /= l, re.style(r.elem, e, o + i) } while (l !== (l = r.cur() / s) && 1 !== l && --d) } r.unit = i, r.start = o, r.end = a[1] ? o + (a[1] + 1) * n : n } return r }] }; re.Animation = re.extend(A, { tweener: function(e, t) { re.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" "); for (var n, i = 0, r = e.length; i < r; i++) n = e[i], Pt[n] = Pt[n] || [], Pt[n].unshift(t) }, prefilter: function(e, t) { t ? $t.unshift(e) : $t.push(e) } }), re.Tween = j, j.prototype = { constructor: j, init: function(e, t, n, i, r, a) { this.elem = e, this.prop = n, this.easing = r || "swing", this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = a || (re.cssNumber[n] ? "" : "px") }, cur: function() { var e = j.propHooks[this.prop]; return e && e.get ? e.get(this) : j.propHooks._default.get(this) }, run: function(e) { var t, n = j.propHooks[this.prop]; return this.options.duration ? this.pos = t = re.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : j.propHooks._default.set(this), this } }, j.prototype.init.prototype = j.prototype, j.propHooks = { _default: { get: function(e) { var t; return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = re.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0) : e.elem[e.prop] }, set: function(e) { re.fx.step[e.prop] ? re.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[re.cssProps[e.prop]] || re.cssHooks[e.prop]) ? re.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now } } }, j.propHooks.scrollTop = j.propHooks.scrollLeft = { set: function(e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, re.each(["toggle", "show", "hide"], function(e, t) { var n = re.fn[t]; re.fn[t] = function(e, i, r) { return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(B(t, !0), e, i, r) } }), re.fn.extend({ fadeTo: function(e, t, n, i) { return this.filter(b).css("opacity", 0).show().end().animate({ opacity: t }, e, n, i) }, animate: function(e, t, n, i) { var r = re.isEmptyObject(e), a = re.speed(t, n, i), s = function() { var t = A(this, re.extend({}, e), a); s.finish = function() { t.stop(!0) }, (r || ve.get(this, "finish")) && t.stop(!0) }; return s.finish = s, r || !1 === a.queue ? this.each(s) : this.queue(a.queue, s) }, stop: function(e, n, i) { var r = function(e) { var t = e.stop; delete e.stop, t(i) }; return "string" != typeof e && (i = n, n = e, e = t), n && !1 !== e && this.queue(e || "fx", []), this.each(function() { var t = !0, n = null != e && e + "queueHooks", a = re.timers, s = ve.get(this); if (n) s[n] && s[n].stop && r(s[n]); else for (n in s) s[n] && s[n].stop && Mt.test(n) && r(s[n]); for (n = a.length; n--;) a[n].elem !== this || null != e && a[n].queue !== e || (a[n].anim.stop(i), t = !1, a.splice(n, 1)); !t && i || re.dequeue(this, e) }) }, finish: function(e) { return !1 !== e && (e = e || "fx"), this.each(function() { var t, n = ve.get(this), i = n[e + "queue"], r = n[e + "queueHooks"], a = re.timers, s = i ? i.length : 0; for (n.finish = !0, re.queue(this, e, []), r && r.cur && r.cur.finish && r.cur.finish.call(this), t = a.length; t--;) a[t].elem === this && a[t].queue === e && (a[t].anim.stop(!0), a.splice(t, 1)); for (t = 0; t < s; t++) i[t] && i[t].finish && i[t].finish.call(this); delete n.finish }) } }), re.each({ slideDown: B("show"), slideUp: B("hide"), slideToggle: B("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function(e, t) { re.fn[e] = function(e, n, i) { return this.animate(t, e, n, i) } }), re.speed = function(e, t, n) { var i = e && "object" == typeof e ? re.extend({}, e) : { complete: n || !n && t || re.isFunction(e) && e, duration: e, easing: n && t || t && !re.isFunction(t) && t }; return i.duration = re.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in re.fx.speeds ? re.fx.speeds[i.duration] : re.fx.speeds._default, null != i.queue && !0 !== i.queue || (i.queue = "fx"), i.old = i.complete, i.complete = function() { re.isFunction(i.old) && i.old.call(this), i.queue && re.dequeue(this, i.queue) }, i }, re.easing = { linear: function(e) { return e }, swing: function(e) { return .5 - Math.cos(e * Math.PI) / 2 } }, re.timers = [], re.fx = j.prototype.init, re.fx.tick = function() { var e, n = re.timers, i = 0; for (Et = re.now(); i < n.length; i++)(e = n[i])() || n[i] !== e || n.splice(i--, 1); n.length || re.fx.stop(), Et = t }, re.fx.timer = function(e) { e() && re.timers.push(e) && re.fx.start() }, re.fx.interval = 13, re.fx.start = function() { Ct || (Ct = setInterval(re.fx.tick, re.fx.interval)) }, re.fx.stop = function() { clearInterval(Ct), Ct = null }, re.fx.speeds = { slow: 600, fast: 200, _default: 400 }, re.fx.step = {}, re.expr && re.expr.filters && (re.expr.filters.animated = function(e) { return re.grep(re.timers, function(t) { return e === t.elem }).length }), re.fn.offset = function(e) { if (arguments.length) return e === t ? this : this.each(function(t) { re.offset.setOffset(this, e, t) }); var n, i, r = this[0], a = { top: 0, left: 0 }, s = r && r.ownerDocument; if (s) return n = s.documentElement, re.contains(n, r) ? (typeof r.getBoundingClientRect !== X && (a = r.getBoundingClientRect()), i = q(s), { top: a.top + i.pageYOffset - n.clientTop, left: a.left + i.pageXOffset - n.clientLeft }) : a }, re.offset = { setOffset: function(e, t, n) { var i, r, a, s, o, l, d, u = re.css(e, "position"), c = re(e), p = {}; "static" === u && (e.style.position = "relative"), o = c.offset(), a = re.css(e, "top"), l = re.css(e, "left"), d = ("absolute" === u || "fixed" === u) && (a + l).indexOf("auto") > -1, d ? (i = c.position(), s = i.top, r = i.left) : (s = parseFloat(a) || 0, r = parseFloat(l) || 0), re.isFunction(t) && (t = t.call(e, n, o)), null != t.top && (p.top = t.top - o.top + s), null != t.left && (p.left = t.left - o.left + r), "using" in t ? t.using.call(e, p) : c.css(p) } }, re.fn.extend({ position: function() { if (this[0]) { var e, t, n = this[0], i = { top: 0, left: 0 }; return "fixed" === re.css(n, "position") ? t = n.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), re.nodeName(e[0], "html") || (i = e.offset()), i.top += re.css(e[0], "borderTopWidth", !0), i.left += re.css(e[0], "borderLeftWidth", !0)), { top: t.top - i.top - re.css(n, "marginTop", !0), left: t.left - i.left - re.css(n, "marginLeft", !0) } } }, offsetParent: function() { return this.map(function() { for (var e = this.offsetParent || Y; e && !re.nodeName(e, "html") && "static" === re.css(e, "position");) e = e.offsetParent; return e || Y }) } }), re.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(n, i) { var r = "pageYOffset" === i; re.fn[n] = function(a) { return re.access(this, function(n, a, s) { var o = q(n); if (s === t) return o ? o[i] : n[a]; o ? o.scrollTo(r ? e.pageXOffset : s, r ? s : e.pageYOffset) : n[a] = s }, n, a, arguments.length, null) } }), re.each({ Height: "height", Width: "width" }, function(e, n) { re.each({ padding: "inner" + e, content: n, "": "outer" + e }, function(i, r) { re.fn[r] = function(r, a) { var s = arguments.length && (i || "boolean" != typeof r), o = i || (!0 === r || !0 === a ? "margin" : "border"); return re.access(this, function(n, i, r) { var a; return re.isWindow(n) ? n.document.documentElement["client" + e] : 9 === n.nodeType ? (a = n.documentElement, Math.max(n.body["scroll" + e], a["scroll" + e], n.body["offset" + e], a["offset" + e], a["client" + e])) : r === t ? re.css(n, i, o) : re.style(n, i, r, o) }, n, s ? r : t, s, null) } }) }), re.fn.size = function() { return this.length }, re.fn.andSelf = re.fn.addBack, "object" == typeof module && "object" == typeof module.exports ? module.exports = re : "function" == typeof define && define.amd && define("jquery", [], function() { return re }), "object" == typeof e && "object" == typeof e.document && (e.jQuery = e.$ = re) }(window), function(e) { 'function' == typeof define && define.amd ? define(['jquery'], e) : e('object' == typeof exports ? require('jquery') : jQuery) }(function(e) { function t(e) { return o.raw ? e : encodeURIComponent(e) } function n(e) { return o.raw ? e : decodeURIComponent(e) } function i(e) { return t(o.json ? JSON.stringify(e) : String(e)) } function r(e) { 0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\')); try { return e = decodeURIComponent(e.replace(s, ' ')), o.json ? JSON.parse(e) : e } catch (e) {} } function a(t, n) { var i = o.raw ? t : r(t); return e.isFunction(n) ? n(i) : i } var s = /\+/g, o = e.cookie = function(r, s, l) { if (void 0 !== s && !e.isFunction(s)) { if (l = e.extend({}, o.defaults, l), 'number' == typeof l.expires) { var d = l.expires, u = l.expires = new Date; u.setTime(+u + 864e5 * d) } return document.cookie = [t(r), '=', i(s), l.expires ? '; expires=' + l.expires.toUTCString() : '', l.path ? '; path=' + l.path : '', l.domain ? '; domain=' + l.domain : '', l.secure ? '; secure' : ''].join('') } for (var c = r ? void 0 : {}, p = document.cookie ? document.cookie.split('; ') : [], h = 0, f = p.length; h < f; h++) { var v = p[h].split('='), m = n(v.shift()), g = v.join('='); if (r && r === m) { c = a(g, s); break } r || void 0 === (g = a(g)) || (c[m] = g) } return c }; o.defaults = {}, e.removeCookie = function(t, n) { return void 0 !== e.cookie(t) && (e.cookie(t, '', e.extend({}, n, { expires: -1 })), !e.cookie(t)) } }), function(e) { e.fn.validate = function(t) { function n() { for (var t = e(this).attr('validate').split('|'), n = t.length, i = 0; i < n; i++) if (s.hasOwnProperty(t[i]) && 0 == s[t[i]](e(this))) return !1 } function i() { var i = !0; return 'object' == typeof t.ids ? e.each(t.ids, function(e, t) { if (0 == n.call(t) && (i = !1, r)) return !1 }) : e(this).find('[validate]').each(function(e, t) { if (0 == n.call(t) && (i = !1, r)) return !1 }), i && a.flag && a.id.val(a.txt), i } var r = !! t.isone, a = { flag: !1, id: e(this).find("input[type='submit']"), txt: '提交中...' }, s = { required: function(e) { if ('' == e.val() || e.val() == e.attr('placeholder')) return _error(e, 'required'), !1 }, email: function(e) { var t = /^\w+@([0-9a-zA-Z]+[.])+[a-z]{2,4}$/, n = e.val(); if (n && !t.test(n)) return _error(e, 'email'), !1 }, phone: function(e) { var t = /^1[3|4|5|6|7|8|9]\d{9}$/, n = e.val(); if (n && !t.test(n)) return _error(e, 'phone'), !1 }, number: function(e) { if (e.val() && isNaN(e.val())) return _error(e, 'number'), !1 }, url: function(e) { var t = /^http:\/\/.+\./, n = e.val(); if (n && !t.test(n)) return _error(e, 'url'), !1 }, idcard: function(e) { var t = /(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/, n = e.val(); if (n && !t.test(n)) return _error(e, 'idcard'), !1 } }, o = { required: "不能为空", email: "格式不正确", phone: '格式不正确', url: "格式不正确", number: "请输入数字", idcard: '格式不正确' }; return t && (t.messages && (o = e.extend(o, t.messages)), t.validate && (s = e.extend(s, t.validate)), t.submitBtn && (a = e.extend(a, t.submitBtn))), window._error = function(e, n) { if (t && t.error) return void t.error(e, o[n]); alert(o[n]) }, i.call(this) } }(jQuery), function(e) { 'use strict'; var t = document, n = 'getElementsByClassName', i = function(e) { return t.querySelectorAll(e) }, r = { type: 0, shade: !0, shadeClose: !0, fixed: !0, anim: 'scale' }, a = { extend: function(e) { var t = JSON.parse(JSON.stringify(r)); for (var n in e) t[n] = e[n]; return t }, timer: {}, end: {} }; a.touch = function(e, t) { e.addEventListener('click', function(e) { t.call(this, e) }, !1) }; var s = 0, o = ['layui-m-layer'], l = function(e) { var t = this; t.config = a.extend(e), t.view() }; l.prototype.view = function() { var e = this, r = e.config, a = t.createElement('div'); e.id = a.id = o[0] + s, a.setAttribute('class', o[0] + ' ' + o[0] + (r.type || 0)), a.setAttribute('index', s); var l = function() { var e = 'object' == typeof r.title; return r.title ? '<h3 style="' + (e ? r.title[1] : '') + '">' + (e ? r.title[0] : r.title) + '</h3>' : '' }(), d = function() { 'string' == typeof r.btn && (r.btn = [r.btn]); var e, t = (r.btn || []).length; return 0 !== t && r.btn ? (e = '<span yes type="1">' + r.btn[0] + '</span>', 2 === t && (e = '<span no type="0">' + r.btn[1] + '</span>' + e), '<div class="layui-m-layerbtn">' + e + '</div>') : '' }(); if (r.fixed || (r.top = r.hasOwnProperty('top') ? r.top : 100, r.style = r.style || '', r.style += ' top:' + (t.body.scrollTop + r.top) + 'px'), 2 === r.type && (r.content = '<i></i><i class="layui-m-layerload"></i><i></i><p>' + (r.content || '') + '</p>'), r.skin && (r.anim = 'up'), 'msg' === r.skin && (r.shade = !1), a.innerHTML = (r.shade ? '<div ' + ('string' == typeof r.shade ? 'style="' + r.shade + '"' : '') + ' class="layui-m-layershade"></div>' : '') + '<div class="layui-m-layermain" ' + (r.fixed ? '' : 'style="position:static;"') + '><div class="layui-m-layersection"><div class="layui-m-layerchild ' + (r.skin ? 'layui-m-layer-' + r.skin + ' ' : '') + (r.className ? r.className : '') + ' ' + (r.anim ? 'layui-m-anim-' + r.anim : '') + '" ' + (r.style ? 'style="' + r.style + '"' : '') + '>' + l + '<div class="layui-m-layercont">' + r.content + '</div>' + d + '</div></div></div>', !r.type || 2 === r.type) { var u = t[n](o[0] + r.type); u.length >= 1 && layer.close(u[0].getAttribute('index')) } document.body.appendChild(a); var c = e.elem = i('#' + e.id)[0]; r.success && r.success(c), e.index = s++, e.action(r, c) }, l.prototype.action = function(e, t) { var i = this; e.time && (a.timer[i.index] = setTimeout(function() { layer.close(i.index) }, 1e3 * e.time)); var r = function() { 0 == this.getAttribute('type') ? (e.no && e.no(), layer.close(i.index)) : e.yes ? e.yes(i.index) : layer.close(i.index) }; if (e.btn) for (var s = t[n]('layui-m-layerbtn')[0].children, o = s.length, l = 0; o > l; l++) a.touch(s[l], r); if (e.shade && e.shadeClose) { var d = t[n]('layui-m-layershade')[0]; a.touch(d, function() { layer.close(i.index, e.end) }) } e.end && (a.end[i.index] = e.end) }, e.layer = { v: '2.0', index: s, open: function(e) { return new l(e || {}).index }, close: function(e) { var n = i('#' + o[0] + e)[0]; n && (n.innerHTML = '', t.body.removeChild(n), clearTimeout(a.timer[e]), delete a.timer[e], 'function' == typeof a.end[e] && a.end[e](), delete a.end[e]) }, closeAll: function() { for (var e = t[n](o[0]), i = 0, r = e.length; r > i; i++) layer.close(0 | e[0].getAttribute('index')) } }, 'function' == typeof define ? define(function() { return layer }) : function() { var e = document.scripts, t = e[e.length - 1], n = t.src; n.substring(0, n.lastIndexOf('/') + 1) }() }(window), function(e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.Swiper = t() }(this, function() { "use strict"; function e(e, t) { var n = [], s = 0; if (e && !t && e instanceof a) return e; if (e) if ("string" == typeof e) { var o, l, d = e.trim(); if (0 <= d.indexOf("<") && 0 <= d.indexOf(">")) { var u = "div"; for (0 === d.indexOf("<li") && (u = "ul"), 0 === d.indexOf("<tr") && (u = "tbody"), 0 !== d.indexOf("<td") && 0 !== d.indexOf("<th") || (u = "tr"), 0 === d.indexOf("<tbody") && (u = "table"), 0 === d.indexOf("<option") && (u = "select"), (l = i.createElement(u)).innerHTML = d, s = 0; s < l.childNodes.length; s += 1) n.push(l.childNodes[s]) } else for (o = t || "#" !== e[0] || e.match(/[ .<>:~]/) ? (t || i).querySelectorAll(e.trim()) : [i.getElementById(e.trim().split("#")[1])], s = 0; s < o.length; s += 1) o[s] && n.push(o[s]) } else if (e.nodeType || e === r || e === i) n.push(e); else if (0 < e.length && e[0].nodeType) for (s = 0; s < e.length; s += 1) n.push(e[s]); return new a(n) } function t(e) { for (var t = [], n = 0; n < e.length; n += 1) - 1 === t.indexOf(e[n]) && t.push(e[n]); return t } function n() { var e = this, t = e.params, n = e.el; if (!n || 0 !== n.offsetWidth) { t.breakpoints && e.setBreakpoint(); var i = e.allowSlideNext, r = e.allowSlidePrev, a = e.snapGrid; if (e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), t.freeMode) { var s = Math.min(Math.max(e.translate, e.maxTranslate()), e.minTranslate()); e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses(), t.autoHeight && e.updateAutoHeight() } else e.updateSlidesClasses(), ("auto" === t.slidesPerView || 1 < t.slidesPerView) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0); e.allowSlidePrev = r, e.allowSlideNext = i, e.params.watchOverflow && a !== e.snapGrid && e.checkOverflow() } } var i = "undefined" == typeof document ? { body: {}, addEventListener: function() {}, removeEventListener: function() {}, activeElement: { blur: function() {}, nodeName: "" }, querySelector: function() { return null }, querySelectorAll: function() { return [] }, getElementById: function() { return null }, createEvent: function() { return { initEvent: function() {} } }, createElement: function() { return { children: [], childNodes: [], style: {}, setAttribute: function() {}, getElementsByTagName: function() { return [] } } }, location: { hash: "" } } : document, r = "undefined" == typeof window ? { document: i, navigator: { userAgent: "" }, location: {}, history: {}, CustomEvent: function() { return this }, addEventListener: function() {}, removeEventListener: function() {}, getComputedStyle: function() { return { getPropertyValue: function() { return "" } } }, Image: function() {}, Date: function() {}, screen: {}, setTimeout: function() {}, clearTimeout: function() {} } : window, a = function(e) { for (var t = 0; t < e.length; t += 1) this[t] = e[t]; return this.length = e.length, this }; e.fn = a.prototype, e.Class = a, e.Dom7 = a; var s = { addClass: function(e) { if (void 0 === e) return this; for (var t = e.split(" "), n = 0; n < t.length; n += 1) for (var i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i].classList && this[i].classList.add(t[n]); return this }, removeClass: function(e) { for (var t = e.split(" "), n = 0; n < t.length; n += 1) for (var i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i].classList && this[i].classList.remove(t[n]); return this }, hasClass: function(e) { return !!this[0] && this[0].classList.contains(e) }, toggleClass: function(e) { for (var t = e.split(" "), n = 0; n < t.length; n += 1) for (var i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i].classList && this[i].classList.toggle(t[n]); return this }, attr: function(e, t) { var n = arguments; if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0; for (var i = 0; i < this.length; i += 1) if (2 === n.length) this[i].setAttribute(e, t); else for (var r in e) this[i][r] = e[r], this[i].setAttribute(r, e[r]); return this }, removeAttr: function(e) { for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e); return this }, data: function(e, t) { var n; if (void 0 !== t) { for (var i = 0; i < this.length; i += 1)(n = this[i]).dom7ElementDataStorage || (n.dom7ElementDataStorage = {}), n.dom7ElementDataStorage[e] = t; return this } if (n = this[0]) { if (n.dom7ElementDataStorage && e in n.dom7ElementDataStorage) return n.dom7ElementDataStorage[e]; return n.getAttribute("data-" + e) || void 0 } }, transform: function(e) { for (var t = 0; t < this.length; t += 1) { var n = this[t].style; n.webkitTransform = e, n.transform = e } return this }, transition: function(e) { "string" != typeof e && (e += "ms"); for (var t = 0; t < this.length; t += 1) { var n = this[t].style; n.webkitTransitionDuration = e, n.transitionDuration = e } return this }, on: function() { function t(t) { var n = t.target; if (n) { var i = t.target.dom7EventData || []; if (i.indexOf(t) < 0 && i.unshift(t), e(n).is(o)) l.apply(n, i); else for (var r = e(n).parents(), a = 0; a < r.length; a += 1) e(r[a]).is(o) && l.apply(r[a], i) } } function n(e) { var t = e && e.target && e.target.dom7EventData || []; t.indexOf(e) < 0 && t.unshift(e), l.apply(this, t) } for (var i, r = [], a = arguments.length; a--;) r[a] = arguments[a]; var s = r[0], o = r[1], l = r[2], d = r[3]; "function" == typeof r[1] && (s = (i = r)[0], l = i[1], d = i[2], o = void 0), d || (d = !1); for (var u, c = s.split(" "), p = 0; p < this.length; p += 1) { var h = this[p]; if (o) for (u = 0; u < c.length; u += 1) { var f = c[u]; h.dom7LiveListeners || (h.dom7LiveListeners = {}), h.dom7LiveListeners[f] || (h.dom7LiveListeners[f] = []), h.dom7LiveListeners[f].push({ listener: l, proxyListener: t }), h.addEventListener(f, t, d) } else for (u = 0; u < c.length; u += 1) { var v = c[u]; h.dom7Listeners || (h.dom7Listeners = {}), h.dom7Listeners[v] || (h.dom7Listeners[v] = []), h.dom7Listeners[v].push({ listener: l, proxyListener: n }), h.addEventListener(v, n, d) } } return this }, off: function() { for (var e, t = [], n = arguments.length; n--;) t[n] = arguments[n]; var i = t[0], r = t[1], a = t[2], s = t[3]; "function" == typeof t[1] && (i = (e = t)[0], a = e[1], s = e[2], r = void 0), s || (s = !1); for (var o = i.split(" "), l = 0; l < o.length; l += 1) for (var d = o[l], u = 0; u < this.length; u += 1) { var c = this[u], p = void 0; if (!r && c.dom7Listeners ? p = c.dom7Listeners[d] : r && c.dom7LiveListeners && (p = c.dom7LiveListeners[d]), p && p.length) for (var h = p.length - 1; 0 <= h; h -= 1) { var f = p[h]; a && f.listener === a ? (c.removeEventListener(d, f.proxyListener, s), p.splice(h, 1)) : a || (c.removeEventListener(d, f.proxyListener, s), p.splice(h, 1)) } } return this }, trigger: function() { for (var e = [], t = arguments.length; t--;) e[t] = arguments[t]; for (var n = e[0].split(" "), a = e[1], s = 0; s < n.length; s += 1) for (var o = n[s], l = 0; l < this.length; l += 1) { var d = this[l], u = void 0; try { u = new r.CustomEvent(o, { detail: a, bubbles: !0, cancelable: !0 }) } catch (e) { (u = i.createEvent("Event")).initEvent(o, !0, !0), u.detail = a } d.dom7EventData = e.filter(function(e, t) { return 0 < t }), d.dispatchEvent(u), d.dom7EventData = [], delete d.dom7EventData } return this }, transitionEnd: function(e) { function t(a) { if (a.target === this) for (e.call(this, a), n = 0; n < i.length; n += 1) r.off(i[n], t) } var n, i = ["webkitTransitionEnd", "transitionend"], r = this; if (e) for (n = 0; n < i.length; n += 1) r.on(i[n], t); return this }, outerWidth: function(e) { if (0 < this.length) { if (e) { var t = this.styles(); return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left")) } return this[0].offsetWidth } return null }, outerHeight: function(e) { if (0 < this.length) { if (e) { var t = this.styles(); return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom")) } return this[0].offsetHeight } return null }, offset: function() { if (0 < this.length) { var e = this[0], t = e.getBoundingClientRect(), n = i.body, a = e.clientTop || n.clientTop || 0, s = e.clientLeft || n.clientLeft || 0, o = e === r ? r.scrollY : e.scrollTop, l = e === r ? r.scrollX : e.scrollLeft; return { top: t.top + o - a, left: t.left + l - s } } return null }, css: function(e, t) { var n; if (1 === arguments.length) { if ("string" != typeof e) { for (n = 0; n < this.length; n += 1) for (var i in e) this[n].style[i] = e[i]; return this } if (this[0]) return r.getComputedStyle(this[0], null).getPropertyValue(e) } if (2 === arguments.length && "string" == typeof e) { for (n = 0; n < this.length; n += 1) this[n].style[e] = t; return this } return this }, each: function(e) { if (!e) return this; for (var t = 0; t < this.length; t += 1) if (!1 === e.call(this[t], t, this[t])) return this; return this }, html: function(e) { if (void 0 === e) return this[0] ? this[0].innerHTML : void 0; for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e; return this }, text: function(e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (var t = 0; t < this.length; t += 1) this[t].textContent = e; return this }, is: function(t) { var n, s, o = this[0]; if (!o || void 0 === t) return !1; if ("string" == typeof t) { if (o.matches) return o.matches(t); if (o.webkitMatchesSelector) return o.webkitMatchesSelector(t); if (o.msMatchesSelector) return o.msMatchesSelector(t); for (n = e(t), s = 0; s < n.length; s += 1) if (n[s] === o) return !0; return !1 } if (t === i) return o === i; if (t === r) return o === r; if (t.nodeType || t instanceof a) { for (n = t.nodeType ? [t] : t, s = 0; s < n.length; s += 1) if (n[s] === o) return !0; return !1 } return !1 }, index: function() { var e, t = this[0]; if (t) { for (e = 0; null !== (t = t.previousSibling);) 1 === t.nodeType && (e += 1); return e } }, eq: function(e) { if (void 0 === e) return this; var t, n = this.length; return new a(n - 1 < e ? [] : e < 0 ? (t = n + e) < 0 ? [] : [this[t]] : [this[e]]) }, append: function() { for (var e, t = [], n = arguments.length; n--;) t[n] = arguments[n]; for (var r = 0; r < t.length; r += 1) { e = t[r]; for (var s = 0; s < this.length; s += 1) if ("string" == typeof e) { var o = i.createElement("div"); for (o.innerHTML = e; o.firstChild;) this[s].appendChild(o.firstChild) } else if (e instanceof a) for (var l = 0; l < e.length; l += 1) this[s].appendChild(e[l]); else this[s].appendChild(e) } return this }, prepend: function(e) { var t, n, r = this; for (t = 0; t < this.length; t += 1) if ("string" == typeof e) { var s = i.createElement("div"); for (s.innerHTML = e, n = s.childNodes.length - 1; 0 <= n; n -= 1) r[t].insertBefore(s.childNodes[n], r[t].childNodes[0]) } else if (e instanceof a) for (n = 0; n < e.length; n += 1) r[t].insertBefore(e[n], r[t].childNodes[0]); else r[t].insertBefore(e, r[t].childNodes[0]); return this }, next: function(t) { return new a(0 < this.length ? t ? this[0].nextElementSibling && e(this[0].nextElementSibling).is(t) ? [this[0].nextElementSibling] : [] : this[0].nextElementSibling ? [this[0].nextElementSibling] : [] : []) }, nextAll: function(t) { var n = [], i = this[0]; if (!i) return new a([]); for (; i.nextElementSibling;) { var r = i.nextElementSibling; t ? e(r).is(t) && n.push(r) : n.push(r), i = r } return new a(n) }, prev: function(t) { if (0 < this.length) { var n = this[0]; return new a(t ? n.previousElementSibling && e(n.previousElementSibling).is(t) ? [n.previousElementSibling] : [] : n.previousElementSibling ? [n.previousElementSibling] : []) } return new a([]) }, prevAll: function(t) { var n = [], i = this[0]; if (!i) return new a([]); for (; i.previousElementSibling;) { var r = i.previousElementSibling; t ? e(r).is(t) && n.push(r) : n.push(r), i = r } return new a(n) }, parent: function(n) { for (var i = [], r = 0; r < this.length; r += 1) null !== this[r].parentNode && (n ? e(this[r].parentNode).is(n) && i.push(this[r].parentNode) : i.push(this[r].parentNode)); return e(t(i)) }, parents: function(n) { for (var i = [], r = 0; r < this.length; r += 1) for (var a = this[r].parentNode; a;) n ? e(a).is(n) && i.push(a) : i.push(a), a = a.parentNode; return e(t(i)) }, closest: function(e) { var t = this; return void 0 === e ? new a([]) : (t.is(e) || (t = t.parents(e).eq(0)), t) }, find: function(e) { for (var t = [], n = 0; n < this.length; n += 1) for (var i = this[n].querySelectorAll(e), r = 0; r < i.length; r += 1) t.push(i[r]); return new a(t) }, children: function(n) { for (var i = [], r = 0; r < this.length; r += 1) for (var s = this[r].childNodes, o = 0; o < s.length; o += 1) n ? 1 === s[o].nodeType && e(s[o]).is(n) && i.push(s[o]) : 1 === s[o].nodeType && i.push(s[o]); return new a(t(i)) }, remove: function() { for (var e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this }, add: function() { for (var t = [], n = arguments.length; n--;) t[n] = arguments[n]; var i, r; for (i = 0; i < t.length; i += 1) { var a = e(t[i]); for (r = 0; r < a.length; r += 1) this[this.length] = a[r], this.length += 1 } return this }, styles: function() { return this[0] ? r.getComputedStyle(this[0], null) : {} } }; Object.keys(s).forEach(function(t) { e.fn[t] = s[t] }); var o, l, d, u = { deleteProps: function(e) { var t = e; Object.keys(t).forEach(function(e) { try { t[e] = null } catch (e) {} try { delete t[e] } catch (e) {} }) }, nextTick: function(e, t) { return void 0 === t && (t = 0), setTimeout(e, t) }, now: function() { return Date.now() }, getTranslate: function(e, t) { var n, i, a; void 0 === t && (t = "x"); var s = r.getComputedStyle(e, null); return r.WebKitCSSMatrix ? (6 < (i = s.transform || s.webkitTransform).split(",").length && (i = i.split(", ").map(function(e) { return e.replace(",", ".") }).join(", ")), a = new r.WebKitCSSMatrix("none" === i ? "" : i)) : n = (a = s.MozTransform || s.OTransform || s.MsTransform || s.msTransform || s.transform || s.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === t && (i = r.WebKitCSSMatrix ? a.m41 : 16 === n.length ? parseFloat(n[12]) : parseFloat(n[4])), "y" === t && (i = r.WebKitCSSMatrix ? a.m42 : 16 === n.length ? parseFloat(n[13]) : parseFloat(n[5])), i || 0 }, parseUrlQuery: function(e) { var t, n, i, a, s = {}, o = e || r.location.href; if ("string" == typeof o && o.length) for (a = (n = (o = -1 < o.indexOf("?") ? o.replace(/\S*\?/, "") : "").split("&").filter(function(e) { return "" !== e })).length, t = 0; t < a; t += 1) i = n[t].replace(/#\S+/g, "").split("="), s[decodeURIComponent(i[0])] = void 0 === i[1] ? void 0 : decodeURIComponent(i[1]) || ""; return s }, isObject: function(e) { return "object" == typeof e && null !== e && e.constructor && e.constructor === Object }, extend: function() { for (var e = [], t = arguments.length; t--;) e[t] = arguments[t]; for (var n = Object(e[0]), i = 1; i < e.length; i += 1) { var r = e[i]; if (null != r) for (var a = Object.keys(Object(r)), s = 0, o = a.length; s < o; s += 1) { var l = a[s], d = Object.getOwnPropertyDescriptor(r, l); void 0 !== d && d.enumerable && (u.isObject(n[l]) && u.isObject(r[l]) ? u.extend(n[l], r[l]) : !u.isObject(n[l]) && u.isObject(r[l]) ? (n[l] = {}, u.extend(n[l], r[l])) : n[l] = r[l]) } } return n } }, c = (d = i.createElement("div"), { touch: r.Modernizr && !0 === r.Modernizr.touch || !! ("ontouchstart" in r || r.DocumentTouch && i instanceof r.DocumentTouch), pointerEvents: !(!r.navigator.pointerEnabled && !r.PointerEvent), prefixedPointerEvents: !! r.navigator.msPointerEnabled, transition: "transition" in (l = d.style) || "webkitTransition" in l || "MozTransition" in l, transforms3d: r.Modernizr && !0 === r.Modernizr.csstransforms3d || "webkitPerspective" in (o = d.style) || "MozPerspective" in o || "OPerspective" in o || "MsPerspective" in o || "perspective" in o, flexbox: function() { for (var e = d.style, t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), n = 0; n < t.length; n += 1) if (t[n] in e) return !0; return !1 }(), observer: "MutationObserver" in r || "WebkitMutationObserver" in r, passiveListener: function() { var e = !1; try { var t = Object.defineProperty({}, "passive", { get: function() { e = !0 } }); r.addEventListener("testPassiveListener", null, t) } catch (e) {} return e }(), gestures: "ongesturestart" in r }), p = function(e) { void 0 === e && (e = {}); var t = this; t.params = e, t.eventsListeners = {}, t.params && t.params.on && Object.keys(t.params.on).forEach(function(e) { t.on(e, t.params.on[e]) }) }, h = { components: { configurable: !0 } }; p.prototype.on = function(e, t, n) { var i = this; if ("function" != typeof t) return i; var r = n ? "unshift" : "push"; return e.split(" ").forEach(function(e) { i.eventsListeners[e] || (i.eventsListeners[e] = []), i.eventsListeners[e][r](t) }), i }, p.prototype.once = function(e, t, n) { var i = this; return "function" != typeof t ? i : i.on(e, function n() { for (var r = [], a = arguments.length; a--;) r[a] = arguments[a]; t.apply(i, r), i.off(e, n) }, n) }, p.prototype.off = function(e, t) { var n = this; return n.eventsListeners && e.split(" ").forEach(function(e) { void 0 === t ? n.eventsListeners[e] = [] : n.eventsListeners[e] && n.eventsListeners[e].length && n.eventsListeners[e].forEach(function(i, r) { i === t && n.eventsListeners[e].splice(r, 1) }) }), n }, p.prototype.emit = function() { for (var e = [], t = arguments.length; t--;) e[t] = arguments[t]; var n, i, r, a = this; return a.eventsListeners && ("string" == typeof e[0] || Array.isArray(e[0]) ? (n = e[0], i = e.slice(1, e.length), r = a) : (n = e[0].events, i = e[0].data, r = e[0].context || a), (Array.isArray(n) ? n : n.split(" ")).forEach(function(e) { if (a.eventsListeners && a.eventsListeners[e]) { var t = []; a.eventsListeners[e].forEach(function(e) { t.push(e) }), t.forEach(function(e) { e.apply(r, i) }) } })), a }, p.prototype.useModulesParams = function(e) { var t = this; t.modules && Object.keys(t.modules).forEach(function(n) { var i = t.modules[n]; i.params && u.extend(e, i.params) }) }, p.prototype.useModules = function(e) { void 0 === e && (e = {}); var t = this; t.modules && Object.keys(t.modules).forEach(function(n) { var i = t.modules[n], r = e[n] || {}; i.instance && Object.keys(i.instance).forEach(function(e) { var n = i.instance[e]; t[e] = "function" == typeof n ? n.bind(t) : n }), i.on && t.on && Object.keys(i.on).forEach(function(e) { t.on(e, i.on[e]) }), i.create && i.create.bind(t)(r) }) }, h.components.set = function(e) { this.use && this.use(e) }, p.installModule = function(e) { for (var t = [], n = arguments.length - 1; 0 < n--;) t[n] = arguments[n + 1]; var i = this; i.prototype.modules || (i.prototype.modules = {}); var r = e.name || Object.keys(i.prototype.modules).length + "_" + u.now(); return (i.prototype.modules[r] = e).proto && Object.keys(e.proto).forEach(function(t) { i.prototype[t] = e.proto[t] }), e.static && Object.keys(e.static).forEach(function(t) { i[t] = e.static[t] }), e.install && e.install.apply(i, t), i }, p.use = function(e) { for (var t = [], n = arguments.length - 1; 0 < n--;) t[n] = arguments[n + 1]; var i = this; return Array.isArray(e) ? (e.forEach(function(e) { return i.installModule(e) }), i) : i.installModule.apply(i, [e].concat(t)) }, Object.defineProperties(p, h); var f, v = { updateSize: function() { var e, t, n = this, i = n.$el; e = void 0 !== n.params.width ? n.params.width : i[0].clientWidth, t = void 0 !== n.params.height ? n.params.height : i[0].clientHeight, 0 === e && n.isHorizontal() || 0 === t && n.isVertical() || (e = e - parseInt(i.css("padding-left"), 10) - parseInt(i.css("padding-right"), 10), t = t - parseInt(i.css("padding-top"), 10) - parseInt(i.css("padding-bottom"), 10), u.extend(n, { width: e, height: t, size: n.isHorizontal() ? e : t })) }, updateSlides: function() { var e = this, t = e.params, n = e.$wrapperEl, i = e.size, a = e.rtlTranslate, s = e.wrongRTL, o = e.virtual && t.virtual.enabled, l = o ? e.virtual.slides.length : e.slides.length, d = n.children("." + e.params.slideClass), p = o ? e.virtual.slides.length : d.length, h = [], f = [], v = [], m = t.slidesOffsetBefore; "function" == typeof m && (m = t.slidesOffsetBefore.call(e)); var g = t.slidesOffsetAfter; "function" == typeof g && (g = t.slidesOffsetAfter.call(e)); var y = e.snapGrid.length, b = e.snapGrid.length, x = t.spaceBetween, w = -m, T = 0, E = 0; if (void 0 !== i) { var C, S; "string" == typeof x && 0 <= x.indexOf("%") && (x = parseFloat(x.replace("%", "")) / 100 * i), e.virtualSize = -x, a ? d.css({ marginLeft: "", marginTop: "" }) : d.css({ marginRight: "", marginBottom: "" }), 1 < t.slidesPerColumn && (C = Math.floor(p / t.slidesPerColumn) === p / e.params.slidesPerColumn ? p : Math.ceil(p / t.slidesPerColumn) * t.slidesPerColumn, "auto" !== t.slidesPerView && "row" === t.slidesPerColumnFill && (C = Math.max(C, t.slidesPerView * t.slidesPerColumn))); for (var k, M = t.slidesPerColumn, $ = C / M, P = $ - (t.slidesPerColumn * $ - p), L = 0; L < p; L += 1) { S = 0; var D = d.eq(L); if (1 < t.slidesPerColumn) { var z = void 0, N = void 0, I = void 0; "column" === t.slidesPerColumnFill ? (I = L - (N = Math.floor(L / M)) * M, (P < N || N === P && I === M - 1) && M <= (I += 1) && (I = 0, N += 1), z = N + I * C / M, D.css({ "-webkit-box-ordinal-group": z, "-moz-box-ordinal-group": z, "-ms-flex-order": z, "-webkit-order": z, order: z })) : N = L - (I = Math.floor(L / $)) * $, D.css("margin-" + (e.isHorizontal() ? "top" : "left"), 0 !== I && t.spaceBetween && t.spaceBetween + "px").attr("data-swiper-column", N).attr("data-swiper-row", I) } if ("none" !== D.css("display")) { if ("auto" === t.slidesPerView) { var A = r.getComputedStyle(D[0], null), O = D[0].style.transform, H = D[0].style.webkitTransform; O && (D[0].style.transform = "none"), H && (D[0].style.webkitTransform = "none"), S = t.roundLengths ? e.isHorizontal() ? D.outerWidth(!0) : D.outerHeight(!0) : e.isHorizontal() ? D[0].getBoundingClientRect().width + parseFloat(A.getPropertyValue("margin-left")) + parseFloat(A.getPropertyValue("margin-right")) : D[0].getBoundingClientRect().height + parseFloat(A.getPropertyValue("margin-top")) + parseFloat(A.getPropertyValue("margin-bottom")), O && (D[0].style.transform = O), H && (D[0].style.webkitTransform = H), t.roundLengths && (S = Math.floor(S)) } else S = (i - (t.slidesPerView - 1) * x) / t.slidesPerView, t.roundLengths && (S = Math.floor(S)), d[L] && (e.isHorizontal() ? d[L].style.width = S + "px" : d[L].style.height = S + "px"); d[L] && (d[L].swiperSlideSize = S), v.push(S), t.centeredSlides ? (w = w + S / 2 + T / 2 + x, 0 === T && 0 !== L && (w = w - i / 2 - x), 0 === L && (w = w - i / 2 - x), Math.abs(w) < .001 && (w = 0), t.roundLengths && (w = Math.floor(w)), E % t.slidesPerGroup == 0 && h.push(w), f.push(w)) : (t.roundLengths && (w = Math.floor(w)), E % t.slidesPerGroup == 0 && h.push(w), f.push(w), w = w + S + x), e.virtualSize += S + x, T = S, E += 1 } } if (e.virtualSize = Math.max(e.virtualSize, i) + g, a && s && ("slide" === t.effect || "coverflow" === t.effect) && n.css({ width: e.virtualSize + t.spaceBetween + "px" }), c.flexbox && !t.setWrapperSize || (e.isHorizontal() ? n.css({ width: e.virtualSize + t.spaceBetween + "px" }) : n.css({ height: e.virtualSize + t.spaceBetween + "px" })), 1 < t.slidesPerColumn && (e.virtualSize = (S + t.spaceBetween) * C, e.virtualSize = Math.ceil(e.virtualSize / t.slidesPerColumn) - t.spaceBetween, e.isHorizontal() ? n.css({ width: e.virtualSize + t.spaceBetween + "px" }) : n.css({ height: e.virtualSize + t.spaceBetween + "px" }), t.centeredSlides)) { k = []; for (var j = 0; j < h.length; j += 1) { var B = h[j]; t.roundLengths && (B = Math.floor(B)), h[j] < e.virtualSize + h[0] && k.push(B) } h = k } if (!t.centeredSlides) { k = []; for (var q = 0; q < h.length; q += 1) { var F = h[q]; t.roundLengths && (F = Math.floor(F)), h[q] <= e.virtualSize - i && k.push(F) } h = k, 1 < Math.floor(e.virtualSize - i) - Math.floor(h[h.length - 1]) && h.push(e.virtualSize - i) } if (0 === h.length && (h = [0]), 0 !== t.spaceBetween && (e.isHorizontal() ? a ? d.css({ marginLeft: x + "px" }) : d.css({ marginRight: x + "px" }) : d.css({ marginBottom: x + "px" })), t.centerInsufficientSlides) { var R = 0; if (v.forEach(function(e) { R += e + (t.spaceBetween ? t.spaceBetween : 0) }), (R -= t.spaceBetween) < i) { var X = (i - R) / 2; h.forEach(function(e, t) { h[t] = e - X }), f.forEach(function(e, t) { f[t] = e + X }) } } u.extend(e, { slides: d, snapGrid: h, slidesGrid: f, slidesSizesGrid: v }), p !== l && e.emit("slidesLengthChange"), h.length !== y && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), f.length !== b && e.emit("slidesGridLengthChange"), (t.watchSlidesProgress || t.watchSlidesVisibility) && e.updateSlidesOffset() } }, updateAutoHeight: function(e) { var t, n = this, i = [], r = 0; if ("number" == typeof e ? n.setTransition(e) : !0 === e && n.setTransition(n.params.speed), "auto" !== n.params.slidesPerView && 1 < n.params.slidesPerView) for (t = 0; t < Math.ceil(n.params.slidesPerView); t += 1) { var a = n.activeIndex + t; if (a > n.slides.length) break; i.push(n.slides.eq(a)[0]) } else i.push(n.slides.eq(n.activeIndex)[0]); for (t = 0; t < i.length; t += 1) if (void 0 !== i[t]) { var s = i[t].offsetHeight; r = r < s ? s : r } r && n.$wrapperEl.css("height", r + "px") }, updateSlidesOffset: function() { for (var e = this.slides, t = 0; t < e.length; t += 1) e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop }, updateSlidesProgress: function(t) { void 0 === t && (t = this && this.translate || 0); var n = this, i = n.params, r = n.slides, a = n.rtlTranslate; if (0 !== r.length) { void 0 === r[0].swiperSlideOffset && n.updateSlidesOffset(); var s = -t; a && (s = t), r.removeClass(i.slideVisibleClass), n.visibleSlidesIndexes = [], n.visibleSlides = []; for (var o = 0; o < r.length; o += 1) { var l = r[o], d = (s + (i.centeredSlides ? n.minTranslate() : 0) - l.swiperSlideOffset) / (l.swiperSlideSize + i.spaceBetween); if (i.watchSlidesVisibility) { var u = -(s - l.swiperSlideOffset), c = u + n.slidesSizesGrid[o]; (0 <= u && u < n.size || 0 < c && c <= n.size || u <= 0 && c >= n.size) && (n.visibleSlides.push(l), n.visibleSlidesIndexes.push(o), r.eq(o).addClass(i.slideVisibleClass)) } l.progress = a ? -d : d } n.visibleSlides = e(n.visibleSlides) } }, updateProgress: function(e) { void 0 === e && (e = this && this.translate || 0); var t = this, n = t.params, i = t.maxTranslate() - t.minTranslate(), r = t.progress, a = t.isBeginning, s = t.isEnd, o = a, l = s; 0 === i ? s = a = !(r = 0) : (a = (r = (e - t.minTranslate()) / i) <= 0, s = 1 <= r), u.extend(t, { progress: r, isBeginning: a, isEnd: s }), (n.watchSlidesProgress || n.watchSlidesVisibility) && t.updateSlidesProgress(e), a && !o && t.emit("reachBeginning toEdge"), s && !l && t.emit("reachEnd toEdge"), (o && !a || l && !s) && t.emit("fromEdge"), t.emit("progress", r) }, updateSlidesClasses: function() { var e, t = this, n = t.slides, i = t.params, r = t.$wrapperEl, a = t.activeIndex, s = t.realIndex, o = t.virtual && i.virtual.enabled; n.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass), (e = o ? t.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + a + '"]') : n.eq(a)).addClass(i.slideActiveClass), i.loop && (e.hasClass(i.slideDuplicateClass) ? r.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + s + '"]').addClass(i.slideDuplicateActiveClass) : r.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + s + '"]').addClass(i.slideDuplicateActiveClass)); var l = e.nextAll("." + i.slideClass).eq(0).addClass(i.slideNextClass); i.loop && 0 === l.length && (l = n.eq(0)).addClass(i.slideNextClass); var d = e.prevAll("." + i.slideClass).eq(0).addClass(i.slidePrevClass); i.loop && 0 === d.length && (d = n.eq(-1)).addClass(i.slidePrevClass), i.loop && (l.hasClass(i.slideDuplicateClass) ? r.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass) : r.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass), d.hasClass(i.slideDuplicateClass) ? r.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass) : r.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass)) }, updateActiveIndex: function(e) { var t, n = this, i = n.rtlTranslate ? n.translate : -n.translate, r = n.slidesGrid, a = n.snapGrid, s = n.params, o = n.activeIndex, l = n.realIndex, d = n.snapIndex, c = e; if (void 0 === c) { for (var p = 0; p < r.length; p += 1) void 0 !== r[p + 1] ? i >= r[p] && i < r[p + 1] - (r[p + 1] - r[p]) / 2 ? c = p : i >= r[p] && i < r[p + 1] && (c = p + 1) : i >= r[p] && (c = p); s.normalizeSlideIndex && (c < 0 || void 0 === c) && (c = 0) } if ((t = 0 <= a.indexOf(i) ? a.indexOf(i) : Math.floor(c / s.slidesPerGroup)) >= a.length && (t = a.length - 1), c !== o) { var h = parseInt(n.slides.eq(c).attr("data-swiper-slide-index") || c, 10); u.extend(n, { snapIndex: t, realIndex: h, previousIndex: o, activeIndex: c }), n.emit("activeIndexChange"), n.emit("snapIndexChange"), l !== h && n.emit("realIndexChange"), n.emit("slideChange") } else t !== d && (n.snapIndex = t, n.emit("snapIndexChange")) }, updateClickedSlide: function(t) { var n = this, i = n.params, r = e(t.target).closest("." + i.slideClass)[0], a = !1; if (r) for (var s = 0; s < n.slides.length; s += 1) n.slides[s] === r && (a = !0); if (!r || !a) return n.clickedSlide = void 0, void(n.clickedIndex = void 0); n.clickedSlide = r, n.virtual && n.params.virtual.enabled ? n.clickedIndex = parseInt(e(r).attr("data-swiper-slide-index"), 10) : n.clickedIndex = e(r).index(), i.slideToClickedSlide && void 0 !== n.clickedIndex && n.clickedIndex !== n.activeIndex && n.slideToClickedSlide() } }, m = { getTranslate: function(e) { void 0 === e && (e = this.isHorizontal() ? "x" : "y"); var t = this.params, n = this.rtlTranslate, i = this.translate, r = this.$wrapperEl; if (t.virtualTranslate) return n ? -i : i; var a = u.getTranslate(r[0], e); return n && (a = -a), a || 0 }, setTranslate: function(e, t) { var n = this, i = n.rtlTranslate, r = n.params, a = n.$wrapperEl, s = n.progress, o = 0, l = 0; n.isHorizontal() ? o = i ? -e : e : l = e, r.roundLengths && (o = Math.floor(o), l = Math.floor(l)), r.virtualTranslate || (c.transforms3d ? a.transform("translate3d(" + o + "px, " + l + "px, 0px)") : a.transform("translate(" + o + "px, " + l + "px)")), n.previousTranslate = n.translate, n.translate = n.isHorizontal() ? o : l; var d = n.maxTranslate() - n.minTranslate(); (0 === d ? 0 : (e - n.minTranslate()) / d) !== s && n.updateProgress(e), n.emit("setTranslate", n.translate, t) }, minTranslate: function() { return -this.snapGrid[0] }, maxTranslate: function() { return -this.snapGrid[this.snapGrid.length - 1] } }, g = { setTransition: function(e, t) { this.$wrapperEl.transition(e), this.emit("setTransition", e, t) }, transitionStart: function(e, t) { void 0 === e && (e = !0); var n = this, i = n.activeIndex, r = n.params, a = n.previousIndex; r.autoHeight && n.updateAutoHeight(); var s = t; if (s || (s = a < i ? "next" : i < a ? "prev" : "reset"), n.emit("transitionStart"), e && i !== a) { if ("reset" === s) return void n.emit("slideResetTransitionStart"); n.emit("slideChangeTransitionStart"), "next" === s ? n.emit("slideNextTransitionStart") : n.emit("slidePrevTransitionStart") } }, transitionEnd: function(e, t) { void 0 === e && (e = !0); var n = this, i = n.activeIndex, r = n.previousIndex; n.animating = !1, n.setTransition(0); var a = t; if (a || (a = r < i ? "next" : i < r ? "prev" : "reset"), n.emit("transitionEnd"), e && i !== r) { if ("reset" === a) return void n.emit("slideResetTransitionEnd"); n.emit("slideChangeTransitionEnd"), "next" === a ? n.emit("slideNextTransitionEnd") : n.emit("slidePrevTransitionEnd") } } }, y = { slideTo: function(e, t, n, i) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === n && (n = !0); var r = this, a = e; a < 0 && (a = 0); var s = r.params, o = r.snapGrid, l = r.slidesGrid, d = r.previousIndex, u = r.activeIndex, p = r.rtlTranslate; if (r.animating && s.preventInteractionOnTransition) return !1; var h = Math.floor(a / s.slidesPerGroup); h >= o.length && (h = o.length - 1), (u || s.initialSlide || 0) === (d || 0) && n && r.emit("beforeSlideChangeStart"); var f, v = -o[h]; if (r.updateProgress(v), s.normalizeSlideIndex) for (var m = 0; m < l.length; m += 1) - Math.floor(100 * v) >= Math.floor(100 * l[m]) && (a = m); if (r.initialized && a !== u) { if (!r.allowSlideNext && v < r.translate && v < r.minTranslate()) return !1; if (!r.allowSlidePrev && v > r.translate && v > r.maxTranslate() && (u || 0) !== a) return !1 } return f = u < a ? "next" : a < u ? "prev" : "reset", p && -v === r.translate || !p && v === r.translate ? (r.updateActiveIndex(a), s.autoHeight && r.updateAutoHeight(), r.updateSlidesClasses(), "slide" !== s.effect && r.setTranslate(v), "reset" !== f && (r.transitionStart(n, f), r.transitionEnd(n, f)), !1) : (0 !== t && c.transition ? (r.setTransition(t), r.setTranslate(v), r.updateActiveIndex(a), r.updateSlidesClasses(), r.emit("beforeTransitionStart", t, i), r.transitionStart(n, f), r.animating || (r.animating = !0, r.onSlideToWrapperTransitionEnd || (r.onSlideToWrapperTransitionEnd = function(e) { r && !r.destroyed && e.target === this && (r.$wrapperEl[0].removeEventListener("transitionend", r.onSlideToWrapperTransitionEnd), r.$wrapperEl[0].removeEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd), r.onSlideToWrapperTransitionEnd = null, delete r.onSlideToWrapperTransitionEnd, r.transitionEnd(n, f)) }), r.$wrapperEl[0].addEventListener("transitionend", r.onSlideToWrapperTransitionEnd), r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd))) : (r.setTransition(0), r.setTranslate(v), r.updateActiveIndex(a), r.updateSlidesClasses(), r.emit("beforeTransitionStart", t, i), r.transitionStart(n, f), r.transitionEnd(n, f)), !0) }, slideToLoop: function(e, t, n, i) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === n && (n = !0); var r = e; return this.params.loop && (r += this.loopedSlides), this.slideTo(r, t, n, i) }, slideNext: function(e, t, n) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var i = this, r = i.params, a = i.animating; return r.loop ? !a && (i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft, i.slideTo(i.activeIndex + r.slidesPerGroup, e, t, n)) : i.slideTo(i.activeIndex + r.slidesPerGroup, e, t, n) }, slidePrev: function(e, t, n) { function i(e) { return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e) } void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var r = this, a = r.params, s = r.animating, o = r.snapGrid, l = r.slidesGrid, d = r.rtlTranslate; if (a.loop) { if (s) return !1; r.loopFix(), r._clientLeft = r.$wrapperEl[0].clientLeft } var u, c = i(d ? r.translate : -r.translate), p = o.map(function(e) { return i(e) }), h = (l.map(function(e) { return i(e) }), o[p.indexOf(c)], o[p.indexOf(c) - 1]); return void 0 !== h && (u = l.indexOf(h)) < 0 && (u = r.activeIndex - 1), r.slideTo(u, e, t, n) }, slideReset: function(e, t, n) { return void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, e, t, n) }, slideToClosest: function(e, t, n) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var i = this, r = i.activeIndex, a = Math.floor(r / i.params.slidesPerGroup); if (a < i.snapGrid.length - 1) { var s = i.rtlTranslate ? i.translate : -i.translate, o = i.snapGrid[a]; (i.snapGrid[a + 1] - o) / 2 < s - o && (r = i.params.slidesPerGroup) } return i.slideTo(r, e, t, n) }, slideToClickedSlide: function() { var t, n = this, i = n.params, r = n.$wrapperEl, a = "auto" === i.slidesPerView ? n.slidesPerViewDynamic() : i.slidesPerView, s = n.clickedIndex; if (i.loop) { if (n.animating) return; t = parseInt(e(n.clickedSlide).attr("data-swiper-slide-index"), 10), i.centeredSlides ? s < n.loopedSlides - a / 2 || s > n.slides.length - n.loopedSlides + a / 2 ? (n.loopFix(), s = r.children("." + i.slideClass + '[data-swiper-slide-index="' + t + '"]:not(.' + i.slideDuplicateClass + ")").eq(0).index(), u.nextTick(function() { n.slideTo(s) })) : n.slideTo(s) : s > n.slides.length - a ? (n.loopFix(), s = r.children("." + i.slideClass + '[data-swiper-slide-index="' + t + '"]:not(.' + i.slideDuplicateClass + ")").eq(0).index(), u.nextTick(function() { n.slideTo(s) })) : n.slideTo(s) } else n.slideTo(s) } }, b = { loopCreate: function() { var t = this, n = t.params, r = t.$wrapperEl; r.children("." + n.slideClass + "." + n.slideDuplicateClass).remove(); var a = r.children("." + n.slideClass); if (n.loopFillGroupWithBlank) { var s = n.slidesPerGroup - a.length % n.slidesPerGroup; if (s !== n.slidesPerGroup) { for (var o = 0; o < s; o += 1) { var l = e(i.createElement("div")).addClass(n.slideClass + " " + n.slideBlankClass); r.append(l) } a = r.children("." + n.slideClass) } } "auto" !== n.slidesPerView || n.loopedSlides || (n.loopedSlides = a.length), t.loopedSlides = parseInt(n.loopedSlides || n.slidesPerView, 10), t.loopedSlides += n.loopAdditionalSlides, t.loopedSlides > a.length && (t.loopedSlides = a.length); var d = [], u = []; a.each(function(n, i) { var r = e(i); n < t.loopedSlides && u.push(i), n < a.length && n >= a.length - t.loopedSlides && d.push(i), r.attr("data-swiper-slide-index", n) }); for (var c = 0; c < u.length; c += 1) r.append(e(u[c].cloneNode(!0)).addClass(n.slideDuplicateClass)); for (var p = d.length - 1; 0 <= p; p -= 1) r.prepend(e(d[p].cloneNode(!0)).addClass(n.slideDuplicateClass)) }, loopFix: function() { var e, t = this, n = t.params, i = t.activeIndex, r = t.slides, a = t.loopedSlides, s = t.allowSlidePrev, o = t.allowSlideNext, l = t.snapGrid, d = t.rtlTranslate; t.allowSlidePrev = !0, t.allowSlideNext = !0; var u = -l[i] - t.getTranslate(); i < a ? (e = r.length - 3 * a + i, e += a, t.slideTo(e, 0, !1, !0) && 0 !== u && t.setTranslate((d ? -t.translate : t.translate) - u)) : ("auto" === n.slidesPerView && 2 * a <= i || i >= r.length - a) && (e = -r.length + i + a, e += a, t.slideTo(e, 0, !1, !0) && 0 !== u && t.setTranslate((d ? -t.translate : t.translate) - u)), t.allowSlidePrev = s, t.allowSlideNext = o }, loopDestroy: function() { var e = this.$wrapperEl, t = this.params, n = this.slides; e.children("." + t.slideClass + "." + t.slideDuplicateClass).remove(), n.removeAttr("data-swiper-slide-index") } }, x = { setGrabCursor: function(e) { if (!(c.touch || !this.params.simulateTouch || this.params.watchOverflow && this.isLocked)) { var t = this.el; t.style.cursor = "move", t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", t.style.cursor = e ? "-moz-grabbin" : "-moz-grab", t.style.cursor = e ? "grabbing" : "grab" } }, unsetGrabCursor: function() { c.touch || this.params.watchOverflow && this.isLocked || (this.el.style.cursor = "") } }, w = { appendSlide: function(e) { var t = this, n = t.$wrapperEl, i = t.params; if (i.loop && t.loopDestroy(), "object" == typeof e && "length" in e) for (var r = 0; r < e.length; r += 1) e[r] && n.append(e[r]); else n.append(e); i.loop && t.loopCreate(), i.observer && c.observer || t.update() }, prependSlide: function(e) { var t = this, n = t.params, i = t.$wrapperEl, r = t.activeIndex; n.loop && t.loopDestroy(); var a = r + 1; if ("object" == typeof e && "length" in e) { for (var s = 0; s < e.length; s += 1) e[s] && i.prepend(e[s]); a = r + e.length } else i.prepend(e); n.loop && t.loopCreate(), n.observer && c.observer || t.update(), t.slideTo(a, 0, !1) }, addSlide: function(e, t) { var n = this, i = n.$wrapperEl, r = n.params, a = n.activeIndex; r.loop && (a -= n.loopedSlides, n.loopDestroy(), n.slides = i.children("." + r.slideClass)); var s = n.slides.length; if (e <= 0) n.prependSlide(t); else if (s <= e) n.appendSlide(t); else { for (var o = e < a ? a + 1 : a, l = [], d = s - 1; e <= d; d -= 1) { var u = n.slides.eq(d); u.remove(), l.unshift(u) } if ("object" == typeof t && "length" in t) { for (var p = 0; p < t.length; p += 1) t[p] && i.append(t[p]); o = e < a ? a + t.length : a } else i.append(t); for (var h = 0; h < l.length; h += 1) i.append(l[h]); r.loop && n.loopCreate(), r.observer && c.observer || n.update(), r.loop ? n.slideTo(o + n.loopedSlides, 0, !1) : n.slideTo(o, 0, !1) } }, removeSlide: function(e) { var t = this, n = t.params, i = t.$wrapperEl, r = t.activeIndex; n.loop && (r -= t.loopedSlides, t.loopDestroy(), t.slides = i.children("." + n.slideClass)); var a, s = r; if ("object" == typeof e && "length" in e) { for (var o = 0; o < e.length; o += 1) a = e[o], t.slides[a] && t.slides.eq(a).remove(), a < s && (s -= 1); s = Math.max(s, 0) } else a = e, t.slides[a] && t.slides.eq(a).remove(), a < s && (s -= 1), s = Math.max(s, 0); n.loop && t.loopCreate(), n.observer && c.observer || t.update(), n.loop ? t.slideTo(s + t.loopedSlides, 0, !1) : t.slideTo(s, 0, !1) }, removeAllSlides: function() { for (var e = [], t = 0; t < this.slides.length; t += 1) e.push(t); this.removeSlide(e) } }, T = function() { var e = r.navigator.userAgent, t = { ios: !1, android: !1, androidChrome: !1, desktop: !1, windows: !1, iphone: !1, ipod: !1, ipad: !1, cordova: r.cordova || r.phonegap, phonegap: r.cordova || r.phonegap }, n = e.match(/(Windows Phone);?[\s\/]+([\d.]+)?/), a = e.match(/(Android);?[\s\/]+([\d.]+)?/), s = e.match(/(iPad).*OS\s([\d_]+)/), o = e.match(/(iPod)(.*OS\s([\d_]+))?/), l = !s && e.match(/(iPhone\sOS|iOS)\s([\d_]+)/); if (n && (t.os = "windows", t.osVersion = n[2], t.windows = !0), a && !n && (t.os = "android", t.osVersion = a[2], t.android = !0, t.androidChrome = 0 <= e.toLowerCase().indexOf("chrome")), (s || l || o) && (t.os = "ios", t.ios = !0), l && !o && (t.osVersion = l[2].replace(/_/g, "."), t.iphone = !0), s && (t.osVersion = s[2].replace(/_/g, "."), t.ipad = !0), o && (t.osVersion = o[3] ? o[3].replace(/_/g, ".") : null, t.iphone = !0), t.ios && t.osVersion && 0 <= e.indexOf("Version/") && "10" === t.osVersion.split(".")[0] && (t.osVersion = e.toLowerCase().split("version/")[1].split(" ")[0]), t.desktop = !(t.os || t.android || t.webView), t.webView = (l || s || o) && e.match(/.*AppleWebKit(?!.*Safari)/i), t.os && "ios" === t.os) { var d = t.osVersion.split("."), u = i.querySelector('meta[name="viewport"]'); t.minimalUi = !t.webView && (o || l) && (1 * d[0] == 7 ? 1 <= 1 * d[1] : 7 < 1 * d[0]) && u && 0 <= u.getAttribute("content").indexOf("minimal-ui") } return t.pixelRatio = r.devicePixelRatio || 1, t }(), E = { attachEvents: function() { var t = this, a = t.params, s = t.touchEvents, o = t.el, l = t.wrapperEl; t.onTouchStart = function(t) { var n = this, a = n.touchEventsData, s = n.params, o = n.touches; if (!n.animating || !s.preventInteractionOnTransition) { var l = t; if (l.originalEvent && (l = l.originalEvent), a.isTouchEvent = "touchstart" === l.type, (a.isTouchEvent || !("which" in l) || 3 !== l.which) && !(!a.isTouchEvent && "button" in l && 0 < l.button || a.isTouched && a.isMoved)) if (s.noSwiping && e(l.target).closest(s.noSwipingSelector ? s.noSwipingSelector : "." + s.noSwipingClass)[0]) n.allowClick = !0; else if (!s.swipeHandler || e(l).closest(s.swipeHandler)[0]) { o.currentX = "touchstart" === l.type ? l.targetTouches[0].pageX : l.pageX, o.currentY = "touchstart" === l.type ? l.targetTouches[0].pageY : l.pageY; var d = o.currentX, c = o.currentY, p = s.edgeSwipeDetection || s.iOSEdgeSwipeDetection, h = s.edgeSwipeThreshold || s.iOSEdgeSwipeThreshold; if (!p || !(d <= h || d >= r.screen.width - h)) { if (u.extend(a, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }), o.startX = d, o.startY = c, a.touchStartTime = u.now(), n.allowClick = !0, n.updateSize(), n.swipeDirection = void 0, 0 < s.threshold && (a.allowThresholdMove = !1), "touchstart" !== l.type) { var f = !0; e(l.target).is(a.formElements) && (f = !1), i.activeElement && e(i.activeElement).is(a.formElements) && i.activeElement !== l.target && i.activeElement.blur(), f && n.allowTouchMove && s.touchStartPreventDefault && l.preventDefault() } n.emit("touchStart", l) } } } }.bind(t), t.onTouchMove = function(t) { var n = this, r = n.touchEventsData, a = n.params, s = n.touches, o = n.rtlTranslate, l = t; if (l.originalEvent && (l = l.originalEvent), r.isTouched) { if (!r.isTouchEvent || "mousemove" !== l.type) { var d = "touchmove" === l.type ? l.targetTouches[0].pageX : l.pageX, c = "touchmove" === l.type ? l.targetTouches[0].pageY : l.pageY; if (l.preventedByNestedSwiper) return s.startX = d, void(s.startY = c); if (!n.allowTouchMove) return n.allowClick = !1, void(r.isTouched && (u.extend(s, { startX: d, startY: c, currentX: d, currentY: c }), r.touchStartTime = u.now())); if (r.isTouchEvent && a.touchReleaseOnEdges && !a.loop) if (n.isVertical()) { if (c < s.startY && n.translate <= n.maxTranslate() || c > s.startY && n.translate >= n.minTranslate()) return r.isTouched = !1, void(r.isMoved = !1) } else if (d < s.startX && n.translate <= n.maxTranslate() || d > s.startX && n.translate >= n.minTranslate()) return; if (r.isTouchEvent && i.activeElement && l.target === i.activeElement && e(l.target).is(r.formElements)) return r.isMoved = !0, void(n.allowClick = !1); if (r.allowTouchCallbacks && n.emit("touchMove", l), !(l.targetTouches && 1 < l.targetTouches.length)) { s.currentX = d, s.currentY = c; var p, h = s.currentX - s.startX, f = s.currentY - s.startY; if (!(n.params.threshold && Math.sqrt(Math.pow(h, 2) + Math.pow(f, 2)) < n.params.threshold)) if (void 0 === r.isScrolling && (n.isHorizontal() && s.currentY === s.startY || n.isVertical() && s.currentX === s.startX ? r.isScrolling = !1 : 25 <= h * h + f * f && (p = 180 * Math.atan2(Math.abs(f), Math.abs(h)) / Math.PI, r.isScrolling = n.isHorizontal() ? p > a.touchAngle : 90 - p > a.touchAngle)), r.isScrolling && n.emit("touchMoveOpposite", l), void 0 === r.startMoving && (s.currentX === s.startX && s.currentY === s.startY || (r.startMoving = !0)), r.isScrolling) r.isTouched = !1; else if (r.startMoving) { n.allowClick = !1, l.preventDefault(), a.touchMoveStopPropagation && !a.nested && l.stopPropagation(), r.isMoved || (a.loop && n.loopFix(), r.startTranslate = n.getTranslate(), n.setTransition(0), n.animating && n.$wrapperEl.trigger("webkitTransitionEnd transitionend"), r.allowMomentumBounce = !1, !a.grabCursor || !0 !== n.allowSlideNext && !0 !== n.allowSlidePrev || n.setGrabCursor(!0), n.emit("sliderFirstMove", l)), n.emit("sliderMove", l), r.isMoved = !0; var v = n.isHorizontal() ? h : f; s.diff = v, v *= a.touchRatio, o && (v = -v), n.swipeDirection = 0 < v ? "prev" : "next", r.currentTranslate = v + r.startTranslate; var m = !0, g = a.resistanceRatio; if (a.touchReleaseOnEdges && (g = 0), 0 < v && r.currentTranslate > n.minTranslate() ? (m = !1, a.resistance && (r.currentTranslate = n.minTranslate() - 1 + Math.pow(-n.minTranslate() + r.startTranslate + v, g))) : v < 0 && r.currentTranslate < n.maxTranslate() && (m = !1, a.resistance && (r.currentTranslate = n.maxTranslate() + 1 - Math.pow(n.maxTranslate() - r.startTranslate - v, g))), m && (l.preventedByNestedSwiper = !0), !n.allowSlideNext && "next" === n.swipeDirection && r.currentTranslate < r.startTranslate && (r.currentTranslate = r.startTranslate), !n.allowSlidePrev && "prev" === n.swipeDirection && r.currentTranslate > r.startTranslate && (r.currentTranslate = r.startTranslate), 0 < a.threshold) { if (!(Math.abs(v) > a.threshold || r.allowThresholdMove)) return void(r.currentTranslate = r.startTranslate); if (!r.allowThresholdMove) return r.allowThresholdMove = !0, s.startX = s.currentX, s.startY = s.currentY, r.currentTranslate = r.startTranslate, void(s.diff = n.isHorizontal() ? s.currentX - s.startX : s.currentY - s.startY) } a.followFinger && ((a.freeMode || a.watchSlidesProgress || a.watchSlidesVisibility) && (n.updateActiveIndex(), n.updateSlidesClasses()), a.freeMode && (0 === r.velocities.length && r.velocities.push({ position: s[n.isHorizontal() ? "startX" : "startY"], time: r.touchStartTime }), r.velocities.push({ position: s[n.isHorizontal() ? "currentX" : "currentY"], time: u.now() })), n.updateProgress(r.currentTranslate), n.setTranslate(r.currentTranslate)) } } } } else r.startMoving && r.isScrolling && n.emit("touchMoveOpposite", l) }.bind(t), t.onTouchEnd = function(e) { var t = this, n = t.touchEventsData, i = t.params, r = t.touches, a = t.rtlTranslate, s = t.$wrapperEl, o = t.slidesGrid, l = t.snapGrid, d = e; if (d.originalEvent && (d = d.originalEvent), n.allowTouchCallbacks && t.emit("touchEnd", d), n.allowTouchCallbacks = !1, !n.isTouched) return n.isMoved && i.grabCursor && t.setGrabCursor(!1), n.isMoved = !1, void(n.startMoving = !1); i.grabCursor && n.isMoved && n.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); var c, p = u.now(), h = p - n.touchStartTime; if (t.allowClick && (t.updateClickedSlide(d), t.emit("tap", d), h < 300 && 300 < p - n.lastClickTime && (n.clickTimeout && clearTimeout(n.clickTimeout), n.clickTimeout = u.nextTick(function() { t && !t.destroyed && t.emit("click", d) }, 300)), h < 300 && p - n.lastClickTime < 300 && (n.clickTimeout && clearTimeout(n.clickTimeout), t.emit("doubleTap", d))), n.lastClickTime = u.now(), u.nextTick(function() { t.destroyed || (t.allowClick = !0) }), !n.isTouched || !n.isMoved || !t.swipeDirection || 0 === r.diff || n.currentTranslate === n.startTranslate) return n.isTouched = !1, n.isMoved = !1, void(n.startMoving = !1); if (n.isTouched = !1, n.isMoved = !1, n.startMoving = !1, c = i.followFinger ? a ? t.translate : -t.translate : -n.currentTranslate, i.freeMode) { if (c < -t.minTranslate()) return void t.slideTo(t.activeIndex); if (c > -t.maxTranslate()) return void(t.slides.length < l.length ? t.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1)); if (i.freeModeMomentum) { if (1 < n.velocities.length) { var f = n.velocities.pop(), v = n.velocities.pop(), m = f.position - v.position, g = f.time - v.time; t.velocity = m / g, t.velocity /= 2, Math.abs(t.velocity) < i.freeModeMinimumVelocity && (t.velocity = 0), (150 < g || 300 < u.now() - f.time) && (t.velocity = 0) } else t.velocity = 0; t.velocity *= i.freeModeMomentumVelocityRatio, n.velocities.length = 0; var y = 1e3 * i.freeModeMomentumRatio, b = t.velocity * y, x = t.translate + b; a && (x = -x); var w, T, E = !1, C = 20 * Math.abs(t.velocity) * i.freeModeMomentumBounceRatio; if (x < t.maxTranslate()) i.freeModeMomentumBounce ? (x + t.maxTranslate() < -C && (x = t.maxTranslate() - C), w = t.maxTranslate(), E = !0, n.allowMomentumBounce = !0) : x = t.maxTranslate(), i.loop && i.centeredSlides && (T = !0); else if (x > t.minTranslate()) i.freeModeMomentumBounce ? (x - t.minTranslate() > C && (x = t.minTranslate() + C), w = t.minTranslate(), E = !0, n.allowMomentumBounce = !0) : x = t.minTranslate(), i.loop && i.centeredSlides && (T = !0); else if (i.freeModeSticky) { for (var S, k = 0; k < l.length; k += 1) if (l[k] > -x) { S = k; break } x = -(x = Math.abs(l[S] - x) < Math.abs(l[S - 1] - x) || "next" === t.swipeDirection ? l[S] : l[S - 1]) } if (T && t.once("transitionEnd", function() { t.loopFix() }), 0 !== t.velocity) y = a ? Math.abs((-x - t.translate) / t.velocity) : Math.abs((x - t.translate) / t.velocity); else if (i.freeModeSticky) return void t.slideToClosest(); i.freeModeMomentumBounce && E ? (t.updateProgress(w), t.setTransition(y), t.setTranslate(x), t.transitionStart(!0, t.swipeDirection), t.animating = !0, s.transitionEnd(function() { t && !t.destroyed && n.allowMomentumBounce && (t.emit("momentumBounce"), t.setTransition(i.speed), t.setTranslate(w), s.transitionEnd(function() { t && !t.destroyed && t.transitionEnd() })) })) : t.velocity ? (t.updateProgress(x), t.setTransition(y), t.setTranslate(x), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, s.transitionEnd(function() { t && !t.destroyed && t.transitionEnd() }))) : t.updateProgress(x), t.updateActiveIndex(), t.updateSlidesClasses() } else if (i.freeModeSticky) return void t.slideToClosest(); (!i.freeModeMomentum || h >= i.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()) } else { for (var M = 0, $ = t.slidesSizesGrid[0], P = 0; P < o.length; P += i.slidesPerGroup) void 0 !== o[P + i.slidesPerGroup] ? c >= o[P] && c < o[P + i.slidesPerGroup] && ($ = o[(M = P) + i.slidesPerGroup] - o[P]) : c >= o[P] && (M = P, $ = o[o.length - 1] - o[o.length - 2]); var L = (c - o[M]) / $; if (h > i.longSwipesMs) { if (!i.longSwipes) return void t.slideTo(t.activeIndex); "next" === t.swipeDirection && (L >= i.longSwipesRatio ? t.slideTo(M + i.slidesPerGroup) : t.slideTo(M)), "prev" === t.swipeDirection && (L > 1 - i.longSwipesRatio ? t.slideTo(M + i.slidesPerGroup) : t.slideTo(M)) } else { if (!i.shortSwipes) return void t.slideTo(t.activeIndex); "next" === t.swipeDirection && t.slideTo(M + i.slidesPerGroup), "prev" === t.swipeDirection && t.slideTo(M) } } }.bind(t), t.onClick = function(e) { this.allowClick || (this.params.preventClicks && e.preventDefault(), this.params.preventClicksPropagation && this.animating && (e.stopPropagation(), e.stopImmediatePropagation())) }.bind(t); var d = "container" === a.touchEventsTarget ? o : l, p = !! a.nested; if (c.touch || !c.pointerEvents && !c.prefixedPointerEvents) { if (c.touch) { var h = !("touchstart" !== s.start || !c.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 }; d.addEventListener(s.start, t.onTouchStart, h), d.addEventListener(s.move, t.onTouchMove, c.passiveListener ? { passive: !1, capture: p } : p), d.addEventListener(s.end, t.onTouchEnd, h) }(a.simulateTouch && !T.ios && !T.android || a.simulateTouch && !c.touch && T.ios) && (d.addEventListener("mousedown", t.onTouchStart, !1), i.addEventListener("mousemove", t.onTouchMove, p), i.addEventListener("mouseup", t.onTouchEnd, !1)) } else d.addEventListener(s.start, t.onTouchStart, !1), i.addEventListener(s.move, t.onTouchMove, p), i.addEventListener(s.end, t.onTouchEnd, !1); (a.preventClicks || a.preventClicksPropagation) && d.addEventListener("click", t.onClick, !0), t.on(T.ios || T.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", n, !0) }, detachEvents: function() { var e = this, t = e.params, r = e.touchEvents, a = e.el, s = e.wrapperEl, o = "container" === t.touchEventsTarget ? a : s, l = !! t.nested; if (c.touch || !c.pointerEvents && !c.prefixedPointerEvents) { if (c.touch) { var d = !("onTouchStart" !== r.start || !c.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 }; o.removeEventListener(r.start, e.onTouchStart, d), o.removeEventListener(r.move, e.onTouchMove, l), o.removeEventListener(r.end, e.onTouchEnd, d) }(t.simulateTouch && !T.ios && !T.android || t.simulateTouch && !c.touch && T.ios) && (o.removeEventListener("mousedown", e.onTouchStart, !1), i.removeEventListener("mousemove", e.onTouchMove, l), i.removeEventListener("mouseup", e.onTouchEnd, !1)) } else o.removeEventListener(r.start, e.onTouchStart, !1), i.removeEventListener(r.move, e.onTouchMove, l), i.removeEventListener(r.end, e.onTouchEnd, !1); (t.preventClicks || t.preventClicksPropagation) && o.removeEventListener("click", e.onClick, !0), e.off(T.ios || T.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", n) } }, C = { setBreakpoint: function() { var e = this, t = e.activeIndex, n = e.initialized, i = e.loopedSlides; void 0 === i && (i = 0); var r = e.params, a = r.breakpoints; if (a && (!a || 0 !== Object.keys(a).length)) { var s = e.getBreakpoint(a); if (s && e.currentBreakpoint !== s) { var o = s in a ? a[s] : e.originalParams, l = r.loop && o.slidesPerView !== r.slidesPerView; u.extend(e.params, o), u.extend(e, { allowTouchMove: e.params.allowTouchMove, allowSlideNext: e.params.allowSlideNext, allowSlidePrev: e.params.allowSlidePrev }), e.currentBreakpoint = s, l && n && (e.loopDestroy(), e.loopCreate(), e.updateSlides(), e.slideTo(t - i + e.loopedSlides, 0, !1)), e.emit("breakpoint", o) } } }, getBreakpoint: function(e) { if (e) { var t = !1, n = []; Object.keys(e).forEach(function(e) { n.push(e) }), n.sort(function(e, t) { return parseInt(e, 10) - parseInt(t, 10) }); for (var i = 0; i < n.length; i += 1) { var a = n[i]; this.params.breakpointsInverse ? a <= r.innerWidth && (t = a) : a >= r.innerWidth && !t && (t = a) } return t || "max" } } }, S = { isIE: !! r.navigator.userAgent.match(/Trident/g) || !! r.navigator.userAgent.match(/MSIE/g), isEdge: !! r.navigator.userAgent.match(/Edge/g), isSafari: (f = r.navigator.userAgent.toLowerCase(), 0 <= f.indexOf("safari") && f.indexOf("chrome") < 0 && f.indexOf("android") < 0), isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(r.navigator.userAgent) }, k = { init: !0, direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, preventInteractionOnTransition: !1, edgeSwipeDetection: !1, edgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", breakpoints: void 0, breakpointsInverse: !1, spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: "column", slidesPerGroup: 1, centeredSlides: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, normalizeSlideIndex: !0, centerInsufficientSlides: !1, watchOverflow: !1, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, allowTouchMove: !0, threshold: 0, touchMoveStopPropagation: !0, touchStartPreventDefault: !0, touchReleaseOnEdges: !1, uniqueNavElements: !0, resistance: !0, resistanceRatio: .85, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, loopFillGroupWithBlank: !1, allowSlidePrev: !0, allowSlideNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", noSwipingSelector: null, passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideBlankClass: "swiper-slide-invisible-blank", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", runCallbacksOnInit: !0 }, M = { update: v, translate: m, transition: g, slide: y, loop: b, grabCursor: x, manipulation: w, events: E, breakpoints: C, checkOverflow: { checkOverflow: function() { var e = this, t = e.isLocked; e.isLocked = 1 === e.snapGrid.length, e.allowSlideNext = !e.isLocked, e.allowSlidePrev = !e.isLocked, t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"), t && t !== e.isLocked && (e.isEnd = !1, e.navigation.update()) } }, classes: { addClasses: function() { var e = this.classNames, t = this.params, n = this.rtl, i = this.$el, r = []; r.push(t.direction), t.freeMode && r.push("free-mode"), c.flexbox || r.push("no-flexbox"), t.autoHeight && r.push("autoheight"), n && r.push("rtl"), 1 < t.slidesPerColumn && r.push("multirow"), T.android && r.push("android"), T.ios && r.push("ios"), (S.isIE || S.isEdge) && (c.pointerEvents || c.prefixedPointerEvents) && r.push("wp8-" + t.direction), r.forEach(function(n) { e.push(t.containerModifierClass + n) }), i.addClass(e.join(" ")) }, removeClasses: function() { var e = this.$el, t = this.classNames; e.removeClass(t.join(" ")) } }, images: { loadImage: function(e, t, n, i, a, s) { function o() { s && s() } var l; e.complete && a ? o() : t ? ((l = new r.Image).onload = o, l.onerror = o, i && (l.sizes = i), n && (l.srcset = n), t && (l.src = t)) : o() }, preloadImages: function() { function e() { null != t && t && !t.destroyed && (void 0 !== t.imagesLoaded && (t.imagesLoaded += 1), t.imagesLoaded === t.imagesToLoad.length && (t.params.updateOnImagesReady && t.update(), t.emit("imagesReady"))) } var t = this; t.imagesToLoad = t.$el.find("img"); for (var n = 0; n < t.imagesToLoad.length; n += 1) { var i = t.imagesToLoad[n]; t.loadImage(i, i.currentSrc || i.getAttribute("src"), i.srcset || i.getAttribute("srcset"), i.sizes || i.getAttribute("sizes"), !0, e) } } } }, $ = {}, P = function(t) { function n() { for (var i, r, a, s = [], o = arguments.length; o--;) s[o] = arguments[o]; 1 === s.length && s[0].constructor && s[0].constructor === Object ? a = s[0] : (r = (i = s)[0], a = i[1]), a || (a = {}), a = u.extend({}, a), r && !a.el && (a.el = r), t.call(this, a), Object.keys(M).forEach(function(e) { Object.keys(M[e]).forEach(function(t) { n.prototype[t] || (n.prototype[t] = M[e][t]) }) }); var l = this; void 0 === l.modules && (l.modules = {}), Object.keys(l.modules).forEach(function(e) { var t = l.modules[e]; if (t.params) { var n = Object.keys(t.params)[0], i = t.params[n]; if ("object" != typeof i || null === i) return; if (!(n in a && "enabled" in i)) return; !0 === a[n] && (a[n] = { enabled: !0 }), "object" != typeof a[n] || "enabled" in a[n] || (a[n].enabled = !0), a[n] || (a[n] = { enabled: !1 }) } }); var d = u.extend({}, k); l.useModulesParams(d), l.params = u.extend({}, d, $, a), l.originalParams = u.extend({}, l.params), l.passedParams = u.extend({}, a); var p = (l.$ = e)(l.params.el); if (r = p[0]) { if (1 < p.length) { var h = []; return p.each(function(e, t) { var i = u.extend({}, a, { el: t }); h.push(new n(i)) }), h } r.swiper = l, p.data("swiper", l); var f, v, m = p.children("." + l.params.wrapperClass); return u.extend(l, { $el: p, el: r, $wrapperEl: m, wrapperEl: m[0], classNames: [], slides: e(), slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: function() { return "horizontal" === l.params.direction }, isVertical: function() { return "vertical" === l.params.direction }, rtl: "rtl" === r.dir.toLowerCase() || "rtl" === p.css("direction"), rtlTranslate: "horizontal" === l.params.direction && ("rtl" === r.dir.toLowerCase() || "rtl" === p.css("direction")), wrongRTL: "-webkit-box" === m.css("display"), activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, allowSlideNext: l.params.allowSlideNext, allowSlidePrev: l.params.allowSlidePrev, touchEvents: (f = ["touchstart", "touchmove", "touchend"], v = ["mousedown", "mousemove", "mouseup"], c.pointerEvents ? v = ["pointerdown", "pointermove", "pointerup"] : c.prefixedPointerEvents && (v = ["MSPointerDown", "MSPointerMove", "MSPointerUp"]), l.touchEventsTouch = { start: f[0], move: f[1], end: f[2] }, l.touchEventsDesktop = { start: v[0], move: v[1], end: v[2] }, c.touch || !l.params.simulateTouch ? l.touchEventsTouch : l.touchEventsDesktop), touchEventsData: { isTouched: void 0, isMoved: void 0, allowTouchCallbacks: void 0, touchStartTime: void 0, isScrolling: void 0, currentTranslate: void 0, startTranslate: void 0, allowThresholdMove: void 0, formElements: "input, select, option, textarea, button, video", lastClickTime: u.now(), clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, isTouchEvent: void 0, startMoving: void 0 }, allowClick: !0, allowTouchMove: l.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, imagesToLoad: [], imagesLoaded: 0 }), l.useModules(), l.params.init && l.init(), l } } t && (n.__proto__ = t); var i = { extendedDefaults: { configurable: !0 }, defaults: { configurable: !0 }, Class: { configurable: !0 }, $: { configurable: !0 } }; return ((n.prototype = Object.create(t && t.prototype)).constructor = n).prototype.slidesPerViewDynamic = function() { var e = this, t = e.params, n = e.slides, i = e.slidesGrid, r = e.size, a = e.activeIndex, s = 1; if (t.centeredSlides) { for (var o, l = n[a].swiperSlideSize, d = a + 1; d < n.length; d += 1) n[d] && !o && (s += 1, r < (l += n[d].swiperSlideSize) && (o = !0)); for (var u = a - 1; 0 <= u; u -= 1) n[u] && !o && (s += 1, r < (l += n[u].swiperSlideSize) && (o = !0)) } else for (var c = a + 1; c < n.length; c += 1) i[c] - i[a] < r && (s += 1); return s }, n.prototype.update = function() { function e() { var e = t.rtlTranslate ? -1 * t.translate : t.translate, n = Math.min(Math.max(e, t.maxTranslate()), t.minTranslate()); t.setTranslate(n), t.updateActiveIndex(), t.updateSlidesClasses() } var t = this; if (t && !t.destroyed) { var n = t.snapGrid, i = t.params; i.breakpoints && t.setBreakpoint(), t.updateSize(), t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.params.freeMode ? (e(), t.params.autoHeight && t.updateAutoHeight()) : (("auto" === t.params.slidesPerView || 1 < t.params.slidesPerView) && t.isEnd && !t.params.centeredSlides ? t.slideTo(t.slides.length - 1, 0, !1, !0) : t.slideTo(t.activeIndex, 0, !1, !0)) || e(), i.watchOverflow && n !== t.snapGrid && t.checkOverflow(), t.emit("update") } }, n.prototype.init = function() { var e = this; e.initialized || (e.emit("beforeInit"), e.params.breakpoints && e.setBreakpoint(), e.addClasses(), e.params.loop && e.loopCreate(), e.updateSize(), e.updateSlides(), e.params.watchOverflow && e.checkOverflow(), e.params.grabCursor && e.setGrabCursor(), e.params.preloadImages && e.preloadImages(), e.params.loop ? e.slideTo(e.params.initialSlide + e.loopedSlides, 0, e.params.runCallbacksOnInit) : e.slideTo(e.params.initialSlide, 0, e.params.runCallbacksOnInit), e.attachEvents(), e.initialized = !0, e.emit("init")) }, n.prototype.destroy = function(e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0); var n = this, i = n.params, r = n.$el, a = n.$wrapperEl, s = n.slides; return void 0 === n.params || n.destroyed || (n.emit("beforeDestroy"), n.initialized = !1, n.detachEvents(), i.loop && n.loopDestroy(), t && (n.removeClasses(), r.removeAttr("style"), a.removeAttr("style"), s && s.length && s.removeClass([i.slideVisibleClass, i.slideActiveClass, i.slideNextClass, i.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row")), n.emit("destroy"), Object.keys(n.eventsListeners).forEach(function(e) { n.off(e) }), !1 !== e && (n.$el[0].swiper = null, n.$el.data("swiper", null), u.deleteProps(n)), n.destroyed = !0), null }, n.extendDefaults = function(e) { u.extend($, e) }, i.extendedDefaults.get = function() { return $ }, i.defaults.get = function() { return k }, i.Class.get = function() { return t }, i.$.get = function() { return e }, Object.defineProperties(n, i), n }(p), L = { name: "device", proto: { device: T }, static: { device: T } }, D = { name: "support", proto: { support: c }, static: { support: c } }, z = { name: "browser", proto: { browser: S }, static: { browser: S } }, N = { name: "resize", create: function() { var e = this; u.extend(e, { resize: { resizeHandler: function() { e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e.emit("resize")) }, orientationChangeHandler: function() { e && !e.destroyed && e.initialized && e.emit("orientationchange") } } }) }, on: { init: function() { r.addEventListener("resize", this.resize.resizeHandler), r.addEventListener("orientationchange", this.resize.orientationChangeHandler) }, destroy: function() { r.removeEventListener("resize", this.resize.resizeHandler), r.removeEventListener("orientationchange", this.resize.orientationChangeHandler) } } }, I = { func: r.MutationObserver || r.WebkitMutationObserver, attach: function(e, t) { void 0 === t && (t = {}); var n = this, i = new I.func(function(e) { if (1 !== e.length) { var t = function() { n.emit("observerUpdate", e[0]) }; r.requestAnimationFrame ? r.requestAnimationFrame(t) : r.setTimeout(t, 0) } else n.emit("observerUpdate", e[0]) }); i.observe(e, { attributes: void 0 === t.attributes || t.attributes, childList: void 0 === t.childList || t.childList, characterData: void 0 === t.characterData || t.characterData }), n.observer.observers.push(i) }, init: function() { var e = this; if (c.observer && e.params.observer) { if (e.params.observeParents) for (var t = e.$el.parents(), n = 0; n < t.length; n += 1) e.observer.attach(t[n]); e.observer.attach(e.$el[0], { childList: !1 }), e.observer.attach(e.$wrapperEl[0], { attributes: !1 }) } }, destroy: function() { this.observer.observers.forEach(function(e) { e.disconnect() }), this.observer.observers = [] } }, A = { name: "observer", params: { observer: !1, observeParents: !1 }, create: function() { u.extend(this, { observer: { init: I.init.bind(this), attach: I.attach.bind(this), destroy: I.destroy.bind(this), observers: [] } }) }, on: { init: function() { this.observer.init() }, destroy: function() { this.observer.destroy() } } }, O = { update: function(e) { function t() { n.updateSlides(), n.updateProgress(), n.updateSlidesClasses(), n.lazy && n.params.lazy.enabled && n.lazy.load() } var n = this, i = n.params, r = i.slidesPerView, a = i.slidesPerGroup, s = i.centeredSlides, o = n.params.virtual, l = o.addSlidesBefore, d = o.addSlidesAfter, c = n.virtual, p = c.from, h = c.to, f = c.slides, v = c.slidesGrid, m = c.renderSlide, g = c.offset; n.updateActiveIndex(); var y, b, x, w = n.activeIndex || 0; y = n.rtlTranslate ? "right" : n.isHorizontal() ? "left" : "top", s ? (b = Math.floor(r / 2) + a + l, x = Math.floor(r / 2) + a + d) : (b = r + (a - 1) + l, x = a + d); var T = Math.max((w || 0) - x, 0), E = Math.min((w || 0) + b, f.length - 1), C = (n.slidesGrid[T] || 0) - (n.slidesGrid[0] || 0); if (u.extend(n.virtual, { from: T, to: E, offset: C, slidesGrid: n.slidesGrid }), p === T && h === E && !e) return n.slidesGrid !== v && C !== g && n.slides.css(y, C + "px"), void n.updateProgress(); if (n.params.virtual.renderExternal) return n.params.virtual.renderExternal.call(n, { offset: C, from: T, to: E, slides: function() { for (var e = [], t = T; t <= E; t += 1) e.push(f[t]); return e }() }), void t(); var S = [], k = []; if (e) n.$wrapperEl.find("." + n.params.slideClass).remove(); else for (var M = p; M <= h; M += 1)(M < T || E < M) && n.$wrapperEl.find("." + n.params.slideClass + '[data-swiper-slide-index="' + M + '"]').remove(); for (var $ = 0; $ < f.length; $ += 1) T <= $ && $ <= E && (void 0 === h || e ? k.push($) : (h < $ && k.push($), $ < p && S.push($))); k.forEach(function(e) { n.$wrapperEl.append(m(f[e], e)) }), S.sort(function(e, t) { return e < t }).forEach(function(e) { n.$wrapperEl.prepend(m(f[e], e)) }), n.$wrapperEl.children(".swiper-slide").css(y, C + "px"), t() }, renderSlide: function(t, n) { var i = this, r = i.params.virtual; if (r.cache && i.virtual.cache[n]) return i.virtual.cache[n]; var a = e(r.renderSlide ? r.renderSlide.call(i, t, n) : '<div class="' + i.params.slideClass + '" data-swiper-slide-index="' + n + '">' + t + "</div>"); return a.attr("data-swiper-slide-index") || a.attr("data-swiper-slide-index", n), r.cache && (i.virtual.cache[n] = a), a }, appendSlide: function(e) { this.virtual.slides.push(e), this.virtual.update(!0) }, prependSlide: function(e) { var t = this; if (t.virtual.slides.unshift(e), t.params.virtual.cache) { var n = t.virtual.cache, i = {}; Object.keys(n).forEach(function(e) { i[e + 1] = n[e] }), t.virtual.cache = i } t.virtual.update(!0), t.slideNext(0) } }, H = { name: "virtual", params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, addSlidesBefore: 0, addSlidesAfter: 0 } }, create: function() { var e = this; u.extend(e, { virtual: { update: O.update.bind(e), appendSlide: O.appendSlide.bind(e), prependSlide: O.prependSlide.bind(e), renderSlide: O.renderSlide.bind(e), slides: e.params.virtual.slides, cache: {} } }) }, on: { beforeInit: function() { var e = this; if (e.params.virtual.enabled) { e.classNames.push(e.params.containerModifierClass + "virtual"); var t = { watchSlidesProgress: !0 }; u.extend(e.params, t), u.extend(e.originalParams, t), e.virtual.update() } }, setTranslate: function() { this.params.virtual.enabled && this.virtual.update() } } }, j = { handle: function(e) { var t = this, n = t.rtlTranslate, a = e; a.originalEvent && (a = a.originalEvent); var s = a.keyCode || a.charCode; if (!t.allowSlideNext && (t.isHorizontal() && 39 === s || t.isVertical() && 40 === s)) return !1; if (!t.allowSlidePrev && (t.isHorizontal() && 37 === s || t.isVertical() && 38 === s)) return !1; if (!(a.shiftKey || a.altKey || a.ctrlKey || a.metaKey || i.activeElement && i.activeElement.nodeName && ("input" === i.activeElement.nodeName.toLowerCase() || "textarea" === i.activeElement.nodeName.toLowerCase()))) { if (t.params.keyboard.onlyInViewport && (37 === s || 39 === s || 38 === s || 40 === s)) { var o = !1; if (0 < t.$el.parents("." + t.params.slideClass).length && 0 === t.$el.parents("." + t.params.slideActiveClass).length) return; var l = r.innerWidth, d = r.innerHeight, u = t.$el.offset(); n && (u.left -= t.$el[0].scrollLeft); for (var c = [ [u.left, u.top], [u.left + t.width, u.top], [u.left, u.top + t.height], [u.left + t.width, u.top + t.height] ], p = 0; p < c.length; p += 1) { var h = c[p]; 0 <= h[0] && h[0] <= l && 0 <= h[1] && h[1] <= d && (o = !0) } if (!o) return } t.isHorizontal() ? (37 !== s && 39 !== s || (a.preventDefault ? a.preventDefault() : a.returnValue = !1), (39 === s && !n || 37 === s && n) && t.slideNext(), (37 === s && !n || 39 === s && n) && t.slidePrev()) : (38 !== s && 40 !== s || (a.preventDefault ? a.preventDefault() : a.returnValue = !1), 40 === s && t.slideNext(), 38 === s && t.slidePrev()), t.emit("keyPress", s) } }, enable: function() { this.keyboard.enabled || (e(i).on("keydown", this.keyboard.handle), this.keyboard.enabled = !0) }, disable: function() { this.keyboard.enabled && (e(i).off("keydown", this.keyboard.handle), this.keyboard.enabled = !1) } }, B = { name: "keyboard", params: { keyboard: { enabled: !1, onlyInViewport: !0 } }, create: function() { u.extend(this, { keyboard: { enabled: !1, enable: j.enable.bind(this), disable: j.disable.bind(this), handle: j.handle.bind(this) } }) }, on: { init: function() { this.params.keyboard.enabled && this.keyboard.enable() }, destroy: function() { this.keyboard.enabled && this.keyboard.disable() } } }, q = { lastScrollTime: u.now(), event: -1 < r.navigator.userAgent.indexOf("firefox") ? "DOMMouseScroll" : function() { var e = "onwheel", t = e in i; if (!t) { var n = i.createElement("div"); n.setAttribute(e, "return;"), t = "function" == typeof n[e] } return !t && i.implementation && i.implementation.hasFeature && !0 !== i.implementation.hasFeature("", "") && (t = i.implementation.hasFeature("Events.wheel", "3.0")), t }() ? "wheel" : "mousewheel", normalize: function(e) { var t = 0, n = 0, i = 0, r = 0; return "detail" in e && (n = e.detail), "wheelDelta" in e && (n = -e.wheelDelta / 120), "wheelDeltaY" in e && (n = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = n, n = 0), i = 10 * t, r = 10 * n, "deltaY" in e && (r = e.deltaY), "deltaX" in e && (i = e.deltaX), (i || r) && e.deltaMode && (1 === e.deltaMode ? (i *= 40, r *= 40) : (i *= 800, r *= 800)), i && !t && (t = i < 1 ? -1 : 1), r && !n && (n = r < 1 ? -1 : 1), { spinX: t, spinY: n, pixelX: i, pixelY: r } }, handleMouseEnter: function() { this.mouseEntered = !0 }, handleMouseLeave: function() { this.mouseEntered = !1 }, handle: function(e) { var t = e, n = this, i = n.params.mousewheel; if (!n.mouseEntered && !i.releaseOnEdges) return !0; t.originalEvent && (t = t.originalEvent); var a = 0, s = n.rtlTranslate ? -1 : 1, o = q.normalize(t); if (i.forceToAxis) if (n.isHorizontal()) { if (!(Math.abs(o.pixelX) > Math.abs(o.pixelY))) return !0; a = o.pixelX * s } else { if (!(Math.abs(o.pixelY) > Math.abs(o.pixelX))) return !0; a = o.pixelY } else a = Math.abs(o.pixelX) > Math.abs(o.pixelY) ? -o.pixelX * s : -o.pixelY; if (0 === a) return !0; if (i.invert && (a = -a), n.params.freeMode) { n.params.loop && n.loopFix(); var l = n.getTranslate() + a * i.sensitivity, d = n.isBeginning, c = n.isEnd; if (l >= n.minTranslate() && (l = n.minTranslate()), l <= n.maxTranslate() && (l = n.maxTranslate()), n.setTransition(0), n.setTranslate(l), n.updateProgress(), n.updateActiveIndex(), n.updateSlidesClasses(), (!d && n.isBeginning || !c && n.isEnd) && n.updateSlidesClasses(), n.params.freeModeSticky && (clearTimeout(n.mousewheel.timeout), n.mousewheel.timeout = u.nextTick(function() { n.slideToClosest() }, 300)), n.emit("scroll", t), n.params.autoplay && n.params.autoplayDisableOnInteraction && n.autoplay.stop(), l === n.minTranslate() || l === n.maxTranslate()) return !0 } else { if (60 < u.now() - n.mousewheel.lastScrollTime) if (a < 0) if (n.isEnd && !n.params.loop || n.animating) { if (i.releaseOnEdges) return !0 } else n.slideNext(), n.emit("scroll", t); else if (n.isBeginning && !n.params.loop || n.animating) { if (i.releaseOnEdges) return !0 } else n.slidePrev(), n.emit("scroll", t); n.mousewheel.lastScrollTime = (new r.Date).getTime() } return t.preventDefault ? t.preventDefault() : t.returnValue = !1, !1 }, enable: function() { var t = this; if (!q.event) return !1; if (t.mousewheel.enabled) return !1; var n = t.$el; return "container" !== t.params.mousewheel.eventsTarged && (n = e(t.params.mousewheel.eventsTarged)), n.on("mouseenter", t.mousewheel.handleMouseEnter), n.on("mouseleave", t.mousewheel.handleMouseLeave), n.on(q.event, t.mousewheel.handle), t.mousewheel.enabled = !0 }, disable: function() { var t = this; if (!q.event) return !1; if (!t.mousewheel.enabled) return !1; var n = t.$el; return "container" !== t.params.mousewheel.eventsTarged && (n = e(t.params.mousewheel.eventsTarged)), n.off(q.event, t.mousewheel.handle), !(t.mousewheel.enabled = !1) } }, F = { update: function() { var e = this, t = e.params.navigation; if (!e.params.loop) { var n = e.navigation, i = n.$nextEl, r = n.$prevEl; r && 0 < r.length && (e.isBeginning ? r.addClass(t.disabledClass) : r.removeClass(t.disabledClass), r[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass)), i && 0 < i.length && (e.isEnd ? i.addClass(t.disabledClass) : i.removeClass(t.disabledClass), i[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass)) } }, init: function() { var t, n, i = this, r = i.params.navigation; (r.nextEl || r.prevEl) && (r.nextEl && (t = e(r.nextEl), i.params.uniqueNavElements && "string" == typeof r.nextEl && 1 < t.length && 1 === i.$el.find(r.nextEl).length && (t = i.$el.find(r.nextEl))), r.prevEl && (n = e(r.prevEl), i.params.uniqueNavElements && "string" == typeof r.prevEl && 1 < n.length && 1 === i.$el.find(r.prevEl).length && (n = i.$el.find(r.prevEl))), t && 0 < t.length && t.on("click", function(e) { e.preventDefault(), i.isEnd && !i.params.loop || i.slideNext() }), n && 0 < n.length && n.on("click", function(e) { e.preventDefault(), i.isBeginning && !i.params.loop || i.slidePrev() }), u.extend(i.navigation, { $nextEl: t, nextEl: t && t[0], $prevEl: n, prevEl: n && n[0] })) }, destroy: function() { var e = this.navigation, t = e.$nextEl, n = e.$prevEl; t && t.length && (t.off("click"), t.removeClass(this.params.navigation.disabledClass)), n && n.length && (n.off("click"), n.removeClass(this.params.navigation.disabledClass)) } }, R = { update: function() { var t = this, n = t.rtl, i = t.params.pagination; if (i.el && t.pagination.el && t.pagination.$el && 0 !== t.pagination.$el.length) { var r, a = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length, s = t.pagination.$el, o = t.params.loop ? Math.ceil((a - 2 * t.loopedSlides) / t.params.slidesPerGroup) : t.snapGrid.length; if (t.params.loop ? ((r = Math.ceil((t.activeIndex - t.loopedSlides) / t.params.slidesPerGroup)) > a - 1 - 2 * t.loopedSlides && (r -= a - 2 * t.loopedSlides), o - 1 < r && (r -= o), r < 0 && "bullets" !== t.params.paginationType && (r = o + r)) : r = void 0 !== t.snapIndex ? t.snapIndex : t.activeIndex || 0, "bullets" === i.type && t.pagination.bullets && 0 < t.pagination.bullets.length) { var l, d, u, c = t.pagination.bullets; if (i.dynamicBullets && (t.pagination.bulletSize = c.eq(0)[t.isHorizontal() ? "outerWidth" : "outerHeight"](!0), s.css(t.isHorizontal() ? "width" : "height", t.pagination.bulletSize * (i.dynamicMainBullets + 4) + "px"), 1 < i.dynamicMainBullets && void 0 !== t.previousIndex && (t.pagination.dynamicBulletIndex += r - t.previousIndex, t.pagination.dynamicBulletIndex > i.dynamicMainBullets - 1 ? t.pagination.dynamicBulletIndex = i.dynamicMainBullets - 1 : t.pagination.dynamicBulletIndex < 0 && (t.pagination.dynamicBulletIndex = 0)), l = r - t.pagination.dynamicBulletIndex, u = ((d = l + (Math.min(c.length, i.dynamicMainBullets) - 1)) + l) / 2), c.removeClass(i.bulletActiveClass + " " + i.bulletActiveClass + "-next " + i.bulletActiveClass + "-next-next " + i.bulletActiveClass + "-prev " + i.bulletActiveClass + "-prev-prev " + i.bulletActiveClass + "-main"), 1 < s.length) c.each(function(t, n) { var a = e(n), s = a.index(); s === r && a.addClass(i.bulletActiveClass), i.dynamicBullets && (l <= s && s <= d && a.addClass(i.bulletActiveClass + "-main"), s === l && a.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), s === d && a.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next")) }); else if (c.eq(r).addClass(i.bulletActiveClass), i.dynamicBullets) { for (var p = c.eq(l), h = c.eq(d), f = l; f <= d; f += 1) c.eq(f).addClass(i.bulletActiveClass + "-main"); p.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), h.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next") } if (i.dynamicBullets) { var v = Math.min(c.length, i.dynamicMainBullets + 4), m = (t.pagination.bulletSize * v - t.pagination.bulletSize) / 2 - u * t.pagination.bulletSize, g = n ? "right" : "left"; c.css(t.isHorizontal() ? g : "top", m + "px") } } if ("fraction" === i.type && (s.find("." + i.currentClass).text(i.formatFractionCurrent(r + 1)), s.find("." + i.totalClass).text(i.formatFractionTotal(o))), "progressbar" === i.type) { var y; y = i.progressbarOpposite ? t.isHorizontal() ? "vertical" : "horizontal" : t.isHorizontal() ? "horizontal" : "vertical"; var b = (r + 1) / o, x = 1, w = 1; "horizontal" === y ? x = b : w = b, s.find("." + i.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + x + ") scaleY(" + w + ")").transition(t.params.speed) } "custom" === i.type && i.renderCustom ? (s.html(i.renderCustom(t, r + 1, o)), t.emit("paginationRender", t, s[0])) : t.emit("paginationUpdate", t, s[0]), s[t.params.watchOverflow && t.isLocked ? "addClass" : "removeClass"](i.lockClass) } }, render: function() { var e = this, t = e.params.pagination; if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) { var n = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, i = e.pagination.$el, r = ""; if ("bullets" === t.type) { for (var a = e.params.loop ? Math.ceil((n - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length, s = 0; s < a; s += 1) t.renderBullet ? r += t.renderBullet.call(e, s, t.bulletClass) : r += "<" + t.bulletElement + ' class="' + t.bulletClass + '"></' + t.bulletElement + ">"; i.html(r), e.pagination.bullets = i.find("." + t.bulletClass) } "fraction" === t.type && (r = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : '<span class="' + t.currentClass + '"></span> / <span class="' + t.totalClass + '"></span>', i.html(r)), "progressbar" === t.type && (r = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : '<span class="' + t.progressbarFillClass + '"></span>', i.html(r)), "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0]) } }, init: function() { var t = this, n = t.params.pagination; if (n.el) { var i = e(n.el); 0 !== i.length && (t.params.uniqueNavElements && "string" == typeof n.el && 1 < i.length && 1 === t.$el.find(n.el).length && (i = t.$el.find(n.el)), "bullets" === n.type && n.clickable && i.addClass(n.clickableClass), i.addClass(n.modifierClass + n.type), "bullets" === n.type && n.dynamicBullets && (i.addClass("" + n.modifierClass + n.type + "-dynamic"), t.pagination.dynamicBulletIndex = 0, n.dynamicMainBullets < 1 && (n.dynamicMainBullets = 1)), "progressbar" === n.type && n.progressbarOpposite && i.addClass(n.progressbarOppositeClass), n.clickable && i.on("click", "." + n.bulletClass, function(n) { n.preventDefault(); var i = e(this).index() * t.params.slidesPerGroup; t.params.loop && (i += t.loopedSlides), t.slideTo(i) }), u.extend(t.pagination, { $el: i, el: i[0] })) } }, destroy: function() { var e = this, t = e.params.pagination; if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) { var n = e.pagination.$el; n.removeClass(t.hiddenClass), n.removeClass(t.modifierClass + t.type), e.pagination.bullets && e.pagination.bullets.removeClass(t.bulletActiveClass), t.clickable && n.off("click", "." + t.bulletClass) } } }, X = { setTranslate: function() { var e = this; if (e.params.scrollbar.el && e.scrollbar.el) { var t = e.scrollbar, n = e.rtlTranslate, i = e.progress, r = t.dragSize, a = t.trackSize, s = t.$dragEl, o = t.$el, l = e.params.scrollbar, d = r, u = (a - r) * i; n ? 0 < (u = -u) ? (d = r - u, u = 0) : a < -u + r && (d = a + u) : u < 0 ? (d = r + u, u = 0) : a < u + r && (d = a - u), e.isHorizontal() ? (c.transforms3d ? s.transform("translate3d(" + u + "px, 0, 0)") : s.transform("translateX(" + u + "px)"), s[0].style.width = d + "px") : (c.transforms3d ? s.transform("translate3d(0px, " + u + "px, 0)") : s.transform("translateY(" + u + "px)"), s[0].style.height = d + "px"), l.hide && (clearTimeout(e.scrollbar.timeout), o[0].style.opacity = 1, e.scrollbar.timeout = setTimeout(function() { o[0].style.opacity = 0, o.transition(400) }, 1e3)) } }, setTransition: function(e) { this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e) }, updateSize: function() { var e = this; if (e.params.scrollbar.el && e.scrollbar.el) { var t = e.scrollbar, n = t.$dragEl, i = t.$el; n[0].style.width = "", n[0].style.height = ""; var r, a = e.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight, s = e.size / e.virtualSize, o = s * (a / e.size); r = "auto" === e.params.scrollbar.dragSize ? a * s : parseInt(e.params.scrollbar.dragSize, 10), e.isHorizontal() ? n[0].style.width = r + "px" : n[0].style.height = r + "px", i[0].style.display = 1 <= s ? "none" : "", e.params.scrollbarHide && (i[0].style.opacity = 0), u.extend(t, { trackSize: a, divider: s, moveDivider: o, dragSize: r }), t.$el[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](e.params.scrollbar.lockClass) } }, setDragPosition: function(e) { var t, n = this, i = n.scrollbar, r = n.rtlTranslate, a = i.$el, s = i.dragSize, o = i.trackSize; t = ((n.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY) - a.offset()[n.isHorizontal() ? "left" : "top"] - s / 2) / (o - s), t = Math.max(Math.min(t, 1), 0), r && (t = 1 - t); var l = n.minTranslate() + (n.maxTranslate() - n.minTranslate()) * t; n.updateProgress(l), n.setTranslate(l), n.updateActiveIndex(), n.updateSlidesClasses() }, onDragStart: function(e) { var t = this, n = t.params.scrollbar, i = t.scrollbar, r = t.$wrapperEl, a = i.$el, s = i.$dragEl; t.scrollbar.isTouched = !0, e.preventDefault(), e.stopPropagation(), r.transition(100), s.transition(100), i.setDragPosition(e), clearTimeout(t.scrollbar.dragTimeout), a.transition(0), n.hide && a.css("opacity", 1), t.emit("scrollbarDragStart", e) }, onDragMove: function(e) { var t = this.scrollbar, n = this.$wrapperEl, i = t.$el, r = t.$dragEl; this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, t.setDragPosition(e), n.transition(0), i.transition(0), r.transition(0), this.emit("scrollbarDragMove", e)) }, onDragEnd: function(e) { var t = this, n = t.params.scrollbar, i = t.scrollbar.$el; t.scrollbar.isTouched && (t.scrollbar.isTouched = !1, n.hide && (clearTimeout(t.scrollbar.dragTimeout), t.scrollbar.dragTimeout = u.nextTick(function() { i.css("opacity", 0), i.transition(400) }, 1e3)), t.emit("scrollbarDragEnd", e), n.snapOnRelease && t.slideToClosest()) }, enableDraggable: function() { var e = this; if (e.params.scrollbar.el) { var t = e.scrollbar, n = e.touchEvents, r = e.touchEventsDesktop, a = e.params, s = t.$el[0], o = !(!c.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 }, l = !(!c.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 }; c.touch || !c.pointerEvents && !c.prefixedPointerEvents ? (c.touch && (s.addEventListener(n.start, e.scrollbar.onDragStart, o), s.addEventListener(n.move, e.scrollbar.onDragMove, o), s.addEventListener(n.end, e.scrollbar.onDragEnd, l)), (a.simulateTouch && !T.ios && !T.android || a.simulateTouch && !c.touch && T.ios) && (s.addEventListener("mousedown", e.scrollbar.onDragStart, o), i.addEventListener("mousemove", e.scrollbar.onDragMove, o), i.addEventListener("mouseup", e.scrollbar.onDragEnd, l))) : (s.addEventListener(r.start, e.scrollbar.onDragStart, o), i.addEventListener(r.move, e.scrollbar.onDragMove, o), i.addEventListener(r.end, e.scrollbar.onDragEnd, l)) } }, disableDraggable: function() { var e = this; if (e.params.scrollbar.el) { var t = e.scrollbar, n = e.touchEvents, r = e.touchEventsDesktop, a = e.params, s = t.$el[0], o = !(!c.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 }, l = !(!c.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 }; c.touch || !c.pointerEvents && !c.prefixedPointerEvents ? (c.touch && (s.removeEventListener(n.start, e.scrollbar.onDragStart, o), s.removeEventListener(n.move, e.scrollbar.onDragMove, o), s.removeEventListener(n.end, e.scrollbar.onDragEnd, l)), (a.simulateTouch && !T.ios && !T.android || a.simulateTouch && !c.touch && T.ios) && (s.removeEventListener("mousedown", e.scrollbar.onDragStart, o), i.removeEventListener("mousemove", e.scrollbar.onDragMove, o), i.removeEventListener("mouseup", e.scrollbar.onDragEnd, l))) : (s.removeEventListener(r.start, e.scrollbar.onDragStart, o), i.removeEventListener(r.move, e.scrollbar.onDragMove, o), i.removeEventListener(r.end, e.scrollbar.onDragEnd, l)) } }, init: function() { var t = this; if (t.params.scrollbar.el) { var n = t.scrollbar, i = t.$el, r = t.params.scrollbar, a = e(r.el); t.params.uniqueNavElements && "string" == typeof r.el && 1 < a.length && 1 === i.find(r.el).length && (a = i.find(r.el)); var s = a.find("." + t.params.scrollbar.dragClass); 0 === s.length && (s = e('<div class="' + t.params.scrollbar.dragClass + '"></div>'), a.append(s)), u.extend(n, { $el: a, el: a[0], $dragEl: s, dragEl: s[0] }), r.draggable && n.enableDraggable() } }, destroy: function() { this.scrollbar.disableDraggable() } }, W = { setTransform: function(t, n) { var i = this.rtl, r = e(t), a = i ? -1 : 1, s = r.attr("data-swiper-parallax") || "0", o = r.attr("data-swiper-parallax-x"), l = r.attr("data-swiper-parallax-y"), d = r.attr("data-swiper-parallax-scale"), u = r.attr("data-swiper-parallax-opacity"); if (o || l ? (o = o || "0", l = l || "0") : this.isHorizontal() ? (o = s, l = "0") : (l = s, o = "0"), o = 0 <= o.indexOf("%") ? parseInt(o, 10) * n * a + "%" : o * n * a + "px", l = 0 <= l.indexOf("%") ? parseInt(l, 10) * n + "%" : l * n + "px", null != u) { var c = u - (u - 1) * (1 - Math.abs(n)); r[0].style.opacity = c } if (null == d) r.transform("translate3d(" + o + ", " + l + ", 0px)"); else { var p = d - (d - 1) * (1 - Math.abs(n)); r.transform("translate3d(" + o + ", " + l + ", 0px) scale(" + p + ")") } }, setTranslate: function() { var t = this, n = t.$el, i = t.slides, r = t.progress, a = t.snapGrid; n.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e, n) { t.parallax.setTransform(n, r) }), i.each(function(n, i) { var s = i.progress; 1 < t.params.slidesPerGroup && "auto" !== t.params.slidesPerView && (s += Math.ceil(n / 2) - r * (a.length - 1)), s = Math.min(Math.max(s, -1), 1), e(i).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e, n) { t.parallax.setTransform(n, s) }) }) }, setTransition: function(t) { void 0 === t && (t = this.params.speed), this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(n, i) { var r = e(i), a = parseInt(r.attr("data-swiper-parallax-duration"), 10) || t; 0 === t && (a = 0), r.transition(a) }) } }, G = { getDistanceBetweenTouches: function(e) { if (e.targetTouches.length < 2) return 1; var t = e.targetTouches[0].pageX, n = e.targetTouches[0].pageY, i = e.targetTouches[1].pageX, r = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(i - t, 2) + Math.pow(r - n, 2)) }, onGestureStart: function(t) { var n = this, i = n.params.zoom, r = n.zoom, a = r.gesture; if (r.fakeGestureTouched = !1, r.fakeGestureMoved = !1, !c.gestures) { if ("touchstart" !== t.type || "touchstart" === t.type && t.targetTouches.length < 2) return; r.fakeGestureTouched = !0, a.scaleStart = G.getDistanceBetweenTouches(t) } a.$slideEl && a.$slideEl.length || (a.$slideEl = e(t.target).closest(".swiper-slide"), 0 === a.$slideEl.length && (a.$slideEl = n.slides.eq(n.activeIndex)), a.$imageEl = a.$slideEl.find("img, svg, canvas"), a.$imageWrapEl = a.$imageEl.parent("." + i.containerClass), a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || i.maxRatio, 0 !== a.$imageWrapEl.length) ? (a.$imageEl.transition(0), n.zoom.isScaling = !0) : a.$imageEl = void 0 }, onGestureChange: function(e) { var t = this.params.zoom, n = this.zoom, i = n.gesture; if (!c.gestures) { if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return; n.fakeGestureMoved = !0, i.scaleMove = G.getDistanceBetweenTouches(e) } i.$imageEl && 0 !== i.$imageEl.length && (c.gestures ? this.zoom.scale = e.scale * n.currentScale : n.scale = i.scaleMove / i.scaleStart * n.currentScale, n.scale > i.maxRatio && (n.scale = i.maxRatio - 1 + Math.pow(n.scale - i.maxRatio + 1, .5)), n.scale < t.minRatio && (n.scale = t.minRatio + 1 - Math.pow(t.minRatio - n.scale + 1, .5)), i.$imageEl.transform("translate3d(0,0,0) scale(" + n.scale + ")")) }, onGestureEnd: function(e) { var t = this.params.zoom, n = this.zoom, i = n.gesture; if (!c.gestures) { if (!n.fakeGestureTouched || !n.fakeGestureMoved) return; if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !T.android) return; n.fakeGestureTouched = !1, n.fakeGestureMoved = !1 } i.$imageEl && 0 !== i.$imageEl.length && (n.scale = Math.max(Math.min(n.scale, i.maxRatio), t.minRatio), i.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale(" + n.scale + ")"), n.currentScale = n.scale, n.isScaling = !1, 1 === n.scale && (i.$slideEl = void 0)) }, onTouchStart: function(e) { var t = this.zoom, n = t.gesture, i = t.image; n.$imageEl && 0 !== n.$imageEl.length && (i.isTouched || (T.android && e.preventDefault(), i.isTouched = !0, i.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX, i.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY)) }, onTouchMove: function(e) { var t = this, n = t.zoom, i = n.gesture, r = n.image, a = n.velocity; if (i.$imageEl && 0 !== i.$imageEl.length && (t.allowClick = !1, r.isTouched && i.$slideEl)) { r.isMoved || (r.width = i.$imageEl[0].offsetWidth, r.height = i.$imageEl[0].offsetHeight, r.startX = u.getTranslate(i.$imageWrapEl[0], "x") || 0, r.startY = u.getTranslate(i.$imageWrapEl[0], "y") || 0, i.slideWidth = i.$slideEl[0].offsetWidth, i.slideHeight = i.$slideEl[0].offsetHeight, i.$imageWrapEl.transition(0), t.rtl && (r.startX = -r.startX, r.startY = -r.startY)); var s = r.width * n.scale, o = r.height * n.scale; if (!(s < i.slideWidth && o < i.slideHeight)) { if (r.minX = Math.min(i.slideWidth / 2 - s / 2, 0), r.maxX = -r.minX, r.minY = Math.min(i.slideHeight / 2 - o / 2, 0), r.maxY = -r.minY, r.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, r.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !r.isMoved && !n.isScaling) { if (t.isHorizontal() && (Math.floor(r.minX) === Math.floor(r.startX) && r.touchesCurrent.x < r.touchesStart.x || Math.floor(r.maxX) === Math.floor(r.startX) && r.touchesCurrent.x > r.touchesStart.x)) return void(r.isTouched = !1); if (!t.isHorizontal() && (Math.floor(r.minY) === Math.floor(r.startY) && r.touchesCurrent.y < r.touchesStart.y || Math.floor(r.maxY) === Math.floor(r.startY) && r.touchesCurrent.y > r.touchesStart.y)) return void(r.isTouched = !1) } e.preventDefault(), e.stopPropagation(), r.isMoved = !0, r.currentX = r.touchesCurrent.x - r.touchesStart.x + r.startX, r.currentY = r.touchesCurrent.y - r.touchesStart.y + r.startY, r.currentX < r.minX && (r.currentX = r.minX + 1 - Math.pow(r.minX - r.currentX + 1, .8)), r.currentX > r.maxX && (r.currentX = r.maxX - 1 + Math.pow(r.currentX - r.maxX + 1, .8)), r.currentY < r.minY && (r.currentY = r.minY + 1 - Math.pow(r.minY - r.currentY + 1, .8)), r.currentY > r.maxY && (r.currentY = r.maxY - 1 + Math.pow(r.currentY - r.maxY + 1, .8)), a.prevPositionX || (a.prevPositionX = r.touchesCurrent.x), a.prevPositionY || (a.prevPositionY = r.touchesCurrent.y), a.prevTime || (a.prevTime = Date.now()), a.x = (r.touchesCurrent.x - a.prevPositionX) / (Date.now() - a.prevTime) / 2, a.y = (r.touchesCurrent.y - a.prevPositionY) / (Date.now() - a.prevTime) / 2, Math.abs(r.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0), Math.abs(r.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0), a.prevPositionX = r.touchesCurrent.x, a.prevPositionY = r.touchesCurrent.y, a.prevTime = Date.now(), i.$imageWrapEl.transform("translate3d(" + r.currentX + "px, " + r.currentY + "px,0)") } } }, onTouchEnd: function() { var e = this.zoom, t = e.gesture, n = e.image, i = e.velocity; if (t.$imageEl && 0 !== t.$imageEl.length) { if (!n.isTouched || !n.isMoved) return n.isTouched = !1, void(n.isMoved = !1); n.isTouched = !1, n.isMoved = !1; var r = 300, a = 300, s = i.x * r, o = n.currentX + s, l = i.y * a, d = n.currentY + l; 0 !== i.x && (r = Math.abs((o - n.currentX) / i.x)), 0 !== i.y && (a = Math.abs((d - n.currentY) / i.y)); var u = Math.max(r, a); n.currentX = o, n.currentY = d; var c = n.width * e.scale, p = n.height * e.scale; n.minX = Math.min(t.slideWidth / 2 - c / 2, 0), n.maxX = -n.minX, n.minY = Math.min(t.slideHeight / 2 - p / 2, 0), n.maxY = -n.minY, n.currentX = Math.max(Math.min(n.currentX, n.maxX), n.minX), n.currentY = Math.max(Math.min(n.currentY, n.maxY), n.minY), t.$imageWrapEl.transition(u).transform("translate3d(" + n.currentX + "px, " + n.currentY + "px,0)") } }, onTransitionEnd: function() { var e = this.zoom, t = e.gesture; t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"), t.$slideEl = void 0, t.$imageEl = void 0, t.$imageWrapEl = void 0, e.scale = 1, e.currentScale = 1) }, toggle: function(e) { var t = this.zoom; t.scale && 1 !== t.scale ? t.out() : t. in (e) }, in : function(t) { var n, i, r, a, s, o, l, d, u, c, p, h, f, v, m, g, y = this, b = y.zoom, x = y.params.zoom, w = b.gesture, T = b.image; w.$slideEl || (w.$slideEl = y.clickedSlide ? e(y.clickedSlide) : y.slides.eq(y.activeIndex), w.$imageEl = w.$slideEl.find("img, svg, canvas"), w.$imageWrapEl = w.$imageEl.parent("." + x.containerClass)), w.$imageEl && 0 !== w.$imageEl.length && (w.$slideEl.addClass("" + x.zoomedSlideClass), void 0 === T.touchesStart.x && t ? (n = "touchend" === t.type ? t.changedTouches[0].pageX : t.pageX, i = "touchend" === t.type ? t.changedTouches[0].pageY : t.pageY) : (n = T.touchesStart.x, i = T.touchesStart.y), b.scale = w.$imageWrapEl.attr("data-swiper-zoom") || x.maxRatio, b.currentScale = w.$imageWrapEl.attr("data-swiper-zoom") || x.maxRatio, t ? (m = w.$slideEl[0].offsetWidth, g = w.$slideEl[0].offsetHeight, r = w.$slideEl.offset().left + m / 2 - n, a = w.$slideEl.offset().top + g / 2 - i, l = w.$imageEl[0].offsetWidth, d = w.$imageEl[0].offsetHeight, u = l * b.scale, c = d * b.scale, f = -(p = Math.min(m / 2 - u / 2, 0)), v = -(h = Math.min(g / 2 - c / 2, 0)), (s = r * b.scale) < p && (s = p), f < s && (s = f), (o = a * b.scale) < h && (o = h), v < o && (o = v)) : o = s = 0, w.$imageWrapEl.transition(300).transform("translate3d(" + s + "px, " + o + "px,0)"), w.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + b.scale + ")")) }, out: function() { var t = this, n = t.zoom, i = t.params.zoom, r = n.gesture; r.$slideEl || (r.$slideEl = t.clickedSlide ? e(t.clickedSlide) : t.slides.eq(t.activeIndex), r.$imageEl = r.$slideEl.find("img, svg, canvas"), r.$imageWrapEl = r.$imageEl.parent("." + i.containerClass)), r.$imageEl && 0 !== r.$imageEl.length && (n.scale = 1, n.currentScale = 1, r.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), r.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), r.$slideEl.removeClass("" + i.zoomedSlideClass), r.$slideEl = void 0) }, enable: function() { var e = this, t = e.zoom; if (!t.enabled) { t.enabled = !0; var n = !("touchstart" !== e.touchEvents.start || !c.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 }; c.gestures ? (e.$wrapperEl.on("gesturestart", ".swiper-slide", t.onGestureStart, n), e.$wrapperEl.on("gesturechange", ".swiper-slide", t.onGestureChange, n), e.$wrapperEl.on("gestureend", ".swiper-slide", t.onGestureEnd, n)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, ".swiper-slide", t.onGestureStart, n), e.$wrapperEl.on(e.touchEvents.move, ".swiper-slide", t.onGestureChange, n), e.$wrapperEl.on(e.touchEvents.end, ".swiper-slide", t.onGestureEnd, n)), e.$wrapperEl.on(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove) } }, disable: function() { var e = this, t = e.zoom; if (t.enabled) { e.zoom.enabled = !1; var n = !("touchstart" !== e.touchEvents.start || !c.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 }; c.gestures ? (e.$wrapperEl.off("gesturestart", ".swiper-slide", t.onGestureStart, n), e.$wrapperEl.off("gesturechange", ".swiper-slide", t.onGestureChange, n), e.$wrapperEl.off("gestureend", ".swiper-slide", t.onGestureEnd, n)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, ".swiper-slide", t.onGestureStart, n), e.$wrapperEl.off(e.touchEvents.move, ".swiper-slide", t.onGestureChange, n), e.$wrapperEl.off(e.touchEvents.end, ".swiper-slide", t.onGestureEnd, n)), e.$wrapperEl.off(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove) } } }, Y = { loadInSlide: function(t, n) { void 0 === n && (n = !0); var i = this, r = i.params.lazy; if (void 0 !== t && 0 !== i.slides.length) { var a = i.virtual && i.params.virtual.enabled ? i.$wrapperEl.children("." + i.params.slideClass + '[data-swiper-slide-index="' + t + '"]') : i.slides.eq(t), s = a.find("." + r.elementClass + ":not(." + r.loadedClass + "):not(." + r.loadingClass + ")"); !a.hasClass(r.elementClass) || a.hasClass(r.loadedClass) || a.hasClass(r.loadingClass) || (s = s.add(a[0])), 0 !== s.length && s.each(function(t, s) { var o = e(s); o.addClass(r.loadingClass); var l = o.attr("data-background"), d = o.attr("data-src"), u = o.attr("data-srcset"), c = o.attr("data-sizes"); i.loadImage(o[0], d || l, u, c, !1, function() { if (null != i && i && (!i || i.params) && !i.destroyed) { if (l ? (o.css("background-image", 'url("' + l + '")'), o.removeAttr("data-background")) : (u && (o.attr("srcset", u), o.removeAttr("data-srcset")), c && (o.attr("sizes", c), o.removeAttr("data-sizes")), d && (o.attr("src", d), o.removeAttr("data-src"))), o.addClass(r.loadedClass).removeClass(r.loadingClass), a.find("." + r.preloaderClass).remove(), i.params.loop && n) { var e = a.attr("data-swiper-slide-index"); if (a.hasClass(i.params.slideDuplicateClass)) { var t = i.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + i.params.slideDuplicateClass + ")"); i.lazy.loadInSlide(t.index(), !1) } else { var s = i.$wrapperEl.children("." + i.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]'); i.lazy.loadInSlide(s.index(), !1) } } i.emit("lazyImageReady", a[0], o[0]) } }), i.emit("lazyImageLoad", a[0], o[0]) }) } }, load: function() { function t(e) { if (l) { if (r.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return !0 } else if (s[e]) return !0; return !1 } function n(t) { return l ? e(t).attr("data-swiper-slide-index") : e(t).index() } var i = this, r = i.$wrapperEl, a = i.params, s = i.slides, o = i.activeIndex, l = i.virtual && a.virtual.enabled, d = a.lazy, u = a.slidesPerView; if ("auto" === u && (u = 0), i.lazy.initialImageLoaded || (i.lazy.initialImageLoaded = !0), i.params.watchSlidesVisibility) r.children("." + a.slideVisibleClass).each(function(t, n) { var r = l ? e(n).attr("data-swiper-slide-index") : e(n).index(); i.lazy.loadInSlide(r) }); else if (1 < u) for (var c = o; c < o + u; c += 1) t(c) && i.lazy.loadInSlide(c); else i.lazy.loadInSlide(o); if (d.loadPrevNext) if (1 < u || d.loadPrevNextAmount && 1 < d.loadPrevNextAmount) { for (var p = d.loadPrevNextAmount, h = u, f = Math.min(o + h + Math.max(p, h), s.length), v = Math.max(o - Math.max(h, p), 0), m = o + u; m < f; m += 1) t(m) && i.lazy.loadInSlide(m); for (var g = v; g < o; g += 1) t(g) && i.lazy.loadInSlide(g) } else { var y = r.children("." + a.slideNextClass); 0 < y.length && i.lazy.loadInSlide(n(y)); var b = r.children("." + a.slidePrevClass); 0 < b.length && i.lazy.loadInSlide(n(b)) } } }, V = { LinearSpline: function(e, t) { var n, i, r, a, s, o = function(e, t) { for (i = -1, n = e.length; 1 < n - i;) e[r = n + i >> 1] <= t ? i = r : n = r; return n }; return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function(e) { return e ? (s = o(this.x, e), a = s - 1, (e - this.x[a]) * (this.y[s] - this.y[a]) / (this.x[s] - this.x[a]) + this.y[a]) : 0 }, this }, getInterpolateFunction: function(e) { var t = this; t.controller.spline || (t.controller.spline = t.params.loop ? new V.LinearSpline(t.slidesGrid, e.slidesGrid) : new V.LinearSpline(t.snapGrid, e.snapGrid)) }, setTranslate: function(e, t) { function n(e) { var t = a.rtlTranslate ? -a.translate : a.translate; "slide" === a.params.controller.by && (a.controller.getInterpolateFunction(e), r = -a.controller.spline.interpolate(-t)), r && "container" !== a.params.controller.by || (i = (e.maxTranslate() - e.minTranslate()) / (a.maxTranslate() - a.minTranslate()), r = (t - a.minTranslate()) * i + e.minTranslate()), a.params.controller.inverse && (r = e.maxTranslate() - r), e.updateProgress(r), e.setTranslate(r, a), e.updateActiveIndex(), e.updateSlidesClasses() } var i, r, a = this, s = a.controller.control; if (Array.isArray(s)) for (var o = 0; o < s.length; o += 1) s[o] !== t && s[o] instanceof P && n(s[o]); else s instanceof P && t !== s && n(s) }, setTransition: function(e, t) { function n(t) { t.setTransition(e, r), 0 !== e && (t.transitionStart(), t.params.autoHeight && u.nextTick(function() { t.updateAutoHeight() }), t.$wrapperEl.transitionEnd(function() { a && (t.params.loop && "slide" === r.params.controller.by && t.loopFix(), t.transitionEnd()) })) } var i, r = this, a = r.controller.control; if (Array.isArray(a)) for (i = 0; i < a.length; i += 1) a[i] !== t && a[i] instanceof P && n(a[i]); else a instanceof P && t !== a && n(a) } }, _ = { makeElFocusable: function(e) { return e.attr("tabIndex", "0"), e }, addElRole: function(e, t) { return e.attr("role", t), e }, addElLabel: function(e, t) { return e.attr("aria-label", t), e }, disableEl: function(e) { return e.attr("aria-disabled", !0), e }, enableEl: function(e) { return e.attr("aria-disabled", !1), e }, onEnterKey: function(t) { var n = this, i = n.params.a11y; if (13 === t.keyCode) { var r = e(t.target); n.navigation && n.navigation.$nextEl && r.is(n.navigation.$nextEl) && (n.isEnd && !n.params.loop || n.slideNext(), n.isEnd ? n.a11y.notify(i.lastSlideMessage) : n.a11y.notify(i.nextSlideMessage)), n.navigation && n.navigation.$prevEl && r.is(n.navigation.$prevEl) && (n.isBeginning && !n.params.loop || n.slidePrev(), n.isBeginning ? n.a11y.notify(i.firstSlideMessage) : n.a11y.notify(i.prevSlideMessage)), n.pagination && r.is("." + n.params.pagination.bulletClass) && r[0].click() } }, notify: function(e) { var t = this.a11y.liveRegion; 0 !== t.length && (t.html(""), t.html(e)) }, updateNavigation: function() { var e = this; if (!e.params.loop) { var t = e.navigation, n = t.$nextEl, i = t.$prevEl; i && 0 < i.length && (e.isBeginning ? e.a11y.disableEl(i) : e.a11y.enableEl(i)), n && 0 < n.length && (e.isEnd ? e.a11y.disableEl(n) : e.a11y.enableEl(n)) } }, updatePagination: function() { var t = this, n = t.params.a11y; t.pagination && t.params.pagination.clickable && t.pagination.bullets && t.pagination.bullets.length && t.pagination.bullets.each(function(i, r) { var a = e(r); t.a11y.makeElFocusable(a), t.a11y.addElRole(a, "button"), t.a11y.addElLabel(a, n.paginationBulletMessage.replace(/{{index}}/, a.index() + 1)) }) }, init: function() { var e = this; e.$el.append(e.a11y.liveRegion); var t, n, i = e.params.a11y; e.navigation && e.navigation.$nextEl && (t = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (n = e.navigation.$prevEl), t && (e.a11y.makeElFocusable(t), e.a11y.addElRole(t, "button"), e.a11y.addElLabel(t, i.nextSlideMessage), t.on("keydown", e.a11y.onEnterKey)), n && (e.a11y.makeElFocusable(n), e.a11y.addElRole(n, "button"), e.a11y.addElLabel(n, i.prevSlideMessage), n.on("keydown", e.a11y.onEnterKey)), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", "." + e.params.pagination.bulletClass, e.a11y.onEnterKey) }, destroy: function() { var e, t, n = this; n.a11y.liveRegion && 0 < n.a11y.liveRegion.length && n.a11y.liveRegion.remove(), n.navigation && n.navigation.$nextEl && (e = n.navigation.$nextEl), n.navigation && n.navigation.$prevEl && (t = n.navigation.$prevEl), e && e.off("keydown", n.a11y.onEnterKey), t && t.off("keydown", n.a11y.onEnterKey), n.pagination && n.params.pagination.clickable && n.pagination.bullets && n.pagination.bullets.length && n.pagination.$el.off("keydown", "." + n.params.pagination.bulletClass, n.a11y.onEnterKey) } }, U = { init: function() { var e = this; if (e.params.history) { if (!r.history || !r.history.pushState) return e.params.history.enabled = !1, void(e.params.hashNavigation.enabled = !0); var t = e.history; t.initialized = !0, t.paths = U.getPathValues(), (t.paths.key || t.paths.value) && (t.scrollToSlide(0, t.paths.value, e.params.runCallbacksOnInit), e.params.history.replaceState || r.addEventListener("popstate", e.history.setHistoryPopState)) } }, destroy: function() { this.params.history.replaceState || r.removeEventListener("popstate", this.history.setHistoryPopState) }, setHistoryPopState: function() { this.history.paths = U.getPathValues(), this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1) }, getPathValues: function() { var e = r.location.pathname.slice(1).split("/").filter(function(e) { return "" !== e }), t = e.length; return { key: e[t - 2], value: e[t - 1] } }, setHistory: function(e, t) { if (this.history.initialized && this.params.history.enabled) { var n = this.slides.eq(t), i = U.slugify(n.attr("data-history")); r.location.pathname.includes(e) || (i = e + "/" + i); var a = r.history.state; a && a.value === i || (this.params.history.replaceState ? r.history.replaceState({ value: i }, null, i) : r.history.pushState({ value: i }, null, i)) } }, slugify: function(e) { return e.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "") }, scrollToSlide: function(e, t, n) { var i = this; if (t) for (var r = 0, a = i.slides.length; r < a; r += 1) { var s = i.slides.eq(r); if (U.slugify(s.attr("data-history")) === t && !s.hasClass(i.params.slideDuplicateClass)) { var o = s.index(); i.slideTo(o, e, n) } } else i.slideTo(0, e, n) } }, K = { onHashCange: function() { var e = this, t = i.location.hash.replace("#", ""); if (t !== e.slides.eq(e.activeIndex).attr("data-hash")) { var n = e.$wrapperEl.children("." + e.params.slideClass + '[data-hash="' + t + '"]').index(); if (void 0 === n) return; e.slideTo(n) } }, setHash: function() { var e = this; if (e.hashNavigation.initialized && e.params.hashNavigation.enabled) if (e.params.hashNavigation.replaceState && r.history && r.history.replaceState) r.history.replaceState(null, null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || ""); else { var t = e.slides.eq(e.activeIndex), n = t.attr("data-hash") || t.attr("data-history"); i.location.hash = n || "" } }, init: function() { var t = this; if (!(!t.params.hashNavigation.enabled || t.params.history && t.params.history.enabled)) { t.hashNavigation.initialized = !0; var n = i.location.hash.replace("#", ""); if (n) for (var a = 0, s = t.slides.length; a < s; a += 1) { var o = t.slides.eq(a); if ((o.attr("data-hash") || o.attr("data-history")) === n && !o.hasClass(t.params.slideDuplicateClass)) { var l = o.index(); t.slideTo(l, 0, t.params.runCallbacksOnInit, !0) } } t.params.hashNavigation.watchState && e(r).on("hashchange", t.hashNavigation.onHashCange) } }, destroy: function() { this.params.hashNavigation.watchState && e(r).off("hashchange", this.hashNavigation.onHashCange) } }, J = { run: function() { var e = this, t = e.slides.eq(e.activeIndex), n = e.params.autoplay.delay; t.attr("data-swiper-autoplay") && (n = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), e.autoplay.timeout = u.nextTick(function() { e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) }, n) }, start: function() { var e = this; return void 0 === e.autoplay.timeout && !e.autoplay.running && (e.autoplay.running = !0, e.emit("autoplayStart"), e.autoplay.run(), !0) }, stop: function() { var e = this; return !!e.autoplay.running && void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout), e.autoplay.timeout = void 0), e.autoplay.running = !1, e.emit("autoplayStop"), !0) }, pause: function(e) { var t = this; t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), t.autoplay.paused = !0, 0 !== e && t.params.autoplay.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay.onTransitionEnd), t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd)) : (t.autoplay.paused = !1, t.autoplay.run()))) } }, Q = { setTranslate: function() { for (var e = this, t = e.slides, n = 0; n < t.length; n += 1) { var i = e.slides.eq(n), r = -i[0].swiperSlideOffset; e.params.virtualTranslate || (r -= e.translate); var a = 0; e.isHorizontal() || (a = r, r = 0); var s = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0); i.css({ opacity: s }).transform("translate3d(" + r + "px, " + a + "px, 0px)") } }, setTransition: function(e) { var t = this, n = t.slides, i = t.$wrapperEl; if (n.transition(e), t.params.virtualTranslate && 0 !== e) { var r = !1; n.transitionEnd(function() { if (!r && t && !t.destroyed) { r = !0, t.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend"], n = 0; n < e.length; n += 1) i.trigger(e[n]) } }) } } }, Z = { setTranslate: function() { var t, n = this, i = n.$el, r = n.$wrapperEl, a = n.slides, s = n.width, o = n.height, l = n.rtlTranslate, d = n.size, u = n.params.cubeEffect, c = n.isHorizontal(), p = n.virtual && n.params.virtual.enabled, h = 0; u.shadow && (c ? (0 === (t = r.find(".swiper-cube-shadow")).length && (t = e('<div class="swiper-cube-shadow"></div>'), r.append(t)), t.css({ height: s + "px" })) : 0 === (t = i.find(".swiper-cube-shadow")).length && (t = e('<div class="swiper-cube-shadow"></div>'), i.append(t))); for (var f = 0; f < a.length; f += 1) { var v = a.eq(f), m = f; p && (m = parseInt(v.attr("data-swiper-slide-index"), 10)); var g = 90 * m, y = Math.floor(g / 360); l && (g = -g, y = Math.floor(-g / 360)); var b = Math.max(Math.min(v[0].progress, 1), -1), x = 0, w = 0, T = 0; m % 4 == 0 ? (x = 4 * -y * d, T = 0) : (m - 1) % 4 == 0 ? (x = 0, T = 4 * -y * d) : (m - 2) % 4 == 0 ? (x = d + 4 * y * d, T = d) : (m - 3) % 4 == 0 && (x = -d, T = 3 * d + 4 * d * y), l && (x = -x), c || (w = x, x = 0); var E = "rotateX(" + (c ? 0 : -g) + "deg) rotateY(" + (c ? g : 0) + "deg) translate3d(" + x + "px, " + w + "px, " + T + "px)"; if (b <= 1 && -1 < b && (h = 90 * m + 90 * b, l && (h = 90 * -m - 90 * b)), v.transform(E), u.slideShadows) { var C = c ? v.find(".swiper-slide-shadow-left") : v.find(".swiper-slide-shadow-top"), k = c ? v.find(".swiper-slide-shadow-right") : v.find(".swiper-slide-shadow-bottom"); 0 === C.length && (C = e('<div class="swiper-slide-shadow-' + (c ? "left" : "top") + '"></div>'), v.append(C)), 0 === k.length && (k = e('<div class="swiper-slide-shadow-' + (c ? "right" : "bottom") + '"></div>'), v.append(k)), C.length && (C[0].style.opacity = Math.max(-b, 0)), k.length && (k[0].style.opacity = Math.max(b, 0)) } } if (r.css({ "-webkit-transform-origin": "50% 50% -" + d / 2 + "px", "-moz-transform-origin": "50% 50% -" + d / 2 + "px", "-ms-transform-origin": "50% 50% -" + d / 2 + "px", "transform-origin": "50% 50% -" + d / 2 + "px" }), u.shadow) if (c) t.transform("translate3d(0px, " + (s / 2 + u.shadowOffset) + "px, " + -s / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + u.shadowScale + ")"); else { var M = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90), $ = 1.5 - (Math.sin(2 * M * Math.PI / 360) / 2 + Math.cos(2 * M * Math.PI / 360) / 2), P = u.shadowScale, L = u.shadowScale / $, D = u.shadowOffset; t.transform("scale3d(" + P + ", 1, " + L + ") translate3d(0px, " + (o / 2 + D) + "px, " + -o / 2 / L + "px) rotateX(-90deg)") } var z = S.isSafari || S.isUiWebView ? -d / 2 : 0; r.transform("translate3d(0px,0," + z + "px) rotateX(" + (n.isHorizontal() ? 0 : h) + "deg) rotateY(" + (n.isHorizontal() ? -h : 0) + "deg)") }, setTransition: function(e) { var t = this.$el; this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e) } }, ee = { setTranslate: function() { for (var t = this, n = t.slides, i = t.rtlTranslate, r = 0; r < n.length; r += 1) { var a = n.eq(r), s = a[0].progress; t.params.flipEffect.limitRotation && (s = Math.max(Math.min(a[0].progress, 1), -1)); var o = -180 * s, l = 0, d = -a[0].swiperSlideOffset, u = 0; if (t.isHorizontal() ? i && (o = -o) : (u = d, l = -o, o = d = 0), a[0].style.zIndex = -Math.abs(Math.round(s)) + n.length, t.params.flipEffect.slideShadows) { var c = t.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"), p = t.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom"); 0 === c.length && (c = e('<div class="swiper-slide-shadow-' + (t.isHorizontal() ? "left" : "top") + '"></div>'), a.append(c)), 0 === p.length && (p = e('<div class="swiper-slide-shadow-' + (t.isHorizontal() ? "right" : "bottom") + '"></div>'), a.append(p)), c.length && (c[0].style.opacity = Math.max(-s, 0)), p.length && (p[0].style.opacity = Math.max(s, 0)) } a.transform("translate3d(" + d + "px, " + u + "px, 0px) rotateX(" + l + "deg) rotateY(" + o + "deg)") } }, setTransition: function(e) { var t = this, n = t.slides, i = t.activeIndex, r = t.$wrapperEl; if (n.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.virtualTranslate && 0 !== e) { var a = !1; n.eq(i).transitionEnd(function() { if (!a && t && !t.destroyed) { a = !0, t.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend"], n = 0; n < e.length; n += 1) r.trigger(e[n]) } }) } } }, te = { setTranslate: function() { for (var t = this, n = t.width, i = t.height, r = t.slides, a = t.$wrapperEl, s = t.slidesSizesGrid, o = t.params.coverflowEffect, l = t.isHorizontal(), d = t.translate, u = l ? n / 2 - d : i / 2 - d, p = l ? o.rotate : -o.rotate, h = o.depth, f = 0, v = r.length; f < v; f += 1) { var m = r.eq(f), g = s[f], y = (u - m[0].swiperSlideOffset - g / 2) / g * o.modifier, b = l ? p * y : 0, x = l ? 0 : p * y, w = -h * Math.abs(y), T = l ? 0 : o.stretch * y, E = l ? o.stretch * y : 0; Math.abs(E) < .001 && (E = 0), Math.abs(T) < .001 && (T = 0), Math.abs(w) < .001 && (w = 0), Math.abs(b) < .001 && (b = 0), Math.abs(x) < .001 && (x = 0); var C = "translate3d(" + E + "px," + T + "px," + w + "px) rotateX(" + x + "deg) rotateY(" + b + "deg)"; if (m.transform(C), m[0].style.zIndex = 1 - Math.abs(Math.round(y)), o.slideShadows) { var S = l ? m.find(".swiper-slide-shadow-left") : m.find(".swiper-slide-shadow-top"), k = l ? m.find(".swiper-slide-shadow-right") : m.find(".swiper-slide-shadow-bottom"); 0 === S.length && (S = e('<div class="swiper-slide-shadow-' + (l ? "left" : "top") + '"></div>'), m.append(S)), 0 === k.length && (k = e('<div class="swiper-slide-shadow-' + (l ? "right" : "bottom") + '"></div>'), m.append(k)), S.length && (S[0].style.opacity = 0 < y ? y : 0), k.length && (k[0].style.opacity = 0 < -y ? -y : 0) } }(c.pointerEvents || c.prefixedPointerEvents) && (a[0].style.perspectiveOrigin = u + "px 50%") }, setTransition: function(e) { this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) } }, ne = { init: function() { var e = this, t = e.params.thumbs, n = e.constructor; t.swiper instanceof n ? (e.thumbs.swiper = t.swiper, u.extend(e.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), u.extend(e.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 })) : u.isObject(t.swiper) && (e.thumbs.swiper = new n(u.extend({}, t.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1 })), e.thumbs.swiperCreated = !0), e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass), e.thumbs.swiper.on("tap", e.thumbs.onThumbClick) }, onThumbClick: function() { var t = this, n = t.thumbs.swiper; if (n) { var i = n.clickedIndex; if (null != i) { var r; if (r = n.params.loop ? parseInt(e(n.clickedSlide).attr("data-swiper-slide-index"), 10) : i, t.params.loop) { var a = t.activeIndex; t.slides.eq(a).hasClass(t.params.slideDuplicateClass) && (t.loopFix(), t._clientLeft = t.$wrapperEl[0].clientLeft, a = t.activeIndex); var s = t.slides.eq(a).prevAll('[data-swiper-slide-index="' + r + '"]').eq(0).index(), o = t.slides.eq(a).nextAll('[data-swiper-slide-index="' + r + '"]').eq(0).index(); r = void 0 === s ? o : void 0 === o ? s : o - a < a - s ? o : s } t.slideTo(r) } } }, update: function(e) { var t = this, n = t.thumbs.swiper; if (n) { var i = "auto" === n.params.slidesPerView ? n.slidesPerViewDynamic() : n.params.slidesPerView; if (t.realIndex !== n.realIndex) { var r, a = n.activeIndex; if (n.params.loop) { n.slides.eq(a).hasClass(n.params.slideDuplicateClass) && (n.loopFix(), n._clientLeft = n.$wrapperEl[0].clientLeft, a = n.activeIndex); var s = n.slides.eq(a).prevAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index(), o = n.slides.eq(a).nextAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index(); r = void 0 === s ? o : void 0 === o ? s : o - a < a - s ? o : s } else r = t.realIndex; n.visibleSlidesIndexes.indexOf(r) < 0 && (n.params.centeredSlides ? r = a < r ? r - Math.floor(i / 2) + 1 : r + Math.floor(i / 2) - 1 : a < r && (r = r - i + 1), n.slideTo(r, e ? 0 : void 0)) } var l = 1, d = t.params.thumbs.slideThumbActiveClass; if (1 < t.params.slidesPerView && !t.params.centeredSlides && (l = t.params.slidesPerView), n.slides.removeClass(d), n.params.loop) for (var u = 0; u < l; u += 1) n.$wrapperEl.children('[data-swiper-slide-index="' + (t.realIndex + u) + '"]').addClass(d); else for (var c = 0; c < l; c += 1) n.slides.eq(t.realIndex + c).addClass(d) } } }, ie = [L, D, z, N, A, H, B, { name: "mousewheel", params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarged: "container" } }, create: function() { var e = this; u.extend(e, { mousewheel: { enabled: !1, enable: q.enable.bind(e), disable: q.disable.bind(e), handle: q.handle.bind(e), handleMouseEnter: q.handleMouseEnter.bind(e), handleMouseLeave: q.handleMouseLeave.bind(e), lastScrollTime: u.now() } }) }, on: { init: function() { this.params.mousewheel.enabled && this.mousewheel.enable() }, destroy: function() { this.mousewheel.enabled && this.mousewheel.disable() } } }, { name: "navigation", params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock" } }, create: function() { u.extend(this, { navigation: { init: F.init.bind(this), update: F.update.bind(this), destroy: F.destroy.bind(this) } }) }, on: { init: function() { this.navigation.init(), this.navigation.update() }, toEdge: function() { this.navigation.update() }, fromEdge: function() { this.navigation.update() }, destroy: function() { this.navigation.destroy() }, click: function(t) { var n = this.navigation, i = n.$nextEl, r = n.$prevEl; !this.params.navigation.hideOnClick || e(t.target).is(r) || e(t.target).is(i) || (i && i.toggleClass(this.params.navigation.hiddenClass), r && r.toggleClass(this.params.navigation.hiddenClass)) } } }, { name: "pagination", params: { pagination: { el: null, bulletElement: "span", clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: "bullets", dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: function(e) { return e }, formatFractionTotal: function(e) { return e }, bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", modifierClass: "swiper-pagination-", currentClass: "swiper-pagination-current", totalClass: "swiper-pagination-total", hiddenClass: "swiper-pagination-hidden", progressbarFillClass: "swiper-pagination-progressbar-fill", progressbarOppositeClass: "swiper-pagination-progressbar-opposite", clickableClass: "swiper-pagination-clickable", lockClass: "swiper-pagination-lock" } }, create: function() { var e = this; u.extend(e, { pagination: { init: R.init.bind(e), render: R.render.bind(e), update: R.update.bind(e), destroy: R.destroy.bind(e), dynamicBulletIndex: 0 } }) }, on: { init: function() { this.pagination.init(), this.pagination.render(), this.pagination.update() }, activeIndexChange: function() { this.params.loop ? this.pagination.update() : void 0 === this.snapIndex && this.pagination.update() }, snapIndexChange: function() { this.params.loop || this.pagination.update() }, slidesLengthChange: function() { this.params.loop && (this.pagination.render(), this.pagination.update()) }, snapGridLengthChange: function() { this.params.loop || (this.pagination.render(), this.pagination.update()) }, destroy: function() { this.pagination.destroy() }, click: function(t) { var n = this; n.params.pagination.el && n.params.pagination.hideOnClick && 0 < n.pagination.$el.length && !e(t.target).hasClass(n.params.pagination.bulletClass) && n.pagination.$el.toggleClass(n.params.pagination.hiddenClass) } } }, { name: "scrollbar", params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag" } }, create: function() { var e = this; u.extend(e, { scrollbar: { init: X.init.bind(e), destroy: X.destroy.bind(e), updateSize: X.updateSize.bind(e), setTranslate: X.setTranslate.bind(e), setTransition: X.setTransition.bind(e), enableDraggable: X.enableDraggable.bind(e), disableDraggable: X.disableDraggable.bind(e), setDragPosition: X.setDragPosition.bind(e), onDragStart: X.onDragStart.bind(e), onDragMove: X.onDragMove.bind(e), onDragEnd: X.onDragEnd.bind(e), isTouched: !1, timeout: null, dragTimeout: null } }) }, on: { init: function() { this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate() }, update: function() { this.scrollbar.updateSize() }, resize: function() { this.scrollbar.updateSize() }, observerUpdate: function() { this.scrollbar.updateSize() }, setTranslate: function() { this.scrollbar.setTranslate() }, setTransition: function(e) { this.scrollbar.setTransition(e) }, destroy: function() { this.scrollbar.destroy() } } }, { name: "parallax", params: { parallax: { enabled: !1 } }, create: function() { u.extend(this, { parallax: { setTransform: W.setTransform.bind(this), setTranslate: W.setTranslate.bind(this), setTransition: W.setTransition.bind(this) } }) }, on: { beforeInit: function() { this.params.parallax.enabled && (this.params.watchSlidesProgress = !0, this.originalParams.watchSlidesProgress = !0) }, init: function() { this.params.parallax && this.parallax.setTranslate() }, setTranslate: function() { this.params.parallax && this.parallax.setTranslate() }, setTransition: function(e) { this.params.parallax && this.parallax.setTransition(e) } } }, { name: "zoom", params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } }, create: function() { var e = this, t = { enabled: !1, scale: 1, currentScale: 1, isScaling: !1, gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3 }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 } }; "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(n) { t[n] = G[n].bind(e) }), u.extend(e, { zoom: t }) }, on: { init: function() { this.params.zoom.enabled && this.zoom.enable() }, destroy: function() { this.zoom.disable() }, touchStart: function(e) { this.zoom.enabled && this.zoom.onTouchStart(e) }, touchEnd: function(e) { this.zoom.enabled && this.zoom.onTouchEnd(e) }, doubleTap: function(e) { this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(e) }, transitionEnd: function() { this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd() } } }, { name: "lazy", params: { lazy: { enabled: !1, loadPrevNext: !1, loadPrevNextAmount: 1, loadOnTransitionStart: !1, elementClass: "swiper-lazy", loadingClass: "swiper-lazy-loading", loadedClass: "swiper-lazy-loaded", preloaderClass: "swiper-lazy-preloader" } }, create: function() { u.extend(this, { lazy: { initialImageLoaded: !1, load: Y.load.bind(this), loadInSlide: Y.loadInSlide.bind(this) } }) }, on: { beforeInit: function() { this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1) }, init: function() { this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load() }, scroll: function() { this.params.freeMode && !this.params.freeModeSticky && this.lazy.load() }, resize: function() { this.params.lazy.enabled && this.lazy.load() }, scrollbarDragMove: function() { this.params.lazy.enabled && this.lazy.load() }, transitionStart: function() { var e = this; e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load() }, transitionEnd: function() { this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load() } } }, { name: "controller", params: { controller: { control: void 0, inverse: !1, by: "slide" } }, create: function() { var e = this; u.extend(e, { controller: { control: e.params.controller.control, getInterpolateFunction: V.getInterpolateFunction.bind(e), setTranslate: V.setTranslate.bind(e), setTransition: V.setTransition.bind(e) } }) }, on: { update: function() { this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline) }, resize: function() { this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline) }, observerUpdate: function() { this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline) }, setTranslate: function(e, t) { this.controller.control && this.controller.setTranslate(e, t) }, setTransition: function(e, t) { this.controller.control && this.controller.setTransition(e, t) } } }, { name: "a11y", params: { a11y: { enabled: !0, notificationClass: "swiper-notification", prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}" } }, create: function() { var t = this; u.extend(t, { a11y: { liveRegion: e('<span class="' + t.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>') } }), Object.keys(_).forEach(function(e) { t.a11y[e] = _[e].bind(t) }) }, on: { init: function() { this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation()) }, toEdge: function() { this.params.a11y.enabled && this.a11y.updateNavigation() }, fromEdge: function() { this.params.a11y.enabled && this.a11y.updateNavigation() }, paginationUpdate: function() { this.params.a11y.enabled && this.a11y.updatePagination() }, destroy: function() { this.params.a11y.enabled && this.a11y.destroy() } } }, { name: "history", params: { history: { enabled: !1, replaceState: !1, key: "slides" } }, create: function() { var e = this; u.extend(e, { history: { init: U.init.bind(e), setHistory: U.setHistory.bind(e), setHistoryPopState: U.setHistoryPopState.bind(e), scrollToSlide: U.scrollToSlide.bind(e), destroy: U.destroy.bind(e) } }) }, on: { init: function() { this.params.history.enabled && this.history.init() }, destroy: function() { this.params.history.enabled && this.history.destroy() }, transitionEnd: function() { this.history.initialized && this.history.setHistory(this.params.history.key, this.activeIndex) } } }, { name: "hash-navigation", params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } }, create: function() { var e = this; u.extend(e, { hashNavigation: { initialized: !1, init: K.init.bind(e), destroy: K.destroy.bind(e), setHash: K.setHash.bind(e), onHashCange: K.onHashCange.bind(e) } }) }, on: { init: function() { this.params.hashNavigation.enabled && this.hashNavigation.init() }, destroy: function() { this.params.hashNavigation.enabled && this.hashNavigation.destroy() }, transitionEnd: function() { this.hashNavigation.initialized && this.hashNavigation.setHash() } } }, { name: "autoplay", params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1 } }, create: function() { var e = this; u.extend(e, { autoplay: { running: !1, paused: !1, run: J.run.bind(e), start: J.start.bind(e), stop: J.stop.bind(e), pause: J.pause.bind(e), onTransitionEnd: function(t) { e && !e.destroyed && e.$wrapperEl && t.target === this && (e.$wrapperEl[0].removeEventListener("transitionend", e.autoplay.onTransitionEnd), e.$wrapperEl[0].removeEventListener("webkitTransitionEnd", e.autoplay.onTransitionEnd), e.autoplay.paused = !1, e.autoplay.running ? e.autoplay.run() : e.autoplay.stop()) } } }) }, on: { init: function() { this.params.autoplay.enabled && this.autoplay.start() }, beforeTransitionStart: function(e, t) { this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(e) : this.autoplay.stop()) }, sliderFirstMove: function() { this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause()) }, destroy: function() { this.autoplay.running && this.autoplay.stop() } } }, { name: "effect-fade", params: { fadeEffect: { crossFade: !1 } }, create: function() { u.extend(this, { fadeEffect: { setTranslate: Q.setTranslate.bind(this), setTransition: Q.setTransition.bind(this) } }) }, on: { beforeInit: function() { var e = this; if ("fade" === e.params.effect) { e.classNames.push(e.params.containerModifierClass + "fade"); var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 }; u.extend(e.params, t), u.extend(e.originalParams, t) } }, setTranslate: function() { "fade" === this.params.effect && this.fadeEffect.setTranslate() }, setTransition: function(e) { "fade" === this.params.effect && this.fadeEffect.setTransition(e) } } }, { name: "effect-cube", params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 } }, create: function() { u.extend(this, { cubeEffect: { setTranslate: Z.setTranslate.bind(this), setTransition: Z.setTransition.bind(this) } }) }, on: { beforeInit: function() { var e = this; if ("cube" === e.params.effect) { e.classNames.push(e.params.containerModifierClass + "cube"), e.classNames.push(e.params.containerModifierClass + "3d"); var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 }; u.extend(e.params, t), u.extend(e.originalParams, t) } }, setTranslate: function() { "cube" === this.params.effect && this.cubeEffect.setTranslate() }, setTransition: function(e) { "cube" === this.params.effect && this.cubeEffect.setTransition(e) } } }, { name: "effect-flip", params: { flipEffect: { slideShadows: !0, limitRotation: !0 } }, create: function() { u.extend(this, { flipEffect: { setTranslate: ee.setTranslate.bind(this), setTransition: ee.setTransition.bind(this) } }) }, on: { beforeInit: function() { var e = this; if ("flip" === e.params.effect) { e.classNames.push(e.params.containerModifierClass + "flip"), e.classNames.push(e.params.containerModifierClass + "3d"); var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 }; u.extend(e.params, t), u.extend(e.originalParams, t) } }, setTranslate: function() { "flip" === this.params.effect && this.flipEffect.setTranslate() }, setTransition: function(e) { "flip" === this.params.effect && this.flipEffect.setTransition(e) } } }, { name: "effect-coverflow", params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 } }, create: function() { u.extend(this, { coverflowEffect: { setTranslate: te.setTranslate.bind(this), setTransition: te.setTransition.bind(this) } }) }, on: { beforeInit: function() { var e = this; "coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"), e.classNames.push(e.params.containerModifierClass + "3d"), e.params.watchSlidesProgress = !0, e.originalParams.watchSlidesProgress = !0) }, setTranslate: function() { "coverflow" === this.params.effect && this.coverflowEffect.setTranslate() }, setTransition: function(e) { "coverflow" === this.params.effect && this.coverflowEffect.setTransition(e) } } }, { name: "thumbs", params: { thumbs: { swiper: null, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs" } }, create: function() { u.extend(this, { thumbs: { swiper: null, init: ne.init.bind(this), update: ne.update.bind(this), onThumbClick: ne.onThumbClick.bind(this) } }) }, on: { beforeInit: function() { var e = this.params.thumbs; e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0)) }, slideChange: function() { this.thumbs.swiper && this.thumbs.update() }, update: function() { this.thumbs.swiper && this.thumbs.update() }, resize: function() { this.thumbs.swiper && this.thumbs.update() }, observerUpdate: function() { this.thumbs.swiper && this.thumbs.update() }, setTransition: function(e) { var t = this.thumbs.swiper; t && t.setTransition(e) }, beforeDestroy: function() { var e = this.thumbs.swiper; e && this.thumbs.swiperCreated && e && e.destroy() } } }]; return void 0 === P.use && (P.use = P.Class.use, P.installModule = P.Class.installModule), P.use(ie), P }), CityPicker.prototype = { each: function(e, t) { for (var n in e) t(n, e[n]) }, init: function(e) { e.data = e.data || [1, 1]; var t = this, n = document.createDocumentFragment(); t.obj1 = document.getElementById(e.pId), t.obj2 = document.getElementById(e.cId), t.each(t.province, function(t, i) { var r = document.createElement('option'); r.appendChild(document.createTextNode(i[1])), r.setAttribute('value', i[0]), n.appendChild(r), e.data[0] == i[0] && ($(r).attr('selected', 'true'), r.selected = !0) }), t.obj1.appendChild(n), t.getCity(e.data), t.obj1.onchange = function() { t.getCity([this.value]), e.callBack && e.callBack() }, e.formId && (document.getElementById(e.formId).onreset = function() { t.set(e.data[0], e.data[1]) }) }, getCity: function(e) { var t = this, n = document.createDocumentFragment(); t.each(t.city, function(t, i) { var r = document.createElement('option'), a = i[0].split('-'), s = a[0], o = a[1]; s == e[0] && (r.appendChild(document.createTextNode(i[1])), r.setAttribute('value', o), n.appendChild(r), o == e[1] && (r.selected = !0, $(r).attr('selected', !0))) }), t.obj2.innerHTML = '', t.obj2.appendChild(n) }, set: function(e, t) { e = e || 0, t = t || 0, this.obj1.value = e, this.getCity([e, t]) } }; var cityPicker = new CityPicker;