FONE.CARE

description

Fone.care is a reliable and trusted cell phone repair shop situated in Wirral, UK. The shop has talented professional technicians to carry out all kinds of cell phone repair services. Their professional technicians utilise the latest tools and repair techniques in their services. The shop specialises in all brands repair services such as Apple, Google, Huawei, LG, Motorola & more. The team also provide the very best protection and repair service in a safe and trusted environment. The shop also provides a lifetime warranty on all premium repair services. Their technicians give immediate responses to their customers. The shop also has a wide range of wallet cases, tough cases & cables at reasonable prices.

  • [email protected]
  • 0151 342 2004
  • 182 Telegraph Road, Wirral CH60 0AJ, UK
  • Mon-Sat: 10am - 4pm Sun: Closed

Tag:

Headphones, Liquid Damage, Cleaning, Charge Port, <body> <div class="global-wrap"> <div class="top-main-area text-center"> <div class="container"> <a href="https://threebestrated.co.uk" class="logo mt5"> <img style="width:300px;height:75px" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAASwAAABLCAMAAAD9JUoRAAABIFBMVEUAAAAPXpwPXpybyjubyjsPXpybyjsPXpwPXpwPXpwPXpwPXpybyjsQX5ybyjubyjubyjucyjsPXpybyTwPXpwPXpybyjsPXpybyjubyjsPXpwPXpzquCicyjubyjubyjvorjmdyjvtuSLorDbtuiLrtCnuuyfosD/orDPosyTksSTqtEbjqzDprTDosyqdyjudyjvtxVadyjudyjudyjvksCXmtDSdyjvsuDHrw1adyjudyjvsxVfqrS7rsyr01WvrsS3rv0b22Wv53m8PXpybyjv99MD311n88KL987X88qn20kv++Nj43nT0zDPpuTHpuCDyxx3875fyzHH0zj7sv0fuwjPlsSP11I342mX+9s/sumD+++T225365onptE66vu7AAAAARHRSTlMAgMDAQECA8BBg4KAPMODwYKCwMFDQ0CAgsHCQEHGQUO/YL/sfYEX936Db/vvMuSgc/rxNBvPstXboqeezro9tPc5OIF0bwGYAAAnrSURBVHja7JbbjqJAEECrTYio8cVoTGZ56IgCipD4oBmTuQ8RFBUvgDqj6///xbZ0O6DMZtW4mt14HoxVXd3CSXVFuHHjxj/L4xPcOBBBFOHG76ncRxvr8zMaVstwoxyRgOVoYy37O6ESBiUBDiBhbEjAf4QSSqiEvVSSxOlyOcVSCSjaXA6tYh0iFNF3pM4uK3uHMglGDuV5uDil9br81TwffVHYSBNFdW19EFZrVRQrmzJ5uVJCqaoAIZzxHYmzy0oYOyQzF9eFO128EfWoYXne769UrOmC4k163W6n0+l2LVUr6QqWO/3+VMZaNZDan2vXl0V05eFIuLvcyfMcB4LmMsYVcWoRO4TutC6A0phMrF7PsiayBi/1nz22pipPGKsrIk7FinRFWQzumFuMggPgRF5EaqE7F8sCHhA9xM+AuALQHdscDEzb0WkdXWsoIAXmqNPry0rD4SC6BU6l3CKGLGvQEgCEmm8Shs3AQWk2Hrq2OxyVg6jpkiXbrwEQW8GeKdlzHVlZgGJ+Ky5/IVnMyXjIjFRHY9e2/SpskGZj21wsTIdO/9p4aNvuSAJCZUS2jGfCn57mb8miQY4G6KKyhubWSHXskptn60CNDG2vMVg4EpVFygamfx94HLnmwh7BEbKKHMcVIUY2kuUIWWDEknFZXExWkSPwsQNI7gyyqBOn3W54Eu0e5/WhYdaAtpnTentue/5TEM5876HtudVgyffajYZTOlhWln4pcNEyjqYRfSfWJ8kf9MViybis7K4sHqXZ7ediBxgFxO+OCgSnUG3eAzzXAwnNGnH2/urQVmpWgPDc0oFQnunvAG+tQKRG9ggP9cqhslLGllRUVv7rsfnI5E5yQNhP5uOy2I+xvkslw2r294vPGCHZc8iiE0mgU5zdzO0nC2kBC8Il4dCZlTRCuLCMvR4C4AuxfwPx5L6sO9ZHzJURJceGWkga9mVdnbisfQphWfrrsUMtVC4P8H2SnYcQyqRZmo68vLEL2veX+UWduW6pDUJRGHAht2EuSJpOsqbzMuH9X6lGcjgEsHZZbDv7l2xZGD85F/ArwlosTANRGFLOadpsTbNej0VWUsSR535IaLdXE1ezXtTXgUVHOcHLHSzBBJUC48xDo7mZHk3RgOVSmcOIHCA55lmSj8Xj9RefDGNi0YzNk/0DWFOWY1wGa+CYbgzJvqrdTJebvHU2nMiqGJN5RDqAZQioO6wfz29PJMobURzx+Z2wRAwVTMg0z03E5Y34HOluptqZBSyEYSEd4ucIgLUw9SBYryGEd2haaml1DywoWLqENUVfLJUo0S0TYHHuqQN7ipu2VFYMhRkfAes5nHXCpqWS9vfDYiUsHv2lFm2ZZt86SOhYYb0Sls1Gc39Yn2HVx8iW63LyP4FFpIZlWrCKPtV1h/UWVh3p8isJ+49g0T0s7C6uwYJTVlmFO0ZhONCMDDOUUrPfauoRsAzNxJvmDVia5trqeapSujessIels37Bzjqj1RXW0OoSGaYaVAHLASyPxbWShGCU6XPHnrAUHt5zKY20esKai+iuzTYslU6NEpJaLZzHU9VUHWEFuz5ma8UpZUzbDxZULUHjLz56VZvSqwKWnTG+YI8xD830uPI2Nj9xy3QDJhTnvFPOCkezDO2aZwc81naDha2mZozBtbqrTJxZZVCeRufJawD4GN7aUWqQ6djzbHiMsF5OM2kL701cR1ijaFQyWZqyDctkUbtjIUvnLN0R1vcQdSDkJi3fDxaxBRjeNmtYWALM3mblrc0A6asbLPItRB1v09IdYZGiDZ6wRUfRBizGq3zabuuNBKb9YB3CpldyVVZcrymKXYQ17TKciwFMs/mqRsMeMD6Zc2HOLO8A1bjvEVh665LgPSypDTKF+677KuLpJRS6RYvC1uotfpZsm7+psfyDyNZ1T8KC91bANq2P90PU2/HziaDSmexv6mf7ZtjbJgyE4UvsOUnn2RB3xHQCxC9I1ESKlH1d/v9fWmzXuJyBJRMaTMr7JYUAqp/enV8f7vGc1fW5gkl17VPCWoepxi7vK/wDaUopBzilgh3VvhDpCSaU6KUl0WHIzNXYeTjsZihASvbvhFw4zy4woVR2vVc0rEViG08ZIcJCJXmhR4Z1/MkP4nDIL8B/HmFCaXkvLNEU3Y75ECUtHxXWewH7mgOtAYp3mFDl9W415dV7FQwrKBugxavkQVi1usE6QZoCqBru15SwSmQ28agY1aBpISytIedLHoV1AC3fa8IBDpPConezCmPcdsOi/udBp2Yf9HhkCZrU+6kjC6pSPgprMQwL8ttBPg6sULNOcGHT1awwtLFhaTMrjgMrzIbcgDKz4aS6jgkrPLKp5/SmQViUUtVhRls+S51PsD8fyAWmlRyvZnkJD0ulH643V/aQEGK9mNEHKRfYMtXQKBHuHuoe6xy8OihmHPy0SkaaDQMsblwZzvAEzyb2ynCFrGKfnDSPPZ7r6deGlpb8K5/1oxdWYXypfxMpCHGjpzEsbr8hJbG/gfrcB5H2I7P3zUn5gw7+m+/RxbDCcG1WVZLZT03M/a5+GQTUyE+b2lCzWEMH0tymzTNnB+sBAx+vDWNYiQzNVu4TU5jIwQW+ChbDBmHy8SCpPPX5weqMLCF6+4EvvnWLYKXsJiJb5e1zZjIMi9y4NDg/zpvbi+au+cFSIkIlGS/b7OhwP4u1Voa0c6GQIljaU23+ZC7YBDSSs4PVLZ4Tr5ypuFP6imD1Nx0ULVhqGCFYhSGBErlshyWZKaz16r528RvqwaM0zFDTIfFJHsGyYEgjYbhgOulMYfm6/bKGIe3Q252owFNpM86pMgj6YJErUgyLzRWWD60twAPvDeNRqat3DpA6SIxR+gAs+A9gwSK8Eo+FXv1uemB5RGWzlZC5lOyBRVvi9pz6H2DB9z/RWntWSxiARX3zTzjH0QcrbyIQVfT5F3hrzYd3ju48zdWuB1ZwudzlYxZsVASL4R5hiEqv+S13gjae1guaE9F/Xr3CICziV4Jh4K2aleFzQUnLZ+n5mVJckrp3/n1Zop1//bCYs+sUrWYI7nWJOLR4a2NKPmtYhpbX980uJODb4J7SACuEjPuQPLSBSJNZlQ+jmFb56Vw6w4V0Hy27dc5oaUjFrIY7pdwtVjINoMvgsywBmVCaePNAEg3AaUFsFHJp+36V1snt27kvdza/BrV6hT/DIi56irAkF5mHRYNFtf2sIBnt65Em9mbQ8UNCO0d7tdzBACzc/UvDS1fiYdiTvsq3l+screszpW0Fm7UWq76weoMeJYQQBV7a99ir3CWau8Bfm11D6dclcfEXtkjwwi0wbaISksC8te7EtVqs4akuXJstQrXdwFP9vF4Xy6XbpLldfIGnnnrqqX+j38DvPv3ry3LcAAAAAElFTkSuQmCC " alt="ThreeBestRated.co.uk" title="ThreeBestRated.co.uk"> </a> </div> </div> <header class="main"> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="flexnav-menu-button" id="flexnav-menu-button">Menu<span class="touch-button"></span></div> <div class="col-md-10"> <nav> <ul class="nav nav-pills flexnav lg-screen" id="flexnav" data-breakpoint="800"> <li><a href="https://threebestrated.co.uk">Find Business</a></li> <li><a href="https://threebestrated.co.uk/submit-business?reason=new" title="List your business for Free!">List Business</a></li> <li><a href="https://threebestrated.co.uk/submit-business?reason=update" title="Update your business for Free!">Update Business</a></li> <li><a href="https://threebestrated.co.uk/faqs">FAQ</a></li> <li><a href="https://threebestrated.co.uk/about-us" title="How does Three Best Rated AU work?">About Us</a></li> <li><a href="https://threebestrated.co.uk/contact-us">Support</a></li> </ul> </nav> </div> <form action="https://threebestrated.co.uk/search.html" id="siq_searchForm"> <div class="col-md-2" style="margin-top:8px;margin-bottom:8px;"> <div class="has-feedback"> <input type="search" class="form-control" placeholder="Search here..." value="" name="q"> <i class="glyphicon glyphicon-search form-control-feedback" onclick="document.getElementById('siq_searchForm').submit();"></i> </div> </div> </form> </div> </div> </div></header> <form class="search-area-white"> <div class="container"> <div class="row"> <div class="col-md-12 small clearfix greyc"> <a href="https://threebestrated.co.uk" class="bluec">BEST RATED</a> » <a href="https://threebestrated.co.uk/local-businesses-in-wirral">WIRRAL</a> » CELL PHONE REPAIR </div> </div> </div> </form> <div class="gap-small"></div> <div class="container"> <div class="row"> <div class="col-md-12"> <h1>3 Best Cell Phone Repair in Wirral, UK</h1> <h4>Expert recommended Top 3 Cell Phone Repair in Wirral, UK. All of our cell phone repair actually face a rigorous <a href="https://threebestrated.co.uk/50-point-inspection">50-Point Inspection</a>, which includes local reviews, history, business standards, ratings, satisfaction, trust, price and their trading excellence. Only the bee's knees! </h4> <span> <a rel="nofollow noopener" href="https://www.facebook.com/sharer/sharer.php?u=https://threebestrated.co.uk/cell-phone-repair-in-wirral" target="_blank"><img src="/img/facebook.png" style="width:24px;height:24px;"></a> <a rel="nofollow noopener" href="https://twitter.com/share?url=https://threebestrated.co.uk/cell-phone-repair-in-wirral" target="_blank"><img src="/img/twitter.png" style="width:24px;height:24px;"></a> <a rel="nofollow noopener" href="https://www.linkedin.com/cws/share?url=https://threebestrated.co.uk/cell-phone-repair-in-wirral" target="_blank"><img src="/img/linkedin.png" style="width:24px;height:24px;"></a> </span> </div> </div> </div> <style type="text/css"> .show-read-more .more-text{ display: none; } .tooltip3 { position: relative; display: inline-block; /**** border-bottom: 1px dotted black; ***/ } .tooltip3 .tooltiptext { visibility: hidden; width: 320px; background-color: black; color: #fff; text-align: left; border-radius: 6px; padding: 5px 10px; position: absolute; z-index: 1; bottom: 100%; left: -80%; opacity: 0; transition: opacity 1s; } .tooltip3 .tooltiptext::after { content: ""; position: absolute; top: 100%; /* At the bottom of the tooltip */ left: 10%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: black transparent transparent transparent; } .tooltip3:hover .tooltiptext { visibility: visible; opacity: 1; } .tooltip2 { position: relative; display: inline-block; /**** border-bottom: 1px dotted black; ***/ } .tooltip2 .tooltiptext { visibility: hidden; width: 320px; background-color: black; color: #fff; text-align: left; border-radius: 6px; padding: 5px 10px; position: absolute; z-index: 1; bottom: 100%; left: -50%; opacity: 0; transition: opacity 1s; } .tooltip2 .tooltiptext::after { content: ""; position: absolute; top: 100%; /* At the bottom of the tooltip */ left: 10%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: black transparent transparent transparent; } .tooltip2:hover .tooltiptext { visibility: visible; opacity: 1; } </style> <div class="gap-small"></div> <div class="container" id="main-content"> <div class="row row-wrap"> <div class="col-md-4"> <div class="product-thumb"> <header class="product-header"> <div id="my-carousel1" class="carousel slide lazy" data-interval="false"> <ol class="carousel-indicators"> <li data-target="#my-carousel1" data-slide-to="0" class="" style="background-color: #a9a9a9;"></li> <li data-target="#my-carousel1" data-slide-to="1" style="background-color: #a9a9a9;"></li> <li data-target="#my-carousel1" data-slide-to="2" style="background-color: #a9a9a9;" class=""></li> <li data-target="#my-carousel1" data-slide-to="3" style="background-color: #a9a9a9;" class="active"></li> <li data-target="#my-carousel1" data-slide-to="4" style="background-color: #a9a9a9;"></li> </ol> <div class="carousel-inner"> <div class="item"> <img loading="lazy" src="https://threebestrated.co.uk/images/TechOutpost-Wirral-UK.jpeg" alt="Tech Outpost" title="Tech Outpost" width="350" height="250"> </div> <div class="item iframe" data-embed="https://www.google.com/maps/embed/v1/place?q=16%2BPrinces%2BPavement, +Wirral, +UK+CH41 2YA&amp;key=AIzaSyBOuIMr34_Xu4td8T9ri3EP_pLSZ9lW62g"><iframe width="350" height="250" frameborder="0" allowfullscreen="" src="https://www.google.com/maps/embed/v1/place?q=16%2BPrinces%2BPavement, +Wirral, +UK+CH41 2YA&amp;key=AIzaSyBOuIMr34_Xu4td8T9ri3EP_pLSZ9lW62g"></iframe></div> <div class="item"> <img alt="Tech Outpost" width="350" height="250" src="https://threebestrated.co.uk/images/TechOutpost-Wirral-UK-1.jpeg"> </div> <div class="item active"> <img alt="Tech Outpost" width="350" height="250" src="https://threebestrated.co.uk/images/TechOutpost-Wirral-UK-2.jpeg"> </div> <div class="item"> <p> </p><div class="containervideo"><img data-src="/img/facebook-video.jpg" alt="Facebook Video"> <a rel="nofollow noopener" data-toggle="modal" data-target="#myModalv1" href="/viewvideo?id=1445850"> <div class="contentvid"><h1 class="redc"><i class="fa fa-youtube-play"></i> Play</h1></div> </a> </div> <p></p> </div> </div> <a class="carousel-control right" href="#my-carousel1" data-slide="next"></a> </div> </header> <div class="product-inner"><div class="chartjs-size-monitor" style="position: absolute; inset: 0px; overflow: hidden; pointer-events: none; visibility: hidden; z-index: -1;"><div class="chartjs-size-monitor-expand" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="chartjs-size-monitor-shrink" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div></div> <h4><strong>TECH OUTPOST</strong></h4> <ul class="icon-group icon-list-rating" title="5/5 ratings"> <li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li> </ul> <h5> 16 Princes Pavement, Birkenhead, Wirral CH41 2YA <a target="_blank" href="https://maps.google.co.uk?saddr=Current+Location&amp;daddr=16+Princes+Pavement, +Birkenhead, +Wirral, +CH41+2YA+UK&amp;hl=en&amp;iwloc=A" title="Get Directions">Directions<i class="fa fa-external-link"></i></a> </h5> <div style="margin-bottom:15px"> <a href="tel:07949536555"> <span class="product-price" style="-webkit-text-fill-color:#FFFFFF; margin-right: 15px;"> <i class="fa fa-phone"></i>&nbsp; CALL </span> </a> <a href="mailto:[email protected]?subject=Request%20through%20ThreeBestRated.co.uk"> <span class="product-price" style="-webkit-text-fill-color:#FFFFFF;"> <i class="fa fa-envelope-o"></i> EMAIL </span> </a> </div> <p>Since 2015</p> <p class="bg-warning" align="left"><b>Here’s The Deal:<br></b>Tech Outpost is one of the leading cell phone repair shops established in Wirral, UK. They have highly skilled and well-trained technicians for all their work. Their expert technicians provide qualified repair services for various repair services for multiple brands and model mobile phones. All their repair services come with a six-month manufacturer's warranty. The team offers a full range of aftercare services to their customers. Their technicians' team also offers a wide range of PC and laptop solutions to their customers. They have been providing technical advice. They also provide same-day cell repair services. Tech Outpost also serves in Liverpool, Birkenhead, Wirral, Southport, Crosby, Heswall and Formby areas.</p> <p align="left"><b>SPECIALITY:</b><br>iPhone, Samsung, LG, HTC, Huawei, Nokia, Motorola, Blackberry, Doro, Wiley Fox, Google Phone, Oneplus, Alcatel, Amazon, Blu, Lenovo, Microsoft Repair, Unlocking, Screen/LCD, Battery &amp; Charge Port Replacements</p> <p align="left"><b>£Price:</b> iPhone 6 - LCD/Screen - £40<br> iPhone 6S - LCD/Screen - £45<br> iPhone 6 Plus - LCD/Screen - £45<br> iPhone 6S Plus - LCD/Screen - £50<br> iPhone 7 - LCD/Screen - £50<br></p><div class="tooltip3"><a onclick="return false;">... More Prices <i class="fa fa-zoom-in bluec"></i></a><span class="tooltiptext">iPhone 6 - LCD/Screen - £40<br> iPhone 6S - LCD/Screen - £45<br> iPhone 6 Plus - LCD/Screen - £45<br> iPhone 6S Plus - LCD/Screen - £50<br> iPhone 7 - LCD/Screen - £50<br> iPhone 7 Plus - LCD/Screen - £55<br> iPhone 8 - LCD/Screen - £55<br> iPhone 8 Plus - LCD/Screen - £60<br> iPhone X - Soft LCD/Screen - £90<br> iPhone X - OLED OEM Screen - £120</span></div><p></p> <p><a href="mailto:[email protected]?subject=Request%20through%20ThreeBestRated.co.uk"><i class="fa fa-envelope-o"></i> [email protected]</a></p> <p><a rel="nofollow external noopener" href="https://techoutpost.co.uk" target="_blank"><i class="fa fa-external-link"></i> techoutpost.co.uk</a></p> <p><a rel="nofollow noopener" data-toggle="modal" data-target="#myModal1" href="/submitreviews?id=1445850"><i class="fa fa-comments"></i> Reviews</a> | <a rel="nofollow noopener" data-toggle="modal" data-target="#myModalv1" href="/viewvideo?id=1445850"> <i class="fa fa-youtube-play"></i> Play Video </a> </p> <p></p> <div class="product-meta"> <p> </p><ul class="product-price-list"> <li><span class="product-price" style="-webkit-text-fill-color:#FFFFFF;"><i class="fa fa-phone"></i> <a href="tel:07949536555" class="set1">07949 536555</a></span></li> </ul> <p></p> <p><i class="fa fa-clock-o"></i> Mon-Sat: 9am - 5pm <br> Sun: Closed</p> <div class="gap-small"></div> </div> <h5><b>TBR</b>® <b>Inspection Report:</b></h5> <canvas id="myChart1" height="263" style="display: block; width: 316px; height: 263px;" width="316" class="chartjs-render-monitor"></canvas> <script type="text/javascript" async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script async="" src="//www.google-analytics.com/analytics.js"></script><script async="" type="text/javascript"> /*! * Chart.js * http://chartjs.org/ * Version: 2.7.2 * * Copyright 2018 Chart.js Contributors * Released under the MIT license * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md */ !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([], t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e, i, n){function a(r, s){if(!i[r]){if(!e[r]){var l="function"==typeof require&&require;if(!s&&l)return l(r, !0);if(o)return o(r, !0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND", u}var d=i[r]={exports:{}};e[r][0].call(d.exports, function(t){var i=e[r][1][t];return a(i||t)}, d, d.exports, t, e, i, n)}return i[r].exports}for(var o="function"==typeof require&&require, r=0;r<n.length;r++)a(n[r]);return a}({1:[function(t, e, i){}, {}], 2:[function(t, e, i){var n=t(6);function a(t){if(t){var e=[0, 0, 0], i=1, a=t.match(/^#([a-fA-F0-9]{3})$/i);if(a){a=a[1];for(var o=0;o<e.length;o++)e[o]=parseInt(a[o]+a[o], 16)}else if(a=t.match(/^#([a-fA-F0-9]{6})$/i)){a=a[1];for(o=0;o<e.length;o++)e[o]=parseInt(a.slice(2*o, 2*o+2), 16)}else if(a=t.match(/^rgba?\(\s*([+-]?\d+)\s*, \s*([+-]?\d+)\s*, \s*([+-]?\d+)\s*(?:, \s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(a[o+1]);i=parseFloat(a[4])}else if(a=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*, \s*([+-]?[\d\.]+)\%\s*, \s*([+-]?[\d\.]+)\%\s*(?:, \s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(a[o+1]));i=parseFloat(a[4])}else if(a=t.match(/(\w+)/)){if("transparent"==a[1])return[0, 0, 0, 0];if(!(e=n[a[1]]))return}for(o=0;o<e.length;o++)e[o]=d(e[o], 0, 255);return i=i||0==i?d(i, 0, 1):1, e[3]=i, e}}function o(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*, \s*([+-]?[\d\.]+)%\s*, \s*([+-]?[\d\.]+)%\s*(?:, \s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[d(parseInt(e[1]), 0, 360), d(parseFloat(e[2]), 0, 100), d(parseFloat(e[3]), 0, 100), d(isNaN(i)?1:i, 0, 1)]}}}function r(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*, \s*([+-]?[\d\.]+)%\s*, \s*([+-]?[\d\.]+)%\s*(?:, \s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[d(parseInt(e[1]), 0, 360), d(parseFloat(e[2]), 0, 100), d(parseFloat(e[3]), 0, 100), d(isNaN(i)?1:i, 0, 1)]}}}function s(t, e){return void 0===e&&(e=void 0!==t[3]?t[3]:1), "rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function l(t, e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function u(t, e){return void 0===e&&(e=void 0!==t[3]?t[3]:1), "hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function d(t, e, i){return Math.min(Math.max(e, t), i)}function c(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}e.exports={getRgba:a, getHsla:o, getRgb:function(t){var e=a(t);return e&&e.slice(0, 3)}, getHsl:function(t){var e=o(t);return e&&e.slice(0, 3)}, getHwb:r, getAlpha:function(t){var e=a(t);{if(e)return e[3];if(e=o(t))return e[3];if(e=r(t))return e[3]}}, hexString:function(t){return"#"+c(t[0])+c(t[1])+c(t[2])}, rgbString:function(t, e){if(e<1||t[3]&&t[3]<1)return s(t, e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}, rgbaString:s, percentString:function(t, e){if(e<1||t[3]&&t[3]<1)return l(t, e);var i=Math.round(t[0]/255*100), n=Math.round(t[1]/255*100), a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"}, percentaString:l, hslString:function(t, e){if(e<1||t[3]&&t[3]<1)return u(t, e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}, hslaString:u, hwbString:function(t, e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}, keyword:function(t){return h[t.slice(0, 3)]}};var h={};for(var f in n)h[n[f]]=f}, {6:6}], 3:[function(t, e, i){var n=t(5), a=t(2), o=function(t){return t instanceof o?t:this instanceof o?(this.valid=!1, this.values={rgb:[0, 0, 0], hsl:[0, 0, 0], hsv:[0, 0, 0], hwb:[0, 0, 0], cmyk:[0, 0, 0, 0], alpha:1}, void("string"==typeof t?(e=a.getRgba(t))?this.setValues("rgb", e):(e=a.getHsla(t))?this.setValues("hsl", e):(e=a.getHwb(t))&&this.setValues("hwb", e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb", e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl", e):void 0!==e.v||void 0!==e.value?this.setValues("hsv", e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb", e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk", e)))):new o(t);var e};o.prototype={isValid:function(){return this.valid}, rgb:function(){return this.setSpace("rgb", arguments)}, hsl:function(){return this.setSpace("hsl", arguments)}, hsv:function(){return this.setSpace("hsv", arguments)}, hwb:function(){return this.setSpace("hwb", arguments)}, cmyk:function(){return this.setSpace("cmyk", arguments)}, rgbArray:function(){return this.values.rgb}, hslArray:function(){return this.values.hsl}, hsvArray:function(){return this.values.hsv}, hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb}, cmykArray:function(){return this.values.cmyk}, rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])}, hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])}, alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha", t), this)}, red:function(t){return this.setChannel("rgb", 0, t)}, green:function(t){return this.setChannel("rgb", 1, t)}, blue:function(t){return this.setChannel("rgb", 2, t)}, hue:function(t){return t&&(t=(t%=360)<0?360+t:t), this.setChannel("hsl", 0, t)}, saturation:function(t){return this.setChannel("hsl", 1, t)}, lightness:function(t){return this.setChannel("hsl", 2, t)}, saturationv:function(t){return this.setChannel("hsv", 1, t)}, whiteness:function(t){return this.setChannel("hwb", 1, t)}, blackness:function(t){return this.setChannel("hwb", 2, t)}, value:function(t){return this.setChannel("hsv", 2, t)}, cyan:function(t){return this.setChannel("cmyk", 0, t)}, magenta:function(t){return this.setChannel("cmyk", 1, t)}, yellow:function(t){return this.setChannel("cmyk", 2, t)}, black:function(t){return this.setChannel("cmyk", 3, t)}, hexString:function(){return a.hexString(this.values.rgb)}, rgbString:function(){return a.rgbString(this.values.rgb, this.values.alpha)}, rgbaString:function(){return a.rgbaString(this.values.rgb, this.values.alpha)}, percentString:function(){return a.percentString(this.values.rgb, this.values.alpha)}, hslString:function(){return a.hslString(this.values.hsl, this.values.alpha)}, hslaString:function(){return a.hslaString(this.values.hsl, this.values.alpha)}, hwbString:function(){return a.hwbString(this.values.hwb, this.values.alpha)}, keyword:function(){return a.keyword(this.values.rgb, this.values.alpha)}, rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]}, luminosity:function(){for(var t=this.values.rgb, e=[], i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055, 2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]}, contrast:function(t){var e=this.luminosity(), i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)}, level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""}, dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128}, light:function(){return!this.dark()}, negate:function(){for(var t=[], e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb", t), this}, lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t, this.setValues("hsl", e), this}, darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t, this.setValues("hsl", e), this}, saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t, this.setValues("hsl", e), this}, desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t, this.setValues("hsl", e), this}, whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t, this.setValues("hwb", e), this}, blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t, this.setValues("hwb", e), this}, greyscale:function(){var t=this.values.rgb, e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb", [e, e, e]), this}, clearer:function(t){var e=this.values.alpha;return this.setValues("alpha", e-e*t), this}, opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha", e+e*t), this}, rotate:function(t){var e=this.values.hsl, i=(e[0]+t)%360;return e[0]=i<0?360+i:i, this.setValues("hsl", e), this}, mix:function(t, e){var i=this, n=t, a=void 0===e?.5:e, o=2*a-1, r=i.alpha()-n.alpha(), s=((o*r==-1?o:(o+r)/(1+o*r))+1)/2, l=1-s;return this.rgb(s*i.red()+l*n.red(), s*i.green()+l*n.green(), s*i.blue()+l*n.blue()).alpha(i.alpha()*a+n.alpha()*(1-a))}, toJSON:function(){return this.rgb()}, clone:function(){var t, e, i=new o, n=this.values, a=i.values;for(var r in n)n.hasOwnProperty(r)&&(t=n[r], "[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:", t));return i}}, o.prototype.spaces={rgb:["red", "green", "blue"], hsl:["hue", "saturation", "lightness"], hsv:["hue", "saturation", "value"], hwb:["hue", "whiteness", "blackness"], cmyk:["cyan", "magenta", "yellow", "black"]}, o.prototype.maxes={rgb:[255, 255, 255], hsl:[360, 100, 100], hsv:[360, 100, 100], hwb:[360, 100, 100], cmyk:[100, 100, 100, 100]}, o.prototype.getValues=function(t){for(var e=this.values, i={}, n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha), i}, o.prototype.setValues=function(t, e){var i, a, o=this.values, r=this.spaces, s=this.maxes, l=1;if(this.valid=!0, "alpha"===t)l=e;else if(e.length)o[t]=e.slice(0, t.length), l=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)o[t][i]=e[t.charAt(i)];l=e.a}else if(void 0!==e[r[t][0]]){var u=r[t];for(i=0;i<t.length;i++)o[t][i]=e[u[i]];l=e.alpha}if(o.alpha=Math.max(0, Math.min(1, void 0===l?o.alpha:l)), "alpha"===t)return!1;for(i=0;i<t.length;i++)a=Math.max(0, Math.min(s[t][i], o[t][i])), o[t][i]=Math.round(a);for(var d in r)d!==t&&(o[d]=n[t][d](o[t]));return!0}, o.prototype.setSpace=function(t, e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)), this.setValues(t, i), this)}, o.prototype.setChannel=function(t, e, i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i, this.setValues(t, n), this)}, "undefined"!=typeof window&&(window.Color=o), e.exports=o}, {2:2, 5:5}], 4:[function(t, e, i){function n(t){var e, i, n=t[0]/255, a=t[1]/255, o=t[2]/255, r=Math.min(n, a, o), s=Math.max(n, a, o), l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l), (e=Math.min(60*e, 360))<0&&(e+=360), i=(r+s)/2, [e, 100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)), 100*i]}function a(t){var e, i, n=t[0], a=t[1], o=t[2], r=Math.min(n, a, o), s=Math.max(n, a, o), l=s-r;return i=0==s?0:l/s*1e3/10, s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l), (e=Math.min(60*e, 360))<0&&(e+=360), [e, i, s/255*1e3/10]}function o(t){var e=t[0], i=t[1], a=t[2];return[n(t)[0], 100*(1/255*Math.min(e, Math.min(i, a))), 100*(a=1-1/255*Math.max(e, Math.max(i, a)))]}function s(t){var e, i=t[0]/255, n=t[1]/255, a=t[2]/255;return[100*((1-i-(e=Math.min(1-i, 1-n, 1-a)))/(1-e)||0), 100*((1-n-e)/(1-e)||0), 100*((1-a-e)/(1-e)||0), 100*e]}function l(t){return C[JSON.stringify(t)]}function u(t){var e=t[0]/255, i=t[1]/255, n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055, 2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055, 2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055, 2.4):n/12.92)), 100*(.2126*e+.7152*i+.0722*n), 100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=u(t), i=e[0], n=e[1], a=e[2];return n/=100, a/=108.883, i=(i/=95.047)>.008856?Math.pow(i, 1/3):7.787*i+16/116, [116*(n=n>.008856?Math.pow(n, 1/3):7.787*n+16/116)-16, 500*(i-n), 200*(n-(a=a>.008856?Math.pow(a, 1/3):7.787*a+16/116))]}function c(t){var e, i, n, a, o, r=t[0]/360, s=t[1]/100, l=t[2]/100;if(0==s)return[o=255*l, o, o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s), a=[0, 0, 0];for(var u=0;u<3;u++)(n=r+1/3*-(u-1))<0&&n++, n>1&&n--, o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e, a[u]=255*o;return a}function h(t){var e=t[0]/60, i=t[1]/100, n=t[2]/100, a=Math.floor(e)%6, o=e-Math.floor(e), r=255*n*(1-i), s=255*n*(1-i*o), l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n, l, r];case 1:return[s, n, r];case 2:return[r, n, l];case 3:return[r, s, n];case 4:return[l, r, n];case 5:return[n, r, s]}}function f(t){var e, i, n, a, o=t[0]/360, s=t[1]/100, l=t[2]/100, u=s+l;switch(u>1&&(s/=u, l/=u), n=6*o-(e=Math.floor(6*o)), 0!=(1&e)&&(n=1-n), a=s+n*((i=1-l)-s), e){default:case 6:case 0:r=i, g=a, b=s;break;case 1:r=a, g=i, b=s;break;case 2:r=s, g=i, b=a;break;case 3:r=s, g=a, b=i;break;case 4:r=a, g=s, b=i;break;case 5:r=i, g=s, b=a}return[255*r, 255*g, 255*b]}function p(t){var e=t[0]/100, i=t[1]/100, n=t[2]/100, a=t[3]/100;return[255*(1-Math.min(1, e*(1-a)+a)), 255*(1-Math.min(1, i*(1-a)+a)), 255*(1-Math.min(1, n*(1-a)+a))]}function m(t){var e, i, n, a=t[0]/100, o=t[1]/100, r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r, n=.0557*a+-.204*o+1.057*r, e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e, 1/2.4)-.055:e*=12.92, i=i>.0031308?1.055*Math.pow(i, 1/2.4)-.055:i*=12.92, n=n>.0031308?1.055*Math.pow(n, 1/2.4)-.055:n*=12.92, [255*(e=Math.min(Math.max(0, e), 1)), 255*(i=Math.min(Math.max(0, i), 1)), 255*(n=Math.min(Math.max(0, n), 1))]}function v(t){var e=t[0], i=t[1], n=t[2];return i/=100, n/=108.883, e=(e/=95.047)>.008856?Math.pow(e, 1/3):7.787*e+16/116, [116*(i=i>.008856?Math.pow(i, 1/3):7.787*i+16/116)-16, 500*(e-i), 200*(i-(n=n>.008856?Math.pow(n, 1/3):7.787*n+16/116))]}function x(t){var e, i, n, a, o=t[0], r=t[1], s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116, 3), a=Math.pow(i/100, 1/3)), [e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a, 3), i, n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200, 3)]}function y(t){var e, i=t[0], n=t[1], a=t[2];return(e=360*Math.atan2(a, n)/2/Math.PI)<0&&(e+=360), [i, Math.sqrt(n*n+a*a), e]}function k(t){return m(x(t))}function M(t){var e, i=t[0], n=t[1];return e=t[2]/360*2*Math.PI, [i, n*Math.cos(e), n*Math.sin(e)]}function w(t){return S[t]}e.exports={rgb2hsl:n, rgb2hsv:a, rgb2hwb:o, rgb2cmyk:s, rgb2keyword:l, rgb2xyz:u, rgb2lab:d, rgb2lch:function(t){return y(d(t))}, hsl2rgb:c, hsl2hsv:function(t){var e=t[0], i=t[1]/100, n=t[2]/100;if(0===n)return[0, 0, 0];return[e, 100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)), 100*((n+i)/2)]}, hsl2hwb:function(t){return o(c(t))}, hsl2cmyk:function(t){return s(c(t))}, hsl2keyword:function(t){return l(c(t))}, hsv2rgb:h, hsv2hsl:function(t){var e, i, n=t[0], a=t[1]/100, o=t[2]/100;return e=a*o, [n, 100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0), 100*(i/=2)]}, hsv2hwb:function(t){return o(h(t))}, hsv2cmyk:function(t){return s(h(t))}, hsv2keyword:function(t){return l(h(t))}, hwb2rgb:f, hwb2hsl:function(t){return n(f(t))}, hwb2hsv:function(t){return a(f(t))}, hwb2cmyk:function(t){return s(f(t))}, hwb2keyword:function(t){return l(f(t))}, cmyk2rgb:p, cmyk2hsl:function(t){return n(p(t))}, cmyk2hsv:function(t){return a(p(t))}, cmyk2hwb:function(t){return o(p(t))}, cmyk2keyword:function(t){return l(p(t))}, keyword2rgb:w, keyword2hsl:function(t){return n(w(t))}, keyword2hsv:function(t){return a(w(t))}, keyword2hwb:function(t){return o(w(t))}, keyword2cmyk:function(t){return s(w(t))}, keyword2lab:function(t){return d(w(t))}, keyword2xyz:function(t){return u(w(t))}, xyz2rgb:m, xyz2lab:v, xyz2lch:function(t){return y(v(t))}, lab2xyz:x, lab2rgb:k, lab2lch:y, lch2lab:M, lch2xyz:function(t){return x(M(t))}, lch2rgb:function(t){return k(M(t))}};var S={aliceblue:[240, 248, 255], antiquewhite:[250, 235, 215], aqua:[0, 255, 255], aquamarine:[127, 255, 212], azure:[240, 255, 255], beige:[245, 245, 220], bisque:[255, 228, 196], black:[0, 0, 0], blanchedalmond:[255, 235, 205], blue:[0, 0, 255], blueviolet:[138, 43, 226], brown:[165, 42, 42], burlywood:[222, 184, 135], cadetblue:[95, 158, 160], chartreuse:[127, 255, 0], chocolate:[210, 105, 30], coral:[255, 127, 80], cornflowerblue:[100, 149, 237], cornsilk:[255, 248, 220], crimson:[220, 20, 60], cyan:[0, 255, 255], darkblue:[0, 0, 139], darkcyan:[0, 139, 139], darkgoldenrod:[184, 134, 11], darkgray:[169, 169, 169], darkgreen:[0, 100, 0], darkgrey:[169, 169, 169], darkkhaki:[189, 183, 107], darkmagenta:[139, 0, 139], darkolivegreen:[85, 107, 47], darkorange:[255, 140, 0], darkorchid:[153, 50, 204], darkred:[139, 0, 0], darksalmon:[233, 150, 122], darkseagreen:[143, 188, 143], darkslateblue:[72, 61, 139], darkslategray:[47, 79, 79], darkslategrey:[47, 79, 79], darkturquoise:[0, 206, 209], darkviolet:[148, 0, 211], deeppink:[255, 20, 147], deepskyblue:[0, 191, 255], dimgray:[105, 105, 105], dimgrey:[105, 105, 105], dodgerblue:[30, 144, 255], firebrick:[178, 34, 34], floralwhite:[255, 250, 240], forestgreen:[34, 139, 34], fuchsia:[255, 0, 255], gainsboro:[220, 220, 220], ghostwhite:[248, 248, 255], gold:[255, 215, 0], goldenrod:[218, 165, 32], gray:[128, 128, 128], green:[0, 128, 0], greenyellow:[173, 255, 47], grey:[128, 128, 128], honeydew:[240, 255, 240], hotpink:[255, 105, 180], indianred:[205, 92, 92], indigo:[75, 0, 130], ivory:[255, 255, 240], khaki:[240, 230, 140], lavender:[230, 230, 250], lavenderblush:[255, 240, 245], lawngreen:[124, 252, 0], lemonchiffon:[255, 250, 205], lightblue:[173, 216, 230], lightcoral:[240, 128, 128], lightcyan:[224, 255, 255], lightgoldenrodyellow:[250, 250, 210], lightgray:[211, 211, 211], lightgreen:[144, 238, 144], lightgrey:[211, 211, 211], lightpink:[255, 182, 193], lightsalmon:[255, 160, 122], lightseagreen:[32, 178, 170], lightskyblue:[135, 206, 250], lightslategray:[119, 136, 153], lightslategrey:[119, 136, 153], lightsteelblue:[176, 196, 222], lightyellow:[255, 255, 224], lime:[0, 255, 0], limegreen:[50, 205, 50], linen:[250, 240, 230], magenta:[255, 0, 255], maroon:[128, 0, 0], mediumaquamarine:[102, 205, 170], mediumblue:[0, 0, 205], mediumorchid:[186, 85, 211], mediumpurple:[147, 112, 219], mediumseagreen:[60, 179, 113], mediumslateblue:[123, 104, 238], mediumspringgreen:[0, 250, 154], mediumturquoise:[72, 209, 204], mediumvioletred:[199, 21, 133], midnightblue:[25, 25, 112], mintcream:[245, 255, 250], mistyrose:[255, 228, 225], moccasin:[255, 228, 181], navajowhite:[255, 222, 173], navy:[0, 0, 128], oldlace:[253, 245, 230], olive:[128, 128, 0], olivedrab:[107, 142, 35], orange:[255, 165, 0], orangered:[255, 69, 0], orchid:[218, 112, 214], palegoldenrod:[238, 232, 170], palegreen:[152, 251, 152], paleturquoise:[175, 238, 238], palevioletred:[219, 112, 147], papayawhip:[255, 239, 213], peachpuff:[255, 218, 185], peru:[205, 133, 63], pink:[255, 192, 203], plum:[221, 160, 221], powderblue:[176, 224, 230], purple:[128, 0, 128], rebeccapurple:[102, 51, 153], red:[255, 0, 0], rosybrown:[188, 143, 143], royalblue:[65, 105, 225], saddlebrown:[139, 69, 19], salmon:[250, 128, 114], sandybrown:[244, 164, 96], seagreen:[46, 139, 87], seashell:[255, 245, 238], sienna:[160, 82, 45], silver:[192, 192, 192], skyblue:[135, 206, 235], slateblue:[106, 90, 205], slategray:[112, 128, 144], slategrey:[112, 128, 144], snow:[255, 250, 250], springgreen:[0, 255, 127], steelblue:[70, 130, 180], tan:[210, 180, 140], teal:[0, 128, 128], thistle:[216, 191, 216], tomato:[255, 99, 71], turquoise:[64, 224, 208], violet:[238, 130, 238], wheat:[245, 222, 179], white:[255, 255, 255], whitesmoke:[245, 245, 245], yellow:[255, 255, 0], yellowgreen:[154, 205, 50]}, C={};for(var _ in S)C[JSON.stringify(S[_])]=_}, {}], 5:[function(t, e, i){var n=t(4), a=function(){return new u};for(var o in n){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)), n[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o), s=r[1], l=r[2];(a[s]=a[s]||{})[l]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var i=n[t](e);if("string"==typeof i||void 0===i)return i;for(var a=0;a<i.length;a++)i[a]=Math.round(i[a]);return i}}(o)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t, e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)), this.setValues(t, i))}, u.prototype.setValues=function(t, e){return this.space=t, this.convs={}, this.convs[t]=e, this}, u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space, n=this.convs[i];e=a[i][t](n), this.convs[t]=e}return e}, ["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(t){u.prototype[t]=function(e){return this.routeSpace(t, arguments)}}), e.exports=a}, {4:4}], 6:[function(t, e, i){"use strict";e.exports={aliceblue:[240, 248, 255], antiquewhite:[250, 235, 215], aqua:[0, 255, 255], aquamarine:[127, 255, 212], azure:[240, 255, 255], beige:[245, 245, 220], bisque:[255, 228, 196], black:[0, 0, 0], blanchedalmond:[255, 235, 205], blue:[0, 0, 255], blueviolet:[138, 43, 226], brown:[165, 42, 42], burlywood:[222, 184, 135], cadetblue:[95, 158, 160], chartreuse:[127, 255, 0], chocolate:[210, 105, 30], coral:[255, 127, 80], cornflowerblue:[100, 149, 237], cornsilk:[255, 248, 220], crimson:[220, 20, 60], cyan:[0, 255, 255], darkblue:[0, 0, 139], darkcyan:[0, 139, 139], darkgoldenrod:[184, 134, 11], darkgray:[169, 169, 169], darkgreen:[0, 100, 0], darkgrey:[169, 169, 169], darkkhaki:[189, 183, 107], darkmagenta:[139, 0, 139], darkolivegreen:[85, 107, 47], darkorange:[255, 140, 0], darkorchid:[153, 50, 204], darkred:[139, 0, 0], darksalmon:[233, 150, 122], darkseagreen:[143, 188, 143], darkslateblue:[72, 61, 139], darkslategray:[47, 79, 79], darkslategrey:[47, 79, 79], darkturquoise:[0, 206, 209], darkviolet:[148, 0, 211], deeppink:[255, 20, 147], deepskyblue:[0, 191, 255], dimgray:[105, 105, 105], dimgrey:[105, 105, 105], dodgerblue:[30, 144, 255], firebrick:[178, 34, 34], floralwhite:[255, 250, 240], forestgreen:[34, 139, 34], fuchsia:[255, 0, 255], gainsboro:[220, 220, 220], ghostwhite:[248, 248, 255], gold:[255, 215, 0], goldenrod:[218, 165, 32], gray:[128, 128, 128], green:[0, 128, 0], greenyellow:[173, 255, 47], grey:[128, 128, 128], honeydew:[240, 255, 240], hotpink:[255, 105, 180], indianred:[205, 92, 92], indigo:[75, 0, 130], ivory:[255, 255, 240], khaki:[240, 230, 140], lavender:[230, 230, 250], lavenderblush:[255, 240, 245], lawngreen:[124, 252, 0], lemonchiffon:[255, 250, 205], lightblue:[173, 216, 230], lightcoral:[240, 128, 128], lightcyan:[224, 255, 255], lightgoldenrodyellow:[250, 250, 210], lightgray:[211, 211, 211], lightgreen:[144, 238, 144], lightgrey:[211, 211, 211], lightpink:[255, 182, 193], lightsalmon:[255, 160, 122], lightseagreen:[32, 178, 170], lightskyblue:[135, 206, 250], lightslategray:[119, 136, 153], lightslategrey:[119, 136, 153], lightsteelblue:[176, 196, 222], lightyellow:[255, 255, 224], lime:[0, 255, 0], limegreen:[50, 205, 50], linen:[250, 240, 230], magenta:[255, 0, 255], maroon:[128, 0, 0], mediumaquamarine:[102, 205, 170], mediumblue:[0, 0, 205], mediumorchid:[186, 85, 211], mediumpurple:[147, 112, 219], mediumseagreen:[60, 179, 113], mediumslateblue:[123, 104, 238], mediumspringgreen:[0, 250, 154], mediumturquoise:[72, 209, 204], mediumvioletred:[199, 21, 133], midnightblue:[25, 25, 112], mintcream:[245, 255, 250], mistyrose:[255, 228, 225], moccasin:[255, 228, 181], navajowhite:[255, 222, 173], navy:[0, 0, 128], oldlace:[253, 245, 230], olive:[128, 128, 0], olivedrab:[107, 142, 35], orange:[255, 165, 0], orangered:[255, 69, 0], orchid:[218, 112, 214], palegoldenrod:[238, 232, 170], palegreen:[152, 251, 152], paleturquoise:[175, 238, 238], palevioletred:[219, 112, 147], papayawhip:[255, 239, 213], peachpuff:[255, 218, 185], peru:[205, 133, 63], pink:[255, 192, 203], plum:[221, 160, 221], powderblue:[176, 224, 230], purple:[128, 0, 128], rebeccapurple:[102, 51, 153], red:[255, 0, 0], rosybrown:[188, 143, 143], royalblue:[65, 105, 225], saddlebrown:[139, 69, 19], salmon:[250, 128, 114], sandybrown:[244, 164, 96], seagreen:[46, 139, 87], seashell:[255, 245, 238], sienna:[160, 82, 45], silver:[192, 192, 192], skyblue:[135, 206, 235], slateblue:[106, 90, 205], slategray:[112, 128, 144], slategrey:[112, 128, 144], snow:[255, 250, 250], springgreen:[0, 255, 127], steelblue:[70, 130, 180], tan:[210, 180, 140], teal:[0, 128, 128], thistle:[216, 191, 216], tomato:[255, 99, 71], turquoise:[64, 224, 208], violet:[238, 130, 238], wheat:[245, 222, 179], white:[255, 255, 255], whitesmoke:[245, 245, 245], yellow:[255, 255, 0], yellowgreen:[154, 205, 50]}}, {}], 7:[function(t, e, i){var n=t(29)();n.helpers=t(45), t(27)(n), n.defaults=t(25), n.Element=t(26), n.elements=t(40), n.Interaction=t(28), n.layouts=t(30), n.platform=t(48), n.plugins=t(31), n.Ticks=t(34), t(22)(n), t(23)(n), t(24)(n), t(33)(n), t(32)(n), t(35)(n), t(55)(n), t(53)(n), t(54)(n), t(56)(n), t(57)(n), t(58)(n), t(15)(n), t(16)(n), t(17)(n), t(18)(n), t(19)(n), t(20)(n), t(21)(n), t(8)(n), t(9)(n), t(10)(n), t(11)(n), t(12)(n), t(13)(n), t(14)(n);var a=t(49);for(var o in a)a.hasOwnProperty(o)&&n.plugins.register(a[o]);n.platform.initialize(), e.exports=n, "undefined"!=typeof window&&(window.Chart=n), n.Legend=a.legend._element, n.Title=a.title._element, n.pluginService=n.plugins, n.PluginBase=n.Element.extend({}), n.canvasHelpers=n.helpers.canvas, n.layoutService=n.layouts}, {10:10, 11:11, 12:12, 13:13, 14:14, 15:15, 16:16, 17:17, 18:18, 19:19, 20:20, 21:21, 22:22, 23:23, 24:24, 25:25, 26:26, 27:27, 28:28, 29:29, 30:30, 31:31, 32:32, 33:33, 34:34, 35:35, 40:40, 45:45, 48:48, 49:49, 53:53, 54:54, 55:55, 56:56, 57:57, 58:58, 8:8, 9:9}], 8:[function(t, e, i){"use strict";e.exports=function(t){t.Bar=function(e, i){return i.type="bar", new t(e, i)}}}, {}], 9:[function(t, e, i){"use strict";e.exports=function(t){t.Bubble=function(e, i){return i.type="bubble", new t(e, i)}}}, {}], 10:[function(t, e, i){"use strict";e.exports=function(t){t.Doughnut=function(e, i){return i.type="doughnut", new t(e, i)}}}, {}], 11:[function(t, e, i){"use strict";e.exports=function(t){t.Line=function(e, i){return i.type="line", new t(e, i)}}}, {}], 12:[function(t, e, i){"use strict";e.exports=function(t){t.PolarArea=function(e, i){return i.type="polarArea", new t(e, i)}}}, {}], 13:[function(t, e, i){"use strict";e.exports=function(t){t.Radar=function(e, i){return i.type="radar", new t(e, i)}}}, {}], 14:[function(t, e, i){"use strict";e.exports=function(t){t.Scatter=function(e, i){return i.type="scatter", new t(e, i)}}}, {}], 15:[function(t, e, i){"use strict";var n=t(25), a=t(40), o=t(45);n._set("bar", {hover:{mode:"label"}, scales:{xAxes:[{type:"category", categoryPercentage:.8, barPercentage:.9, offset:!0, gridLines:{offsetGridLines:!0}}], yAxes:[{type:"linear"}]}}), n._set("horizontalBar", {hover:{mode:"index", axis:"y"}, scales:{xAxes:[{type:"linear", position:"bottom"}], yAxes:[{position:"left", type:"category", categoryPercentage:.8, barPercentage:.9, offset:!0, gridLines:{offsetGridLines:!0}}]}, elements:{rectangle:{borderSkipped:"left"}}, tooltips:{callbacks:{title:function(t, e){var i="";return t.length>0&&(t[0].yLabel?i=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(i=e.labels[t[0].index])), i}, label:function(t, e){return(e.datasets[t.datasetIndex].label||"")+": "+t.xLabel}}, mode:"index", axis:"y"}}), e.exports=function(t){t.controllers.bar=t.DatasetController.extend({dataElementType:a.Rectangle, initialize:function(){var e;t.DatasetController.prototype.initialize.apply(this, arguments), (e=this.getMeta()).stack=this.getDataset().stack, e.bar=!0}, update:function(t){var e, i, n=this.getMeta().data;for(this._ruler=this.getRuler(), e=0, i=n.length;e<i;++e)this.updateElement(n[e], e, t)}, updateElement:function(t, e, i){var n=this, a=n.chart, r=n.getMeta(), s=n.getDataset(), l=t.custom||{}, u=a.options.elements.rectangle;t._xScale=n.getScaleForId(r.xAxisID), t._yScale=n.getScaleForId(r.yAxisID), t._datasetIndex=n.index, t._index=e, t._model={datasetLabel:s.label, label:a.data.labels[e], borderSkipped:l.borderSkipped?l.borderSkipped:u.borderSkipped, backgroundColor:l.backgroundColor?l.backgroundColor:o.valueAtIndexOrDefault(s.backgroundColor, e, u.backgroundColor), borderColor:l.borderColor?l.borderColor:o.valueAtIndexOrDefault(s.borderColor, e, u.borderColor), borderWidth:l.borderWidth?l.borderWidth:o.valueAtIndexOrDefault(s.borderWidth, e, u.borderWidth)}, n.updateElementGeometry(t, e, i), t.pivot()}, updateElementGeometry:function(t, e, i){var n=this, a=t._model, o=n.getValueScale(), r=o.getBasePixel(), s=o.isHorizontal(), l=n._ruler||n.getRuler(), u=n.calculateBarValuePixels(n.index, e), d=n.calculateBarIndexPixels(n.index, e, l);a.horizontal=s, a.base=i?r:u.base, a.x=s?i?r:u.head:d.center, a.y=s?d.center:i?r:u.head, a.height=s?d.size:void 0, a.width=s?void 0:d.size}, getValueScaleId:function(){return this.getMeta().yAxisID}, getIndexScaleId:function(){return this.getMeta().xAxisID}, getValueScale:function(){return this.getScaleForId(this.getValueScaleId())}, getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())}, _getStacks:function(t){var e, i, n=this.chart, a=this.getIndexScale().options.stacked, o=void 0===t?n.data.datasets.length:t+1, r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r}, getStackCount:function(){return this._getStacks().length}, getStackIndex:function(t, e){var i=this._getStacks(t), n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n}, getRuler:function(){var t, e, i=this.getIndexScale(), n=this.getStackCount(), a=this.index, r=i.isHorizontal(), s=r?i.left:i.top, l=s+(r?i.width:i.height), u=[];for(t=0, e=this.getMeta().data.length;t<e;++t)u.push(i.getPixelForValue(null, t, a));return{min:o.isNullOrUndef(i.options.barThickness)?function(t, e){var i, n, a, o, r=t.isHorizontal()?t.width:t.height, s=t.getTicks();for(a=1, o=e.length;a<o;++a)r=Math.min(r, e[a]-e[a-1]);for(a=0, o=s.length;a<o;++a)n=t.getPixelForTick(a), r=a>0?Math.min(r, n-i):r, i=n;return r}(i, u):-1, pixels:u, start:s, end:l, stackCount:n, scale:i}}, calculateBarValuePixels:function(t, e){var i, n, a, o, r, s, l=this.chart, u=this.getMeta(), d=this.getValueScale(), c=l.data.datasets, h=d.getRightValue(c[t].data[e]), f=d.options.stacked, g=u.stack, p=0;if(f||void 0===f&&void 0!==g)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===g&&n.controller.getValueScaleId()===d.id&&l.isDatasetVisible(i)&&(a=d.getRightValue(c[i].data[e]), (h<0&&a<0||h>=0&&a>0)&&(p+=a));return o=d.getPixelForValue(p), {size:s=((r=d.getPixelForValue(p+h))-o)/2, base:o, head:r, center:r+s/2}}, calculateBarIndexPixels:function(t, e, i){var n, a, r, s, l, u, d, c, h, f, g, p, m, v, b, x, y, k=i.scale.options, M="flex"===k.barThickness?(h=e, g=k, m=(f=i).pixels, v=m[h], b=h>0?m[h-1]:null, x=h<m.length-1?m[h+1]:null, y=g.categoryPercentage, null===b&&(b=v-(null===x?f.end-v:x-v)), null===x&&(x=v+v-b), p=v-(v-b)/2*y, {chunk:(x-b)/2*y/f.stackCount, ratio:g.barPercentage, start:p}):(n=e, a=i, u=(r=k).barThickness, d=a.stackCount, c=a.pixels[n], o.isNullOrUndef(u)?(s=a.min*r.categoryPercentage, l=r.barPercentage):(s=u*d, l=1), {chunk:s/d, ratio:l, start:c-s/2}), w=this.getStackIndex(t, this.getMeta().stack), S=M.start+M.chunk*w+M.chunk/2, C=Math.min(o.valueOrDefault(k.maxBarThickness, 1/0), M.chunk*M.ratio);return{base:S-C/2, head:S+C/2, center:S, size:C}}, draw:function(){var t=this.chart, e=this.getValueScale(), i=this.getMeta().data, n=this.getDataset(), a=i.length, r=0;for(o.canvas.clipArea(t.ctx, t.chartArea);r<a;++r)isNaN(e.getRightValue(n.data[r]))||i[r].draw();o.canvas.unclipArea(t.ctx)}, setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex], i=t._index, n=t.custom||{}, a=t._model;a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o.valueAtIndexOrDefault(e.hoverBackgroundColor, i, o.getHoverColor(a.backgroundColor)), a.borderColor=n.hoverBorderColor?n.hoverBorderColor:o.valueAtIndexOrDefault(e.hoverBorderColor, i, o.getHoverColor(a.borderColor)), a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o.valueAtIndexOrDefault(e.hoverBorderWidth, i, a.borderWidth)}, removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex], i=t._index, n=t.custom||{}, a=t._model, r=this.chart.options.elements.rectangle;a.backgroundColor=n.backgroundColor?n.backgroundColor:o.valueAtIndexOrDefault(e.backgroundColor, i, r.backgroundColor), a.borderColor=n.borderColor?n.borderColor:o.valueAtIndexOrDefault(e.borderColor, i, r.borderColor), a.borderWidth=n.borderWidth?n.borderWidth:o.valueAtIndexOrDefault(e.borderWidth, i, r.borderWidth)}}), t.controllers.horizontalBar=t.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID}, getIndexScaleId:function(){return this.getMeta().yAxisID}})}}, {25:25, 40:40, 45:45}], 16:[function(t, e, i){"use strict";var n=t(25), a=t(40), o=t(45);n._set("bubble", {hover:{mode:"single"}, scales:{xAxes:[{type:"linear", position:"bottom", id:"x-axis-0"}], yAxes:[{type:"linear", position:"left", id:"y-axis-0"}]}, tooltips:{callbacks:{title:function(){return""}, label:function(t, e){var i=e.datasets[t.datasetIndex].label||"", n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}}), e.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:a.Point, update:function(t){var e=this, i=e.getMeta().data;o.each(i, function(i, n){e.updateElement(i, n, t)})}, updateElement:function(t, e, i){var n=this, a=n.getMeta(), o=t.custom||{}, r=n.getScaleForId(a.xAxisID), s=n.getScaleForId(a.yAxisID), l=n._resolveElementOptions(t, e), u=n.getDataset().data[e], d=n.index, c=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof u?u:NaN, e, d), h=i?s.getBasePixel():s.getPixelForValue(u, e, d);t._xScale=r, t._yScale=s, t._options=l, t._datasetIndex=d, t._index=e, t._model={backgroundColor:l.backgroundColor, borderColor:l.borderColor, borderWidth:l.borderWidth, hitRadius:l.hitRadius, pointStyle:l.pointStyle, radius:i?0:l.radius, skip:o.skip||isNaN(c)||isNaN(h), x:c, y:h}, t.pivot()}, setHoverStyle:function(t){var e=t._model, i=t._options;e.backgroundColor=o.valueOrDefault(i.hoverBackgroundColor, o.getHoverColor(i.backgroundColor)), e.borderColor=o.valueOrDefault(i.hoverBorderColor, o.getHoverColor(i.borderColor)), e.borderWidth=o.valueOrDefault(i.hoverBorderWidth, i.borderWidth), e.radius=i.radius+i.hoverRadius}, removeHoverStyle:function(t){var e=t._model, i=t._options;e.backgroundColor=i.backgroundColor, e.borderColor=i.borderColor, e.borderWidth=i.borderWidth, e.radius=i.radius}, _resolveElementOptions:function(t, e){var i, n, a, r=this.chart, s=r.data.datasets[this.index], l=t.custom||{}, u=r.options.elements.point, d=o.options.resolve, c=s.data[e], h={}, f={chart:r, dataIndex:e, dataset:s, datasetIndex:this.index}, g=["backgroundColor", "borderColor", "borderWidth", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth", "hoverRadius", "hitRadius", "pointStyle"];for(i=0, n=g.length;i<n;++i)h[a=g[i]]=d([l[a], s[a], u[a]], f, e);return h.radius=d([l.radius, c?c.r:void 0, s.radius, u.radius], f, e), h}})}}, {25:25, 40:40, 45:45}], 17:[function(t, e, i){"use strict";var n=t(25), a=t(40), o=t(45);n._set("doughnut", {animation:{animateRotate:!0, animateScale:!1}, hover:{mode:"single"}, legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data, n=i.datasets, a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'), a[o]&&e.push(a[o]), e.push("</li>");return e.push("</ul>"), e.join("")}, legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i, n){var a=t.getDatasetMeta(0), r=e.datasets[0], s=a.data[n], l=s&&s.custom||{}, u=o.valueAtIndexOrDefault, d=t.options.elements.arc;return{text:i, fillStyle:l.backgroundColor?l.backgroundColor:u(r.backgroundColor, n, d.backgroundColor), strokeStyle:l.borderColor?l.borderColor:u(r.borderColor, n, d.borderColor), lineWidth:l.borderWidth?l.borderWidth:u(r.borderWidth, n, d.borderWidth), hidden:isNaN(r.data[n])||a.data[n].hidden, index:n}}):[]}}, onClick:function(t, e){var i, n, a, o=e.index, r=this.chart;for(i=0, n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}}, cutoutPercentage:50, rotation:-.5*Math.PI, circumference:2*Math.PI, tooltips:{callbacks:{title:function(){return""}, label:function(t, e){var i=e.labels[t.index], n=": "+e.datasets[t.datasetIndex].data[t.index];return o.isArray(i)?(i=i.slice())[0]+=n:i+=n, i}}}}), n._set("pie", o.clone(n.doughnut)), n._set("pie", {cutoutPercentage:0}), e.exports=function(t){t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:a.Arc, linkScales:o.noop, getRingIndex:function(t){for(var e=0, i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e}, update:function(t){var e=this, i=e.chart, n=i.chartArea, a=i.options, r=a.elements.arc, s=n.right-n.left-r.borderWidth, l=n.bottom-n.top-r.borderWidth, u=Math.min(s, l), d={x:0, y:0}, c=e.getMeta(), h=a.cutoutPercentage, f=a.circumference;if(f<2*Math.PI){var g=a.rotation%(2*Math.PI), p=(g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0))+f, m=Math.cos(g), v=Math.sin(g), b=Math.cos(p), x=Math.sin(p), y=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p, k=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p, M=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p, w=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p, S=h/100, C=M?-1:Math.min(m*(m<0?1:S), b*(b<0?1:S)), _=w?-1:Math.min(v*(v<0?1:S), x*(x<0?1:S)), D=y?1:Math.max(m*(m>0?1:S), b*(b>0?1:S)), I=k?1:Math.max(v*(v>0?1:S), x*(x>0?1:S)), P=.5*(D-C), A=.5*(I-_);u=Math.min(s/P, l/A), d={x:-.5*(D+C), y:-.5*(I+_)}}i.borderWidth=e.getMaxBorderWidth(c.data), i.outerRadius=Math.max((u-i.borderWidth)/2, 0), i.innerRadius=Math.max(h?i.outerRadius/100*h:0, 0), i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(), i.offsetX=d.x*i.outerRadius, i.offsetY=d.y*i.outerRadius, c.total=e.calculateTotal(), e.outerRadius=i.outerRadius-i.radiusLength*e.getRingIndex(e.index), e.innerRadius=Math.max(e.outerRadius-i.radiusLength, 0), o.each(c.data, function(i, n){e.updateElement(i, n, t)})}, updateElement:function(t, e, i){var n=this, a=n.chart, r=a.chartArea, s=a.options, l=s.animation, u=(r.left+r.right)/2, d=(r.top+r.bottom)/2, c=s.rotation, h=s.rotation, f=n.getDataset(), g=i&&l.animateRotate?0:t.hidden?0:n.calculateCircumference(f.data[e])*(s.circumference/(2*Math.PI)), p=i&&l.animateScale?0:n.innerRadius, m=i&&l.animateScale?0:n.outerRadius, v=o.valueAtIndexOrDefault;o.extend(t, {_datasetIndex:n.index, _index:e, _model:{x:u+a.offsetX, y:d+a.offsetY, startAngle:c, endAngle:h, circumference:g, outerRadius:m, innerRadius:p, label:v(f.label, e, a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t), i&&l.animateRotate||(b.startAngle=0===e?s.rotation:n.getMeta().data[e-1]._model.endAngle, b.endAngle=b.startAngle+b.circumference), t.pivot()}, removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this, e, this.chart.options.elements.arc)}, calculateTotal:function(){var t, e=this.getDataset(), i=this.getMeta(), n=0;return o.each(i.data, function(i, a){t=e.data[a], isNaN(t)||i.hidden||(n+=Math.abs(t))}), n}, calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0}, getMaxBorderWidth:function(t){for(var e, i, n=0, a=this.index, o=t.length, r=0;r<o;r++)e=t[r]._model?t[r]._model.borderWidth:0, n=(i=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0)>(n=e>n?e:n)?i:n;return n}})}}, {25:25, 40:40, 45:45}], 18:[function(t, e, i){"use strict";var n=t(25), a=t(40), o=t(45);n._set("line", {showLines:!0, spanGaps:!1, hover:{mode:"label"}, scales:{xAxes:[{type:"category", id:"x-axis-0"}], yAxes:[{type:"linear", id:"y-axis-0"}]}}), e.exports=function(t){function e(t, e){return o.valueOrDefault(t.showLine, e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line, dataElementType:a.Point, update:function(t){var i, n, a, r=this, s=r.getMeta(), l=s.dataset, u=s.data||[], d=r.chart.options, c=d.elements.line, h=r.getScaleForId(s.yAxisID), f=r.getDataset(), g=e(f, d);for(g&&(a=l.custom||{}, void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension), l._scale=h, l._datasetIndex=r.index, l._children=u, l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps, tension:a.tension?a.tension:o.valueOrDefault(f.lineTension, c.tension), backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor, borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth, borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor, borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle, borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash, borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset, borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle, fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill, steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine, c.stepped), cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode, c.cubicInterpolationMode)}, l.pivot()), i=0, n=u.length;i<n;++i)r.updateElement(u[i], i, t);for(g&&0!==l._model.tension&&r.updateBezierControlPoints(), i=0, n=u.length;i<n;++i)u[i].pivot()}, getPointBackgroundColor:function(t, e){var i=this.chart.options.elements.point.backgroundColor, n=this.getDataset(), a=t.custom||{};return a.backgroundColor?i=a.backgroundColor:n.pointBackgroundColor?i=o.valueAtIndexOrDefault(n.pointBackgroundColor, e, i):n.backgroundColor&&(i=n.backgroundColor), i}, getPointBorderColor:function(t, e){var i=this.chart.options.elements.point.borderColor, n=this.getDataset(), a=t.custom||{};return a.borderColor?i=a.borderColor:n.pointBorderColor?i=o.valueAtIndexOrDefault(n.pointBorderColor, e, i):n.borderColor&&(i=n.borderColor), i}, getPointBorderWidth:function(t, e){var i=this.chart.options.elements.point.borderWidth, n=this.getDataset(), a=t.custom||{};return isNaN(a.borderWidth)?!isNaN(n.pointBorderWidth)||o.isArray(n.pointBorderWidth)?i=o.valueAtIndexOrDefault(n.pointBorderWidth, e, i):isNaN(n.borderWidth)||(i=n.borderWidth):i=a.borderWidth, i}, updateElement:function(t, e, i){var n, a, r=this, s=r.getMeta(), l=t.custom||{}, u=r.getDataset(), d=r.index, c=u.data[e], h=r.getScaleForId(s.yAxisID), f=r.getScaleForId(s.xAxisID), g=r.chart.options.elements.point;void 0!==u.radius&&void 0===u.pointRadius&&(u.pointRadius=u.radius), void 0!==u.hitRadius&&void 0===u.pointHitRadius&&(u.pointHitRadius=u.hitRadius), n=f.getPixelForValue("object"==typeof c?c:NaN, e, d), a=i?h.getBasePixel():r.calculatePointY(c, e, d), t._xScale=f, t._yScale=h, t._datasetIndex=d, t._index=e, t._model={x:n, y:a, skip:l.skip||isNaN(n)||isNaN(a), radius:l.radius||o.valueAtIndexOrDefault(u.pointRadius, e, g.radius), pointStyle:l.pointStyle||o.valueAtIndexOrDefault(u.pointStyle, e, g.pointStyle), backgroundColor:r.getPointBackgroundColor(t, e), borderColor:r.getPointBorderColor(t, e), borderWidth:r.getPointBorderWidth(t, e), tension:s.dataset._model?s.dataset._model.tension:0, steppedLine:!!s.dataset._model&&s.dataset._model.steppedLine, hitRadius:l.hitRadius||o.valueAtIndexOrDefault(u.pointHitRadius, e, g.hitRadius)}}, calculatePointY:function(t, e, i){var n, a, o, r=this.chart, s=this.getMeta(), l=this.getScaleForId(s.yAxisID), u=0, d=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n], "line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var c=Number(l.getRightValue(a.data[e]));c<0?d+=c||0:u+=c||0}var h=Number(l.getRightValue(t));return h<0?l.getPixelForValue(d+h):l.getPixelForValue(u+h)}return l.getPixelForValue(t)}, updateBezierControlPoints:function(){var t, e, i, n, a=this.getMeta(), r=this.chart.chartArea, s=a.data||[];function l(t, e, i){return Math.max(Math.min(t, i), e)}if(a.dataset._model.spanGaps&&(s=s.filter(function(t){return!t._model.skip})), "monotone"===a.dataset._model.cubicInterpolationMode)o.splineCurveMonotone(s);else for(t=0, e=s.length;t<e;++t)i=s[t]._model, n=o.splineCurve(o.previousItem(s, t)._model, i, o.nextItem(s, t)._model, a.dataset._model.tension), i.controlPointPreviousX=n.previous.x, i.controlPointPreviousY=n.previous.y, i.controlPointNextX=n.next.x, i.controlPointNextY=n.next.y;if(this.chart.options.elements.line.capBezierPoints)for(t=0, e=s.length;t<e;++t)(i=s[t]._model).controlPointPreviousX=l(i.controlPointPreviousX, r.left, r.right), i.controlPointPreviousY=l(i.controlPointPreviousY, r.top, r.bottom), i.controlPointNextX=l(i.controlPointNextX, r.left, r.right), i.controlPointNextY=l(i.controlPointNextY, r.top, r.bottom)}, draw:function(){var t=this.chart, i=this.getMeta(), n=i.data||[], a=t.chartArea, r=n.length, s=0;for(o.canvas.clipArea(t.ctx, a), e(this.getDataset(), t.options)&&i.dataset.draw(), o.canvas.unclipArea(t.ctx);s<r;++s)n[s].draw(a)}, setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex], i=t._index, n=t.custom||{}, a=t._model;a.radius=n.hoverRadius||o.valueAtIndexOrDefault(e.pointHoverRadius, i, this.chart.options.elements.point.hoverRadius), a.backgroundColor=n.hoverBackgroundColor||o.valueAtIndexOrDefault(e.pointHoverBackgroundColor, i, o.getHoverColor(a.backgroundColor)), a.borderColor=n.hoverBorderColor||o.valueAtIndexOrDefault(e.pointHoverBorderColor, i, o.getHoverColor(a.borderColor)), a.borderWidth=n.hoverBorderWidth||o.valueAtIndexOrDefault(e.pointHoverBorderWidth, i, a.borderWidth)}, removeHoverStyle:function(t){var e=this, i=e.chart.data.datasets[t._datasetIndex], n=t._index, a=t.custom||{}, r=t._model;void 0!==i.radius&&void 0===i.pointRadius&&(i.pointRadius=i.radius), r.radius=a.radius||o.valueAtIndexOrDefault(i.pointRadius, n, e.chart.options.elements.point.radius), r.backgroundColor=e.getPointBackgroundColor(t, n), r.borderColor=e.getPointBorderColor(t, n), r.borderWidth=e.getPointBorderWidth(t, n)}})}}, {25:25, 40:40, 45:45}], 19:[function(t, e, i){"use strict";var n=t(25), a=t(40), o=t(45);n._set("polarArea", {scale:{type:"radialLinear", angleLines:{display:!1}, gridLines:{circular:!0}, pointLabels:{display:!1}, ticks:{beginAtZero:!0}}, animation:{animateRotate:!0, animateScale:!0}, startAngle:-.5*Math.PI, legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data, n=i.datasets, a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'), a[o]&&e.push(a[o]), e.push("</li>");return e.push("</ul>"), e.join("")}, legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i, n){var a=t.getDatasetMeta(0), r=e.datasets[0], s=a.data[n].custom||{}, l=o.valueAtIndexOrDefault, u=t.options.elements.arc;return{text:i, fillStyle:s.backgroundColor?s.backgroundColor:l(r.backgroundColor, n, u.backgroundColor), strokeStyle:s.borderColor?s.borderColor:l(r.borderColor, n, u.borderColor), lineWidth:s.borderWidth?s.borderWidth:l(r.borderWidth, n, u.borderWidth), hidden:isNaN(r.data[n])||a.data[n].hidden, index:n}}):[]}}, onClick:function(t, e){var i, n, a, o=e.index, r=this.chart;for(i=0, n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}}, tooltips:{callbacks:{title:function(){return""}, label:function(t, e){return e.labels[t.index]+": "+t.yLabel}}}}), e.exports=function(t){t.controllers.polarArea=t.DatasetController.extend({dataElementType:a.Arc, linkScales:o.noop, update:function(t){var e=this, i=e.chart, n=i.chartArea, a=e.getMeta(), r=i.options, s=r.elements.arc, l=Math.min(n.right-n.left, n.bottom-n.top);i.outerRadius=Math.max((l-s.borderWidth/2)/2, 0), i.innerRadius=Math.max(r.cutoutPercentage?i.outerRadius/100*r.cutoutPercentage:1, 0), i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(), e.outerRadius=i.outerRadius-i.radiusLength*e.index, e.innerRadius=e.outerRadius-i.radiusLength, a.count=e.countVisibleElements(), o.each(a.data, function(i, n){e.updateElement(i, n, t)})}, updateElement:function(t, e, i){for(var n=this, a=n.chart, r=n.getDataset(), s=a.options, l=s.animation, u=a.scale, d=a.data.labels, c=n.calculateCircumference(r.data[e]), h=u.xCenter, f=u.yCenter, g=0, p=n.getMeta(), m=0;m<e;++m)isNaN(r.data[m])||p.data[m].hidden||++g;var v=s.startAngle, b=t.hidden?0:u.getDistanceFromCenterForValue(r.data[e]), x=v+c*g, y=x+(t.hidden?0:c), k=l.animateScale?0:u.getDistanceFromCenterForValue(r.data[e]);o.extend(t, {_datasetIndex:n.index, _index:e, _scale:u, _model:{x:h, y:f, innerRadius:0, outerRadius:i?k:b, startAngle:i&&l.animateRotate?v:x, endAngle:i&&l.animateRotate?v:y, label:o.valueAtIndexOrDefault(d, e, d[e])}}), n.removeHoverStyle(t), t.pivot()}, removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this, e, this.chart.options.elements.arc)}, countVisibleElements:function(){var t=this.getDataset(), e=this.getMeta(), i=0;return o.each(e.data, function(e, n){isNaN(t.data[n])||e.hidden||i++}), i}, calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}}, {25:25, 40:40, 45:45}], 20:[function(t, e, i){"use strict";var n=t(25), a=t(40), o=t(45);n._set("radar", {scale:{type:"radialLinear"}, elements:{line:{tension:0}}}), e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line, dataElementType:a.Point, linkScales:o.noop, update:function(t){var e=this, i=e.getMeta(), n=i.dataset, a=i.data, r=n.custom||{}, s=e.getDataset(), l=e.chart.options.elements.line, u=e.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension), o.extend(i.dataset, {_datasetIndex:e.index, _scale:u, _children:a, _loop:!0, _model:{tension:r.tension?r.tension:o.valueOrDefault(s.lineTension, l.tension), backgroundColor:r.backgroundColor?r.backgroundColor:s.backgroundColor||l.backgroundColor, borderWidth:r.borderWidth?r.borderWidth:s.borderWidth||l.borderWidth, borderColor:r.borderColor?r.borderColor:s.borderColor||l.borderColor, fill:r.fill?r.fill:void 0!==s.fill?s.fill:l.fill, borderCapStyle:r.borderCapStyle?r.borderCapStyle:s.borderCapStyle||l.borderCapStyle, borderDash:r.borderDash?r.borderDash:s.borderDash||l.borderDash, borderDashOffset:r.borderDashOffset?r.borderDashOffset:s.borderDashOffset||l.borderDashOffset, borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle}}), i.dataset.pivot(), o.each(a, function(i, n){e.updateElement(i, n, t)}, e), e.updateBezierControlPoints()}, updateElement:function(t, e, i){var n=this, a=t.custom||{}, r=n.getDataset(), s=n.chart.scale, l=n.chart.options.elements.point, u=s.getPointPositionForValue(e, r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius), void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius), o.extend(t, {_datasetIndex:n.index, _index:e, _scale:s, _model:{x:i?s.xCenter:u.x, y:i?s.yCenter:u.y, tension:a.tension?a.tension:o.valueOrDefault(r.lineTension, n.chart.options.elements.line.tension), radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius, e, l.radius), backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor, e, l.backgroundColor), borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor, e, l.borderColor), borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth, e, l.borderWidth), pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle, e, l.pointStyle), hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius, e, l.hitRadius)}}), t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)}, updateBezierControlPoints:function(){var t=this.chart.chartArea, e=this.getMeta();o.each(e.data, function(i, n){var a=i._model, r=o.splineCurve(o.previousItem(e.data, n, !0)._model, a, o.nextItem(e.data, n, !0)._model, a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x, t.right), t.left), a.controlPointPreviousY=Math.max(Math.min(r.previous.y, t.bottom), t.top), a.controlPointNextX=Math.max(Math.min(r.next.x, t.right), t.left), a.controlPointNextY=Math.max(Math.min(r.next.y, t.bottom), t.top), i.pivot()})}, setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex], i=t.custom||{}, n=t._index, a=t._model;a.radius=i.hoverRadius?i.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius, n, this.chart.options.elements.point.hoverRadius), a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor, n, o.getHoverColor(a.backgroundColor)), a.borderColor=i.hoverBorderColor?i.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor, n, o.getHoverColor(a.borderColor)), a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth, n, a.borderWidth)}, removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex], i=t.custom||{}, n=t._index, a=t._model, r=this.chart.options.elements.point;a.radius=i.radius?i.radius:o.valueAtIndexOrDefault(e.pointRadius, n, r.radius), a.backgroundColor=i.backgroundColor?i.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor, n, r.backgroundColor), a.borderColor=i.borderColor?i.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor, n, r.borderColor), a.borderWidth=i.borderWidth?i.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth, n, r.borderWidth)}})}}, {25:25, 40:40, 45:45}], 21:[function(t, e, i){"use strict";t(25)._set("scatter", {hover:{mode:"single"}, scales:{xAxes:[{id:"x-axis-1", type:"linear", position:"bottom"}], yAxes:[{id:"y-axis-1", type:"linear", position:"left"}]}, showLines:!1, tooltips:{callbacks:{title:function(){return""}, label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}), e.exports=function(t){t.controllers.scatter=t.controllers.line}}, {25:25}], 22:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45);n._set("global", {animation:{duration:1e3, easing:"easeOutQuart", onProgress:o.noop, onComplete:o.noop}}), e.exports=function(t){t.Animation=a.extend({chart:null, currentStep:0, numSteps:60, easing:"", render:null, onAnimationProgress:null, onAnimationComplete:null}), t.animationService={frameDuration:17, animations:[], dropFrames:0, request:null, addAnimation:function(t, e, i, n){var a, o, r=this.animations;for(e.chart=t, n||(t.animating=!0), a=0, o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e), 1===r.length&&this.requestAnimationFrame()}, cancelAnimation:function(t){var e=o.findIndex(this.animations, function(e){return e.chart===t});-1!==e&&(this.animations.splice(e, 1), t.animating=!1)}, requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=o.requestAnimFrame.call(window, function(){t.request=null, t.startDigest()}))}, startDigest:function(){var t=this, e=Date.now(), i=0;t.dropFrames>1&&(i=Math.floor(t.dropFrames), t.dropFrames=t.dropFrames%1), t.advance(1+i);var n=Date.now();t.dropFrames+=(n-e)/t.frameDuration, t.animations.length>0&&t.requestAnimationFrame()}, advance:function(t){for(var e, i, n=this.animations, a=0;a<n.length;)i=(e=n[a]).chart, e.currentStep=(e.currentStep||0)+t, e.currentStep=Math.min(e.currentStep, e.numSteps), o.callback(e.render, [i, e], i), o.callback(e.onAnimationProgress, [e], i), e.currentStep>=e.numSteps?(o.callback(e.onAnimationComplete, [e], i), i.animating=!1, n.splice(a, 1)):++a}}, Object.defineProperty(t.Animation.prototype, "animationObject", {get:function(){return this}}), Object.defineProperty(t.Animation.prototype, "chartInstance", {get:function(){return this.chart}, set:function(t){this.chart=t}})}}, {25:25, 26:26, 45:45}], 23:[function(t, e, i){"use strict";var n=t(25), a=t(45), o=t(28), r=t(30), s=t(48), l=t(31);e.exports=function(t){function e(t){return"top"===t||"bottom"===t}t.types={}, t.instances={}, t.controllers={}, a.extend(t.prototype, {construct:function(e, i){var o, r, l=this;(r=(o=(o=i)||{}).data=o.data||{}).datasets=r.datasets||[], r.labels=r.labels||[], o.options=a.configMerge(n.global, n[o.type], o.options||{}), i=o;var u=s.acquireContext(e, i), d=u&&u.canvas, c=d&&d.height, h=d&&d.width;l.id=a.uid(), l.ctx=u, l.canvas=d, l.config=i, l.width=h, l.height=c, l.aspectRatio=c?h/c:null, l.options=i.options, l._bufferedRender=!1, l.chart=l, l.controller=l, t.instances[l.id]=l, Object.defineProperty(l, "data", {get:function(){return l.config.data}, set:function(t){l.config.data=t}}), u&&d?(l.initialize(), l.update()):console.error("Failed to create chart: can't acquire context from the given item")}, initialize:function(){var t=this;return l.notify(t, "beforeInit"), a.retinaScale(t, t.options.devicePixelRatio), t.bindEvents(), t.options.responsive&&t.resize(!0), t.ensureScalesHaveIDs(), t.buildOrUpdateScales(), t.initToolTip(), l.notify(t, "afterInit"), t}, clear:function(){return a.canvas.clear(this), this}, stop:function(){return t.animationService.cancelAnimation(this), this}, resize:function(t){var e=this, i=e.options, n=e.canvas, o=i.maintainAspectRatio&&e.aspectRatio||null, r=Math.max(0, Math.floor(a.getMaximumWidth(n))), s=Math.max(0, Math.floor(o?r/o:a.getMaximumHeight(n)));if((e.width!==r||e.height!==s)&&(n.width=e.width=r, n.height=e.height=s, n.style.width=r+"px", n.style.height=s+"px", a.retinaScale(e, i.devicePixelRatio), !t)){var u={width:r, height:s};l.notify(e, "resize", [u]), e.options.onResize&&e.options.onResize(e, u), e.stop(), e.update(e.options.responsiveAnimationDuration)}}, ensureScalesHaveIDs:function(){var t=this.options, e=t.scales||{}, i=t.scale;a.each(e.xAxes, function(t, e){t.id=t.id||"x-axis-"+e}), a.each(e.yAxes, function(t, e){t.id=t.id||"y-axis-"+e}), i&&(i.id=i.id||"scale")}, buildOrUpdateScales:function(){var i=this, n=i.options, o=i.scales||{}, r=[], s=Object.keys(o).reduce(function(t, e){return t[e]=!1, t}, {});n.scales&&(r=r.concat((n.scales.xAxes||[]).map(function(t){return{options:t, dtype:"category", dposition:"bottom"}}), (n.scales.yAxes||[]).map(function(t){return{options:t, dtype:"linear", dposition:"left"}}))), n.scale&&r.push({options:n.scale, dtype:"radialLinear", isDefault:!0, dposition:"chartArea"}), a.each(r, function(n){var r=n.options, l=r.id, u=a.valueOrDefault(r.type, n.dtype);e(r.position)!==e(n.dposition)&&(r.position=n.dposition), s[l]=!0;var d=null;if(l in o&&o[l].type===u)(d=o[l]).options=r, d.ctx=i.ctx, d.chart=i;else{var c=t.scaleService.getScaleConstructor(u);if(!c)return;d=new c({id:l, type:u, options:r, ctx:i.ctx, chart:i}), o[d.id]=d}d.mergeTicksOptions(), n.isDefault&&(i.scale=d)}), a.each(s, function(t, e){t||delete o[e]}), i.scales=o, t.scaleService.addScalesToLayout(this)}, buildOrUpdateControllers:function(){var e=this, i=[], n=[];return a.each(e.data.datasets, function(a, o){var r=e.getDatasetMeta(o), s=a.type||e.config.type;if(r.type&&r.type!==s&&(e.destroyDatasetMeta(o), r=e.getDatasetMeta(o)), r.type=s, i.push(r.type), r.controller)r.controller.updateIndex(o), r.controller.linkScales();else{var l=t.controllers[r.type];if(void 0===l)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new l(e, o), n.push(r.controller)}}, e), n}, resetElements:function(){var t=this;a.each(t.data.datasets, function(e, i){t.getDatasetMeta(i).controller.reset()}, t)}, reset:function(){this.resetElements(), this.tooltip.initialize()}, update:function(e){var i, n, o=this;if(e&&"object"==typeof e||(e={duration:e, lazy:arguments[1]}), n=(i=o).options, a.each(i.scales, function(t){r.removeBox(i, t)}), n=a.configMerge(t.defaults.global, t.defaults[i.config.type], n), i.options=i.config.options=n, i.ensureScalesHaveIDs(), i.buildOrUpdateScales(), i.tooltip._options=n.tooltips, i.tooltip.initialize(), l._invalidate(o), !1!==l.notify(o, "beforeUpdate")){o.tooltip._data=o.data;var s=o.buildOrUpdateControllers();a.each(o.data.datasets, function(t, e){o.getDatasetMeta(e).controller.buildOrUpdateElements()}, o), o.updateLayout(), o.options.animation&&o.options.animation.duration&&a.each(s, function(t){t.reset()}), o.updateDatasets(), o.tooltip.initialize(), o.lastActive=[], l.notify(o, "afterUpdate"), o._bufferedRender?o._bufferedRequest={duration:e.duration, easing:e.easing, lazy:e.lazy}:o.render(e)}}, updateLayout:function(){!1!==l.notify(this, "beforeLayout")&&(r.update(this, this.width, this.height), l.notify(this, "afterScaleUpdate"), l.notify(this, "afterLayout"))}, updateDatasets:function(){if(!1!==l.notify(this, "beforeDatasetsUpdate")){for(var t=0, e=this.data.datasets.length;t<e;++t)this.updateDataset(t);l.notify(this, "afterDatasetsUpdate")}}, updateDataset:function(t){var e=this.getDatasetMeta(t), i={meta:e, index:t};!1!==l.notify(this, "beforeDatasetUpdate", [i])&&(e.controller.update(), l.notify(this, "afterDatasetUpdate", [i]))}, render:function(e){var i=this;e&&"object"==typeof e||(e={duration:e, lazy:arguments[1]});var n=e.duration, o=e.lazy;if(!1!==l.notify(i, "beforeRender")){var r=i.options.animation, s=function(t){l.notify(i, "afterRender"), a.callback(r&&r.onComplete, [t], i)};if(r&&(void 0!==n&&0!==n||void 0===n&&0!==r.duration)){var u=new t.Animation({numSteps:(n||r.duration)/16.66, easing:e.easing||r.easing, render:function(t, e){var i=a.easing.effects[e.easing], n=e.currentStep, o=n/e.numSteps;t.draw(i(o), o, n)}, onAnimationProgress:r.onProgress, onAnimationComplete:s});t.animationService.addAnimation(i, u, n, o)}else i.draw(), s(new t.Animation({numSteps:0, chart:i}));return i}}, draw:function(t){var e=this;e.clear(), a.isNullOrUndef(t)&&(t=1), e.transition(t), !1!==l.notify(e, "beforeDraw", [t])&&(a.each(e.boxes, function(t){t.draw(e.chartArea)}, e), e.scale&&e.scale.draw(), e.drawDatasets(t), e._drawTooltip(t), l.notify(e, "afterDraw", [t]))}, transition:function(t){for(var e=0, i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)}, drawDatasets:function(t){var e=this;if(!1!==l.notify(e, "beforeDatasetsDraw", [t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i, t);l.notify(e, "afterDatasetsDraw", [t])}}, drawDataset:function(t, e){var i=this.getDatasetMeta(t), n={meta:i, index:t, easingValue:e};!1!==l.notify(this, "beforeDatasetDraw", [n])&&(i.controller.draw(e), l.notify(this, "afterDatasetDraw", [n]))}, _drawTooltip:function(t){var e=this.tooltip, i={tooltip:e, easingValue:t};!1!==l.notify(this, "beforeTooltipDraw", [i])&&(e.draw(), l.notify(this, "afterTooltipDraw", [i]))}, getElementAtEvent:function(t){return o.modes.single(this, t)}, getElementsAtEvent:function(t){return o.modes.label(this, t, {intersect:!0})}, getElementsAtXAxis:function(t){return o.modes["x-axis"](this, t, {intersect:!0})}, getElementsAtEventForMode:function(t, e, i){var n=o.modes[e];return"function"==typeof n?n(this, t, i):[]}, getDatasetAtEvent:function(t){return o.modes.dataset(this, t, {intersect:!0})}, getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null, data:[], dataset:null, controller:null, hidden:null, xAxisID:null, yAxisID:null}), i}, getVisibleDatasetCount:function(){for(var t=0, e=0, i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t}, isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden}, generateLegend:function(){return this.options.legendCallback(this)}, destroyDatasetMeta:function(t){var e=this.id, i=this.data.datasets[t], n=i._meta&&i._meta[e];n&&(n.controller.destroy(), delete i._meta[e])}, destroy:function(){var e, i, n=this, o=n.canvas;for(n.stop(), e=0, i=n.data.datasets.length;e<i;++e)n.destroyDatasetMeta(e);o&&(n.unbindEvents(), a.canvas.clear(n), s.releaseContext(n.ctx), n.canvas=null, n.ctx=null), l.notify(n, "destroy"), delete t.instances[n.id]}, toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas, arguments)}, initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e, _chartInstance:e, _data:e.data, _options:e.options.tooltips}, e)}, bindEvents:function(){var t=this, e=t._listeners={}, i=function(){t.eventHandler.apply(t, arguments)};a.each(t.options.events, function(n){s.addEventListener(t, n, i), e[n]=i}), t.options.responsive&&(i=function(){t.resize()}, s.addEventListener(t, "resize", i), e.resize=i)}, unbindEvents:function(){var t=this, e=t._listeners;e&&(delete t._listeners, a.each(e, function(e, i){s.removeEventListener(t, i, e)}))}, updateHoverStyle:function(t, e, i){var n, a, o, r=i?"setHoverStyle":"removeHoverStyle";for(a=0, o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)}, eventHandler:function(t){var e=this, i=e.tooltip;if(!1!==l.notify(e, "beforeEvent", [t])){e._bufferedRender=!0, e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)), l.notify(e, "afterEvent", [t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(), e.render(e.options.hover.animationDuration, !0)), e._bufferedRender=!1, e._bufferedRequest=null, e}}, handleEvent:function(t){var e, i=this, n=i.options||{}, o=n.hover;return i.lastActive=i.lastActive||[], "mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t, o.mode, o), a.callback(n.onHover||n.hover.onHover, [t.native, i.active], i), "mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i, t.native, i.active), i.lastActive.length&&i.updateHoverStyle(i.lastActive, o.mode, !1), i.active.length&&o.mode&&i.updateHoverStyle(i.active, o.mode, !0), e=!a.arrayEquals(i.active, i.lastActive), i.lastActive=i.active, e}}), t.Controller=t}}, {25:25, 28:28, 30:30, 31:31, 45:45, 48:48}], 24:[function(t, e, i){"use strict";var n=t(45);e.exports=function(t){var e=["push", "pop", "shift", "splice", "unshift"];function i(t, i){var n=t._chartjs;if(n){var a=n.listeners, o=a.indexOf(i);-1!==o&&a.splice(o, 1), a.length>0||(e.forEach(function(e){delete t[e]}), delete t._chartjs)}}t.DatasetController=function(t, e){this.initialize(t, e)}, n.extend(t.DatasetController.prototype, {datasetElementType:null, dataElementType:null, initialize:function(t, e){this.chart=t, this.index=e, this.linkScales(), this.addElements()}, updateIndex:function(t){this.index=t}, linkScales:function(){var t=this, e=t.getMeta(), i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id), null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)}, getDataset:function(){return this.chart.data.datasets[this.index]}, getMeta:function(){return this.chart.getDatasetMeta(this.index)}, getScaleForId:function(t){return this.chart.scales[t]}, reset:function(){this.update(!0)}, destroy:function(){this._data&&i(this._data, this)}, createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart, _datasetIndex:this.index})}, createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart, _datasetIndex:this.index, _index:t})}, addElements:function(){var t, e, i=this.getMeta(), n=this.getDataset().data||[], a=i.data;for(t=0, e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()}, addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t, 0, e), this.updateElement(e, t, !0)}, buildOrUpdateElements:function(){var t, a, o=this, r=o.getDataset(), s=r.data||(r.data=[]);o._data!==s&&(o._data&&i(o._data, o), a=o, (t=s)._chartjs?t._chartjs.listeners.push(a):(Object.defineProperty(t, "_chartjs", {configurable:!0, enumerable:!1, value:{listeners:[a]}}), e.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1), a=t[e];Object.defineProperty(t, e, {configurable:!0, enumerable:!1, value:function(){var e=Array.prototype.slice.call(arguments), o=a.apply(this, e);return n.each(t._chartjs.listeners, function(t){"function"==typeof t[i]&&t[i].apply(t, e)}), o}})})), o._data=s), o.resyncElements()}, update:n.noop, transition:function(t){for(var e=this.getMeta(), i=e.data||[], n=i.length, a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)}, draw:function(){var t=this.getMeta(), e=t.data||[], i=e.length, n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()}, removeHoverStyle:function(t, e){var i=this.chart.data.datasets[t._datasetIndex], a=t._index, o=t.custom||{}, r=n.valueAtIndexOrDefault, s=t._model;s.backgroundColor=o.backgroundColor?o.backgroundColor:r(i.backgroundColor, a, e.backgroundColor), s.borderColor=o.borderColor?o.borderColor:r(i.borderColor, a, e.borderColor), s.borderWidth=o.borderWidth?o.borderWidth:r(i.borderWidth, a, e.borderWidth)}, setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex], i=t._index, a=t.custom||{}, o=n.valueAtIndexOrDefault, r=n.getHoverColor, s=t._model;s.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:o(e.hoverBackgroundColor, i, r(s.backgroundColor)), s.borderColor=a.hoverBorderColor?a.hoverBorderColor:o(e.hoverBorderColor, i, r(s.borderColor)), s.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:o(e.hoverBorderWidth, i, s.borderWidth)}, resyncElements:function(){var t=this.getMeta(), e=this.getDataset().data, i=t.data.length, n=e.length;n<i?t.data.splice(n, i-n):n>i&&this.insertElements(i, n-i)}, insertElements:function(t, e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)}, onDataPush:function(){this.insertElements(this.getDataset().data.length-1, arguments.length)}, onDataPop:function(){this.getMeta().data.pop()}, onDataShift:function(){this.getMeta().data.shift()}, onDataSplice:function(t, e){this.getMeta().data.splice(t, e), this.insertElements(t, arguments.length-2)}, onDataUnshift:function(){this.insertElements(0, arguments.length)}}), t.DatasetController.extend=n.inherits}}, {45:45}], 25:[function(t, e, i){"use strict";var n=t(45);e.exports={_set:function(t, e){return n.merge(this[t]||(this[t]={}), e)}}}, {45:45}], 26:[function(t, e, i){"use strict";var n=t(3), a=t(45);var o=function(t){a.extend(this, t), this.initialize.apply(this, arguments)};a.extend(o.prototype, {initialize:function(){this.hidden=!1}, pivot:function(){var t=this;return t._view||(t._view=a.clone(t._model)), t._start={}, t}, transition:function(t){var e=this, i=e._model, a=e._start, o=e._view;return i&&1!==t?(o||(o=e._view={}), a||(a=e._start={}), function(t, e, i, a){var o, r, s, l, u, d, c, h, f, g=Object.keys(i);for(o=0, r=g.length;o<r;++o)if(d=i[s=g[o]], e.hasOwnProperty(s)||(e[s]=d), (l=e[s])!==d&&"_"!==s[0]){if(t.hasOwnProperty(s)||(t[s]=l), (c=typeof d)==typeof(u=t[s]))if("string"===c){if((h=n(u)).valid&&(f=n(d)).valid){e[s]=f.mix(h, a).rgbString();continue}}else if("number"===c&&isFinite(u)&&isFinite(d)){e[s]=u+(d-u)*a;continue}e[s]=d}}(a, o, i, t), e):(e._view=i, e._start=null, e)}, tooltipPosition:function(){return{x:this._model.x, y:this._model.y}}, hasValue:function(){return a.isNumber(this._model.x)&&a.isNumber(this._model.y)}}), o.extend=a.inherits, e.exports=o}, {3:3, 45:45}], 27:[function(t, e, i){"use strict";var n=t(3), a=t(25), o=t(45);e.exports=function(t){function e(t, e, i){var n;return"string"==typeof t?(n=parseInt(t, 10), -1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t, n}function i(t){return null!=t&&"none"!==t}function r(t, n, a){var o=document.defaultView, r=t.parentNode, s=o.getComputedStyle(t)[n], l=o.getComputedStyle(r)[n], u=i(s), d=i(l), c=Number.POSITIVE_INFINITY;return u||d?Math.min(u?e(s, t, a):c, d?e(l, r, a):c):"none"}o.configMerge=function(){return o.merge(o.clone(arguments[0]), [].slice.call(arguments, 1), {merger:function(e, i, n, a){var r=i[e]||{}, s=n[e];"scales"===e?i[e]=o.scaleMerge(r, s):"scale"===e?i[e]=o.merge(r, [t.scaleService.getScaleDefaults(s.type), s]):o._merger(e, i, n, a)}})}, o.scaleMerge=function(){return o.merge(o.clone(arguments[0]), [].slice.call(arguments, 1), {merger:function(e, i, n, a){if("xAxes"===e||"yAxes"===e){var r, s, l, u=n[e].length;for(i[e]||(i[e]=[]), r=0;r<u;++r)l=n[e][r], s=o.valueOrDefault(l.type, "xAxes"===e?"category":"linear"), r>=i[e].length&&i[e].push({}), !i[e][r].type||l.type&&l.type!==i[e][r].type?o.merge(i[e][r], [t.scaleService.getScaleDefaults(s), l]):o.merge(i[e][r], l)}else o._merger(e, i, n, a)}})}, o.where=function(t, e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return o.each(t, function(t){e(t)&&i.push(t)}), i}, o.findIndex=Array.prototype.findIndex?function(t, e, i){return t.findIndex(e, i)}:function(t, e, i){i=void 0===i?t:i;for(var n=0, a=t.length;n<a;++n)if(e.call(i, t[n], n, t))return n;return-1}, o.findNextWhere=function(t, e, i){o.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}}, o.findPreviousWhere=function(t, e, i){o.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}}, o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)}, o.almostEquals=function(t, e, i){return Math.abs(t-e)<i}, o.almostWhole=function(t, e){var i=Math.round(t);return i-e<t&&i+e>t}, o.max=function(t){return t.reduce(function(t, e){return isNaN(e)?t:Math.max(t, e)}, Number.NEGATIVE_INFINITY)}, o.min=function(t){return t.reduce(function(t, e){return isNaN(e)?t:Math.min(t, e)}, Number.POSITIVE_INFINITY)}, o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:t>0?1:-1}, o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E, i=Math.round(e);return t===Math.pow(10, i)?i:e}, o.toRadians=function(t){return t*(Math.PI/180)}, o.toDegrees=function(t){return t*(180/Math.PI)}, o.getAngleFromPoint=function(t, e){var i=e.x-t.x, n=e.y-t.y, a=Math.sqrt(i*i+n*n), o=Math.atan2(n, i);return o<-.5*Math.PI&&(o+=2*Math.PI), {angle:o, distance:a}}, o.distanceBetweenPoints=function(t, e){return Math.sqrt(Math.pow(e.x-t.x, 2)+Math.pow(e.y-t.y, 2))}, o.aliasPixel=function(t){return t%2==0?0:.5}, o.splineCurve=function(t, e, i, n){var a=t.skip?e:t, o=e, r=i.skip?e:i, s=Math.sqrt(Math.pow(o.x-a.x, 2)+Math.pow(o.y-a.y, 2)), l=Math.sqrt(Math.pow(r.x-o.x, 2)+Math.pow(r.y-o.y, 2)), u=s/(s+l), d=l/(s+l), c=n*(u=isNaN(u)?0:u), h=n*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x), y:o.y-c*(r.y-a.y)}, next:{x:o.x+h*(r.x-a.x), y:o.y+h*(r.y-a.y)}}}, o.EPSILON=Number.EPSILON||1e-14, o.splineCurveMonotone=function(t){var e, i, n, a, r, s, l, u, d, c=(t||[]).map(function(t){return{model:t._model, deltaK:0, mK:0}}), h=c.length;for(e=0;e<h;++e)if(!(n=c[e]).model.skip){if(i=e>0?c[e-1]:null, (a=e<h-1?c[e+1]:null)&&!a.model.skip){var f=a.model.x-n.model.x;n.deltaK=0!==f?(a.model.y-n.model.y)/f:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=c[e], a=c[e+1], n.model.skip||a.model.skip||(o.almostEquals(n.deltaK, 0, this.EPSILON)?n.mK=a.mK=0:(r=n.mK/n.deltaK, s=a.mK/n.deltaK, (u=Math.pow(r, 2)+Math.pow(s, 2))<=9||(l=3/Math.sqrt(u), n.mK=r*l*n.deltaK, a.mK=s*l*n.deltaK)));for(e=0;e<h;++e)(n=c[e]).model.skip||(i=e>0?c[e-1]:null, a=e<h-1?c[e+1]:null, i&&!i.model.skip&&(d=(n.model.x-i.model.x)/3, n.model.controlPointPreviousX=n.model.x-d, n.model.controlPointPreviousY=n.model.y-d*n.mK), a&&!a.model.skip&&(d=(a.model.x-n.model.x)/3, n.model.controlPointNextX=n.model.x+d, n.model.controlPointNextY=n.model.y+d*n.mK))}, o.nextItem=function(t, e, i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]}, o.previousItem=function(t, e, i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]}, o.niceNum=function(t, e){var i=Math.floor(o.log10(t)), n=t/Math.pow(10, i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10, i)}, o.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t, 1e3/60)}, o.getRelativePosition=function(t, e){var i, n, a=t.originalEvent||t, r=t.currentTarget||t.srcElement, s=r.getBoundingClientRect(), l=a.touches;l&&l.length>0?(i=l[0].clientX, n=l[0].clientY):(i=a.clientX, n=a.clientY);var u=parseFloat(o.getStyle(r, "padding-left")), d=parseFloat(o.getStyle(r, "padding-top")), c=parseFloat(o.getStyle(r, "padding-right")), h=parseFloat(o.getStyle(r, "padding-bottom")), f=s.right-s.left-u-c, g=s.bottom-s.top-d-h;return{x:i=Math.round((i-s.left-u)/f*r.width/e.currentDevicePixelRatio), y:n=Math.round((n-s.top-d)/g*r.height/e.currentDevicePixelRatio)}}, o.getConstraintWidth=function(t){return r(t, "max-width", "clientWidth")}, o.getConstraintHeight=function(t){return r(t, "max-height", "clientHeight")}, o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var i=parseInt(o.getStyle(e, "padding-left"), 10), n=parseInt(o.getStyle(e, "padding-right"), 10), a=e.clientWidth-i-n, r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a, r)}, o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var i=parseInt(o.getStyle(e, "padding-top"), 10), n=parseInt(o.getStyle(e, "padding-bottom"), 10), a=e.clientHeight-i-n, r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a, r)}, o.getStyle=function(t, e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t, null).getPropertyValue(e)}, o.retinaScale=function(t, e){var i=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==i){var n=t.canvas, a=t.height, o=t.width;n.height=a*i, n.width=o*i, t.ctx.scale(i, i), n.style.height||n.style.width||(n.style.height=a+"px", n.style.width=o+"px")}}, o.fontString=function(t, e, i){return e+" "+t+"px "+i}, o.longestText=function(t, e, i, n){var a=(n=n||{}).data=n.data||{}, r=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={}, r=n.garbageCollect=[], n.font=e), t.font=e;var s=0;o.each(i, function(e){null!=e&&!0!==o.isArray(e)?s=o.measureText(t, a, r, s, e):o.isArray(e)&&o.each(e, function(e){null==e||o.isArray(e)||(s=o.measureText(t, a, r, s, e))})});var l=r.length/2;if(l>i.length){for(var u=0;u<l;u++)delete a[r[u]];r.splice(0, l)}return s}, o.measureText=function(t, e, i, n, a){var o=e[a];return o||(o=e[a]=t.measureText(a).width, i.push(a)), o>n&&(n=o), n}, o.numberOfLabelLines=function(t){var e=1;return o.each(t, function(t){o.isArray(t)&&t.length>e&&(e=t.length)}), e}, o.color=n?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor), n(t)}:function(t){return console.error("Color.js not found!"), t}, o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}}, {25:25, 3:3, 45:45}], 28:[function(t, e, i){"use strict";var n=t(45);function a(t, e){return t.native?{x:t.x, y:t.y}:n.getRelativePosition(t, e)}function o(t, e){var i, n, a, o, r;for(n=0, o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0, r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function r(t, e){var i=[];return o(t, function(t){t.inRange(e.x, e.y)&&i.push(t)}), i}function s(t, e, i, n){var a=Number.POSITIVE_INFINITY, r=[];return o(t, function(t){if(!i||t.inRange(e.x, e.y)){var o=t.getCenterPoint(), s=n(e, o);s<a?(r=[t], a=s):s===a&&r.push(t)}}), r}function l(t){var e=-1!==t.indexOf("x"), i=-1!==t.indexOf("y");return function(t, n){var a=e?Math.abs(t.x-n.x):0, o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a, 2)+Math.pow(o, 2))}}function u(t, e, i){var n=a(e, t);i.axis=i.axis||"x";var o=l(i.axis), u=i.intersect?r(t, n):s(t, n, !1, o), d=[];return u.length?(t.data.datasets.forEach(function(e, i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[u[0]._index];n&&!n._view.skip&&d.push(n)}}), d):[]}e.exports={modes:{single:function(t, e){var i=a(e, t), n=[];return o(t, function(t){if(t.inRange(i.x, i.y))return n.push(t), n}), n.slice(0, 1)}, label:u, index:u, dataset:function(t, e, i){var n=a(e, t);i.axis=i.axis||"xy";var o=l(i.axis), u=i.intersect?r(t, n):s(t, n, !1, o);return u.length>0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data), u}, "x-axis":function(t, e){return u(t, e, {intersect:!1})}, point:function(t, e){return r(t, a(e, t))}, nearest:function(t, e, i){var n=a(e, t);i.axis=i.axis||"xy";var o=l(i.axis), r=s(t, n, i.intersect, o);return r.length>1&&r.sort(function(t, e){var i=t.getArea()-e.getArea();return 0===i&&(i=t._datasetIndex-e._datasetIndex), i}), r.slice(0, 1)}, x:function(t, e, i){var n=a(e, t), r=[], s=!1;return o(t, function(t){t.inXRange(n.x)&&r.push(t), t.inRange(n.x, n.y)&&(s=!0)}), i.intersect&&!s&&(r=[]), r}, y:function(t, e, i){var n=a(e, t), r=[], s=!1;return o(t, function(t){t.inYRange(n.y)&&r.push(t), t.inRange(n.x, n.y)&&(s=!0)}), i.intersect&&!s&&(r=[]), r}}}}, {45:45}], 29:[function(t, e, i){"use strict";t(25)._set("global", {responsive:!0, responsiveAnimationDuration:0, maintainAspectRatio:!0, events:["mousemove", "mouseout", "click", "touchstart", "touchmove"], hover:{onHover:null, mode:"nearest", intersect:!0, animationDuration:400}, onClick:null, defaultColor:"rgba(0, 0, 0, 0.1)", defaultFontColor:"#666", defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", defaultFontSize:12, defaultFontStyle:"normal", showLines:!0, elements:{}, layout:{padding:{top:0, right:0, bottom:0, left:0}}}), e.exports=function(){var t=function(t, e){return this.construct(t, e), this};return t.Chart=t, t}}, {25:25}], 30:[function(t, e, i){"use strict";var n=t(45);function a(t, e){return n.where(t, function(t){return t.position===e})}function o(t, e){t.forEach(function(t, e){return t._tmpIndex_=e, t}), t.sort(function(t, i){var n=e?i:t, a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}), t.forEach(function(t){delete t._tmpIndex_})}e.exports={defaults:{}, addBox:function(t, e){t.boxes||(t.boxes=[]), e.fullWidth=e.fullWidth||!1, e.position=e.position||"top", e.weight=e.weight||0, t.boxes.push(e)}, removeBox:function(t, e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i, 1)}, configure:function(t, e, i){for(var n, a=["fullWidth", "position", "weight"], o=a.length, r=0;r<o;++r)n=a[r], i.hasOwnProperty(n)&&(e[n]=i[n])}, update:function(t, e, i){if(t){var r=t.options.layout||{}, s=n.options.toPadding(r.padding), l=s.left, u=s.right, d=s.top, c=s.bottom, h=a(t.boxes, "left"), f=a(t.boxes, "right"), g=a(t.boxes, "top"), p=a(t.boxes, "bottom"), m=a(t.boxes, "chartArea");o(h, !0), o(f, !1), o(g, !0), o(p, !1);var v=e-l-u, b=i-d-c, x=b/2, y=(e-v/2)/(h.length+f.length), k=(i-x)/(g.length+p.length), M=v, w=b, S=[];n.each(h.concat(f, g, p), function(t){var e, i=t.isHorizontal();i?(e=t.update(t.fullWidth?v:M, k), w-=e.height):(e=t.update(y, w), M-=e.width), S.push({horizontal:i, minSize:e, box:t})});var C=0, _=0, D=0, I=0;n.each(g.concat(p), function(t){if(t.getPadding){var e=t.getPadding();C=Math.max(C, e.left), _=Math.max(_, e.right)}}), n.each(h.concat(f), function(t){if(t.getPadding){var e=t.getPadding();D=Math.max(D, e.top), I=Math.max(I, e.bottom)}});var P=l, A=u, T=d, F=c;n.each(h.concat(f), N), n.each(h, function(t){P+=t.width}), n.each(f, function(t){A+=t.width}), n.each(g.concat(p), N), n.each(g, function(t){T+=t.height}), n.each(p, function(t){F+=t.height}), n.each(h.concat(f), function(t){var e=n.findNextWhere(S, function(e){return e.box===t}), i={left:0, right:0, top:T, bottom:F};e&&t.update(e.minSize.width, w, i)}), P=l, A=u, T=d, F=c, n.each(h, function(t){P+=t.width}), n.each(f, function(t){A+=t.width}), n.each(g, function(t){T+=t.height}), n.each(p, function(t){F+=t.height});var O=Math.max(C-P, 0);P+=O, A+=Math.max(_-A, 0);var R=Math.max(D-T, 0);T+=R, F+=Math.max(I-F, 0);var L=i-T-F, z=e-P-A;z===M&&L===w||(n.each(h, function(t){t.height=L}), n.each(f, function(t){t.height=L}), n.each(g, function(t){t.fullWidth||(t.width=z)}), n.each(p, function(t){t.fullWidth||(t.width=z)}), w=L, M=z);var B=l+O, W=d+R;n.each(h.concat(g), V), B+=M, W+=w, n.each(f, V), n.each(p, V), t.chartArea={left:P, top:T, right:P+M, bottom:T+w}, n.each(m, function(e){e.left=t.chartArea.left, e.top=t.chartArea.top, e.right=t.chartArea.right, e.bottom=t.chartArea.bottom, e.update(M, w)})}function N(t){var e=n.findNextWhere(S, function(e){return e.box===t});if(e)if(t.isHorizontal()){var i={left:Math.max(P, C), right:Math.max(A, _), top:0, bottom:0};t.update(t.fullWidth?v:M, b/2, i)}else t.update(e.minSize.width, w)}function V(t){t.isHorizontal()?(t.left=t.fullWidth?l:P, t.right=t.fullWidth?e-u:P+M, t.top=W, t.bottom=W+t.height, W=t.bottom):(t.left=B, t.right=B+t.width, t.top=T, t.bottom=T+w, B=t.right)}}}}, {45:45}], 31:[function(t, e, i){"use strict";var n=t(25), a=t(45);n._set("global", {plugins:{}}), e.exports={_plugins:[], _cacheId:0, register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}), this._cacheId++}, unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i, 1)}), this._cacheId++}, clear:function(){this._plugins=[], this._cacheId++}, count:function(){return this._plugins.length}, getAll:function(){return this._plugins}, notify:function(t, e, i){var n, a, o, r, s, l=this.descriptors(t), u=l.length;for(n=0;n<u;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options), !1===s.apply(o, r)))return!1;return!0}, descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[], o=[], r=t&&t.config||{}, s=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id, r=s[e];!1!==r&&(!0===r&&(r=a.clone(n.global.plugins[e])), i.push(t), o.push({plugin:t, options:r||{}}))}}), e.descriptors=o, e.id=this._cacheId, o}, _invalidate:function(t){delete t.$plugins}}}, {25:25, 45:45}], 32:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45), r=t(34);function s(t){var e, i, n=[];for(e=0, i=t.length;e<i;++e)n.push(t[e].label);return n}function l(t, e, i){var n=t.getPixelForTick(e);return i&&(n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2), n}n._set("scale", {display:!0, position:"left", offset:!1, gridLines:{display:!0, color:"rgba(0, 0, 0, 0.1)", lineWidth:1, drawBorder:!0, drawOnChartArea:!0, drawTicks:!0, tickMarkLength:10, zeroLineWidth:1, zeroLineColor:"rgba(0, 0, 0, 0.25)", zeroLineBorderDash:[], zeroLineBorderDashOffset:0, offsetGridLines:!1, borderDash:[], borderDashOffset:0}, scaleLabel:{display:!1, labelString:"", lineHeight:1.2, padding:{top:4, bottom:4}}, ticks:{beginAtZero:!1, minRotation:0, maxRotation:50, mirror:!1, padding:0, reverse:!1, display:!0, autoSkip:!0, autoSkipPadding:0, labelOffset:0, callback:r.formatters.values, minor:{}, major:{}}}), e.exports=function(t){function e(t, e, i){return o.isArray(e)?o.longestText(t, i, e):t.measureText(e).width}function i(t){var e=o.valueOrDefault, i=n.global, a=e(t.fontSize, i.defaultFontSize), r=e(t.fontStyle, i.defaultFontStyle), s=e(t.fontFamily, i.defaultFontFamily);return{size:a, style:r, family:s, font:o.fontString(a, r, s)}}function r(t){return o.options.toLineHeight(o.valueOrDefault(t.lineHeight, 1.2), o.valueOrDefault(t.fontSize, n.global.defaultFontSize))}t.Scale=a.extend({getPadding:function(){return{left:this.paddingLeft||0, top:this.paddingTop||0, right:this.paddingRight||0, bottom:this.paddingBottom||0}}, getTicks:function(){return this._ticks}, mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}), !1===t.major&&(t.major={display:!1}), t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]), void 0===t.major[e]&&(t.major[e]=t[e]))}, beforeUpdate:function(){o.callback(this.options.beforeUpdate, [this])}, update:function(t, e, i){var n, a, r, s, l, u, d=this;for(d.beforeUpdate(), d.maxWidth=t, d.maxHeight=e, d.margins=o.extend({left:0, right:0, top:0, bottom:0}, i), d.longestTextCache=d.longestTextCache||{}, d.beforeSetDimensions(), d.setDimensions(), d.afterSetDimensions(), d.beforeDataLimits(), d.determineDataLimits(), d.afterDataLimits(), d.beforeBuildTicks(), l=d.buildTicks()||[], d.afterBuildTicks(), d.beforeTickToLabelConversion(), r=d.convertTicksToLabels(l)||d.ticks, d.afterTickToLabelConversion(), d.ticks=r, n=0, a=r.length;n<a;++n)s=r[n], (u=l[n])?u.label=s:l.push(u={label:s, major:!1});return d._ticks=l, d.beforeCalculateTickRotation(), d.calculateTickRotation(), d.afterCalculateTickRotation(), d.beforeFit(), d.fit(), d.afterFit(), d.afterUpdate(), d.minSize}, afterUpdate:function(){o.callback(this.options.afterUpdate, [this])}, beforeSetDimensions:function(){o.callback(this.options.beforeSetDimensions, [this])}, setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth, t.left=0, t.right=t.width):(t.height=t.maxHeight, t.top=0, t.bottom=t.height), t.paddingLeft=0, t.paddingTop=0, t.paddingRight=0, t.paddingBottom=0}, afterSetDimensions:function(){o.callback(this.options.afterSetDimensions, [this])}, beforeDataLimits:function(){o.callback(this.options.beforeDataLimits, [this])}, determineDataLimits:o.noop, afterDataLimits:function(){o.callback(this.options.afterDataLimits, [this])}, beforeBuildTicks:function(){o.callback(this.options.beforeBuildTicks, [this])}, buildTicks:o.noop, afterBuildTicks:function(){o.callback(this.options.afterBuildTicks, [this])}, beforeTickToLabelConversion:function(){o.callback(this.options.beforeTickToLabelConversion, [this])}, convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback, this)}, afterTickToLabelConversion:function(){o.callback(this.options.afterTickToLabelConversion, [this])}, beforeCalculateTickRotation:function(){o.callback(this.options.beforeCalculateTickRotation, [this])}, calculateTickRotation:function(){var t=this, e=t.ctx, n=t.options.ticks, a=s(t._ticks), r=i(n);e.font=r.font;var l=n.minRotation||0;if(a.length&&t.options.display&&t.isHorizontal())for(var u, d=o.longestText(e, r.font, a, t.longestTextCache), c=d, h=t.getPixelForTick(1)-t.getPixelForTick(0)-6;c>h&&l<n.maxRotation;){var f=o.toRadians(l);if(u=Math.cos(f), Math.sin(f)*d>t.maxHeight){l--;break}l++, c=u*d}t.labelRotation=l}, afterCalculateTickRotation:function(){o.callback(this.options.afterCalculateTickRotation, [this])}, beforeFit:function(){o.callback(this.options.beforeFit, [this])}, fit:function(){var t=this, n=t.minSize={width:0, height:0}, a=s(t._ticks), l=t.options, u=l.ticks, d=l.scaleLabel, c=l.gridLines, h=l.display, f=t.isHorizontal(), g=i(u), p=l.gridLines.tickMarkLength;if(n.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0, n.height=f?h&&c.drawTicks?p:0:t.maxHeight, d.display&&h){var m=r(d)+o.options.toPadding(d.padding).height;f?n.height+=m:n.width+=m}if(u.display&&h){var v=o.longestText(t.ctx, g.font, a, t.longestTextCache), b=o.numberOfLabelLines(a), x=.5*g.size, y=t.options.ticks.padding;if(f){t.longestLabelWidth=v;var k=o.toRadians(t.labelRotation), M=Math.cos(k), w=Math.sin(k)*v+g.size*b+x*(b-1)+x;n.height=Math.min(t.maxHeight, n.height+w+y), t.ctx.font=g.font;var S=e(t.ctx, a[0], g.font), C=e(t.ctx, a[a.length-1], g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===l.position?M*S+3:M*x+3, t.paddingRight="bottom"===l.position?M*x+3:M*C+3):(t.paddingLeft=S/2+3, t.paddingRight=C/2+3)}else u.mirror?v=0:v+=y+x, n.width=Math.min(t.maxWidth, n.width+v), t.paddingTop=g.size/2, t.paddingBottom=g.size/2}t.handleMargins(), t.width=n.width, t.height=n.height}, handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left, 0), t.paddingTop=Math.max(t.paddingTop-t.margins.top, 0), t.paddingRight=Math.max(t.paddingRight-t.margins.right, 0), t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom, 0))}, afterFit:function(){o.callback(this.options.afterFit, [this])}, isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position}, isFullWidth:function(){return this.options.fullWidth}, getRightValue:function(t){if(o.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t}, getLabelForIndex:o.noop, getPixelForValue:o.noop, getValueForPixel:o.noop, getPixelForTick:function(t){var e=this, i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1), 1), a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))}, getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft, n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height}, getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())}, getBaseValue:function(){var t=this.min, e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0}, _autoSkip:function(t){var e, i, n, a, r=this, s=r.isHorizontal(), l=r.options.ticks.minor, u=t.length, d=o.toRadians(r.labelRotation), c=Math.cos(d), h=r.longestLabelWidth*c, f=[];for(l.maxTicksLimit&&(a=l.maxTicksLimit), s&&(e=!1, (h+l.autoSkipPadding)*u>r.width-(r.paddingLeft+r.paddingRight)&&(e=1+Math.floor((h+l.autoSkipPadding)*u/(r.width-(r.paddingLeft+r.paddingRight)))), a&&u>a&&(e=Math.max(e, Math.floor(u/a)))), i=0;i<u;i++)n=t[i], (e>1&&i%e>0||i%e==0&&i+e>=u)&&i!==u-1&&delete n.label, f.push(n);return f}, draw:function(t){var e=this, a=e.options;if(a.display){var s=e.ctx, u=n.global, d=a.ticks.minor, c=a.ticks.major||d, h=a.gridLines, f=a.scaleLabel, g=0!==e.labelRotation, p=e.isHorizontal(), m=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(), v=o.valueOrDefault(d.fontColor, u.defaultFontColor), b=i(d), x=o.valueOrDefault(c.fontColor, u.defaultFontColor), y=i(c), k=h.drawTicks?h.tickMarkLength:0, M=o.valueOrDefault(f.fontColor, u.defaultFontColor), w=i(f), S=o.options.toPadding(f.padding), C=o.toRadians(e.labelRotation), _=[], D=e.options.gridLines.lineWidth, I="right"===a.position?e.right:e.right-D-k, P="right"===a.position?e.right+k:e.right, A="bottom"===a.position?e.top+D:e.bottom-k-D, T="bottom"===a.position?e.top+D+k:e.bottom+D;if(o.each(m, function(i, n){if(!o.isNullOrUndef(i.label)){var r, s, c, f, v, b, x, y, M, w, S, F, O, R, L=i.label;n===e.zeroLineIndex&&a.offset===h.offsetGridLines?(r=h.zeroLineWidth, s=h.zeroLineColor, c=h.zeroLineBorderDash, f=h.zeroLineBorderDashOffset):(r=o.valueAtIndexOrDefault(h.lineWidth, n), s=o.valueAtIndexOrDefault(h.color, n), c=o.valueOrDefault(h.borderDash, u.borderDash), f=o.valueOrDefault(h.borderDashOffset, u.borderDashOffset));var z="middle", B="middle", W=d.padding;if(p){var N=k+W;"bottom"===a.position?(B=g?"middle":"top", z=g?"right":"center", R=e.top+N):(B=g?"middle":"bottom", z=g?"left":"center", R=e.bottom-N);var V=l(e, n, h.offsetGridLines&&m.length>1);V<e.left&&(s="rgba(0, 0, 0, 0)"), V+=o.aliasPixel(r), O=e.getPixelForTick(n)+d.labelOffset, v=x=M=S=V, b=A, y=T, w=t.top, F=t.bottom+D}else{var E, H="left"===a.position;d.mirror?(z=H?"left":"right", E=W):(z=H?"right":"left", E=k+W), O=H?e.right-E:e.left+E;var j=l(e, n, h.offsetGridLines&&m.length>1);j<e.top&&(s="rgba(0, 0, 0, 0)"), j+=o.aliasPixel(r), R=e.getPixelForTick(n)+d.labelOffset, v=I, x=P, M=t.left, S=t.right+D, b=y=w=F=j}_.push({tx1:v, ty1:b, tx2:x, ty2:y, x1:M, y1:w, x2:S, y2:F, labelX:O, labelY:R, glWidth:r, glColor:s, glBorderDash:c, glBorderDashOffset:f, rotation:-1*C, label:L, major:i.major, textBaseline:B, textAlign:z})}}), o.each(_, function(t){if(h.display&&(s.save(), s.lineWidth=t.glWidth, s.strokeStyle=t.glColor, s.setLineDash&&(s.setLineDash(t.glBorderDash), s.lineDashOffset=t.glBorderDashOffset), s.beginPath(), h.drawTicks&&(s.moveTo(t.tx1, t.ty1), s.lineTo(t.tx2, t.ty2)), h.drawOnChartArea&&(s.moveTo(t.x1, t.y1), s.lineTo(t.x2, t.y2)), s.stroke(), s.restore()), d.display){s.save(), s.translate(t.labelX, t.labelY), s.rotate(t.rotation), s.font=t.major?y.font:b.font, s.fillStyle=t.major?x:v, s.textBaseline=t.textBaseline, s.textAlign=t.textAlign;var i=t.label;if(o.isArray(i))for(var n=i.length, a=1.5*b.size, r=e.isHorizontal()?0:-a*(n-1)/2, l=0;l<n;++l)s.fillText(""+i[l], 0, r), r+=a;else s.fillText(i, 0, 0);s.restore()}}), f.display){var F, O, R=0, L=r(f)/2;if(p)F=e.left+(e.right-e.left)/2, O="bottom"===a.position?e.bottom-L-S.bottom:e.top+L+S.top;else{var z="left"===a.position;F=z?e.left+L+S.top:e.right-L-S.top, O=e.top+(e.bottom-e.top)/2, R=z?-.5*Math.PI:.5*Math.PI}s.save(), s.translate(F, O), s.rotate(R), s.textAlign="center", s.textBaseline="middle", s.fillStyle=M, s.font=w.font, s.fillText(f.labelString, 0, 0), s.restore()}if(h.drawBorder){s.lineWidth=o.valueAtIndexOrDefault(h.lineWidth, 0), s.strokeStyle=o.valueAtIndexOrDefault(h.color, 0);var B=e.left, W=e.right+D, N=e.top, V=e.bottom+D, E=o.aliasPixel(s.lineWidth);p?(N=V="top"===a.position?e.bottom:e.top, N+=E, V+=E):(B=W="left"===a.position?e.right:e.left, B+=E, W+=E), s.beginPath(), s.moveTo(B, N), s.lineTo(W, V), s.stroke()}}}})}}, {25:25, 26:26, 34:34, 45:45}], 33:[function(t, e, i){"use strict";var n=t(25), a=t(45), o=t(30);e.exports=function(t){t.scaleService={constructors:{}, defaults:{}, registerScaleType:function(t, e, i){this.constructors[t]=e, this.defaults[t]=a.clone(i)}, getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0}, getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?a.merge({}, [n.scale, this.defaults[t]]):{}}, updateScaleDefaults:function(t, e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=a.extend(this.defaults[t], e))}, addScalesToLayout:function(t){a.each(t.scales, function(e){e.fullWidth=e.options.fullWidth, e.position=e.options.position, e.weight=e.options.weight, o.addBox(t, e)})}}}}, {25:25, 30:30, 45:45}], 34:[function(t, e, i){"use strict";var n=t(45);e.exports={formatters:{values:function(t){return n.isArray(t)?t:""+t}, linear:function(t, e, i){var a=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=n.log10(Math.abs(a)), r="";if(0!==t){var s=-1*Math.floor(o);s=Math.max(Math.min(s, 20), 0), r=t.toFixed(s)}else r="0";return r}, logarithmic:function(t, e, i){var a=t/Math.pow(10, Math.floor(n.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===i.length-1?t.toExponential():""}}}}, {45:45}], 35:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45);n._set("global", {tooltips:{enabled:!0, custom:null, mode:"nearest", position:"average", intersect:!0, backgroundColor:"rgba(0, 0, 0, 0.8)", titleFontStyle:"bold", titleSpacing:2, titleMarginBottom:6, titleFontColor:"#fff", titleAlign:"left", bodySpacing:2, bodyFontColor:"#fff", bodyAlign:"left", footerFontStyle:"bold", footerSpacing:2, footerMarginTop:6, footerFontColor:"#fff", footerAlign:"left", yPadding:6, xPadding:6, caretPadding:2, caretSize:5, cornerRadius:6, multiKeyBackground:"#fff", displayColors:!0, borderColor:"rgba(0, 0, 0, 0)", borderWidth:0, callbacks:{beforeTitle:o.noop, title:function(t, e){var i="", n=e.labels, a=n?n.length:0;if(t.length>0){var o=t[0];o.xLabel?i=o.xLabel:a>0&&o.index<a&&(i=n[o.index])}return i}, afterTitle:o.noop, beforeBody:o.noop, beforeLabel:o.noop, label:function(t, e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "), i+=t.yLabel}, labelColor:function(t, e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor, backgroundColor:i.backgroundColor}}, labelTextColor:function(){return this._options.bodyFontColor}, afterLabel:o.noop, afterBody:o.noop, beforeFooter:o.noop, footer:o.noop, afterFooter:o.noop}}}), e.exports=function(t){function e(t, e){var i=o.color(t);return i.alpha(e*i.alpha()).rgbaString()}function i(t, e){return e&&(o.isArray(e)?Array.prototype.push.apply(t, e):t.push(e)), t}function r(t){var e=n.global, i=o.valueOrDefault;return{xPadding:t.xPadding, yPadding:t.yPadding, xAlign:t.xAlign, yAlign:t.yAlign, bodyFontColor:t.bodyFontColor, _bodyFontFamily:i(t.bodyFontFamily, e.defaultFontFamily), _bodyFontStyle:i(t.bodyFontStyle, e.defaultFontStyle), _bodyAlign:t.bodyAlign, bodyFontSize:i(t.bodyFontSize, e.defaultFontSize), bodySpacing:t.bodySpacing, titleFontColor:t.titleFontColor, _titleFontFamily:i(t.titleFontFamily, e.defaultFontFamily), _titleFontStyle:i(t.titleFontStyle, e.defaultFontStyle), titleFontSize:i(t.titleFontSize, e.defaultFontSize), _titleAlign:t.titleAlign, titleSpacing:t.titleSpacing, titleMarginBottom:t.titleMarginBottom, footerFontColor:t.footerFontColor, _footerFontFamily:i(t.footerFontFamily, e.defaultFontFamily), _footerFontStyle:i(t.footerFontStyle, e.defaultFontStyle), footerFontSize:i(t.footerFontSize, e.defaultFontSize), _footerAlign:t.footerAlign, footerSpacing:t.footerSpacing, footerMarginTop:t.footerMarginTop, caretSize:t.caretSize, cornerRadius:t.cornerRadius, backgroundColor:t.backgroundColor, opacity:0, legendColorBackground:t.multiKeyBackground, displayColors:t.displayColors, borderColor:t.borderColor, borderWidth:t.borderWidth}}t.Tooltip=a.extend({initialize:function(){this._model=r(this._options), this._lastActive=[]}, getTitle:function(){var t=this._options.callbacks, e=t.beforeTitle.apply(this, arguments), n=t.title.apply(this, arguments), a=t.afterTitle.apply(this, arguments), o=[];return o=i(o=i(o=i(o, e), n), a)}, getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this, arguments);return o.isArray(t)?t:void 0!==t?[t]:[]}, getBody:function(t, e){var n=this, a=n._options.callbacks, r=[];return o.each(t, function(t){var o={before:[], lines:[], after:[]};i(o.before, a.beforeLabel.call(n, t, e)), i(o.lines, a.label.call(n, t, e)), i(o.after, a.afterLabel.call(n, t, e)), r.push(o)}), r}, getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this, arguments);return o.isArray(t)?t:void 0!==t?[t]:[]}, getFooter:function(){var t=this._options.callbacks, e=t.beforeFooter.apply(this, arguments), n=t.footer.apply(this, arguments), a=t.afterFooter.apply(this, arguments), o=[];return o=i(o=i(o=i(o, e), n), a)}, update:function(e){var i, n, a, s, l, u, d, c, h, f, g, p, m, v, b, x, y, k, M, w, S=this, C=S._options, _=S._model, D=S._model=r(C), I=S._active, P=S._data, A={xAlign:_.xAlign, yAlign:_.yAlign}, T={x:_.x, y:_.y}, F={width:_.width, height:_.height}, O={x:_.caretX, y:_.caretY};if(I.length){D.opacity=1;var R=[], L=[];O=t.Tooltip.positioners[C.position].call(S, I, S._eventPosition);var z=[];for(i=0, n=I.length;i<n;++i)z.push((x=I[i], y=void 0, k=void 0, void 0, void 0, y=x._xScale, k=x._yScale||x._scale, M=x._index, w=x._datasetIndex, {xLabel:y?y.getLabelForIndex(M, w):"", yLabel:k?k.getLabelForIndex(M, w):"", index:M, datasetIndex:w, x:x._model.x, y:x._model.y}));C.filter&&(z=z.filter(function(t){return C.filter(t, P)})), C.itemSort&&(z=z.sort(function(t, e){return C.itemSort(t, e, P)})), o.each(z, function(t){R.push(C.callbacks.labelColor.call(S, t, S._chart)), L.push(C.callbacks.labelTextColor.call(S, t, S._chart))}), D.title=S.getTitle(z, P), D.beforeBody=S.getBeforeBody(z, P), D.body=S.getBody(z, P), D.afterBody=S.getAfterBody(z, P), D.footer=S.getFooter(z, P), D.x=Math.round(O.x), D.y=Math.round(O.y), D.caretPadding=C.caretPadding, D.labelColors=R, D.labelTextColors=L, D.dataPoints=z, A=function(t, e){var i, n, a, o, r, s=t._model, l=t._chart, u=t._chart.chartArea, d="center", c="center";s.y<e.height?c="top":s.y>l.height-e.height&&(c="bottom");var h=(u.left+u.right)/2, f=(u.top+u.bottom)/2;"center"===c?(i=function(t){return t<=h}, n=function(t){return t>h}):(i=function(t){return t<=e.width/2}, n=function(t){return t>=l.width-e.width/2}), a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width}, o=function(t){return t-e.width-s.caretSize-s.caretPadding<0}, r=function(t){return t<=f?"top":"bottom"}, i(s.x)?(d="left", a(s.x)&&(d="center", c=r(s.y))):n(s.x)&&(d="right", o(s.x)&&(d="center", c=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d, yAlign:g.yAlign?g.yAlign:c}}(this, F=function(t, e){var i=t._chart.ctx, n=2*e.yPadding, a=0, r=e.body, s=r.reduce(function(t, e){return t+e.before.length+e.lines.length+e.after.length}, 0);s+=e.beforeBody.length+e.afterBody.length;var l=e.title.length, u=e.footer.length, d=e.titleFontSize, c=e.bodyFontSize, h=e.footerFontSize;n+=l*d, n+=l?(l-1)*e.titleSpacing:0, n+=l?e.titleMarginBottom:0, n+=s*c, n+=s?(s-1)*e.bodySpacing:0, n+=u?e.footerMarginTop:0, n+=u*h, n+=u?(u-1)*e.footerSpacing:0;var f=0, g=function(t){a=Math.max(a, i.measureText(t).width+f)};return i.font=o.fontString(d, e._titleFontStyle, e._titleFontFamily), o.each(e.title, g), i.font=o.fontString(c, e._bodyFontStyle, e._bodyFontFamily), o.each(e.beforeBody.concat(e.afterBody), g), f=e.displayColors?c+2:0, o.each(r, function(t){o.each(t.before, g), o.each(t.lines, g), o.each(t.after, g)}), f=0, i.font=o.fontString(h, e._footerFontStyle, e._footerFontFamily), o.each(e.footer, g), {width:a+=2*e.xPadding, height:n}}(this, D)), a=D, s=F, l=A, u=S._chart, d=a.x, c=a.y, h=a.caretSize, f=a.caretPadding, g=a.cornerRadius, p=l.xAlign, m=l.yAlign, v=h+f, b=g+f, "right"===p?d-=s.width:"center"===p&&((d-=s.width/2)+s.width>u.width&&(d=u.width-s.width), d<0&&(d=0)), "top"===m?c+=v:c-="bottom"===m?s.height+v:s.height/2, "center"===m?"left"===p?d+=v:"right"===p&&(d-=v):"left"===p?d-=b:"right"===p&&(d+=b), T={x:d, y:c}}else D.opacity=0;return D.xAlign=A.xAlign, D.yAlign=A.yAlign, D.x=T.x, D.y=T.y, D.width=F.width, D.height=F.height, D.caretX=O.x, D.caretY=O.y, S._model=D, e&&C.custom&&C.custom.call(S, D), S}, drawCaret:function(t, e){var i=this._chart.ctx, n=this._view, a=this.getCaretPosition(t, e, n);i.lineTo(a.x1, a.y1), i.lineTo(a.x2, a.y2), i.lineTo(a.x3, a.y3)}, getCaretPosition:function(t, e, i){var n, a, o, r, s, l, u=i.caretSize, d=i.cornerRadius, c=i.xAlign, h=i.yAlign, f=t.x, g=t.y, p=e.width, m=e.height;if("center"===h)s=g+m/2, "left"===c?(a=(n=f)-u, o=n, r=s+u, l=s-u):(a=(n=f+p)+u, o=n, r=s-u, l=s+u);else if("left"===c?(n=(a=f+d+u)-u, o=a+u):"right"===c?(n=(a=f+p-d-u)-u, o=a+u):(n=(a=i.caretX)-u, o=a+u), "top"===h)s=(r=g)-u, l=r;else{s=(r=g+m)+u, l=r;var v=o;o=n, n=v}return{x1:n, x2:a, x3:o, y1:r, y2:s, y3:l}}, drawTitle:function(t, i, n, a){var r=i.title;if(r.length){n.textAlign=i._titleAlign, n.textBaseline="top";var s, l, u=i.titleFontSize, d=i.titleSpacing;for(n.fillStyle=e(i.titleFontColor, a), n.font=o.fontString(u, i._titleFontStyle, i._titleFontFamily), s=0, l=r.length;s<l;++s)n.fillText(r[s], t.x, t.y), t.y+=u+d, s+1===r.length&&(t.y+=i.titleMarginBottom-d)}}, drawBody:function(t, i, n, a){var r=i.bodyFontSize, s=i.bodySpacing, l=i.body;n.textAlign=i._bodyAlign, n.textBaseline="top", n.font=o.fontString(r, i._bodyFontStyle, i._bodyFontFamily);var u=0, d=function(e){n.fillText(e, t.x+u, t.y), t.y+=r+s};n.fillStyle=e(i.bodyFontColor, a), o.each(i.beforeBody, d);var c=i.displayColors;u=c?r+2:0, o.each(l, function(s, l){var u=e(i.labelTextColors[l], a);n.fillStyle=u, o.each(s.before, d), o.each(s.lines, function(o){c&&(n.fillStyle=e(i.legendColorBackground, a), n.fillRect(t.x, t.y, r, r), n.lineWidth=1, n.strokeStyle=e(i.labelColors[l].borderColor, a), n.strokeRect(t.x, t.y, r, r), n.fillStyle=e(i.labelColors[l].backgroundColor, a), n.fillRect(t.x+1, t.y+1, r-2, r-2), n.fillStyle=u), d(o)}), o.each(s.after, d)}), u=0, o.each(i.afterBody, d), t.y-=s}, drawFooter:function(t, i, n, a){var r=i.footer;r.length&&(t.y+=i.footerMarginTop, n.textAlign=i._footerAlign, n.textBaseline="top", n.fillStyle=e(i.footerFontColor, a), n.font=o.fontString(i.footerFontSize, i._footerFontStyle, i._footerFontFamily), o.each(r, function(e){n.fillText(e, t.x, t.y), t.y+=i.footerFontSize+i.footerSpacing}))}, drawBackground:function(t, i, n, a, o){n.fillStyle=e(i.backgroundColor, o), n.strokeStyle=e(i.borderColor, o), n.lineWidth=i.borderWidth;var r=i.xAlign, s=i.yAlign, l=t.x, u=t.y, d=a.width, c=a.height, h=i.cornerRadius;n.beginPath(), n.moveTo(l+h, u), "top"===s&&this.drawCaret(t, a), n.lineTo(l+d-h, u), n.quadraticCurveTo(l+d, u, l+d, u+h), "center"===s&&"right"===r&&this.drawCaret(t, a), n.lineTo(l+d, u+c-h), n.quadraticCurveTo(l+d, u+c, l+d-h, u+c), "bottom"===s&&this.drawCaret(t, a), n.lineTo(l+h, u+c), n.quadraticCurveTo(l, u+c, l, u+c-h), "center"===s&&"left"===r&&this.drawCaret(t, a), n.lineTo(l, u+h), n.quadraticCurveTo(l, u, l+h, u), n.closePath(), n.fill(), i.borderWidth>0&&n.stroke()}, draw:function(){var t=this._chart.ctx, e=this._view;if(0!==e.opacity){var i={width:e.width, height:e.height}, n={x:e.x, y:e.y}, a=Math.abs(e.opacity<.001)?0:e.opacity, o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(n, e, t, i, a), n.x+=e.xPadding, n.y+=e.yPadding, this.drawTitle(n, e, t, a), this.drawBody(n, e, t, a), this.drawFooter(n, e, t, a))}}, handleEvent:function(t){var e, i=this, n=i._options;return i._lastActive=i._lastActive||[], "mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t, n.mode, n), (e=!o.arrayEquals(i._active, i._lastActive))&&(i._lastActive=i._active, (n.enabled||n.custom)&&(i._eventPosition={x:t.x, y:t.y}, i.update(!0), i.pivot())), e}}), t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e, i, n=0, a=0, o=0;for(e=0, i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x, a+=s.y, ++o}}return{x:Math.round(n/o), y:Math.round(a/o)}}, nearest:function(t, e){var i, n, a, r=e.x, s=e.y, l=Number.POSITIVE_INFINITY;for(i=0, n=t.length;i<n;++i){var u=t[i];if(u&&u.hasValue()){var d=u.getCenterPoint(), c=o.distanceBetweenPoints(e, d);c<l&&(l=c, a=u)}}if(a){var h=a.tooltipPosition();r=h.x, s=h.y}return{x:r, y:s}}}}}, {25:25, 26:26, 45:45}], 36:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45);n._set("global", {elements:{arc:{backgroundColor:n.global.defaultColor, borderColor:"#fff", borderWidth:2}}}), e.exports=a.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x, 2)<Math.pow(e.radius+e.hoverRadius, 2)}, inRange:function(t, e){var i=this._view;if(i){for(var n=o.getAngleFromPoint(i, {x:t, y:e}), a=n.angle, r=n.distance, s=i.startAngle, l=i.endAngle;l<s;)l+=2*Math.PI;for(;a>l;)a-=2*Math.PI;for(;a<s;)a+=2*Math.PI;var u=a>=s&&a<=l, d=r>=i.innerRadius&&r<=i.outerRadius;return u&&d}return!1}, getCenterPoint:function(){var t=this._view, e=(t.startAngle+t.endAngle)/2, i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i, y:t.y+Math.sin(e)*i}}, getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius, 2)-Math.pow(t.innerRadius, 2))}, tooltipPosition:function(){var t=this._view, e=t.startAngle+(t.endAngle-t.startAngle)/2, i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i, y:t.y+Math.sin(e)*i}}, draw:function(){var t=this._chart.ctx, e=this._view, i=e.startAngle, n=e.endAngle;t.beginPath(), t.arc(e.x, e.y, e.outerRadius, i, n), t.arc(e.x, e.y, e.innerRadius, n, i, !0), t.closePath(), t.strokeStyle=e.borderColor, t.lineWidth=e.borderWidth, t.fillStyle=e.backgroundColor, t.fill(), t.lineJoin="bevel", e.borderWidth&&t.stroke()}})}, {25:25, 26:26, 45:45}], 37:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45), r=n.global;n._set("global", {elements:{line:{tension:.4, backgroundColor:r.defaultColor, borderWidth:3, borderColor:r.defaultColor, borderCapStyle:"butt", borderDash:[], borderDashOffset:0, borderJoinStyle:"miter", capBezierPoints:!0, fill:!0}}}), e.exports=a.extend({draw:function(){var t, e, i, n, a=this._view, s=this._chart.ctx, l=a.spanGaps, u=this._children.slice(), d=r.elements.line, c=-1;for(this._loop&&u.length&&u.push(u[0]), s.save(), s.lineCap=a.borderCapStyle||d.borderCapStyle, s.setLineDash&&s.setLineDash(a.borderDash||d.borderDash), s.lineDashOffset=a.borderDashOffset||d.borderDashOffset, s.lineJoin=a.borderJoinStyle||d.borderJoinStyle, s.lineWidth=a.borderWidth||d.borderWidth, s.strokeStyle=a.borderColor||r.defaultColor, s.beginPath(), c=-1, t=0;t<u.length;++t)e=u[t], i=o.previousItem(u, t), n=e._view, 0===t?n.skip||(s.moveTo(n.x, n.y), c=t):(i=-1===c?i:u[c], n.skip||(c!==t-1&&!l||-1===c?s.moveTo(n.x, n.y):o.canvas.lineTo(s, i._view, e._view), c=t));s.stroke(), s.restore()}})}, {25:25, 26:26, 45:45}], 38:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45), r=n.global.defaultColor;function s(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}n._set("global", {elements:{point:{radius:3, pointStyle:"circle", backgroundColor:r, borderColor:r, borderWidth:1, hitRadius:1, hoverRadius:4, hoverBorderWidth:1}}}), e.exports=a.extend({inRange:function(t, e){var i=this._view;return!!i&&Math.pow(t-i.x, 2)+Math.pow(e-i.y, 2)<Math.pow(i.hitRadius+i.radius, 2)}, inLabelRange:s, inXRange:s, inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius}, getCenterPoint:function(){var t=this._view;return{x:t.x, y:t.y}}, getArea:function(){return Math.PI*Math.pow(this._view.radius, 2)}, tooltipPosition:function(){var t=this._view;return{x:t.x, y:t.y, padding:t.radius+t.borderWidth}}, draw:function(t){var e=this._view, i=this._model, a=this._chart.ctx, s=e.pointStyle, l=e.radius, u=e.x, d=e.y, c=o.color, h=0;e.skip||(a.strokeStyle=e.borderColor||r, a.lineWidth=o.valueOrDefault(e.borderWidth, n.global.elements.point.borderWidth), a.fillStyle=e.backgroundColor||r, void 0!==t&&(i.x<t.left||1.01*t.right<i.x||i.y<t.top||1.01*t.bottom<i.y)&&(i.x<t.left?h=(u-i.x)/(t.left-i.x):1.01*t.right<i.x?h=(i.x-u)/(i.x-t.right):i.y<t.top?h=(d-i.y)/(t.top-i.y):1.01*t.bottom<i.y&&(h=(i.y-d)/(i.y-t.bottom)), h=Math.round(100*h)/100, a.strokeStyle=c(a.strokeStyle).alpha(h).rgbString(), a.fillStyle=c(a.fillStyle).alpha(h).rgbString()), o.canvas.drawPoint(a, s, l, u, d))}})}, {25:25, 26:26, 45:45}], 39:[function(t, e, i){"use strict";var n=t(25), a=t(26);function o(t){return void 0!==t._view.width}function r(t){var e, i, n, a, r=t._view;if(o(t)){var s=r.width/2;e=r.x-s, i=r.x+s, n=Math.min(r.y, r.base), a=Math.max(r.y, r.base)}else{var l=r.height/2;e=Math.min(r.x, r.base), i=Math.max(r.x, r.base), n=r.y-l, a=r.y+l}return{left:e, top:n, right:i, bottom:a}}n._set("global", {elements:{rectangle:{backgroundColor:n.global.defaultColor, borderColor:n.global.defaultColor, borderSkipped:"bottom", borderWidth:0}}}), e.exports=a.extend({draw:function(){var t, e, i, n, a, o, r, s=this._chart.ctx, l=this._view, u=l.borderWidth;if(l.horizontal?(t=l.base, e=l.x, i=l.y-l.height/2, n=l.y+l.height/2, a=e>t?1:-1, o=1, r=l.borderSkipped||"left"):(t=l.x-l.width/2, e=l.x+l.width/2, i=l.y, a=1, o=(n=l.base)>i?1:-1, r=l.borderSkipped||"bottom"), u){var d=Math.min(Math.abs(t-e), Math.abs(i-n)), c=(u=u>d?d:u)/2, h=t+("left"!==r?c*a:0), f=e+("right"!==r?-c*a:0), g=i+("top"!==r?c*o:0), p=n+("bottom"!==r?-c*o:0);h!==f&&(i=g, n=p), g!==p&&(t=h, e=f)}s.beginPath(), s.fillStyle=l.backgroundColor, s.strokeStyle=l.borderColor, s.lineWidth=u;var m=[[t, n], [t, i], [e, i], [e, n]], v=["bottom", "left", "top", "right"].indexOf(r, 0);function b(t){return m[(v+t)%4]}-1===v&&(v=0);var x=b(0);s.moveTo(x[0], x[1]);for(var y=1;y<4;y++)x=b(y), s.lineTo(x[0], x[1]);s.fill(), u&&s.stroke()}, height:function(){var t=this._view;return t.base-t.y}, inRange:function(t, e){var i=!1;if(this._view){var n=r(this);i=t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom}return i}, inLabelRange:function(t, e){if(!this._view)return!1;var i=r(this);return o(this)?t>=i.left&&t<=i.right:e>=i.top&&e<=i.bottom}, inXRange:function(t){var e=r(this);return t>=e.left&&t<=e.right}, inYRange:function(t){var e=r(this);return t>=e.top&&t<=e.bottom}, getCenterPoint:function(){var t, e, i=this._view;return o(this)?(t=i.x, e=(i.y+i.base)/2):(t=(i.x+i.base)/2, e=i.y), {x:t, y:e}}, getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)}, tooltipPosition:function(){var t=this._view;return{x:t.x, y:t.y}}})}, {25:25, 26:26}], 40:[function(t, e, i){"use strict";e.exports={}, e.exports.Arc=t(36), e.exports.Line=t(37), e.exports.Point=t(38), e.exports.Rectangle=t(39)}, {36:36, 37:37, 38:38, 39:39}], 41:[function(t, e, i){"use strict";var n=t(42);i=e.exports={clear:function(t){t.ctx.clearRect(0, 0, t.width, t.height)}, roundedRect:function(t, e, i, n, a, o){if(o){var r=Math.min(o, n/2), s=Math.min(o, a/2);t.moveTo(e+r, i), t.lineTo(e+n-r, i), t.quadraticCurveTo(e+n, i, e+n, i+s), t.lineTo(e+n, i+a-s), t.quadraticCurveTo(e+n, i+a, e+n-r, i+a), t.lineTo(e+r, i+a), t.quadraticCurveTo(e, i+a, e, i+a-s), t.lineTo(e, i+s), t.quadraticCurveTo(e, i, e+r, i)}else t.rect(e, i, n, a)}, drawPoint:function(t, e, i, n, a){var o, r, s, l, u, d;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(i)||i<=0)){switch(e){default:t.beginPath(), t.arc(n, a, i, 0, 2*Math.PI), t.closePath(), t.fill();break;case"triangle":t.beginPath(), u=(r=3*i/Math.sqrt(3))*Math.sqrt(3)/2, t.moveTo(n-r/2, a+u/3), t.lineTo(n+r/2, a+u/3), t.lineTo(n, a-2*u/3), t.closePath(), t.fill();break;case"rect":d=1/Math.SQRT2*i, t.beginPath(), t.fillRect(n-d, a-d, 2*d, 2*d), t.strokeRect(n-d, a-d, 2*d, 2*d);break;case"rectRounded":var c=i/Math.SQRT2, h=n-c, f=a-c, g=Math.SQRT2*i;t.beginPath(), this.roundedRect(t, h, f, g, g, i/2), t.closePath(), t.fill();break;case"rectRot":d=1/Math.SQRT2*i, t.beginPath(), t.moveTo(n-d, a), t.lineTo(n, a+d), t.lineTo(n+d, a), t.lineTo(n, a-d), t.closePath(), t.fill();break;case"cross":t.beginPath(), t.moveTo(n, a+i), t.lineTo(n, a-i), t.moveTo(n-i, a), t.lineTo(n+i, a), t.closePath();break;case"crossRot":t.beginPath(), s=Math.cos(Math.PI/4)*i, l=Math.sin(Math.PI/4)*i, t.moveTo(n-s, a-l), t.lineTo(n+s, a+l), t.moveTo(n-s, a+l), t.lineTo(n+s, a-l), t.closePath();break;case"star":t.beginPath(), t.moveTo(n, a+i), t.lineTo(n, a-i), t.moveTo(n-i, a), t.lineTo(n+i, a), s=Math.cos(Math.PI/4)*i, l=Math.sin(Math.PI/4)*i, t.moveTo(n-s, a-l), t.lineTo(n+s, a+l), t.moveTo(n-s, a+l), t.lineTo(n+s, a-l), t.closePath();break;case"line":t.beginPath(), t.moveTo(n-i, a), t.lineTo(n+i, a), t.closePath();break;case"dash":t.beginPath(), t.moveTo(n, a), t.lineTo(n+i, a), t.closePath()}t.stroke()}}else t.drawImage(e, n-e.width/2, a-e.height/2, e.width, e.height)}, clipArea:function(t, e){t.save(), t.beginPath(), t.rect(e.left, e.top, e.right-e.left, e.bottom-e.top), t.clip()}, unclipArea:function(t){t.restore()}, lineTo:function(t, e, i, n){if(i.steppedLine)return"after"===i.steppedLine&&!n||"after"!==i.steppedLine&&n?t.lineTo(e.x, i.y):t.lineTo(i.x, e.y), void t.lineTo(i.x, i.y);i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX, n?e.controlPointPreviousY:e.controlPointNextY, n?i.controlPointNextX:i.controlPointPreviousX, n?i.controlPointNextY:i.controlPointPreviousY, i.x, i.y):t.lineTo(i.x, i.y)}};n.clear=i.clear, n.drawRoundedRectangle=function(t){t.beginPath(), i.roundedRect.apply(i, arguments), t.closePath()}}, {42:42}], 42:[function(t, e, i){"use strict";var n, a={noop:function(){}, uid:(n=0, function(){return n++}), isNullOrUndef:function(t){return null==t}, isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)}, isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}, valueOrDefault:function(t, e){return void 0===t?e:t}, valueAtIndexOrDefault:function(t, e, i){return a.valueOrDefault(a.isArray(t)?t[e]:t, i)}, callback:function(t, e, i){if(t&&"function"==typeof t.call)return t.apply(i, e)}, each:function(t, e, i, n){var o, r, s;if(a.isArray(t))if(r=t.length, n)for(o=r-1;o>=0;o--)e.call(i, t[o], o);else for(o=0;o<r;o++)e.call(i, t[o], o);else if(a.isObject(t))for(r=(s=Object.keys(t)).length, o=0;o<r;o++)e.call(i, t[s[o]], s[o])}, arrayEquals:function(t, e){var i, n, o, r;if(!t||!e||t.length!==e.length)return!1;for(i=0, n=t.length;i<n;++i)if(o=t[i], r=e[i], o instanceof Array&&r instanceof Array){if(!a.arrayEquals(o, r))return!1}else if(o!==r)return!1;return!0}, clone:function(t){if(a.isArray(t))return t.map(a.clone);if(a.isObject(t)){for(var e={}, i=Object.keys(t), n=i.length, o=0;o<n;++o)e[i[o]]=a.clone(t[i[o]]);return e}return t}, _merger:function(t, e, i, n){var o=e[t], r=i[t];a.isObject(o)&&a.isObject(r)?a.merge(o, r, n):e[t]=a.clone(r)}, _mergerIf:function(t, e, i){var n=e[t], o=i[t];a.isObject(n)&&a.isObject(o)?a.mergeIf(n, o):e.hasOwnProperty(t)||(e[t]=a.clone(o))}, merge:function(t, e, i){var n, o, r, s, l, u=a.isArray(e)?e:[e], d=u.length;if(!a.isObject(t))return t;for(n=(i=i||{}).merger||a._merger, o=0;o<d;++o)if(e=u[o], a.isObject(e))for(l=0, s=(r=Object.keys(e)).length;l<s;++l)n(r[l], t, e, i);return t}, mergeIf:function(t, e){return a.merge(t, e, {merger:a._mergerIf})}, extend:function(t){for(var e=function(e, i){t[i]=e}, i=1, n=arguments.length;i<n;++i)a.each(arguments[i], e);return t}, inherits:function(t){var e=this, i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this, arguments)}, n=function(){this.constructor=i};return n.prototype=e.prototype, i.prototype=new n, i.extend=a.inherits, t&&a.extend(i.prototype, t), i.__super__=e.prototype, i}};e.exports=a, a.callCallback=a.callback, a.indexOf=function(t, e, i){return Array.prototype.indexOf.call(t, e, i)}, a.getValueOrDefault=a.valueOrDefault, a.getValueAtIndexOrDefault=a.valueAtIndexOrDefault}, {}], 43:[function(t, e, i){"use strict";var n=t(42), a={linear:function(t){return t}, easeInQuad:function(t){return t*t}, easeOutQuad:function(t){return-t*(t-2)}, easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)}, easeInCubic:function(t){return t*t*t}, easeOutCubic:function(t){return(t-=1)*t*t+1}, easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}, easeInQuart:function(t){return t*t*t*t}, easeOutQuart:function(t){return-((t-=1)*t*t*t-1)}, easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}, easeInQuint:function(t){return t*t*t*t*t}, easeOutQuint:function(t){return(t-=1)*t*t*t*t+1}, easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}, easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))}, easeOutSine:function(t){return Math.sin(t*(Math.PI/2))}, easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)}, easeInExpo:function(t){return 0===t?0:Math.pow(2, 10*(t-1))}, easeOutExpo:function(t){return 1===t?1:1-Math.pow(2, -10*t)}, easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2, 10*(t-1)):.5*(2-Math.pow(2, -10*--t))}, easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)}, easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)}, easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}, easeInElastic:function(t){var e=1.70158, i=0, n=1;return 0===t?0:1===t?1:(i||(i=.3), n<1?(n=1, e=i/4):e=i/(2*Math.PI)*Math.asin(1/n), -n*Math.pow(2, 10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))}, easeOutElastic:function(t){var e=1.70158, i=0, n=1;return 0===t?0:1===t?1:(i||(i=.3), n<1?(n=1, e=i/4):e=i/(2*Math.PI)*Math.asin(1/n), n*Math.pow(2, -10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)}, easeInOutElastic:function(t){var e=1.70158, i=0, n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45), n<1?(n=1, e=i/4):e=i/(2*Math.PI)*Math.asin(1/n), t<1?n*Math.pow(2, 10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2, -10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)}, easeInBack:function(t){return t*t*(2.70158*t-1.70158)}, easeOutBack:function(t){return(t-=1)*t*(2.70158*t+1.70158)+1}, easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)}, easeInBounce:function(t){return 1-a.easeOutBounce(1-t)}, easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}, easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a}, n.easingEffects=a}, {42:42}], 44:[function(t, e, i){"use strict";var n=t(42);e.exports={toLineHeight:function(t, e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2], i[3]){case"px":return t;case"%":t/=100}return e*t}, toPadding:function(t){var e, i, a, o;return n.isObject(t)?(e=+t.top||0, i=+t.right||0, a=+t.bottom||0, o=+t.left||0):e=i=a=o=+t||0, {top:e, right:i, bottom:a, left:o, height:e+a, width:o+i}}, resolve:function(t, e, i){var a, o, r;for(a=0, o=t.length;a<o;++a)if(void 0!==(r=t[a])&&(void 0!==e&&"function"==typeof r&&(r=r(e)), void 0!==i&&n.isArray(r)&&(r=r[i]), void 0!==r))return r}}}, {42:42}], 45:[function(t, e, i){"use strict";e.exports=t(42), e.exports.easing=t(43), e.exports.canvas=t(41), e.exports.options=t(44)}, {41:41, 42:42, 43:43, 44:44}], 46:[function(t, e, i){e.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas), t&&t.getContext("2d")||null}}}, {}], 47:[function(t, e, i){"use strict";var n=t(45), a="$chartjs", o="chartjs-", r=o+"render-monitor", s=o+"render-animation", l=["animationstart", "webkitAnimationStart"], u={touchstart:"mousedown", touchmove:"mousemove", touchend:"mouseup", pointerenter:"mouseenter", pointerdown:"mousedown", pointermove:"mousemove", pointerup:"mouseup", pointerleave:"mouseout", pointerout:"mouseout"};function d(t, e){var i=n.getStyle(t, e), a=i&&i.match(/^(\d+)(\.\d+)?px$/);return a?Number(a[1]):void 0}var c=!!function(){var t=!1;try{var e=Object.defineProperty({}, "passive", {get:function(){t=!0}});window.addEventListener("e", null, e)}catch(t){}return t}()&&{passive:!0};function h(t, e, i){t.addEventListener(e, i, c)}function f(t, e, i){t.removeEventListener(e, i, c)}function g(t, e, i, n, a){return{type:t, chart:e, native:a||null, x:void 0!==i?i:null, y:void 0!==n?n:null}}function p(t, e, i){var u, d, c, f, p, m, v, b, x=t[a]||(t[a]={}), y=x.resizer=function(t){var e=document.createElement("div"), i=o+"size-monitor", n="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=n, e.className=i, e.innerHTML='<div class="'+i+'-expand" style="'+n+'"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="'+i+'-shrink" style="'+n+'"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';var a=e.childNodes[0], r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6, a.scrollTop=1e6, r.scrollLeft=1e6, r.scrollTop=1e6};var s=function(){e._reset(), t()};return h(a, "scroll", s.bind(a, "expand")), h(r, "scroll", s.bind(r, "shrink")), e}((u=function(){if(x.resizer)return e(g("resize", i))}, c=!1, f=[], function(){f=Array.prototype.slice.call(arguments), d=d||this, c||(c=!0, n.requestAnimFrame.call(window, function(){c=!1, u.apply(d, f)}))}));m=function(){if(x.resizer){var e=t.parentNode;e&&e!==y.parentNode&&e.insertBefore(y, e.firstChild), y._reset()}}, v=(p=t)[a]||(p[a]={}), b=v.renderProxy=function(t){t.animationName===s&&m()}, n.each(l, function(t){h(p, t, b)}), v.reflow=!!p.offsetParent, p.classList.add(r)}function m(t){var e, i, o, s=t[a]||{}, u=s.resizer;delete s.resizer, i=(e=t)[a]||{}, (o=i.renderProxy)&&(n.each(l, function(t){f(e, t, o)}), delete i.renderProxy), e.classList.remove(r), u&&u.parentNode&&u.parentNode.removeChild(u)}e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document, initialize:function(){var t, e, i, n="from{opacity:0.99}to{opacity:1}";e="@-webkit-keyframes "+s+"{"+n+"}@keyframes "+s+"{"+n+"}."+r+"{-webkit-animation:"+s+" 0.001s;animation:"+s+" 0.001s;}", i=(t=this)._style||document.createElement("style"), t._style||(t._style=i, e="/* Chart.js */\n"+e, i.setAttribute("type", "text/css"), document.getElementsByTagName("head")[0].appendChild(i)), i.appendChild(document.createTextNode(e))}, acquireContext:function(t, e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]), t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t, e){var i=t.style, n=t.getAttribute("height"), o=t.getAttribute("width");if(t[a]={initial:{height:n, width:o, style:{display:i.display, height:i.height, width:i.width}}}, i.display=i.display||"block", null===o||""===o){var r=d(t, "width");void 0!==r&&(t.width=r)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var s=d(t, "height");void 0!==r&&(t.height=s)}}(t, e), i):null}, releaseContext:function(t){var e=t.canvas;if(e[a]){var i=e[a].initial;["height", "width"].forEach(function(t){var a=i[t];n.isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t, a)}), n.each(i.style||{}, function(t, i){e.style[i]=t}), e.width=e.width, delete e[a]}}, addEventListener:function(t, e, i){var o=t.canvas;if("resize"!==e){var r=i[a]||(i[a]={});h(o, e, (r.proxies||(r.proxies={}))[t.id+"_"+e]=function(e){var a, o, r, s;i((o=t, r=u[(a=e).type]||a.type, s=n.getRelativePosition(a, o), g(r, o, s.x, s.y, a)))})}else p(o, i, t)}, removeEventListener:function(t, e, i){var n=t.canvas;if("resize"!==e){var o=((i[a]||{}).proxies||{})[t.id+"_"+e];o&&f(n, e, o)}else m(n)}}, n.addEvent=h, n.removeEvent=f}, {45:45}], 48:[function(t, e, i){"use strict";var n=t(45), a=t(46), o=t(47), r=o._enabled?o:a;e.exports=n.extend({initialize:function(){}, acquireContext:function(){}, releaseContext:function(){}, addEventListener:function(){}, removeEventListener:function(){}}, r)}, {45:45, 46:46, 47:47}], 49:[function(t, e, i){"use strict";e.exports={}, e.exports.filler=t(50), e.exports.legend=t(51), e.exports.title=t(52)}, {50:50, 51:51, 52:52}], 50:[function(t, e, i){"use strict";var n=t(25), a=t(40), o=t(45);n._set("global", {plugins:{filler:{propagate:!0}}});var r={dataset:function(t){var e=t.fill, i=t.chart, n=i.getDatasetMeta(e), a=n&&i.isDatasetVisible(e)&&n.dataset._children||[], o=a.length||0;return o?function(t, e){return e<o&&a[e]._view||null}:null}, boundary:function(t){var e=t.boundary, i=e?e.x:null, n=e?e.y:null;return function(t){return{x:null===i?t.x:i, y:null===n?t.y:n}}}};function s(t, e, i){var n, a=t._model||{}, o=a.fill;if(void 0===o&&(o=!!a.backgroundColor), !1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o, 10), isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n), !(n===e||n<0||n>=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function l(t){var e, i=t.el._model||{}, n=t.el._scale||{}, a=t.fill, o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()), null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return{x:(e=n.isHorizontal())?o:null, y:e?null:o}}return null}function u(t, e, i){var n, a=t[e].fill, o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a), a=n.fill}return!1}function d(t){return t&&!t.skip}function c(t, e, i, n, a){var r;if(n&&a){for(t.moveTo(e[0].x, e[0].y), r=1;r<n;++r)o.canvas.lineTo(t, e[r-1], e[r]);for(t.lineTo(i[a-1].x, i[a-1].y), r=a-1;r>0;--r)o.canvas.lineTo(t, i[r], i[r-1], !0)}}e.exports={id:"filler", afterDatasetsUpdate:function(t, e){var i, n, o, d, c, h, f, g=(t.data.datasets||[]).length, p=e.propagate, m=[];for(n=0;n<g;++n)d=null, (o=(i=t.getDatasetMeta(n)).dataset)&&o._model&&o instanceof a.Line&&(d={visible:t.isDatasetVisible(n), fill:s(o, n, g), chart:t, el:o}), i.$filler=d, m.push(d);for(n=0;n<g;++n)(d=m[n])&&(d.fill=u(m, n, p), d.boundary=l(d), d.mapper=(void 0, f=void 0, h=(c=d).fill, f="dataset", !1===h?null:(isFinite(h)||(f="boundary"), r[f](c))))}, beforeDatasetDraw:function(t, e){var i=e.meta.$filler;if(i){var a=t.ctx, r=i.el, s=r._view, l=r._children||[], u=i.mapper, h=s.backgroundColor||n.global.defaultColor;u&&h&&l.length&&(o.canvas.clipArea(a, t.chartArea), function(t, e, i, n, a, o){var r, s, l, u, h, f, g, p=e.length, m=n.spanGaps, v=[], b=[], x=0, y=0;for(t.beginPath(), r=0, s=p+!!o;r<s;++r)h=i(u=e[l=r%p]._view, l, n), f=d(u), g=d(h), f&&g?(x=v.push(u), y=b.push(h)):x&&y&&(m?(f&&v.push(u), g&&b.push(h)):(c(t, v, b, x, y), x=y=0, v=[], b=[]));c(t, v, b, x, y), t.closePath(), t.fillStyle=a, t.fill()}(a, l, u, s, h, r._loop), o.canvas.unclipArea(a))}}}}, {25:25, 40:40, 45:45}], 51:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45), r=t(30), s=o.noop;function l(t, e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}n._set("global", {legend:{display:!0, position:"top", fullWidth:!0, reverse:!1, weight:1e3, onClick:function(t, e){var i=e.datasetIndex, n=this.chart, a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null, n.update()}, onHover:null, labels:{boxWidth:40, padding:10, generateLabels:function(t){var e=t.data;return o.isArray(e.datasets)?e.datasets.map(function(e, i){return{text:e.label, fillStyle:o.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor, hidden:!t.isDatasetVisible(i), lineCap:e.borderCapStyle, lineDash:e.borderDash, lineDashOffset:e.borderDashOffset, lineJoin:e.borderJoinStyle, lineWidth:e.borderWidth, strokeStyle:e.borderColor, pointStyle:e.pointStyle, datasetIndex:i}}, this):[]}}}, legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'), t.data.datasets[i].label&&e.push(t.data.datasets[i].label), e.push("</li>");return e.push("</ul>"), e.join("")}});var u=a.extend({initialize:function(t){o.extend(this, t), this.legendHitBoxes=[], this.doughnutMode=!1}, beforeUpdate:s, update:function(t, e, i){var n=this;return n.beforeUpdate(), n.maxWidth=t, n.maxHeight=e, n.margins=i, n.beforeSetDimensions(), n.setDimensions(), n.afterSetDimensions(), n.beforeBuildLabels(), n.buildLabels(), n.afterBuildLabels(), n.beforeFit(), n.fit(), n.afterFit(), n.afterUpdate(), n.minSize}, afterUpdate:s, beforeSetDimensions:s, setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth, t.left=0, t.right=t.width):(t.height=t.maxHeight, t.top=0, t.bottom=t.height), t.paddingLeft=0, t.paddingTop=0, t.paddingRight=0, t.paddingBottom=0, t.minSize={width:0, height:0}}, afterSetDimensions:s, beforeBuildLabels:s, buildLabels:function(){var t=this, e=t.options.labels||{}, i=o.callback(e.generateLabels, [t.chart], t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i, t.chart.data)})), t.options.reverse&&i.reverse(), t.legendItems=i}, afterBuildLabels:s, beforeFit:s, fit:function(){var t=this, e=t.options, i=e.labels, a=e.display, r=t.ctx, s=n.global, u=o.valueOrDefault, d=u(i.fontSize, s.defaultFontSize), c=u(i.fontStyle, s.defaultFontStyle), h=u(i.fontFamily, s.defaultFontFamily), f=o.fontString(d, c, h), g=t.legendHitBoxes=[], p=t.minSize, m=t.isHorizontal();if(m?(p.width=t.maxWidth, p.height=a?10:0):(p.width=a?10:0, p.height=t.maxHeight), a)if(r.font=f, m){var v=t.lineWidths=[0], b=t.legendItems.length?d+i.padding:0;r.textAlign="left", r.textBaseline="top", o.each(t.legendItems, function(e, n){var a=l(i, d)+d/2+r.measureText(e.text).width;v[v.length-1]+a+i.padding>=t.width&&(b+=d+i.padding, v[v.length]=t.left), g[n]={left:0, top:0, width:a, height:d}, v[v.length-1]+=a+i.padding}), p.height+=b}else{var x=i.padding, y=t.columnWidths=[], k=i.padding, M=0, w=0, S=d+x;o.each(t.legendItems, function(t, e){var n=l(i, d)+d/2+r.measureText(t.text).width;w+S>p.height&&(k+=M+i.padding, y.push(M), M=0, w=0), M=Math.max(M, n), w+=S, g[e]={left:0, top:0, width:n, height:d}}), k+=M, y.push(M), p.width+=k}t.width=p.width, t.height=p.height}, afterFit:s, isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position}, draw:function(){var t=this, e=t.options, i=e.labels, a=n.global, r=a.elements.line, s=t.width, u=t.lineWidths;if(e.display){var d, c=t.ctx, h=o.valueOrDefault, f=h(i.fontColor, a.defaultFontColor), g=h(i.fontSize, a.defaultFontSize), p=h(i.fontStyle, a.defaultFontStyle), m=h(i.fontFamily, a.defaultFontFamily), v=o.fontString(g, p, m);c.textAlign="left", c.textBaseline="middle", c.lineWidth=.5, c.strokeStyle=f, c.fillStyle=f, c.font=v;var b=l(i, g), x=t.legendHitBoxes, y=t.isHorizontal();d=y?{x:t.left+(s-u[0])/2, y:t.top+i.padding, line:0}:{x:t.left+i.padding, y:t.top+i.padding, line:0};var k=g+i.padding;o.each(t.legendItems, function(n, l){var f, p, m, v, M, w=c.measureText(n.text).width, S=b+g/2+w, C=d.x, _=d.y;y?C+S>=s&&(_=d.y+=k, d.line++, C=d.x=t.left+(s-u[d.line])/2):_+k>t.bottom&&(C=d.x=C+t.columnWidths[d.line]+i.padding, _=d.y=t.top+i.padding, d.line++), function(t, i, n){if(!(isNaN(b)||b<=0)){c.save(), c.fillStyle=h(n.fillStyle, a.defaultColor), c.lineCap=h(n.lineCap, r.borderCapStyle), c.lineDashOffset=h(n.lineDashOffset, r.borderDashOffset), c.lineJoin=h(n.lineJoin, r.borderJoinStyle), c.lineWidth=h(n.lineWidth, r.borderWidth), c.strokeStyle=h(n.strokeStyle, a.defaultColor);var s=0===h(n.lineWidth, r.borderWidth);if(c.setLineDash&&c.setLineDash(h(n.lineDash, r.borderDash)), e.labels&&e.labels.usePointStyle){var l=g*Math.SQRT2/2, u=l/Math.SQRT2, d=t+u, f=i+u;o.canvas.drawPoint(c, n.pointStyle, l, d, f)}else s||c.strokeRect(t, i, b, g), c.fillRect(t, i, b, g);c.restore()}}(C, _, n), x[l].left=C, x[l].top=_, f=n, p=w, v=b+(m=g/2)+C, M=_+m, c.fillText(f.text, v, M), f.hidden&&(c.beginPath(), c.lineWidth=2, c.moveTo(v, M), c.lineTo(v+p, M), c.stroke()), y?d.x+=S+i.padding:d.y+=k})}}, handleEvent:function(t){var e=this, i=e.options, n="mouseup"===t.type?"click":t.type, a=!1;if("mousemove"===n){if(!i.onHover)return}else{if("click"!==n)return;if(!i.onClick)return}var o=t.x, r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var s=e.legendHitBoxes, l=0;l<s.length;++l){var u=s[l];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===n){i.onClick.call(e, t.native, e.legendItems[l]), a=!0;break}if("mousemove"===n){i.onHover.call(e, t.native, e.legendItems[l]), a=!0;break}}}return a}});function d(t, e){var i=new u({ctx:t.ctx, options:e, chart:t});r.configure(t, i, e), r.addBox(t, i), t.legend=i}e.exports={id:"legend", _element:u, beforeInit:function(t){var e=t.options.legend;e&&d(t, e)}, beforeUpdate:function(t){var e=t.options.legend, i=t.legend;e?(o.mergeIf(e, n.global.legend), i?(r.configure(t, i, e), i.options=e):d(t, e)):i&&(r.removeBox(t, i), delete t.legend)}, afterEvent:function(t, e){var i=t.legend;i&&i.handleEvent(e)}}}, {25:25, 26:26, 30:30, 45:45}], 52:[function(t, e, i){"use strict";var n=t(25), a=t(26), o=t(45), r=t(30), s=o.noop;n._set("global", {title:{display:!1, fontStyle:"bold", fullWidth:!0, lineHeight:1.2, padding:10, position:"top", text:"", weight:2e3}});var l=a.extend({initialize:function(t){o.extend(this, t), this.legendHitBoxes=[]}, beforeUpdate:s, update:function(t, e, i){var n=this;return n.beforeUpdate(), n.maxWidth=t, n.maxHeight=e, n.margins=i, n.beforeSetDimensions(), n.setDimensions(), n.afterSetDimensions(), n.beforeBuildLabels(), n.buildLabels(), n.afterBuildLabels(), n.beforeFit(), n.fit(), n.afterFit(), n.afterUpdate(), n.minSize}, afterUpdate:s, beforeSetDimensions:s, setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth, t.left=0, t.right=t.width):(t.height=t.maxHeight, t.top=0, t.bottom=t.height), t.paddingLeft=0, t.paddingTop=0, t.paddingRight=0, t.paddingBottom=0, t.minSize={width:0, height:0}}, afterSetDimensions:s, beforeBuildLabels:s, buildLabels:s, afterBuildLabels:s, beforeFit:s, fit:function(){var t=this, e=o.valueOrDefault, i=t.options, a=i.display, r=e(i.fontSize, n.global.defaultFontSize), s=t.minSize, l=o.isArray(i.text)?i.text.length:1, u=o.options.toLineHeight(i.lineHeight, r), d=a?l*u+2*i.padding:0;t.isHorizontal()?(s.width=t.maxWidth, s.height=d):(s.width=d, s.height=t.maxHeight), t.width=s.width, t.height=s.height}, afterFit:s, isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t}, draw:function(){var t=this, e=t.ctx, i=o.valueOrDefault, a=t.options, r=n.global;if(a.display){var s, l, u, d=i(a.fontSize, r.defaultFontSize), c=i(a.fontStyle, r.defaultFontStyle), h=i(a.fontFamily, r.defaultFontFamily), f=o.fontString(d, c, h), g=o.options.toLineHeight(a.lineHeight, d), p=g/2+a.padding, m=0, v=t.top, b=t.left, x=t.bottom, y=t.right;e.fillStyle=i(a.fontColor, r.defaultFontColor), e.font=f, t.isHorizontal()?(l=b+(y-b)/2, u=v+p, s=y-b):(l="left"===a.position?b+p:y-p, u=v+(x-v)/2, s=x-v, m=Math.PI*("left"===a.position?-.5:.5)), e.save(), e.translate(l, u), e.rotate(m), e.textAlign="center", e.textBaseline="middle";var k=a.text;if(o.isArray(k))for(var M=0, w=0;w<k.length;++w)e.fillText(k[w], 0, M, s), M+=g;else e.fillText(k, 0, 0, s);e.restore()}}});function u(t, e){var i=new l({ctx:t.ctx, options:e, chart:t});r.configure(t, i, e), r.addBox(t, i), t.titleBlock=i}e.exports={id:"title", _element:l, beforeInit:function(t){var e=t.options.title;e&&u(t, e)}, beforeUpdate:function(t){var e=t.options.title, i=t.titleBlock;e?(o.mergeIf(e, n.global.title), i?(r.configure(t, i, e), i.options=e):u(t, e)):i&&(r.removeBox(t, i), delete t.titleBlock)}}}, {25:25, 26:26, 30:30, 45:45}], 53:[function(t, e, i){"use strict";e.exports=function(t){var e=t.Scale.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels}, determineDataLimits:function(){var t, e=this, i=e.getLabels();e.minIndex=0, e.maxIndex=i.length-1, void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min), e.minIndex=-1!==t?t:e.minIndex), void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max), e.maxIndex=-1!==t?t:e.maxIndex), e.min=i[e.minIndex], e.max=i[e.maxIndex]}, buildTicks:function(){var t=this, e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex, t.maxIndex+1)}, getLabelForIndex:function(t, e){var i=this, n=i.chart.data, a=i.isHorizontal();return n.yLabels&&!a?i.getRightValue(n.datasets[e].data[t]):i.ticks[t-i.minIndex]}, getPixelForValue:function(t, e){var i, n=this, a=n.options.offset, o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1), 1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y), void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o, l=s*(e-n.minIndex);return a&&(l+=s/2), n.left+Math.round(l)}var u=n.height/o, d=u*(e-n.minIndex);return a&&(d+=u/2), n.top+Math.round(d)}, getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t], t+this.minIndex, null)}, getValueForPixel:function(t){var e=this, i=e.options.offset, n=Math.max(e._ticks.length-(i?0:1), 1), a=e.isHorizontal(), o=(a?e.width:e.height)/n;return t-=a?e.left:e.top, i&&(t-=o/2), (t<=0?0:Math.round(t/o))+e.minIndex}, getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category", e, {position:"bottom"})}}, {}], 54:[function(t, e, i){"use strict";var n=t(25), a=t(45), o=t(34);e.exports=function(t){var e={position:"left", ticks:{callback:o.formatters.linear}}, i=t.LinearScaleBase.extend({determineDataLimits:function(){var t=this, e=t.options, i=t.chart, n=i.data.datasets, o=t.isHorizontal();function r(e){return o?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null, t.max=null;var s=e.stacked;if(void 0===s&&a.each(n, function(t, e){if(!s){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&r(n)&&void 0!==n.stack&&(s=!0)}}), e.stacked||s){var l={};a.each(n, function(n, o){var s=i.getDatasetMeta(o), u=[s.type, void 0===e.stacked&&void 0===s.stack?o:"", s.stack].join(".");void 0===l[u]&&(l[u]={positiveValues:[], negativeValues:[]});var d=l[u].positiveValues, c=l[u].negativeValues;i.isDatasetVisible(o)&&r(s)&&a.each(n.data, function(i, n){var a=+t.getRightValue(i);isNaN(a)||s.data[n].hidden||(d[n]=d[n]||0, c[n]=c[n]||0, e.relativePoints?d[n]=100:a<0?c[n]+=a:d[n]+=a)})}), a.each(l, function(e){var i=e.positiveValues.concat(e.negativeValues), n=a.min(i), o=a.max(i);t.min=null===t.min?n:Math.min(t.min, n), t.max=null===t.max?o:Math.max(t.max, o)})}else a.each(n, function(e, n){var o=i.getDatasetMeta(n);i.isDatasetVisible(n)&&r(o)&&a.each(e.data, function(e, i){var n=+t.getRightValue(e);isNaN(n)||o.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n), null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0, t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1, this.handleTickRangeOptions()}, getTickLimit:function(){var t, e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11, Math.ceil(this.width/50));else{var i=a.valueOrDefault(e.fontSize, n.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11, Math.ceil(this.height/(2*i)))}return t}, handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()}, getLabelForIndex:function(t, e){return+this.getRightValue(this.chart.data.datasets[e].data[t])}, getPixelForValue:function(t){var e=this, i=e.start, n=+e.getRightValue(t), a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)}, getValueForPixel:function(t){var e=this, i=e.isHorizontal(), n=i?e.width:e.height, a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a}, getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear", i, e)}}, {25:25, 34:34, 45:45}], 55:[function(t, e, i){"use strict";var n=t(45);e.exports=function(t){var e=n.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this, e)}, handleTickRangeOptions:function(){var t=this, e=t.options.ticks;if(e.beginAtZero){var i=n.sign(t.min), a=n.sign(t.max);i<0&&a<0?t.max=0:i>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin, r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min, e.suggestedMin)), void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max, e.suggestedMax)), o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1), t.min===t.max&&(t.max++, e.beginAtZero||t.min--)}, getTickLimit:e, handleDirectionalChanges:e, buildTicks:function(){var t=this, e=t.options.ticks, i=t.getTickLimit(), a={maxTicks:i=Math.max(2, i), min:e.min, max:e.max, stepSize:n.valueOrDefault(e.fixedStepSize, e.stepSize)}, o=t.ticks=function(t, e){var i, a=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=n.niceNum(e.max-e.min, !1);i=n.niceNum(o/(t.maxTicks-1), !0)}var r=Math.floor(e.min/i)*i, s=Math.ceil(e.max/i)*i;t.min&&t.max&&t.stepSize&&n.almostWhole((t.max-t.min)/t.stepSize, i/1e3)&&(r=t.min, s=t.max);var l=(s-r)/i;l=n.almostEquals(l, Math.round(l), i/1e3)?Math.round(l):Math.ceil(l);var u=1;i<1&&(u=Math.pow(10, i.toString().length-2), r=Math.round(r*u)/u, s=Math.round(s*u)/u), a.push(void 0!==t.min?t.min:r);for(var d=1;d<l;++d)a.push(Math.round((r+d*i)*u)/u);return a.push(void 0!==t.max?t.max:s), a}(a, t);t.handleDirectionalChanges(), t.max=n.max(o), t.min=n.min(o), e.reverse?(o.reverse(), t.start=t.max, t.end=t.min):(t.start=t.min, t.end=t.max)}, convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(), e.zeroLineIndex=e.ticks.indexOf(0), t.Scale.prototype.convertTicksToLabels.call(e)}})}}, {45:45}], 56:[function(t, e, i){"use strict";var n=t(45), a=t(34);e.exports=function(t){var e={position:"left", ticks:{callback:a.formatters.logarithmic}}, i=t.Scale.extend({determineDataLimits:function(){var t=this, e=t.options, i=t.chart, a=i.data.datasets, o=t.isHorizontal();function r(e){return o?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null, t.max=null, t.minNotZero=null;var s=e.stacked;if(void 0===s&&n.each(a, function(t, e){if(!s){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&r(n)&&void 0!==n.stack&&(s=!0)}}), e.stacked||s){var l={};n.each(a, function(a, o){var s=i.getDatasetMeta(o), u=[s.type, void 0===e.stacked&&void 0===s.stack?o:"", s.stack].join(".");i.isDatasetVisible(o)&&r(s)&&(void 0===l[u]&&(l[u]=[]), n.each(a.data, function(e, i){var n=l[u], a=+t.getRightValue(e);isNaN(a)||s.data[i].hidden||a<0||(n[i]=n[i]||0, n[i]+=a)}))}), n.each(l, function(e){if(e.length>0){var i=n.min(e), a=n.max(e);t.min=null===t.min?i:Math.min(t.min, i), t.max=null===t.max?a:Math.max(t.max, a)}})}else n.each(a, function(e, a){var o=i.getDatasetMeta(a);i.isDatasetVisible(a)&&r(o)&&n.each(e.data, function(e, i){var n=+t.getRightValue(e);isNaN(n)||o.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n), null===t.max?t.max=n:n>t.max&&(t.max=n), 0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()}, handleTickRangeOptions:function(){var t=this, e=t.options.ticks, i=n.valueOrDefault;t.min=i(e.min, t.min), t.max=i(e.max, t.max), t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10, Math.floor(n.log10(t.min))-1), t.max=Math.pow(10, Math.floor(n.log10(t.max))+1)):(t.min=1, t.max=10)), null===t.min&&(t.min=Math.pow(10, Math.floor(n.log10(t.max))-1)), null===t.max&&(t.max=0!==t.min?Math.pow(10, Math.floor(n.log10(t.min))+1):10), null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10, Math.floor(n.log10(t.max))):t.minNotZero=1)}, buildTicks:function(){var t=this, e=t.options.ticks, i=!t.isHorizontal(), a={min:e.min, max:e.max}, o=t.ticks=function(t, e){var i, a, o=[], r=n.valueOrDefault, s=r(t.min, Math.pow(10, Math.floor(n.log10(e.min)))), l=Math.floor(n.log10(e.max)), u=Math.ceil(e.max/Math.pow(10, l));0===s?(i=Math.floor(n.log10(e.minNotZero)), a=Math.floor(e.minNotZero/Math.pow(10, i)), o.push(s), s=a*Math.pow(10, i)):(i=Math.floor(n.log10(s)), a=Math.floor(s/Math.pow(10, i)));for(var d=i<0?Math.pow(10, Math.abs(i)):1;o.push(s), 10==++a&&(a=1, d=++i>=0?1:d), s=Math.round(a*Math.pow(10, i)*d)/d, i<l||i===l&&a<u;);var c=r(t.max, s);return o.push(c), o}(a, t);t.max=n.max(o), t.min=n.min(o), e.reverse?(i=!i, t.start=t.max, t.end=t.min):(t.start=t.min, t.end=t.max), i&&o.reverse()}, convertTicksToLabels:function(){this.tickValues=this.ticks.slice(), t.Scale.prototype.convertTicksToLabels.call(this)}, getLabelForIndex:function(t, e){return+this.getRightValue(this.chart.data.datasets[e].data[t])}, getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])}, _getFirstTickValue:function(t){var e=Math.floor(n.log10(t));return Math.floor(t/Math.pow(10, e))*Math.pow(10, e)}, getPixelForValue:function(e){var i, a, o, r, s, l=this, u=l.options.ticks.reverse, d=n.log10, c=l._getFirstTickValue(l.minNotZero), h=0;return e=+l.getRightValue(e), u?(o=l.end, r=l.start, s=-1):(o=l.start, r=l.end, s=1), l.isHorizontal()?(i=l.width, a=u?l.right:l.left):(i=l.height, s*=-1, a=u?l.top:l.bottom), e!==o&&(0===o&&(i-=h=n.getValueOrDefault(l.options.ticks.fontSize, t.defaults.global.defaultFontSize), o=c), 0!==e&&(h+=i/(d(r)-d(o))*(d(e)-d(o))), a+=s*h), a}, getValueForPixel:function(e){var i, a, o, r, s=this, l=s.options.ticks.reverse, u=n.log10, d=s._getFirstTickValue(s.minNotZero);if(l?(a=s.end, o=s.start):(a=s.start, o=s.end), s.isHorizontal()?(i=s.width, r=l?s.right-e:e-s.left):(i=s.height, r=l?e-s.top:s.bottom-e), r!==a){if(0===a){var c=n.getValueOrDefault(s.options.ticks.fontSize, t.defaults.global.defaultFontSize);r-=c, i-=c, a=d}r*=u(o)-u(a), r/=i, r=Math.pow(10, u(a)+r)}return r}});t.scaleService.registerScaleType("logarithmic", i, e)}}, {34:34, 45:45}], 57:[function(t, e, i){"use strict";var n=t(25), a=t(45), o=t(34);e.exports=function(t){var e=n.global, i={display:!0, animate:!0, position:"chartArea", angleLines:{display:!0, color:"rgba(0, 0, 0, 0.1)", lineWidth:1}, gridLines:{circular:!1}, ticks:{showLabelBackdrop:!0, backdropColor:"rgba(255, 255, 255, 0.75)", backdropPaddingY:2, backdropPaddingX:2, callback:o.formatters.linear}, pointLabels:{display:!0, fontSize:10, callback:function(t){return t}}};function r(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function s(t){var i=t.options.pointLabels, n=a.valueOrDefault(i.fontSize, e.defaultFontSize), o=a.valueOrDefault(i.fontStyle, e.defaultFontStyle), r=a.valueOrDefault(i.fontFamily, e.defaultFontFamily);return{size:n, style:o, family:r, font:a.fontString(n, o, r)}}function l(t, e, i, n, a){return t===n||t===a?{start:e-i/2, end:e+i/2}:t<n||t>a?{start:e-i-5, end:e}:{start:e, end:e+i+5}}function u(t, e, i, n){if(a.isArray(e))for(var o=i.y, r=1.5*n, s=0;s<e.length;++s)t.fillText(e[s], i.x, o), o+=r;else t.fillText(e, i.x, i.y)}function d(t){return a.isNumber(t)?t:0}var c=t.LinearScaleBase.extend({setDimensions:function(){var t=this, i=t.options, n=i.ticks;t.width=t.maxWidth, t.height=t.maxHeight, t.xCenter=Math.round(t.width/2), t.yCenter=Math.round(t.height/2);var o=a.min([t.height, t.width]), r=a.valueOrDefault(n.fontSize, e.defaultFontSize);t.drawingArea=i.display?o/2-(r/2+n.backdropPaddingY):o/2}, determineDataLimits:function(){var t=this, e=t.chart, i=Number.POSITIVE_INFINITY, n=Number.NEGATIVE_INFINITY;a.each(e.data.datasets, function(o, r){if(e.isDatasetVisible(r)){var s=e.getDatasetMeta(r);a.each(o.data, function(e, a){var o=+t.getRightValue(e);isNaN(o)||s.data[a].hidden||(i=Math.min(o, i), n=Math.max(o, n))})}}), t.min=i===Number.POSITIVE_INFINITY?0:i, t.max=n===Number.NEGATIVE_INFINITY?0:n, t.handleTickRangeOptions()}, getTickLimit:function(){var t=this.options.ticks, i=a.valueOrDefault(t.fontSize, e.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11, Math.ceil(this.drawingArea/(1.5*i)))}, convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e), e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback, e)}, getLabelForIndex:function(t, e){return+this.getRightValue(this.chart.data.datasets[e].data[t])}, fit:function(){var t, e;this.options.pointLabels.display?function(t){var e, i, n, o=s(t), u=Math.min(t.height/2, t.width/2), d={r:t.width, l:0, t:t.height, b:0}, c={};t.ctx.font=o.font, t._pointLabelSizes=[];var h, f, g, p=r(t);for(e=0;e<p;e++){n=t.getPointPosition(e, u), h=t.ctx, f=o.size, g=t.pointLabels[e]||"", i=a.isArray(g)?{w:a.longestText(h, h.font, g), h:g.length*f+1.5*(g.length-1)*f}:{w:h.measureText(g).width, h:f}, t._pointLabelSizes[e]=i;var m=t.getIndexAngle(e), v=a.toDegrees(m)%360, b=l(v, n.x, i.w, 0, 180), x=l(v, n.y, i.h, 90, 270);b.start<d.l&&(d.l=b.start, c.l=m), b.end>d.r&&(d.r=b.end, c.r=m), x.start<d.t&&(d.t=x.start, c.t=m), x.end>d.b&&(d.b=x.end, c.b=m)}t.setReductions(u, d, c)}(this):(t=this, e=Math.min(t.height/2, t.width/2), t.drawingArea=Math.round(e), t.setCenterPoint(0, 0, 0, 0))}, setReductions:function(t, e, i){var n=e.l/Math.sin(i.l), a=Math.max(e.r-this.width, 0)/Math.sin(i.r), o=-e.t/Math.cos(i.t), r=-Math.max(e.b-this.height, 0)/Math.cos(i.b);n=d(n), a=d(a), o=d(o), r=d(r), this.drawingArea=Math.min(Math.round(t-(n+a)/2), Math.round(t-(o+r)/2)), this.setCenterPoint(n, a, o, r)}, setCenterPoint:function(t, e, i, n){var a=this, o=a.width-e-a.drawingArea, r=t+a.drawingArea, s=i+a.drawingArea, l=a.height-n-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left), a.yCenter=Math.round((s+l)/2+a.top)}, getIndexAngle:function(t){return t*(2*Math.PI/r(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360}, getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i}, getPointPosition:function(t, e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+this.xCenter, y:Math.round(Math.sin(i)*e)+this.yCenter}}, getPointPositionForValue:function(t, e){return this.getPointPosition(t, this.getDistanceFromCenterForValue(e))}, getBasePosition:function(){var t=this.min, e=this.max;return this.getPointPositionForValue(0, this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)}, draw:function(){var t=this, i=t.options, n=i.gridLines, o=i.ticks, l=a.valueOrDefault;if(i.display){var d=t.ctx, c=this.getIndexAngle(0), h=l(o.fontSize, e.defaultFontSize), f=l(o.fontStyle, e.defaultFontStyle), g=l(o.fontFamily, e.defaultFontFamily), p=a.fontString(h, f, g);a.each(t.ticks, function(i, s){if(s>0||o.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(n.display&&0!==s&&function(t, e, i, n){var o=t.ctx;if(o.strokeStyle=a.valueAtIndexOrDefault(e.color, n-1), o.lineWidth=a.valueAtIndexOrDefault(e.lineWidth, n-1), t.options.gridLines.circular)o.beginPath(), o.arc(t.xCenter, t.yCenter, i, 0, 2*Math.PI), o.closePath(), o.stroke();else{var s=r(t);if(0===s)return;o.beginPath();var l=t.getPointPosition(0, i);o.moveTo(l.x, l.y);for(var u=1;u<s;u++)l=t.getPointPosition(u, i), o.lineTo(l.x, l.y);o.closePath(), o.stroke()}}(t, n, u, s), o.display){var f=l(o.fontColor, e.defaultFontColor);if(d.font=p, d.save(), d.translate(t.xCenter, t.yCenter), d.rotate(c), o.showLabelBackdrop){var g=d.measureText(i).width;d.fillStyle=o.backdropColor, d.fillRect(-g/2-o.backdropPaddingX, -u-h/2-o.backdropPaddingY, g+2*o.backdropPaddingX, h+2*o.backdropPaddingY)}d.textAlign="center", d.textBaseline="middle", d.fillStyle=f, d.fillText(i, 0, -u), d.restore()}}}), (i.angleLines.display||i.pointLabels.display)&&function(t){var i=t.ctx, n=t.options, o=n.angleLines, l=n.pointLabels;i.lineWidth=o.lineWidth, i.strokeStyle=o.color;var d, c, h, f, g=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max), p=s(t);i.textBaseline="top";for(var m=r(t)-1;m>=0;m--){if(o.display){var v=t.getPointPosition(m, g);i.beginPath(), i.moveTo(t.xCenter, t.yCenter), i.lineTo(v.x, v.y), i.stroke(), i.closePath()}if(l.display){var b=t.getPointPosition(m, g+5), x=a.valueAtIndexOrDefault(l.fontColor, m, e.defaultFontColor);i.font=p.font, i.fillStyle=x;var y=t.getIndexAngle(m), k=a.toDegrees(y);i.textAlign=0===(f=k)||180===f?"center":f<180?"left":"right", d=k, c=t._pointLabelSizes[m], h=b, 90===d||270===d?h.y-=c.h/2:(d>270||d<90)&&(h.y-=c.h), u(i, t.pointLabels[m]||"", b, p.size)}}}(t)}}});t.scaleService.registerScaleType("radialLinear", c, i)}}, {25:25, 34:34, 45:45}], 58:[function(t, e, i){"use strict";var n=t(1);n="function"==typeof n?n:window.moment;var a=t(25), o=t(45), r=Number.MIN_SAFE_INTEGER||-9007199254740991, s=Number.MAX_SAFE_INTEGER||9007199254740991, l={millisecond:{common:!0, size:1, steps:[1, 2, 5, 10, 20, 50, 100, 250, 500]}, second:{common:!0, size:1e3, steps:[1, 2, 5, 10, 30]}, minute:{common:!0, size:6e4, steps:[1, 2, 5, 10, 30]}, hour:{common:!0, size:36e5, steps:[1, 2, 3, 6, 12]}, day:{common:!0, size:864e5, steps:[1, 2, 5]}, week:{common:!1, size:6048e5, steps:[1, 2, 3, 4]}, month:{common:!0, size:2628e6, steps:[1, 2, 3]}, quarter:{common:!1, size:7884e6, steps:[1, 2, 3, 4]}, year:{common:!0, size:3154e7}}, u=Object.keys(l);function d(t, e){return t-e}function c(t){var e, i, n, a={}, o=[];for(e=0, i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0, o.push(n));return o}function h(t, e, i, n){var a=function(t, e, i){for(var n, a, o, r=0, s=t.length-1;r>=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null, o=t[n], !a)return{lo:null, hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a, hi:o};s=n-1}}return{lo:o, hi:null}}(t, e, i), o=a.lo?a.hi?a.lo:t[t.length-2]:t[0], r=a.lo?a.hi?a.hi:t[t.length-1]:t[1], s=r[e]-o[e], l=s?(i-o[e])/s:0, u=(r[n]-o[n])*l;return o[n]+u}function f(t, e){var i=e.parser, a=e.parser||e.format;return"function"==typeof i?i(t):"string"==typeof t&&"string"==typeof a?n(t, a):(t instanceof n||(t=n(t)), t.isValid()?t:"function"==typeof a?a(t):t)}function g(t, e){if(o.isNullOrUndef(t))return null;var i=e.options.time, n=f(e.getRightValue(t), i);return n.isValid()?(i.round&&n.startOf(i.round), n.valueOf()):null}function p(t){for(var e=u.indexOf(t)+1, i=u.length;e<i;++e)if(l[u[e]].common)return u[e]}function m(t, e, i, a){var r, d=a.time, c=d.unit||function(t, e, i, n){var a, o, r, d=u.length;for(a=u.indexOf(t);a<d-1;++a)if(r=(o=l[u[a]]).steps?o.steps[o.steps.length-1]:s, o.common&&Math.ceil((i-e)/(r*o.size))<=n)return u[a];return u[d-1]}(d.minUnit, t, e, i), h=p(c), f=o.valueOrDefault(d.stepSize, d.unitStepSize), g="week"===c&&d.isoWeekday, m=a.ticks.major.enabled, v=l[c], b=n(t), x=n(e), y=[];for(f||(f=function(t, e, i, n){var a, o, r, s=e-t, u=l[i], d=u.size, c=u.steps;if(!c)return Math.ceil(s/(n*d));for(a=0, o=c.length;a<o&&(r=c[a], !(Math.ceil(s/(d*r))<=n));++a);return r}(t, e, c, i)), g&&(b=b.isoWeekday(g), x=x.isoWeekday(g)), b=b.startOf(g?"day":c), (x=x.startOf(g?"day":c))<e&&x.add(1, c), r=n(b), m&&h&&!g&&!d.round&&(r.startOf(h), r.add(~~((b-r)/(v.size*f))*f, c));r<x;r.add(f, c))y.push(+r);return y.push(+r), y}e.exports=function(t){var e=t.Scale.extend({initialize:function(){if(!n)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");this.mergeTicksOptions(), t.Scale.prototype.initialize.call(this)}, update:function(){var e=this.options;return e.time&&e.time.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."), t.Scale.prototype.update.apply(this, arguments)}, getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t), t.Scale.prototype.getRightValue.call(this, e)}, determineDataLimits:function(){var t, e, i, a, l, u, h=this, f=h.chart, p=h.options.time, m=p.unit||"day", v=s, b=r, x=[], y=[], k=[];for(t=0, i=f.data.labels.length;t<i;++t)k.push(g(f.data.labels[t], h));for(t=0, i=(f.data.datasets||[]).length;t<i;++t)if(f.isDatasetVisible(t))if(l=f.data.datasets[t].data, o.isObject(l[0]))for(y[t]=[], e=0, a=l.length;e<a;++e)u=g(l[e], h), x.push(u), y[t][e]=u;else x.push.apply(x, k), y[t]=k.slice(0);else y[t]=[];k.length&&(k=c(k).sort(d), v=Math.min(v, k[0]), b=Math.max(b, k[k.length-1])), x.length&&(x=c(x).sort(d), v=Math.min(v, x[0]), b=Math.max(b, x[x.length-1])), v=g(p.min, h)||v, b=g(p.max, h)||b, v=v===s?+n().startOf(m):v, b=b===r?+n().endOf(m)+1:b, h.min=Math.min(v, b), h.max=Math.max(v+1, b), h._horizontal=h.isHorizontal(), h._table=[], h._timestamps={data:x, datasets:y, labels:k}}, buildTicks:function(){var t, e, i, a, o, r, s, d, c, v, b, x, y=this, k=y.min, M=y.max, w=y.options, S=w.time, C=[], _=[];switch(w.ticks.source){case"data":C=y._timestamps.data;break;case"labels":C=y._timestamps.labels;break;case"auto":default:C=m(k, M, y.getLabelCapacity(k), w)}for("ticks"===w.bounds&&C.length&&(k=C[0], M=C[C.length-1]), k=g(S.min, y)||k, M=g(S.max, y)||M, t=0, e=C.length;t<e;++t)(i=C[t])>=k&&i<=M&&_.push(i);return y.min=k, y.max=M, y._unit=S.unit||function(t, e, i, a){var o, r, s=n.duration(n(a).diff(n(i)));for(o=u.length-1;o>=u.indexOf(e);o--)if(r=u[o], l[r].common&&s.as(r)>=t.length)return r;return u[e?u.indexOf(e):0]}(_, S.minUnit, y.min, y.max), y._majorUnit=p(y._unit), y._table=function(t, e, i, n){if("linear"===n||!t.length)return[{time:e, pos:0}, {time:i, pos:1}];var a, o, r, s, l, u=[], d=[e];for(a=0, o=t.length;a<o;++a)(s=t[a])>e&&s<i&&d.push(s);for(d.push(i), a=0, o=d.length;a<o;++a)l=d[a+1], r=d[a-1], s=d[a], void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||u.push({time:s, pos:a/(o-1)});return u}(y._timestamps.data, k, M, w.distribution), y._offsets=(a=y._table, o=_, r=k, s=M, b=0, x=0, (d=w).offset&&o.length&&(d.time.min||(c=o.length>1?o[1]:s, v=o[0], b=(h(a, "time", c, "pos")-h(a, "time", v, "pos"))/2), d.time.max||(c=o[o.length-1], v=o.length>1?o[o.length-2]:r, x=(h(a, "time", c, "pos")-h(a, "time", v, "pos"))/2)), {left:b, right:x}), y._labelFormat=function(t, e){var i, n, a, o=t.length;for(i=0;i<o;i++){if(0!==(n=f(t[i], e)).millisecond())return"MMM D, YYYY h:mm:ss.SSS a";0===n.second()&&0===n.minute()&&0===n.hour()||(a=!0)}return a?"MMM D, YYYY h:mm:ss a":"MMM D, YYYY"}(y._timestamps.data, S), function(t, e){var i, a, o, r, s=[];for(i=0, a=t.length;i<a;++i)o=t[i], r=!!e&&o===+n(o).startOf(e), s.push({value:o, major:r});return s}(_, y._majorUnit)}, getLabelForIndex:function(t, e){var i=this.chart.data, n=this.options.time, a=i.labels&&t<i.labels.length?i.labels[t]:"", r=i.datasets[e].data[t];return o.isObject(r)&&(a=this.getRightValue(r)), n.tooltipFormat?f(a, n).format(n.tooltipFormat):"string"==typeof a?a:f(a, n).format(this._labelFormat)}, tickFormatFunction:function(t, e, i, n){var a=this.options, r=t.valueOf(), s=a.time.displayFormats, l=s[this._unit], u=this._majorUnit, d=s[u], c=t.clone().startOf(u).valueOf(), h=a.ticks.major, f=h.enabled&&u&&d&&r===c, g=t.format(n||(f?d:l)), p=f?h:a.ticks.minor, m=o.valueOrDefault(p.callback, p.userCallback);return m?m(g, e, i):g}, convertTicksToLabels:function(t){var e, i, a=[];for(e=0, i=t.length;e<i;++e)a.push(this.tickFormatFunction(n(t[e].value), e, t));return a}, getPixelForOffset:function(t){var e=this, i=e._horizontal?e.width:e.height, n=e._horizontal?e.left:e.top, a=h(e._table, "time", t, "pos");return n+i*(e._offsets.left+a)/(e._offsets.left+1+e._offsets.right)}, getPixelForValue:function(t, e, i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]), null===n&&(n=g(t, this)), null!==n)return this.getPixelForOffset(n)}, getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null}, getValueForPixel:function(t){var e=this, i=e._horizontal?e.width:e.height, a=e._horizontal?e.left:e.top, o=(i?(t-a)/i:0)*(e._offsets.left+1+e._offsets.left)-e._offsets.right, r=h(e._table, "pos", o, "time");return n(r)}, getLabelWidth:function(t){var e=this.options.ticks, i=this.ctx.measureText(t).width, n=o.toRadians(e.maxRotation), r=Math.cos(n), s=Math.sin(n);return i*r+o.valueOrDefault(e.fontSize, a.global.defaultFontSize)*s}, getLabelCapacity:function(t){var e=this, i=e.options.time.displayFormats.millisecond, a=e.tickFormatFunction(n(t), 0, [], i), o=e.getLabelWidth(a), r=e.isHorizontal()?e.width:e.height, s=Math.floor(r/o);return s>0?s:1}});t.scaleService.registerScaleType("time", e, {position:"bottom", distribution:"linear", bounds:"data", time:{parser:!1, format:!1, unit:!1, round:!1, displayFormat:!1, isoWeekday:!1, minUnit:"millisecond", displayFormats:{millisecond:"h:mm:ss.SSS a", second:"h:mm:ss a", minute:"h:mm a", hour:"hA", day:"MMM D", week:"ll", month:"MMM YYYY", quarter:"[Q]Q - YYYY", year:"YYYY"}}, ticks:{autoSkip:!1, source:"auto", major:{enabled:!1}}})}}, {1:1, 25:25, 45:45}]}, {}, [7])(7)}); </script> <script async="" type="text/javascript"> var ctx = document.getElementById("myChart1").getContext('2d'); var myChart1 = new Chart(ctx, { type: 'bar', data: { labels: ["Business Hours", "Business Images", "Complete Info", "Contact Info", "Reviews Study", "Acknowledgements", "Exact Services", "Legitimate Ratings", "Location Proximity", "Pricing", "Reviews Accuracy", "Website Standard", ], datasets: [{ label: 'Inspection Report', data: [9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, ], backgroundColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)', 'rgba(255, 159, 64, 0.2)', 'rgba(255, 98, 15, 0.2)', 'rgba(50, 50, 242, 0.2)', 'rgba(89, 241, 255, 0.2)', 'rgba(89, 255, 105, 0.2)', 'rgba(195, 15, 255, 0.2)', 'rgba(255, 169, 89, 0.2)', ], borderColor: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)', 'rgba(255, 98, 15, 1)', 'rgba(50, 50, 242, 1)', 'rgba(89, 241, 255, 1)', 'rgba(89, 255, 105, 1)', 'rgba(195, 15, 255, 1)', 'rgba(255, 169, 89, 1)', ], borderWidth: 1 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero:true, min: 0, max: 10, stepSize: 2 } }], xAxes: [{ ticks: { autoSkip: false } }] }, legend: { display: false }, tooltips: { callbacks: { label: function(tooltipItem, data) { return data['datasets'][0]['data'][tooltipItem['index']] + '/10'; }, }, } } }); </script> </div> </div> </div> <div class="col-md-4"> <div class="product-thumb"> <header class="product-header"> <div id="my-carousel2" class="carousel slide lazy" data-interval="false"> <ol class="carousel-indicators"> <li data-target="#my-carousel2" data-slide-to="0" class="" style="background-color: #a9a9a9;"></li> <li data-target="#my-carousel2" data-slide-to="1" style="background-color: #a9a9a9;"></li> <li data-target="#my-carousel2" data-slide-to="2" style="background-color: #a9a9a9;" class=""></li> <li data-target="#my-carousel2" data-slide-to="3" style="background-color: #a9a9a9;" class="active"></li> </ol> <div class="carousel-inner"> <div class="item"> <img loading="lazy" src="https://threebestrated.co.uk/images/Fonecare-Wirral-UK.jpeg" alt="Fone.care" title="Fone.care" width="350" height="250"> </div> <div class="item iframe" data-embed="https://www.google.com/maps/embed/v1/place?q=182%2BTelegraph%2BRoad, +Wirral, +UK+CH60 0AJ&amp;key=AIzaSyBOuIMr34_Xu4td8T9ri3EP_pLSZ9lW62g"><iframe width="350" height="250" frameborder="0" allowfullscreen="" src="https://www.google.com/maps/embed/v1/place?q=182%2BTelegraph%2BRoad, +Wirral, +UK+CH60 0AJ&amp;key=AIzaSyBOuIMr34_Xu4td8T9ri3EP_pLSZ9lW62g"></iframe></div> <div class="item"> <img alt="Fone.care" width="350" height="250" src="https://threebestrated.co.uk/images/Fonecare-Wirral-UK-1.jpeg"> </div> <div class="item active"> <img alt="Fone.care" width="350" height="250" src="https://threebestrated.co.uk/images/Fonecare-Wirral-UK-2.jpeg"> </div> </div> <a class="carousel-control right" href="#my-carousel2" data-slide="next"></a> </div> </header> <div class="product-inner"><div class="chartjs-size-monitor" style="position: absolute; inset: 0px; overflow: hidden; pointer-events: none; visibility: hidden; z-index: -1;"><div class="chartjs-size-monitor-expand" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="chartjs-size-monitor-shrink" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div></div> <h4><strong>FONE.CARE</strong></h4> <ul class="icon-group icon-list-rating" title="5/5 ratings"> <li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li> </ul> <h5> 182 Telegraph Road, Wirral CH60 0AJ <a target="_blank" href="https://maps.google.co.uk?saddr=Current+Location&amp;daddr=182+Telegraph+Road, +Wirral, +CH60+0AJ+UK&amp;hl=en&amp;iwloc=A" title="Get Directions">Directions<i class="fa fa-external-link"></i></a> </h5> <div style="margin-bottom:15px"> <a href="tel:01513422004"> <span class="product-price" style="-webkit-text-fill-color:#FFFFFF; margin-right: 15px;"> <i class="fa fa-phone"></i>&nbsp; CALL </span> </a> <a href="mailto:[email protected]?subject=Request%20through%20ThreeBestRated.co.uk"> <span class="product-price" style="-webkit-text-fill-color:#FFFFFF;"> <i class="fa fa-envelope-o"></i> EMAIL </span> </a> </div> <p>Since 2011</p> <p class="bg-warning" align="left"><b>Here’s The Deal:<br></b>Fone.care is a reliable and trusted cell phone repair shop situated in Wirral, UK. The shop has talented professional technicians to carry out all kinds of cell phone repair services. Their professional technicians utilise the latest tools and repair techniques in their services. The shop specialises in all brands repair services such as Apple, Google, Huawei, LG, Motorola &amp; more. The team also provide the very best protection and repair service in a safe and trusted environment. The shop also provides a lifetime warranty on all premium repair services. Their technicians give immediate responses to their customers. The shop also has a wide range of wallet cases, tough cases &amp; cables at reasonable prices.</p> <p align="left"><b>SPECIALITY:</b><br>Apple iPhone, Google, Huawei, LG, Motorola, Nokia, Samsung Repair, Water Damage, Screen, Tempered Glass Protector, Accessories, Unlocking, Button, Cracked Screen, LCD Replacements, Charge Port /Cleaning, Liquid Damage, Headphones &amp; Speakers</p> <p><i class="fa fa-certificate goldc"></i> Registration 10955808</p> <p><a href="mailto:[email protected]?subject=Request%20through%20ThreeBestRated.co.uk"><i class="fa fa-envelope-o"></i> [email protected]</a></p> <p><a rel="nofollow external noopener" href="https://fone.care" target="_blank"><i class="fa fa-external-link"></i> fone.care</a></p> <p><a rel="nofollow noopener" data-toggle="modal" data-target="#myModal2" href="/submitreviews?id=9474780"><i class="fa fa-comments"></i> Reviews</a> | <a href="mailto:[email protected]?subject=My%20Review%20for%20Fone.care%20in%20Wirral">Write a Review</a> </p> <div class="product-meta"> <p> </p><ul class="product-price-list"> <li><span class="product-price" style="-webkit-text-fill-color:#FFFFFF;"><i class="fa fa-phone"></i> <a href="tel:01513422004" class="set1">0151 342 2004</a></span></li> </ul> <p></p> <p><i class="fa fa-clock-o"></i> Mon-Sat: 10am - 4pm<br> Sun: Closed</p> <div class="gap-small"></div> </div> <h5><b>TBR</b>® <b>Inspection Report:</b></h5> <canvas id="myChart2" height="263" style="display: block; width: 316px; height: 263px;" width="316" class="chartjs-render-monitor"></canvas> <script async="" type="text/javascript"> var ctx = document.getElementById("myChart2").getContext('2d'); var myChart2 = new Chart(ctx, { type: 'bar', data: { labels: ["Acknowledgements", "Business Hours", "Business Images", "Complete Info", "Contact Info", "Legitimate Ratings", "Reviews Study", "Social Media", "Exact Services", "Location Proximity", "Reviews Accuracy", "Website Standard", ], datasets: [{ label: 'Inspection Report', data: [9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, ], backgroundColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)', 'rgba(255, 159, 64, 0.2)', 'rgba(255, 98, 15, 0.2)', 'rgba(50, 50, 242, 0.2)', 'rgba(89, 241, 255, 0.2)', 'rgba(89, 255, 105, 0.2)', 'rgba(195, 15, 255, 0.2)', 'rgba(255, 169, 89, 0.2)', ], borderColor: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)', 'rgba(255, 98, 15, 1)', 'rgba(50, 50, 242, 1)', 'rgba(89, 241, 255, 1)', 'rgba(89, 255, 105, 1)', 'rgba(195, 15, 255, 1)', 'rgba(255, 169, 89, 1)', ], borderWidth: 1 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero:true, min: 0, max: 10, stepSize: 2 } }], xAxes: [{ ticks: { autoSkip: false } }] }, legend: { display: false }, tooltips: { callbacks: { label: function(tooltipItem, data) { return data['datasets'][0]['data'][tooltipItem['index']] + '/10'; }, }, } } }); </script> </div> </div> </div> <div class="col-md-4"> <div class="product-thumb"> <header class="product-header"> <div id="my-carousel3" class="carousel slide lazy" data-interval="false"> <ol class="carousel-indicators"> <li data-target="#my-carousel3" data-slide-to="0" class="active" style="background-color: #a9a9a9;"></li> <li data-target="#my-carousel3" data-slide-to="1" style="background-color: #a9a9a9;"></li> <li data-target="#my-carousel3" data-slide-to="2" style="background-color: #a9a9a9;"></li> <li data-target="#my-carousel3" data-slide-to="3" style="background-color: #a9a9a9;"></li> </ol> <div class="carousel-inner"> <div class="active item"> <img loading="lazy" src="https://threebestrated.co.uk/images/ElitePhones-Wirral-UK.jpeg" alt="Elite Phones" title="Elite Phones" width="350" height="250"> </div> <div class="item iframe" data-embed="https://www.google.com/maps/embed/v1/place?q=126%2BOxton%2BRoad, +Wirral, +UK+CH41 2TP&amp;key=AIzaSyBOuIMr34_Xu4td8T9ri3EP_pLSZ9lW62g"><iframe width="350" height="250" frameborder="0" allowfullscreen="" src="https://www.google.com/maps/embed/v1/place?q=126%2BOxton%2BRoad, +Wirral, +UK+CH41 2TP&amp;key=AIzaSyBOuIMr34_Xu4td8T9ri3EP_pLSZ9lW62g"></iframe></div> <div class="item"> <img data-src="https://threebestrated.co.uk/images/ElitePhones-Wirral-UK-1.jpeg" alt="Elite Phones" width="350" height="250"> </div> <div class="item"> <img data-src="https://threebestrated.co.uk/images/ElitePhones-Wirral-UK-2.jpeg" alt="Elite Phones" width="350" height="250"> </div> </div> <a class="carousel-control right" href="#my-carousel3" data-slide="next"></a> </div> </header> <div class="product-inner"><div class="chartjs-size-monitor" style="position: absolute; inset: 0px; overflow: hidden; pointer-events: none; visibility: hidden; z-index: -1;"><div class="chartjs-size-monitor-expand" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="chartjs-size-monitor-shrink" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div></div> <h4><strong>ELITE PHONES</strong></h4> <ul class="icon-group icon-list-rating" title="5/5 ratings"> <li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li><li><i class="fa fa-star goldc"></i></li> </ul> <h5> 126 Oxton Road, Birkenhead, Wirral CH41 2TP <a target="_blank" href="https://maps.google.co.uk?saddr=Current+Location&amp;daddr=126+Oxton+Road, +Birkenhead, +Wirral, +CH41+2TP+UK&amp;hl=en&amp;iwloc=A" title="Get Directions">Directions<i class="fa fa-external-link"></i></a> </h5> <div style="margin-bottom:15px"> <a href="tel:01516510700"> <span class="product-price" style="-webkit-text-fill-color:#FFFFFF; margin-right: 15px;"> <i class="fa fa-phone"></i>&nbsp; CALL </span> </a> <a href="mailto:[email protected]?subject=Request%20through%20ThreeBestRated.co.uk"> <span class="product-price" style="-webkit-text-fill-color:#FFFFFF;"> <i class="fa fa-envelope-o"></i> EMAIL </span> </a> </div> <p>Since 2003</p> <p class="bg-warning" align="left"><b>Here’s The Deal:<br></b>Elite Phones is a locally owned cell phone repair shop located in Wirral, UK. The shop has more than 17 years of experience in the cell phone repair industry. Their dedicated technicians ensure to give a personalised support to all their customers. The shop's goal is to offer reliable and honest repair services. The team utilises high-grade replacement parts in their services. They also handle sound issues and software issues efficiently. The shop has repaired over 21920 devices. They repair broken/cracked screens, charging ports and more. They ensure to use of advanced technology and tools in their services. Elite Phones offers free diagnostic and quotes to its customers. The team also provides a tempered glass screen protector to their customers.</p> <p align="left"><b>SPECIALITY:</b><br>Hardware and Software Update, iPhone, iPad, Samsung, Sony Xperia, LG, Huawei Repair, Liquid Damage Treatment, Broken/Cracked Screens, Charging Ports, Battery, Speaker Replacement, Sound Issue, Data Recovery, Data Transfer &amp; Unlocking</p> <p align="left"><b>£Price:</b> GALAXY A10<br> Screen Replacement: £85<br> GALAXY A20S<br> Screen Replacement: £95<br> GALAXY A40<br></p><div class="tooltip3"><a onclick="return false;">... More Prices <i class="fa fa-zoom-in bluec"></i></a><span class="tooltiptext">GALAXY A10<br> Screen Replacement: £85<br> GALAXY A20S<br> Screen Replacement: £95<br> GALAXY A40<br> Screen Replacement: £120<br> XPERIA Z3<br> Screen Replacement: £70<br> XPERIA Z5<br> Screen Replacements: £70<br></span></div><p></p> <p><i class="fa fa-certificate goldc"></i> Registration 08539348</p> <p><a href="mailto:[email protected]?subject=Request%20through%20ThreeBestRated.co.uk"><i class="fa fa-envelope-o"></i> Send Email</a></p> <p><a rel="nofollow external noopener" href="https://elitephonesbirkenhead.co.uk/" target="_blank"><i class="fa fa-external-link"></i> elitephonesbirkenhead.co.uk</a></p> <p><a rel="nofollow noopener" data-toggle="modal" data-target="#myModal3" href="/submitreviews?id=1439900"><i class="fa fa-comments"></i> Reviews</a> | <a href="mailto:[email protected]?subject=My%20Review%20for%20Elite%20Phones%20in%20Wirral">Write a Review</a> </p> <div class="product-meta"> <p> </p><ul class="product-price-list"> <li><span class="product-price" style="-webkit-text-fill-color:#FFFFFF;"><i class="fa fa-phone"></i> <a href="tel:01516510700" class="set1">0151 651 0700</a></span></li> </ul> <p></p> <p><i class="fa fa-clock-o"></i> Mon-Fri: 9am - 5pm <br> Sat: 9am - 4pm <br> Sun: Closed</p> <div class="gap-small"></div> </div> <h5><b>TBR</b>® <b>Inspection Report:</b></h5> <canvas id="myChart3" height="263" style="display: block; width: 316px; height: 263px;" width="316" class="chartjs-render-monitor"></canvas> <script async="" type="text/javascript"> var ctx = document.getElementById("myChart3").getContext('2d'); var myChart3 = new Chart(ctx, { type: 'bar', data: { labels: ["Acknowledgements", "Social Media", "Business Hours", "Business Images", "Complete Info", "Contact Info", "Legitimate Ratings", "Pricing", "Reviews Accuracy", "Reviews Study", "Exact Services", "Location Proximity", ], datasets: [{ label: 'Inspection Report', data: [8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, ], backgroundColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)', 'rgba(255, 159, 64, 0.2)', 'rgba(255, 98, 15, 0.2)', 'rgba(50, 50, 242, 0.2)', 'rgba(89, 241, 255, 0.2)', 'rgba(89, 255, 105, 0.2)', 'rgba(195, 15, 255, 0.2)', 'rgba(255, 169, 89, 0.2)', ], borderColor: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)', 'rgba(255, 98, 15, 1)', 'rgba(50, 50, 242, 1)', 'rgba(89, 241, 255, 1)', 'rgba(89, 255, 105, 1)', 'rgba(195, 15, 255, 1)', 'rgba(255, 169, 89, 1)', ], borderWidth: 1 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero:true, min: 0, max: 10, stepSize: 2 } }], xAxes: [{ ticks: { autoSkip: false } }] }, legend: { display: false }, tooltips: { callbacks: { label: function(tooltipItem, data) { return data['datasets'][0]['data'][tooltipItem['index']] + '/10'; }, }, } } }); </script> </div> </div> </div> <div class="col-md-12 text-center"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8316462549364697" data-ad-slot="5716620615" data-ad-format="auto"><iframe id="aswift_0" style="height: 1px !important; max-height: 1px !important; max-width: 1px !important; width: 1px !important;"><iframe id="google_ads_frame0"></iframe></iframe></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <footer class="main"> <div class="footer-top-area"> <div class="container"> <div class="row row-wrap text-bigger"> <div class="col-md-12">Who is the best in Wirral? Find these near you</div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/car-body-shops-in-wirral" title="Car body shops Wirral"><font class="text-bigger">Car body shops in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/car-garages-in-wirral" title="Car garages Wirral"><font class="text-bigger">Car garages in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/carpet-cleaning-services-in-wirral" title="Carpet cleaning services Wirral"><font class="text-bigger">Carpet cleaning services in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/churches-in-wirral" title="Churches Wirral"><font class="text-bigger">Churches in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/cleaning-services-in-wirral" title="Cleaning services Wirral"><font class="text-bigger">Cleaning services in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/computer-repair-in-wirral" title="Computer repair Wirral"><font class="text-bigger">Computer repair in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/courier-services-in-wirral" title="Courier services Wirral"><font class="text-bigger">Courier services in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/dry-cleaners-in-wirral" title="Dry cleaners Wirral"><font class="text-bigger">Dry cleaners in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/electrical-repairs-in-wirral" title="Electrical repairs Wirral"><font class="text-bigger">Electrical repairs in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/electricians-in-wirral" title="Electricians Wirral"><font class="text-bigger">Electricians in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/entertainment-companies-in-wirral" title="Entertainment companies Wirral"><font class="text-bigger">Entertainment companies in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/funeral-directors-in-wirral" title="Funeral directors Wirral"><font class="text-bigger">Funeral directors in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/gutter-cleaners-in-wirral" title="Gutter cleaners Wirral"><font class="text-bigger">Gutter cleaners in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/lawn-care-in-wirral" title="Lawn care Wirral"><font class="text-bigger">Lawn care in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/locksmiths-in-wirral" title="Locksmiths Wirral"><font class="text-bigger">Locksmiths in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/office-cleaning-companies-in-wirral" title="Office cleaning companies Wirral"><font class="text-bigger">Office cleaning companies in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/oven-cleaners-in-wirral" title="Oven cleaners Wirral"><font class="text-bigger">Oven cleaners in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/pest-control-in-wirral" title="Pest control Wirral"><font class="text-bigger">Pest control in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/photo-booth-companies-in-wirral" title="Photo booth companies Wirral"><font class="text-bigger">Photo booth companies in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/printing-companies-in-wirral" title="Printing companies Wirral"><font class="text-bigger">Printing companies in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/removal-companies-in-wirral" title="Removal companies Wirral"><font class="text-bigger">Removal companies in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/retirement-villages-in-wirral" title="Retirement villages Wirral"><font class="text-bigger">Retirement villages in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/rubbish-removal-in-wirral" title="Rubbish removal Wirral"><font class="text-bigger">Rubbish removal in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/security-systems-in-wirral" title="Security systems Wirral"><font class="text-bigger">Security systems in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/signage-companies-in-wirral" title="Signage companies Wirral"><font class="text-bigger">Signage companies in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/storage-units-in-wirral" title="Storage units Wirral"><font class="text-bigger">Storage units in Wirral</font></a></div> <div class="col-md-4"><i class="fa fa-chevron-right bluec"></i> <a href="https://threebestrated.co.uk/wedding-bands-in-wirral" title="Wedding bands Wirral"><font class="text-bigger">Wedding bands in Wirral</font></a></div> </div> <div class="gap-small"></div> </div> </div> <style>#_atssh{display:none;}</style> <div class="footer-copyright"> <div class="container"> <div class="row"> <div class="col-md-12"> <p align="center">© 2014-2021, UK <a href="https://threebestrated.co.uk">Three Best Rated</a>®, All Rights Reserved. | <a href="https://threebestrated.co.uk/privacy-policy">Privacy</a> | <a href="https://threebestrated.co.uk/terms-of-service">Terms</a> | <a href="mailto:[email protected]">[email protected]</a> </p> </div> </div> </div> </div> </footer> <div id="myModal1" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> </div> </div> </div> <div id="myModal2" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> </div> </div> </div> <div id="myModal3" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> </div> </div> </div> <div id="myModalv1" class="modal fade"> <div class="modal-dialog modal-lg"> <div class="modal-content"> </div> </div> </div> <div id="myModalv2" class="modal fade"> <div class="modal-dialog modal-lg"> <div class="modal-content"> </div> </div> </div> <div id="myModalv3" class="modal fade"> <div class="modal-dialog modal-lg"> <div class="modal-content"> </div> </div> </div> <script async="" type="text/javascript"> ( function() { var youtube = document.querySelectorAll( ".iframe" ); for (var i = 0; i < youtube.length; i++) { var image = new Image(); image.addEventListener( "load", function() { var iframe = document.createElement( "iframe" ); iframe.setAttribute( "width", "350" ); iframe.setAttribute( "height", "250" ); iframe.setAttribute( "frameborder", "0" ); iframe.setAttribute( "allowfullscreen", "" ); iframe.setAttribute( "src", youtube[ i ].dataset.embed ); youtube[ i ].innerHTML = ""; youtube[ i ].appendChild( iframe ); }( i ) ); }; } )(); </script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script async="" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script> </div> <script async="" type="text/javascript"> var originalModal1 = $('#myModalv1').clone(); $('#myModalv1').on('hidden.bs.modal', function () { var htmlString1 = $(".modal-body1445850").html(); $(".modal-body1445850").html(""); $(".modal-body1445850").html(htmlString1); }); </script> <script async="" type="text/javascript"> !function(){$.fn.flexNav=function(a){var b, c, d, e, f, g, h;return h=$.extend({animationSpeed:100, buttonSelector:"#flexnav-menu-button"}, a), b=$(this), e=!1, d=!1, b.find("li").each(function(){return $(this).has("ul").length?$(this).addClass("item-with-ul").find("ul").hide():void 0}), b.data("breakpoint")&&(c=b.data("breakpoint")), f=function(){return $(window).width()<=c?(b.removeClass("lg-screen").addClass("sm-screen"), $(".one-page li a").on("click", function(){return b.removeClass("show")}), $(".item-with-ul").off()):(b.removeClass("sm-screen").addClass("lg-screen"), b.removeClass("show"), $(".item-with-ul").on("mouseenter", function(){return $(this).find(">ul").addClass("show").stop(!0, !0).slideDown(h.animationSpeed)}).on("mouseleave", function(){return $(this).find(">ul").removeClass("show").stop(!0, !0).slideUp(h.animationSpeed)}))}, $(h.buttonSelector).data("navEl", b), g=".item-with-ul, "+h.buttonSelector, $(g).append('<span class="touch-button"></span>'), g=h.buttonSelector+", "+h.buttonSelector+" .touch-button", $(g).on("touchstart mousedown", function(a){return a.preventDefault(), a.stopPropagation(), console.log(d), $(this).on("touchmove mousemove", function(a){var b;return b=a.pageX, d=!0, $(window).off("touchmove mousemove")})}).on("touchend mouseup", function(a){var b, c, f;if(a.preventDefault(), a.stopPropagation(), f=h.buttonSelector, b=$(this).is(f)?$(this):$(this).parent(f), c=b.data("navEl"), d=!1, d===!1){if(console.log("clicked"), e===!1)return c.addClass("show"), e=!0;if(e===!0)return c.removeClass("show"), e=!1}}), $(".touch-button").on("touchstart mousedown", function(a){return a.stopPropagation(), a.preventDefault(), $(this).on("touchmove mousemove", function(){return d=!0, $(window).off("touchmove mousemove")})}).on("touchend mouseup", function(a){var c;return a.preventDefault(), a.stopPropagation(), c=$(this).parent(".item-with-ul").find(">ul"), b.hasClass("lg-screen")===!0&&($(this).removeClass("active"), $(this).parent(".item-with-ul").siblings().find("ul.show").removeClass("show").hide()), c.hasClass("show")===!0?($(this).removeClass("active"), c.removeClass("show").slideUp(h.animationSpeed)):c.hasClass("show")===!1?($(this).addClass("active"), c.addClass("show").slideDown(h.animationSpeed)):void 0}), b.find(".item-with-ul *").focus(function(){return $(this).parent(".item-with-ul").parent().find(".open").not(this).removeClass("open").hide(), $(this).parent(".item-with-ul").find(">ul").addClass("open").show()}), f(), $(window).on("resize", f)}}.call(this); // Responsive navigation $('#flexnav').flexNav(); </script> <script async="" type="text/javascript"> $(function() { return $(".carousel.lazy").on("slide.bs.carousel", function(ev) { var lazy; lazy = $(ev.relatedTarget).find("img[data-src]"); lazy.attr("src", lazy.data('src')); lazy.removeAttr("data-src"); }); }); </script> <style type="text/css"> .form-control-feedback { position: absolute; top: 0; right: 0; z-index: 2; display: block; width: 34px; height: 34px; line-height: 34px; text-align: center; pointer-events: none; cursor: pointer; pointer-events: inherit; } </style> <script> $(document).ready(function(){ $(".tooltip3").click(function(){ $("[data-toggle='tooltip']").tooltip('hide'); }); }); </script> <script> (function(i, s, o, g, r, a, m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)}, i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-57370544-2', 'auto'); ga('send', 'pageview'); </script> <script type="text/javascript"> //<![CDATA[ var la=!1;window.addEventListener("scroll", function(){(0!=document.documentElement.scrollTop&&!1===la||0!=document.body.scrollTop&&!1===la)&&(!function(){var e=document.createElement("script");e.type="text/javascript", e.async=!0, e.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(e, a)}(), la=!0)}, !0); //]]> </script> <div id="h10-xray"></div><div id="h10-asin-grabber"></div><div id="h10-demand"></div><div id="h10-inventory"></div><div id="h10-profitability-calculator"></div><div id="h10-review"></div><div id="h10-xray-walmart"></div></body>, LCD Replacements, Cracked Screen, Accessories, Water Damage, Samsung Repair,

Selection Criteria

  • Reputation
  • Credibility
  • Experience
  • Availability
write review

Interview with the owner

N/A

Customer reviews

5 star
0 %
4 star
0 %
3 star
0 %
2 star
0 %
1 star
0 %

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vestibulum mauris id leo vehicula condimentum. Quisque orci elit, ultricies vel nisl vel, malesuada feugiat ipsum. Etiam quis sagittis est, nec efficitur massa. Proin imperdiet non dolor sed aliquet.

Mark De roon

Ceo at Sweet london family photography

Customer Reviews

Similar companies

FOURM CHARTERED ACCOUNTANTS Accountants

TOTAL BOOKS ACCOUNTANTS Accountants

4.0 - 1 Review

Nora Jefferson Recruitment agencies




Write review

Rating




Want to be featured on Top5Local?

No problem, click the button below and give us your details, we’ll give you the inside scoop on getting listed!
K Amos 25 Feb 2021

Great quality, looks fantastic and no damage as so well packaged

Sarah Marshall 22 Mar 2021

Very good output and excellent choice of works, extremely good pricing,

Martin W 18 Apr 2021

Excellent service,I will definitely be using them again, would highly recommend