WordPress SEO Plugin – Rank Math - Version 1.0.14

Version Description

[Jan 22, 2019] = * Added a new filter to change Editor's choice text in the review Shortcode * Added noopener tag to all the external links * Improved the Snippet code and separated it to make it load much faster and work efficiently on large sites * Improved the Syntax for Array * Improved the AMP link in the plugin's module page * Fixed an issue with the Local SEO dropdown that made it to not work effectively * Fixed an issue with the Editor script where the Editor screen was freezing when more than 4 words were used as a focus keyword * Fixed a compatibility issue with WooCommerce Multivendor Marketplace plugin * Fixed Duplicate Redirection creation issue where successive clicks on the 'Add Redirection button' was causing redirections to be created twice * Continued moving the things to the API

Download this release

Release Info

Developer MyThemeShop
Plugin Icon 128x128 WordPress SEO Plugin – Rank Math
Version 1.0.14
Comparing to
See all releases

Code changes from version 1.0.12 to 1.0.14

Files changed (63) hide show
  1. assets/admin/js/assessor.js +1 -1
  2. includes/class-installer.php +0 -1
  3. includes/class-module-manager.php +5 -2
  4. includes/class-shortcodes.php +3 -4
  5. includes/class-updates.php +1 -0
  6. includes/frontend/class-frontend.php +14 -1
  7. includes/frontend/class-generate.php +1 -1
  8. includes/modules/local-seo/class-local-seo.php +3 -2
  9. includes/modules/redirections/assets/redirections.js +7 -2
  10. includes/modules/redirections/class-db.php +1 -1
  11. includes/modules/redirections/class-redirector.php +13 -19
  12. includes/modules/rich-snippet/class-admin.php +29 -18
  13. includes/modules/rich-snippet/class-jsonld.php +181 -1430
  14. includes/modules/rich-snippet/interface-snippet.php +29 -0
  15. includes/modules/rich-snippet/snippets/class-article.php +55 -0
  16. includes/modules/rich-snippet/snippets/class-author.php +42 -0
  17. includes/modules/rich-snippet/snippets/class-blog.php +44 -0
  18. includes/modules/rich-snippet/snippets/class-book.php +99 -0
  19. includes/modules/rich-snippet/snippets/class-breadcrumbs.php +62 -0
  20. includes/modules/rich-snippet/snippets/class-collection-page.php +56 -0
  21. includes/modules/rich-snippet/snippets/class-course.php +49 -0
  22. includes/modules/rich-snippet/snippets/class-event.php +80 -0
  23. includes/modules/rich-snippet/snippets/class-jobposting.php +117 -0
  24. includes/modules/rich-snippet/snippets/class-local.php +65 -0
  25. includes/modules/rich-snippet/snippets/class-music.php +41 -0
  26. includes/modules/rich-snippet/snippets/class-person.php +45 -0
  27. includes/modules/rich-snippet/snippets/class-product-edd.php +90 -0
  28. includes/modules/rich-snippet/snippets/class-product-woocommerce.php +388 -0
  29. includes/modules/rich-snippet/snippets/class-product.php +135 -0
  30. includes/modules/rich-snippet/snippets/class-products-page.php +59 -0
  31. includes/modules/rich-snippet/snippets/class-recipe.php +200 -0
  32. includes/modules/rich-snippet/snippets/class-restaurant.php +45 -0
  33. includes/modules/rich-snippet/snippets/class-review.php +119 -0
  34. includes/modules/rich-snippet/snippets/class-search-results.php +38 -0
  35. includes/modules/rich-snippet/snippets/class-service.php +51 -0
  36. includes/modules/rich-snippet/snippets/class-singular.php +115 -0
  37. includes/modules/rich-snippet/snippets/class-software.php +52 -0
  38. includes/modules/rich-snippet/snippets/class-video.php +53 -0
  39. includes/modules/rich-snippet/{class-wc-attributes.php → snippets/class-wc-attributes.php} +2 -2
  40. includes/modules/rich-snippet/snippets/class-website.php +61 -0
  41. includes/modules/rich-snippet/views/article.php +28 -0
  42. includes/modules/rich-snippet/views/book.php +82 -0
  43. includes/modules/rich-snippet/views/course.php +24 -0
  44. includes/modules/rich-snippet/views/event.php +172 -0
  45. includes/modules/rich-snippet/views/job-posting.php +143 -0
  46. includes/modules/rich-snippet/views/local.php +73 -0
  47. includes/modules/rich-snippet/views/metabox-options.php +43 -1093
  48. includes/modules/rich-snippet/views/music.php +22 -0
  49. includes/modules/rich-snippet/views/person.php +38 -0
  50. includes/modules/rich-snippet/views/product.php +57 -0
  51. includes/modules/rich-snippet/views/recipe.php +250 -0
  52. includes/modules/rich-snippet/views/restaurant.php +27 -0
  53. includes/modules/rich-snippet/views/review.php +72 -0
  54. includes/modules/rich-snippet/views/service.php +52 -0
  55. includes/modules/rich-snippet/views/software.php +60 -0
  56. includes/modules/rich-snippet/views/video.php +47 -0
  57. includes/opengraph/class-twitter.php +6 -7
  58. includes/updates/update-1.0.14.php +18 -0
  59. rank-math.php +2 -2
  60. readme.txt +16 -1
  61. uninstall.php +1 -1
  62. vendor/composer/autoload_classmap.php +27 -1
  63. vendor/composer/autoload_static.php +27 -1
assets/admin/js/assessor.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=258)}([function(e,t){e.exports=Array.isArray},function(e,t,n){var i=n(75)("wks"),r=n(40),u=n(2).Symbol,o="function"==typeof u;(e.exports=function(e){return i[e]||(i[e]=o&&u[e]||(o?u:r)("Symbol."+e))}).store=i},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var i=n(11),r=n(41);e.exports=n(4)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){e.exports=!n(22)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=jQuery},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){var i=n(70)("wks"),r=n(71),u=n(6).Symbol,o="function"==typeof u;(e.exports=function(e){return i[e]||(i[e]=o&&u[e]||(o?u:r)("Symbol."+e))}).store=i},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var i=n(34),r=n(68);e.exports=n(20)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var i=n(12),r=n(77),u=n(79),o=Object.defineProperty;t.f=n(4)?Object.defineProperty:function(e,t,n){if(i(e),t=u(t,!0),i(n),r)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var i=n(9);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var i=n(2),r=n(3),u=n(14),o=n(40)("src"),s=Function.toString,a=(""+s).split("toString");n(39).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var l="function"==typeof n;l&&(u(n,"name")||r(n,"name",t)),e[t]!==n&&(l&&(u(n,o)||r(n,o,e[t]?""+e[t]:a.join(t+""))),e===i?e[t]=n:s?e[t]?e[t]=n:r(e,t,n):(delete e[t],r(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[o]||s.call(this)})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=s(n(229)),u=s(n(105)),o=s(n(92));function s(e){return e&&e.__esModule?e:{default:e}}var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return i(e,[{key:"announce",value:function(e,t,n){(0,u.default)(e)||(e=e?"ok":"fail");var i={status:e,message:this.getText(e),score:t||0,hasFactors:!1};return(0,o.default)(n)||(i.factors=n,i.hasFactors=!0,i.message=i.message.replace(/{(\d+)}/g,function(e,t){return(0,o.default)(n[t])?"":n[t]})),i}},{key:"getScore",value:function(e){return rankMath.assessor.researchesTests[e].score}},{key:"getText",value:function(e){var t=this.getTextID(e);return(0,r.default)(rankMath.assessor.__,t)?rankMath.assessor.__[t]:"No text found."}},{key:"getTextID",value:function(e){return this.prefix+"."+e}},{key:"run",value:function(e,t){throw Error("Test unimplemented.")}},{key:"isApplicable",value:function(){return!0}}]),e}();t.default=a},function(e,t,n){var i=n(89);e.exports=function(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}},function(e,t){e.exports={}},function(e,t,n){var i=n(35);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(36)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var i=n(181),r=n(43);e.exports=function(e){return i(r(e))}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var i=n(0),r=n(30),u=n(130),o=n(60);e.exports=function(e,t){return i(e)?e:r(e,t)?[e]:u(o(e))}},function(e,t,n){var i=n(96),r=n(54);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},function(e,t,n){"use strict";var i=n(282);e.exports=function(e){return function(e){return function(t){var n=t&&t.children;if(!n)throw Error("Missing children in `parent` for `modifier`");return i(n,e,t)}}(function(e){return function(t,n){return e(t,n,this)}}(e))}},function(e,t,n){var i=n(109),r=n(112)(i);e.exports=r},function(e,t,n){var i=n(50)(Object.keys,Object);e.exports=i},function(e,t,n){var i=n(0),r=n(129),u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;e.exports=function(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||o.test(e)||!u.test(e)||null!=t&&e in Object(t)}},function(e,t,n){var i=n(51),r=n(26),u=n(105),o=n(140),s=n(141),a=Math.max;e.exports=function(e,t,n,l){e=r(e)?e:s(e),n=n&&!l?o(n):0;var c=e.length;return 0>n&&(n=a(c+n,0)),u(e)?c>=n&&e.indexOf(t,n)>-1:!!c&&i(e,t,n)>-1}},function(e,t,n){var i=n(156),r=n(33);e.exports=function(e){return i(r(e))}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var i=n(19),r=n(159),u=n(160),o=Object.defineProperty;t.f=n(20)?Object.defineProperty:function(e,t,n){if(i(e),t=u(t,!0),i(n),r)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},function(e,t,n){var i=n(70)("keys"),r=n(71);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports={}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var i=n(75)("keys"),r=n(40);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){"use strict";var i=n(3),r=n(13),u=n(22),o=n(43),s=n(1);e.exports=function(e,t,n){var a=s(e),l=n(o,a,""[e]),c=l[0],d=l[1];u(function(){var t={};return t[a]=function(){return 7},7!=""[e](t)})&&(r(String.prototype,e,c),i(RegExp.prototype,a,2==t?function(e,t){return d.call(e,this,t)}:function(e){return d.call(e,this)}))}},function(e,t,n){var i=n(113),r=n(127),u=n(104),o=n(0),s=n(133);e.exports=function(e){return"function"==typeof e?e:null==e?u:"object"==typeof e?o(e)?r(e[0],e[1]):i(e):s(e)}},function(e,t,n){var i=n(25),r=n(15);e.exports=function(e,t){for(var n=0,u=(t=i(t,e)).length;null!=e&&u>n;)e=e[r(t[n++])];return n&&n==u?e:void 0}},function(e,t,n){"use strict";e.exports=function e(t,n){var i,r,u,o=n||"";if(!t||!("length"in t)&&!t.type)throw Error("Expected node, not `"+t+"`");if("string"==typeof t.value)return t.value;if(1===(r=(u="length"in t?t:t.children).length)&&"value"in u[0])return u[0].value;for(i=[];r--;)i[r]=e(u[r],o);return i.join(o)}},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t){e.exports=function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/<\/?[a-z][^>]*?>/gi,"\n")}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&9007199254740991>=e}},function(e,t,n){var i=n(115),r=n(116),u=n(117),o=n(118),s=n(119);function a(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}a.prototype.clear=i,a.prototype.delete=r,a.prototype.get=u,a.prototype.has=o,a.prototype.set=s,e.exports=a},function(e,t,n){var i=n(120),r=n(57);e.exports=function e(t,n,u,o,s){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!=t&&n!=n:i(t,n,u,o,e,s))}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var i=n(24);e.exports=function(e){return e==e&&!i(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},function(e,t){e.exports=function(e){return e}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}},,function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){"use strict";var i=n(65),r=n(66),u=n(161),o=n(10),s=n(18),a=n(162),l=n(73),c=n(170),d=n(8)("iterator"),f=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,g,h,y,m){a(n,t,g);var b,v,D,w=function(e){if(!f&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",F="values"==h,E=!1,x=e.prototype,C=x[d]||x["@@iterator"]||h&&x[h],A=C||w(h),j=h?F?w("entries"):A:void 0,_="Array"==t&&x.entries||C;if(_&&(D=c(_.call(new e)))!==Object.prototype&&D.next&&(l(D,k,!0),i||"function"==typeof D[d]||o(D,d,p)),F&&C&&"values"!==C.name&&(E=!0,A=function(){return C.call(this)}),i&&!m||!f&&!E&&x[d]||o(x,d,A),s[t]=A,s[k]=p,h)if(b={values:F?A:w("values"),keys:y?A:w("keys"),entries:j},m)for(v in b)v in x||u(x,v,b[v]);else r(r.P+r.F*(f||E),t,b);return b}},function(e,t){e.exports=!0},function(e,t,n){var i=n(6),r=n(7),u=n(157),o=n(10),s=n(21),a=function(e,t,n){var l,c,d,f=e&a.F,p=e&a.G,g=e&a.S,h=e&a.P,y=e&a.B,m=e&a.W,b=p?r:r[t]||(r[t]={}),v=b.prototype,D=p?i:g?i[t]:(i[t]||{}).prototype;for(l in p&&(n=t),n)(c=!f&&D&&void 0!==D[l])&&s(b,l)||(d=c?D[l]:n[l],b[l]=p&&"function"!=typeof D[l]?n[l]:y&&c?u(d,i):m&&D[l]==d?function(e){var t=function(t,n,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,i)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):h&&"function"==typeof d?u(Function.call,d):d,h&&((b.virtual||(b.virtual={}))[l]=d,e&a.R&&v&&!v[l]&&o(v,l,d)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,e.exports=a},function(e,t,n){var i=n(35),r=n(6).document,u=i(r)&&i(r.createElement);e.exports=function(e){return u?r.createElement(e):{}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var i=n(165),r=n(72);e.exports=Object.keys||function(e){return i(e,r)}},function(e,t,n){var i=n(7),r=n(6),u=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return u[e]||(u[e]=void 0!==t?t:{})})("versions",[]).push({version:i.version,mode:n(65)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var i=n(34).f,r=n(21),u=n(8)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,u)&&i(e,u,{configurable:!0,value:t})}},function(e,t,n){var i=n(33);e.exports=function(e){return Object(i(e))}},function(e,t,n){var i=n(39),r=n(2),u=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return u[e]||(u[e]=void 0!==t?t:{})})("versions",[]).push({version:i.version,mode:n(76)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports=!1},function(e,t,n){e.exports=!n(4)&&!n(22)(function(){return 7!=Object.defineProperty(n(78)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(9),r=n(2).document,u=i(r)&&i(r.createElement);e.exports=function(e){return u?r.createElement(e):{}}},function(e,t,n){var i=n(9);e.exports=function(e,t){if(!i(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!i(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var i=n(184);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var i=n(83),r=n(45);e.exports=Object.keys||function(e){return i(e,r)}},function(e,t,n){var i=n(14),r=n(23),u=n(188)(!1),o=n(44)("IE_PROTO");e.exports=function(e,t){var n,s=r(e),a=0,l=[];for(n in s)n!=o&&i(s,n)&&l.push(n);for(;t.length>a;)i(s,n=t[a++])&&(~u(l,n)||l.push(n));return l}},function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},function(e,t,n){var i=n(11).f,r=n(14),u=n(1)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,u)&&i(e,u,{configurable:!0,value:t})}},function(e,t,n){var i=n(9),r=n(80),u=n(1)("match");e.exports=function(e){var t;return i(e)&&(void 0!==(t=e[u])?!!t:"RegExp"==r(e))}},function(e,t,n){var i=n(148),r=n(149),u=n(176);e.exports=function(e,t){return i(e)||r(e,t)||u()}},function(e,t,n){e.exports=n(196)},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var i=n(132),r=n(102);e.exports=function(e,t){return null!=e&&r(e,t,i)}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var i=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==i||"symbol"!=i&&n.test(e))&&e>-1&&e%1==0&&t>e}},function(e,t){e.exports=function(e){return void 0===e}},function(e,t,n){var i=n(107),r=n(108),u=n(47),o=n(0);e.exports=function(e,t){return(o(e)?i:r)(e,u(t,3))}},function(e,t,n){var i=n(61),r=n(47),u=n(146),o=n(0);e.exports=function(e,t){return(o(e)?i:u)(e,r(t,3))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(i,"").replace(r,"")};var i=/\[[^<>&\/\[\] - =]+?( [^\]]+?)?\]/g,r=/\[\/[^<>&\/\[\] - =]+?\]/g},function(e,t,n){var i=n(53),r=n(24);e.exports=function(e){if(!r(e))return!1;var t=i(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var i=n(0);e.exports=function(){if(!arguments.length)return[];var e=arguments[0];return i(e)?e:[e]}},function(e,t,n){var i=n(51);e.exports=function(e,t){return!(null==e||!e.length)&&i(e,t,0)>-1}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t){e.exports=function(){return!1}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var i=n(25),r=n(103),u=n(0),o=n(91),s=n(54),a=n(15);e.exports=function(e,t,n){for(var l=-1,c=(t=i(t,e)).length,d=!1;++l<c;){var f=a(t[l]);if(!(d=null!=e&&n(e,f)))break;e=e[f]}return d||++l!=c?d:!!(c=null==e?0:e.length)&&s(c)&&o(f,c)&&(u(e)||r(e))}},function(e,t){e.exports=function(){return!1}},function(e,t){e.exports=function(e){return e}},function(e,t,n){var i=n(53),r=n(0),u=n(57);e.exports=function(e){return"string"==typeof e||!r(e)&&u(e)&&"[object String]"==i(e)}},function(e,t,n){"use strict";e.exports={affixSymbol:/^([\)\]\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63]|["'\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21]|[!\.\?\u2026\u203D])\1*$/,newLine:/^[ \t]*((\r?\n|\r)[\t ]*)+$/,newLineMulti:/^[ \t]*((\r?\n|\r)[\t ]*){2,}$/,terminalMarker:/^((?:[!\.\?\u2026\u203D])+)$/,wordSymbolInner:/^((?:[&'\-\.:=\?@\xAD\xB7\u2010\u2011\u2019\u2027])|(?:_)+)$/,numerical:/^(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE47\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD834[\uDF60-\uDF71]|\uD835[\uDFCE-\uDFFF]|\uD83A[\uDCC7-\uDCCF]|\uD83C[\uDD00-\uDD0C])+$/,digitStart:/^\d/,lowerInitial:/^(?:[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]|\uD801[\uDC28-\uDC4F]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB])/,surrogates:/[\uD800-\uDFFF]/,punctuation:/[!"'-\),-\/:;\?\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u201F\u2022-\u2027\u2032-\u203A\u203C-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,word:/[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09F4-\u09F9\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71-\u0B77\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BF2\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C78-\u0C7E\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D75\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F33\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u17F0-\u17F9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABE\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u20D0-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u3192-\u3195\u31A0-\u31BA\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA830-\uA835\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0-\uDEFB\uDF00-\uDF23\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F-\uDE47\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE6\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC00-\uDC46\uDC52-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF3B]|\uD806[\uDCA0-\uDCF2\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44\uDF60-\uDF71]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,whiteSpace:/[\t-\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,u=[];++n<i;){var o=e[n];t(o,n,e)&&(u[r++]=o)}return u}},function(e,t,n){var i=n(28);e.exports=function(e,t){var n=[];return i(e,function(e,i,r){t(e,i,r)&&n.push(e)}),n}},function(e,t,n){var i=n(110),r=n(29);e.exports=function(e,t){return e&&i(e,t,r)}},function(e,t,n){var i=n(111)();e.exports=i},function(e,t){e.exports=function(e){return function(t,n,i){for(var r=-1,u=Object(t),o=i(t),s=o.length;s--;){var a=o[e?s:++r];if(!1===n(u[a],a,u))break}return t}}},function(e,t,n){var i=n(26);e.exports=function(e,t){return function(n,r){if(null==n)return n;if(!i(n))return e(n,r);for(var u=n.length,o=t?u:-1,s=Object(n);(t?o--:++o<u)&&!1!==r(s[o],o,s););return n}}},function(e,t,n){var i=n(114),r=n(126),u=n(59);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?u(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}},function(e,t,n){var i=n(55),r=n(56);e.exports=function(e,t,n,u){var o=n.length,s=o,a=!u;if(null==e)return!s;for(e=Object(e);o--;){var l=n[o];if(a&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++o<s;){var c=(l=n[o])[0],d=e[c],f=l[1];if(a&&l[2]){if(void 0===d&&!(c in e))return!1}else{var p=new i;if(u)var g=u(d,f,c,e,t,p);if(!(void 0===g?r(f,d,3,u,p):g))return!1}}return!0}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var i=n(17),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=i(t,e);return n>=0&&(n==t.length-1?t.pop():r.call(t,n,1),--this.size,!0)}},function(e,t,n){var i=n(17);e.exports=function(e){var t=this.__data__,n=i(t,e);return 0>n?void 0:t[n][1]}},function(e,t,n){var i=n(17);e.exports=function(e){return i(this.__data__,e)>-1}},function(e,t,n){var i=n(17);e.exports=function(e,t){var n=this.__data__,r=i(n,e);return 0>r?(++this.size,n.push([e,t])):n[r][1]=t,this}},function(e,t,n){var i=n(55),r=n(121),u=n(123),o=n(124),s=n(99),a=n(0),l=n(100),c=n(101),d="[object Arguments]",f="[object Array]",p="[object Object]",g=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,h,y,m){var b=a(e),v=a(t),D=b?f:s(e),w=v?f:s(t),k=(D=D==d?p:D)==p,F=(w=w==d?p:w)==p,E=D==w;if(E&&l(e)){if(!l(t))return!1;b=!0,k=!1}if(E&&!k)return m||(m=new i),b||c(e)?r(e,t,n,h,y,m):u(e,t,D,n,h,y,m);if(!(1&n)){var x=k&&g.call(e,"__wrapped__"),C=F&&g.call(t,"__wrapped__");if(x||C){var A=x?e.value():e,j=C?t.value():t;return m||(m=new i),y(A,j,n,h,m)}}return!!E&&(m||(m=new i),o(e,t,n,h,y,m))}},function(e,t,n){var i=n(97),r=n(122),u=n(98);e.exports=function(e,t,n,o,s,a){var l=1&n,c=e.length,d=t.length;if(!(c==d||l&&d>c))return!1;var f=a.get(e);if(f&&a.get(t))return f==t;var p=-1,g=!0,h=2&n?new i:void 0;for(a.set(e,t),a.set(t,e);++p<c;){var y=e[p],m=t[p];if(o)var b=l?o(m,y,p,t,e,a):o(y,m,p,e,t,a);if(void 0!==b){if(b)continue;g=!1;break}if(h){if(!r(t,function(e,t){if(!u(h,t)&&(y===e||s(y,e,n,o,a)))return h.push(t)})){g=!1;break}}else if(y!==m&&!s(y,m,n,o,a)){g=!1;break}}return a.delete(e),a.delete(t),g}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var i=n(125),r=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,u,o,s){var a=1&n,l=i(e),c=l.length;if(c!=i(t).length&&!a)return!1;for(var d=c;d--;){var f=l[d];if(!(a?f in t:r.call(t,f)))return!1}var p=s.get(e);if(p&&s.get(t))return p==t;var g=!0;s.set(e,t),s.set(t,e);for(var h=a;++d<c;){var y=e[f=l[d]],m=t[f];if(u)var b=a?u(m,y,f,t,e,s):u(y,m,f,e,t,s);if(!(void 0===b?y===m||o(y,m,n,u,s):b)){g=!1;break}h||(h="constructor"==f)}if(g&&!h){var v=e.constructor,D=t.constructor;v!=D&&"constructor"in e&&"constructor"in t&&!("function"==typeof v&&v instanceof v&&"function"==typeof D&&D instanceof D)&&(g=!1)}return s.delete(e),s.delete(t),g}},function(e,t,n){var i=n(50)(Object.keys,Object);e.exports=i},function(e,t,n){var i=n(58),r=n(29);e.exports=function(e){for(var t=r(e),n=t.length;n--;){var u=t[n],o=e[u];t[n]=[u,o,i(o)]}return t}},function(e,t,n){var i=n(56),r=n(128),u=n(90),o=n(30),s=n(58),a=n(59),l=n(15);e.exports=function(e,t){return o(e)&&s(t)?a(l(e),t):function(n){var o=r(n,e);return void 0===o&&o===t?u(n,e):i(t,o,3)}}},function(e,t,n){var i=n(48);e.exports=function(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,u=n(131)(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,function(e,n,i,u){t.push(i?u.replace(r,"$1"):n||e)}),t});e.exports=u},function(e,t){e.exports=function(e){return e}},function(e,t){e.exports=function(e,t){return null!=e&&t in Object(e)}},function(e,t,n){var i=n(134),r=n(135),u=n(30),o=n(15);e.exports=function(e){return u(e)?i(o(e)):r(e)}},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var i=n(48);e.exports=function(e){return function(t){return i(t,e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(e=(0,r.default)(e)).replace(/ /gi,"-").toLowerCase()};var i,r=(i=n(137))&&i.__esModule?i:{default:i}},function(e,t,n){var i=n(138),r=n(60),u=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,o=/[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]/g;e.exports=function(e){return(e=r(e))&&e.replace(u,i).replace(o,"")}},function(e,t,n){var i=n(139)({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"});e.exports=i},function(e,t){e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},function(e,t){e.exports=function(e){return e}},function(e,t,n){var i=n(142),r=n(29);e.exports=function(e){return null==e?[]:i(e,r(e))}},function(e,t,n){var i=n(61);e.exports=function(e,t){return i(t,function(t){return e[t]})}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=a((0,r.autop)((0,o.default)(e)),t);return n.length>0?n:[e]};var i=s(n(94)),r=n(147),u=s(n(52)),o=s(n(95));function s(e){return e&&e.__esModule?e:{default:e}}var a=function(e,t){var n=[];t=t||!1;for(var r=/<p(?:[^>]+)?>(.*?)<\/p>/gi,o=void 0;null!==(o=r.exec(e));)n.push(o);return(0,i.default)(n,function(e){return t?(0,u.default)(e[1]):e[1]})}},function(e,t,n){var i=n(28),r=n(26);e.exports=function(e,t){var n=-1,u=r(e)?Array(e.length):[];return i(e,function(e,i,r){u[++n]=t(e,i,r)}),u}},function(e,t,n){"use strict";n.r(t),n.d(t,"autop",function(){return l}),n.d(t,"removep",function(){return c});var i=n(87),r=n.n(i),u=(n(177),n(194),n(195),n(88)),o=n.n(u),s=(n(199),n(200),/(<((?=!--|!\[CDATA\[)((?=!-)!(?:-(?!->)[^\-]*)*(?:-->)?|!\[CDATA\[[^\]]*(?:](?!]>)[^\]]*)*?(?:]]>)?)|[^>]*>?))/);function a(e,t){for(var n=function(e){for(var t,n=[],i=e;t=i.match(s);)n.push(i.slice(0,t.index)),n.push(t[0]),i=i.slice(t.index+t[0].length);return i.length&&n.push(i),n}(e),i=!1,r=o()(t),u=1;n.length>u;u+=2)for(var a=0;r.length>a;a++){var l=r[a];if(-1!==n[u].indexOf(l)){n[u]=n[u].replace(RegExp(l,"g"),t[l]),i=!0;break}}return i&&(e=n.join("")),e}function l(e){var t=1>=arguments.length||void 0===arguments[1]||arguments[1],n=[];if(""===e.trim())return"";if(-1!==(e+="\n").indexOf("<pre")){var i=e.split("</pre>"),u=i.pop();e="";for(var o=0;i.length>o;o++){var s=i[o],l=s.indexOf("<pre");if(-1!==l){var c="<pre wp-pre-tag-"+o+"></pre>";n.push([c,s.substr(l)+"</pre>"]),e+=s.substr(0,l)+c}else e+=s}e+=u}var d="(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)";-1!==(e=a(e=(e=(e=(e=e.replace(/<br\s*\/?>\s*<br\s*\/?>/g,"\n\n")).replace(RegExp("(<"+d+"[s/>])","g"),"\n\n$1")).replace(RegExp("(</"+d+">)","g"),"$1\n\n")).replace(/\r\n|\r/g,"\n"),{"\n":" \x3c!-- wpnl --\x3e "})).indexOf("<option")&&(e=(e=e.replace(/\s*<option/g,"<option")).replace(/<\/option>\s*/g,"</option>")),-1!==e.indexOf("</object>")&&(e=(e=(e=e.replace(/(<object[^>]*>)\s*/g,"$1")).replace(/\s*<\/object>/g,"</object>")).replace(/\s*(<\/?(?:param|embed)[^>]*>)\s*/g,"$1")),-1===e.indexOf("<source")&&-1===e.indexOf("<track")||(e=(e=(e=e.replace(/([<\[](?:audio|video)[^>\]]*[>\]])\s*/g,"$1")).replace(/\s*([<\[]\/(?:audio|video)[>\]])/g,"$1")).replace(/\s*(<(?:source|track)[^>]*>)\s*/g,"$1")),-1!==e.indexOf("<figcaption")&&(e=(e=e.replace(/\s*(<figcaption[^>]*>)/,"$1")).replace(/<\/figcaption>\s*/,"</figcaption>"));var f=(e=e.replace(/\n\n+/g,"\n\n")).split(/\n\s*\n/).filter(Boolean);return e="",f.forEach(function(t){e+="<p>"+t.replace(/^\n*|\n*$/g,"")+"</p>\n"}),e=(e=(e=(e=(e=(e=(e=(e=e.replace(/<p>\s*<\/p>/g,"")).replace(/<p>([^<]+)<\/(div|address|form)>/g,"<p>$1</p></$2>")).replace(RegExp("<p>s*(</?"+d+"[^>]*>)s*</p>","g"),"$1")).replace(/<p>(<li.+?)<\/p>/g,"$1")).replace(/<p><blockquote([^>]*)>/gi,"<blockquote$1><p>")).replace(/<\/blockquote><\/p>/g,"</p></blockquote>")).replace(RegExp("<p>s*(</?"+d+"[^>]*>)","g"),"$1")).replace(RegExp("(</?"+d+"[^>]*>)s*</p>","g"),"$1"),t&&(e=(e=(e=(e=e.replace(/<(script|style).*?<\/\\1>/g,function(e){return e[0].replace(/\n/g,"<WPPreserveNewline />")})).replace(/<br>|<br\/>/g,"<br />")).replace(/(<br \/>)?\s*\n/g,function(e,t){return t?e:"<br />\n"})).replace(/<WPPreserveNewline \/>/g,"\n")),e=(e=(e=e.replace(RegExp("(</?"+d+"[^>]*>)s*<br />","g"),"$1")).replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)/g,"$1")).replace(/\n<\/p>$/g,"</p>"),n.forEach(function(t){var n=r()(t,2);e=e.replace(n[0],n[1])}),-1!==e.indexOf("\x3c!-- wpnl --\x3e")&&(e=e.replace(/\s?<!-- wpnl -->\s?/g,"\n")),e}function c(e){var t="blockquote|ul|ol|li|dl|dt|dd|table|thead|tbody|tfoot|tr|th|td|h[1-6]|fieldset|figure",n=t+"|div|p",i=t+"|pre",r=[],u=!1,o=!1;return e?(-1===e.indexOf("<script")&&-1===e.indexOf("<style")||(e=e.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/g,function(e){return r.push(e),"<wp-preserve>"})),-1!==e.indexOf("<pre")&&(u=!0,e=e.replace(/<pre[^>]*>[\s\S]+?<\/pre>/g,function(e){return(e=(e=e.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-line-break>")).replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-line-break>")).replace(/\r?\n/g,"<wp-line-break>")})),-1!==e.indexOf("[caption")&&(o=!0,e=e.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(e){return e.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})),-1!==(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(RegExp("\\s*</("+n+")>\\s*","g"),"</$1>\n")).replace(RegExp("\\s*<((?:"+n+")(?: [^>]*)?)>","g"),"\n<$1>")).replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>")).replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n")).replace(/\s*<p>/gi,"")).replace(/\s*<\/p>\s*/gi,"\n\n")).replace(/\n[\s\u00a0]+\n/g,"\n\n")).replace(/(\s*)<br ?\/?>\s*/gi,function(e,t){return t&&-1!==t.indexOf("\n")?"\n\n":"\n"})).replace(/\s*<div/g,"\n<div")).replace(/<\/div>\s*/g,"</div>\n")).replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n")).replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption")).replace(RegExp("\\s*<((?:"+i+")(?: [^>]*)?)\\s*>","g"),"\n<$1>")).replace(RegExp("\\s*</("+i+")>\\s*","g"),"</$1>\n")).replace(/<((li|dt|dd)[^>]*)>/g," \t<$1>")).indexOf("<option")&&(e=(e=e.replace(/\s*<option/g,"\n<option")).replace(/\s*<\/select>/g,"\n</select>")),-1!==e.indexOf("<hr")&&(e=e.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")),-1!==e.indexOf("<object")&&(e=e.replace(/<object[\s\S]+?<\/object>/g,function(e){return e.replace(/[\r\n]+/g,"")})),e=(e=(e=(e=e.replace(/<\/p#>/g,"</p>\n")).replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1")).replace(/^\s+/,"")).replace(/[\s\u00a0]+$/,""),u&&(e=e.replace(/<wp-line-break>/g,"\n")),o&&(e=e.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),r.length&&(e=e.replace(/<wp-preserve>/g,function(){return r.shift()})),e):""}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t,n){var i=n(150);e.exports=function(e,t){var n=[],r=!0,u=!1,o=void 0;try{for(var s,a=i(e);!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){u=!0,o=e}finally{try{r||null==a.return||a.return()}finally{if(u)throw o}}return n}},function(e,t,n){e.exports=n(151)},function(e,t,n){n(152),n(171),e.exports=n(173)},function(e,t,n){n(153);for(var i=n(6),r=n(10),u=n(18),o=n(8)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),a=0;s.length>a;a++){var l=s[a],c=i[l],d=c&&c.prototype;d&&!d[o]&&r(d,o,l),u[l]=u.Array}},function(e,t,n){"use strict";var i=n(154),r=n(155),u=n(18),o=n(32);e.exports=n(64)(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return e&&e.length>n?r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]]):(this._t=void 0,r(1))},"values"),u.Arguments=u.Array,i("keys"),i("values"),i("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var i=n(63);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t,n){var i=n(158);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){e.exports=!n(20)&&!n(36)(function(){return 7!=Object.defineProperty(n(67)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(35);e.exports=function(e,t){if(!i(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!i(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){e.exports=n(10)},function(e,t,n){"use strict";var i=n(163),r=n(68),u=n(73),o={};n(10)(o,n(8)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=i(o,{next:r(1,n)}),u(e,t+" Iterator")}},function(e,t,n){var i=n(19),r=n(164),u=n(72),o=n(38)("IE_PROTO"),s=function(){},a=function(){var e,t=n(67)("iframe"),i=u.length;for(t.style.display="none",n(169).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),a=e.F;i--;)delete a.prototype[u[i]];return a()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=i(e),n=new s,s.prototype=null,n[o]=e):n=a(),void 0===t?n:r(n,t)}},function(e,t,n){var i=n(34),r=n(19),u=n(69);e.exports=n(20)?Object.defineProperties:function(e,t){r(e);for(var n,o=u(t),s=o.length,a=0;s>a;)i.f(e,n=o[a++],t[n]);return e}},function(e,t,n){var i=n(21),r=n(32),u=n(166)(!1),o=n(38)("IE_PROTO");e.exports=function(e,t){var n,s=r(e),a=0,l=[];for(n in s)n!=o&&i(s,n)&&l.push(n);for(;t.length>a;)i(s,n=t[a++])&&(~u(l,n)||l.push(n));return l}},function(e,t,n){var i=n(32),r=n(167),u=n(168);e.exports=function(e){return function(t,n,o){var s,a=i(t),l=r(a.length),c=u(o,l);if(e&&n!=n){for(;l>c;)if((s=a[c++])!=s)return!0}else for(;l>c;c++)if((e||c in a)&&a[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var i=n(37),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},function(e,t,n){var i=n(37),r=Math.max,u=Math.min;e.exports=function(e,t){return 0>(e=i(e))?r(e+t,0):u(e,t)}},function(e,t,n){var i=n(6).document;e.exports=i&&i.documentElement},function(e,t,n){var i=n(21),r=n(74),u=n(38)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),i(e,u)?e[u]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){"use strict";var i=n(172)(!0);n(64)(String,"String",function(e){this._t=e+"",this._i=0},function(){var e,t=this._t,n=this._i;return t.length>n?(e=i(t,n),this._i+=e.length,{value:e,done:!1}):{value:void 0,done:!0}})},function(e,t,n){var i=n(37),r=n(33);e.exports=function(e){return function(t,n){var u,o,s=r(t)+"",a=i(n),l=s.length;return 0>a||a>=l?e?"":void 0:55296>(u=s.charCodeAt(a))||u>56319||a+1===l||56320>(o=s.charCodeAt(a+1))||o>57343?e?s.charAt(a):u:e?s.slice(a,a+2):o-56320+(u-55296<<10)+65536}}},function(e,t,n){var i=n(19),r=n(174);e.exports=n(7).getIterator=function(e){var t=r(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return i(t.call(e))}},function(e,t,n){var i=n(175),r=n(8)("iterator"),u=n(18);e.exports=n(7).getIteratorMethod=function(e){if(null!=e)return e[r]||e["@@iterator"]||u[i(e)]}},function(e,t,n){var i=n(63),r=n(8)("toStringTag"),u="Arguments"==i(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),r))?n:u?i(t):"Object"==(o=i(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){for(var i=n(178),r=n(82),u=n(13),o=n(2),s=n(3),a=n(42),l=n(1),c=l("iterator"),d=l("toStringTag"),f=a.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},g=r(p),h=0;g.length>h;h++){var y,m=g[h],b=p[m],v=o[m],D=v&&v.prototype;if(D&&(D[c]||s(D,c,f),D[d]||s(D,d,m),a[m]=f,b))for(y in i)D[y]||u(D,y,i[y],!0)}},function(e,t,n){"use strict";var i=n(179),r=n(180),u=n(42),o=n(23);e.exports=n(182)(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return e&&e.length>n?r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]]):(this._t=void 0,r(1))},"values"),u.Arguments=u.Array,i("keys"),i("values"),i("entries")},function(e,t,n){var i=n(1)("unscopables"),r=Array.prototype;null==r[i]&&n(3)(r,i,{}),e.exports=function(e){r[i][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var i=n(80);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var i=n(76),r=n(183),u=n(13),o=n(3),s=n(42),a=n(185),l=n(85),c=n(192),d=n(1)("iterator"),f=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,g,h,y,m){a(n,t,g);var b,v,D,w=function(e){if(!f&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",F="values"==h,E=!1,x=e.prototype,C=x[d]||x["@@iterator"]||h&&x[h],A=C||w(h),j=h?F?w("entries"):A:void 0,_="Array"==t&&x.entries||C;if(_&&(D=c(_.call(new e)))!==Object.prototype&&D.next&&(l(D,k,!0),i||"function"==typeof D[d]||o(D,d,p)),F&&C&&"values"!==C.name&&(E=!0,A=function(){return C.call(this)}),i&&!m||!f&&!E&&x[d]||o(x,d,A),s[t]=A,s[k]=p,h)if(b={values:F?A:w("values"),keys:y?A:w("keys"),entries:j},m)for(v in b)v in x||u(x,v,b[v]);else r(r.P+r.F*(f||E),t,b);return b}},function(e,t,n){var i=n(2),r=n(39),u=n(3),o=n(13),s=n(81),a=function(e,t,n){var l,c,d,f,p=e&a.F,g=e&a.G,h=e&a.P,y=e&a.B,m=g?i:e&a.S?i[t]||(i[t]={}):(i[t]||{}).prototype,b=g?r:r[t]||(r[t]={}),v=b.prototype||(b.prototype={});for(l in g&&(n=t),n)d=((c=!p&&m&&void 0!==m[l])?m:n)[l],f=y&&c?s(d,i):h&&"function"==typeof d?s(Function.call,d):d,m&&o(m,l,d,e&a.U),b[l]!=d&&u(b,l,f),h&&v[l]!=d&&(v[l]=d)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,e.exports=a},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var i=n(186),r=n(41),u=n(85),o={};n(3)(o,n(1)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=i(o,{next:r(1,n)}),u(e,t+" Iterator")}},function(e,t,n){var i=n(12),r=n(187),u=n(45),o=n(44)("IE_PROTO"),s=function(){},a=function(){var e,t=n(78)("iframe"),i=u.length;for(t.style.display="none",n(191).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),a=e.F;i--;)delete a.prototype[u[i]];return a()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=i(e),n=new s,s.prototype=null,n[o]=e):n=a(),void 0===t?n:r(n,t)}},function(e,t,n){var i=n(11),r=n(12),u=n(82);e.exports=n(4)?Object.defineProperties:function(e,t){r(e);for(var n,o=u(t),s=o.length,a=0;s>a;)i.f(e,n=o[a++],t[n]);return e}},function(e,t,n){var i=n(23),r=n(189),u=n(190);e.exports=function(e){return function(t,n,o){var s,a=i(t),l=r(a.length),c=u(o,l);if(e&&n!=n){for(;l>c;)if((s=a[c++])!=s)return!0}else for(;l>c;c++)if((e||c in a)&&a[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var i=n(84),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},function(e,t,n){var i=n(84),r=Math.max,u=Math.min;e.exports=function(e,t){return 0>(e=i(e))?r(e+t,0):u(e,t)}},function(e,t,n){var i=n(2).document;e.exports=i&&i.documentElement},function(e,t,n){var i=n(14),r=n(193),u=n(44)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),i(e,u)?e[u]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){var i=n(43);e.exports=function(e){return Object(i(e))}},function(e,t,n){n(46)("split",2,function(e,t,i){"use strict";var r=n(86),u=i,o=[].push;if("".split(/.?/).length){var s=void 0===/()??/.exec("")[1];i=function(e,t){var n=this+"";if(void 0===e&&0===t)return[];if(!r(e))return u.call(n,e,t);var i,a,l,c,d,f=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),g=0,h=void 0===t?4294967295:t>>>0,y=RegExp(e.source,p+"g");for(s||(i=RegExp("^"+y.source+"$(?!\\s)",p));(a=y.exec(n))&&((l=a.index+a[0].length)<=g||(f.push(n.slice(g,a.index)),!s&&a.length>1&&a[0].replace(i,function(){for(d=1;arguments.length-2>d;d++)void 0===arguments[d]&&(a[d]=void 0)}),a.length>1&&n.length>a.index&&o.apply(f,a.slice(1)),c=a[0].length,g=l,h>f.length));)y.lastIndex===a.index&&y.lastIndex++;return g===n.length?!c&&y.test("")||f.push(""):f.push(n.slice(g)),f.length>h?f.slice(0,h):f}}return[function(n,r){var u=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,u,r):i.call(u+"",n,r)},i]})},function(e,t,n){n(46)("replace",2,function(e,t,n){return[function(i,r){"use strict";var u=e(this),o=null==i?void 0:i[t];return void 0!==o?o.call(i,u,r):n.call(u+"",i,r)},n]})},function(e,t,n){n(197),e.exports=n(7).Object.keys},function(e,t,n){var i=n(74),r=n(69);n(198)("keys",function(){return function(e){return r(i(e))}})},function(e,t,n){var i=n(66),r=n(7),u=n(36);e.exports=function(e,t){var n=(r.Object||{})[e]||Object[e],o={};o[e]=t(n),i(i.S+i.F*u(function(){n(1)}),"Object",o)}},function(e,t,n){n(46)("match",1,function(e,t,n){return[function(n){"use strict";var i=e(this),r=null==n?void 0:n[t];return void 0!==r?r.call(n,i):RegExp(n)[t](i+"")},n]})},function(e,t,n){var i=n(2),r=n(201),u=n(11).f,o=n(205).f,s=n(86),a=n(206),l=i.RegExp,c=l,d=l.prototype,f=/a/g,p=/a/g,g=new l(f)!==f;if(n(4)&&(!g||n(22)(function(){return p[n(1)("match")]=!1,l(f)!=f||l(p)==p||"/a/i"!=l(f,"i")}))){l=function(e,t){var n=this instanceof l,i=s(e),u=void 0===t;return!n&&i&&e.constructor===l&&u?e:r(g?new c(i&&!u?e.source:e,t):c((i=e instanceof l)?e.source:e,i&&u?a.call(e):t),n?this:d,l)};for(var h=function(e){e in l||u(l,e,{configurable:!0,get:function(){return c[e]},set:function(t){c[e]=t}})},y=o(c),m=0;y.length>m;)h(y[m++]);d.constructor=l,l.prototype=d,n(13)(i,"RegExp",l)}n(207)("RegExp")},function(e,t,n){var i=n(9),r=n(202).set;e.exports=function(e,t,n){var u,o=t.constructor;return o!==n&&"function"==typeof o&&(u=o.prototype)!==n.prototype&&i(u)&&r&&r(e,u),e}},function(e,t,n){var i=n(9),r=n(12),u=function(e,t){if(r(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{(i=n(81)(Function.call,n(203).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return u(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:u}},function(e,t,n){var i=n(204),r=n(41),u=n(23),o=n(79),s=n(14),a=n(77),l=Object.getOwnPropertyDescriptor;t.f=n(4)?l:function(e,t){if(e=u(e),t=o(t,!0),a)try{return l(e,t)}catch(e){}if(s(e,t))return r(!i.f.call(e,t),e[t])}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var i=n(83),r=n(45).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return i(e,r)}},function(e,t,n){"use strict";var i=n(12);e.exports=function(){var e=i(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var i=n(2),r=n(11),u=n(4),o=n(1)("species");e.exports=function(e){var t=i[e];u&&t&&!t[o]&&r.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t){e.exports=function(e){return e}},,,,,,,,,,,,,function(e,t,n){var i=n(222),r=n(208)(function(e,t){return null==e?{}:i(e,t)});e.exports=r},function(e,t,n){var i=n(223),r=n(90);e.exports=function(e,t){return i(e,t,function(t,n){return r(e,n)})}},function(e,t,n){var i=n(48),r=n(224),u=n(25);e.exports=function(e,t,n){for(var o=-1,s=t.length,a={};++o<s;){var l=t[o],c=i(e,l);n(c,l)&&r(a,u(l,e),c)}return a}},function(e,t,n){var i=n(225),r=n(25),u=n(91),o=n(24),s=n(15);e.exports=function(e,t,n,a){if(!o(e))return e;for(var l=-1,c=(t=r(t,e)).length,d=c-1,f=e;null!=f&&++l<c;){var p=s(t[l]),g=n;if(l!=d){var h=f[p];void 0===(g=a?a(h,p,f):void 0)&&(g=o(h)?h:u(t[l+1])?[]:{})}i(f,p,g),f=f[p]}return e}},function(e,t,n){var i=n(226),r=n(89),u=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var o=e[t];u.call(e,t)&&r(o,n)&&(void 0!==n||t in e)||i(e,t,n)}},function(e,t,n){var i=n(227);e.exports=function(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var i=n(228),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var i=n(261),r=n(102);e.exports=function(e,t){return null!=e&&r(e,t,i)}},function(e,t,n){"use strict";e.exports=function(e){return function(t){var n=-1,i=t&&t.children;if(!i)throw Error("Missing children in `parent` for `visitor`");for(;++n in i;)e(i[n],n,t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=h(e);return t=t||!1,0!==n.length&&(!1===t?n:n.slice(0,t))};var i=g(n(236)),r=g(n(94)),u=g(n(93)),o=g(n(52)),s=g(n(237)),a=g(n(95)),l=g(n(238)),c=g(n(239)),d=g(n(240)),f=g(n(269)),p=g(n(241));function g(e){return e&&e.__esModule?e:{default:e}}var h=function(e){if(""===(e=(0,i.default)([o.default,s.default,a.default,l.default,c.default,d.default,f.default])(e)))return[];var t=e.split(/\s/g);return t=(0,r.default)(t,function(e){return(0,p.default)(e)}),(0,u.default)(t,function(e){return""!==e.trim()})}},function(e,t,n){var i=n(272),r=n(273),u=n(144);e.exports=function(e,t,n){return t=r(t),void 0===n?(n=t,t=0):n=r(n),e=u(e),i(e,t,n)}},function(e,t,n){"use strict";var i=n(230);function r(e){e.position||(e.position={})}e.exports=i(function(e,t,n){var i=n.children;e.position&&(0!==t||n.position&&n.position.start||(r(n),n.position.start=e.position.start),t!==i.length-1||n.position&&n.position.end||(r(n),n.position.end=e.position.end))})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.get("content").match(/<a(?:[^>]+)?>/gi),n={total:null===t?0:t.length,internalTotal:0,internalDofollow:0,internalNofollow:0,externalTotal:0,externalDofollow:0,externalNofollow:0,otherTotal:0,otherDofollow:0,otherNofollow:0,anchors:t};return null===t?n:(t.forEach(function(e){var t=r.default.getLinkType(e,rankMath.parentDomain),i=r.default.checkNofollow(e,t);n[t+"Total"]++,n[t+i]++}),n)};var i,r=(i=n(313))&&i.__esModule?i:{default:i}},,function(e,t,n){var i=n(264)();e.exports=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/<!--[\s\S]*?-->/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/&nbsp;|&#160;/gi," ").replace(/\s{2,}/g," ").replace(/\s\./g,".").replace(/^\s+|\s+$/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/&\S+?;/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/--|\u2014/g," ")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(i,"").replace(r,"")};var i=/^[\–\-\(\)_\[\]’“”"'.?!:;,¿¡«»‹›—×+&<>]+/,r=/[\–\-\(\)_\[\]’“”"'.?!:;,¿¡«»‹›—×+&<>]+$/},function(e,t,n){"use strict";var i=n(230);e.exports=i(function(e,t,n){var i,r=e.children;r&&0!==r.length&&"WhiteSpaceNode"===r[0].type&&(n.children.splice(t,0,r.shift()),(i=r[0])&&i.position&&e.position&&(e.position.start=i.position.start))})},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){var i,r=e.children;if(r&&0!==r.length&&"WhiteSpaceNode"===r[r.length-1].type)return n.children.splice(t+1,0,e.children.pop()),(i=r[r.length-1])&&i.position&&e.position&&(e.position.end=i.position.end),t})},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){if("children"in e&&0===e.children.length)return n.children.splice(t,1),t})},function(e,t,n){e.exports={labels:n(331),scoringStrategy:n(332)}},,,,,,,,,,,,,function(e,t,n){"use strict";var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=s(n(259)),u=s(n(339)),o=s(n(348));function s(e){return e&&e.__esModule?e:{default:e}}var a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.paper=new u.default,this.researcher=new r.default(this.paper),this.researches=t.researches,this.elemContent=t.elemContent}return i(e,[{key:"assessTitle",value:function(e){return this.paper.setTitle(e),this.run({keywordInTitle:!0,titleHasPowerWords:!0,titleHasNumber:!0,titleSentiment:!0,titleStartWithKeyword:!0})}},{key:"assessPermalink",value:function(e){return this.paper.setPermalink(e),this.run({keywordInPermalink:!0,lengthPermalink:!0})}},{key:"assessFocusKeyword",value:function(e){return this.paper.setKeyword(e.keyword),this.run(e.isPrimary?{keywordDensity:!0,keywordIn10Content:!0,keywordInContent:!0,keywordInImageAlt:!0,keywordInMetaDescription:!0,keywordInPermalink:!0,keywordInSubheadings:!0,keywordInTitle:!0,keywordNotUsed:!0,titleStartWithKeyword:!0}:{keywordDensity:!0,keywordInContent:!0,keywordInSubheadings:!0})}},{key:"assessContent",value:function(e){return this.paper.setDescription(e),this.run({contentHasShortParagraphs:!0,contentHasTOC:!0,calculateFleschReading:!0,contentHasAssets:!0,keywordDensity:!0,keywordIn10Content:!0,keywordInContent:!0,keywordInImageAlt:!0,keywordInMetaDescription:!0,keywordInSubheadings:!0,lengthContent:!0,linksHasExternals:!0,linksHasInternal:!0,linksNotAllExternals:!0})}},{key:"runAll",value:function(){var e=this,t={},n=this.researches||this.researcher.getResearches();return(0,o.default)(n,function(n,i){t[i]=e.researcher.run(i)}),t}},{key:"run",value:function(e){var t=this,n={};return(0,o.default)(e,function(e,i){var r=t.researcher.run(i);!1!==r&&(n[i]=r)}),n}},{key:"refreshContent",value:function(){if(null!==this.elemContent&&0!==this.elemContent.length){var e="undefined"!=typeof tinymce&&tinymce.activeEditor&&"content"===tinymce.activeEditor.id?tinymce.activeEditor.getContent():this.elemContent.val();this.paper.setContent(e)}}}]),e}();window.Assessor=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=B(n(260)),u=B(n(270)),o=B(n(271)),s=B(n(300)),a=B(n(301)),l=B(n(302)),c=B(n(303)),d=B(n(304)),f=B(n(305)),p=B(n(306)),g=B(n(307)),h=B(n(308)),y=B(n(309)),m=B(n(310)),b=B(n(311)),v=B(n(312)),D=B(n(321)),w=B(n(322)),k=B(n(323)),F=B(n(324)),E=B(n(325)),x=B(n(335)),C=B(n(221)),A=B(n(229)),j=B(n(336)),_=B(n(92));function B(e){return e&&e.__esModule?e:{default:e}}var O=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.setPaper(t),this.researches={contentHasShortParagraphs:new r.default,contentHasTOC:new u.default,calculateFleschReading:new o.default,contentHasAssets:new s.default,keywordDensity:new a.default,keywordIn10Content:new l.default,keywordInContent:new c.default,keywordInImageAlt:new d.default,keywordInMetaDescription:new f.default,keywordInPermalink:new p.default,keywordInSubheadings:new g.default,keywordInTitle:new h.default,keywordNotUsed:new y.default,lengthContent:new m.default,lengthPermalink:new b.default,linksHasExternals:new v.default,linksHasInternal:new D.default,linksNotAllExternals:new w.default,titleHasPowerWords:new k.default,titleHasNumber:new F.default,titleSentiment:new E.default,titleStartWithKeyword:new x.default},this.researches=(0,C.default)(this.researches,Object.keys(rankMath.assessor.researchesTests))}return i(e,[{key:"setPaper",value:function(e){this.paper=e}},{key:"getResearches",value:function(){return this.researches}},{key:"hasResearch",value:function(e){return(0,A.default)(this.getResearches(),e)}},{key:"get",value:function(e){return!(0,_.default)(e)&&!(0,j.default)(e)&&!!this.hasResearch(e)&&this.getResearches()[e]}},{key:"run",value:function(e){var t=this.get(e);return!1!==t&&!1!==t.isApplicable()&&t.run(this.paper,this)}}]),e}();t.default=O},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(262));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="contentHasShortParagraphs",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("content"))return this.announce("empty",0);var n=!(0,u.default)(e.get("content")).some(function(e){return e.wordCount>120});return this.announce(n,n?this.getScore("contentHasShortParagraphs"):0)}}]),t}();t.default=a},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e,t){return null!=e&&n.call(e,t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=[];return(0,u.default)(e).map(function(e){t.push({wordCount:(0,r.default)(e),text:e})}),(0,i.default)(t,function(e){return e.wordCount>0})};var i=o(n(93)),r=o(n(263)),u=o(n(145));function o(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,r.default)(e).length};var i,r=(i=n(231))&&i.__esModule?i:{default:i}},function(e,t,n){var i=n(265),r=n(208),u=n(266),o=n(267),s=n(0),a=n(268);e.exports=function(e){return r(function(t){var n=t.length,r=n,l=i.prototype.thru;for(e&&t.reverse();r--;){var c=t[r];if("function"!=typeof c)throw new TypeError("Expected a function");if(l&&!d&&"wrapper"==o(c))var d=new i([],!0)}for(r=d?r:n;++r<n;){var f=o(c=t[r]),p="wrapper"==f?u(c):void 0;d=p&&a(p[0])&&424==p[1]&&!p[4].length&&1==p[9]?d[o(p[0])].apply(d,p[3]):1==c.length&&a(c)?d[f]():d.thru(c)}return function(){var e=arguments,i=e[0];if(d&&1==e.length&&s(i))return d.plant(i).value();for(var r=0,u=n?t[r].apply(this,e):i;++r<n;)u=t[r].call(this,u);return u}})}},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(){return""}},function(e,t){e.exports=function(){return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/[€-¿×÷ -⯿⸀-⹿]/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="contentHasTOC",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){return""===e.get("content")?this.announce("empty",0):this.announce(rankMath.assessor.hasTOCPlugin,rankMath.assessor.hasTOCPlugin?this.getScore("contentHasTOC"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=s(n(16)),u=s(n(232)),o=n(274);function s(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=a(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="calculateFleschReading",a(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("content"))return this.announce("empty",0,[0,0,0]);o.flesch.calculate(e.get("content"));var n=this.calculateResult(o.flesch.ease),i={veryEasy:{score:6,note:"very easy"},easy:{score:5,note:"easy"},fairlyEasy:{score:5,note:"fairly easy"},okay:{score:4,note:"okay"},fairlyDifficult:{score:3,note:"fairly difficult"},difficult:{score:2,note:"difficult"},veryDifficult:{score:1,note:"very difficult"}}[n],r=Math.min(i.score,this.getScore("calculateFleschReading"));return this.announce(4<=r,r,[i.note,o.flesch.ease,n])}},{key:"calculateResult",value:function(e){return e>90?"veryEasy":(0,u.default)(e,80.01,90)?"easy":(0,u.default)(e,70.01,80)?"fairlyEasy":(0,u.default)(e,60.01,70)?"okay":(0,u.default)(e,50.01,60)?"fairlyDifficult":(0,u.default)(e,31,50)?"difficult":"veryDifficult"}}]),t}();t.default=l},function(e,t){var n=Math.max,i=Math.min;e.exports=function(e,t,r){return e>=i(t,r)&&e<n(t,r)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flesch=void 0;var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=(a(n(229)),a(n(231))),u=a(n(275)),o=a(n(296)),s=a(n(299));function a(e){return e&&e.__esModule?e:{default:e}}var l=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return i(e,[{key:"reset",value:function(){delete this.data,delete this.ease,delete this.kincaid}},{key:"calculate",value:function(e){if(this.reset(),""===e)return!1;e=(0,s.default)(e);var t=(0,r.default)(e),n=(0,u.default)(e),i=t.length;if(0===n||0===i)return!1;var a=(0,o.default)(t);this.data={sentences:n,words:i,syllables:a},this.ease=this.fleschEase(n,i,a).toFixed(2),this.kincaid=this.fleschKincaid(n,i,a).toFixed(2)}},{key:"fleschEase",value:function(e,t,n){return 206.835-t/e*1.015-n/t*84.6}},{key:"fleschKincaid",value:function(e,t,n){return t/e*.39+n/t*11.8-15.59}}]),e}();t.flesch=new l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(""===(e=(0,i.default)([u.default,o.default,s.default,a.default,l.default,c.default])(e)))return 0;var t=(new d.default).tokenizeParagraph(e).children;return(0,r.default)(t,{type:"SentenceNode"}).length};var i=f(n(236)),r=f(n(93)),u=f(n(52)),o=f(n(237)),s=f(n(95)),a=f(n(238)),l=f(n(239)),c=f(n(240)),d=f(n(276));function f(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var i=n(277),r=n(49),u=n(230),o=n(27);e.exports=a,l.prototype=i.prototype;var s=new l;function a(e,t){if(!(this instanceof a))return new a(e,t);i.apply(this,arguments)}function l(){}a.prototype=s,s.tokenizeSentencePlugins=[u(function(e,t,n){var i,u,o,s,a;if("PunctuationNode"===e.type||"SymbolNode"===e.type)if(s=(i=n.children).length,"/"===(a=r(e)))(u=i[t-1])&&"w"===h(r(u))&&(i.splice(t,1),u.children.push(e),u.position&&e.position&&(u.position.end=e.position.end));else if(g.test(a)){if(u=i[t-1],t>2&&s-1>t&&"WordNode"===u.type&&"WhiteSpaceNode"===i[t-2].type&&"WhiteSpaceNode"===i[t+1].type&&f.test(h(r(u))))return i.splice(t,1),u.children.push(e),void(u.position&&e.position&&(u.position.end=e.position.end));t===s-1||"WordNode"!==i[t+1].type||0!==t&&"WordNode"===i[t-1].type||(a=h(r(u=i[t+1])),p.test(a)?(i.splice(t,1),u.children=[e].concat(u.children),u.position&&e.position&&(u.position.start=e.position.start)):"n"===a&&s-2>t&&g.test(r(i[t+2]))&&(o=i[t+2],i.splice(t,1),i.splice(t+1,1),u.children=[e].concat(u.children,o),u.position&&(e.position&&(u.position.start=e.position.start),o.position&&(u.position.end=o.position.end))))}})].concat(s.tokenizeSentencePlugins),s.tokenizeParagraphPlugins=[o(function(e,t,n){var i,u,o=e.children,s=o[o.length-1],a=o[o.length-2];if(s&&"."===r(s)&&a&&"WordNode"===a.type&&(i=r(a),(c.test(h(i))||d.test(i))&&(a.children.push(s),o.pop(),s.position&&a.position&&(a.position.end=s.position.end),u=n.children[t+1])))return e.children=o.concat(u.children),n.children.splice(t+1,1),u.position&&e.position&&(e.position.end=u.position.end),t-1})].concat(s.tokenizeParagraphPlugins);var c=/^(inc|ltd|bbls?|cu|doz|fl|ft|gal|gr|gro|in|kt|lbs?|mi|oz|pt|qt|sq|tbsp|tsp|yds?|sec|min|hr|mon|tue|tues|wed|thu|thurs|fri|sat|sun|jan|feb|mar|apr|jun|jul|aug|sep|sept|oct|nov|dec)$/,d=/^(Mr|Mrs|Miss|Ms|Mss|Mses|Mlle|Mme|M|Messrs|Mmes|Jr|Sr|Snr|Dr|Mgr|Atty|Prof|Hon|Rev|Fr|Msgr|Sr|Br|St|Pres|Supt|Rep|Sen|Gov|Amb|Treas|Sec|Amd|Brig|Gen|Cdr|Col|Capt|Lt|Maj|Sgt|Po|Wo|Ph|Ave|Blvd|Mt|Rd|Bldgs?|Nat|Natl|Rt|Rte|Co|Pk|Sq|Dr|Pt|St|Ft|Pen|Terr|Hwy|Fwy|Pkwy|Ala|Ariz|Ark|Cal|Calif|Col|Colo|Conn|Del|Fla|Ga|Ida|Id|Ill|Ind|Ia|Kan|Kans|Ken|Ky|La|Me|Md|Mass|Mich|Minn|Miss|Mo|Mont|Neb|Nebr|Nev|Mex|Dak|Okla|Ok|Ore|Penna|Penn|Pa|Tenn|Tex|Ut|Vt|Va|Wash|Wis|Wisc|Wyo|Alta|Man|Ont|Qué|Que|Sask|Yuk|Beds|Berks|Bucks|Cambs|Ches|Corn|Cumb|Derbys|Derbs|Dev|Dor|Dur|Glos|Hants|Here|Heref|Herts|Hunts|Lancs|Leics|Lincs|Mx|Middx|Mddx|Norf|Northants|Northumb|Northd|Notts|Oxon|Rut|Shrops|Salop|Som|Staffs|Staf|Suff|Sy|Sx|Ssx|Warks|War|Warw|Westm|Wilts|Worcs|Yorks)$/,f=/^(o|ol)$/,p=/^(im|er|em|cause|twas|tis|twere|\d\ds?)$/,g=/^['\u2019]$/;function h(e){return e.toLowerCase()}},function(e,t,n){"use strict";e.exports=n(278)},function(e,t,n){"use strict";var i=n(279),r=n(106);function u(e,t){var n=t||e;if(!(this instanceof u))return new u(e,t);this.doc=n?n+"":null}e.exports=u;var o=u.prototype;function s(e){return e+="Node",function(t,n,i){return null!=t||(t=""),(n||h)(t)({type:e,value:t+""},i)}}function a(e,t,n){e.prototype[t]=function(){return this.run(t,n.apply(this,arguments))}}function l(e){return function(t,n){var i;if(!(t in this))throw Error("Illegal Invocation: Unsupported `key` for `use(key, plugins)`. Make sure `key` is a supported function");n&&(i=t+"Plugins",n="function"==typeof n?[n]:n.concat(),this[i]||(this[i]=[]),e(this,i,n))}}o.position=!0,o.tokenizeSymbol=s("Symbol"),o.tokenizeWhiteSpace=s("WhiteSpace"),o.tokenizePunctuation=s("Punctuation"),o.tokenizeSource=s("Source"),o.tokenizeText=s("Text"),o.run=function(e,t){var n=this[e+"Plugins"],i=-1;if(n)for(;n[++i];)n[i](t);return t},o.use=l(function(e,t,n){e[t]=e[t].concat(n)}),o.useFirst=l(function(e,t,n){e[t]=n.concat(e[t])}),o.parse=function(e){return this.tokenizeRoot(e||this.doc)},o.tokenize=function(e){return function(e,t){var n,i,r,u,o,s,a,l,g,h,y,m;if(null==t?t="":t instanceof String&&(t=""+t),"string"!=typeof t){if("length"in t&&(!t[0]||t[0].type))return t;throw Error("Illegal invocation: '"+t+"' is not a valid argument for 'ParseLatin'")}if(n=[],!t)return n;for(o=0,i=0,r=1,u=1,m=e.position?function(e){var t=function(){var e=D();return function(t){return t.position=new function(e){this.start=e,this.end=D()}(e),t}}();return function(e){var t=e.length,n=-1,o=-1;for(i+=t;++n<t;)"\n"===e.charAt(n)&&(o=n,r++);-1===o?u+=t:u=t-o}(e),function(){return t(v.apply(null,arguments))}}:function(){return function(){return v.apply(null,arguments)}},s=t.length,g="",l="";s>o;)a=t.charAt(o),y=p.test(a)?"WhiteSpace":f.test(a)?"Punctuation":c.test(a)?"Word":"Symbol",b(),g=a,a="",h=y,y=null,o++;return b(),n;function b(){h!==y||"Word"!==h&&"WhiteSpace"!==h&&a!==g&&!d.test(a)?(l&&e["tokenize"+h](l,m),l=a):l+=a}function v(e,t){return t?t.children.push(e):n.push(e),e}function D(){return{line:r,column:u,offset:i}}}(this,e)},a(u,"tokenizeWord",function(e,t){var n=(t||h)(""),i={type:"WordNode",children:[]};return this.tokenizeText(e,t,i),n(i)}),a(u,"tokenizeSentence",i({type:"SentenceNode",tokenizer:"tokenize"})),a(u,"tokenizeParagraph",i({type:"ParagraphNode",delimiter:r.terminalMarker,delimiterType:"PunctuationNode",tokenizer:"tokenizeSentence"})),a(u,"tokenizeRoot",i({type:"RootNode",delimiter:r.newLine,delimiterType:"WhiteSpaceNode",tokenizer:"tokenizeParagraph"})),o.use("tokenizeSentence",[n(281),n(283),n(284),n(285),n(286),n(287),n(233)]),o.use("tokenizeParagraph",[n(288),n(289),n(290),n(291),n(292),n(293),n(294),n(242),n(243),n(295),n(244),n(233)]),o.use("tokenizeRoot",[n(242),n(243),n(244),n(233)]);var c=r.word,d=r.surrogates,f=r.punctuation,p=r.whiteSpace;function g(e,t){return t&&t.children.push(e),e}function h(){return g}},function(e,t,n){"use strict";var i=n(280);e.exports=function(e){var t=e.type,n=e.tokenizer,r=e.delimiter,u=r&&i(e.delimiterType,r);return function(e){var i=this[n](e);return{type:t,children:u?u(i):i}}}},function(e,t,n){"use strict";var i=n(49);e.exports=function(e,t){return function(n){for(var r,u,o,s=[],a=n.children,l=n.type,c=a.length,d=-1,f=c-1,p=0;++d<c;)(d===f||a[d].type===e&&t.test(i(a[d])))&&(r=a[p],u=a[d],o={type:l,children:a.slice(p,d+1)},r.position&&u.position&&(o.position={start:r.position.start,end:u.position.end}),s.push(o),p=d+1);return s}}},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,u;if(("SymbolNode"===e.type||"PunctuationNode"===e.type)&&"&"===i(e)&&(u=(r=n.children)[t+1],(0===t||"WordNode"!==r[t-1].type)&&u&&"WordNode"===u.type))return r.splice(t,1),u.children.unshift(e),u.position&&e.position&&(u.position.start=e.position.start),t-1})},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,u=-1;if(!e)throw Error("Iterate requires that |this| not be "+e);if(!i.call(e,"length"))throw Error("Iterate requires that |this| has a `length`");if("function"!=typeof t)throw Error("`callback` must be a function");for(;++u<e.length;)u in e&&"number"==typeof(r=t.call(n,e[u],u,e))&&(0>r&&(u=0),u=r-1)};var i={}.hasOwnProperty},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,u,o;if(0!==t&&("SymbolNode"===e.type||"PunctuationNode"===e.type)&&"-"===i(e)&&(u=(r=n.children)[t-1],(!(o=r[t+1])||"WordNode"!==o.type)&&u&&"WordNode"===u.type))return r.splice(t,1),u.children.push(e),u.position&&e.position&&(u.position.end=e.position.end),t})},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l,c,d;if(0!==t&&("SymbolNode"===e.type||"PunctuationNode"===e.type)&&(s=(r=n.children)[t-1])&&"WordNode"===s.type){for(l=t-1,c=[],d=[];r[++l];)if("WordNode"===(u=r[l]).type)c=c.concat(d,u.children),d=[];else{if("SymbolNode"!==u.type&&"PunctuationNode"!==u.type||!o.test(i(u)))break;d.push(u)}if(0!==c.length)return 0!==d.length&&(l-=d.length),r.splice(t,l-t),s.children=s.children.concat(c),a=c[c.length-1],s.position&&a.position&&(s.position.end=a.position.end),t}});var o=u.wordSymbolInner},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,o,s,a,l,c,d,f=n.children;if(o=f[t+1],(r=f[t-1])&&"WordNode"===r.type&&("SymbolNode"===e.type||"PunctuationNode"===e.type)&&i(e)===u&&(s=i(r),c=e,l=[e],d=1,o&&"WordNode"===o.type&&(a=i(o),c=o,l=l.concat(o.children),d++),3>s.length&&(!a||3>a.length)))return r.children=r.children.concat(l),f.splice(t,d),r.position&&c.position&&(r.position.end=c.position.end),t});var u="/"},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l,c,d;if(0!==t&&"."===i(e)&&(a=(s=(u=(r=n.children)[t-1]).children)&&s.length,"WordNode"===u.type&&1!==a&&a%2!=0)){for(l=a,c=!0;s[--l];)if(d=i(s[l]),l%2==0){if(d.length>1)return;o.test(d)||(c=!1)}else if("."!==d){if(a-2>l)break;return}if(!c)return r.splice(t,1),s.push(e),u.position&&e.position&&(u.position.end=e.position.end),t}});var o=u.numerical},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){var i,r=n.children;if("WordNode"===e.type&&(i=r[t+1])&&"WordNode"===i.type)return r.splice(t+1,1),e.children=e.children.concat(i.children),i.position&&e.position&&(e.position.end=i.position.end),t})},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){for(var i,r,u=e.children,o=-1;u[++o];)if("WordNode"===u[o].type)return;if(i=n.children[t-1])return i.children=i.children.concat(u),n.children.splice(t,1),i.position&&e.position&&(i.position.end=e.position.end),t;(r=n.children[t+1])&&(r.children=u.concat(r.children),r.position&&e.position&&(r.position.start=e.position.start),n.children.splice(t,1))})},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a=e.children;if(a&&0!==a.length&&0!==t&&(u=a[1],s=n.children[t-1],("SymbolNode"===(r=a[0]).type||"PunctuationNode"===r.type)&&o.test(i(r))))return s.children.push(a.shift()),r.position&&s.position&&(s.position.end=r.position.end),u&&u.position&&e.position&&(e.position.start=u.position.start),t-1});var o=u.affixSymbol},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l=e.children;if(l&&0!==l.length&&0!==t)for(r=-1;l[++r];){if("WordNode"===(u=l[r]).type){if(!o.test(i(u)))return;return(a=(s=n.children)[t-1]).children=a.children.concat(l),s.splice(t,1),a.position&&e.position&&(a.position.end=e.position.end),t}if("SymbolNode"===u.type||"PunctuationNode"===u.type)return}});var o=u.lowerInitial},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r=e.children,u=n.children,s=u[t-1],a=r[0];if(s&&a&&"WordNode"===a.type&&o.test(i(a)))return s.children=s.children.concat(r),u.splice(t,1),s.position&&e.position&&(s.position.end=e.position.end),t});var o=u.digitStart},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,o,s,a=e.children;if(a&&a.length>1&&(r=a[a.length-1])&&"."===i(r)&&(o=a[a.length-2])&&"WordNode"===o.type&&u.test(i(o).toLowerCase())&&(o.children.push(r),a.pop(),r.position&&o.position&&(o.position.end=r.position.end),s=n.children[t+1]))return e.children=a.concat(s.children),n.children.splice(t+1,1),s.position&&e.position&&(e.position.end=s.position.end),t-1});var u=/^([0-9]{1,3}|[a-z]|al|ca|cap|cca|cent|cf|cit|con|cp|cwt|ead|etc|ff|fl|ibid|id|nem|op|pro|seq|sic|stat|tem|viz)$/},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,u,o,s,a=e.children;if(a&&0!==a.length&&0!==t)for(u=-1;a[++u];){if("WordNode"===(r=a[u]).type)return;if("SymbolNode"===r.type||"PunctuationNode"===r.type){if(","!==(o=i(r))&&";"!==o)return;return(s=n.children[t-1]).children=s.children.concat(a),s.position&&e.position&&(s.position.end=e.position.end),n.children.splice(t,1),t}}})},function(e,t,n){"use strict";var i=n(49),r=n(230),u=n(106);e.exports=r(function(e){for(var t,n,r,u,s=e.children,a=s.length,l=!1;s[--a];)if("SymbolNode"===(t=s[a]).type||"PunctuationNode"===t.type){if(o.test(i(t)))if(l){if("."===i(t))if(r=s[a+1],(n=s[a-1])&&"WordNode"===n.type){if(u=s[a+2],r&&u&&"WhiteSpaceNode"===r.type&&"."===i(u))continue;s.splice(a,1),n.children.push(t),t.position&&n.position&&(n.position.end=t.position.end),a--}else r&&"WordNode"===r.type&&(s.splice(a,1),r.children.unshift(t),t.position&&r.position&&(r.position.start=t.position.start))}else l=!0}else"WordNode"===t.type&&(l=!0)});var o=u.terminalMarker},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l,c,d,f;if("SentenceNode"===e.type)for(s=(r=e.children).length-1,u=0;++u<s;)if("WhiteSpaceNode"===(f=r[u]).type&&o.test(i(f)))return e.children=r.slice(0,u),d={type:"SentenceNode",children:r.slice(u+1)},a=r[u-1],l=r[u+1],n.children.splice(t+1,0,f,d),e.position&&a.position&&l.position&&(c=e.position.end,e.position.end=a.position.end,d.position={start:l.position.start,end:c}),t+1});var o=u.newLineMulti},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=(0,i.default)(e,function(e){return function(e){return 3>=(e=e.toLowerCase()).length?1:null===(e=e.replace(/(?:[^laeiouy]es|ed|lle|[^laeiouy]e)$/,"").replace(/^y/,"").match(/[aeiouy]{1,2}/g))?0:e.length}(e)});return(0,r.default)(t)};var i=u(n(94)),r=u(n(297));function u(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){var i=n(298),r=n(104);e.exports=function(e){return e&&e.length?i(e,r):0}},function(e,t){e.exports=function(e,t){for(var n,i=-1,r=e.length;++i<r;){var u=t(e[i]);void 0!==u&&(n=void 0===n?u:n+u)}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return"."===(e=e.replace(/\b[0-9]+\b/g,""))?"":e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(5)),u=o(n(16));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="contentHasAssets",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),i(t,[{key:"run",value:function(e,t){var n=(0,r.default)("#rank_math_post_thumbnail");if(""===e.get("content"))return n.length?this.announce(1,1):this.announce("empty",0);var i=this.match(e.get("content"),"<img(?:[^>]+)?>"),u=this.match(e.get("content"),"\\[gallery( [^\\]]+?)?\\]"),o=this.match(e.get("content"),"<iframe(?:[^>]+)?>"),s=this.match(e.get("content"),"\\[video( [^\\]]+?)?\\]"),a=this.match(e.get("content"),/(http:\/\/|https:\/\/|)(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);i=null===i?0:i,i=null===u?i:i.concat(u),i=0===n.length?i:i.concat(n),o=null===o?0:o,o=null===s?o:o.concat(s),o=null===a?o:o.concat(a);var l=Math.min(this.calculateScore(i,o),this.getScore("contentHasAssets"));return this.announce(l>0,l)}},{key:"calculateScore",value:function(e,t){var n=0;return 1===e.length?n+=1:2===e.length?n+=2:3===e.length?n+=4:e.length>3&&(n+=6),1===t.length?n+=1:t.length>1&&(n+=2),Math.min(6,n)}},{key:"match",value:function(e,t){var n=RegExp(t,"ig"),i=e.match(n);return null===i?[]:i}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(232));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordDensity",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getContentWords();if(!1===n||0===n.length)return this.announce("empty",0,[0,0]);if(!n||!e.get("keywordCombinations"))return this.announce(!1,0,[0,0]);var i=RegExp(e.get("keywordCombinations").join("|"),"gi"),r=(e.get("content").match(i)||[]).length,u=(r/n.length*100).toFixed(2),o=Math.min(this.calculateScore(u),this.getScore("keywordDensity"));return this.announce(o>0,o,[u,r])}},{key:"calculateScore",value:function(e){return.5>e||e>2.5?0:(0,u.default)(e,.5,.75)?2:(0,u.default)(e,.76,1)?4:6}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordIn10Content",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getContentWords();if(!1===n||0===n.length||""===e.getLower("keyword"))return this.announce("empty",0);n.length>400&&(n=n.slice(0,Math.floor(.1*n.length))),n=n.join(" ");var i=(0,u.default)(n,e.getLower("keyword"));return this.announce(i,i?this.getScore("keywordIn10Content"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInContent",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("content")||""===e.get("keyword"))return this.announce("empty",0);var n=e.get("keywordCombinations"),i=e.getLower("content"),r=!1;return n.some(function(e){return r=(0,u.default)(i,e)}),this.announce(r,r?this.getScore("keywordInContent"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=u(n(16));function u(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}u(n(31));var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInImageAlt",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("keyword")||""===e.get("content")&&""===e.get("thumbnailAlt"))return this.announce("empty",0);var n=e.getLower("keyword"),i=RegExp("<img[^>]*alt=['\"][^'\"]*"+n.replace(/ /g,".*")+"[^'\"]*['\"]","gi"),r=null!==e.getLower("content").match(i)||n===e.getLower("thumbnailAlt");return r||(i=/\[gallery( [^\]]+?)?\]/gi,r=null!==e.getLower("content").match(i)&&"gallery"),this.announce(r,r?this.getScore("keywordInImageAlt"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInMetaDescription",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.getLower("description"))return this.announce("empty",0);var n=""!==e.getLower("keyword")&&(0,u.default)(e.getLower("description"),e.getLower("keyword"));return this.announce(n,n?this.getScore("keywordInMetaDescription"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInPermalink",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.getLower("permalink"))return this.announce("empty",0);var n=e.getLower("permalink").replace(/[-_]/gi,"-"),i=""!==e.getLower("keyword")&&(0,u.default)(n,e.get("keywordPermalink"));return this.announce(i,i?this.getScore("keywordInPermalink"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInSubheadings",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){if(""===e.get("keyword")||""===e.get("content"))return this.announce("empty",0);var n=RegExp("<h[2-6][^>]*>.*"+e.getLower("keyword")+".*</h[2-6]>","gi"),i=null!==e.getLower("content").match(n);return this.announce(i,i?this.getScore("keywordInSubheadings"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInTitle",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getLower("title");if(""===n)return this.announce("empty",0);var i=""!==e.getLower("keyword")&&(0,u.default)(n,e.getLower("keyword"));return this.announce(i,i?this.getScore("keywordInTitle"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(5)),u=o(n(16));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordNotUsed",i.keywordsChecked={},s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),i(t,[{key:"run",value:function(e,t){var n=this,i=e.getLower("keyword").trim();return""===i?this.announce("empty",0):void 0!==this.keywordsChecked[i]?this.announce(this.keywordsChecked[i],0):(this.keywordsChecked[i]=!0,r.default.ajax({url:rankMath.ajaxurl,type:"GET",data:{keyword:i,action:"rank_math_is_keyword_new",security:rankMath.security,objectID:rankMath.objectID,objectType:rankMath.objectType}}).done(function(e){n.keywordsChecked[i]=e.isNew;var t=n.announce(e.isNew,n.getScore("keywordNotUsed")),u=(0,r.default)(".seo-check-"+n.prefix);u.removeClass("test-ok test-fail test-empty test-looking"),u.addClass("test-"+t.status),u.find("span:eq(0)").html(t.message),n.changeKeywordInLink(i)}),this.announce("looking",0))}},{key:"changeKeywordInLink",value:function(e){var t=(0,r.default)(".focus-keyword-link");t.length&&t.attr("href",t.attr("href").replace("%focus_keyword%",e).replace("%post_type%",rankMath.objectType).replace("%yaxonomy%",rankMath.objectType))}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(232));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="lengthContent",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getContentWords();if(!1===n||0===n.length)return this.announce("empty",0);var i=n.length,r=Math.min(this.calculateScore(i),this.getScore("lengthContent"));return this.announce(r>0,r,[i])}},{key:"calculateScore",value:function(e){return 2500>e?(0,u.default)(e,2e3,2500)?5:(0,u.default)(e,1500,2e3)?4:(0,u.default)(e,1e3,1500)?3:(0,u.default)(e,600,1e3)?2:0:8}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="lengthPermalink",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){var n=e.get("permalink"),i=n.length,r=r=Math.min(this.calculateScore(i),this.getScore("lengthPermalink"));return""===n?this.announce("empty",0):this.announce(r>0,r,[i])}},{key:"calculateScore",value:function(e){return e>75?0:4}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(234));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="linksHasExternals",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=(0,u.default)(e);if(null===n.anchors)return this.announce("empty",0);var i=n.externalTotal>0;return this.announce(i,i?this.getScore("linksHasExternals"):0,[n.externalTotal])}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=u(n(314)),r=u(n(31));function u(e){return e&&e.__esModule?e:{default:e}}var o=/href=(["'])([^"']+)\1/i;function s(e){var t=o.exec(e);return null===t?"":t[2]}function a(e){return i.default.parse(e).protocol}function l(e){return!!e&&("http:"===e||"https:"===e)}function c(e){return"#"===e[0]}function d(e,t){if(!(0,r.default)(e,"//")&&"/"===e[0])return!0;if("#"===e[0])return!1;var n=i.default.parse(e,!1,!0);return!n.host||(0,r.default)(n.host,t)}t.default={checkNofollow:function(e,t){return e=e.toLowerCase(),"internal"!==t&&rankMath.noFollowExternalLinks&&!(0,r.default)(e,"rel=")?(n=s(e),u=!0,o=i.default.parse(n,!1,!0),(rankMath.noFollowDomains.length?(rankMath.noFollowDomains.forEach(function(e){(0,r.default)(o.host,e)&&(u=!1)}),u):rankMath.noFollowExcludeDomains.length&&(u=!1,rankMath.noFollowExcludeDomains.forEach(function(e){(0,r.default)(o.host,e)&&(u=!0)}),u))?"Dofollow":"Nofollow"):(0,r.default)(e,"<a")&&(0,r.default)(e,"rel=")&&(0,r.default)(e,"nofollow")?"Nofollow":"Dofollow";var n,u,o},getFromAnchorTag:s,getLinkType:function(e,t){var n=s(e),i=a(n);return i&&!l(i)||c(n)?"other":d(n,t)?"internal":"external"},getProtocol:a,isHttpScheme:l,isInternalLink:d,isRelativeFragmentURL:c}},function(e,t,n){"use strict";var i=n(315),r=n(317);function u(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=v,t.resolve=function(e,t){return v(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?v(e,!1,!0).resolveObject(t):t},t.format=function(e){return r.isString(e)&&(e=v(e)),e instanceof u?e.format():u.prototype.format.call(e)},t.Url=u;var o=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),d=["%","/","?",";","#"].concat(c),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,g=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(318);function v(e,t,n){if(e&&r.isObject(e)&&e instanceof u)return e;var i=new u;return i.parse(e,t,n),i}u.prototype.parse=function(e,t,n){if(!r.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var u=e.indexOf("?"),s=-1!==u&&u<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var v=e=l.join(s);if(v=v.trim(),!n&&1===e.split("#").length){var D=a.exec(v);if(D)return this.path=v,this.href=v,this.pathname=D[1],D[2]?(this.search=D[2],this.query=t?b.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=o.exec(v);if(w){var k=(w=w[0]).toLowerCase();this.protocol=k,v=v.substr(w.length)}if(n||w||v.match(/^\/\/[^@\/]+@[^@\/]+/)){var F="//"===v.substr(0,2);!F||w&&y[w]||(v=v.substr(2),this.slashes=!0)}if(!y[w]&&(F||w&&!m[w])){for(var E,x,C=-1,A=0;f.length>A;A++)-1===(j=v.indexOf(f[A]))||-1!==C&&j>=C||(C=j);for(-1!==(x=-1===C?v.lastIndexOf("@"):v.lastIndexOf("@",C))&&(E=v.slice(0,x),v=v.slice(x+1),this.auth=decodeURIComponent(E)),C=-1,A=0;d.length>A;A++){var j;-1===(j=v.indexOf(d[A]))||-1!==C&&j>=C||(C=j)}-1===C&&(C=v.length),this.host=v.slice(0,C),v=v.slice(C),this.parseHost(),this.hostname=this.hostname||"";var _="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!_)for(var B=this.hostname.split(/\./),O=(A=0,B.length);O>A;A++){var z=B[A];if(z&&!z.match(p)){for(var P="",S=0,M=z.length;M>S;S++)z.charCodeAt(S)>127?P+="x":P+=z[S];if(!P.match(p)){var T=B.slice(0,A),q=B.slice(A+1),L=z.match(g);L&&(T.push(L[1]),q.unshift(L[2])),q.length&&(v="/"+q.join(".")+v),this.hostname=T.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),_||(this.hostname=i.toASCII(this.hostname));var I=this.port?":"+this.port:"";this.host=(this.hostname||"")+I,this.href+=this.host,_&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==v[0]&&(v="/"+v))}if(!h[k])for(A=0,O=c.length;O>A;A++){var N=c[A];if(-1!==v.indexOf(N)){var $=encodeURIComponent(N);$===N&&($=escape(N)),v=v.split(N).join($)}}var R=v.indexOf("#");-1!==R&&(this.hash=v.substr(R),v=v.slice(0,R));var W=v.indexOf("?");return-1!==W?(this.search=v.substr(W),this.query=v.substr(W+1),t&&(this.query=b.parse(this.query)),v=v.slice(0,W)):t&&(this.search="",this.query={}),v&&(this.pathname=v),m[k]&&this.hostname&&!this.pathname&&(this.pathname="/"),(this.pathname||this.search)&&(this.path=(I=this.pathname||"")+(this.search||"")),this.href=this.format(),this},u.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",i=this.hash||"",u=!1,o="";this.host?u=e+this.host:this.hostname&&(u=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(u+=":"+this.port)),this.query&&r.isObject(this.query)&&Object.keys(this.query).length&&(o=b.stringify(this.query));var s=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||m[t])&&!1!==u?(u="//"+(u||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):u||(u=""),i&&"#"!==i.charAt(0)&&(i="#"+i),s&&"?"!==s.charAt(0)&&(s="?"+s),t+u+(n=n.replace(/[?#]/g,function(e){return encodeURIComponent(e)}))+(s=s.replace("#","%23"))+i},u.prototype.resolve=function(e){return this.resolveObject(v(e,!1,!0)).format()},u.prototype.resolveObject=function(e){if(r.isString(e)){var t=new u;t.parse(e,!1,!0),e=t}for(var n=new u,i=Object.keys(this),o=0;i.length>o;o++){var s=i[o];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var a=Object.keys(e),l=0;a.length>l;l++){var c=a[l];"protocol"!==c&&(n[c]=e[c])}return m[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!m[e.protocol]){for(var d=Object.keys(e),f=0;d.length>f;f++){var p=d[f];n[p]=e[p]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||y[e.protocol])n.pathname=e.pathname;else{for(var g=(e.pathname||"").split("/");g.length&&!(e.host=g.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==g[0]&&g.unshift(""),2>g.length&&g.unshift(""),n.pathname=g.join("/")}return n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,(n.pathname||n.search)&&(n.path=(n.pathname||"")+(n.search||"")),n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var h=n.pathname&&"/"===n.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),v=b||h||n.host&&e.pathname,D=v,w=n.pathname&&n.pathname.split("/")||[],k=(g=e.pathname&&e.pathname.split("/")||[],n.protocol&&!m[n.protocol]);if(k&&(n.hostname="",n.port=null,n.host&&(""===w[0]?w[0]=n.host:w.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===g[0]?g[0]=e.host:g.unshift(e.host)),e.host=null),v=v&&(""===g[0]||""===w[0])),b)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,w=g;else if(g.length)w||(w=[]),w.pop(),w=w.concat(g),n.search=e.search,n.query=e.query;else if(!r.isNullOrUndefined(e.search))return k&&(n.hostname=n.host=w.shift(),(A=!(!n.host||0>=n.host.indexOf("@"))&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift())),n.search=e.search,n.query=e.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!w.length)return n.pathname=null,n.path=n.search?"/"+n.search:null,n.href=n.format(),n;for(var F=w.slice(-1)[0],E=(n.host||e.host||w.length>1)&&("."===F||".."===F)||""===F,x=0,C=w.length;C>=0;C--)"."===(F=w[C])?w.splice(C,1):".."===F?(w.splice(C,1),x++):x&&(w.splice(C,1),x--);if(!v&&!D)for(;x--;x)w.unshift("..");!v||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),E&&"/"!==w.join("/").substr(-1)&&w.push("");var A,j=""===w[0]||w[0]&&"/"===w[0].charAt(0);return k&&(n.hostname=n.host=j?"":w.length?w.shift():"",(A=!(!n.host||0>=n.host.indexOf("@"))&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift())),(v=v||n.host&&w.length)&&!j&&w.unshift(""),w.length?n.pathname=w.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},u.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){!function(e,t){var n;!function(t){var i=2147483647,r=36,u=1,o=26,s=38,a=700,l=72,c=128,d="-",f=/^xn--/,p=/[^\x20-\x7E]/,g=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},y=r-u,m=Math.floor,b=String.fromCharCode;function v(e){throw new RangeError(h[e])}function D(e,t){for(var n=e.length,i=[];n--;)i[n]=t(e[n]);return i}function w(e,t){var n=e.split("@"),i="";return n.length>1&&(i=n[0]+"@",e=n[1]),i+D((e=e.replace(g,".")).split("."),t).join(".")}function k(e){for(var t,n,i=[],r=0,u=e.length;u>r;)55296>(t=e.charCodeAt(r++))||t>56319||r>=u?i.push(t):56320==(64512&(n=e.charCodeAt(r++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--);return i}function F(e){return D(e,function(e){var t="";return e>65535&&(t+=b((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+b(e)}).join("")}function E(e,t){return e+22+75*(26>e)-((0!=t)<<5)}function x(e,t,n){var i=0;for(e=n?m(e/a):e>>1,e+=m(e/t);e>y*o>>1;i+=r)e=m(e/y);return m(i+(y+1)*e/(e+s))}function C(e){var t,n,s,a,f,p,g,h,y,b,D,w=[],k=e.length,E=0,C=c,A=l;for(0>(n=e.lastIndexOf(d))&&(n=0),s=0;n>s;++s)128>e.charCodeAt(s)||v("not-basic"),w.push(e.charCodeAt(s));for(a=n>0?n+1:0;k>a;){for(f=E,p=1,g=r;k>a||v("invalid-input"),D=e.charCodeAt(a++),r>(h=10>D-48?D-22:26>D-65?D-65:26>D-97?D-97:r)&&h<=m((i-E)/p)||v("overflow"),E+=h*p,(y=g>A?A+o>g?g-A:o:u)<=h;g+=r)p>m(i/(b=r-y))&&v("overflow"),p*=b;A=x(E-f,t=w.length+1,0==f),m(E/t)>i-C&&v("overflow"),C+=m(E/t),E%=t,w.splice(E++,0,C)}return F(w)}function A(e){var t,n,s,a,f,p,g,h,y,D,w,F,C,A,j,_=[];for(F=(e=k(e)).length,t=c,n=0,f=l,p=0;F>p;++p)128>(w=e[p])&&_.push(b(w));for(s=a=_.length,a&&_.push(d);F>s;){for(g=i,p=0;F>p;++p)(w=e[p])>=t&&g>w&&(g=w);for(g-t>m((i-n)/(C=s+1))&&v("overflow"),n+=(g-t)*C,t=g,p=0;F>p;++p)if(t>(w=e[p])&&++n>i&&v("overflow"),w==t){for(h=n,y=r;(D=y>f?f+o>y?y-f:o:u)<=h;y+=r)_.push(b(E(D+(j=h-D)%(A=r-D),0))),h=m(j/A);_.push(b(E(h,0))),f=x(n,C,s==a),n=0,++s}++n,++t}return _.join("")}void 0===(n={version:"1.4.1",ucs2:{decode:k,encode:F},decode:C,encode:A,toASCII:function(e){return w(e,function(e){return p.test(e)?"xn--"+A(e):e})},toUnicode:function(e){return w(e,function(e){return f.test(e)?C(e.slice(4).toLowerCase()):e})}})||(e.exports=n)}()}(n(316)(e),n(143))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(319),t.encode=t.stringify=n(320)},function(e,t,n){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,u){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var a=1e3;u&&"number"==typeof u.maxKeys&&(a=u.maxKeys);var l=e.length;a>0&&l>a&&(l=a);for(var c=0;l>c;++c){var d,f,p,g,h=e[c].replace(s,"%20"),y=h.indexOf(n);0>y?(d=h,f=""):(d=h.substr(0,y),f=h.substr(y+1)),p=decodeURIComponent(d),g=decodeURIComponent(f),i(o,p)?r(o[p])?o[p].push(g):o[p]=[o[p],g]:o[p]=g}return o};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,s){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?u(o(e),function(o){var s=encodeURIComponent(i(o))+n;return r(e[o])?u(e[o],function(e){return s+encodeURIComponent(i(e))}).join(t):s+encodeURIComponent(i(e[o]))}).join(t):s?encodeURIComponent(i(s))+n+encodeURIComponent(i(e)):""};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function u(e,t){if(e.map)return e.map(t);for(var n=[],i=0;e.length>i;i++)n.push(t(e[i],i));return n}var o=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(234));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="linksHasInternal",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=(0,u.default)(e);if(null===n.anchors)return this.announce("empty",0);var i=n.internalTotal>0;return this.announce(i,i?this.getScore("linksHasInternal"):0,[n.internalTotal])}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(234));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="linksNotAllExternals",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=(0,u.default)(e),i=n.externalDofollow>0;return null===n.anchors?this.announce("empty",0):this.announce(i,i?this.getScore("linksNotAllExternals"):0,[n.externalTotal])}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleHasPowerWords",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(!rankMath.assessor.mtsConnected)return this.announce(!1,0);var n=e.getLower("title"),i=rankMath.assessor.powerWords.filter(function(e){return(0,u.default)(n,e)}).length,r=i>0;return""===n?this.announce("empty",0):this.announce(r,r?this.getScore("titleHasPowerWords"):0,[i])}},{key:"isApplicable",value:function(){return"en"===rankMath.locale}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleHasNumber",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){if(""===e.get("title"))return this.announce("empty",0);var n=/\d+/.test(e.get("title"));return this.announce(n,n?this.getScore("titleHasNumber"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(326));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=a(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleSentiment",a(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n;if(!rankMath.assessor.mtsConnected)return this.announce(!1,0);if(""===e.getLower("title"))return this.announce("empty",0);var i=new u.default,r={extras:(n={"a+":5,abound:2,abounds:2,abundance:4,abundant:4,accessable:3,accessible:3,acclaim:2,acclaimed:2,acclamation:2,accolade:3,accolades:3,accommodative:2,accomodative:2,accomplish:5,accomplished:5,accomplishment:5,accomplishments:5,accurate:3,accurately:3,achievable:3,achievement:3,achievements:3,achievible:3,acumen:1,adaptable:1,adaptive:1,adequate:1,adjustable:2,admirable:2,admirably:2,admiration:2,admire:2,admirer:2,admiring:2,admiringly:2,adorable:3,adore:3,adored:3,adorer:3,adoring:3,adoringly:3,adroit:2,adroitly:2,adulate:2,adulation:1,adulatory:1,advanced:3,advantage:3,advantageous:2,advantageously:2,advantages:2,adventuresome:2,adventurous:2,advocate:2,advocated:2,advocates:2,affability:2,affable:2,affably:2,affectation:3,affection:3,affectionate:3,affinity:3,affirm:2,affirmation:2,affirmative:2,affluence:2,affluent:3,afford:2,affordable:2,affordably:2,afordable:2,agile:3,agilely:2,agility:2,agreeable:3,agreeableness:3,agreeably:2,"all-around":2,alluring:3,alluringly:3,altruistic:3,altruistically:3,amaze:4,amazed:4,amazement:4,amazes:4,amazing:4,amazingly:4,ambitious:4,ambitiously:4,ameliorate:4,amenable:3,amenity:3,amiability:3,amiabily:3,amiable:3,amicability:3,amicable:3,amicably:3,amity:2,ample:2,amply:2,amuse:2,amusing:2,amusingly:2,angel:5,angelic:5,apotheosis:1,appeal:4,appealing:4,applaud:4,appreciable:4,appreciate:4,appreciated:4,appreciates:4,appreciative:4,appreciatively:4,appropriate:4,approval:4,approve:4,ardent:1,ardently:1,ardor:1,articulate:1,aspiration:3,aspirations:3,aspire:3,assurance:3,assurances:3,assure:3,assuredly:3,assuring:3,astonish:4,astonished:4,astonishing:4,astonishingly:4,astonishment:4,astound:4,astounded:4,astounding:4,astoundingly:4,astutely:1,attentive:1,attraction:1,attractive:1,attractively:1,attune:1,audible:1,audibly:1,auspicious:1,authentic:1,authoritative:1,autonomous:1,available:1,aver:1,avid:1,avidly:1,award:1,awarded:1,awards:1,awe:5,awed:1,awesome:5,awesomely:4,awesomeness:4,awestruck:4,awsome:4,backbone:3,balanced:3,bargain:3,beauteous:3,beautiful:3,beautifullly:3,beautifully:3,beautify:3,beauty:3,beckon:2,beckoned:1,beckoning:1,beckons:1,believable:3,believeable:3,beloved:3,benefactor:2,beneficent:2,beneficial:2,beneficially:2,beneficiary:2,benefit:3,benefits:3,benevolence:1,benevolent:1,benifits:2,best:5,"best-known":5,"best-performing":5,"best-selling":5,better:5,"better-known":5,"better-than-expected":4,beutifully:5,blameless:4,bless:3,blessing:3,bliss:4,blissful:4,blissfully:4,blithe:1,blockbuster:5,bloom:3,blossom:4,bolster:1,bonny:1,bonus:4,bonuses:4,boom:2,booming:3,boost:4,boundless:4,bountiful:3,brainiest:3,brainy:3,"brand-new":5,brave:3,bravery:3,bravo:2,breakthrough:5,breakthroughs:5,breathlessness:5,breathtaking:5,breathtakingly:5,breeze:4,bright:4,brighten:4,brighter:4,brightest:4,brilliance:4,brilliances:4,brilliant:4,brilliantly:4,brisk:3,brotherly:4,bullish:1,buoyant:1,cajole:1,calm:3,calming:3,calmness:3,capability:4,capable:4,capably:4,captivate:4,captivating:4,carefree:1,cashback:1,cashbacks:1,catchy:1,celebrate:4,celebrated:4,celebration:4,celebratory:4,champ:3,champion:3,charisma:4,charismatic:4,charitable:3,charm:5,charming:5,charmingly:5,chaste:1,cheaper:1,cheapest:1,cheer:4,cheerful:4,cheery:4,cherish:4,cherished:4,cherub:1,chic:1,chivalrous:2,chivalry:2,civility:2,civilize:2,clarity:4,classic:1,classy:1,clean:3,cleaner:3,cleanest:3,cleanliness:3,cleanly:3,clear:3,"clear-cut":3,cleared:3,clearer:3,clearly:3,clears:3,clever:3,cleverly:2,cohere:2,coherence:2,coherent:2,cohesive:2,colorful:3,comely:1,comfort:4,comfortable:4,comfortably:4,comforting:4,comfy:4,commend:1,commendable:1,commendably:1,commitment:3,commodious:1,compact:3,compactly:2,compassion:3,compassionate:4,compatible:3,competitive:3,complement:3,complementary:3,complemented:3,complements:3,compliant:2,compliment:5,complimentary:5,comprehensive:5,conciliate:1,conciliatory:1,concise:2,confidence:3,confident:4,congenial:1,congratulate:5,congratulation:5,congratulations:5,congratulatory:5,conscientious:2,considerate:4,consistent:4,consistently:4,constructive:4,consummate:1,contentment:1,continuity:4,contrasty:1,contribution:2,convenience:3,convenient:3,conveniently:3,convience:3,convienient:3,convient:3,convincing:3,convincingly:3,cool:5,coolest:5,cooperative:3,cooperatively:3,cornerstone:3,correct:5,correctly:5,"cost-effective":3,"cost-saving":3,"counter-attack":2,"counter-attacks":2,courage:3,courageous:3,courageously:3,courageousness:3,courteous:3,courtly:2,covenant:2,cozy:2,creative:2,credence:2,credible:2,crisp:1,crisper:1,cure:4,"cure-all":1,cushy:1,cute:5,cuteness:5,danke:1,danken:1,daring:5,daringly:5,darling:5,dashing:5,dauntless:1,dawn:1,dazzle:5,dazzled:5,dazzling:5,"dead-cheap":1,"dead-on":1,decency:5,decent:5,decisive:5,decisiveness:5,dedicated:5,defeat:1,defeated:1,defeating:1,defeats:1,defender:1,deference:1,deft:1,deginified:1,delectable:1,delicacy:4,delicate:4,delicious:4,delight:4,delighted:4,delightful:4,delightfully:4,delightfulness:4,dependable:2,dependably:2,deservedly:5,deserving:5,desirable:5,desiring:5,desirous:5,destiny:5,detachable:5,devout:5,dexterous:5,dexterously:5,dextrous:5,dignified:5,dignify:5,dignity:5,diligence:3,diligent:3,diligently:3,diplomatic:3,"dirt-cheap":3,distinction:3,distinctive:3,distinguished:3,diversified:3,divine:5,divinely:5,dominate:5,dominated:5,dominates:5,dote:1,dotingly:1,doubtless:1,dreamland:1,dumbfounded:1,dumbfounding:1,"dummy-proof":1,durable:3,dynamic:3,eager:5,eagerly:5,eagerness:5,earnest:5,earnestly:5,earnestness:5,ease:4,eased:4,eases:4,easier:4,easiest:4,easiness:4,easing:4,easy:4,"easy-to-use":5,easygoing:5,ebullience:1,ebullient:1,ebulliently:1,ecenomical:1,economical:5,ecstasies:5,ecstasy:5,ecstatic:5,ecstatically:5,edify:1,educated:5,effective:5,effectively:5,effectiveness:5,effectual:5,efficacious:5,efficient:5,efficiently:5,effortless:5,effortlessly:5,effusion:5,effusive:5,effusively:5,effusiveness:5,elan:2,elate:2,elated:2,elatedly:2,elation:3,electrify:5,elegance:5,elegant:5,elegantly:5,elevate:5,elite:5,eloquence:3,eloquent:3,eloquently:3,embolden:3,eminence:3,eminent:3,empathize:5,empathy:5,empower:5,empowerment:5,enchant:5,enchanted:5,enchanting:5,enchantingly:5,encourage:5,encouragement:5,encouraging:5,encouragingly:5,endear:3,endearing:3,endorse:3,endorsed:3,endorsement:3,endorses:3,endorsing:2,energetic:5,energize:5,"energy-efficient":5,"energy-saving":5,engaging:2,engrossing:2,enhance:5,enhanced:5,enhancement:5,enhances:5,enjoy:5,enjoyable:5,enjoyably:5,enjoyed:5,enjoying:5,enjoyment:5,enjoys:5,enlighten:5,enlightenment:5,enliven:1,ennoble:2,enough:3,enrapt:2,enrapture:1,enraptured:1,enrich:5,enrichment:3,enterprising:3,entertain:3,entertaining:5,entertains:5,enthral:2,enthrall:1,enthralled:1,enthuse:1,enthusiasm:4,enthusiast:4,enthusiastic:4,enthusiastically:3,entice:3,enticed:4,enticing:3,enticingly:4,entranced:3,entrancing:3,entrust:4,enviable:3,enviably:3,envious:3,enviously:3,enviousness:1,envy:1,equitable:1,ergonomical:5,"err-free":1,erudite:1,ethical:4,eulogize:2,euphoria:3,euphoric:3,euphorically:3,evaluative:4,evenly:5,eventful:4,everlasting:5,evocative:2,exalt:1,exaltation:2,exalted:3,exaltedly:3,exalting:3,exaltingly:3,examplar:1,examplary:1,excallent:1,exceed:5,exceeded:5,exceeding:5,exceedingly:5,exceeds:5,excel:5,exceled:5,excelent:5,excellant:5,excelled:5,excellence:5,excellency:5,excellent:5,excellently:5,excels:5,exceptional:5,exceptionally:5,excite:5,excited:5,excitedly:5,excitedness:5,excitement:5,excites:5,exciting:5,excitingly:5,exellent:5,exemplar:3,exemplary:3,exhilarate:3,exhilarating:3,exhilaratingly:3,exhilaration:3,exonerate:3,expansive:3,expeditiously:3,expertly:4,exquisite:1,exquisitely:1,extol:1,extoll:1,extraordinarily:5,extraordinary:5,exuberance:3,exuberant:3,exuberantly:3,exult:1,exultant:1,exultation:1,exultingly:1,"eye-catch":5,"eye-catching":5,eyecatch:5,eyecatching:5,fabulous:1,fabulously:4,facilitate:4,fair:5,fairly:5,fairness:5,faith:4,faithful:4,faithfully:4,faithfulness:4,fame:4,famed:4,famous:4,famously:4,fancier:5,fancinating:5,fancy:5,fanfare:3,fans:3,fantastic:3,fantastically:3,fascinate:5,fascinating:5,fascinatingly:5,fascination:5,fashionable:5,fashionably:5,fast:2,"fast-growing":2,"fast-paced":2,faster:5,fastest:5,"fastest-growing":5,faultless:3,fav:4,fave:4,favor:4,favorable:4,favored:4,favorite:4,favorited:4,favour:4,fearless:5,fearlessly:5,feasible:3,feasibly:3,feat:2,"feature-rich":2,fecilitous:2,feisty:2,felicitate:2,felicitous:2,felicity:3,fertile:3,fervent:3,fervently:3,fervid:3,fervidly:3,fervor:3,festive:3,fidelity:1,fiery:1,fine:5,"fine-looking":5,finely:5,finer:5,finest:5,firmer:4,"first-class":4,"first-in-class":4,"first-rate":5,flashy:5,flatter:4,flattering:4,flatteringly:4,flawless:5,flawlessly:5,flexibility:3,flexible:3,flourish:1,flourishing:1,fluent:2,flutter:2,fond:4,fondly:4,fondness:4,foolproof:4,foremost:3,foresight:5,formidable:4,fortitude:5,fortuitous:5,fortuitously:3,fortunate:5,fortunately:5,fortune:5,fragrant:4,free:5,freed:5,freedom:5,freedoms:5,fresh:5,fresher:5,freshest:5,friendliness:4,friendly:4,frolic:3,frugal:3,fruitful:4,ftw:4,fulfillment:4,fun:5,futurestic:4,futuristic:4,gaiety:1,gaily:1,gain:4,gained:4,gainful:4,gainfully:4,gaining:4,gains:4,gallant:2,gallantly:2,galore:4,geekier:4,geeky:3,gem:4,gems:4,generosity:4,generous:5,generously:5,genial:1,genius:4,gentle:4,gentlest:4,genuine:5,gifted:5,glad:4,gladden:1,gladly:4,gladness:4,glamorous:5,glee:1,gleeful:1,gleefully:1,glimmer:1,glimmering:1,glisten:1,glistening:1,glitter:1,glitz:1,glorify:5,glorious:5,gloriously:5,glory:5,glow:4,glowing:4,glowingly:4,"god-given":3,"god-send":3,godlike:4,godsend:4,gold:3,golden:3,good:5,goodly:5,goodness:4,goodwill:3,goood:5,gooood:5,gorgeous:4,gorgeously:4,grace:4,graceful:4,gracefully:4,gracious:4,graciously:4,graciousness:4,grand:5,grandeur:3,grateful:3,gratefully:3,gratification:3,gratified:3,gratifies:3,gratify:3,gratifying:3,gratifyingly:3,gratitude:5,great:5,greatest:5,greatness:5,grin:3,groundbreaking:3,guarantee:3,guidance:3,guiltless:3,gumption:1,gush:1,gusto:1,gutsy:1,hail:1,halcyon:1,hale:1,hallmark:1,hallmarks:1,hallowed:1,handier:1,handily:1,"hands-down":4,handsome:5,handsomely:5,handy:5,happier:5,happily:5,happiness:5,happy:5,"hard-working":4,hardier:4,hardy:4,harmless:3,harmonious:1,harmoniously:1,harmonize:1,harmony:4,headway:1,heal:5,healthful:5,healthy:4,hearten:2,heartening:2,heartfelt:3,heartily:3,heartwarming:4,heaven:5,heavenly:5,helped:4,helpful:4,helping:4,hero:4,heroic:4,heroically:4,heroine:2,heroize:2,heros:4,"high-quality":5,"high-spirited":3,hilarious:3,holy:3,homage:2,honest:3,honesty:4,honor:3,honorable:3,honored:3,honoring:3,hooray:4,hopeful:4,hospitable:4,hot:2,hotcake:2,hotcakes:3,hottest:4,hug:3,humane:4,humble:3,humility:4,humor:3,humorous:3,humorously:3,humour:3,humourous:3,ideal:4,idealize:3,ideally:3,idol:2,idolize:2,idolized:2,idyllic:1,illuminate:5,illuminati:1,illuminating:4,illumine:2,illustrious:3,ilu:1,imaculate:5,imaginative:5,immaculate:5,immaculately:5,immense:3,impartial:3,impartiality:3,impartially:3,impassioned:3,impeccable:3,impeccably:3,important:4,impress:4,impressed:4,impresses:4,impressive:4,impressively:4,impressiveness:4,improve:4,improved:3,improvement:4,improvements:5,improves:5,improving:3,incredible:4,incredibly:5,indebted:4,individualized:1,indulgence:1,indulgent:1,industrious:1,inestimable:1,inestimably:1,inexpensive:4,infallibility:1,infallible:1,infallibly:1,influential:1,ingenious:2,ingeniously:3,ingenuity:3,ingenuous:3,ingenuously:2,innocuous:3,innovation:4,innovative:4,inpressed:2,insightful:4,insightfully:3,inspiration:4,inspirational:5,inspire:5,inspiring:5,instantly:3,instructive:3,instrumental:3,integral:3,integrated:3,intelligence:3,intelligent:3,intelligible:2,interesting:4,interests:3,intimacy:2,intimate:2,intricate:3,intrigue:2,intriguing:2,intriguingly:2,intuitive:3,invaluable:5,invaluablely:5,inventive:3,invigorate:3,invigorating:2,invincibility:3,invincible:5,inviolable:3,inviolate:3,invulnerable:4,irreplaceable:3,irreproachable:3,irresistible:3,irresistibly:3,"issue-free":3,"jaw-droping":5,"jaw-dropping":5,jollify:3,jolly:3,jovial:2,joy:4,joyful:5,joyfully:5,joyous:4,joyously:4,jubilant:4,jubilantly:3,jubilate:3,jubilation:3,jubiliant:3,judicious:3,justly:3,keen:3,keenly:4,keenness:4,"kid-friendly":3,kindliness:5,kindly:5,kindness:5,knowledgeable:4,kudos:3,"large-capacity":3,laud:3,laudable:4,laudably:4,lavish:5,lavishly:5,"law-abiding":4,lawful:4,lawfully:4,lead:3,leading:3,leads:1,lean:1,led:1,legendary:5,leverage:3,levity:2,liberate:4,liberation:4,liberty:4,lifesaver:5,"light-hearted":3,lighter:3,likable:4,like:5,liked:4,likes:4,liking:5,lionhearted:4,lively:5,logical:4,"long-lasting":5,lovable:4,lovably:5,love:5,loved:5,loveliness:4,lovely:5,lover:4,loves:4,loving:5,"low-cost":2,"low-price":2,"low-priced":2,"low-risk":3,"lower-priced":3,loyal:4,loyalty:4,lucid:2,lucidly:2,luck:4,luckier:4,luckiest:4,luckiness:4,lucky:5,lucrative:3,luminous:3,lush:2,luster:2,lustrous:3,luxuriant:3,luxuriate:3,luxurious:3,luxuriously:4,luxury:5,lyrical:2,magic:3,magical:4,magnanimous:3,magnanimously:3,magnificence:2,magnificent:3,magnificently:3,majestic:3,majesty:3,manageable:2,maneuverable:2,marvel:4,marveled:4,marvelled:4,marvellous:4,marvelous:4,marvelously:5,marvelousness:3,marvels:3,master:5,masterful:5,masterfully:5,masterpiece:5,masterpieces:5,masters:5,mastery:4,matchless:4,mature:3,maturely:2,maturity:3,meaningful:4,memorable:5,merciful:5,mercifully:5,mercy:5,merit:4,meritorious:4,merrily:3,merriment:2,merriness:2,merry:4,mesmerize:3,mesmerized:3,mesmerizes:3,mesmerizing:3,mesmerizingly:3,meticulous:3,meticulously:3,mightily:4,mighty:2,"mind-blowing":5,miracle:5,miracles:5,miraculous:5,miraculously:5,miraculousness:1,modern:3,modest:3,modesty:3,momentous:3,monumental:3,monumentally:3,morality:3,motivated:3,"multi-purpose":3,navigable:3,neat:5,neatest:5,neatly:5,nice:5,nicely:5,nicer:5,nicest:5,nifty:4,nimble:4,noble:4,nobly:4,noiseless:4,"non-violence":2,"non-violent":2,notably:4,noteworthy:4,nourish:4,nourishing:4,nourishment:4,novelty:3,nurturing:3,oasis:3,obsession:3,obsessions:3,obtainable:3,openly:1,openness:1,optimal:3,optimism:3,optimistic:3,opulent:1,orderly:4,originality:4,outdo:4,outdone:4,outperform:4,outperformed:4,outperforming:4,outperforms:4,outshine:5,outshone:5,outsmart:5,outstanding:3,outstandingly:3,outstrip:4,outwit:4,ovation:2,overjoyed:2,overtake:3,overtaken:3,overtakes:4,overtaking:4,overtook:3,overture:3,"pain-free":4,painless:4,painlessly:5,palatial:2,pamper:3,pampered:3,pamperedly:3,pamperedness:2,pampers:2,panoramic:3,paradise:4,paramount:2,pardon:2,passion:2,passionate:2,passionately:2,patience:3,patient:3,patiently:2,patriot:2,patriotic:2,peace:5,peaceable:5,peaceful:5,peacefully:5,peacekeepers:5,peach:3,peerless:3,pep:2,pepped:2,pepping:2,peppy:2,peps:2,perfect:5,perfection:5,perfectly:5,permissible:2,perseverance:2,persevere:1,personages:1,personalized:3,phenomenal:4,phenomenally:4,picturesque:4,piety:3,pinnacle:4,playful:4,playfully:4,pleasant:4,pleasantly:3,pleased:4,pleases:4,pleasing:3,pleasingly:4,pleasurable:4,pleasurably:3,pleasure:3,plentiful:4,pluses:2,plush:1,plusses:1,poetic:1,poeticize:1,poignant:1,poise:1,poised:2,polished:2,polite:4,politeness:4,popular:5,portable:4,posh:3,positive:4,positively:5,positives:5,powerful:5,powerfully:5,praise:5,praiseworthy:5,praising:4,"pre-eminent":2,precious:2,precise:2,precisely:2,preeminent:2,prefer:2,preferable:2,preferably:2,prefered:2,preferes:2,preferring:2,prefers:2,premier:2,prestige:4,prestigious:2,prettily:2,pretty:5,priceless:5,pride:4,principled:2,privilege:2,privileged:2,prize:2,proactive:2,"problem-free":2,"problem-solver":2,prodigious:2,prodigiously:2,prodigy:2,productive:2,productively:2,proficient:2,proficiently:2,profound:3,profoundly:3,profuse:2,profusion:2,progress:2,progressive:2,prolific:2,prominence:2,prominent:2,promise:2,promised:2,promises:2,promising:2,promoter:2,prompt:2,promptly:2,proper:2,properly:2,propitious:2,propitiously:2,pros:2,prosper:2,prosperity:3,prosperous:3,prospros:3,protect:3,protection:4,protective:4,proud:2,proven:2,proves:2,providence:2,proving:2,prowess:2,prudence:2,prudent:2,prudently:2,punctual:2,pure:5,purify:5,purposeful:2,quaint:2,qualified:2,qualify:4,quicker:5,quiet:5,quieter:2,radiance:2,radiant:2,rapid:2,rapport:2,rapt:1,rapture:1,raptureous:1,raptureously:1,rapturous:1,rapturously:1,rational:1,"razor-sharp":2,reachable:1,readable:2,readily:2,ready:5,reaffirm:1,reaffirmation:2,realistic:2,realizable:2,reasonable:2,reasonably:2,reasoned:2,reassurance:2,reassure:2,receptive:2,reclaim:2,recomend:4,recommend:4,recommendation:4,recommendations:4,recommended:5,reconcile:3,reconciliation:3,"record-setting":4,recover:4,recovery:4,rectification:4,rectify:3,rectifying:3,redeem:3,redeeming:3,redemption:1,refine:1,refined:3,refinement:3,reform:4,reformed:4,reforming:3,reforms:3,refresh:3,refreshed:3,refreshing:3,refund:3,refunded:2,regal:2,regally:2,regard:2,rejoice:2,rejoicing:3,rejoicingly:3,rejuvenate:3,rejuvenated:3,rejuvenating:3,relaxed:4,relent:4,reliable:4,reliably:4,relief:4,relish:4,remarkable:3,remarkably:3,remedy:3,remission:3,remunerate:3,renaissance:3,renewed:2,renown:2,renowned:2,replaceable:3,reputable:3,reputation:4,resilient:4,resolute:4,resound:4,resounding:2,resourceful:2,resourcefulness:3,respect:3,respectable:3,respectful:2,respectfully:2,respite:2,resplendent:2,responsibly:2,responsive:4,restful:4,restored:2,restructure:2,restructured:2,restructuring:2,retractable:2,revel:2,revelation:2,revere:2,reverence:2,reverent:2,reverently:2,revitalize:2,revival:2,revive:4,revives:2,revolutionary:2,revolutionize:2,revolutionized:2,revolutionizes:2,reward:5,rewarding:5,rewardingly:5,rich:4,richer:4,richly:4,richness:4,right:4,righten:3,righteous:3,righteously:2,righteousness:2,rightful:2,rightfully:2,rightly:2,rightness:2,"risk-free":2,robust:2,"rock-star":4,"rock-stars":4,rockstar:2,rockstars:2,romantic:2,romantically:2,romanticize:2,roomier:2,roomy:2,rosy:2,safe:4,safely:4,sagacity:2,sagely:2,saint:2,saintliness:2,saintly:2,salutary:2,salute:2,sane:3,satisfactorily:3,satisfactory:3,satisfied:3,satisfies:3,satisfy:3,satisfying:3,satisified:3,saver:4,savings:4,savior:4,savvy:4,scenic:4,seamless:4,seasoned:2,secure:5,securely:2,selective:3,"self-determination":3,"self-respect":5,"self-satisfaction":5,"self-sufficiency":5,"self-sufficient":5,sensation:5,sensational:4,sensationally:4,sensations:4,sensible:4,sensibly:4,sensitive:2,serene:2,serenity:2,sexy:4,sharp:2,sharper:2,sharpest:2,shimmering:2,shimmeringly:2,shine:2,shiny:2,significant:2,silent:3,simpler:3,simplest:2,simplified:2,simplifies:2,simplify:2,simplifying:2,sincere:5,sincerely:2,sincerity:2,skill:4,skilled:2,skillful:2,skillfully:2,slammin:2,sleek:2,slick:2,smart:3,smarter:3,smartest:2,smartly:2,smile:2,smiles:2,smiling:2,smilingly:2,smitten:2,smooth:2,smoother:2,smoothes:2,smoothest:2,smoothly:2,snappy:2,snazzy:2,sociable:2,soft:4,softer:4,solace:2,solicitous:2,solicitously:2,solid:2,solidarity:2,soothe:2,soothingly:2,sophisticated:2,soulful:3,soundly:3,soundness:2,spacious:2,sparkle:2,sparkling:2,spectacular:5,spectacularly:5,speedily:2,speedy:2,spellbind:2,spellbinding:2,spellbindingly:2,spellbound:2,spirited:2,spiritual:2,splendid:2,splendidly:2,splendor:2,spontaneous:2,sporty:1,spotless:2,sprightly:1,stability:2,stabilize:2,stable:4,stainless:2,standout:2,"state-of-the-art":2,stately:2,statuesque:2,staunch:2,staunchly:2,staunchness:2,steadfast:2,steadfastly:2,steadfastness:2,steadiest:3,steadiness:3,steady:5,stellar:5,stellarly:2,stimulate:2,stimulates:2,stimulating:2,stimulative:2,stirringly:1,straighten:1,straightforward:3,streamlined:3,striking:2,strikingly:2,striving:2,strong:4,stronger:4,strongest:4,stunned:4,stunning:5,stunningly:5,stupendous:1,stupendously:1,sturdier:1,sturdy:1,stylish:4,stylishly:4,stylized:4,suave:2,suavely:1,sublime:2,subsidize:1,subsidized:1,subsidizes:1,subsidizing:1,substantive:1,succeed:3,succeeded:4,succeeding:3,succeeds:3,succes:1,success:4,successes:2,successful:2,successfully:4,suffice:2,sufficed:3,suffices:2,sufficient:3,sufficiently:3,suitable:4,sumptuous:1,sumptuously:1,sumptuousness:1,super:5,superb:5,superbly:5,superior:2,superiority:4,supple:2,support:3,supported:3,supporter:3,supporting:3,supportive:3,supports:3,supremacy:4,supreme:4,supremely:4,supurb:4,supurbly:3,surmount:2,surpass:3,surreal:4,survival:2,survivor:2,sustainability:2,sustainable:2,swank:1,swankier:1,swankiest:1,swanky:1,sweeping:2,sweet:4,sweeten:3,sweetheart:5,sweetly:4,sweetness:5,swift:3,swiftness:3,talent:2,talented:2,talents:2,tantalize:1,tantalizing:1,tantalizingly:1,tempt:1,tempting:3,temptingly:3,tenacious:2,tenaciously:2,tenacity:2,tender:4,tenderly:4,terrific:4,terrifically:4,thank:4,thankful:4,thinner:3,thoughtful:2,thoughtfully:2,thoughtfulness:2,thrift:2,thrifty:2,thrill:2,thrilled:2,thrilling:2,thrillingly:2,thrills:2,thrive:2,thriving:2,"thumb-up":2,"thumbs-up":2,tickle:2,tidy:2,"time-honored":1,timely:2,tingle:2,titillate:1,titillating:1,titillatingly:1,togetherness:2,tolerable:3,"toll-free":1,top:4,"top-notch":5,"top-quality":5,topnotch:5,tops:5,tough:2,tougher:3,toughest:4,traction:1,tranquil:1,tranquility:1,transparent:2,treasure:4,tremendously:5,trendy:5,triumph:5,triumphal:5,triumphant:1,triumphantly:1,trivially:1,trophy:1,"trouble-free":2,trump:5,trumpet:1,trust:5,trusted:2,trusting:3,trustingly:2,trustworthiness:2,trustworthy:2,trusty:4,truthful:2,truthfully:2,truthfulness:2,twinkly:2,"ultra-crisp":5,unabashed:2,unabashedly:2,unaffected:1,unassailable:2,unbeatable:2,unbiased:2,unbound:2,uncomplicated:3,unconditional:2,undamaged:3,undaunted:2,understandable:2,undisputable:2,undisputably:2,undisputed:3,unencumbered:1,unequivocal:1,unequivocally:1,unfazed:2,unfettered:1,unforgettable:3,unity:2,unlimited:3,unmatched:2,unparalleled:1,unquestionable:1,unquestionably:1,unreal:3,unrestricted:2,unrivaled:2,unselfish:2,unwavering:3,upbeat:2,upgradable:2,upgradeable:2,upgraded:2,upheld:2,uphold:2,uplift:2,uplifting:2,upliftingly:2,upliftment:2,upscale:2,usable:4,useable:2,useful:5,"user-friendly":2,"user-replaceable":2,valiant:1,valiantly:2,valor:2,valuable:5,variety:2,venerate:2,verifiable:1,veritable:1,versatile:2,versatility:1,vibrant:4,vibrantly:4,victorious:5,victory:5,viewable:2,vigilance:2,vigilant:3,virtue:2,virtuous:2,virtuously:2,visionary:2,vivacious:2,vivid:2,vouch:3,vouchsafe:2,warm:4,warmer:2,warmhearted:2,warmly:4,warmth:5,wealthy:5,welcome:2,well:5,"well-backlit":2,"well-balanced":2,"well-behaved":5,"well-being":2,"well-bred":2,"well-connected":2,"well-educated":2,"well-established":1,"well-informed":1,"well-intentioned":2,"well-known":3,"well-made":5,"well-managed":2,"well-mannered":2,"well-positioned":2,"well-received":2,"well-regarded":2,"well-rounded":2,"well-run":2,"well-wishers":2,wellbeing:2,whoa:2,wholeheartedly:2,wholesome:2,whooa:2,whoooa:2,wieldy:1,willing:2,willingly:2,willingness:3,win:5,windfall:2,winnable:2,winner:2,winners:2,winning:2,wins:2,wisdom:2,wise:2,wisely:2,witty:4,won:5,wonder:2,wonderful:2,wonderfully:2,wonderous:2,wonderously:2,wonders:2,wondrous:2,woo:3,work:2,workable:2,worked:3,works:4,"world-famous":2,worth:2,"worth-while":2,worthiness:2,worthwhile:2,worthy:4,wow:5,wowed:2,wowing:2,wows:2,yay:4,youthful:5,zeal:2,zenith:2,zest:4,zippy:2,"2-faced":-1,"2-faces":-1,abnormal:-5,abolish:-4,abominable:-3,abominably:-3,abominate:-2,abomination:-3,abort:-2,aborted:-3,aborts:-3,abrade:-2,abrasive:-4,abrupt:-2,abruptly:-2,abscond:-4},s(n,"aborted",-5),s(n,"absence",-5),s(n,"absent-minded",-5),s(n,"absentee",-5),s(n,"absurd",-4),s(n,"absurdity",-3),s(n,"absurdly",-3),s(n,"absurdness",-3),s(n,"abuse",-4),s(n,"abused",-4),s(n,"abuses",-4),s(n,"abusive",-3),s(n,"abysmal",-2),s(n,"abysmally",-1),s(n,"abyss",-1),s(n,"accidental",-3),s(n,"accost",-1),s(n,"accursed",-1),s(n,"accusation",-5),s(n,"accusations",-1),s(n,"accuse",-3),s(n,"accuses",-3),s(n,"accusing",-2),s(n,"accusingly",-4),s(n,"acerbate",-1),s(n,"acerbic",-1),s(n,"acerbically",-1),s(n,"ache",-5),s(n,"ached",-1),s(n,"aches",-2),s(n,"achey",-1),s(n,"aching",-5),s(n,"acrid",-1),s(n,"acridly",-1),s(n,"acridness",-1),s(n,"acrimonious",-1),s(n,"acrimoniously",-1),s(n,"acrimony",-1),s(n,"adamant",-4),s(n,"adamantly",-4),s(n,"addict",-5),s(n,"addicted",-2),s(n,"addicting",-2),s(n,"addicts",-3),s(n,"admonish",-4),s(n,"admonisher",-2),s(n,"admonishingly",-3),s(n,"admonishment",-4),s(n,"admonition",-3),s(n,"adulterate",-1),s(n,"adulterated",-3),s(n,"adulteration",-5),s(n,"adulterier",-2),s(n,"adversarial",-1),s(n,"adversary",-1),s(n,"adverse",-4),s(n,"adversity",-5),s(n,"afflict",-1),s(n,"affliction",-1),s(n,"afflictive",-1),s(n,"affront",-1),s(n,"afraid",-5),s(n,"aggravate",-4),s(n,"aggravating",-4),s(n,"aggravation",-5),s(n,"aggression",-5),s(n,"aggressive",-5),s(n,"aggressiveness",-4),s(n,"aggressor",-4),s(n,"aggrieve",-3),s(n,"aggrieved",-4),s(n,"aggrivation",-5),s(n,"aghast",-2),s(n,"agonies",-4),s(n,"agonize",-5),s(n,"agonizing",-5),s(n,"agonizingly",-4),s(n,"agony",-5),s(n,"aground",-2),s(n,"ail",-1),s(n,"ailing",-1),s(n,"ailment",-2),s(n,"aimless",-2),s(n,"alarm",-1),s(n,"alarmed",-1),s(n,"alarming",-1),s(n,"alarmingly",-1),s(n,"alienate",-2),s(n,"alienated",-1),s(n,"alienation",-1),s(n,"allegation",-2),s(n,"allegations",-3),s(n,"allege",-1),s(n,"allergic",-1),s(n,"allergies",-1),s(n,"allergy",-1),s(n,"aloof",-1),s(n,"altercation",-1),s(n,"ambiguity",-2),s(n,"ambiguous",-2),s(n,"ambivalence",-1),s(n,"ambivalent",-1),s(n,"ambush",-1),s(n,"amiss",-1),s(n,"amputate",-3),s(n,"anarchism",-1),s(n,"anarchist",-4),s(n,"anarchistic",-1),s(n,"anarchy",-1),s(n,"anemic",-1),s(n,"anger",-4),s(n,"angrily",-5),s(n,"angriness",-5),s(n,"angry",-5),s(n,"anguish",-3),s(n,"animosity",-1),s(n,"annihilate",-1),s(n,"annihilation",-1),s(n,"annoy",-3),s(n,"annoyance",-4),s(n,"annoyances",-4),s(n,"annoyed",-2),s(n,"annoying",-2),s(n,"annoyingly",-3),s(n,"annoys",-1),s(n,"anomalous",-1),s(n,"anomaly",-3),s(n,"antagonism",-1),s(n,"antagonist",-1),s(n,"antagonistic",-1),s(n,"antagonize",-1),s(n,"anti-",-1),s(n,"anti-american",-1),s(n,"anti-israeli",-1),s(n,"anti-occupation",-1),s(n,"anti-proliferation",-1),s(n,"anti-semites",-1),s(n,"anti-social",-1),s(n,"anti-us",-1),s(n,"anti-white",-1),s(n,"antipathy",-1),s(n,"antiquated",-1),s(n,"antithetical",-1),s(n,"anxieties",-1),s(n,"anxiety",-2),s(n,"anxious",-3),s(n,"anxiously",-3),s(n,"anxiousness",-1),s(n,"apathetic",-4),s(n,"apathetically",-1),s(n,"apathy",-5),s(n,"apocalypse",-5),s(n,"apocalyptic",-4),s(n,"apologist",-3),s(n,"apologists",-2),s(n,"appal",-1),s(n,"appall",-1),s(n,"appalled",-1),s(n,"appalling",-1),s(n,"appallingly",-1),s(n,"apprehension",-1),s(n,"apprehensions",-1),s(n,"apprehensive",-1),s(n,"apprehensively",-1),s(n,"arbitrary",-1),s(n,"arcane",-1),s(n,"archaic",-1),s(n,"arduous",-1),s(n,"arduously",-1),s(n,"argumentative",-1),s(n,"arrogance",-3),s(n,"arrogant",-4),s(n,"arrogantly",-5),s(n,"ashamed",-4),s(n,"asinine",-1),s(n,"asininely",-1),s(n,"asinininity",-1),s(n,"askance",-1),s(n,"asperse",-1),s(n,"aspersion",-1),s(n,"aspersions",-1),s(n,"assail",-1),s(n,"assassin",-2),s(n,"assassinate",-2),s(n,"assault",-1),s(n,"assult",-1),s(n,"astray",-1),s(n,"asunder",-1),s(n,"atrocious",-1),s(n,"atrocities",-1),s(n,"atrocity",-1),s(n,"atrophy",-1),s(n,"attack",-3),s(n,"attacks",-3),s(n,"audacious",-3),s(n,"audaciously",-2),s(n,"audaciousness",-2),s(n,"audacity",-2),s(n,"audiciously",-1),s(n,"austere",-1),s(n,"authoritarian",-1),s(n,"autocrat",-1),s(n,"autocratic",-1),s(n,"avalanche",-2),s(n,"avarice",-1),s(n,"avaricious",-1),s(n,"avariciously",-1),s(n,"avenge",-4),s(n,"averse",-1),s(n,"aversion",-1),s(n,"aweful",-4),s(n,"awful",-5),s(n,"awfully",-1),s(n,"awfulness",-1),s(n,"awkward",-3),s(n,"awkwardness",-2),s(n,"ax",-1),s(n,"babble",-1),s(n,"back-logged",-1),s(n,"back-wood",-1),s(n,"back-woods",-1),s(n,"backache",-1),s(n,"backaches",-1),s(n,"backaching",-1),s(n,"backbite",-1),s(n,"backbiting",-1),s(n,"backward",-1),s(n,"backwardness",-1),s(n,"backwood",-1),s(n,"backwoods",-1),s(n,"bad",-4),s(n,"badly",-2),s(n,"baffle",-5),s(n,"baffled",-4),s(n,"bafflement",-1),s(n,"baffling",-1),s(n,"bait",-1),s(n,"balk",-1),s(n,"banal",-1),s(n,"banalize",-1),s(n,"bane",-1),s(n,"banish",-5),s(n,"banishment",-4),s(n,"bankrupt",-2),s(n,"barbarian",-5),s(n,"barbaric",-4),s(n,"barbarically",-3),s(n,"barbarity",-2),s(n,"barbarous",-3),s(n,"barbarously",-1),s(n,"barren",-3),s(n,"baseless",-2),s(n,"bash",-1),s(n,"bashed",-1),s(n,"bashful",-1),s(n,"bashing",-1),s(n,"bastard",-2),s(n,"bastards",-2),s(n,"battered",-1),s(n,"battering",-1),s(n,"batty",-1),s(n,"bearish",-1),s(n,"beastly",-1),s(n,"bedlam",-1),s(n,"bedlamite",-1),s(n,"befoul",-1),s(n,"beg",-1),s(n,"beggar",-1),s(n,"beggarly",-1),s(n,"begging",-1),s(n,"beguile",-1),s(n,"belabor",-1),s(n,"belated",-1),s(n,"beleaguer",-1),s(n,"belie",-2),s(n,"belittle",-2),s(n,"belittled",-2),s(n,"belittling",-2),s(n,"bellicose",-2),s(n,"belligerence",-2),s(n,"belligerent",-2),s(n,"belligerently",-2),s(n,"bemoan",-2),s(n,"bemoaning",-2),s(n,"bemused",-2),s(n,"bent",-2),s(n,"berate",-2),s(n,"bereave",-2),s(n,"bereavement",-2),s(n,"bereft",-2),s(n,"berserk",-2),s(n,"beseech",-1),s(n,"beset",-1),s(n,"besiege",-1),s(n,"besmirch",-1),s(n,"bestial",-1),s(n,"betray",-1),s(n,"betrayal",-1),s(n,"betrayals",-1),s(n,"betrayer",-1),s(n,"betraying",-1),s(n,"betrays",-1),s(n,"bewail",-1),s(n,"beware",-2),s(n,"bewilder",-1),s(n,"bewildered",-1),s(n,"bewildering",-1),s(n,"bewilderingly",-1),s(n,"bewilderment",-1),s(n,"bewitch",-1),s(n,"bias",-3),s(n,"biased",-1),s(n,"biases",-1),s(n,"bicker",-1),s(n,"bickering",-1),s(n,"bid-rigging",-1),s(n,"bigotries",-1),s(n,"bigotry",-4),s(n,"bitch",-5),s(n,"bitchy",-5),s(n,"biting",-5),s(n,"bitingly",-5),s(n,"bitter",-5),s(n,"bitterly",-5),s(n,"bitterness",-5),s(n,"bizarre",-1),s(n,"blab",-1),s(n,"blabber",-1),s(n,"blackmail",-1),s(n,"blah",-1),s(n,"blame",-3),s(n,"blameworthy",-1),s(n,"bland",-1),s(n,"blandish",-1),s(n,"blaspheme",-1),s(n,"blasphemous",-1),s(n,"blasphemy",-1),s(n,"blasted",-1),s(n,"blatant",-1),s(n,"blatantly",-1),s(n,"blather",-1),s(n,"bleak",-1),s(n,"bleakly",-1),s(n,"bleakness",-1),s(n,"bleed",-2),s(n,"bleeding",-3),s(n,"bleeds",-3),s(n,"blemish",-1),s(n,"blind",-2),s(n,"blinding",-1),s(n,"blindingly",-1),s(n,"blindside",-1),s(n,"blister",-1),s(n,"blistering",-1),s(n,"bloated",-1),s(n,"blockage",-1),s(n,"blockhead",-1),s(n,"bloodshed",-1),s(n,"bloodthirsty",-1),s(n,"bloody",-1),s(n,"blotchy",-1),s(n,"blow",-3),s(n,"blunder",-1),s(n,"blundering",-1),s(n,"blunders",-1),s(n,"blunt",-1),s(n,"blur",-1),s(n,"bluring",-1),s(n,"blurred",-1),s(n,"blurring",-1),s(n,"blurry",-1),s(n,"blurs",-1),s(n,"blurt",-1),s(n,"boastful",-1),s(n,"boggle",-3),s(n,"bogus",-2),s(n,"boil",-2),s(n,"boiling",-3),s(n,"boisterous",-2),s(n,"bomb",-4),s(n,"bombard",-2),s(n,"bombardment",-1),s(n,"bombastic",-1),s(n,"bondage",-1),s(n,"bonkers",-4),s(n,"bore",-1),s(n,"bored",-1),s(n,"boredom",-2),s(n,"bores",-2),s(n,"boring",-1),s(n,"botch",-1),s(n,"bother",-1),s(n,"bothered",-1),s(n,"bothering",-1),s(n,"bothers",-1),s(n,"bothersome",-1),s(n,"bowdlerize",-1),s(n,"boycott",-3),s(n,"braggart",-3),s(n,"bragger",-2),s(n,"brainless",-3),s(n,"brainwash",-1),s(n,"brash",-1),s(n,"brashly",-1),s(n,"brashness",-1),s(n,"brat",-1),s(n,"bravado",-1),s(n,"brazen",-1),s(n,"brazenly",-2),s(n,"brazenness",-2),s(n,"breach",-3),s(n,"break",-2),s(n,"break-up",-2),s(n,"break-ups",-1),s(n,"breakdown",-4),s(n,"breaking",-1),s(n,"breaks",-2),s(n,"breakup",-2),s(n,"breakups",-2),s(n,"bribery",-2),s(n,"brimstone",-2),s(n,"bristle",-2),s(n,"brittle",-3),s(n,"broke",-3),s(n,"broken",-3),s(n,"broken-hearted",-3),s(n,"brood",-3),s(n,"browbeat",-3),s(n,"bruise",-3),s(n,"bruised",-2),s(n,"bruises",-2),s(n,"bruising",-2),s(n,"brusque",-3),s(n,"brutal",-3),s(n,"brutalising",-3),s(n,"brutalities",-2),s(n,"brutality",-2),s(n,"brutalize",-2),s(n,"brutalizing",-2),s(n,"brutally",-2),s(n,"brute",-2),s(n,"brutish",-1),s(n,"bs",-3),s(n,"buckle",-1),s(n,"bug",-2),s(n,"bugging",-5),s(n,"buggy",-3),s(n,"bugs",-2),s(n,"bulkier",-2),s(n,"bulkiness",-1),s(n,"bulky",-3),s(n,"bulkyness",-1),s(n,"bull****",-3),s(n,"bull----",-3),s(n,"bullies",-2),s(n,"bullshit",-5),s(n,"bullshyt",-1),s(n,"bully",-2),s(n,"bullying",-1),s(n,"bullyingly",-1),s(n,"bum",-1),s(n,"bump",-1),s(n,"bumped",-3),s(n,"bumping",-1),s(n,"bumpping",-1),s(n,"bumps",-1),s(n,"bumpy",-1),s(n,"bungle",-1),s(n,"bungler",-1),s(n,"bungling",-1),s(n,"bunk",-1),s(n,"burden",-4),s(n,"burdensome",-1),s(n,"burdensomely",-1),s(n,"burn",-5),s(n,"burned",-4),s(n,"burning",-1),s(n,"burns",-1),s(n,"bust",-1),s(n,"busts",-1),s(n,"busybody",-1),s(n,"butcher",-1),s(n,"butchery",-1),s(n,"buzzing",-1),s(n,"byzantine",-1),s(n,"cackle",-1),s(n,"calamities",-3),s(n,"calamitous",-3),s(n,"calamitously",-3),s(n,"calamity",-4),s(n,"callous",-2),s(n,"calumniate",-1),s(n,"calumniation",-1),s(n,"calumnies",-1),s(n,"calumnious",-1),s(n,"calumniously",-1),s(n,"calumny",-1),s(n,"cancer",-5),s(n,"cancerous",-1),s(n,"cannibal",-1),s(n,"cannibalize",-5),s(n,"capitulate",-1),s(n,"capricious",-1),s(n,"capriciously",-1),s(n,"capriciousness",-1),s(n,"capsize",-1),s(n,"careless",-4),s(n,"carelessness",-5),s(n,"caricature",-1),s(n,"carnage",-1),s(n,"carp",-1),s(n,"cartoonish",-1),s(n,"cash-strapped",-1),s(n,"castigate",-1),s(n,"castrated",-1),s(n,"casualty",-3),s(n,"cataclysm",-2),s(n,"cataclysmal",-2),s(n,"cataclysmic",-2),s(n,"cataclysmically",-1),s(n,"catastrophe",-4),s(n,"catastrophes",-4),s(n,"catastrophic",-4),s(n,"catastrophically",-1),s(n,"catastrophies",-1),s(n,"caustic",-1),s(n,"caustically",-1),s(n,"cautionary",-3),s(n,"cave",-1),s(n,"censure",-1),s(n,"chafe",-1),s(n,"chaff",-1),s(n,"chagrin",-1),s(n,"challenging",-3),s(n,"chaos",-5),s(n,"chaotic",-1),s(n,"chasten",-1),s(n,"chastise",-1),s(n,"chastisement",-1),s(n,"chatter",-1),s(n,"chatterbox",-1),s(n,"cheap",-3),s(n,"cheapen",-1),s(n,"cheaply",-1),s(n,"cheat",-2),s(n,"cheated",-3),s(n,"cheater",-2),s(n,"cheating",-1),s(n,"cheats",-1),s(n,"checkered",-1),s(n,"cheerless",-1),s(n,"cheesy",-1),s(n,"chide",-1),s(n,"childish",-1),s(n,"chill",-1),s(n,"chilly",-1),s(n,"chintzy",-1),s(n,"choke",-1),s(n,"choleric",-1),s(n,"choppy",-1),s(n,"chore",-1),s(n,"chronic",-1),s(n,"chunky",-1),s(n,"clamor",-1),s(n,"clamorous",-1),s(n,"clash",-1),s(n,"cliche",-1),s(n,"cliched",-1),s(n,"clique",-1),s(n,"clog",-1),s(n,"clogged",-1),s(n,"clogs",-1),s(n,"cloud",-1),s(n,"clouding",-1),s(n,"cloudy",-1),s(n,"clueless",-1),s(n,"clumsy",-3),s(n,"clunky",-3),s(n,"coarse",-3),s(n,"cocky",-1),s(n,"coerce",-2),s(n,"coercion",-2),s(n,"coercive",-2),s(n,"cold",-3),s(n,"coldly",-1),s(n,"collapse",-1),s(n,"collude",-1),s(n,"collusion",-1),s(n,"combative",-1),s(n,"combust",-2),s(n,"comical",-2),s(n,"commiserate",-2),s(n,"commonplace",-2),s(n,"commotion",-3),s(n,"commotions",-3),s(n,"complacent",-3),s(n,"complain",-3),s(n,"complained",-4),s(n,"complaining",-4),s(n,"complains",-4),s(n,"complaint",-4),s(n,"complaints",-2),s(n,"complex",-2),s(n,"complicated",-4),s(n,"complication",-4),s(n,"complicit",-4),s(n,"compulsion",-4),s(n,"compulsive",-1),s(n,"concede",-1),s(n,"conceded",-1),s(n,"conceit",-1),s(n,"conceited",-1),s(n,"concen",-1),s(n,"concens",-2),s(n,"concern",-1),s(n,"concerned",-1),s(n,"concerns",-1),s(n,"concession",-1),s(n,"concessions",-1),s(n,"condemn",-1),s(n,"condemnable",-1),s(n,"condemnation",-1),s(n,"condemned",-1),s(n,"condemns",-1),s(n,"condescend",-1),s(n,"condescending",-1),s(n,"condescendingly",-1),s(n,"condescension",-1),s(n,"confess",-1),s(n,"confession",-4),s(n,"confessions",-2),s(n,"confined",-2),s(n,"conflict",-2),s(n,"conflicted",-2),s(n,"conflicting",-2),s(n,"conflicts",-2),s(n,"confound",-2),s(n,"confounded",-2),s(n,"confounding",-2),s(n,"confront",-3),s(n,"confrontation",-3),s(n,"confrontational",-3),s(n,"confuse",-5),s(n,"confused",-4),s(n,"confuses",-4),s(n,"confusing",-4),s(n,"confusion",-4),s(n,"confusions",-4),s(n,"congested",-4),s(n,"congestion",-4),s(n,"cons",-5),s(n,"conscons",-2),s(n,"conservative",-1),s(n,"conspicuous",-1),s(n,"conspicuously",-1),s(n,"conspiracies",-1),s(n,"conspiracy",-4),s(n,"conspirator",-1),s(n,"conspiratorial",-1),s(n,"conspire",-5),s(n,"consternation",-1),s(n,"contagious",-3),s(n,"contaminate",-3),s(n,"contaminated",-3),s(n,"contaminates",-2),s(n,"contaminating",-2),s(n,"contamination",-1),s(n,"contempt",-1),s(n,"contemptible",-1),s(n,"contemptuous",-2),s(n,"contemptuously",-2),s(n,"contend",-2),s(n,"contention",-2),s(n,"contentious",-2),s(n,"contort",-3),s(n,"contortions",-3),s(n,"contradict",-3),s(n,"contradiction",-3),s(n,"contradictory",-3),s(n,"contrariness",-3),s(n,"contravene",-3),s(n,"contrive",-3),s(n,"contrived",-3),s(n,"controversial",-3),s(n,"controversy",-2),s(n,"convoluted",-2),s(n,"corrode",-2),s(n,"corrosion",-3),s(n,"corrosions",-3),s(n,"corrosive",-3),s(n,"corrupt",-4),s(n,"corrupted",-4),s(n,"corrupting",-4),s(n,"corruption",-4),s(n,"corrupts",-4),s(n,"corruptted",-4),s(n,"costlier",-3),s(n,"costly",-3),s(n,"counter-productive",-3),s(n,"counterproductive",-3),s(n,"coupists",-1),s(n,"covetous",-2),s(n,"coward",-4),s(n,"cowardly",-5),s(n,"crabby",-2),s(n,"crack",-2),s(n,"cracked",-2),s(n,"cracks",-1),s(n,"craftily",-1),s(n,"craftly",-1),s(n,"crafty",-1),s(n,"cramp",-1),s(n,"cramped",-1),s(n,"cramping",-1),s(n,"cranky",-1),s(n,"crap",-4),s(n,"crappy",-5),s(n,"craps",-3),s(n,"crash",-3),s(n,"crashed",-2),s(n,"crashes",-2),s(n,"crashing",-1),s(n,"crass",-1),s(n,"craven",-1),s(n,"cravenly",-1),s(n,"craze",-1),s(n,"crazily",-1),s(n,"craziness",-1),s(n,"crazy",-2),s(n,"creak",-3),s(n,"creaking",-3),s(n,"creaks",-1),s(n,"credulous",-1),s(n,"creep",-1),s(n,"creeping",-1),s(n,"creeps",-1),s(n,"creepy",-1),s(n,"crept",-1),s(n,"crime",-4),s(n,"criminal",-4),s(n,"cringe",-2),s(n,"cringed",-2),s(n,"cringes",-2),s(n,"cripple",-2),s(n,"crippled",-3),s(n,"cripples",-3),s(n,"crippling",-4),s(n,"crisis",-4),s(n,"critic",-4),s(n,"critical",-1),s(n,"criticism",-1),s(n,"criticisms",-1),s(n,"criticize",-1),s(n,"criticized",-1),s(n,"criticizing",-1),s(n,"critics",-3),s(n,"cronyism",-3),s(n,"crook",-3),s(n,"crooked",-3),s(n,"crooks",-1),s(n,"crowded",-1),s(n,"crowdedness",-1),s(n,"crude",-1),s(n,"cruel",-5),s(n,"crueler",-5),s(n,"cruelest",-5),s(n,"cruelly",-5),s(n,"cruelness",-4),s(n,"cruelties",-4),s(n,"cruelty",-4),s(n,"crumble",-3),s(n,"crumbling",-3),s(n,"crummy",-2),s(n,"crumple",-2),s(n,"crumpled",-2),s(n,"crumples",-1),s(n,"crush",-3),s(n,"crushed",-1),s(n,"crushing",-1),s(n,"cry",-3),s(n,"culpable",-1),s(n,"culprit",-3),s(n,"cumbersome",-1),s(n,"cunt",-5),s(n,"cunts",-5),s(n,"cuplrit",-1),s(n,"curse",-3),s(n,"cursed",-3),s(n,"curses",-4),s(n,"curt",-1),s(n,"cuss",-3),s(n,"cussed",-3),s(n,"cutthroat",-2),s(n,"cynical",-3),s(n,"cynicism",-3),s(n,"d*mn",-3),s(n,"damage",-3),s(n,"damaged",-3),s(n,"damages",-3),s(n,"damaging",-3),s(n,"damn",-4),s(n,"damnable",-5),s(n,"damnably",-5),s(n,"damnation",-5),s(n,"damned",-5),s(n,"damning",-5),s(n,"damper",-2),s(n,"danger",-2),s(n,"dangerous",-2),s(n,"dangerousness",-3),s(n,"dark",-3),s(n,"darken",-2),s(n,"darkened",-2),s(n,"darker",-2),s(n,"darkness",-2),s(n,"dastard",-1),s(n,"dastardly",-1),s(n,"daunt",-1),s(n,"daunting",-2),s(n,"dauntingly",-2),s(n,"dawdle",-1),s(n,"daze",-1),s(n,"dazed",-1),s(n,"dead",-5),s(n,"deadbeat",-5),s(n,"deadlock",-3),s(n,"deadly",-4),s(n,"deadweight",-3),s(n,"deaf",-3),s(n,"dearth",-1),s(n,"death",-4),s(n,"debacle",-1),s(n,"debase",-1),s(n,"debasement",-1),s(n,"debaser",-1),s(n,"debatable",-1),s(n,"debauch",-1),s(n,"debaucher",-1),s(n,"debauchery",-1),s(n,"debilitate",-1),s(n,"debilitating",-1),s(n,"debility",-1),s(n,"debt",-2),s(n,"debts",-2),s(n,"decadence",-1),s(n,"decadent",-1),s(n,"decay",-4),s(n,"decayed",-4),s(n,"deceit",-3),s(n,"deceitful",-3),s(n,"deceitfully",-3),s(n,"deceitfulness",-3),s(n,"deceive",-3),s(n,"deceiver",-3),s(n,"deceivers",-3),s(n,"deceiving",-3),s(n,"deception",-4),s(n,"deceptive",-4),s(n,"deceptively",-5),s(n,"declaim",-3),s(n,"decline",-2),s(n,"declines",-2),s(n,"declining",-2),s(n,"decrement",-2),s(n,"decrepit",-2),s(n,"decrepitude",-1),s(n,"decry",-1),s(n,"defamation",-3),s(n,"defamations",-3),s(n,"defamatory",-3),s(n,"defame",-3),s(n,"defect",-4),s(n,"defective",-4),s(n,"defects",-4),s(n,"defensive",-3),s(n,"defiance",-3),s(n,"defiant",-3),s(n,"defiantly",-3),s(n,"deficiencies",-3),s(n,"deficiency",-3),s(n,"deficient",-3),s(n,"defile",-3),s(n,"defiler",-3),s(n,"deform",-3),s(n,"deformed",-3),s(n,"defrauding",-4),s(n,"defunct",-2),s(n,"defy",-1),s(n,"degenerate",-2),s(n,"degenerately",-2),s(n,"degeneration",-2),s(n,"degradation",-3),s(n,"degrade",-3),s(n,"degrading",-3),s(n,"degradingly",-3),s(n,"dehumanization",-2),s(n,"dehumanize",-2),s(n,"deign",-1),s(n,"deject",-1),s(n,"dejected",-1),s(n,"dejectedly",-1),s(n,"dejection",-1),s(n,"delay",-1),s(n,"delayed",-1),s(n,"delaying",-1),s(n,"delays",-1),s(n,"delinquency",-1),s(n,"delinquent",-1),s(n,"delirious",-1),s(n,"delirium",-1),s(n,"delude",-1),s(n,"deluded",-1),s(n,"deluge",-1),s(n,"delusion",-1),s(n,"delusional",-1),s(n,"delusions",-1),s(n,"demean",-2),s(n,"demeaning",-1),s(n,"demise",-3),s(n,"demolish",-3),s(n,"demolisher",-3),s(n,"demon",-4),s(n,"demonic",-4),s(n,"demonize",-4),s(n,"demonized",-4),s(n,"demonizes",-4),s(n,"demonizing",-4),s(n,"demoralize",-1),s(n,"demoralizing",-1),s(n,"demoralizingly",-1),s(n,"denial",-2),s(n,"denied",-2),s(n,"denies",-1),s(n,"denigrate",-1),s(n,"denounce",-1),s(n,"dense",-1),s(n,"dent",-1),s(n,"dented",-1),s(n,"dents",-1),s(n,"denunciate",-1),s(n,"denunciation",-1),s(n,"denunciations",-1),s(n,"deny",-2),s(n,"denying",-2),s(n,"deplete",-1),s(n,"deplorable",-1),s(n,"deplorably",-1),s(n,"deplore",-1),s(n,"deploring",-1),s(n,"deploringly",-1),s(n,"deprave",-1),s(n,"depraved",-1),s(n,"depravedly",-1),s(n,"deprecate",-1),s(n,"depress",-4),s(n,"depressed",-3),s(n,"depressing",-4),s(n,"depressingly",-3),s(n,"depression",-4),s(n,"depressions",-4),s(n,"deprive",-3),s(n,"deprived",-3),s(n,"deride",-1),s(n,"derision",-1),s(n,"derisive",-1),s(n,"derisively",-1),s(n,"derisiveness",-1),s(n,"derogatory",-3),s(n,"desecrate",-1),s(n,"desert",-2),s(n,"desertion",-1),s(n,"desiccate",-1),s(n,"desiccated",-1),s(n,"desititute",-1),s(n,"desolate",-1),s(n,"desolately",-1),s(n,"desolation",-1),s(n,"despair",-1),s(n,"despairing",-1),s(n,"despairingly",-1),s(n,"desperate",-2),s(n,"desperately",-2),s(n,"desperation",-1),s(n,"despicable",-2),s(n,"despicably",-1),s(n,"despise",-1),s(n,"despised",-1),s(n,"despoil",-1),s(n,"despoiler",-1),s(n,"despondence",-1),s(n,"despondency",-1),s(n,"despondent",-1),s(n,"despondently",-1),s(n,"despot",-1),s(n,"despotic",-1),s(n,"despotism",-1),s(n,"destabilisation",-1),s(n,"destains",-1),s(n,"destitute",-1),s(n,"destitution",-1),s(n,"destroy",-5),s(n,"destroyer",-5),s(n,"destruction",-5),s(n,"destructive",-5),s(n,"desultory",-1),s(n,"deter",-2),s(n,"deteriorate",-5),s(n,"deteriorating",-5),s(n,"deterioration",-5),s(n,"deterrent",-5),s(n,"detest",-3),s(n,"detestable",-3),s(n,"detestably",-3),s(n,"detested",-3),s(n,"detesting",-3),s(n,"detests",-3),s(n,"detract",-3),s(n,"detracted",-2),s(n,"detracting",-2),s(n,"detraction",-2),s(n,"detracts",-2),s(n,"detriment",-2),s(n,"detrimental",-2),s(n,"devastate",-5),s(n,"devastated",-5),s(n,"devastates",-5),s(n,"devastating",-5),s(n,"devastatingly",-5),s(n,"devastation",-5),s(n,"deviate",-2),s(n,"deviation",-2),s(n,"devil",-2),s(n,"devilish",-2),s(n,"devilishly",-2),s(n,"devilment",-2),s(n,"devilry",-2),s(n,"devious",-3),s(n,"deviously",-3),s(n,"deviousness",-3),s(n,"devoid",-2),s(n,"diabolic",-2),s(n,"diabolical",-2),s(n,"diabolically",-2),s(n,"diametrically",-1),s(n,"diappointed",-5),s(n,"diatribe",-1),s(n,"diatribes",-1),s(n,"dick",-5),s(n,"dictator",-4),s(n,"dictatorial",-3),s(n,"die",-5),s(n,"die-hard",-2),s(n,"died",-4),s(n,"dies",-3),s(n,"difficult",-2),s(n,"difficulties",-2),s(n,"difficulty",-2),s(n,"diffidence",-1),s(n,"dilapidated",-1),s(n,"dilemma",-1),s(n,"dilly-dally",-1),s(n,"dim",-1),s(n,"dimmer",-1),s(n,"din",-1),s(n,"ding",-1),s(n,"dings",-1),s(n,"dinky",-1),s(n,"dire",-1),s(n,"direly",-1),s(n,"direness",-1),s(n,"dirt",-2),s(n,"dirtbag",-1),s(n,"dirtbags",-1),s(n,"dirts",-2),s(n,"dirty",-2),s(n,"disable",-1),s(n,"disabled",-1),s(n,"disaccord",-1),s(n,"disadvantage",-1),s(n,"disadvantaged",-1),s(n,"disadvantageous",-1),s(n,"disadvantages",-1),s(n,"disaffect",-1),s(n,"disaffected",-1),s(n,"disaffirm",-1),s(n,"disagree",-2),s(n,"disagreeable",-1),s(n,"disagreeably",-1),s(n,"disagreed",-2),s(n,"disagreeing",-1),s(n,"disagreement",-1),s(n,"disagrees",-1),s(n,"disallow",-4),s(n,"disapointed",-5),s(n,"disapointing",-5),s(n,"disapointment",-5),s(n,"disappoint",-5),s(n,"disappointed",-4),s(n,"disappointing",-4),s(n,"disappointingly",-4),s(n,"disappointment",-4),s(n,"disappointments",-4),s(n,"disappoints",-3),s(n,"disapprobation",-1),s(n,"disapproval",-2),s(n,"disapprove",-2),s(n,"disapproving",-2),s(n,"disarm",-2),s(n,"disarray",-1),s(n,"disaster",-1),s(n,"disasterous",-2),s(n,"disastrous",-2),s(n,"disastrously",-1),s(n,"disavow",-3),s(n,"disavowal",-3),s(n,"disbelief",-2),s(n,"disbelieve",-2),s(n,"disbeliever",-2),s(n,"disclaim",-1),s(n,"discombobulate",-1),s(n,"discomfit",-3),s(n,"discomfititure",-1),s(n,"discomfort",-1),s(n,"discompose",-1),s(n,"disconcert",-1),s(n,"disconcerted",-1),s(n,"disconcerting",-1),s(n,"disconcertingly",-1),s(n,"disconsolate",-1),s(n,"disconsolately",-1),s(n,"disconsolation",-1),s(n,"discontent",-2),s(n,"discontented",-2),s(n,"discontentedly",-2),s(n,"discontinued",-2),s(n,"discontinuity",-1),s(n,"discontinuous",-1),s(n,"discord",-1),s(n,"discordance",-1),s(n,"discordant",-1),s(n,"discountenance",-1),s(n,"discourage",-1),s(n,"discouragement",-1),s(n,"discouraging",-1),s(n,"discouragingly",-1),s(n,"discourteous",-1),s(n,"discourteously",-1),s(n,"discoutinous",-1),s(n,"discredit",-1),s(n,"discrepant",-1),s(n,"discriminate",-2),s(n,"discrimination",-2),s(n,"discriminatory",-2),s(n,"disdain",-1),s(n,"disdained",-1),s(n,"disdainful",-1),s(n,"disdainfully",-1),s(n,"disfavor",-1),s(n,"disgrace",-5),s(n,"disgraced",-5),s(n,"disgraceful",-5),s(n,"disgracefully",-5),s(n,"disgruntle",-3),s(n,"disgruntled",-3),s(n,"disgust",-5),s(n,"disgusted",-5),s(n,"disgustedly",-5),s(n,"disgustful",-5),s(n,"disgustfully",-5),s(n,"disgusting",-5),s(n,"disgustingly",-5),s(n,"dishearten",-4),s(n,"disheartening",-4),s(n,"dishearteningly",-4),s(n,"dishonest",-3),s(n,"dishonestly",-3),s(n,"dishonesty",-3),s(n,"dishonor",-3),s(n,"dishonorable",-3),s(n,"dishonorablely",-3),s(n,"disillusion",-2),s(n,"disillusioned",-2),s(n,"disillusionment",-2),s(n,"disillusions",-2),s(n,"disinclination",-2),s(n,"disinclined",-2),s(n,"disingenuous",-2),s(n,"disingenuously",-2),s(n,"disintegrate",-2),s(n,"disintegrated",-2),s(n,"disintegrates",-2),s(n,"disintegration",-2),s(n,"disinterest",-2),s(n,"disinterested",-2),s(n,"dislike",-3),s(n,"disliked",-3),s(n,"dislikes",-3),s(n,"disliking",-3),s(n,"dislocated",-3),s(n,"disloyal",-3),s(n,"disloyalty",-3),s(n,"dismal",-1),s(n,"dismally",-1),s(n,"dismalness",-1),s(n,"dismay",-3),s(n,"dismayed",-3),s(n,"dismaying",-3),s(n,"dismayingly",-3),s(n,"dismissive",-2),s(n,"dismissively",-2),s(n,"disobedience",-2),s(n,"disobedient",-2),s(n,"disobey",-1),s(n,"disoobedient",-1),s(n,"disorder",-1),s(n,"disordered",-1),s(n,"disorderly",-1),s(n,"disorganized",-1),s(n,"disorient",-1),s(n,"disoriented",-1),s(n,"disown",-1),s(n,"disparage",-1),s(n,"disparaging",-1),s(n,"disparagingly",-1),s(n,"dispensable",-1),s(n,"dispirit",-1),s(n,"dispirited",-1),s(n,"dispiritedly",-1),s(n,"dispiriting",-1),s(n,"displace",-1),s(n,"displaced",-1),s(n,"displease",-1),s(n,"displeased",-1),s(n,"displeasing",-1),s(n,"displeasure",-1),s(n,"disproportionate",-1),s(n,"disprove",-2),s(n,"disputable",-1),s(n,"dispute",-3),s(n,"disputed",-3),s(n,"disquiet",-1),s(n,"disquieting",-1),s(n,"disquietingly",-1),s(n,"disquietude",-1),s(n,"disregard",-3),s(n,"disregardful",-1),s(n,"disreputable",-1),s(n,"disrepute",-2),s(n,"disrespect",-1),s(n,"disrespectable",-1),s(n,"disrespectablity",-1),s(n,"disrespectful",-1),s(n,"disrespectfully",-1),s(n,"disrespectfulness",-1),s(n,"disrespecting",-1),s(n,"disrupt",-4),s(n,"disruption",-4),s(n,"disruptive",-4),s(n,"diss",-1),s(n,"dissapointed",-5),s(n,"dissappointed",-5),s(n,"dissappointing",-5),s(n,"dissatisfaction",-4),s(n,"dissatisfactory",-4),s(n,"dissatisfied",-4),s(n,"dissatisfies",-4),s(n,"dissatisfy",-4),s(n,"dissatisfying",-4),s(n,"dissed",-1),s(n,"dissemble",-1),s(n,"dissembler",-1),s(n,"dissension",-1),s(n,"dissent",-1),s(n,"dissenter",-1),s(n,"dissention",-1),s(n,"disservice",-1),s(n,"disses",-1),s(n,"dissidence",-1),s(n,"dissident",-1),s(n,"dissidents",-1),s(n,"dissing",-1),s(n,"dissocial",-1),s(n,"dissolute",-1),s(n,"dissolution",-1),s(n,"dissonance",-1),s(n,"dissonant",-1),s(n,"dissonantly",-1),s(n,"dissuade",-1),s(n,"dissuasive",-1),s(n,"distains",-1),s(n,"distaste",-1),s(n,"distasteful",-1),s(n,"distastefully",-1),s(n,"distort",-1),s(n,"distorted",-1),s(n,"distortion",-1),s(n,"distorts",-1),s(n,"distract",-1),s(n,"distracting",-1),s(n,"distraction",-1),s(n,"distraught",-1),s(n,"distraughtly",-1),s(n,"distraughtness",-1),s(n,"distress",-2),s(n,"distressed",-2),s(n,"distressing",-2),s(n,"distressingly",-1),s(n,"distrust",-3),s(n,"distrustful",-3),s(n,"distrusting",-3),s(n,"disturb",-3),s(n,"disturbance",-3),s(n,"disturbed",-3),s(n,"disturbing",-3),s(n,"disturbingly",-3),s(n,"disunity",-2),s(n,"disvalue",-2),s(n,"divergent",-2),s(n,"divisive",-2),s(n,"divisively",-2),s(n,"divisiveness",-2),s(n,"dizzing",-2),s(n,"dizzingly",-2),s(n,"dizzy",-2),s(n,"doddering",-2),s(n,"dodgey",-2),s(n,"dogged",-2),s(n,"doggedly",-2),s(n,"dogmatic",-2),s(n,"doldrums",-2),s(n,"domineer",-2),s(n,"domineering",-2),s(n,"donside",-2),s(n,"doom",-4),s(n,"doomed",-4),s(n,"doomsday",-3),s(n,"dope",-1),s(n,"doubt",-2),s(n,"doubtful",-1),s(n,"doubtfully",-1),s(n,"doubts",-2),s(n,"douchbag",-5),s(n,"douchebag",-5),s(n,"douchebags",-5),s(n,"downbeat",-3),s(n,"downcast",-1),s(n,"downer",-1),s(n,"downfall",-1),s(n,"downfallen",-1),s(n,"downgrade",-1),s(n,"downhearted",-1),s(n,"downheartedly",-1),s(n,"downhill",-1),s(n,"downside",-3),s(n,"downsides",-1),s(n,"downturn",-1),s(n,"downturns",-1),s(n,"drab",-1),s(n,"draconian",-1),s(n,"draconic",-1),s(n,"drag",-2),s(n,"dragged",-1),s(n,"dragging",-1),s(n,"dragoon",-1),s(n,"drags",-1),s(n,"drain",-3),s(n,"drained",-3),s(n,"draining",-3),s(n,"drains",-1),s(n,"drastic",-1),s(n,"drastically",-1),s(n,"drawback",-1),s(n,"drawbacks",-1),s(n,"dread",-4),s(n,"dreadful",-4),s(n,"dreadfully",-4),s(n,"dreadfulness",-4),s(n,"dreary",-2),s(n,"dripped",-2),s(n,"dripping",-2),s(n,"drippy",-2),s(n,"drips",-2),s(n,"drones",-2),s(n,"droop",-2),s(n,"droops",-2),s(n,"drop-out",-3),s(n,"drop-outs",-3),s(n,"dropout",-3),s(n,"dropouts",-2),s(n,"drought",-2),s(n,"drowning",-3),s(n,"drunk",-3),s(n,"drunkard",-1),s(n,"drunken",-1),s(n,"dubious",-1),s(n,"dubiously",-1),s(n,"dubitable",-1),s(n,"dud",-1),s(n,"dull",-1),s(n,"dullard",-1),s(n,"dumb",-2),s(n,"dumbfound",-2),s(n,"dump",-2),s(n,"dumped",-3),s(n,"dumping",-3),s(n,"dumps",-3),s(n,"dunce",-1),s(n,"dungeon",-1),s(n,"dungeons",-1),s(n,"dupe",-2),s(n,"dust",-2),s(n,"dusty",-2),s(n,"dwindling",-1),s(n,"dying",-1),s(n,"earsplitting",-1),s(n,"eccentric",-1),s(n,"eccentricity",-1),s(n,"effigy",-1),s(n,"effrontery",-1),s(n,"egocentric",-2),s(n,"egomania",-3),s(n,"egotism",-1),s(n,"egotistical",-1),s(n,"egotistically",-1),s(n,"egregious",-1),s(n,"egregiously",-1),s(n,"election-rigger",-1),s(n,"elimination",-1),s(n,"emaciated",-1),s(n,"emasculate",-1),s(n,"embarrass",-1),s(n,"embarrassing",-1),s(n,"embarrassingly",-1),s(n,"embarrassment",-1),s(n,"embattled",-1),s(n,"embroil",-1),s(n,"embroiled",-1),s(n,"embroilment",-1),s(n,"emergency",-1),s(n,"emphatic",-1),s(n,"emphatically",-1),s(n,"emptiness",-1),s(n,"encroach",-1),s(n,"encroachment",-1),s(n,"endanger",-3),s(n,"enemies",-2),s(n,"enemy",-2),s(n,"enervate",-1),s(n,"enfeeble",-1),s(n,"enflame",-1),s(n,"engulf",-1),s(n,"enjoin",-1),s(n,"enmity",-1),s(n,"enrage",-1),s(n,"enraged",-1),s(n,"enraging",-1),s(n,"enslave",-3),s(n,"entangle",-1),s(n,"entanglement",-1),s(n,"entrap",-1),s(n,"entrapment",-1),s(n,"envious",-1),s(n,"enviously",-1),s(n,"enviousness",-1),s(n,"epidemic",-4),s(n,"equivocal",-1),s(n,"erase",-3),s(n,"erode",-5),s(n,"erodes",-5),s(n,"erosion",-5),s(n,"err",-1),s(n,"errant",-1),s(n,"erratic",-1),s(n,"erratically",-1),s(n,"erroneous",-1),s(n,"erroneously",-1),s(n,"error",-3),s(n,"errors",-3),s(n,"eruptions",-1),s(n,"escapade",-1),s(n,"eschew",-1),s(n,"estranged",-1),s(n,"evade",-1),s(n,"evasion",-1),s(n,"evasive",-1),s(n,"evil",-1),s(n,"evildoer",-1),s(n,"evils",-1),s(n,"eviscerate",-1),s(n,"exacerbate",-1),s(n,"exagerate",-3),s(n,"exagerated",-3),s(n,"exagerates",-3),s(n,"exaggerate",-3),s(n,"exaggeration",-3),s(n,"exasperate",-3),s(n,"exasperated",-3),s(n,"exasperating",-3),s(n,"exasperatingly",-3),s(n,"exasperation",-3),s(n,"excessive",-3),s(n,"excessively",-2),s(n,"exclusion",-2),s(n,"excoriate",-2),s(n,"excruciating",-2),s(n,"excruciatingly",-1),s(n,"excuse",-2),s(n,"excuses",-2),s(n,"execrate",-3),s(n,"exhaust",-3),s(n,"exhausted",-3),s(n,"exhaustion",-3),s(n,"exhausts",-3),s(n,"exhorbitant",-2),s(n,"exhort",-2),s(n,"exile",-2),s(n,"exorbitant",-2),s(n,"exorbitantance",-2),s(n,"exorbitantly",-2),s(n,"expel",-4),s(n,"expensive",-4),s(n,"expire",-4),s(n,"expired",-4),s(n,"explode",-4),s(n,"exploit",-4),s(n,"exploitation",-3),s(n,"explosive",-3),s(n,"expropriate",-3),s(n,"expropriation",-3),s(n,"expulse",-1),s(n,"expunge",-1),s(n,"exterminate",-3),s(n,"extermination",-3),s(n,"extinguish",-1),s(n,"extort",-5),s(n,"extortion",-5),s(n,"extraneous",-1),s(n,"extravagance",-2),s(n,"extravagant",-1),s(n,"extravagantly",-1),s(n,"extremism",-3),s(n,"extremist",-5),s(n,"extremists",-5),s(n,"eyesore",-3),s(n,"f**k",-5),s(n,"fabricate",-3),s(n,"fabrication",-1),s(n,"facetious",-1),s(n,"facetiously",-1),s(n,"fail",-5),s(n,"failed",-4),s(n,"failing",-4),s(n,"fails",-4),s(n,"failure",-4),s(n,"failures",-4),s(n,"faint",-2),s(n,"fainthearted",-2),s(n,"faithless",-2),s(n,"fake",-2),s(n,"fall",-2),s(n,"fallacies",-2),s(n,"fallacious",-1),s(n,"fallaciously",-1),s(n,"fallaciousness",-1),s(n,"fallacy",-3),s(n,"fallen",-3),s(n,"falling",-3),s(n,"fallout",-4),s(n,"falls",-3),s(n,"false",-1),s(n,"falsehood",-5),s(n,"falsely",-4),s(n,"falsify",-4),s(n,"falter",-1),s(n,"faltered",-1),s(n,"famine",-5),s(n,"famished",-1),s(n,"fanatic",-3),s(n,"fanatical",-3),s(n,"fanatically",-4),s(n,"fanaticism",-2),s(n,"fanatics",-2),s(n,"fanciful",-2),s(n,"far-fetched",-1),s(n,"farce",-1),s(n,"farcical",-1),s(n,"farcical-yet-provocative",-1),s(n,"farcically",-1),s(n,"farfetched",-1),s(n,"fascism",-5),s(n,"fascist",-5),s(n,"fastidious",-1),s(n,"fastidiously",-1),s(n,"fastuous",-1),s(n,"fat",-1),s(n,"fat-cat",-1),s(n,"fat-cats",-1),s(n,"fatal",-4),s(n,"fatalistic",-4),s(n,"fatalistically",-4),s(n,"fatally",-4),s(n,"fatcat",-1),s(n,"fatcats",-1),s(n,"fateful",-3),s(n,"fatefully",-3),s(n,"fathomless",-1),s(n,"fatigue",-4),s(n,"fatigued",-4),s(n,"fatique",-4),s(n,"fatty",-4),s(n,"fatuity",-2),s(n,"fatuous",-2),s(n,"fatuously",-2),s(n,"fault",-4),s(n,"faults",-4),s(n,"faulty",-4),s(n,"fawningly",-1),s(n,"faze",-1),s(n,"fear",-5),s(n,"fearful",-5),s(n,"fearfully",-5),s(n,"fears",-5),s(n,"fearsome",-5),s(n,"feckless",-1),s(n,"feeble",-1),s(n,"feeblely",-1),s(n,"feebleminded",-1),s(n,"feign",-1),s(n,"feint",-1),s(n,"fell",-1),s(n,"felon",-1),s(n,"felonious",-1),s(n,"ferociously",-1),s(n,"ferocity",-1),s(n,"fetid",-1),s(n,"fever",-3),s(n,"feverish",-1),s(n,"fevers",-1),s(n,"fiasco",-1),s(n,"fib",-1),s(n,"fibber",-1),s(n,"fickle",-1),s(n,"fiction",-3),s(n,"fictional",-3),s(n,"fictitious",-3),s(n,"fidget",-1),s(n,"fidgety",-1),s(n,"fiend",-1),s(n,"fiendish",-1),s(n,"fierce",-1),s(n,"figurehead",-1),s(n,"filth",-2),s(n,"filthy",-2),s(n,"finagle",-2),s(n,"finicky",-2),s(n,"fissures",-2),s(n,"fist",-1),s(n,"flabbergast",-1),s(n,"flabbergasted",-1),s(n,"flagging",-1),s(n,"flagrant",-1),s(n,"flagrantly",-1),s(n,"flair",-1),s(n,"flairs",-1),s(n,"flak",-1),s(n,"flake",-1),s(n,"flakey",-1),s(n,"flakieness",-1),s(n,"flaking",-1),s(n,"flaky",-1),s(n,"flare",-1),s(n,"flares",-1),s(n,"flareup",-1),s(n,"flareups",-1),s(n,"flat-out",-1),s(n,"flaunt",-1),s(n,"flaw",-5),s(n,"flawed",-5),s(n,"flaws",-5),s(n,"flee",-2),s(n,"fleed",-2),s(n,"fleeing",-2),s(n,"fleer",-2),s(n,"flees",-2),s(n,"fleeting",-3),s(n,"flicering",-3),s(n,"flicker",-3),s(n,"flickering",-3),s(n,"flickers",-2),s(n,"flighty",-2),s(n,"flimflam",-2),s(n,"flimsy",-3),s(n,"flirt",-3),s(n,"flirty",-3),s(n,"floored",-3),s(n,"flounder",-3),s(n,"floundering",-3),s(n,"flout",-3),s(n,"fluster",-2),s(n,"foe",-4),s(n,"fool",-3),s(n,"fooled",-3),s(n,"foolhardy",-3),s(n,"foolish",-3),s(n,"foolishly",-3),s(n,"foolishness",-3),s(n,"forbid",-3),s(n,"forbidden",-2),s(n,"forbidding",-2),s(n,"forceful",-2),s(n,"foreboding",-1),s(n,"forebodingly",-1),s(n,"forfeit",-1),s(n,"forged",-1),s(n,"forgetful",-1),s(n,"forgetfully",-1),s(n,"forgetfulness",-1),s(n,"forlorn",-1),s(n,"forlornly",-1),s(n,"forsake",-2),s(n,"forsaken",-2),s(n,"forswear",-2),s(n,"foul",-5),s(n,"foully",-5),s(n,"foulness",-5),s(n,"fractious",-3),s(n,"fractiously",-3),s(n,"fracture",-3),s(n,"fragile",-3),s(n,"fragmented",-3),s(n,"frail",-3),s(n,"frantic",-3),s(n,"frantically",-3),s(n,"franticly",-3),s(n,"fraud",-3),s(n,"fraudulent",-3),s(n,"fraught",-3),s(n,"frazzle",-2),s(n,"frazzled",-2),s(n,"freak",-2),s(n,"freaking",-3),s(n,"freakish",-3),s(n,"freakishly",-3),s(n,"freaks",-2),s(n,"freeze",-2),s(n,"freezes",-2),s(n,"freezing",-2),s(n,"frenetic",-2),s(n,"frenetically",-3),s(n,"frenzied",-3),s(n,"frenzy",-3),s(n,"fret",-3),s(n,"fretful",-3),s(n,"frets",-3),s(n,"friction",-3),s(n,"frictions",-3),s(n,"fried",-3),s(n,"friggin",-3),s(n,"frigging",-3),s(n,"fright",-3),s(n,"frighten",-2),s(n,"frightening",-2),s(n,"frighteningly",-2),s(n,"frightful",-2),s(n,"frightfully",-2),s(n,"frigid",-3),s(n,"frost",-3),s(n,"frown",-3),s(n,"froze",-3),s(n,"frozen",-2),s(n,"fruitless",-2),s(n,"fruitlessly",-2),s(n,"frustrate",-2),s(n,"frustrated",-5),s(n,"frustrates",-5),s(n,"frustrating",-5),s(n,"frustratingly",-5),s(n,"frustration",-5),s(n,"frustrations",-5),s(n,"fuck",-5),s(n,"fucking",-5),s(n,"fudge",-2),s(n,"fugitive",-2),s(n,"full-blown",-3),s(n,"fulminate",-3),s(n,"fumble",-3),s(n,"fume",-3),s(n,"fumes",-3),s(n,"fundamentalism",-2),s(n,"funky",-2),s(n,"funnily",-2),s(n,"funny",-1),s(n,"furious",-2),s(n,"furiously",-2),s(n,"furor",-2),s(n,"fury",-3),s(n,"fuss",-3),s(n,"fussy",-3),s(n,"fustigate",-3),s(n,"fusty",-3),s(n,"futile",-3),s(n,"futilely",-3),s(n,"futility",-3),s(n,"fuzzy",-3),s(n,"gabble",-2),s(n,"gaff",-2),s(n,"gaffe",-2),s(n,"gainsay",-2),s(n,"gainsayer",-2),s(n,"gall",-2),s(n,"galling",-2),s(n,"gallingly",-2),s(n,"galls",-2),s(n,"gangster",-5),s(n,"gape",-5),s(n,"garbage",-5),s(n,"garish",-1),s(n,"gasp",-1),s(n,"gauche",-1),s(n,"gaudy",-1),s(n,"gawk",-1),s(n,"gawky",-3),s(n,"geezer",-1),s(n,"genocide",-3),s(n,"get-rich",-1),s(n,"ghastly",-1),s(n,"ghetto",-1),s(n,"ghosting",-1),s(n,"gibber",-1),s(n,"gibberish",-1),s(n,"gibe",-1),s(n,"giddy",-1),s(n,"gimmick",-3),s(n,"gimmicked",-3),s(n,"gimmicking",-3),s(n,"gimmicks",-3),s(n,"gimmicky",-3),s(n,"glare",-1),s(n,"glaringly",-1),s(n,"glib",-1),s(n,"glibly",-1),s(n,"glitch",-1),s(n,"glitches",-1),s(n,"gloatingly",-1),s(n,"gloom",-1),s(n,"gloomy",-1),s(n,"glower",-1),s(n,"glum",-1),s(n,"glut",-1),s(n,"gnawing",-1),s(n,"goad",-1),s(n,"goading",-1),s(n,"god-awful",-1),s(n,"goof",-1),s(n,"goofy",-1),s(n,"goon",-1),s(n,"gossip",-1),s(n,"graceless",-1),s(n,"gracelessly",-1),s(n,"graft",-1),s(n,"grainy",-1),s(n,"grapple",-1),s(n,"grate",-1),s(n,"grating",-1),s(n,"gravely",-1),s(n,"greasy",-1),s(n,"greed",-4),s(n,"greedy",-4),s(n,"grief",-5),s(n,"grievance",-5),s(n,"grievances",-5),s(n,"grieve",-5),s(n,"grieving",-5),s(n,"grievous",-5),s(n,"grievously",-5),s(n,"grim",-2),s(n,"grimace",-2),s(n,"grind",-1),s(n,"gripe",-1),s(n,"gripes",-1),s(n,"grisly",-1),s(n,"gritty",-1),s(n,"gross",-2),s(n,"grossly",-2),s(n,"grotesque",-1),s(n,"grouch",-1),s(n,"grouchy",-1),s(n,"groundless",-1),s(n,"grouse",-1),s(n,"growl",-3),s(n,"grudge",-4),s(n,"grudges",-4),s(n,"grudging",-4),s(n,"grudgingly",-4),s(n,"gruesome",-5),s(n,"gruesomely",-5),s(n,"gruff",-1),s(n,"grumble",-1),s(n,"grumpier",-1),s(n,"grumpiest",-1),s(n,"grumpily",-1),s(n,"grumpish",-1),s(n,"grumpy",-1),s(n,"guile",-1),s(n,"guilt",-3),s(n,"guiltily",-3),s(n,"guilty",-3),s(n,"gullible",-3),s(n,"gutless",-1),s(n,"gutter",-1),s(n,"hack",-2),s(n,"hacks",-2),s(n,"haggard",-2),s(n,"haggle",-2),s(n,"hairloss",-1),s(n,"halfhearted",-1),s(n,"halfheartedly",-1),s(n,"hallucinate",-1),s(n,"hallucination",-1),s(n,"hamper",-1),s(n,"hampered",-1),s(n,"handicapped",-1),s(n,"hang",-1),s(n,"hangs",-1),s(n,"haphazard",-1),s(n,"hapless",-1),s(n,"harangue",-1),s(n,"harass",-3),s(n,"harassed",-3),s(n,"harasses",-3),s(n,"harassment",-3),s(n,"harboring",-1),s(n,"harbors",-1),s(n,"hard",-4),s(n,"hard-hit",-3),s(n,"hard-line",-3),s(n,"hard-liner",-3),s(n,"hardball",-3),s(n,"harden",-3),s(n,"hardened",-3),s(n,"hardheaded",-3),s(n,"hardhearted",-3),s(n,"hardliner",-3),s(n,"hardliners",-3),s(n,"hardship",-5),s(n,"hardships",-5),s(n,"harm",-5),s(n,"harmed",-5),s(n,"harmful",-5),s(n,"harms",-5),s(n,"harpy",-1),s(n,"harridan",-1),s(n,"harried",-1),s(n,"harrow",-1),s(n,"harsh",-1),s(n,"harshly",-1),s(n,"hasseling",-1),s(n,"hassle",-3),s(n,"hassled",-3),s(n,"hassles",-3),s(n,"haste",-5),s(n,"hastily",-1),s(n,"hasty",-1),s(n,"hate",-5),s(n,"hated",-5),s(n,"hateful",-5),s(n,"hatefully",-5),s(n,"hatefulness",-5),s(n,"hater",-5),s(n,"haters",-5),s(n,"hates",-5),s(n,"hating",-5),s(n,"hatred",-5),s(n,"haughtily",-1),s(n,"haughty",-1),s(n,"haunt",-3),s(n,"haunting",-3),s(n,"havoc",-1),s(n,"hawkish",-1),s(n,"haywire",-1),s(n,"hazard",-3),s(n,"hazardous",-3),s(n,"haze",-1),s(n,"hazy",-1),s(n,"head-aches",-1),s(n,"headache",-2),s(n,"headaches",-2),s(n,"heartbreaker",-4),s(n,"heartbreaking",-4),s(n,"heartbreakingly",-4),s(n,"heartless",-4),s(n,"heathen",-1),s(n,"heavy-handed",-2),s(n,"heavyhearted",-2),s(n,"heck",-1),s(n,"heckle",-1),s(n,"heckled",-1),s(n,"heckles",-1),s(n,"hectic",-1),s(n,"hedge",-1),s(n,"hedonistic",-1),s(n,"heedless",-1),s(n,"hefty",-1),s(n,"hegemonism",-1),s(n,"hegemonistic",-1),s(n,"hegemony",-1),s(n,"heinous",-1),s(n,"hell",-2),s(n,"hell-bent",-2),s(n,"hellion",-1),s(n,"hells",-1),s(n,"helpless",-3),s(n,"helplessly",-3),s(n,"helplessness",-1),s(n,"heresy",-1),s(n,"heretic",-1),s(n,"heretical",-1),s(n,"hesitant",-1),s(n,"hestitant",-1),s(n,"hideous",-1),s(n,"hideously",-1),s(n,"hideousness",-1),s(n,"high-priced",-1),s(n,"hiliarious",-1),s(n,"hinder",-1),s(n,"hindrance",-1),s(n,"hiss",-1),s(n,"hissed",-1),s(n,"hissing",-1),s(n,"ho-hum",-1),s(n,"hoard",-1),s(n,"hoax",-5),s(n,"hobble",-5),s(n,"hogs",-1),s(n,"hollow",-1),s(n,"hoodium",-1),s(n,"hoodwink",-1),s(n,"hooligan",-1),s(n,"hopeless",-2),s(n,"hopelessly",-2),s(n,"hopelessness",-2),s(n,"horde",-2),s(n,"horrendous",-1),s(n,"horrendously",-1),s(n,"horrible",-1),s(n,"horrid",-1),s(n,"horrific",-1),s(n,"horrified",-1),s(n,"horrifies",-1),s(n,"horrify",-1),s(n,"horrifying",-1),s(n,"horrifys",-1),s(n,"hostage",-1),s(n,"hostile",-1),s(n,"hostilities",-1),s(n,"hostility",-1),s(n,"hotbeds",-1),s(n,"hothead",-1),s(n,"hotheaded",-1),s(n,"hothouse",-1),s(n,"hubris",-1),s(n,"huckster",-1),s(n,"hum",-1),s(n,"humid",-1),s(n,"humiliate",-3),s(n,"humiliating",-3),s(n,"humiliation",-3),s(n,"humming",-1),s(n,"hung",-3),s(n,"hurt",-5),s(n,"hurted",-5),s(n,"hurtful",-5),s(n,"hurting",-5),s(n,"hurts",-4),s(n,"hustler",-1),s(n,"hype",-1),s(n,"hypocricy",-3),s(n,"hypocrisy",-3),s(n,"hypocrite",-3),s(n,"hypocrites",-3),s(n,"hypocritical",-3),s(n,"hypocritically",-3),s(n,"hysteria",-2),s(n,"hysteric",-2),s(n,"hysterical",-2),s(n,"hysterically",-2),s(n,"hysterics",-2),s(n,"idiocies",-1),s(n,"idiocy",-1),s(n,"idiot",-3),s(n,"idiotic",-3),s(n,"idiotically",-3),s(n,"idiots",-3),s(n,"idle",-1),s(n,"ignoble",-1),s(n,"ignominious",-3),s(n,"ignominiously",-3),s(n,"ignominy",-3),s(n,"ignorance",-5),s(n,"ignorant",-5),s(n,"ignore",-5),s(n,"ill-advised",-2),s(n,"ill-conceived",-2),s(n,"ill-defined",-2),s(n,"ill-designed",-2),s(n,"ill-fated",-2),s(n,"ill-favored",-2),s(n,"ill-formed",-2),s(n,"ill-mannered",-2),s(n,"ill-natured",-2),s(n,"ill-sorted",-2),s(n,"ill-tempered",-2),s(n,"ill-treated",-2),s(n,"ill-treatment",-2),s(n,"ill-usage",-2),s(n,"ill-used",-2),s(n,"illegal",-4),s(n,"illegally",-4),s(n,"illegitimate",-1),s(n,"illicit",-1),s(n,"illiterate",-1),s(n,"illness",-1),s(n,"illogic",-1),s(n,"illogical",-1),s(n,"illogically",-1),s(n,"illusion",-1),s(n,"illusions",-1),s(n,"illusory",-1),s(n,"imaginary",-1),s(n,"imbalance",-1),s(n,"imbecile",-1),s(n,"imbroglio",-1),s(n,"immaterial",-1),s(n,"immature",-1),s(n,"imminence",-1),s(n,"imminently",-1),s(n,"immobilized",-1),s(n,"immoderate",-1),s(n,"immoderately",-1),s(n,"immodest",-1),s(n,"immoral",-1),s(n,"immorality",-1),s(n,"immorally",-1),s(n,"immovable",-1),s(n,"impair",-3),s(n,"impaired",-1),s(n,"impasse",-1),s(n,"impatience",-2),s(n,"impatient",-1),s(n,"impatiently",-1),s(n,"impeach",-1),s(n,"impedance",-1),s(n,"impede",-1),s(n,"impediment",-1),s(n,"impending",-1),s(n,"impenitent",-1),s(n,"imperfect",-1),s(n,"imperfection",-1),s(n,"imperfections",-1),s(n,"imperfectly",-3),s(n,"imperialist",-2),s(n,"imperil",-2),s(n,"imperious",-1),s(n,"imperiously",-1),s(n,"impermissible",-1),s(n,"impersonal",-1),s(n,"impertinent",-1),s(n,"impetuous",-1),s(n,"impetuously",-1),s(n,"impiety",-1),s(n,"impinge",-1),s(n,"impious",-1),s(n,"implacable",-1),s(n,"implausible",-1),s(n,"implausibly",-1),s(n,"implicate",-1),s(n,"implication",-1),s(n,"implode",-2),s(n,"impolite",-1),s(n,"impolitely",-1),s(n,"impolitic",-1),s(n,"importunate",-1),s(n,"importune",-1),s(n,"impose",-1),s(n,"imposers",-1),s(n,"imposing",-1),s(n,"imposition",-1),s(n,"impossible",-3),s(n,"impossiblity",-3),s(n,"impossibly",-1),s(n,"impotent",-2),s(n,"impoverish",-1),s(n,"impoverished",-1),s(n,"impractical",-1),s(n,"imprecate",-1),s(n,"imprecise",-2),s(n,"imprecisely",-1),s(n,"imprecision",-1),s(n,"imprison",-1),s(n,"imprisonment",-1),s(n,"improbability",-1),s(n,"improbable",-1),s(n,"improbably",-1),s(n,"improper",-1),s(n,"improperly",-1),s(n,"impropriety",-1),s(n,"imprudence",-1),s(n,"imprudent",-1),s(n,"impudence",-1),s(n,"impudent",-1),s(n,"impudently",-1),s(n,"impugn",-1),s(n,"impulsive",-3),s(n,"impulsively",-3),s(n,"impunity",-1),s(n,"impure",-1),s(n,"impurity",-1),s(n,"inability",-1),s(n,"inaccuracies",-1),s(n,"inaccuracy",-1),s(n,"inaccurate",-1),s(n,"inaccurately",-1),s(n,"inaction",-1),s(n,"inactive",-1),s(n,"inadequacy",-1),s(n,"inadequate",-1),s(n,"inadequately",-1),s(n,"inadverent",-1),s(n,"inadverently",-1),s(n,"inadvisable",-1),s(n,"inadvisably",-1),s(n,"inane",-1),s(n,"inanely",-1),s(n,"inappropriate",-1),s(n,"inappropriately",-1),s(n,"inapt",-1),s(n,"inaptitude",-1),s(n,"inarticulate",-1),s(n,"inattentive",-1),s(n,"inaudible",-1),s(n,"incapable",-1),s(n,"incapably",-1),s(n,"incautious",-1),s(n,"incendiary",-1),s(n,"incense",-2),s(n,"incessant",-1),s(n,"incessantly",-1),s(n,"incite",-1),s(n,"incitement",-1),s(n,"incivility",-1),s(n,"inclement",-1),s(n,"incognizant",-1),s(n,"incoherence",-1),s(n,"incoherent",-1),s(n,"incoherently",-1),s(n,"incommensurate",-1),s(n,"incomparable",-1),s(n,"incomparably",-1),s(n,"incompatability",-2),s(n,"incompatibility",-2),s(n,"incompatible",-2),s(n,"incompetence",-2),s(n,"incompetent",-2),s(n,"incompetently",-2),s(n,"incomplete",-3),s(n,"incompliant",-3),s(n,"incomprehensible",-3),s(n,"incomprehension",-3),s(n,"inconceivable",-3),s(n,"inconceivably",-3),s(n,"incongruous",-3),s(n,"incongruously",-3),s(n,"inconsequent",-3),s(n,"inconsequential",-1),s(n,"inconsequentially",-1),s(n,"inconsequently",-1),s(n,"inconsiderate",-1),s(n,"inconsiderately",-1),s(n,"inconsistence",-4),s(n,"inconsistencies",-1),s(n,"inconsistency",-1),s(n,"inconsistent",-4),s(n,"inconsolable",-1),s(n,"inconsolably",-1),s(n,"inconstant",-1),s(n,"inconvenience",-1),s(n,"inconveniently",-1),s(n,"incorrect",-5),s(n,"incorrectly",-1),s(n,"incorrigible",-1),s(n,"incorrigibly",-1),s(n,"incredulous",-1),s(n,"incredulously",-1),s(n,"inculcate",-1),s(n,"indecency",-5),s(n,"indecent",-5),s(n,"indecently",-5),s(n,"indecision",-2),s(n,"indecisive",-2),s(n,"indecisively",-1),s(n,"indecorum",-1),s(n,"indefensible",-1),s(n,"indelicate",-1),s(n,"indeterminable",-1),s(n,"indeterminably",-1),s(n,"indeterminate",-1),s(n,"indifference",-1),s(n,"indifferent",-1),s(n,"indigent",-1),s(n,"indignant",-1),s(n,"indignantly",-1),s(n,"indignation",-1),s(n,"indignity",-1),s(n,"indiscernible",-1),s(n,"indiscreet",-1),s(n,"indiscreetly",-1),s(n,"indiscretion",-1),s(n,"indiscriminate",-2),s(n,"indiscriminately",-2),s(n,"indiscriminating",-2),s(n,"indistinguishable",-2),s(n,"indoctrinate",-1),s(n,"indoctrination",-1),s(n,"indolent",-1),s(n,"indulge",-1),s(n,"ineffective",-1),s(n,"ineffectively",-1),s(n,"ineffectiveness",-1),s(n,"ineffectual",-1),s(n,"ineffectually",-1),s(n,"ineffectualness",-1),s(n,"inefficacious",-1),s(n,"inefficacy",-1),s(n,"inefficiency",-1),s(n,"inefficient",-1),s(n,"inefficiently",-1),s(n,"inelegance",-1),s(n,"inelegant",-1),s(n,"ineligible",-1),s(n,"ineloquent",-1),s(n,"ineloquently",-1),s(n,"inept",-1),s(n,"ineptitude",-1),s(n,"ineptly",-1),s(n,"inequalities",-1),s(n,"inequality",-1),s(n,"inequitable",-1),s(n,"inequitably",-1),s(n,"inequities",-1),s(n,"inescapable",-1),s(n,"inescapably",-1),s(n,"inessential",-1),s(n,"inevitable",-1),s(n,"inevitably",-1),s(n,"inexcusable",-1),s(n,"inexcusably",-1),s(n,"inexorable",-1),s(n,"inexorably",-1),s(n,"inexperience",-1),s(n,"inexperienced",-1),s(n,"inexpert",-1),s(n,"inexpertly",-1),s(n,"inexpiable",-1),s(n,"inexplainable",-1),s(n,"inextricable",-1),s(n,"inextricably",-1),s(n,"infamous",-1),s(n,"infamously",-1),s(n,"infamy",-1),s(n,"infected",-4),s(n,"infection",-1),s(n,"infections",-1),s(n,"inferior",-1),s(n,"inferiority",-1),s(n,"infernal",-1),s(n,"infest",-1),s(n,"infested",-1),s(n,"infidel",-1),s(n,"infidels",-1),s(n,"infiltrator",-1),s(n,"infiltrators",-1),s(n,"infirm",-1),s(n,"inflame",-1),s(n,"inflammation",-1),s(n,"inflammatory",-1),s(n,"inflammed",-1),s(n,"inflated",-1),s(n,"inflationary",-1),s(n,"inflexible",-1),s(n,"inflict",-1),s(n,"infraction",-1),s(n,"infringe",-1),s(n,"infringement",-1),s(n,"infringements",-1),s(n,"infuriate",-2),s(n,"infuriated",-2),s(n,"infuriating",-2),s(n,"infuriatingly",-2),s(n,"inglorious",-2),s(n,"ingrate",-2),s(n,"ingratitude",-2),s(n,"inhibit",-2),s(n,"inhibition",-2),s(n,"inhospitable",-2),s(n,"inhospitality",-2),s(n,"inhuman",-1),s(n,"inhumane",-3),s(n,"inhumanity",-3),s(n,"inimical",-1),s(n,"inimically",-1),s(n,"iniquitous",-1),s(n,"iniquity",-1),s(n,"injudicious",-1),s(n,"injure",-3),s(n,"injurious",-3),s(n,"injury",-3),s(n,"injustice",-3),s(n,"injustices",-1),s(n,"innuendo",-1),s(n,"inoperable",-1),s(n,"inopportune",-1),s(n,"inordinate",-1),s(n,"inordinately",-1),s(n,"insane",-3),s(n,"insanely",-3),s(n,"insanity",-3),s(n,"insatiable",-1),s(n,"insecure",-1),s(n,"insecurity",-1),s(n,"insensible",-2),s(n,"insensitive",-2),s(n,"insensitively",-3),s(n,"insensitivity",-3),s(n,"insidious",-3),s(n,"insidiously",-2),s(n,"insignificance",-3),s(n,"insignificant",-3),s(n,"insignificantly",-3),s(n,"insincere",-4),s(n,"insincerely",-4),s(n,"insincerity",-4),s(n,"insinuate",-2),s(n,"insinuating",-1),s(n,"insinuation",-1),s(n,"insociable",-1),s(n,"insolence",-1),s(n,"insolent",-1),s(n,"insolently",-1),s(n,"insolvent",-1),s(n,"insouciance",-1),s(n,"instability",-1),s(n,"instable",-2),s(n,"instigate",-2),s(n,"instigator",-2),s(n,"instigators",-2),s(n,"insubordinate",-4),s(n,"insubstantial",-4),s(n,"insubstantially",-4),s(n,"insufferable",-2),s(n,"insufferably",-2),s(n,"insufficiency",-2),s(n,"insufficient",-2),s(n,"insufficiently",-2),s(n,"insular",-1),s(n,"insult",-5),s(n,"insulted",-1),s(n,"insulting",-1),s(n,"insultingly",-1),s(n,"insults",-1),s(n,"insupportable",-1),s(n,"insupportably",-1),s(n,"insurmountable",-1),s(n,"insurmountably",-1),s(n,"insurrection",-1),s(n,"intefere",-1),s(n,"inteferes",-1),s(n,"intense",-1),s(n,"interfere",-1),s(n,"interference",-1),s(n,"interferes",-1),s(n,"intermittent",-1),s(n,"interrupt",-1),s(n,"interruption",-1),s(n,"interruptions",-1),s(n,"intimidate",-1),s(n,"intimidating",-1),s(n,"intimidatingly",-1),s(n,"intimidation",-1),s(n,"intolerable",-1),s(n,"intolerablely",-1),s(n,"intolerance",-1),s(n,"intoxicate",-1),s(n,"intractable",-1),s(n,"intransigence",-1),s(n,"intransigent",-1),s(n,"intrude",-4),s(n,"intrusion",-4),s(n,"intrusive",-1),s(n,"inundate",-1),s(n,"inundated",-1),s(n,"invader",-1),s(n,"invalid",-5),s(n,"invalidate",-1),s(n,"invalidity",-1),s(n,"invasive",-1),s(n,"invective",-1),s(n,"inveigle",-1),s(n,"invidious",-1),s(n,"invidiously",-1),s(n,"invidiousness",-1),s(n,"invisible",-4),s(n,"involuntarily",-1),s(n,"involuntary",-1),s(n,"irascible",-1),s(n,"irate",-1),s(n,"irately",-1),s(n,"ire",-1),s(n,"irk",-1),s(n,"irked",-1),s(n,"irking",-1),s(n,"irks",-1),s(n,"irksome",-1),s(n,"irksomely",-1),s(n,"irksomeness",-1),s(n,"irksomenesses",-1),s(n,"ironic",-3),s(n,"ironical",-3),s(n,"ironically",-3),s(n,"ironies",-3),s(n,"irony",-3),s(n,"irragularity",-1),s(n,"irrational",-1),s(n,"irrationalities",-1),s(n,"irrationality",-1),s(n,"irrationally",-1),s(n,"irrationals",-1),s(n,"irreconcilable",-1),s(n,"irrecoverable",-1),s(n,"irrecoverableness",-1),s(n,"irrecoverablenesses",-1),s(n,"irrecoverably",-1),s(n,"irredeemable",-1),s(n,"irredeemably",-1),s(n,"irreformable",-1),s(n,"irregular",-2),s(n,"irregularity",-2),s(n,"irrelevance",-2),s(n,"irrelevant",-2),s(n,"irreparable",-2),s(n,"irreplacible",-2),s(n,"irrepressible",-2),s(n,"irresolute",-2),s(n,"irresolvable",-2),s(n,"irresponsible",-2),s(n,"irresponsibly",-1),s(n,"irretating",-1),s(n,"irretrievable",-1),s(n,"irreversible",-1),s(n,"irritable",-1),s(n,"irritably",-1),s(n,"irritant",-1),s(n,"irritate",-1),s(n,"irritated",-1),s(n,"irritating",-1),s(n,"irritation",-1),s(n,"irritations",-1),s(n,"isolate",-2),s(n,"isolated",-2),s(n,"isolation",-2),s(n,"issue",-2),s(n,"issues",-1),s(n,"itch",-1),s(n,"itching",-3),s(n,"itchy",-1),s(n,"jabber",-1),s(n,"jaded",-1),s(n,"jagged",-1),s(n,"jam",-1),s(n,"jarring",-1),s(n,"jaundiced",-1),s(n,"jealous",-2),s(n,"jealously",-2),s(n,"jealousness",-2),s(n,"jealousy",-2),s(n,"jeer",-1),s(n,"jeering",-1),s(n,"jeeringly",-1),s(n,"jeers",-1),s(n,"jeopardize",-1),s(n,"jeopardy",-1),s(n,"jerk",-1),s(n,"jerky",-1),s(n,"jitter",-1),s(n,"jitters",-1),s(n,"jittery",-1),s(n,"job-killing",-1),s(n,"jobless",-3),s(n,"joke",-1),s(n,"joker",-1),s(n,"jolt",-3),s(n,"judder",-1),s(n,"juddering",-1),s(n,"judders",-1),s(n,"jumpy",-1),s(n,"junk",-3),s(n,"junky",-1),s(n,"junkyard",-1),s(n,"jutter",-1),s(n,"jutters",-1),s(n,"kaput",-1),s(n,"kill",-5),s(n,"killed",-5),s(n,"killer",-4),s(n,"killing",-4),s(n,"killjoy",-4),s(n,"kills",-4),s(n,"knave",-1),s(n,"knife",-1),s(n,"knock",-2),s(n,"knotted",-1),s(n,"kook",-1),s(n,"kooky",-1),s(n,"lack",-3),s(n,"lackadaisical",-1),s(n,"lacked",-1),s(n,"lackey",-1),s(n,"lackeys",-1),s(n,"lacking",-1),s(n,"lackluster",-1),s(n,"lacks",-1),s(n,"laconic",-1),s(n,"lag",-1),s(n,"lagged",-1),s(n,"lagging",-1),s(n,"laggy",-1),s(n,"lags",-1),s(n,"laid-off",-1),s(n,"lambast",-1),s(n,"lambaste",-1),s(n,"lame",-1),s(n,"lame-duck",-1),s(n,"lament",-1),s(n,"lamentable",-1),s(n,"lamentably",-1),s(n,"languid",-1),s(n,"languish",-1),s(n,"languor",-1),s(n,"languorous",-1),s(n,"languorously",-1),s(n,"lanky",-1),s(n,"lapse",-1),s(n,"lapsed",-1),s(n,"lapses",-1),s(n,"lascivious",-1),s(n,"last-ditch",-1),s(n,"latency",-1),s(n,"laughable",-1),s(n,"laughably",-1),s(n,"laughingstock",-1),s(n,"lawbreaker",-1),s(n,"lawbreaking",-1),s(n,"lawless",-1),s(n,"lawlessness",-1),s(n,"layoff",-1),s(n,"layoff-happy",-1),s(n,"lazy",-3),s(n,"leak",-1),s(n,"leakage",-1),s(n,"leakages",-1),s(n,"leaking",-1),s(n,"leaks",-1),s(n,"leaky",-1),s(n,"lech",-1),s(n,"lecher",-1),s(n,"lecherous",-1),s(n,"lechery",-1),s(n,"leech",-1),s(n,"leer",-1),s(n,"leery",-1),s(n,"left-leaning",-1),s(n,"lemon",-1),s(n,"lengthy",-1),s(n,"less-developed",-1),s(n,"lesser-known",-1),s(n,"letch",-1),s(n,"lethal",-1),s(n,"lethargic",-1),s(n,"lethargy",-1),s(n,"lewd",-1),s(n,"lewdly",-1),s(n,"lewdness",-1),s(n,"liability",-1),s(n,"liable",-2),s(n,"liar",-3),s(n,"liars",-4),s(n,"licentious",-1),s(n,"licentiously",-1),s(n,"licentiousness",-1),s(n,"lie",-3),s(n,"lied",-3),s(n,"lier",-3),s(n,"lies",-3),s(n,"life-threatening",-4),s(n,"lifeless",-4),s(n,"limit",-3),s(n,"limitation",-3),s(n,"limitations",-3),s(n,"limited",-3),s(n,"limits",-3),s(n,"limp",-1),s(n,"listless",-1),s(n,"litigious",-1),s(n,"little-known",-1),s(n,"livid",-1),s(n,"lividly",-1),s(n,"loath",-1),s(n,"loathe",-1),s(n,"loathing",-4),s(n,"loathly",-4),s(n,"loathsome",-1),s(n,"loathsomely",-1),s(n,"lone",-1),s(n,"loneliness",-1),s(n,"lonely",-1),s(n,"loner",-1),s(n,"lonesome",-1),s(n,"long-time",-1),s(n,"long-winded",-1),s(n,"longing",-3),s(n,"longingly",-3),s(n,"loophole",-2),s(n,"loopholes",-2),s(n,"loose",-3),s(n,"loot",-1),s(n,"lorn",-1),s(n,"lose",-5),s(n,"loser",-5),s(n,"losers",-5),s(n,"loses",-5),s(n,"losing",-5),s(n,"loss",-5),s(n,"losses",-5),s(n,"lost",-5),s(n,"loud",-2),s(n,"louder",-2),s(n,"lousy",-2),s(n,"loveless",-2),s(n,"lovelorn",-2),s(n,"low-rated",-2),s(n,"lowly",-2),s(n,"ludicrous",-2),s(n,"ludicrously",-2),s(n,"lugubrious",-2),s(n,"lukewarm",-2),s(n,"lull",-2),s(n,"lumpy",-2),s(n,"lunatic",-2),s(n,"lunaticism",-2),s(n,"lurch",-2),s(n,"lure",-1),s(n,"lurid",-1),s(n,"lurk",-1),s(n,"lurking",-1),s(n,"lying",-1),s(n,"macabre",-1),s(n,"mad",-1),s(n,"madden",-1),s(n,"maddening",-1),s(n,"maddeningly",-1),s(n,"madder",-1),s(n,"madly",-3),s(n,"madman",-3),s(n,"madness",-3),s(n,"maladjusted",-3),s(n,"maladjustment",-3),s(n,"malady",-3),s(n,"malaise",-3),s(n,"malcontent",-3),s(n,"malcontented",-1),s(n,"maledict",-1),s(n,"malevolence",-1),s(n,"malevolent",-1),s(n,"malevolently",-1),s(n,"malice",-1),s(n,"malicious",-1),s(n,"maliciously",-1),s(n,"maliciousness",-1),s(n,"malign",-2),s(n,"malignant",-2),s(n,"malodorous",-2),s(n,"maltreatment",-2),s(n,"mangle",-2),s(n,"mangled",-2),s(n,"mangles",-2),s(n,"mangling",-2),s(n,"mania",-3),s(n,"maniac",-3),s(n,"maniacal",-3),s(n,"manic",-3),s(n,"manipulate",-3),s(n,"manipulation",-3),s(n,"manipulative",-3),s(n,"manipulators",-3),s(n,"mar",-1),s(n,"marginal",-1),s(n,"marginally",-1),s(n,"martyrdom",-1),s(n,"martyrdom-seeking",-1),s(n,"mashed",-1),s(n,"massacre",-1),s(n,"massacres",-1),s(n,"matte",-1),s(n,"mawkish",-1),s(n,"mawkishly",-1),s(n,"mawkishness",-1),s(n,"meager",-1),s(n,"meaningless",-4),s(n,"meanness",-2),s(n,"measly",-2),s(n,"meddle",-2),s(n,"meddlesome",-2),s(n,"mediocre",-2),s(n,"mediocrity",-2),s(n,"melancholy",-2),s(n,"melodramatic",-2),s(n,"melodramatically",-1),s(n,"meltdown",-2),s(n,"menace",-2),s(n,"menacing",-2),s(n,"menacingly",-2),s(n,"mendacious",-2),s(n,"mendacity",-2),s(n,"menial",-2),s(n,"merciless",-2),s(n,"mercilessly",-1),s(n,"mess",-1),s(n,"messed",-1),s(n,"messes",-1),s(n,"messing",-1),s(n,"messy",-1),s(n,"midget",-1),s(n,"miff",-1),s(n,"militancy",-1),s(n,"mindless",-1),s(n,"mindlessly",-1),s(n,"mirage",-1),s(n,"mire",-1),s(n,"misalign",-1),s(n,"misaligned",-1),s(n,"misaligns",-1),s(n,"misapprehend",-1),s(n,"misbecome",-1),s(n,"misbecoming",-1),s(n,"misbegotten",-1),s(n,"misbehave",-1),s(n,"misbehavior",-1),s(n,"miscalculate",-1),s(n,"miscalculation",-1),s(n,"miscellaneous",-1),s(n,"mischief",-1),s(n,"mischievous",-1),s(n,"mischievously",-1),s(n,"misconception",-1),s(n,"misconceptions",-3),s(n,"miscreant",-3),s(n,"miscreants",-3),s(n,"misdirection",-3),s(n,"miser",-3),s(n,"miserable",-3),s(n,"miserableness",-3),s(n,"miserably",-3),s(n,"miseries",-2),s(n,"miserly",-2),s(n,"misery",-2),s(n,"misfit",-1),s(n,"misfortune",-5),s(n,"misgiving",-3),s(n,"misgivings",-3),s(n,"misguidance",-3),s(n,"misguide",-3),s(n,"misguided",-3),s(n,"mishandle",-3),s(n,"mishap",-4),s(n,"misinform",-2),s(n,"misinformed",-2),s(n,"misinterpret",-2),s(n,"misjudge",-2),s(n,"misjudgment",-3),s(n,"mislead",-3),s(n,"misleading",-3),s(n,"misleadingly",-3),s(n,"mislike",-4),s(n,"mismanage",-2),s(n,"mispronounce",-2),s(n,"mispronounced",-2),s(n,"mispronounces",-2),s(n,"misread",-3),s(n,"misreading",-3),s(n,"misrepresent",-2),s(n,"misrepresentation",-2),s(n,"miss",-1),s(n,"missed",-1),s(n,"misses",-1),s(n,"misstatement",-1),s(n,"mist",-1),s(n,"mistake",-3),s(n,"mistaken",-3),s(n,"mistakenly",-3),s(n,"mistakes",-3),s(n,"mistified",-1),s(n,"mistress",-1),s(n,"mistrust",-1),s(n,"mistrustful",-1),s(n,"mistrustfully",-1),s(n,"mists",-1),s(n,"misunderstand",-2),s(n,"misunderstanding",-2),s(n,"misunderstandings",-2),s(n,"misunderstood",-2),s(n,"misuse",-3),s(n,"moan",-1),s(n,"mobster",-1),s(n,"mock",-3),s(n,"mocked",-3),s(n,"mockeries",-1),s(n,"mockery",-1),s(n,"mocking",-1),s(n,"mockingly",-1),s(n,"mocks",-1),s(n,"molest",-5),s(n,"molestation",-5),s(n,"monotonous",-2),s(n,"monotony",-2),s(n,"monster",-5),s(n,"monstrosities",-2),s(n,"monstrosity",-2),s(n,"monstrous",-3),s(n,"monstrously",-3),s(n,"moody",-4),s(n,"moot",-1),s(n,"mope",-1),s(n,"morbid",-3),s(n,"morbidly",-3),s(n,"mordant",-2),s(n,"mordantly",-1),s(n,"moribund",-1),s(n,"moron",-4),s(n,"moronic",-4),s(n,"morons",-4),s(n,"mortification",-1),s(n,"mortified",-1),s(n,"mortify",-3),s(n,"mortifying",-1),s(n,"motionless",-1),s(n,"motley",-1),s(n,"mourn",-4),s(n,"mourner",-3),s(n,"mournful",-3),s(n,"mournfully",-3),s(n,"muddle",-1),s(n,"muddy",-1),s(n,"mudslinger",-1),s(n,"mudslinging",-1),s(n,"mulish",-1),s(n,"multi-polarization",-1),s(n,"mundane",-1),s(n,"murder",-3),s(n,"murderer",-1),s(n,"murderous",-1),s(n,"murderously",-1),s(n,"murky",-1),s(n,"muscle-flexing",-1),s(n,"mushy",-1),s(n,"musty",-1),s(n,"mysterious",-3),s(n,"mysteriously",-3),s(n,"mystery",-3),s(n,"mystify",-3),s(n,"myth",-2),s(n,"nag",-1),s(n,"nagging",-2),s(n,"naive",-5),s(n,"naively",-5),s(n,"narrower",-1),s(n,"nastily",-1),s(n,"nastiness",-1),s(n,"nasty",-3),s(n,"naughty",-4),s(n,"nauseate",-1),s(n,"nauseates",-1),s(n,"nauseating",-1),s(n,"nauseatingly",-1),s(n,"naïve",-3),s(n,"nebulous",-1),s(n,"nebulously",-1),s(n,"needless",-1),s(n,"needlessly",-1),s(n,"needy",-3),s(n,"nefarious",-1),s(n,"nefariously",-1),s(n,"negate",-1),s(n,"negation",-1),s(n,"negative",-5),s(n,"negatives",-4),s(n,"negativity",-4),s(n,"neglect",-4),s(n,"neglected",-3),s(n,"negligence",-3),s(n,"negligent",-3),s(n,"nemesis",-2),s(n,"nepotism",-1),s(n,"nervous",-4),s(n,"nervously",-4),s(n,"nervousness",-4),s(n,"nettle",-1),s(n,"nettlesome",-1),s(n,"neurotic",-1),s(n,"neurotically",-1),s(n,"niggle",-1),s(n,"niggles",-1),s(n,"nightmare",-4),s(n,"nightmarish",-4),s(n,"nightmarishly",-3),s(n,"nitpick",-1),s(n,"nitpicking",-1),s(n,"noise",-3),s(n,"noises",-3),s(n,"noisier",-1),s(n,"noisy",-2),s(n,"non-confidence",-1),s(n,"nonexistent",-1),s(n,"nonresponsive",-1),s(n,"nonsense",-4),s(n,"nosey",-3),s(n,"notoriety",-1),s(n,"notorious",-1),s(n,"notoriously",-1),s(n,"noxious",-1),s(n,"nuisance",-1),s(n,"numb",-3),s(n,"obese",-1),s(n,"object",-1),s(n,"objection",-1),s(n,"objectionable",-1),s(n,"objections",-1),s(n,"oblique",-1),s(n,"obliterate",-1),s(n,"obliterated",-1),s(n,"oblivious",-1),s(n,"obnoxious",-1),s(n,"obnoxiously",-1),s(n,"obscene",-5),s(n,"obscenely",-5),s(n,"obscenity",-5),s(n,"obscure",-1),s(n,"obscured",-1),s(n,"obscures",-1),s(n,"obscurity",-1),s(n,"obsess",-4),s(n,"obsessive",-1),s(n,"obsessively",-1),s(n,"obsessiveness",-1),s(n,"obsolete",-1),s(n,"obstacle",-1),s(n,"obstinate",-1),s(n,"obstinately",-1),s(n,"obstruct",-1),s(n,"obstructed",-1),s(n,"obstructing",-1),s(n,"obstruction",-1),s(n,"obstructs",-1),s(n,"obtrusive",-1),s(n,"obtuse",-1),s(n,"occlude",-1),s(n,"occluded",-1),s(n,"occludes",-1),s(n,"occluding",-1),s(n,"odd",-3),s(n,"odder",-3),s(n,"oddest",-1),s(n,"oddities",-1),s(n,"oddity",-1),s(n,"oddly",-2),s(n,"odor",-1),s(n,"offence",-3),s(n,"offend",-3),s(n,"offender",-3),s(n,"offending",-3),s(n,"offenses",-3),s(n,"offensive",-3),s(n,"offensively",-3),s(n,"offensiveness",-1),s(n,"officious",-1),s(n,"ominous",-1),s(n,"ominously",-1),s(n,"omission",-1),s(n,"omit",-1),s(n,"one-sided",-1),s(n,"onerous",-1),s(n,"onerously",-1),s(n,"onslaught",-1),s(n,"opinionated",-1),s(n,"opponent",-1),s(n,"opportunistic",-1),s(n,"oppose",-1),s(n,"opposition",-1),s(n,"oppositions",-1),s(n,"oppress",-1),s(n,"oppression",-5),s(n,"oppressive",-5),s(n,"oppressively",-5),s(n,"oppressiveness",-5),s(n,"oppressors",-5),s(n,"ordeal",-3),s(n,"orphan",-2),s(n,"ostracize",-1),s(n,"outbreak",-1),s(n,"outburst",-3),s(n,"outbursts",-3),s(n,"outcast",-2),s(n,"outcry",-3),s(n,"outlaw",-4),s(n,"outmoded",-2),s(n,"outrage",-5),s(n,"outraged",-5),s(n,"outrageous",-5),s(n,"outrageously",-5),s(n,"outrageousness",-5),s(n,"outrages",-1),s(n,"outsider",-1),s(n,"over-acted",-1),s(n,"over-awe",-1),s(n,"over-balanced",-1),s(n,"over-hyped",-1),s(n,"over-priced",-1),s(n,"over-valuation",-1),s(n,"overact",-2),s(n,"overacted",-2),s(n,"overawe",-1),s(n,"overbalance",-1),s(n,"overbalanced",-1),s(n,"overbearing",-1),s(n,"overbearingly",-1),s(n,"overblown",-1),s(n,"overdo",-1),s(n,"overdone",-1),s(n,"overdue",-1),s(n,"overemphasize",-1),s(n,"overheat",-1),s(n,"overkill",-1),s(n,"overloaded",-1),s(n,"overlook",-1),s(n,"overpaid",-1),s(n,"overpayed",-1),s(n,"overplay",-1),s(n,"overpower",-1),s(n,"overpriced",-1),s(n,"overrated",-1),s(n,"overreach",-1),s(n,"overrun",-3),s(n,"overshadow",-3),s(n,"oversight",-1),s(n,"oversights",-1),s(n,"oversimplification",-1),s(n,"oversimplified",-1),s(n,"oversimplify",-1),s(n,"oversize",-3),s(n,"overstate",-1),s(n,"overstated",-1),s(n,"overstatement",-1),s(n,"overstatements",-1),s(n,"overstates",-1),s(n,"overtaxed",-1),s(n,"overthrow",-1),s(n,"overthrows",-1),s(n,"overturn",-2),s(n,"overweight",-1),s(n,"overwhelm",-1),s(n,"overwhelmed",-1),s(n,"overwhelming",-1),s(n,"overwhelmingly",-1),s(n,"overwhelms",-1),s(n,"overzealous",-1),s(n,"overzealously",-1),s(n,"overzelous",-1),s(n,"pain",-4),s(n,"painful",-4),s(n,"painfull",-4),s(n,"painfully",-4),s(n,"pains",-4),s(n,"pale",-2),s(n,"pales",-2),s(n,"paltry",-1),s(n,"pan",-1),s(n,"pandemonium",-1),s(n,"pander",-1),s(n,"pandering",-1),s(n,"panders",-1),s(n,"panic",-1),s(n,"panick",-3),s(n,"panicked",-3),s(n,"panicking",-3),s(n,"panicky",-1),s(n,"paradoxical",-1),s(n,"paradoxically",-1),s(n,"paralize",-2),s(n,"paralyzed",-2),s(n,"paranoia",-3),s(n,"paranoid",-3),s(n,"parasite",-3),s(n,"pariah",-1),s(n,"parody",-4),s(n,"partiality",-1),s(n,"partisan",-1),s(n,"partisans",-1),s(n,"passe",-1),s(n,"passive",-1),s(n,"passiveness",-1),s(n,"pathetic",-1),s(n,"pathetically",-1),s(n,"patronize",-1),s(n,"paucity",-1),s(n,"pauper",-1),s(n,"paupers",-1),s(n,"payback",-1),s(n,"peculiar",-1),s(n,"peculiarly",-1),s(n,"pedantic",-1),s(n,"peeled",-1),s(n,"peeve",-1),s(n,"peeved",-1),s(n,"peevish",-1),s(n,"peevishly",-1),s(n,"penalize",-3),s(n,"penalty",-3),s(n,"perfidious",-1),s(n,"perfidity",-1),s(n,"perfunctory",-1),s(n,"peril",-1),s(n,"perilous",-1),s(n,"perilously",-1),s(n,"perish",-1),s(n,"pernicious",-1),s(n,"perplex",-1),s(n,"perplexed",-1),s(n,"perplexing",-1),s(n,"perplexity",-1),s(n,"persecute",-1),s(n,"persecution",-1),s(n,"pertinacious",-1),s(n,"pertinaciously",-1),s(n,"pertinacity",-1),s(n,"perturb",-1),s(n,"perturbed",-1),s(n,"pervasive",-2),s(n,"perverse",-2),s(n,"perversely",-1),s(n,"perversion",-1),s(n,"perversity",-1),s(n,"pervert",-1),s(n,"perverted",-1),s(n,"perverts",-1),s(n,"pessimism",-3),s(n,"pessimistic",-3),s(n,"pessimistically",-3),s(n,"pest",-1),s(n,"pestilent",-1),s(n,"petrified",-1),s(n,"petrify",-1),s(n,"pettifog",-1),s(n,"petty",-1),s(n,"phobia",-2),s(n,"phobic",-1),s(n,"phony",-1),s(n,"picket",-1),s(n,"picketed",-1),s(n,"picketing",-1),s(n,"pickets",-1),s(n,"picky",-1),s(n,"pig",-3),s(n,"pigs",-3),s(n,"pillage",-1),s(n,"pillory",-1),s(n,"pimple",-2),s(n,"pinch",-1),s(n,"pique",-1),s(n,"pitiable",-1),s(n,"pitiful",-1),s(n,"pitifully",-1),s(n,"pitiless",-1),s(n,"pitilessly",-1),s(n,"pittance",-1),s(n,"pity",-3),s(n,"plagiarize",-1),s(n,"plague",-1),s(n,"plasticky",-1),s(n,"plaything",-1),s(n,"plea",-1),s(n,"pleas",-1),s(n,"plebeian",-1),s(n,"plight",-1),s(n,"plot",-1),s(n,"plotters",-1),s(n,"ploy",-1),s(n,"plunder",-1),s(n,"plunderer",-1),s(n,"pointless",-1),s(n,"pointlessly",-1),s(n,"poison",-2),s(n,"poisonous",-2),s(n,"poisonously",-2),s(n,"pokey",-1),s(n,"poky",-1),s(n,"polarisation",-3),s(n,"polemize",-1),s(n,"pollute",-2),s(n,"polluter",-2),s(n,"polluters",-2),s(n,"polution",-2),s(n,"pompous",-1),s(n,"poor",-2),s(n,"poorer",-2),s(n,"poorest",-2),s(n,"poorly",-2),s(n,"posturing",-1),s(n,"pout",-1),s(n,"poverty",-4),s(n,"powerless",-4),s(n,"prate",-1),s(n,"pratfall",-1),s(n,"prattle",-1),s(n,"precarious",-1),s(n,"precariously",-1),s(n,"precipitate",-1),s(n,"precipitous",-1),s(n,"predatory",-1),s(n,"predicament",-1),s(n,"prejudge",-2),s(n,"prejudice",-2),s(n,"prejudices",-2),s(n,"prejudicial",-2),s(n,"premeditated",-1),s(n,"preoccupy",-1),s(n,"preposterous",-1),s(n,"preposterously",-1),s(n,"presumptuous",-1),s(n,"presumptuously",-1),s(n,"pretence",-1),s(n,"pretend",-1),s(n,"pretense",-1),s(n,"pretentious",-1),s(n,"pretentiously",-1),s(n,"prevaricate",-1),s(n,"pricey",-1),s(n,"pricier",-1),s(n,"prick",-1),s(n,"prickle",-1),s(n,"prickles",-1),s(n,"prideful",-1),s(n,"prik",-1),s(n,"primitive",-1),s(n,"prison",-1),s(n,"prisoner",-1),s(n,"problem",-3),s(n,"problematic",-3),s(n,"problems",-3),s(n,"procrastinate",-2),s(n,"procrastinates",-2),s(n,"procrastination",-2),s(n,"profane",-1),s(n,"profanity",-1),s(n,"prohibit",-3),s(n,"prohibitive",-3),s(n,"prohibitively",-3),s(n,"propaganda",-1),s(n,"propagandize",-1),s(n,"proprietary",-1),s(n,"prosecute",-1),s(n,"protest",-3),s(n,"protested",-3),s(n,"protesting",-1),s(n,"protests",-1),s(n,"protracted",-1),s(n,"provocation",-1),s(n,"provocative",-1),s(n,"provoke",-1),s(n,"pry",-1),s(n,"pugnacious",-1),s(n,"pugnaciously",-1),s(n,"pugnacity",-1),s(n,"punch",-1),s(n,"punish",-3),s(n,"punishable",-3),s(n,"punitive",-3),s(n,"punk",-2),s(n,"puny",-2),s(n,"puppet",-1),s(n,"puppets",-1),s(n,"puzzled",-1),s(n,"puzzlement",-1),s(n,"puzzling",-1),s(n,"quack",-1),s(n,"qualm",-1),s(n,"qualms",-1),s(n,"quandary",-1),s(n,"quarrel",-3),s(n,"quarrellous",-1),s(n,"quarrellously",-1),s(n,"quarrels",-1),s(n,"quarrelsome",-1),s(n,"quash",-1),s(n,"queer",-1),s(n,"questionable",-1),s(n,"quibble",-1),s(n,"quibbles",-1),s(n,"quitter",-1),s(n,"rabid",-1),s(n,"racism",-1),s(n,"racist",-5),s(n,"racists",-5),s(n,"racy",-2),s(n,"radical",-4),s(n,"radicalization",-5),s(n,"radically",-5),s(n,"radicals",-5),s(n,"rage",-4),s(n,"ragged",-3),s(n,"raging",-3),s(n,"rail",-1),s(n,"raked",-1),s(n,"rampage",-3),s(n,"rampant",-3),s(n,"ramshackle",-1),s(n,"rancor",-1),s(n,"randomly",-2),s(n,"rankle",-1),s(n,"rant",-1),s(n,"ranted",-1),s(n,"ranting",-1),s(n,"rantingly",-1),s(n,"rants",-1),s(n,"rape",-5),s(n,"raped",-5),s(n,"raping",-5),s(n,"rascal",-4),s(n,"rascals",-4),s(n,"rash",-3),s(n,"rattle",-2),s(n,"rattled",-2),s(n,"rattles",-2),s(n,"ravage",-3),s(n,"raving",-2),s(n,"reactionary",-1),s(n,"rebellious",-3),s(n,"rebuff",-1),s(n,"rebuke",-1),s(n,"recalcitrant",-1),s(n,"recant",-1),s(n,"recession",-1),s(n,"recessionary",-1),s(n,"reckless",-4),s(n,"recklessly",-4),s(n,"recklessness",-4),s(n,"recoil",-1),s(n,"recourses",-1),s(n,"redundancy",-1),s(n,"redundant",-1),s(n,"refusal",-1),s(n,"refuse",-4),s(n,"refused",-2),s(n,"refuses",-2),s(n,"refusing",-2),s(n,"refutation",-1),s(n,"refute",-1),s(n,"refuted",-1),s(n,"refutes",-1),s(n,"refuting",-1),s(n,"regress",-1),s(n,"regression",-1),s(n,"regressive",-1),s(n,"regret",-4),s(n,"regreted",-4),s(n,"regretful",-4),s(n,"regretfully",-4),s(n,"regrets",-4),s(n,"regrettable",-4),s(n,"regrettably",-4),s(n,"regretted",-4),s(n,"reject",-5),s(n,"rejected",-5),s(n,"rejecting",-5),s(n,"rejection",-5),s(n,"rejects",-5),s(n,"relapse",-5),s(n,"relentless",-3),s(n,"relentlessly",-3),s(n,"relentlessness",-3),s(n,"reluctance",-2),s(n,"reluctant",-2),s(n,"reluctantly",-2),s(n,"remorse",-4),s(n,"remorseful",-4),s(n,"remorsefully",-4),s(n,"remorseless",-4),s(n,"remorselessly",-4),s(n,"remorselessness",-4),s(n,"renounce",-1),s(n,"renunciation",-1),s(n,"repel",-1),s(n,"repetitive",-3),s(n,"reprehensible",-1),s(n,"reprehensibly",-1),s(n,"reprehension",-1),s(n,"reprehensive",-1),s(n,"repress",-1),s(n,"repression",-1),s(n,"repressive",-1),s(n,"reprimand",-1),s(n,"reproach",-1),s(n,"reproachful",-1),s(n,"reprove",-1),s(n,"reprovingly",-1),s(n,"repudiate",-1),s(n,"repudiation",-1),s(n,"repugn",-1),s(n,"repugnance",-1),s(n,"repugnant",-1),s(n,"repugnantly",-1),s(n,"repulse",-3),s(n,"repulsed",-2),s(n,"repulsing",-2),s(n,"repulsive",-3),s(n,"repulsively",-1),s(n,"repulsiveness",-1),s(n,"resent",-1),s(n,"resentful",-1),s(n,"resentment",-1),s(n,"resignation",-1),s(n,"resigned",-1),s(n,"resistance",-1),s(n,"restless",-3),s(n,"restlessness",-3),s(n,"restrict",-3),s(n,"restricted",-3),s(n,"restriction",-3),s(n,"restrictive",-3),s(n,"resurgent",-1),s(n,"retaliate",-2),s(n,"retaliatory",-2),s(n,"retard",-3),s(n,"retarded",-3),s(n,"retardedness",-3),s(n,"retards",-3),s(n,"reticent",-2),s(n,"retract",-2),s(n,"retreat",-2),s(n,"retreated",-2),s(n,"revenge",-5),s(n,"revengeful",-5),s(n,"revengefully",-5),s(n,"revert",-4),s(n,"revile",-3),s(n,"reviled",-3),s(n,"revoke",-3),s(n,"revolt",-4),s(n,"revolting",-4),s(n,"revoltingly",-4),s(n,"revulsion",-3),s(n,"revulsive",-3),s(n,"rhapsodize",-1),s(n,"rhetoric",-3),s(n,"rhetorical",-3),s(n,"ricer",-2),s(n,"ridicule",-2),s(n,"ridicules",-2),s(n,"ridiculous",-3),s(n,"ridiculously",-2),s(n,"rife",-1),s(n,"rift",-5),s(n,"rifts",-5),s(n,"rigid",-3),s(n,"rigidity",-2),s(n,"rigidness",-2),s(n,"rile",-1),s(n,"riled",-1),s(n,"rip",-4),s(n,"rip-off",-3),s(n,"ripoff",-3),s(n,"ripped",-3),s(n,"risk",-4),s(n,"risks",-4),s(n,"risky",-4),s(n,"rival",-5),s(n,"rivalry",-5),s(n,"roadblocks",-3),s(n,"rocky",-1),s(n,"rogue",-3),s(n,"rollercoaster",-2),s(n,"rot",-2),s(n,"rotten",-2),s(n,"rough",-2),s(n,"rremediable",-1),s(n,"rubbish",-2),s(n,"rude",-4),s(n,"rue",-1),s(n,"ruffian",-1),s(n,"ruffle",-1),s(n,"ruin",-3),s(n,"ruined",-3),s(n,"ruining",-3),s(n,"ruinous",-3),s(n,"ruins",-3),s(n,"rumbling",-2),s(n,"rumor",-2),s(n,"rumors",-2),s(n,"rumours",-2),s(n,"rumple",-1),s(n,"run-down",-2),s(n,"runaway",-2),s(n,"rupture",-4),s(n,"rust",-3),s(n,"rusts",-3),s(n,"rusty",-3),s(n,"rut",-2),s(n,"ruthless",-2),s(n,"ruthlessly",-1),s(n,"ruthlessness",-1),s(n,"ruts",-1),s(n,"sabotage",-3),s(n,"sack",-1),s(n,"sacrificed",-3),s(n,"sad",-4),s(n,"sadden",-4),s(n,"sadly",-4),s(n,"sadness",-4),s(n,"sag",-1),s(n,"sagged",-1),s(n,"sagging",-1),s(n,"saggy",-1),s(n,"sags",-1),s(n,"salacious",-1),s(n,"sanctimonious",-1),s(n,"sap",-1),s(n,"sarcasm",-2),s(n,"sarcastic",-2),s(n,"sarcastically",-2),s(n,"sardonic",-4),s(n,"sardonically",-4),s(n,"sass",-1),s(n,"satirical",-1),s(n,"satirize",-1),s(n,"savage",-3),s(n,"savaged",-3),s(n,"savagery",-4),s(n,"savages",-4),s(n,"scaly",-1),s(n,"scam",-5),s(n,"scams",-5),s(n,"scandal",-5),s(n,"scandalize",-5),s(n,"scandalized",-5),s(n,"scandalous",-5),s(n,"scandalously",-5),s(n,"scandals",-5),s(n,"scandel",-1),s(n,"scandels",-1),s(n,"scant",-1),s(n,"scapegoat",-1),s(n,"scar",-1),s(n,"scarce",-1),s(n,"scarcely",-4),s(n,"scarcity",-4),s(n,"scare",-5),s(n,"scared",-5),s(n,"scarier",-4),s(n,"scariest",-5),s(n,"scarily",-4),s(n,"scarred",-1),s(n,"scars",-1),s(n,"scary",-4),s(n,"scathing",-1),s(n,"scathingly",-1),s(n,"sceptical",-1),s(n,"scoff",-1),s(n,"scoffingly",-1),s(n,"scold",-2),s(n,"scolded",-1),s(n,"scolding",-1),s(n,"scoldingly",-1),s(n,"scorching",-1),s(n,"scorchingly",-1),s(n,"scorn",-1),s(n,"scornful",-1),s(n,"scornfully",-1),s(n,"scoundrel",-1),s(n,"scourge",-1),s(n,"scowl",-1),s(n,"scramble",-1),s(n,"scrambled",-1),s(n,"scrambles",-1),s(n,"scrambling",-1),s(n,"scrap",-3),s(n,"scratch",-3),s(n,"scratched",-1),s(n,"scratches",-1),s(n,"scratchy",-1),s(n,"scream",-1),s(n,"screech",-1),s(n,"screw-up",-1),s(n,"screwed",-1),s(n,"screwed-up",-1),s(n,"screwy",-1),s(n,"scuff",-1),s(n,"scuffs",-1),s(n,"scum",-2),s(n,"scummy",-1),s(n,"second-class",-1),s(n,"second-tier",-1),s(n,"secretive",-1),s(n,"sedentary",-3),s(n,"seedy",-1),s(n,"seethe",-1),s(n,"seething",-1),s(n,"self-coup",-1),s(n,"self-criticism",-1),s(n,"self-defeating",-1),s(n,"self-destructive",-1),s(n,"self-humiliation",-1),s(n,"self-interest",-1),s(n,"self-interested",-1),s(n,"self-serving",-1),s(n,"selfinterested",-1),s(n,"selfish",-4),s(n,"selfishly",-4),s(n,"selfishness",-4),s(n,"semi-retarded",-1),s(n,"senile",-5),s(n,"sensationalize",-1),s(n,"senseless",-3),s(n,"senselessly",-3),s(n,"seriousness",-1),s(n,"sermonize",-1),s(n,"servitude",-1),s(n,"set-up",-1),s(n,"setback",-3),s(n,"setbacks",-3),s(n,"sever",-2),s(n,"severe",-2),s(n,"severity",-2),s(n,"sh*t",-5),s(n,"shabby",-1),s(n,"shadowy",-1),s(n,"shady",-2),s(n,"shake",-2),s(n,"shaky",-2),s(n,"shallow",-2),s(n,"sham",-3),s(n,"shambles",-3),s(n,"shame",-3),s(n,"shameful",-2),s(n,"shamefully",-1),s(n,"shamefulness",-1),s(n,"shameless",-3),s(n,"shamelessly",-3),s(n,"shamelessness",-3),s(n,"shark",-2),s(n,"sharply",-2),s(n,"shatter",-1),s(n,"shemale",-1),s(n,"shimmer",-1),s(n,"shimmy",-1),s(n,"shipwreck",-2),s(n,"shirk",-2),s(n,"shirker",-1),s(n,"shit",-5),s(n,"shiver",-1),s(n,"shock",-3),s(n,"shocked",-3),s(n,"shocking",-3),s(n,"shockingly",-3),s(n,"shoddy",-1),s(n,"short-lived",-1),s(n,"shortage",-3),s(n,"shortchange",-1),s(n,"shortcoming",-1),s(n,"shortcomings",-1),s(n,"shortness",-2),s(n,"shortsighted",-4),s(n,"shortsightedness",-2),s(n,"showdown",-2),s(n,"shrew",-1),s(n,"shriek",-1),s(n,"shrill",-1),s(n,"shrilly",-1),s(n,"shrivel",-1),s(n,"shroud",-1),s(n,"shrouded",-1),s(n,"shrug",-1),s(n,"shun",-1),s(n,"shunned",-1),s(n,"sick",-3),s(n,"sicken",-3),s(n,"sickening",-3),s(n,"sickeningly",-1),s(n,"sickly",-1),s(n,"sickness",-1),s(n,"sidetrack",-1),s(n,"sidetracked",-1),s(n,"siege",-1),s(n,"sillily",-1),s(n,"silly",-1),s(n,"simplistic",-3),s(n,"simplistically",-1),s(n,"sin",-3),s(n,"sinful",-3),s(n,"sinfully",-3),s(n,"sinister",-3),s(n,"sinisterly",-1),s(n,"sink",-2),s(n,"sinking",-1),s(n,"skeletons",-2),s(n,"skeptic",-3),s(n,"skeptical",-3),s(n,"skeptically",-3),s(n,"skepticism",-3),s(n,"sketchy",-4),s(n,"skimpy",-2),s(n,"skinny",-2),s(n,"skittish",-1),s(n,"skittishly",-1),s(n,"skulk",-1),s(n,"slack",-1),s(n,"slander",-3),s(n,"slanderer",-3),s(n,"slanderous",-3),s(n,"slanderously",-3),s(n,"slanders",-1),s(n,"slap",-2),s(n,"slashing",-1),s(n,"slaughter",-5),s(n,"slaughtered",-5),s(n,"slave",-4),s(n,"slaves",-4),s(n,"sleazy",-3),s(n,"slime",-1),s(n,"slog",-1),s(n,"slogged",-1),s(n,"slogging",-1),s(n,"slogs",-1),s(n,"sloooooooooooooow",-1),s(n,"sloooow",-1),s(n,"slooow",-1),s(n,"sloow",-1),s(n,"sloppily",-1),s(n,"sloppy",-1),s(n,"sloth",-1),s(n,"slothful",-1),s(n,"slow",-1),s(n,"slow-moving",-1),s(n,"slowed",-1),s(n,"slower",-1),s(n,"slowest",-1),s(n,"slowly",-1),s(n,"sloww",-1),s(n,"slowww",-1),s(n,"slowwww",-1),s(n,"slug",-1),s(n,"sluggish",-1),s(n,"slump",-1),s(n,"slumping",-1),s(n,"slumpping",-1),s(n,"slur",-1),s(n,"slut",-5),s(n,"sluts",-5),s(n,"sly",-1),s(n,"smack",-2),s(n,"smallish",-2),s(n,"smash",-2),s(n,"smear",-1),s(n,"smell",-1),s(n,"smelled",-1),s(n,"smelling",-1),s(n,"smells",-1),s(n,"smelly",-1),s(n,"smelt",-1),s(n,"smoke",-2),s(n,"smokescreen",-1),s(n,"smolder",-1),s(n,"smoldering",-1),s(n,"smother",-1),s(n,"smoulder",-1),s(n,"smouldering",-1),s(n,"smudge",-1),s(n,"smudged",-1),s(n,"smudges",-1),s(n,"smudging",-1),s(n,"smug",-1),s(n,"smugly",-1),s(n,"smut",-1),s(n,"smuttier",-1),s(n,"smuttiest",-1),s(n,"smutty",-1),s(n,"snag",-1),s(n,"snagged",-1),s(n,"snagging",-1),s(n,"snags",-1),s(n,"snappish",-1),s(n,"snappishly",-1),s(n,"snare",-1),s(n,"snarky",-1),s(n,"snarl",-1),s(n,"sneak",-2),s(n,"sneakily",-2),s(n,"sneaky",-2),s(n,"sneer",-1),s(n,"sneering",-1),s(n,"sneeringly",-1),s(n,"snob",-1),s(n,"snobbish",-1),s(n,"snobby",-1),s(n,"snobish",-1),s(n,"snobs",-1),s(n,"snub",-1),s(n,"so-cal",-1),s(n,"soapy",-1),s(n,"sob",-1),s(n,"sober",-1),s(n,"sobering",-1),s(n,"solemn",-1),s(n,"solicitude",-1),s(n,"somber",-1),s(n,"sore",-1),s(n,"sorely",-1),s(n,"soreness",-1),s(n,"sorrow",-1),s(n,"sorrowful",-1),s(n,"sorrowfully",-1),s(n,"sorry",-1),s(n,"sour",-2),s(n,"sourly",-1),s(n,"spade",-1),s(n,"spank",-3),s(n,"spendy",-1),s(n,"spew",-1),s(n,"spewed",-1),s(n,"spewing",-1),s(n,"spews",-1),s(n,"spilling",-1),s(n,"spinster",-1),s(n,"spiritless",-3),s(n,"spite",-1),s(n,"spiteful",-1),s(n,"spitefully",-1),s(n,"spitefulness",-1),s(n,"splatter",-1),s(n,"split",-2),s(n,"splitting",-1),s(n,"spoil",-2),s(n,"spoilage",-1),s(n,"spoilages",-1),s(n,"spoiled",-1),s(n,"spoilled",-1),s(n,"spoils",-2),s(n,"spook",-1),s(n,"spookier",-1),s(n,"spookiest",-1),s(n,"spookily",-1),s(n,"spooky",-1),s(n,"spoon-fed",-1),s(n,"spoon-feed",-1),s(n,"spoonfed",-2),s(n,"sporadic",-1),s(n,"spotty",-1),s(n,"spurious",-1),s(n,"spurn",-1),s(n,"sputter",-1),s(n,"squabble",-1),s(n,"squabbling",-1),s(n,"squander",-1),s(n,"squash",-1),s(n,"squeak",-1),s(n,"squeaks",-1),s(n,"squeaky",-1),s(n,"squeal",-1),s(n,"squealing",-1),s(n,"squeals",-1),s(n,"squirm",-1),s(n,"stab",-2),s(n,"stagnant",-1),s(n,"stagnate",-1),s(n,"stagnation",-1),s(n,"staid",-1),s(n,"stain",-1),s(n,"stains",-1),s(n,"stale",-1),s(n,"stalemate",-1),s(n,"stall",-1),s(n,"stalls",-1),s(n,"stammer",-1),s(n,"stampede",-1),s(n,"standstill",-1),s(n,"stark",-2),s(n,"starkly",-2),s(n,"startle",-1),s(n,"startling",-1),s(n,"startlingly",-1),s(n,"starvation",-1),s(n,"starve",-2),s(n,"static",-1),s(n,"steal",-3),s(n,"stealing",-3),s(n,"steals",-3),s(n,"steep",-1),s(n,"steeply",-1),s(n,"stench",-1),s(n,"stereotype",-1),s(n,"stereotypical",-1),s(n,"stereotypically",-1),s(n,"stern",-1),s(n,"stew",-1),s(n,"sticky",-2),s(n,"stiff",-1),s(n,"stiffness",-1),s(n,"stifle",-1),s(n,"stifling",-1),s(n,"stiflingly",-1),s(n,"stigma",-1),s(n,"stigmatize",-1),s(n,"sting",-1),s(n,"stinging",-1),s(n,"stingingly",-1),s(n,"stingy",-1),s(n,"stink",-2),s(n,"stinks",-2),s(n,"stodgy",-2),s(n,"stole",-2),s(n,"stolen",-2),s(n,"stooge",-2),s(n,"stooges",-2),s(n,"stormy",-2),s(n,"straggle",-2),s(n,"straggler",-2),s(n,"strain",-2),s(n,"strained",-1),s(n,"straining",-1),s(n,"strange",-3),s(n,"strangely",-3),s(n,"stranger",-1),s(n,"strangest",-1),s(n,"strangle",-1),s(n,"streaky",-1),s(n,"strenuous",-1),s(n,"stress",-3),s(n,"stresses",-1),s(n,"stressful",-1),s(n,"stressfully",-1),s(n,"stricken",-1),s(n,"strict",-3),s(n,"strictly",-3),s(n,"strident",-1),s(n,"stridently",-1),s(n,"strife",-1),s(n,"strike",-1),s(n,"stringent",-1),s(n,"stringently",-1),s(n,"struck",-3),s(n,"struggle",-1),s(n,"struggled",-1),s(n,"struggles",-1),s(n,"struggling",-1),s(n,"strut",-1),s(n,"stubborn",-4),s(n,"stubbornly",-4),s(n,"stubbornness",-4),s(n,"stuck",-3),s(n,"stuffy",-1),s(n,"stumble",-1),s(n,"stumbled",-1),s(n,"stumbles",-1),s(n,"stump",-1),s(n,"stumped",-1),s(n,"stumps",-1),s(n,"stun",-2),s(n,"stunt",-3),s(n,"stunted",-3),s(n,"stupid",-1),s(n,"stupidest",-1),s(n,"stupidity",-1),s(n,"stupidly",-1),s(n,"stupified",-1),s(n,"stupify",-1),s(n,"stupor",-1),s(n,"stutter",-1),s(n,"stuttered",-1),s(n,"stuttering",-1),s(n,"stutters",-1),s(n,"sty",-1),s(n,"stymied",-1),s(n,"sub-par",-3),s(n,"subdued",-1),s(n,"subjected",-1),s(n,"subjection",-1),s(n,"subjugate",-1),s(n,"subjugation",-1),s(n,"submissive",-3),s(n,"subordinate",-1),s(n,"subpoena",-1),s(n,"subpoenas",-1),s(n,"subservience",-1),s(n,"subservient",-1),s(n,"substandard",-1),s(n,"subtract",-3),s(n,"subversion",-1),s(n,"subversive",-1),s(n,"subversively",-1),s(n,"subvert",-1),s(n,"succumb",-2),s(n,"suck",-4),s(n,"sucked",-3),s(n,"sucker",-3),s(n,"sucks",-3),s(n,"sucky",-2),s(n,"sue",-3),s(n,"sued",-3),s(n,"sueing",-3),s(n,"sues",-1),s(n,"suffer",-1),s(n,"suffered",-1),s(n,"sufferer",-1),s(n,"sufferers",-1),s(n,"suffering",-1),s(n,"suffers",-1),s(n,"suffocate",-1),s(n,"sugar-coat",-1),s(n,"sugar-coated",-1),s(n,"sugarcoated",-1),s(n,"suicidal",-5),s(n,"suicide",-5),s(n,"sulk",-4),s(n,"sullen",-1),s(n,"sully",-1),s(n,"sunder",-1),s(n,"sunk",-3),s(n,"sunken",-3),s(n,"superficial",-1),s(n,"superficiality",-1),s(n,"superficially",-1),s(n,"superfluous",-1),s(n,"superstition",-3),s(n,"superstitious",-3),s(n,"suppress",-1),s(n,"suppression",-1),s(n,"surrender",-1),s(n,"susceptible",-1),s(n,"suspect",-2),s(n,"suspicion",-2),s(n,"suspicions",-2),s(n,"suspicious",-1),s(n,"suspiciously",-1),s(n,"swagger",-1),s(n,"swamped",-1),s(n,"sweaty",-2),s(n,"swelled",-1),s(n,"swelling",-1),s(n,"swindle",-1),s(n,"swipe",-3),s(n,"swollen",-1),s(n,"symptom",-1),s(n,"symptoms",-1),s(n,"syndrome",-1),s(n,"taboo",-1),s(n,"tacky",-1),s(n,"taint",-1),s(n,"tainted",-1),s(n,"tamper",-1),s(n,"tangle",-1),s(n,"tangled",-1),s(n,"tangles",-1),s(n,"tank",-1),s(n,"tanked",-1),s(n,"tanks",-1),s(n,"tantrum",-1),s(n,"tardy",-1),s(n,"tarnish",-2),s(n,"tarnished",-1),s(n,"tarnishes",-1),s(n,"tarnishing",-1),s(n,"tattered",-1),s(n,"taunt",-1),s(n,"taunting",-1),s(n,"tauntingly",-1),s(n,"taunts",-3),s(n,"taut",-1),s(n,"tawdry",-1),s(n,"taxing",-1),s(n,"tease",-1),s(n,"teasingly",-1),s(n,"tedious",-1),s(n,"tediously",-1),s(n,"temerity",-1),s(n,"temper",-3),s(n,"tempest",-2),s(n,"temptation",-1),s(n,"tenderness",-1),s(n,"tense",-1),s(n,"tension",-1),s(n,"tentative",-1),s(n,"tentatively",-1),s(n,"tenuous",-1),s(n,"tenuously",-1),s(n,"tepid",-1),s(n,"terrible",-5),s(n,"terribleness",-5),s(n,"terribly",-4),s(n,"terror",-4),s(n,"terror-genic",-1),s(n,"terrorism",-5),s(n,"terrorize",-5),s(n,"testily",-1),s(n,"testy",-1),s(n,"tetchily",-1),s(n,"tetchy",-1),s(n,"thankless",-2),s(n,"thicker",-1),s(n,"thirst",-1),s(n,"thorny",-4),s(n,"thoughtless",-3),s(n,"thoughtlessly",-3),s(n,"thoughtlessness",-3),s(n,"thrash",-4),s(n,"threat",-4),s(n,"threaten",-4),s(n,"threatening",-4),s(n,"threats",-4),s(n,"threesome",-3),s(n,"throb",-2),s(n,"throbbed",-2),s(n,"throbbing",-2),s(n,"throbs",-2),s(n,"throttle",-1),s(n,"thug",-4),s(n,"thumb-down",-3),s(n,"thumbs-down",-3),s(n,"thwart",-2),s(n,"time-consuming",-1),s(n,"timid",-3),s(n,"timidity",-3),s(n,"timidly",-3),s(n,"timidness",-3),s(n,"tin-y",-1),s(n,"tingled",-1),s(n,"tingling",-1),s(n,"tired",-2),s(n,"tiresome",-2),s(n,"tiring",-1),s(n,"tiringly",-1),s(n,"toil",-1),s(n,"toll",-1),s(n,"top-heavy",-2),s(n,"topple",-1),s(n,"torment",-5),s(n,"tormented",-5),s(n,"torrent",-2),s(n,"tortuous",-1),s(n,"torture",-4),s(n,"tortured",-4),s(n,"tortures",-4),s(n,"torturing",-4),s(n,"torturous",-4),s(n,"torturously",-4),s(n,"totalitarian",-2),s(n,"touchy",-1),s(n,"toughness",-1),s(n,"tout",-1),s(n,"touted",-1),s(n,"touts",-1),s(n,"toxic",-4),s(n,"traduce",-1),s(n,"tragedy",-5),s(n,"tragic",-5),s(n,"tragically",-5),s(n,"traitor",-4),s(n,"traitorous",-1),s(n,"traitorously",-1),s(n,"tramp",-1),s(n,"trample",-1),s(n,"transgress",-2),s(n,"transgression",-2),s(n,"trap",-4),s(n,"traped",-4),s(n,"trapped",-4),s(n,"trash",-1),s(n,"trashed",-1),s(n,"trashy",-1),s(n,"trauma",-2),s(n,"traumatic",-2),s(n,"traumatically",-1),s(n,"traumatize",-1),s(n,"traumatized",-1),s(n,"travesties",-1),s(n,"travesty",-1),s(n,"treacherous",-1),s(n,"treacherously",-1),s(n,"treachery",-1),s(n,"treason",-1),s(n,"treasonous",-1),s(n,"trick",-1),s(n,"tricked",-1),s(n,"trickery",-1),s(n,"tricky",-1),s(n,"trivial",-1),s(n,"trivialize",-1),s(n,"trouble",-2),s(n,"troubled",-2),s(n,"troublemaker",-1),s(n,"troubles",-1),s(n,"troublesome",-1),s(n,"troublesomely",-1),s(n,"troubling",-1),s(n,"troublingly",-1),s(n,"truant",-1),s(n,"tumble",-1),s(n,"tumbled",-1),s(n,"tumbles",-1),s(n,"tumultuous",-1),s(n,"turbulent",-1),s(n,"turmoil",-1),s(n,"twist",-1),s(n,"twisted",-1),s(n,"twists",-1),s(n,"two-faced",-1),s(n,"two-faces",-1),s(n,"tyrannical",-4),s(n,"tyrannically",-4),s(n,"tyranny",-4),s(n,"tyrant",-4),s(n,"ugh",-1),s(n,"uglier",-4),s(n,"ugliest",-5),s(n,"ugliness",-4),s(n,"ugly",-3),s(n,"ulterior",-3),s(n,"ultimatum",-3),s(n,"ultimatums",-3),s(n,"ultra-hardline",-1),s(n,"un-viewable",-1),s(n,"unable",-1),s(n,"unacceptable",-2),s(n,"unacceptablely",-2),s(n,"unacceptably",-2),s(n,"unaccessible",-2),s(n,"unaccustomed",-2),s(n,"unachievable",-2),s(n,"unaffordable",-2),s(n,"unappealing",-4),s(n,"unattractive",-3),s(n,"unauthentic",-3),s(n,"unavailable",-3),s(n,"unavoidably",-3),s(n,"unbearable",-3),s(n,"unbearablely",-3),s(n,"unbelievable",-3),s(n,"unbelievably",-3),s(n,"uncaring",-3),s(n,"uncertain",-1),s(n,"uncivil",-1),s(n,"uncivilized",-1),s(n,"unclean",-2),s(n,"unclear",-2),s(n,"uncollectible",-2),s(n,"uncomfortable",-2),s(n,"uncomfortably",-2),s(n,"uncomfy",-2),s(n,"uncompetitive",-2),s(n,"uncompromising",-1),s(n,"uncompromisingly",-1),s(n,"unconfirmed",-1),s(n,"unconstitutional",-1),s(n,"uncontrolled",-2),s(n,"unconvincing",-2),s(n,"unconvincingly",-2),s(n,"uncooperative",-2),s(n,"uncouth",-1),s(n,"uncreative",-1),s(n,"undecided",-1),s(n,"undefined",-3),s(n,"undependability",-1),s(n,"undependable",-1),s(n,"undercut",-2),s(n,"undercuts",-1),s(n,"undercutting",-1),s(n,"underdog",-1),s(n,"underestimate",-1),s(n,"underlings",-1),s(n,"undermine",-3),s(n,"undermined",-3),s(n,"undermines",-3),s(n,"undermining",-3),s(n,"underpaid",-3),s(n,"underpowered",-2),s(n,"undersized",-2),s(n,"undesirable",-3),s(n,"undetermined",-1),s(n,"undid",-1),s(n,"undignified",-1),s(n,"undissolved",-1),s(n,"undocumented",-1),s(n,"undone",-1),s(n,"undue",-1),s(n,"unease",-1),s(n,"uneasily",-1),s(n,"uneasiness",-1),s(n,"uneasy",-1),s(n,"uneconomical",-2),s(n,"unemployed",-3),s(n,"unequal",-1),s(n,"unethical",-3),s(n,"uneven",-1),s(n,"uneventful",-1),s(n,"unexpected",-1),s(n,"unexpectedly",-1),s(n,"unexplained",-1),s(n,"unfairly",-1),s(n,"unfaithful",-1),s(n,"unfaithfully",-1),s(n,"unfamiliar",-1),s(n,"unfavorable",-1),s(n,"unfeeling",-1),s(n,"unfinished",-1),s(n,"unfit",-2),s(n,"unforeseen",-3),s(n,"unforgiving",-1),s(n,"unfortunate",-5),s(n,"unfortunately",-5),s(n,"unfounded",-1),s(n,"unfriendly",-2),s(n,"unfulfilled",-1),s(n,"unfunded",-1),s(n,"ungovernable",-1),s(n,"ungrateful",-1),s(n,"unhappily",-4),s(n,"unhappiness",-4),s(n,"unhappy",-4),s(n,"unhealthy",-4),s(n,"unhelpful",-3),s(n,"unilateralism",-1),s(n,"unimaginable",-1),s(n,"unimaginably",-1),s(n,"unimportant",-1),s(n,"uninformed",-1),s(n,"uninsured",-1),s(n,"unintelligible",-1),s(n,"unintelligile",-1),s(n,"unipolar",-1),s(n,"unjust",-1),s(n,"unjustifiable",-1),s(n,"unjustifiably",-1),s(n,"unjustified",-1),s(n,"unjustly",-1),s(n,"unkind",-1),s(n,"unkindly",-1),s(n,"unknown",-1),s(n,"unlamentable",-1),s(n,"unlamentably",-1),s(n,"unlawful",-2),s(n,"unlawfully",-2),s(n,"unlawfulness",-2),s(n,"unleash",-1),s(n,"unlicensed",-1),s(n,"unlikely",-1),s(n,"unlucky",-1),s(n,"unmoved",-3),s(n,"unnatural",-2),s(n,"unnaturally",-2),s(n,"unnecessary",-4),s(n,"unneeded",-1),s(n,"unnerve",-1),s(n,"unnerved",-1),s(n,"unnerving",-1),s(n,"unnervingly",-1),s(n,"unnoticed",-2),s(n,"unobserved",-3),s(n,"unorthodox",-3),s(n,"unorthodoxy",-3),s(n,"unpleasant",-1),s(n,"unpleasantries",-2),s(n,"unpopular",-2),s(n,"unpredictable",-1),s(n,"unprepared",-1),s(n,"unproductive",-1),s(n,"unprofitable",-1),s(n,"unprove",-1),s(n,"unproved",-1),s(n,"unproven",-1),s(n,"unproves",-1),s(n,"unproving",-1),s(n,"unqualified",-1),s(n,"unravel",-1),s(n,"unraveled",-1),s(n,"unreachable",-1),s(n,"unreadable",-1),s(n,"unrealistic",-1),s(n,"unreasonable",-1),s(n,"unreasonably",-1),s(n,"unrelenting",-2),s(n,"unrelentingly",-2),s(n,"unreliability",-2),s(n,"unreliable",-2),s(n,"unresolved",-2),s(n,"unresponsive",-3),s(n,"unrest",-3),s(n,"unruly",-1),s(n,"unsafe",-1),s(n,"unsatisfactory",-1),s(n,"unsavory",-1),s(n,"unscrupulous",-1),s(n,"unscrupulously",-1),s(n,"unsecure",-2),s(n,"unseemly",-1),s(n,"unsettle",-3),s(n,"unsettled",-3),s(n,"unsettling",-3),s(n,"unsettlingly",-1),s(n,"unskilled",-4),s(n,"unsophisticated",-1),s(n,"unsound",-1),s(n,"unspeakable",-1),s(n,"unspeakablely",-1),s(n,"unspecified",-1),s(n,"unstable",-1),s(n,"unsteadily",-1),s(n,"unsteadiness",-1),s(n,"unsteady",-1),s(n,"unsuccessful",-1),s(n,"unsuccessfully",-1),s(n,"unsupported",-1),s(n,"unsupportive",-1),s(n,"unsure",-1),s(n,"unsuspecting",-1),s(n,"unsustainable",-1),s(n,"untenable",-1),s(n,"untested",-1),s(n,"unthinkable",-1),s(n,"unthinkably",-1),s(n,"untimely",-1),s(n,"untouched",-1),s(n,"untrue",-1),s(n,"untrustworthy",-1),s(n,"untruthful",-1),s(n,"unusable",-1),s(n,"unusably",-1),s(n,"unuseable",-1),s(n,"unuseably",-1),s(n,"unusual",-1),s(n,"unusually",-1),s(n,"unviewable",-1),s(n,"unwanted",-1),s(n,"unwarranted",-1),s(n,"unwatchable",-1),s(n,"unwelcome",-1),s(n,"unwell",-1),s(n,"unwieldy",-1),s(n,"unwilling",-1),s(n,"unwillingly",-1),s(n,"unwillingness",-1),s(n,"unwise",-1),s(n,"unwisely",-1),s(n,"unworkable",-1),s(n,"unworthy",-1),s(n,"unyielding",-1),s(n,"upbraid",-1),s(n,"upheaval",-1),s(n,"uprising",-1),s(n,"uproar",-3),s(n,"uproarious",-1),s(n,"uproariously",-1),s(n,"uproarous",-1),s(n,"uproarously",-1),s(n,"uproot",-2),s(n,"upset",-1),s(n,"upseting",-1),s(n,"upsets",-1),s(n,"upsetting",-1),s(n,"upsettingly",-1),s(n,"urgent",-1),s(n,"useless",-2),s(n,"usurp",-1),s(n,"usurper",-1),s(n,"utterly",-1),s(n,"vagrant",-1),s(n,"vague",-2),s(n,"vagueness",-1),s(n,"vain",-1),s(n,"vainly",-1),s(n,"vanity",-1),s(n,"vehement",-1),s(n,"vehemently",-1),s(n,"vengeance",-4),s(n,"vengeful",-4),s(n,"vengefully",-4),s(n,"vengefulness",-4),s(n,"venom",-3),s(n,"venomous",-3),s(n,"venomously",-3),s(n,"vent",-3),s(n,"vestiges",-1),s(n,"vex",-1),s(n,"vexation",-1),s(n,"vexing",-1),s(n,"vexingly",-1),s(n,"vibrate",-1),s(n,"vibrated",-1),s(n,"vibrates",-1),s(n,"vibrating",-1),s(n,"vibration",-1),s(n,"vice",-1),s(n,"vicious",-1),s(n,"viciously",-1),s(n,"viciousness",-1),s(n,"victimize",-1),s(n,"vile",-1),s(n,"vileness",-1),s(n,"vilify",-1),s(n,"villainous",-1),s(n,"villainously",-1),s(n,"villains",-1),s(n,"villian",-1),s(n,"villianous",-1),s(n,"villianously",-1),s(n,"villify",-1),s(n,"vindictive",-1),s(n,"vindictively",-1),s(n,"vindictiveness",-1),s(n,"violate",-1),s(n,"violation",-1),s(n,"violator",-1),s(n,"violators",-1),s(n,"violent",-1),s(n,"violently",-1),s(n,"viper",-1),s(n,"virulence",-1),s(n,"virulent",-1),s(n,"virulently",-1),s(n,"virus",-3),s(n,"vociferous",-1),s(n,"vociferously",-1),s(n,"volatile",-1),s(n,"volatility",-1),s(n,"vomit",-1),s(n,"vomited",-1),s(n,"vomiting",-1),s(n,"vomits",-1),s(n,"vulgar",-1),s(n,"vulnerable",-1),s(n,"wack",-1),s(n,"wail",-1),s(n,"wallow",-1),s(n,"wane",-1),s(n,"waning",-1),s(n,"wanton",-1),s(n,"war-like",-3),s(n,"warily",-3),s(n,"wariness",-3),s(n,"warlike",-3),s(n,"warned",-2),s(n,"warning",-2),s(n,"warp",-1),s(n,"warped",-1),s(n,"wary",-1),s(n,"washed-out",-1),s(n,"waste",-1),s(n,"wasted",-1),s(n,"wasteful",-1),s(n,"wastefulness",-1),s(n,"wasting",-1),s(n,"water-down",-1),s(n,"watered-down",-1),s(n,"wayward",-1),s(n,"weak",-4),s(n,"weaken",-4),s(n,"weakening",-3),s(n,"weaker",-3),s(n,"weakness",-3),s(n,"weaknesses",-3),s(n,"weariness",-1),s(n,"wearisome",-1),s(n,"weary",-1),s(n,"wedge",-1),s(n,"weed",-1),s(n,"weep",-1),s(n,"weird",-1),s(n,"weirdly",-1),s(n,"wheedle",-1),s(n,"whimper",-1),s(n,"whine",-3),s(n,"whining",-1),s(n,"whiny",-1),s(n,"whips",-1),s(n,"whore",-1),s(n,"whores",-1),s(n,"wicked",-1),s(n,"wickedly",-1),s(n,"wickedness",-1),s(n,"wild",-1),s(n,"wildly",-1),s(n,"wiles",-1),s(n,"wilt",-1),s(n,"wily",-1),s(n,"wimpy",-1),s(n,"wince",-1),s(n,"wobble",-1),s(n,"wobbled",-1),s(n,"wobbles",-1),s(n,"woe",-1),s(n,"woebegone",-1),s(n,"woeful",-1),s(n,"woefully",-1),s(n,"womanizer",-1),s(n,"womanizing",-1),s(n,"worn",-1),s(n,"worried",-1),s(n,"worriedly",-1),s(n,"worrier",-1),s(n,"worries",-1),s(n,"worrisome",-1),s(n,"worry",-1),s(n,"worrying",-1),s(n,"worryingly",-1),s(n,"worse",-5),s(n,"worsen",-5),s(n,"worsening",-5),s(n,"worst",-5),s(n,"worthless",-3),s(n,"worthlessly",-3),s(n,"worthlessness",-3),s(n,"wound",-3),s(n,"wounds",-3),s(n,"wrangle",-2),s(n,"wrath",-3),s(n,"wreak",-3),s(n,"wreaked",-3),s(n,"wreaks",-3),s(n,"wreck",-3),s(n,"wrest",-2),s(n,"wrestle",-2),s(n,"wretch",-3),s(n,"wretched",-3),s(n,"wretchedly",-2),s(n,"wretchedness",-2),s(n,"wrinkle",-3),s(n,"wrinkled",-3),s(n,"wrinkles",-3),s(n,"wrip",-1),s(n,"wripped",-1),s(n,"wripping",-1),s(n,"writhe",-1),s(n,"wrong",-3),s(n,"wrongful",-3),s(n,"wrongly",-3),s(n,"wrought",-3),s(n,"yawn",-2),s(n,"zap",-2),s(n,"zapped",-2),s(n,"zaps",-1),s(n,"zealot",-3),s(n,"zealous",-3),s(n,"zealously",-3),s(n,"zombie",-4),n)},o=0!==i.analyze(e.getLower("title"),r).score;return this.announce(o,o?this.getScore("titleSentiment"):0)}},{key:"isApplicable",value:function(){return"en"===rankMath.locale}}]),t}();t.default=l},function(e,t,n){var i,r,u,o;i=n(327),r=n(328),u=n(329),(o=function(e){this.options=e}).prototype.registerLanguage=function(e,t){u.addLanguage(e,t)},o.prototype.analyze=function(e,t,n){void 0===e&&(e=""),"function"==typeof t&&(n=t,t={});var o=(t=t||{}).language||"en",s=u.getLabels(o);"object"==typeof t.extras&&(s=Object.assign(s,t.extras));for(var a=r(e),l=0,c=[],d=[],f=[],p=a.length;p--;){var g=a[p];if(s.hasOwnProperty(g)){c.push(g);var h=s[g];(h=u.applyScoringStrategy(o,a,p,h))>0&&d.push(g),0>h&&f.push(g),l+=h}}var y={score:l,comparative:a.length>0?l/a.length:0,tokens:a,words:c,positive:d,negative:f};if("function"!=typeof n)return y;i.nextTick(function(){n(null,y)})},e.exports=o},function(e,t){var n,i,r=e.exports={};function u(){throw Error("setTimeout has not been defined")}function o(){throw Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===u||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:u}catch(e){n=u}try{i="function"==typeof clearTimeout?clearTimeout:o}catch(e){i=o}}();var a,l=[],c=!1,d=-1;function f(){c&&a&&(c=!1,a.length?l=a.concat(l):d=-1,l.length&&p())}function p(){if(!c){var e=s(f);c=!0;for(var t=l.length;t;){for(a=l,l=[];++d<t;)a&&a[d].run();d=-1,t=l.length}a=null,c=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===o||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function h(){}r.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;arguments.length>n;n++)t[n-1]=arguments[n];l.push(new g(e,t)),1!==l.length||c||s(p)},g.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=h,r.addListener=h,r.once=h,r.off=h,r.removeListener=h,r.removeAllListeners=h,r.emit=h,r.prependListener=h,r.prependOnceListener=h,r.listeners=function(e){return[]},r.binding=function(e){throw Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t){e.exports=function(e){return e.toLowerCase().replace(/\n/g," ").replace(/[.,\/#!$%\^&\*;:{}=_`\"~()]/g,"").split(" ")}},function(e,t,n){var i=n(330),r=n(245);Object.assign(r.labels,i);var u={en:r};e.exports={addLanguage:function(e,t){if(!t.labels)throw Error("language.labels must be defined!");Object.assign(t.labels,i),u[e]=t},getLanguage:function(e){if(!e)return u.en;if(!u[e])try{var t=n(334)("./"+e+"/index");this.addLanguage(e,t)}catch(t){throw Error("No language found: "+e)}return u[e]},getLabels:function(e){return this.getLanguage(e).labels},applyScoringStrategy:function(e,t,n,i){return(this.getLanguage(e).scoringStrategy||o).apply(t,n,i)}};var o={apply:function(e,t,n){return n}}},function(e){e.exports={"😂":1,"❤":3,"♥":3,"😍":3,"😭":-1,"😘":3,"😊":3,"👌":2,"💕":3,"👏":2,"😁":2,"☺":3,"♡":3,"👍":2,"😩":-2,"🙏":2,"✌":2,"😏":1,"😉":2,"🙌":2,"🙈":2,"💪":2,"😄":2,"😒":-2,"💃":3,"💖":3,"😃":2,"😔":-1,"🎉":3,"😜":2,"🌸":3,"💜":3,"💙":3,"✨":1,"💗":3,"★":1,"█":-1,"☀":2,"😡":-1,"😎":2,"💋":3,"😋":3,"🙊":2,"😴":-1,"🎶":2,"💞":3,"😌":2,"🔫":-1,"💛":3,"💁":1,"💚":3,"♫":1,"😞":-1,"😆":2,"😝":2,"😪":-1,"😫":-1,"👊":1,"💀":-2,"😀":2,"😚":3,"😻":3,"💘":3,"☕":1,"👋":2,"🎊":3,"🍕":2,"❄":2,"😕":-2,"💔":-1,"😤":-2,"😈":1,"✈":2,"🔝":2,"😰":-1,"⚽":3,"😑":-2,"👑":3,"👉":1,"🍃":1,"🎁":3,"😠":-2,"🐧":2,"☆":2,"🍀":1,"🎈":3,"🎅":1,"😓":-1,"😣":-2,"😐":-2,"✊":2,"😨":-1,"😖":-1,"💤":1,"💓":3,"👎":-1,"💦":2,"✔":1,"😷":-1,"🙋":2,"🎄":2,"💩":-1,"🎵":2,"😛":3,"👯":2,"💎":2,"🌿":1,"🎂":3,"🌟":1,"🔮":1,"👫":1,"🏆":3,"✖":1,"☝":1,"😙":3,"⛄":2,"👅":2,"♪":2,"🍂":2,"💏":1,"🌴":2,"👈":2,"🌹":3,"🙆":2,"👻":1,"💰":1,"🍻":2,"🙅":-2,"🌞":2,"🍁":2,"⭐":2,"▪":1,"🎀":3,"🐷":1,"🙉":1,"🌺":2,"💅":1,"🐶":2,"🌚":2,"👽":1,"🎤":2,"👭":2,"🎧":2,"👆":1,"🍸":2,"🍷":2,"®":1,"🍉":3,"😇":3,"🏃":2,"😿":-2,"│":1,"🍺":2,"▶":1,"😲":-1,"🎸":2,"🍹":3,"💫":2,"📚":1,"😶":-1,"🌷":2,"💝":3,"💨":1,"🏈":2,"💍":2,"☔":1,"👸":3,"🇪":3,"░":-1,"🍩":1,"👾":1,"☁":1,"🌻":2,"↿":3,"🐯":2,"👼":1,"🍔":1,"😸":2,"👶":2,"↾":3,"💐":3,"🌊":2,"🍦":2,"🍓":3,"👇":1,"💆":1,"🍴":2,"😧":-1,"🇸":2,"😮":1,"🚫":-3,"😽":2,"🌈":2,"🙀":1,"⚠":-1,"🎮":2,"╯":-1,"🍆":2,"🍰":2,"✓":1,"👐":-1,"🍟":1,"🍌":2,"💑":3,"👬":-1,"🐣":2,"🎃":3,"▬":2,"":-3,"🐾":3,"🎓":2,"🏊":2,"📷":2,"👄":2,"🌼":4,"🚶":-1,"🐱":2,"🐸":-1,"🇺":2,"👿":-3,"🚬":2,"✿":1,"🐒":2,"🌍":3,"┊":5,"🐥":3,"🐼":1,"🎥":1,"💄":2,"⛔":2,"🏀":1,"💉":1,"💟":3,"🚗":1,"📝":1,"♦":2,"💭":1,"🌙":3,"🐟":3,"👣":1,"✂":-3,"🗿":2,"👪":-1,"🍭":1,"🌃":2,"❌":1,"🐰":3,"💊":2,"🚨":3,"😦":-2,"🍪":1,"🍣":-2,"✧":1,"🎆":3,"🎎":4,"🇩":3,"✅":2,"📱":1,"🙍":-2,"🍑":1,"🎼":1,"🔊":2,"🌌":2,"🍎":1,"🐻":2,"╰":-1,"💇":1,"♬":1,"🔴":2,"🍱":-2,"🍊":2,"🍒":1,"🐭":3,"👟":2,"🌎":1,"🍍":2,"🐮":3,"📲":1,"☼":1,"🌅":1,"🇷":3,"👠":1,"🌽":2,"💧":-1,"🍬":1,"😺":2,"🚀":2,"¦":3,"💢":1,"🎬":1,"🍧":1,"🍜":2,"🐏":3,"🏄":2,"➤":1,"⬆":1,"🍋":1,"🆗":2,"⚪":2,"📺":2,"🍅":1,"⛅":2,"🐢":1,"👙":2,"🏡":2,"🌾":2,"◉":1,"✏":1,"🐬":2,"🇹":3,"♣":1,"🐝":1,"🌝":1,"🇮":3,"🔋":-3,"🐍":1,"♔":2,"🔵":1,"😾":-2,"🌕":3,"🐨":2,"🔐":1,"💿":3,"🌳":2,"👰":2,"❀":2,"⚓":3,"🚴":3,"▀":-1,"👗":1,"➕":2,"💬":2,"▒":-1,"🔜":1,"🍨":1,"💲":1,"🍙":1,"🍥":-4,"▸":1,"♛":1,"😼":1,"🐙":2,"👨":2,"🍚":2,"♨":4,"🎹":1,"♕":2,"▃":5,"🇬":1,"🇧":1,"☠":-1,"🐠":2,"🚹":3,"💵":2,"✰":4,"╠":1,"👛":2,"🌱":3,"💻":1,"🌏":1,"▄":-1,"👓":1,"◄":1,"⚾":-1,"🌲":2,"👴":1,"🏠":2,"🍇":1,"🍘":2,"🐇":1,"🔞":-1,"👵":2,"◀":1,"🔙":1,"🌵":1,"🍮":-1,"🎇":3,"🐎":2,"➔":-1,"🐤":2,"╩":1,"🌑":2,"🚲":2,"🐑":-1,"🏁":2,"🎾":3,"╚":1,"🈹":1,"👮":-2,"☹":-3,"🐵":2,"✪":1,"◕":2,"🗼":3,"▐":-1,"♠":1,"┳":-2,"👺":-2,"🐚":1,"👂":-1,"🗽":1,"🍵":2,"🆒":2,"🐺":1,"⇨":2,"🌓":3,"🔒":1,"╬":-1,"👳":3,"🌂":1,"🚌":1,"♩":3,"🍡":-1,"❥":1,"🎡":1,"💌":2,"🐩":2,"🌜":2,"⌚":1,"🚿":3,"🔆":3,"🌛":3,"💂":-1,"🐔":1,"🙎":-1,"🏩":2,"🇫":2,"🔨":-1,"📢":2,"🐦":2,"🐲":-1,"♻":2,"🌘":3,"🌔":3,"👖":2,"😗":3,"🐄":1,"◟":-1,"🍢":-1,"🎨":1,"⬇":2,"🚼":3,"🇴":2,"🌗":3,"🌖":3,"🔅":5,"👜":1,"🐌":3,"💼":3,"🐹":1,"🌠":3,"🐈":1,"🌁":1,"⚫":1,"♧":2,"🏰":1,"🚵":2,"🎢":2,"🎷":3,"🎐":1,"┈":-4,"╗":2,"🌇":3,"⏰":2,"🚂":1,"◠":2,"🎿":2,"🆔":4,"🌒":3,"🐪":3,"╔":1,"╝":2,"👔":2,"🆓":1,"🐋":1,"▽":2,"🐛":1,"👕":2,"💳":2,"🏧":5,"💡":3,"⬅":2,"🐫":2,"🇱":2,"📹":2,"👞":2,"👚":3,"□":-2,"🚣":3,"🏉":3,"🗻":3,"╦":2,"⛺":3,"🐕":1,"🏂":2,"👡":2,"📻":2,"✒":1,"🌰":3,"🏢":1,"🎒":3,"⌒":3,"🏫":-2,"📴":4,"🚢":1,"🚚":-1,"🐉":1,"❒":1,"🔔":5,"◢":4,"🏥":1,"🚖":-1,"▌":-2,"☛":2,"💒":3,"🚤":2,"🐐":2,"■":-2,"🔚":2,"🎻":2,"🔷":1,"🎽":2,"📅":1,"🎺":3,"🍈":-3,"✉":1,"◤":5,"○":3,"🍼":3,"🚛":-2,"📓":1,"☉":1,"💴":-2,"➰":-1,"🔌":-1,"📕":1,"📣":2,"🚓":1,"🐗":3,"⛳":4,"┻":-3,"┛":3,"┃":2,"💺":1,"🏇":-1,"☻":1,"📞":2,"Ⓐ":-1,"🌉":3,"🚩":-2,"✎":3,"📃":2,"🏨":1,"📌":-3,"♎":-1,"💷":2,"🚄":3,"▲":3,"⛵":3,"🔸":1,"🚜":5,"🐆":2,"👒":1,"❕":1,"🔛":2,"♢":2,"🇲":2,"❅":4,"👝":2,"✞":2,"◡":1,"🎋":3,"👥":1,"🐡":1,"◆":4,"🔭":2,"🎪":1,"🐜":3,"♌":4,"☐":-5,"👷":1,"🔈":1,"📄":5,"🚐":4,"🌋":3,"📡":1,"🚳":5,"✘":4,"🅰":1,"🇼":2,"┓":3,"┣":3,"Ⓛ":2,"Ⓔ":2,"👤":4,"🚁":1,"🎠":3,"🐁":-2,"📗":1,"┐":-1,"♂":1,"📯":-1,"🔩":1,"👢":4,"◂":2,"📰":1,"📶":2,"🌄":1,"🗾":2,"🔶":2,"🏤":2,"🎩":2,"Ⓜ":1,"🔧":-4,"🐅":1,"♮":1,"🅾":-1,"📦":1,"🚊":1,"🔲":3,"△":1,"📆":5,"❛":2,"📉":2,"▵":2,"🔎":3,"☜":1,"🇯":2,"🇵":2,"📘":1,"ⓔ":3,"🔑":1,"⭕":2,"🔘":1,"🚭":5,"🚉":3,"🚪":3,"➳":2,"🚃":3,"┯":-3,"🆙":2,"🆖":1,"┗":5,"Ⓞ":2,"❇":3,"✴":3,"☊":5,"🔕":-2,"⬛":-2,"🚞":3,"🍶":3,"🌐":3,"♀":1,"🚅":3,"🚒":-2,"♋":1,"♍":3,"🕝":-2,"ⓐ":5,"📙":1,"Ⓢ":1,"📋":3,"🎱":1,"🐞":1,"🔺":1,"ⓡ":5,"♤":3,"🎯":3,"🔉":3,"↩":5,"🚾":1,"🎣":-4,"🔣":1,"❎":-5,"➥":1,"🎌":5,"◣":1,"⏬":5,"♭":1,"ⓞ":5,"🔳":2,"🏭":2,"🎳":-3,"☚":5,"➽":2,"➫":2,"➖":-5,"꒰":2,"꒱":2,"◝":-3,"📑":5,"ⓧ":5,"🔟":5,"〓":5,"ⓜ":2,"➠":5,"🚆":2,"℅":-5,"☃":2,"🚽":5,"ⓝ":5,"⇦":5,"👲":2,"🚡":-3,"🔬":5,"➗":-3,"📈":2,"⏪":2,"◎":5,"꒦":-5,"📎":5,"⑅":5,"✭":5,"♓":2,"┏":5,"☇":5,"࿎":-5,"👘":5,"↙":5,"Ⓕ":2,"Ⓦ":2,"Ⓟ":2,"🕑":2,"🕛":5,"♈":-5,"↬":5,"✍":5,"🏦":5,"🔻":5,"ⓟ":5,"ⓕ":5,"ⓘ":5,"♿":5,"⇗":5,"⇘":5,"ⓨ":5,"ⓙ":5,"▫":5,"🔇":5,"⌃":-5,"🔖":5,"📜":5,"🚝":5,"┘":-5,"✝":-5,"⍣":-5,"📮":-5,"🕕":-5,"🔯":5,"➸":5,"꒵":5,"🕥":-5,"✽":5,"📼":5,"🕐":-5,"🀄":5,"✬":5,"✫":5,"🕔":-5,"❣":5,"📫":5,"🉐":5,"🈂":-5,"🎰":-5,"҂":-5,"╤":-5,"📔":5}},function(e){e.exports={abandon:-2,abandoned:-2,abandons:-2,abducted:-2,abduction:-2,abductions:-2,abhor:-3,abhorred:-3,abhorrent:-3,abhors:-3,abilities:2,ability:2,aboard:1,aborted:-1,aborts:-1,absentee:-1,absentees:-1,absolve:2,absolved:2,absolves:2,absolving:2,absorbed:1,abuse:-3,abused:-3,abuses:-3,abusing:-3,abusive:-3,accept:1,acceptable:1,acceptance:1,accepted:1,accepting:1,accepts:1,accessible:1,accident:-2,accidental:-2,accidentally:-2,accidents:-2,acclaim:2,acclaimed:2,accolade:2,accomplish:2,accomplished:2,accomplishes:2,accomplishment:2,accomplishments:2,accusation:-2,accusations:-2,accuse:-2,accused:-2,accuses:-2,accusing:-2,ache:-2,achievable:1,aching:-2,acquit:2,acquits:2,acquitted:2,acquitting:2,acrimonious:-3,active:1,adequate:1,admire:3,admired:3,admires:3,admiring:3,admit:-1,admits:-1,admitted:-1,admonish:-2,admonished:-2,adopt:1,adopts:1,adorable:3,adoration:3,adore:3,adored:3,adores:3,adoring:3,adoringly:3,advanced:1,advantage:2,advantageous:2,advantageously:2,advantages:2,adventure:2,adventures:2,adventurous:2,adversary:-1,advisable:1,affected:-1,affection:3,affectionate:3,affectionateness:3,afflicted:-1,affordable:2,affronted:-1,aficionados:2,afraid:-2,aggravate:-2,aggravated:-2,aggravates:-2,aggravating:-2,aggression:-2,aggressions:-2,aggressive:-2,aggressiveness:-2,aghast:-2,agog:2,agonise:-3,agonised:-3,agonises:-3,agonising:-3,agonize:-3,agonized:-3,agonizes:-3,agonizing:-3,agree:1,agreeable:2,agreed:1,agreement:1,agrees:1,alarm:-2,alarmed:-2,alarmist:-2,alarmists:-2,alas:-1,alert:-1,alienation:-2,alive:1,allegation:-2,allegations:-2,allergic:-2,allow:1,ally:2,alone:-2,altruistic:2,amaze:2,amazed:2,amazes:2,amazing:4,ambitious:2,ambivalent:-1,amicable:2,amuse:3,amused:3,amusement:3,amusements:3,anger:-3,angered:-3,angers:-3,angry:-3,anguish:-3,anguished:-3,animosity:-2,annoy:-2,annoyance:-2,annoyed:-2,annoying:-2,annoys:-2,antagonistic:-2,anti:-1,anticipation:1,anxiety:-2,anxious:-2,apathetic:-3,apathy:-3,apeshit:-3,apocalyptic:-2,apologise:-1,apologised:-1,apologises:-1,apologising:-1,apologize:-1,apologized:-1,apologizes:-1,apologizing:-1,apology:-1,appalled:-2,appalling:-2,appealing:2,appease:2,appeased:2,appeases:2,appeasing:2,applaud:2,applauded:2,applauding:2,applauds:2,applause:2,appreciate:2,appreciated:2,appreciates:2,appreciating:2,appreciation:2,apprehensive:-2,appropriate:2,appropriately:2,approval:2,approved:2,approves:2,ardent:1,arrest:-2,arrested:-3,arrests:-2,arrogant:-2,arsehole:-4,ashame:-2,ashamed:-2,ass:-4,assassination:-3,assassinations:-3,assault:-2,assaults:-2,asset:2,assets:2,assfucking:-4,asshole:-4,astonished:2,astound:3,astounded:3,astounding:3,astoundingly:3,astounds:3,atrocious:-3,atrocity:-3,attack:-1,attacked:-1,attacking:-1,attacks:-1,attract:1,attracted:1,attracting:2,attraction:2,attractions:2,attractive:2,attractively:2,attractiveness:2,attracts:1,audacious:3,aura:1,authority:1,avenge:-2,avenged:-2,avenger:-2,avengers:-2,avenges:-2,avenging:-2,avert:-1,averted:-1,averts:-1,avid:2,avoid:-1,avoided:-1,avoids:-1,await:-1,awaited:-1,awaits:-1,award:3,awarded:3,awards:3,awesome:4,awful:-3,awkward:-2,axe:-1,axed:-1,backed:1,backing:2,backs:1,bad:-3,"bad luck":-2,badass:-3,badly:-3,badness:-3,bailout:-2,balanced:1,bamboozle:-2,bamboozled:-2,bamboozles:-2,ban:-2,banish:-1,bankrupt:-3,bankruptcy:-3,bankster:-3,banned:-2,barbarian:-2,barbaric:-2,barbarous:-2,bargain:2,barrier:-2,bastard:-5,bastards:-5,battle:-1,battled:-1,battles:-1,battling:-2,beaten:-2,beatific:3,beating:-1,beauties:3,beautiful:3,beautifully:3,beautify:3,beauty:3,befit:2,befitting:2,belittle:-2,belittled:-2,beloved:3,benefactor:2,benefactors:2,benefit:2,benefits:2,benefitted:2,benefitting:2,benevolent:3,bereave:-2,bereaved:-2,bereaves:-2,bereaving:-2,best:3,"best damn":4,betray:-3,betrayal:-3,betrayed:-3,betraying:-3,betrays:-3,better:2,bias:-1,biased:-2,big:1,bitch:-5,bitches:-5,bitter:-2,bitterest:-2,bitterly:-2,bizarre:-2,blackmail:-3,blackmailed:-3,blackmailing:-3,blackmails:-3,blah:-2,blame:-2,blamed:-2,blames:-2,blaming:-2,bless:2,blesses:2,blessing:3,blessings:3,blind:-1,bliss:3,blissful:3,blithe:2,bloated:-1,block:-1,blockade:-2,blockbuster:3,blocked:-1,blocking:-1,blocks:-1,bloody:-3,blurry:-2,boastful:-2,bold:2,boldly:2,bomb:-1,boost:1,boosted:1,boosting:1,boosts:1,bore:-2,bored:-2,boring:-3,bother:-2,bothered:-2,bothers:-2,bothersome:-2,boycott:-2,boycotted:-2,boycotting:-2,boycotts:-2,brainwashing:-3,brave:2,braveness:2,bravery:2,bravura:3,breach:-2,breached:-2,breaches:-2,breaching:-2,breakthrough:3,breathtaking:5,bribe:-3,bribed:-3,bribes:-3,bribing:-3,bright:1,brightest:2,brightness:1,brilliant:4,brilliance:3,brilliances:3,brisk:2,broke:-1,broken:-1,brooding:-2,brutal:-3,brutally:-3,bullied:-2,bullshit:-4,bully:-2,bullying:-2,bummer:-2,buoyant:2,burden:-2,burdened:-2,burdening:-2,burdens:-2,burglar:-2,burglary:-2,calm:2,calmed:2,calming:2,calms:2,"can't stand":-3,cancel:-1,cancelled:-1,cancelling:-1,cancels:-1,cancer:-1,capabilities:1,capability:1,capable:1,captivated:3,care:2,carefree:1,careful:2,carefully:2,carefulness:2,careless:-2,cares:2,caring:2,"cashing in":-2,casualty:-2,catastrophe:-3,catastrophic:-4,cautious:-1,celebrate:3,celebrated:3,celebrates:3,celebrating:3,celebration:3,celebrations:3,censor:-2,censored:-2,censors:-2,certain:1,chagrin:-2,chagrined:-2,challenge:-1,champion:2,championed:2,champions:2,chance:2,chances:2,chaos:-2,chaotic:-2,charged:-3,charges:-2,charisma:2,charitable:2,charm:3,charming:3,charmingly:3,charmless:-3,chastise:-3,chastised:-3,chastises:-3,chastising:-3,cheat:-3,cheated:-3,cheater:-3,cheaters:-3,cheating:-3,cheats:-3,cheer:2,cheered:2,cheerful:2,cheerfully:2,cheering:2,cheerless:-2,cheers:2,cheery:3,cherish:2,cherished:2,cherishes:2,cherishing:2,chic:2,chide:-3,chided:-3,chides:-3,chiding:-3,childish:-2,chilling:-1,choke:-2,choked:-2,chokes:-2,choking:-2,clarifies:2,clarity:2,clash:-2,classy:3,clean:2,cleaner:2,clear:1,cleared:1,clearly:1,clears:1,clever:2,clouded:-1,clueless:-2,cock:-5,cocksucker:-5,cocksuckers:-5,cocky:-2,coerced:-2,coercion:-2,collapse:-2,collapsed:-2,collapses:-2,collapsing:-2,collide:-1,collides:-1,colliding:-1,collision:-2,collisions:-2,colluding:-3,combat:-1,combats:-1,comedy:1,comfort:2,comfortable:2,comfortably:2,comforting:2,comforts:2,comic:1,commend:2,commended:2,commit:1,commitment:2,commits:1,committed:1,committing:1,compassion:2,compassionate:2,compelled:1,competencies:1,competent:2,competitive:2,complacent:-2,complain:-2,complained:-2,complaining:-2,complains:-2,complaint:-2,complaints:-2,complicating:-2,compliment:2,complimented:2,compliments:2,comprehensive:2,concerned:-2,conciliate:2,conciliated:2,conciliates:2,conciliating:2,condemn:-2,condemnation:-2,condemned:-2,condemns:-2,confidence:2,confident:2,confidently:2,conflict:-2,conflicting:-2,conflictive:-2,conflicts:-2,confuse:-2,confused:-2,confusing:-2,congrats:2,congratulate:2,congratulation:2,congratulations:2,consent:2,consents:2,consolable:2,conspiracy:-3,constipation:-2,constrained:-2,contagion:-2,contagions:-2,contagious:-1,contaminant:-2,contaminants:-2,contaminate:-2,contaminated:-2,contaminates:-2,contaminating:-2,contamination:-2,contaminations:-2,contempt:-2,contemptible:-2,contemptuous:-2,contemptuously:-2,contend:-1,contender:-1,contending:-1,contentious:-2,contestable:-2,controversial:-2,controversially:-2,controversies:-2,controversy:-2,convicted:-2,convince:1,convinced:1,convinces:1,convivial:2,cool:1,"cool stuff":3,cornered:-2,corpse:-1,corrupt:-3,corrupted:-3,corrupting:-3,corruption:-3,corrupts:-3,costly:-2,courage:2,courageous:2,courageously:2,courageousness:2,courteous:2,courtesy:2,"cover-up":-3,coward:-2,cowardly:-2,coziness:2,cramp:-1,crap:-3,crappy:-3,crash:-2,crazier:-2,craziest:-2,crazy:-2,creative:2,crestfallen:-2,cried:-2,cries:-2,crime:-3,crimes:-3,criminal:-3,criminals:-3,criminate:-3,criminated:-3,criminates:-3,crisis:-3,critic:-2,criticise:-2,criticised:-2,criticises:-2,criticising:-2,criticism:-2,criticize:-2,criticized:-2,criticizes:-2,criticizing:-2,critics:-2,critique:-2,crowding:-1,crude:-1,cruel:-3,cruelty:-3,crush:-1,crushed:-2,crushes:-1,crushing:-1,cry:-1,crying:-2,cunning:2,cunt:-5,curious:1,curse:-1,cut:-1,cutback:-2,cutbacks:-2,cute:2,cuts:-1,cutting:-1,cynic:-2,cynical:-2,cynicism:-2,damage:-3,damaged:-3,damages:-3,damaging:-3,damn:-2,"damn cute":3,"damn good":4,damned:-4,damnit:-4,danger:-2,dangerous:-2,dangerously:-2,daredevil:2,daring:2,darkest:-2,darkness:-1,dauntless:2,dazzling:3,dead:-3,deadening:-2,deadlock:-2,deadly:-3,deafening:-1,dear:2,dearly:3,death:-2,deaths:-2,debonair:2,debt:-2,deceit:-3,deceitful:-3,deceive:-3,deceived:-3,deceives:-3,deceiving:-3,deception:-3,deceptive:-3,decisive:1,dedicated:2,dedication:2,defeat:-2,defeated:-2,defect:-3,defective:-3,defects:-3,defender:2,defenders:2,defenseless:-2,defer:-1,deferring:-1,defiant:-1,deficient:-2,deficiency:-2,deficiencies:-2,deficit:-2,deformed:-2,deformities:-2,deformity:-2,defraud:-3,defrauds:-3,deft:2,defunct:-2,degrade:-2,degraded:-2,degrades:-2,dehumanize:-2,dehumanized:-2,dehumanizes:-2,dehumanizing:-2,deject:-2,dejected:-2,dejecting:-2,dejects:-2,delay:-1,delayed:-1,delectable:3,delicious:3,delight:3,delighted:3,delightful:3,delightfully:3,delighting:3,delights:3,demand:-1,demanded:-1,demanding:-1,demands:-1,demonstration:-1,demoralize:-2,demoralized:-2,demoralizes:-2,demoralizing:-2,denial:-2,denials:-2,denied:-2,denier:-2,deniers:-2,denies:-2,denounce:-2,denounces:-2,dent:-2,deny:-2,denying:-2,deplore:-3,deplored:-3,deplores:-3,deploring:-3,deport:-2,deported:-2,deporting:-2,deports:-2,deportation:-2,deportations:-2,depressed:-2,depressing:-2,deprivation:-3,derail:-2,derailed:-2,derails:-2,derelict:-2,deride:-2,derided:-2,derides:-2,deriding:-2,derision:-2,desirable:2,desire:1,desired:2,desirous:2,despair:-3,despairing:-3,despairs:-3,desperate:-3,desperately:-3,despondent:-3,destroy:-3,destroyed:-3,destroying:-3,destroys:-3,destruction:-3,destructive:-3,detached:-1,detain:-2,detained:-2,detention:-2,deteriorate:-2,deteriorated:-2,deteriorates:-2,deteriorating:-2,determined:2,deterrent:-2,detract:-1,detracted:-1,detracts:-1,devastate:-2,devastated:-2,devastating:-2,devastation:-2,devastations:-2,devoted:3,devotion:2,devotional:2,diamond:1,dick:-4,dickhead:-4,die:-3,died:-3,difficult:-1,diffident:-2,dignity:2,dilemma:-1,dilligence:2,dipshit:-3,dire:-3,direful:-3,dirt:-2,dirtier:-2,dirtiest:-2,dirty:-2,disabilities:-2,disability:-2,disabling:-1,disadvantage:-2,disadvantaged:-2,disagree:-2,disagreeable:-2,disagreement:-2,disappear:-1,disappeared:-1,disappears:-1,disappoint:-2,disappointed:-2,disappointing:-2,disappointment:-2,disappointments:-2,disappoints:-2,disapproval:-2,disapprovals:-2,disapprove:-2,disapproved:-2,disapproves:-2,disapproving:-2,disaster:-2,disasters:-2,disastrous:-3,disbelieve:-2,discard:-1,discarded:-1,discarding:-1,discards:-1,discernment:2,discomfort:-2,disconsolate:-2,disconsolation:-2,discontented:-2,discord:-2,discounted:-1,discouraged:-2,discredited:-2,discriminate:-2,discriminated:-2,discriminates:-2,discriminating:-2,discriminatory:-2,disdain:-2,disease:-1,diseases:-1,disgrace:-2,disgraced:-2,disguise:-1,disguised:-1,disguises:-1,disguising:-1,disgust:-3,disgusted:-3,disgustful:-3,disgusting:-3,disheartened:-2,dishonest:-2,disillusioned:-2,disinclined:-2,disjointed:-2,dislike:-2,disliked:-2,dislikes:-2,dismal:-2,dismayed:-2,dismissed:-2,disorder:-2,disorders:-2,disorganized:-2,disoriented:-2,disparage:-2,disparaged:-2,disparages:-2,disparaging:-2,displeased:-2,displeasure:-2,disproportionate:-2,dispute:-2,disputed:-2,disputes:-2,disputing:-2,disqualified:-2,disquiet:-2,disregard:-2,disregarded:-2,disregarding:-2,disregards:-2,disrespect:-2,disrespected:-2,disrupt:-2,disrupted:-2,disrupting:-2,disruption:-2,disruptions:-2,disruptive:-2,disrupts:-2,dissatisfied:-2,distasteful:-2,distinguished:2,distort:-2,distorted:-2,distorting:-2,distorts:-2,distract:-2,distracted:-2,distraction:-2,distracts:-2,distress:-2,distressed:-2,distresses:-2,distressing:-2,distrust:-3,distrustful:-3,disturb:-2,disturbed:-2,disturbing:-2,disturbs:-2,dithering:-2,diverting:-1,dizzy:-1,dodging:-2,dodgy:-2,"does not work":-3,dolorous:-2,donate:2,donated:2,donates:2,donating:2,donation:2,"dont like":-2,doom:-2,doomed:-2,doubt:-1,doubted:-1,doubtful:-1,doubting:-1,doubts:-1,douche:-3,douchebag:-3,dour:-2,downcast:-2,downer:-2,downhearted:-2,downside:-2,drag:-1,dragged:-1,drags:-1,drained:-2,dread:-2,dreaded:-2,dreadful:-3,dreading:-2,dream:1,dreams:1,dreary:-2,droopy:-2,drop:-1,dropped:-1,drown:-2,drowned:-2,drowns:-2,drudgery:-2,drunk:-2,dubious:-2,dud:-2,dull:-2,dumb:-3,dumbass:-3,dump:-1,dumped:-2,dumps:-1,dupe:-2,duped:-2,dupery:-2,durable:2,dying:-3,dysfunction:-2,eager:2,earnest:2,ease:2,easy:1,ecstatic:4,eerie:-2,eery:-2,effective:2,effectively:2,effectiveness:2,effortlessly:2,elated:3,elation:3,elegant:2,elegantly:2,embarrass:-2,embarrassed:-2,embarrasses:-2,embarrassing:-2,embarrassment:-2,embezzlement:-3,embittered:-2,embrace:1,emergency:-2,empathetic:2,empower:2,empowerment:2,emptiness:-1,empty:-1,enchanted:2,encourage:2,encouraged:2,encouragement:2,encourages:2,encouraging:2,endorse:2,endorsed:2,endorsement:2,endorses:2,enemies:-2,enemy:-2,energetic:2,engage:1,engages:1,engrossed:1,engrossing:3,enjoy:2,enjoyable:2,enjoyed:2,enjoying:2,enjoys:2,enlighten:2,enlightened:2,enlightening:2,enlightens:2,ennui:-2,enrage:-2,enraged:-2,enrages:-2,enraging:-2,enrapture:3,enslave:-2,enslaved:-2,enslaves:-2,ensure:1,ensuring:1,enterprising:1,entertaining:2,enthral:3,enthusiastic:3,entitled:1,entrusted:2,envies:-1,envious:-2,"environment-friendly":2,envy:-1,envying:-1,erroneous:-2,error:-2,errors:-2,escape:-1,escapes:-1,escaping:-1,esteem:2,esteemed:2,ethical:2,euphoria:3,euphoric:4,evacuate:-1,evacuated:-1,evacuates:-1,evacuating:-1,evacuation:-1,evergreen:2,evergreens:2,evergreening:-3,eviction:-1,evil:-3,exacerbate:-2,exacerbated:-2,exacerbates:-2,exacerbating:-2,exaggerate:-2,exaggerated:-2,exaggerates:-2,exaggerating:-2,exasparate:-2,exasperated:-2,exasperates:-2,exasperating:-2,excellence:3,excellent:3,excite:3,excited:3,excitement:3,exciting:3,exclude:-1,excluded:-2,exclusion:-1,exclusive:2,excruciatingly:-1,excuse:-1,exempt:-1,exhausted:-2,exhilarated:3,exhilarates:3,exhilarating:3,exonerate:2,exonerated:2,exonerates:2,exonerating:2,expand:1,expands:1,expel:-2,expelled:-2,expelling:-2,expels:-2,expertly:2,exploit:-2,exploited:-2,exploiting:-2,exploits:-2,exploration:1,explorations:1,expose:-1,exposed:-1,exposes:-1,exposing:-1,exquisite:3,extend:1,extends:1,extremist:-2,extremists:-2,exuberant:4,exultant:3,exultantly:3,fabulous:4,fabulously:4,fad:-2,fag:-3,faggot:-3,faggots:-3,fail:-2,failed:-2,failing:-2,fails:-2,failure:-2,failures:-2,fainthearted:-2,fair:2,fairness:2,faith:1,faithful:3,fake:-3,faker:-3,fakes:-3,faking:-3,fallen:-2,falling:-1,false:-1,falsely:-2,falsified:-3,falsify:-3,fame:1,famine:-2,famous:2,fan:3,fantastic:4,farce:-1,fascinate:3,fascinated:3,fascinates:3,fascinating:3,fascination:3,fascist:-2,fascists:-2,fatal:-3,fatalities:-3,fatality:-3,fatigue:-2,fatigued:-2,fatigues:-2,fatiguing:-2,favor:2,favorable:2,favorably:2,favored:2,favorite:2,favorited:2,favorites:2,favors:2,favour:2,favourable:2,favourably:2,favoured:2,favourite:2,favourited:2,favourites:2,favours:2,fear:-2,fearful:-2,fearfully:-2,fearing:-2,fearless:2,fearlessness:2,fearsome:-2,"fed up":-3,feeble:-2,feeling:1,felonies:-3,felony:-3,fertile:2,fervent:2,fervid:2,festive:2,fever:-2,fiasco:-3,fidgety:-2,fight:-1,fighting:-2,fine:2,fines:-2,finest:3,fire:-2,fired:-2,firing:-2,fit:1,fitness:1,filth:-2,filthy:-2,flagship:2,flaw:-2,flawed:-3,flawless:2,flawlessly:2,flaws:-2,flees:-1,flop:-2,flops:-2,flu:-2,flustered:-2,focused:2,fond:2,fondness:2,fool:-2,foolish:-2,fools:-2,forbid:-1,forbidden:-2,forbidding:-2,forced:-1,foreclosure:-2,foreclosures:-2,forefront:1,forget:-1,forgetful:-2,forgettable:-1,forgive:1,forgiving:1,forgot:-1,forgotten:-1,fortune:2,fortunate:2,fortunately:2,foul:-3,frantic:-1,fraud:-4,frauds:-4,fraudster:-4,fraudsters:-4,fraudulence:-4,fraudulent:-4,freak:-2,free:1,freedom:2,freedoms:2,frenzy:-3,fresh:1,friend:1,friendliness:2,friendly:2,friendship:2,fright:-2,frightened:-2,frightening:-3,frikin:-2,frisky:2,frowning:-1,fruitless:-2,frustrate:-2,frustrated:-2,frustrates:-2,frustrating:-2,frustration:-2,ftw:3,fuck:-4,fucked:-4,fucker:-4,fuckers:-4,fuckface:-4,fuckhead:-4,fuckin:-4,fucking:-4,"fucking amazing":4,"fucking beautiful":4,"fucking cute":4,"fucking fantastic":4,"fucking good":4,"fucking great":4,"fucking hot":2,"fucking love":4,"fucking loves":4,"fucking perfect":4,fucktard:-4,fud:-3,fuked:-4,fuking:-4,fulfill:2,fulfilled:2,fulfillment:2,fulfills:2,fuming:-2,fun:4,funeral:-1,funerals:-1,funky:2,funnier:4,funny:4,furious:-3,futile:-2,gag:-2,gagged:-2,gain:2,gained:2,gaining:2,gains:2,gallant:3,gallantly:3,gallantry:3,"game-changing":3,garbage:-1,gem:3,generous:2,generously:2,genial:3,ghastly:-2,ghost:-1,giddy:-2,gift:2,glad:3,glamorous:3,glamourous:3,glee:3,gleeful:3,gloom:-1,gloomy:-2,glorious:2,glory:2,glum:-2,god:1,goddamn:-3,godsend:4,gold:2,good:3,goodlooking:3,goodmorning:1,goodness:3,goodwill:3,goofiness:-2,goofy:-2,grace:1,graceful:2,gracious:3,grand:3,grant:1,granted:1,granting:1,grants:1,grateful:3,gratification:2,grave:-2,gray:-1,grisly:-2,gr8:3,great:3,greater:3,greatest:3,greed:-3,greedy:-2,"green wash":-3,"green washing":-3,greenwash:-3,greenwasher:-3,greenwashers:-3,greenwashing:-3,greet:1,greeted:1,greeting:1,greetings:2,greets:1,grey:-1,grief:-2,grieved:-2,grim:-2,gripping:2,groan:-2,groaned:-2,groaning:-2,groans:-2,gross:-2,growing:1,growth:2,growths:2,gruesome:-3,guarantee:1,guilt:-3,guilty:-3,gullibility:-2,gullible:-2,gun:-1,ha:2,hacked:-1,haha:3,hahaha:3,hahahah:3,hail:2,hailed:2,hallelujah:3,handpicked:1,handsome:3,hapless:-2,haplessness:-2,happiest:3,happiness:3,happy:3,harass:-3,harassed:-3,harasses:-3,harassing:-3,harassment:-3,hard:-1,hardier:2,hardship:-2,hardy:2,harm:-2,harmed:-2,harmful:-2,harming:-2,harmony:2,harmonious:2,harmoniously:2,harms:-2,harried:-2,harsh:-2,harsher:-2,harshest:-2,harshly:-2,hate:-3,hated:-3,hater:-3,haters:-3,hates:-3,hating:-3,hatred:-3,haunt:-1,haunted:-2,haunting:1,haunts:-1,havoc:-2,hazardous:-3,headache:-2,healthy:2,heartbreaking:-3,heartbroken:-3,heartfelt:3,heartless:-2,heartwarming:3,heaven:2,heavenly:4,heavyhearted:-2,hehe:2,hell:-4,hellish:-2,help:2,helpful:2,helping:2,helpless:-2,helps:2,hero:2,heroes:2,heroic:3,hesitant:-2,hesitate:-2,hid:-1,hide:-1,hideous:-3,hides:-1,hiding:-1,highlight:2,hilarious:2,hinder:-2,hindrance:-2,hoax:-2,hollow:-1,homeless:-2,homesick:-2,homicide:-2,homicides:-2,honest:2,honor:2,honored:2,honoring:2,honour:2,honoured:2,honouring:2,hooligan:-2,hooliganism:-2,hooligans:-2,hope:2,hopeful:2,hopefully:2,hopeless:-2,hopelessness:-2,hopes:2,hoping:2,horrendous:-3,horrid:-3,horrible:-3,horrific:-3,horrified:-3,hospitalized:-2,hostile:-2,huckster:-2,hug:2,huge:1,hugs:2,humane:2,humble:1,humbug:-2,humerous:3,humiliated:-3,humiliation:-3,humor:2,humorous:2,humour:2,humourous:2,hunger:-2,hurrah:5,hurt:-2,hurting:-2,hurts:-2,hypocritical:-2,hysteria:-3,hysterical:-3,hysterics:-3,icky:-3,idiocy:-3,idiot:-3,idiotic:-3,ignorance:-2,ignorant:-2,ignore:-1,ignored:-2,ignores:-1,ill:-2,"ill-fated":-2,illegal:-3,illegally:-3,illegitimate:-3,illiteracy:-2,illness:-2,illnesses:-2,illogical:-2,imaginative:2,imbecile:-3,immobilized:-1,immortal:2,immune:1,impair:-2,impaired:-2,impairing:-2,impairment:-2,impairs:-2,impatient:-2,impeachment:-3,impeachments:-3,impede:-2,impeded:-2,impedes:-2,impeding:-2,impedingly:-2,imperfect:-2,importance:2,important:2,impose:-1,imposed:-1,imposes:-1,imposing:-1,imposter:-2,impotent:-2,impress:3,impressed:3,impresses:3,impressive:3,imprisoned:-2,imprisonment:-2,improper:-2,improperly:-2,improve:2,improved:2,improvement:2,improves:2,improving:2,inability:-2,inaction:-2,inadequate:-2,inadvertently:-2,inappropriate:-2,incapable:-2,incapacitated:-2,incapacitates:-2,incapacitating:-2,incense:-2,incensed:-2,incenses:-2,incensing:-2,incoherent:-2,incompetence:-2,incompetent:-2,incomplete:-1,incomprehensible:-2,inconsiderate:-2,inconvenience:-2,inconvenient:-2,increase:1,increased:1,indecisive:-2,indestructible:2,indicted:-2,indifference:-2,indifferent:-2,indignant:-2,indignation:-2,indoctrinate:-2,indoctrinated:-2,indoctrinates:-2,indoctrinating:-2,inediable:-2,inexorable:-3,inexcusable:-3,ineffective:-2,ineffectively:-2,ineffectual:-2,inefficiency:-2,inefficient:-2,inefficiently:-2,inept:-2,ineptitude:-2,infantile:-2,infantilized:-2,infatuated:2,infatuation:2,infect:-2,infected:-2,infecting:-2,infection:-2,infections:-2,infectious:-2,infects:-2,inferior:-2,infest:-2,infested:-2,infesting:-2,infests:-2,inflamed:-2,inflict:-2,inflicted:-2,inflicting:-2,inflicts:-2,influential:2,infract:-2,infracted:-2,infracting:-2,infracts:-2,infringement:-2,infuriate:-2,infuriated:-2,infuriates:-2,infuriating:-2,inhibit:-1,inhuman:-2,injured:-2,injuries:-2,injury:-2,injustice:-2,innovate:1,innovates:1,innovation:1,innovative:2,inoperative:-2,inquisition:-2,inquisitive:2,insane:-2,insanity:-2,insecure:-2,insensitive:-2,insensitivity:-2,insignificant:-2,insipid:-2,insolvent:-2,insomnia:-2,inspiration:2,inspirational:2,inspire:2,inspired:2,inspires:2,inspiring:3,insufficiency:-2,insufficient:-2,insufficiently:-2,insult:-2,insulted:-2,insulting:-2,insults:-2,intact:2,integrity:2,intelligent:2,intense:1,interest:1,interested:2,interesting:2,interests:1,interrogated:-2,interrupt:-2,interrupted:-2,interrupting:-2,interruption:-2,interrupts:-2,intimacy:2,intimidate:-2,intimidated:-2,intimidates:-2,intimidating:-2,intimidation:-2,intransigence:-2,intransigency:-2,intricate:2,intrigues:1,invasion:-1,invincible:2,invite:1,inviting:1,invulnerable:2,irate:-3,ironic:-1,irony:-1,irrational:-1,irreparable:-2,irreproducible:-2,irresistible:2,irresistibly:2,irresolute:-2,irresponsible:-2,irresponsibly:-2,irreversible:-1,irreversibly:-1,irritate:-3,irritated:-3,irritates:-3,irritating:-3,isolated:-1,itchy:-2,jackass:-4,jackasses:-4,jailed:-2,jaunty:2,jealous:-2,jealousy:-2,jeopardy:-2,jerk:-3,jesus:1,jewel:1,jewels:1,jocular:2,join:1,joke:2,jokes:2,jolly:2,jovial:2,joy:3,joyful:3,joyfully:3,joyless:-2,joyous:3,jubilant:3,jumpy:-1,justice:2,justifiably:2,justified:2,keen:1,kickback:-3,kickbacks:-3,kidnap:-2,kidnapped:-2,kidnapping:-2,kidnappings:-2,kidnaps:-2,kill:-3,killed:-3,killing:-3,kills:-3,kind:2,"kind of":0,kinder:2,kindness:2,kiss:2,kudos:3,lack:-2,lackadaisical:-2,lag:-1,lagged:-2,lagging:-2,lags:-2,lame:-2,landmark:2,lapse:-1,lapsed:-1,laugh:1,laughed:1,laughing:1,laughs:1,laughting:1,launched:1,lawl:3,lawsuit:-2,lawsuits:-2,lazy:-1,leadership:1,leading:2,leak:-1,leaked:-1,leave:-1,legal:1,legally:1,lenient:1,lethal:-2,lethality:-2,lethargic:-2,lethargy:-2,liar:-3,liars:-3,libelous:-2,lied:-2,lifeless:-1,lifesaver:4,lighthearted:1,likable:2,like:2,likeable:2,liked:2,likers:2,likes:2,liking:2,limitation:-1,limited:-1,limits:-1,litigation:-1,litigious:-2,lively:2,livid:-2,lmao:4,lmfao:4,loathe:-3,loathed:-3,loathes:-3,loathing:-3,loathsome:-3,lobbied:-2,lobby:-2,lobbying:-2,lobbyist:-2,lobbyists:-2,lol:3,lolol:4,lololol:4,lolololol:4,lonely:-2,lonesome:-2,longing:-1,lool:3,loom:-1,loomed:-1,looming:-1,looms:-1,loool:3,looool:3,loose:-3,looses:-3,loser:-3,losing:-3,loss:-3,losses:-3,lost:-3,lousy:-2,lovable:3,love:3,loved:3,lovelies:3,lovely:3,loves:3,loving:2,"loving-kindness":3,lowest:-1,loyal:3,loyalty:3,luck:3,luckily:3,lucky:3,lucrative:3,ludicrous:-3,lugubrious:-2,lunatic:-3,lunatics:-3,lurk:-1,lurking:-1,lurks:-1,luxury:2,macabre:-2,mad:-3,maddening:-3,"made-up":-1,madly:-3,madness:-3,magnificent:3,maladaption:-2,maldevelopment:-2,maltreatment:-2,mandatory:-1,manipulated:-1,manipulating:-1,manipulation:-1,manslaughter:-3,marvel:3,marvelous:3,marvels:3,masterpiece:4,masterpieces:4,matter:1,matters:1,mature:2,meaningful:2,meaningless:-2,medal:3,mediocrity:-3,meditative:1,melancholy:-2,memorable:1,memoriam:-2,menace:-2,menaced:-2,menaces:-2,mercy:2,merry:3,mesmerizing:3,mess:-2,messed:-2,"messing up":-2,methodical:2,methodically:2,mindless:-2,miracle:4,mirth:3,mirthful:3,mirthfully:3,misbehave:-2,misbehaved:-2,misbehaves:-2,misbehaving:-2,misbranding:-3,miscast:-2,mischief:-1,mischiefs:-1,misclassified:-2,misclassifies:-2,misclassify:-2,misconduct:-2,misconducted:-2,misconducting:-2,misconducts:-2,miserable:-3,miserably:-3,misery:-2,misfire:-2,misfortune:-2,misgiving:-2,misinformation:-2,misinformed:-2,misinterpreted:-2,mislead:-3,misleaded:-3,misleading:-3,misleads:-3,misplace:-2,misplaced:-2,misplaces:-2,misplacing:-2,mispricing:-3,misread:-1,misreport:-2,misreported:-2,misreporting:-2,misreports:-2,misrepresent:-2,misrepresentation:-2,misrepresentations:-2,misrepresented:-2,misrepresenting:-2,misrepresents:-2,miss:-2,missed:-2,missing:-2,mistake:-2,mistaken:-2,mistakes:-2,mistaking:-2,misunderstand:-2,misunderstanding:-2,misunderstands:-2,misunderstood:-2,misuse:-2,misused:-2,misuses:-2,misusing:-2,moan:-2,moaned:-2,moaning:-2,moans:-2,mock:-2,mocked:-2,mocking:-2,mocks:-2,modernize:2,modernized:2,modernizes:2,modernizing:2,mongering:-2,monopolize:-2,monopolized:-2,monopolizes:-2,monopolizing:-2,monotone:-1,moody:-1,mope:-1,moping:-1,moron:-3,motherfucker:-5,motherfucking:-5,motivate:1,motivated:2,motivating:2,motivation:1,mourn:-2,mourned:-2,mournful:-2,mourning:-2,mourns:-2,muddy:-2,mumpish:-2,murder:-2,murderer:-2,murdering:-3,murderous:-3,murders:-2,murky:-2,myth:-1,n00b:-2,naive:-2,narcissism:-2,nasty:-3,natural:1,"naïve":-2,needy:-2,negative:-2,negativity:-2,neglect:-2,neglected:-2,neglecting:-2,neglects:-2,nerves:-1,nervous:-2,nervously:-2,nice:3,nifty:2,niggas:-5,nigger:-5,no:-1,"no fun":-3,noble:2,noblest:2,noisy:-1,"non-approved":-2,nonsense:-2,noob:-2,nosey:-2,"not good":-2,"not working":-3,notable:2,noticeable:2,notorious:-2,novel:2,numb:-1,nurturing:2,nuts:-3,obliterate:-2,obliterated:-2,obnoxious:-3,obscene:-2,obscenity:-2,obsessed:2,obsolete:-2,obstacle:-2,obstacles:-2,obstinate:-2,obstruct:-2,obstructed:-2,obstructing:-2,obstruction:-2,obstructs:-2,odd:-2,offence:-2,offences:-2,offend:-2,offended:-2,offender:-2,offending:-2,offends:-2,offense:-2,offenses:-2,offensive:-2,offensively:-2,offline:-1,oks:2,ominous:3,"once-in-a-lifetime":3,oops:-2,opportunities:2,opportunity:2,oppressed:-2,oppression:-2,oppressions:-2,oppressive:-2,optimism:2,optimistic:2,optionless:-2,ostracize:-2,ostracized:-2,ostracizes:-2,ouch:-2,outage:-2,outages:-2,outbreak:-2,outbreaks:-2,outcry:-2,outmaneuvered:-2,outnumbered:-2,outrage:-3,outraged:-3,outrageous:-3,outreach:2,outstanding:5,overjoyed:4,overload:-1,overlooked:-1,overprotective:-2,overran:-2,overreact:-2,overreacted:-2,overreacting:-2,overreaction:-2,overreacts:-2,oversell:-2,overselling:-2,oversells:-2,oversight:-1,oversimplification:-2,oversimplified:-2,oversimplifies:-2,oversimplify:-2,oversold:-2,overstatement:-2,overstatements:-2,overweight:-1,overwrought:-3,oxymoron:-1,pain:-2,pained:-2,painful:-2,panic:-3,panicked:-3,panics:-3,paradise:3,paradox:-1,pardon:2,pardoned:2,pardoning:2,pardons:2,parley:-1,passion:1,passionate:2,passive:-1,passively:-1,pathetic:-2,pay:-1,peace:2,peaceful:2,peacefully:2,penalize:-2,penalized:-2,penalizes:-2,penalizing:-2,penalty:-2,pensive:-1,perfect:3,perfected:2,perfection:3,perfectly:3,perfects:2,peril:-2,perjury:-3,perpetrated:-2,perpetrator:-2,perpetrators:-2,perplexed:-2,persecute:-2,persecuted:-2,persecutes:-2,persecuting:-2,perturbed:-2,pervert:-3,pesky:-2,pessimism:-2,pessimistic:-2,petrified:-2,philanthropy:2,phobic:-2,picturesque:2,pileup:-1,pillage:-2,pique:-2,piqued:-2,piss:-4,pissed:-4,pissing:-3,piteous:-2,pitied:-1,pity:-2,plague:-3,plagued:-3,plagues:-3,plaguing:-3,playful:2,pleasant:3,please:1,pleased:3,pleasurable:3,pleasure:3,plodding:-2,poignant:2,pointless:-2,poised:-2,poison:-2,poisoned:-2,poisons:-2,polished:2,polite:2,politeness:2,pollutant:-2,pollute:-2,polluted:-2,polluter:-2,polluters:-2,pollutes:-2,pollution:-2,poor:-2,poorer:-2,poorest:-2,poorly:-2,popular:3,popularity:3,positive:2,positively:2,possessive:-2,"post-traumatic":-2,postpone:-1,postponed:-1,postpones:-1,postponing:-1,poverty:-1,powerful:2,powerless:-2,praise:3,praised:3,praises:3,praising:3,pray:1,praying:1,prays:1,prblm:-2,prblms:-2,predatory:-2,prepared:1,pressure:-1,pressured:-2,pretend:-1,pretending:-1,pretends:-1,pretty:1,prevent:-1,prevented:-1,preventing:-1,prevents:-1,prick:-5,prison:-2,prisoner:-2,prisoners:-2,privileged:2,proactive:2,problem:-2,problems:-2,profit:2,profitable:2,profiteer:-2,profits:2,progress:2,prohibit:-1,prohibits:-1,prominent:2,promise:1,promised:1,promises:1,promote:1,promoted:1,promotes:1,promoting:1,promptly:1,propaganda:-2,prosecute:-1,prosecuted:-2,prosecutes:-1,prosecution:-1,prospect:1,prospects:1,prosperity:3,prosperous:3,protect:1,protected:1,protects:1,protest:-2,protesters:-2,protesting:-2,protests:-2,proud:2,proudly:2,provoke:-1,provoked:-1,provokes:-1,provoking:-1,prudence:2,pseudoscience:-3,psychopathic:-2,punish:-2,punished:-2,punishes:-2,punishing:-2,punitive:-2,pure:1,purest:1,purposeful:2,pushy:-1,puzzled:-2,quaking:-2,qualities:2,quality:2,questionable:-2,questioned:-1,questioning:-1,racism:-3,racist:-3,racists:-3,rage:-2,rageful:-2,rainy:-1,rant:-3,ranter:-3,ranters:-3,rants:-3,rape:-4,raped:-4,rapist:-4,rapture:2,raptured:2,raptures:2,rapturous:4,rash:-2,ratified:2,reach:1,reached:1,reaches:1,reaching:1,reassure:1,reassured:1,reassures:1,reassuring:2,rebel:-2,rebellion:-2,rebels:-2,recession:-2,reckless:-2,recognition:2,recommend:2,recommended:2,recommends:2,redeemed:2,refine:1,refined:1,refines:1,refreshingly:2,refuse:-2,refused:-2,refuses:-2,refusing:-2,regret:-2,regretful:-2,regrets:-2,regretted:-2,regretting:-2,reigning:1,reject:-1,rejected:-1,rejecting:-1,rejection:-2,rejects:-1,rejoice:4,rejoiced:4,rejoices:4,rejoicing:4,relaxed:2,relentless:-1,reliability:2,reliable:2,reliably:2,reliant:2,relieve:1,relieved:2,relieves:1,relieving:2,relishing:2,remarkable:2,remorse:-2,repellent:-2,repercussion:-2,repercussions:-2,reprimand:-2,reprimanded:-2,reprimanding:-2,reprimands:-2,repulse:-1,repulsed:-2,repulsive:-2,rescue:2,rescued:2,rescues:2,resentful:-2,resign:-1,resigned:-1,resigning:-1,resigns:-1,resolute:2,resolution:2,resolve:2,resolved:2,resolves:2,resolving:2,respect:2,respected:2,respects:2,responsibility:1,responsible:2,responsive:2,restful:2,restless:-2,restore:1,restored:1,restores:1,restoring:1,restrict:-2,restricted:-2,restricting:-2,restriction:-2,restrictive:-1,restricts:-2,retained:-1,retard:-2,retarded:-2,retreat:-1,revenge:-2,revengeful:-2,revered:2,revive:2,revives:2,revolting:-2,reward:2,rewarded:2,rewarding:2,rewards:2,rich:2,richly:2,ridiculous:-3,rig:-1,rigged:-1,"right direction":3,righteousness:2,rightful:2,rightfully:2,rigorous:3,rigorously:3,riot:-2,riots:-2,rise:1,rises:1,risk:-2,risks:-2,risky:-2,riveting:3,rob:-2,robber:-2,robed:-2,robing:-2,robs:-2,robust:2,rofl:4,roflcopter:4,roflmao:4,romance:2,romantical:2,romantically:2,rose:1,rotfl:4,rotflmfao:4,rotflol:4,rotten:-3,rude:-2,ruin:-2,ruined:-2,ruining:-2,ruins:-2,sabotage:-2,sad:-2,sadden:-2,saddened:-2,sadly:-2,safe:1,safely:1,safer:2,safety:1,salient:1,salute:2,saluted:2,salutes:2,saluting:2,salvation:2,sappy:-1,sarcastic:-2,satisfied:2,savange:-2,savanges:-2,save:2,saved:2,savings:1,scam:-2,scams:-2,scandal:-3,scandalous:-3,scandals:-3,scapegoat:-2,scapegoats:-2,scare:-2,scared:-2,scar:-2,scars:-2,scary:-2,sceptical:-2,scold:-2,scoop:3,scorn:-2,scornful:-2,scream:-2,screamed:-2,screaming:-2,screams:-2,screwed:-2,"screwed up":-3,scum:-3,scumbag:-4,seamless:2,seamlessly:2,secure:2,secured:2,secures:2,sedition:-2,seditious:-2,seduced:-1,"self-abuse":-2,"self-confident":2,"self-contradictory":-2,"self-deluded":-2,selfish:-3,selfishness:-3,sentence:-2,sentenced:-2,sentences:-2,sentencing:-2,serene:2,settlement:1,settlements:1,severe:-2,severely:-2,sexist:-2,sexistic:-2,sexy:3,shaky:-2,shame:-2,shamed:-2,shameful:-2,share:1,shared:1,shares:1,shattered:-2,shit:-4,shithead:-4,shitty:-3,shock:-2,shocked:-2,shocking:-2,shocks:-2,shoody:-2,shoot:-1,"short-sighted":-2,"short-sightedness":-2,shortage:-2,shortages:-2,shrew:-4,shy:-1,sick:-2,sickness:-2,"side-effect":-2,"side-effects":-2,sigh:-2,significance:1,significant:1,silencing:-1,silly:-1,simplicity:1,sin:-2,sincere:2,sincerely:2,sincerest:2,sincerity:2,sinful:-3,singleminded:-2,sinister:-2,sins:-2,skeptic:-2,skeptical:-2,skepticism:-2,skeptics:-2,slam:-2,slash:-2,slashed:-2,slashes:-2,slashing:-2,slave:-3,slavery:-3,slaves:-3,sleeplessness:-2,slick:2,slicker:2,slickest:2,slip:-1,sloppy:-2,sluggish:-2,slumping:-1,slut:-5,smart:1,smarter:2,smartest:2,smear:-2,smile:2,smiled:2,smiles:2,smiling:2,smog:-2,smuggle:-2,smuggled:-2,smuggling:-2,smuggles:-2,sneaky:-1,sneeze:-2,sneezed:-2,sneezes:-2,sneezing:-2,snub:-2,snubbed:-2,snubbing:-2,snubs:-2,sobering:1,solemn:-1,solid:2,solidarity:2,solidified:2,solidifies:2,solidify:2,solidifying:2,solution:1,solutions:1,solve:1,solved:1,solves:1,solving:1,somber:-2,"some kind":0,"son-of-a-bitch":-5,soothe:3,soothed:3,soothing:3,sophisticated:2,sore:-1,sorrow:-2,sorrowful:-2,sorry:-1,spacious:1,spam:-2,spammer:-3,spammers:-3,spamming:-2,spark:1,sparkle:3,sparkles:3,sparkling:3,spearhead:2,speculative:-2,spirit:1,spirited:2,spiritless:-2,spiteful:-2,splendid:3,spoiled:-2,spoilt:-2,spotless:2,sprightly:2,squander:-2,squandered:-2,squandering:-2,squanders:-2,squelched:-1,stab:-2,stabbed:-2,stable:2,stabs:-2,stall:-2,stalled:-2,stalling:-2,stamina:2,stampede:-2,stank:-2,startled:-2,startling:3,starve:-2,starved:-2,starves:-2,starving:-2,steadfast:2,steal:-2,stealing:-2,steals:-2,stereotype:-2,stereotyped:-2,stifled:-1,stimulate:1,stimulated:1,stimulates:1,stimulating:2,stingy:-2,stink:-2,stinked:-2,stinker:-2,stinking:-2,stinks:-2,stinky:-2,stole:-2,stolen:-2,stop:-1,stopped:-1,stopping:-1,stops:-1,stout:2,straight:1,strange:-1,strangely:-1,strangled:-2,strength:2,strengthen:2,strengthened:2,strengthening:2,strengthens:2,strengths:2,stress:-1,stressed:-2,stressor:-2,stressors:-2,stricken:-2,strike:-1,strikers:-2,strikes:-1,strong:2,stronger:2,strongest:2,struck:-1,struggle:-2,struggled:-2,struggles:-2,struggling:-2,stubborn:-2,stuck:-2,stunned:-2,stunning:4,stupid:-2,stupidity:-3,stupidly:-2,suave:2,subpoena:-2,substantial:1,substantially:1,subversive:-2,succeed:3,succeeded:3,succeeding:3,succeeds:3,success:2,successful:3,successfully:3,suck:-3,sucks:-3,sue:-2,sued:-2,sueing:-2,sues:-2,suffer:-2,suffered:-2,sufferer:-2,sufferers:-2,suffering:-2,suffers:-2,suicidal:-2,suicide:-2,suicides:-2,suing:-2,suitable:2,suited:2,sulking:-2,sulky:-2,sullen:-2,sunshine:2,super:3,superb:5,superior:2,support:2,supported:2,supporter:1,supporters:1,supporting:1,supportive:2,supports:2,supreme:4,survived:2,surviving:2,survivor:2,suspect:-1,suspected:-1,suspecting:-1,suspects:-1,suspend:-1,suspended:-1,suspicious:-2,sustainability:1,sustainable:2,sustainably:2,swear:-2,swearing:-2,swears:-2,sweet:2,sweeter:3,sweetest:3,swift:2,swiftly:2,swindle:-3,swindles:-3,swindling:-3,sympathetic:2,sympathy:2,taint:-2,tainted:-2,talent:2,tard:-2,tarnish:-2,tarnished:-2,tarnishes:-2,tears:-2,tender:2,tenderness:2,tense:-2,tension:-1,terrible:-3,terribly:-3,terrific:4,terrifically:4,terrified:-3,terror:-3,terrorist:-2,terrorists:-2,terrorize:-3,terrorized:-3,terrorizes:-3,thank:2,thankful:2,thanks:2,thorny:-2,thoughtful:2,thoughtless:-2,threat:-2,threaten:-2,threatened:-2,threatening:-2,threatens:-2,threats:-2,thrilled:5,thwart:-2,thwarted:-2,thwarting:-2,thwarts:-2,timid:-2,timorous:-2,tired:-2,tits:-2,tolerance:2,tolerant:2,toothless:-2,top:2,tops:2,torn:-2,torture:-4,tortured:-4,tortures:-4,torturing:-4,totalitarian:-2,totalitarianism:-2,tout:-2,touted:-2,touting:-2,touts:-2,toxic:-3,tragedies:-2,tragedy:-2,tragic:-2,tranquil:2,transgress:-2,transgressed:-2,transgresses:-2,transgressing:-2,trap:-1,trapped:-2,traps:-1,trauma:-3,traumatic:-3,travesty:-2,treason:-3,treasonous:-3,treasure:2,treasures:2,trembling:-2,tremor:-2,tremors:-2,tremulous:-2,tribulation:-2,tribute:2,tricked:-2,trickery:-2,triumph:4,triumphant:4,troll:-2,trouble:-2,troubled:-2,troubles:-2,troubling:-2,true:2,trust:1,trusted:2,trusts:1,tumor:-2,twat:-5,tyran:-3,tyrannic:-3,tyrannical:-3,tyrannically:-3,tyrans:-3,ubiquitous:2,ugh:-2,ugliness:-3,ugly:-3,unable:-2,unacceptable:-2,unappeasable:-2,unappreciated:-2,unapproved:-2,unattractive:-2,unavailable:-1,unavailing:-2,unaware:-2,unbearable:-2,unbelievable:-1,unbelieving:-1,unbiased:2,uncertain:-1,unclear:-1,uncomfortable:-2,unconcerned:-2,unconfirmed:-1,unconvinced:-1,uncredited:-1,undecided:-1,undercooked:-2,underestimate:-1,underestimated:-1,underestimates:-1,underestimating:-1,undermine:-2,undermined:-2,undermines:-2,undermining:-2,underperform:-2,underperformed:-2,underperforming:-2,underperforms:-2,undeserving:-2,undesirable:-2,uneasy:-2,unemployed:-1,unemployment:-2,unequal:-1,unequaled:2,unethical:-2,uneventful:-2,unfair:-2,unfavorable:-2,unfit:-2,unfitted:-2,unfocused:-2,unforgivable:-3,unforgiving:-2,unfulfilled:-2,unfunny:-2,ungenerous:-2,ungrateful:-3,unhappy:-2,unhappiness:-2,unhealthy:-2,unhygienic:-2,unified:1,unimaginative:-2,unimpressed:-2,uninspired:-2,unintelligent:-2,unintentional:-2,uninvolving:-2,united:1,unjust:-2,unlikely:-1,unlovable:-2,unloved:-2,unmatched:1,unmotivated:-2,unoriginal:-2,unparliamentary:-2,unpleasant:-2,unpleasantness:-2,unprofessional:-2,unravel:1,unreleting:-2,unresearched:-2,unsafe:-2,unsatisfied:-2,unscientific:-2,unsecured:-2,unselfish:2,unsettled:-1,unsold:-1,unsophisticated:-2,unsound:-2,unstable:-2,unstoppable:2,unsuccessful:-2,unsuccessfully:-2,unsupported:-2,unsure:-1,untarnished:2,untrue:-2,unwanted:-2,unworthy:-2,uplifting:2,uproar:-3,upset:-2,upsets:-2,upsetting:-2,uptight:-2,urgent:-1,useful:2,usefulness:2,useless:-2,uselessness:-2,vague:-2,validate:1,validated:1,validates:1,validating:1,vapid:-2,verdict:-1,verdicts:-1,vested:1,vexation:-2,vexing:-2,vibrant:3,vicious:-2,victim:-3,victimization:-3,victimize:-3,victimized:-3,victimizes:-3,victimizing:-3,victims:-3,victor:3,victors:3,victory:3,victories:3,vigilant:3,vigor:3,vile:-3,vindicate:2,vindicated:2,vindicates:2,vindicating:2,violate:-2,violated:-2,violates:-2,violating:-2,violation:-2,violations:-2,violence:-3,"violence-related":-3,violent:-3,violently:-3,virtuous:2,virulent:-2,vision:1,visionary:3,visioning:1,visions:1,vitality:3,vitamin:1,vitriolic:-3,vivacious:3,vividly:2,vociferous:-1,vomit:-3,vomited:-3,vomiting:-3,vomits:-3,vulnerability:-2,vulnerable:-2,walkout:-2,walkouts:-2,wanker:-3,want:1,war:-2,warfare:-2,warm:1,warmhearted:2,warmness:2,warmth:2,warn:-2,warned:-2,warning:-3,warnings:-3,warns:-2,waste:-1,wasted:-2,wasting:-2,wavering:-1,weak:-2,weakened:-2,weakness:-2,weaknesses:-2,wealth:3,wealthier:2,wealthy:2,weary:-2,weep:-2,weeping:-2,weird:-2,welcome:2,welcomed:2,welcomes:2,"well-being":2,"well-championed":3,"well-developed":2,"well-established":2,"well-focused":2,"well-groomed":2,"well-proportioned":2,whimsical:1,whitewash:-3,whore:-4,wicked:-2,widowed:-1,willingness:2,win:4,winner:4,winning:4,wins:4,winwin:3,wisdom:1,wish:1,wishes:1,wishing:1,withdrawal:-3,wits:2,woebegone:-2,woeful:-3,won:3,wonderful:4,wonderfully:4,woo:3,woohoo:3,wooo:4,woow:4,worn:-1,worried:-3,worries:-3,worry:-3,worrying:-3,worse:-3,worsen:-3,worsened:-3,worsening:-3,worsens:-3,worshiped:3,worst:-3,worth:2,worthless:-2,worthy:2,wow:4,wowow:4,wowww:4,wrathful:-3,wreck:-2,wrenching:-2,wrong:-2,wrongdoing:-2,wrongdoings:-2,wronged:-2,wrongful:-2,wrongfully:-2,wrongly:-2,wtf:-4,wtff:-4,wtfff:-4,xo:3,xoxo:3,xoxoxo:4,xoxoxoxo:4,yeah:1,yearning:1,yeees:2,yes:1,youthful:2,yucky:-2,yummy:3,zealot:-2,zealots:-2,zealous:2}},function(e,t,n){var i=n(333);e.exports={apply:function(e,t,n){return t>0&&i[e[t-1]]&&(n=-n),n}}},function(e){e.exports={cant:1,"can't":1,dont:1,"don't":1,doesnt:1,"doesn't":1,not:1,non:1,wont:1,"won't":1,isnt:1,"isn't":1}},function(e,t,n){var i={"./en/index":245};function r(e){var t=u(e);return n(t)}function u(e){var t=i[e];if(!(t+1)){var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}r.keys=function(){return Object.keys(i)},r.resolve=u,e.exports=r,r.id=334},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleStartWithKeyword",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){if(""===e.getLower("keyword")||""===e.getLower("title"))return this.announce("empty",0);var n=e.getLower("title"),i=n.indexOf(e.getLower("keyword")),r=i>=0&&Math.floor(n.length/2)>i;return this.announce(r,r?this.getScore("titleStartWithKeyword"):0)}}]),t}();t.default=s},function(e,t,n){var i=n(337),r=n(99),u=n(103),o=n(0),s=n(26),a=n(100),l=n(338),c=n(101),d=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(o(e)||"string"==typeof e||"function"==typeof e.splice||a(e)||c(e)||u(e)))return!e.length;var t=r(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(l(e))return!i(e).length;for(var n in e)if(d.call(e,n))return!1;return!0}},function(e,t,n){var i=n(50)(Object.keys,Object);e.exports=i},function(e,t){e.exports=function(){return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=c(n(229)),u=c(n(231)),o=n(340),s=c(n(341)),a=c(n(136)),l=c(n(241));function c(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.title="",this.content="",this.keyword="",this.permalink="",this.description="",this.thumbnailAlt="",this.contentWords=null,this.keywordPlurals=!1,this.keywordPermalink=!1,this.keywordCombinations=!1}return i(e,[{key:"get",value:function(e){return(0,r.default)(this,e)?this[e]:""}},{key:"getLower",value:function(e){return this.get(e+="Lower")}},{key:"setTitle",value:function(e){this.title=e,this.titleLower=e.toLowerCase()}},{key:"setPermalink",value:function(e){this.permalink=e,this.permalinkLower=e.toLowerCase()}},{key:"setDescription",value:function(e){this.description=e,this.descriptionLower=e.toLowerCase()}},{key:"setKeyword",value:function(e){this.keyword=e,this.keywordLower=e.toLowerCase(),this.keywordPlurals=!1,this.keywordPermalink=!1,this.keywordCombinations=!1,""!==e&&(this.keywordPlurals=new Map,this.keywordPermalink=(0,a.default)((0,l.default)(this.keywordLower.split(".").join("").replace(/[-_]/gi,"-"))),(0,u.default)(this.keywordLower).forEach(function(e){this.keywordPlurals.set(e,o.pluralize.get(e))},this),this.keywordCombinations=(0,s.default)(this.keywordPlurals),this.keywordCombinations.push(this.keywordLower))}},{key:"setContent",value:function(e){e=e.replace(/<script[^>]*>.*?<\/script>/gi,"").replace(/<style[^>]*>.*?<\/style>/gi,""),this.content=e.replace(/<!--[\s\S]*?(?:-->)/g,""),this.contentLower=e.toLowerCase(),this.contentWords=null}},{key:"getContentWords",value:function(){return null!==this.contentWords&&!1!==this.contentWords?this.contentWords:(this.contentWords=(0,u.default)(this.getLower("content")),this.contentWords)}},{key:"setThumbnailAlt",value:function(e){this.thumbnailAlt=e,void 0!==e&&(this.thumbnailAltLower=e.toLowerCase())}}]),e}();t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.irregularSingles={},this.irregularPlurals={},this.uncountables={adulthood:!0,advice:!0,agenda:!0,aid:!0,alcohol:!0,ammo:!0,anime:!0,athletics:!0,audio:!0,bison:!0,blood:!0,bream:!0,buffalo:!0,butter:!0,carp:!0,cash:!0,chassis:!0,chess:!0,clothing:!0,cod:!0,commerce:!0,cooperation:!0,corps:!0,debris:!0,diabetes:!0,digestion:!0,elk:!0,energy:!0,equipment:!0,excretion:!0,expertise:!0,flounder:!0,fun:!0,gallows:!0,garbage:!0,graffiti:!0,headquarters:!0,health:!0,herpes:!0,highjinks:!0,homework:!0,housework:!0,information:!0,jeans:!0,justice:!0,kudos:!0,labour:!0,literature:!0,machinery:!0,mackerel:!0,mail:!0,media:!0,mews:!0,moose:!0,music:!0,mud:!0,manga:!0,news:!0,pike:!0,plankton:!0,pliers:!0,police:!0,pollution:!0,premises:!0,rain:!0,research:!0,rice:!0,salmon:!0,scissors:!0,seo:!0,series:!0,sewage:!0,shambles:!0,shrimp:!0,species:!0,staff:!0,swine:!0,tennis:!0,traffic:!0,transportation:!0,trout:!0,tuna:!0,wealth:!0,welfare:!0,whiting:!0,wildebeest:!0,wildlife:!0,wordpress:!0,you:!0},this.pluralizationRules=[[/[^aeiou]ese$/i,"$0"],[/deer$/i,"$0"],[/fish$/i,"$0"],[/measles$/i,"$0"],[/o[iu]s$/i,"$0"],[/pox$/i,"$0"],[/sheep$/i,"$0"],[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"]],this.generateIrregularrules()}return i(e,[{key:"generateIrregularrules",value:function(){[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["whiskey","whiskies"],["thou","you"]].forEach(function(e){var t=e[0],n=e[1];this.irregularSingles[t]=n,this.irregularPlurals[n]=t},this)}},{key:"get",value:function(e){if(!e.length)return e;var t=e.toLowerCase();if(this.irregularPlurals.hasOwnProperty(t)&&this.restoreCase(e,t),this.irregularSingles.hasOwnProperty(t)&&this.restoreCase(e,this.irregularSingles[t]),this.uncountables.hasOwnProperty(t))return e;for(var n=this.pluralizationRules.length;n--;){var i=this.pluralizationRules[n];if(i[0].test(e))return this.replace(e,i)}return e}},{key:"restoreCase",value:function(e,t){return e===t?t:e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}},{key:"replace",value:function(e,t){var n=this;return e.replace(t[0],function(i,r){var u=n.interpolate(t[1],arguments);return n.restoreCase(""===i?e[r-1]:i,u)})}},{key:"interpolate",value:function(e,t){return e.replace(/\$(\d{1,2})/g,function(e,n){return t[n]||""})}}]),e}();t.pluralize=new r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=Array.from(e.keys()),n=t.length,o=[];function s(t){e.forEach(function(e,n){e===n||(0,i.default)(t,e)||o.push(t.join(" ").replace(n,e))})}o.push(t.join(" "));for(var a=0;n*n>a;a++)(0,r.default)(o[a])||s(o[a].split(" "));return o.push(Array.from(e.values()).join(" ")),(0,u.default)(o)};var i=o(n(31)),r=o(n(92)),u=o(n(342));function o(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){var i=n(343);e.exports=function(e){return e&&e.length?i(e):[]}},function(e,t,n){var i=n(97),r=n(344),u=n(345),o=n(98),s=n(346),a=n(347);e.exports=function(e,t,n){var l=-1,c=r,d=e.length,f=!0,p=[],g=p;if(n)f=!1,c=u;else if(200>d)g=t?[]:p;else{var h=t?null:s(e);if(h)return a(h);f=!1,c=o,g=new i}e:for(;++l<d;){var y=e[l],m=t?t(y):y;if(y=n||0!==y?y:0,f&&m==m){for(var b=g.length;b--;)if(g[b]===m)continue e;t&&g.push(m),p.push(y)}else c(g,m,n)||(g!==p&&g.push(m),p.push(y))}return p}},function(e,t,n){var i=n(51);e.exports=function(e,t){return!(null==e||!e.length)&&i(e,t,0)>-1}},function(e,t){e.exports=function(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var i=n(349),r=n(28),u=n(350),o=n(0);e.exports=function(e,t){return(o(e)?i:r)(e,u(t))}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}},function(e,t){e.exports=function(e){return e}}]);
1
+ !function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=258)}([function(e,t){e.exports=Array.isArray},function(e,t,n){var i=n(75)("wks"),r=n(40),u=n(2).Symbol,o="function"==typeof u;(e.exports=function(e){return i[e]||(i[e]=o&&u[e]||(o?u:r)("Symbol."+e))}).store=i},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var i=n(11),r=n(41);e.exports=n(4)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){e.exports=!n(22)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=jQuery},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){var i=n(70)("wks"),r=n(71),u=n(6).Symbol,o="function"==typeof u;(e.exports=function(e){return i[e]||(i[e]=o&&u[e]||(o?u:r)("Symbol."+e))}).store=i},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var i=n(34),r=n(68);e.exports=n(20)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var i=n(12),r=n(77),u=n(79),o=Object.defineProperty;t.f=n(4)?Object.defineProperty:function(e,t,n){if(i(e),t=u(t,!0),i(n),r)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var i=n(9);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var i=n(2),r=n(3),u=n(14),o=n(40)("src"),s=Function.toString,a=(""+s).split("toString");n(39).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var l="function"==typeof n;l&&(u(n,"name")||r(n,"name",t)),e[t]!==n&&(l&&(u(n,o)||r(n,o,e[t]?""+e[t]:a.join(t+""))),e===i?e[t]=n:s?e[t]?e[t]=n:r(e,t,n):(delete e[t],r(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[o]||s.call(this)})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=s(n(229)),u=s(n(105)),o=s(n(92));function s(e){return e&&e.__esModule?e:{default:e}}var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return i(e,[{key:"announce",value:function(e,t,n){(0,u.default)(e)||(e=e?"ok":"fail");var i={status:e,message:this.getText(e),score:t||0,hasFactors:!1};return(0,o.default)(n)||(i.factors=n,i.hasFactors=!0,i.message=i.message.replace(/{(\d+)}/g,function(e,t){return(0,o.default)(n[t])?"":n[t]})),i}},{key:"getScore",value:function(e){return rankMath.assessor.researchesTests[e].score}},{key:"getText",value:function(e){var t=this.getTextID(e);return(0,r.default)(rankMath.assessor.__,t)?rankMath.assessor.__[t]:"No text found."}},{key:"getTextID",value:function(e){return this.prefix+"."+e}},{key:"run",value:function(e,t){throw Error("Test unimplemented.")}},{key:"isApplicable",value:function(){return!0}}]),e}();t.default=a},function(e,t,n){var i=n(89);e.exports=function(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}},function(e,t){e.exports={}},function(e,t,n){var i=n(35);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(36)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var i=n(181),r=n(43);e.exports=function(e){return i(r(e))}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var i=n(0),r=n(30),u=n(130),o=n(60);e.exports=function(e,t){return i(e)?e:r(e,t)?[e]:u(o(e))}},function(e,t,n){var i=n(96),r=n(54);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},function(e,t,n){"use strict";var i=n(282);e.exports=function(e){return function(e){return function(t){var n=t&&t.children;if(!n)throw Error("Missing children in `parent` for `modifier`");return i(n,e,t)}}(function(e){return function(t,n){return e(t,n,this)}}(e))}},function(e,t,n){var i=n(109),r=n(112)(i);e.exports=r},function(e,t,n){var i=n(50)(Object.keys,Object);e.exports=i},function(e,t,n){var i=n(0),r=n(129),u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;e.exports=function(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||o.test(e)||!u.test(e)||null!=t&&e in Object(t)}},function(e,t,n){var i=n(51),r=n(26),u=n(105),o=n(140),s=n(141),a=Math.max;e.exports=function(e,t,n,l){e=r(e)?e:s(e),n=n&&!l?o(n):0;var c=e.length;return 0>n&&(n=a(c+n,0)),u(e)?c>=n&&e.indexOf(t,n)>-1:!!c&&i(e,t,n)>-1}},function(e,t,n){var i=n(156),r=n(33);e.exports=function(e){return i(r(e))}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var i=n(19),r=n(159),u=n(160),o=Object.defineProperty;t.f=n(20)?Object.defineProperty:function(e,t,n){if(i(e),t=u(t,!0),i(n),r)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},function(e,t,n){var i=n(70)("keys"),r=n(71);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports={}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var i=n(75)("keys"),r=n(40);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){"use strict";var i=n(3),r=n(13),u=n(22),o=n(43),s=n(1);e.exports=function(e,t,n){var a=s(e),l=n(o,a,""[e]),c=l[0],d=l[1];u(function(){var t={};return t[a]=function(){return 7},7!=""[e](t)})&&(r(String.prototype,e,c),i(RegExp.prototype,a,2==t?function(e,t){return d.call(e,this,t)}:function(e){return d.call(e,this)}))}},function(e,t,n){var i=n(113),r=n(127),u=n(104),o=n(0),s=n(133);e.exports=function(e){return"function"==typeof e?e:null==e?u:"object"==typeof e?o(e)?r(e[0],e[1]):i(e):s(e)}},function(e,t,n){var i=n(25),r=n(15);e.exports=function(e,t){for(var n=0,u=(t=i(t,e)).length;null!=e&&u>n;)e=e[r(t[n++])];return n&&n==u?e:void 0}},function(e,t,n){"use strict";e.exports=function e(t,n){var i,r,u,o=n||"";if(!t||!("length"in t)&&!t.type)throw Error("Expected node, not `"+t+"`");if("string"==typeof t.value)return t.value;if(1===(r=(u="length"in t?t:t.children).length)&&"value"in u[0])return u[0].value;for(i=[];r--;)i[r]=e(u[r],o);return i.join(o)}},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t){e.exports=function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/<\/?[a-z][^>]*?>/gi,"\n")}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&9007199254740991>=e}},function(e,t,n){var i=n(115),r=n(116),u=n(117),o=n(118),s=n(119);function a(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}a.prototype.clear=i,a.prototype.delete=r,a.prototype.get=u,a.prototype.has=o,a.prototype.set=s,e.exports=a},function(e,t,n){var i=n(120),r=n(57);e.exports=function e(t,n,u,o,s){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!=t&&n!=n:i(t,n,u,o,e,s))}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var i=n(24);e.exports=function(e){return e==e&&!i(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},function(e,t){e.exports=function(e){return e}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}},,function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){"use strict";var i=n(65),r=n(66),u=n(161),o=n(10),s=n(18),a=n(162),l=n(73),c=n(170),d=n(8)("iterator"),f=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,g,h,y,m){a(n,t,g);var b,v,D,w=function(e){if(!f&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",F="values"==h,E=!1,x=e.prototype,C=x[d]||x["@@iterator"]||h&&x[h],A=C||w(h),j=h?F?w("entries"):A:void 0,_="Array"==t&&x.entries||C;if(_&&(D=c(_.call(new e)))!==Object.prototype&&D.next&&(l(D,k,!0),i||"function"==typeof D[d]||o(D,d,p)),F&&C&&"values"!==C.name&&(E=!0,A=function(){return C.call(this)}),i&&!m||!f&&!E&&x[d]||o(x,d,A),s[t]=A,s[k]=p,h)if(b={values:F?A:w("values"),keys:y?A:w("keys"),entries:j},m)for(v in b)v in x||u(x,v,b[v]);else r(r.P+r.F*(f||E),t,b);return b}},function(e,t){e.exports=!0},function(e,t,n){var i=n(6),r=n(7),u=n(157),o=n(10),s=n(21),a=function(e,t,n){var l,c,d,f=e&a.F,p=e&a.G,g=e&a.S,h=e&a.P,y=e&a.B,m=e&a.W,b=p?r:r[t]||(r[t]={}),v=b.prototype,D=p?i:g?i[t]:(i[t]||{}).prototype;for(l in p&&(n=t),n)(c=!f&&D&&void 0!==D[l])&&s(b,l)||(d=c?D[l]:n[l],b[l]=p&&"function"!=typeof D[l]?n[l]:y&&c?u(d,i):m&&D[l]==d?function(e){var t=function(t,n,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,i)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):h&&"function"==typeof d?u(Function.call,d):d,h&&((b.virtual||(b.virtual={}))[l]=d,e&a.R&&v&&!v[l]&&o(v,l,d)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,e.exports=a},function(e,t,n){var i=n(35),r=n(6).document,u=i(r)&&i(r.createElement);e.exports=function(e){return u?r.createElement(e):{}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var i=n(165),r=n(72);e.exports=Object.keys||function(e){return i(e,r)}},function(e,t,n){var i=n(7),r=n(6),u=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return u[e]||(u[e]=void 0!==t?t:{})})("versions",[]).push({version:i.version,mode:n(65)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var i=n(34).f,r=n(21),u=n(8)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,u)&&i(e,u,{configurable:!0,value:t})}},function(e,t,n){var i=n(33);e.exports=function(e){return Object(i(e))}},function(e,t,n){var i=n(39),r=n(2),u=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return u[e]||(u[e]=void 0!==t?t:{})})("versions",[]).push({version:i.version,mode:n(76)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports=!1},function(e,t,n){e.exports=!n(4)&&!n(22)(function(){return 7!=Object.defineProperty(n(78)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(9),r=n(2).document,u=i(r)&&i(r.createElement);e.exports=function(e){return u?r.createElement(e):{}}},function(e,t,n){var i=n(9);e.exports=function(e,t){if(!i(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!i(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var i=n(184);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var i=n(83),r=n(45);e.exports=Object.keys||function(e){return i(e,r)}},function(e,t,n){var i=n(14),r=n(23),u=n(188)(!1),o=n(44)("IE_PROTO");e.exports=function(e,t){var n,s=r(e),a=0,l=[];for(n in s)n!=o&&i(s,n)&&l.push(n);for(;t.length>a;)i(s,n=t[a++])&&(~u(l,n)||l.push(n));return l}},function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},function(e,t,n){var i=n(11).f,r=n(14),u=n(1)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,u)&&i(e,u,{configurable:!0,value:t})}},function(e,t,n){var i=n(9),r=n(80),u=n(1)("match");e.exports=function(e){var t;return i(e)&&(void 0!==(t=e[u])?!!t:"RegExp"==r(e))}},function(e,t,n){var i=n(148),r=n(149),u=n(176);e.exports=function(e,t){return i(e)||r(e,t)||u()}},function(e,t,n){e.exports=n(196)},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var i=n(132),r=n(102);e.exports=function(e,t){return null!=e&&r(e,t,i)}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var i=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==i||"symbol"!=i&&n.test(e))&&e>-1&&e%1==0&&t>e}},function(e,t){e.exports=function(e){return void 0===e}},function(e,t,n){var i=n(107),r=n(108),u=n(47),o=n(0);e.exports=function(e,t){return(o(e)?i:r)(e,u(t,3))}},function(e,t,n){var i=n(61),r=n(47),u=n(146),o=n(0);e.exports=function(e,t){return(o(e)?i:u)(e,r(t,3))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(i,"").replace(r,"")};var i=/\[[^<>&\/\[\] - =]+?( [^\]]+?)?\]/g,r=/\[\/[^<>&\/\[\] - =]+?\]/g},function(e,t,n){var i=n(53),r=n(24);e.exports=function(e){if(!r(e))return!1;var t=i(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var i=n(0);e.exports=function(){if(!arguments.length)return[];var e=arguments[0];return i(e)?e:[e]}},function(e,t,n){var i=n(51);e.exports=function(e,t){return!(null==e||!e.length)&&i(e,t,0)>-1}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t){e.exports=function(){return!1}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var i=n(25),r=n(103),u=n(0),o=n(91),s=n(54),a=n(15);e.exports=function(e,t,n){for(var l=-1,c=(t=i(t,e)).length,d=!1;++l<c;){var f=a(t[l]);if(!(d=null!=e&&n(e,f)))break;e=e[f]}return d||++l!=c?d:!!(c=null==e?0:e.length)&&s(c)&&o(f,c)&&(u(e)||r(e))}},function(e,t){e.exports=function(){return!1}},function(e,t){e.exports=function(e){return e}},function(e,t,n){var i=n(53),r=n(0),u=n(57);e.exports=function(e){return"string"==typeof e||!r(e)&&u(e)&&"[object String]"==i(e)}},function(e,t,n){"use strict";e.exports={affixSymbol:/^([\)\]\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63]|["'\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21]|[!\.\?\u2026\u203D])\1*$/,newLine:/^[ \t]*((\r?\n|\r)[\t ]*)+$/,newLineMulti:/^[ \t]*((\r?\n|\r)[\t ]*){2,}$/,terminalMarker:/^((?:[!\.\?\u2026\u203D])+)$/,wordSymbolInner:/^((?:[&'\-\.:=\?@\xAD\xB7\u2010\u2011\u2019\u2027])|(?:_)+)$/,numerical:/^(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE47\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD834[\uDF60-\uDF71]|\uD835[\uDFCE-\uDFFF]|\uD83A[\uDCC7-\uDCCF]|\uD83C[\uDD00-\uDD0C])+$/,digitStart:/^\d/,lowerInitial:/^(?:[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]|\uD801[\uDC28-\uDC4F]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB])/,surrogates:/[\uD800-\uDFFF]/,punctuation:/[!"'-\),-\/:;\?\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u201F\u2022-\u2027\u2032-\u203A\u203C-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,word:/[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09F4-\u09F9\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71-\u0B77\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BF2\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C78-\u0C7E\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D75\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F33\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u17F0-\u17F9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABE\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u20D0-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u3192-\u3195\u31A0-\u31BA\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA830-\uA835\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0-\uDEFB\uDF00-\uDF23\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F-\uDE47\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE6\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC00-\uDC46\uDC52-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF3B]|\uD806[\uDCA0-\uDCF2\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44\uDF60-\uDF71]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,whiteSpace:/[\t-\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,u=[];++n<i;){var o=e[n];t(o,n,e)&&(u[r++]=o)}return u}},function(e,t,n){var i=n(28);e.exports=function(e,t){var n=[];return i(e,function(e,i,r){t(e,i,r)&&n.push(e)}),n}},function(e,t,n){var i=n(110),r=n(29);e.exports=function(e,t){return e&&i(e,t,r)}},function(e,t,n){var i=n(111)();e.exports=i},function(e,t){e.exports=function(e){return function(t,n,i){for(var r=-1,u=Object(t),o=i(t),s=o.length;s--;){var a=o[e?s:++r];if(!1===n(u[a],a,u))break}return t}}},function(e,t,n){var i=n(26);e.exports=function(e,t){return function(n,r){if(null==n)return n;if(!i(n))return e(n,r);for(var u=n.length,o=t?u:-1,s=Object(n);(t?o--:++o<u)&&!1!==r(s[o],o,s););return n}}},function(e,t,n){var i=n(114),r=n(126),u=n(59);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?u(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}},function(e,t,n){var i=n(55),r=n(56);e.exports=function(e,t,n,u){var o=n.length,s=o,a=!u;if(null==e)return!s;for(e=Object(e);o--;){var l=n[o];if(a&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++o<s;){var c=(l=n[o])[0],d=e[c],f=l[1];if(a&&l[2]){if(void 0===d&&!(c in e))return!1}else{var p=new i;if(u)var g=u(d,f,c,e,t,p);if(!(void 0===g?r(f,d,3,u,p):g))return!1}}return!0}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var i=n(17),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=i(t,e);return n>=0&&(n==t.length-1?t.pop():r.call(t,n,1),--this.size,!0)}},function(e,t,n){var i=n(17);e.exports=function(e){var t=this.__data__,n=i(t,e);return 0>n?void 0:t[n][1]}},function(e,t,n){var i=n(17);e.exports=function(e){return i(this.__data__,e)>-1}},function(e,t,n){var i=n(17);e.exports=function(e,t){var n=this.__data__,r=i(n,e);return 0>r?(++this.size,n.push([e,t])):n[r][1]=t,this}},function(e,t,n){var i=n(55),r=n(121),u=n(123),o=n(124),s=n(99),a=n(0),l=n(100),c=n(101),d="[object Arguments]",f="[object Array]",p="[object Object]",g=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,h,y,m){var b=a(e),v=a(t),D=b?f:s(e),w=v?f:s(t),k=(D=D==d?p:D)==p,F=(w=w==d?p:w)==p,E=D==w;if(E&&l(e)){if(!l(t))return!1;b=!0,k=!1}if(E&&!k)return m||(m=new i),b||c(e)?r(e,t,n,h,y,m):u(e,t,D,n,h,y,m);if(!(1&n)){var x=k&&g.call(e,"__wrapped__"),C=F&&g.call(t,"__wrapped__");if(x||C){var A=x?e.value():e,j=C?t.value():t;return m||(m=new i),y(A,j,n,h,m)}}return!!E&&(m||(m=new i),o(e,t,n,h,y,m))}},function(e,t,n){var i=n(97),r=n(122),u=n(98);e.exports=function(e,t,n,o,s,a){var l=1&n,c=e.length,d=t.length;if(!(c==d||l&&d>c))return!1;var f=a.get(e);if(f&&a.get(t))return f==t;var p=-1,g=!0,h=2&n?new i:void 0;for(a.set(e,t),a.set(t,e);++p<c;){var y=e[p],m=t[p];if(o)var b=l?o(m,y,p,t,e,a):o(y,m,p,e,t,a);if(void 0!==b){if(b)continue;g=!1;break}if(h){if(!r(t,function(e,t){if(!u(h,t)&&(y===e||s(y,e,n,o,a)))return h.push(t)})){g=!1;break}}else if(y!==m&&!s(y,m,n,o,a)){g=!1;break}}return a.delete(e),a.delete(t),g}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var i=n(125),r=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,u,o,s){var a=1&n,l=i(e),c=l.length;if(c!=i(t).length&&!a)return!1;for(var d=c;d--;){var f=l[d];if(!(a?f in t:r.call(t,f)))return!1}var p=s.get(e);if(p&&s.get(t))return p==t;var g=!0;s.set(e,t),s.set(t,e);for(var h=a;++d<c;){var y=e[f=l[d]],m=t[f];if(u)var b=a?u(m,y,f,t,e,s):u(y,m,f,e,t,s);if(!(void 0===b?y===m||o(y,m,n,u,s):b)){g=!1;break}h||(h="constructor"==f)}if(g&&!h){var v=e.constructor,D=t.constructor;v!=D&&"constructor"in e&&"constructor"in t&&!("function"==typeof v&&v instanceof v&&"function"==typeof D&&D instanceof D)&&(g=!1)}return s.delete(e),s.delete(t),g}},function(e,t,n){var i=n(50)(Object.keys,Object);e.exports=i},function(e,t,n){var i=n(58),r=n(29);e.exports=function(e){for(var t=r(e),n=t.length;n--;){var u=t[n],o=e[u];t[n]=[u,o,i(o)]}return t}},function(e,t,n){var i=n(56),r=n(128),u=n(90),o=n(30),s=n(58),a=n(59),l=n(15);e.exports=function(e,t){return o(e)&&s(t)?a(l(e),t):function(n){var o=r(n,e);return void 0===o&&o===t?u(n,e):i(t,o,3)}}},function(e,t,n){var i=n(48);e.exports=function(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,u=n(131)(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,function(e,n,i,u){t.push(i?u.replace(r,"$1"):n||e)}),t});e.exports=u},function(e,t){e.exports=function(e){return e}},function(e,t){e.exports=function(e,t){return null!=e&&t in Object(e)}},function(e,t,n){var i=n(134),r=n(135),u=n(30),o=n(15);e.exports=function(e){return u(e)?i(o(e)):r(e)}},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var i=n(48);e.exports=function(e){return function(t){return i(t,e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(e=(0,r.default)(e)).replace(/ /gi,"-").toLowerCase()};var i,r=(i=n(137))&&i.__esModule?i:{default:i}},function(e,t,n){var i=n(138),r=n(60),u=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,o=/[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]/g;e.exports=function(e){return(e=r(e))&&e.replace(u,i).replace(o,"")}},function(e,t,n){var i=n(139)({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"});e.exports=i},function(e,t){e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},function(e,t){e.exports=function(e){return e}},function(e,t,n){var i=n(142),r=n(29);e.exports=function(e){return null==e?[]:i(e,r(e))}},function(e,t,n){var i=n(61);e.exports=function(e,t){return i(t,function(t){return e[t]})}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=a((0,r.autop)((0,o.default)(e)),t);return n.length>0?n:[e]};var i=s(n(94)),r=n(147),u=s(n(52)),o=s(n(95));function s(e){return e&&e.__esModule?e:{default:e}}var a=function(e,t){var n=[];t=t||!1;for(var r=/<p(?:[^>]+)?>(.*?)<\/p>/gi,o=void 0;null!==(o=r.exec(e));)n.push(o);return(0,i.default)(n,function(e){return t?(0,u.default)(e[1]):e[1]})}},function(e,t,n){var i=n(28),r=n(26);e.exports=function(e,t){var n=-1,u=r(e)?Array(e.length):[];return i(e,function(e,i,r){u[++n]=t(e,i,r)}),u}},function(e,t,n){"use strict";n.r(t),n.d(t,"autop",function(){return l}),n.d(t,"removep",function(){return c});var i=n(87),r=n.n(i),u=(n(177),n(194),n(195),n(88)),o=n.n(u),s=(n(199),n(200),/(<((?=!--|!\[CDATA\[)((?=!-)!(?:-(?!->)[^\-]*)*(?:-->)?|!\[CDATA\[[^\]]*(?:](?!]>)[^\]]*)*?(?:]]>)?)|[^>]*>?))/);function a(e,t){for(var n=function(e){for(var t,n=[],i=e;t=i.match(s);)n.push(i.slice(0,t.index)),n.push(t[0]),i=i.slice(t.index+t[0].length);return i.length&&n.push(i),n}(e),i=!1,r=o()(t),u=1;n.length>u;u+=2)for(var a=0;r.length>a;a++){var l=r[a];if(-1!==n[u].indexOf(l)){n[u]=n[u].replace(RegExp(l,"g"),t[l]),i=!0;break}}return i&&(e=n.join("")),e}function l(e){var t=1>=arguments.length||void 0===arguments[1]||arguments[1],n=[];if(""===e.trim())return"";if(-1!==(e+="\n").indexOf("<pre")){var i=e.split("</pre>"),u=i.pop();e="";for(var o=0;i.length>o;o++){var s=i[o],l=s.indexOf("<pre");if(-1!==l){var c="<pre wp-pre-tag-"+o+"></pre>";n.push([c,s.substr(l)+"</pre>"]),e+=s.substr(0,l)+c}else e+=s}e+=u}var d="(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)";-1!==(e=a(e=(e=(e=(e=e.replace(/<br\s*\/?>\s*<br\s*\/?>/g,"\n\n")).replace(RegExp("(<"+d+"[s/>])","g"),"\n\n$1")).replace(RegExp("(</"+d+">)","g"),"$1\n\n")).replace(/\r\n|\r/g,"\n"),{"\n":" \x3c!-- wpnl --\x3e "})).indexOf("<option")&&(e=(e=e.replace(/\s*<option/g,"<option")).replace(/<\/option>\s*/g,"</option>")),-1!==e.indexOf("</object>")&&(e=(e=(e=e.replace(/(<object[^>]*>)\s*/g,"$1")).replace(/\s*<\/object>/g,"</object>")).replace(/\s*(<\/?(?:param|embed)[^>]*>)\s*/g,"$1")),-1===e.indexOf("<source")&&-1===e.indexOf("<track")||(e=(e=(e=e.replace(/([<\[](?:audio|video)[^>\]]*[>\]])\s*/g,"$1")).replace(/\s*([<\[]\/(?:audio|video)[>\]])/g,"$1")).replace(/\s*(<(?:source|track)[^>]*>)\s*/g,"$1")),-1!==e.indexOf("<figcaption")&&(e=(e=e.replace(/\s*(<figcaption[^>]*>)/,"$1")).replace(/<\/figcaption>\s*/,"</figcaption>"));var f=(e=e.replace(/\n\n+/g,"\n\n")).split(/\n\s*\n/).filter(Boolean);return e="",f.forEach(function(t){e+="<p>"+t.replace(/^\n*|\n*$/g,"")+"</p>\n"}),e=(e=(e=(e=(e=(e=(e=(e=e.replace(/<p>\s*<\/p>/g,"")).replace(/<p>([^<]+)<\/(div|address|form)>/g,"<p>$1</p></$2>")).replace(RegExp("<p>s*(</?"+d+"[^>]*>)s*</p>","g"),"$1")).replace(/<p>(<li.+?)<\/p>/g,"$1")).replace(/<p><blockquote([^>]*)>/gi,"<blockquote$1><p>")).replace(/<\/blockquote><\/p>/g,"</p></blockquote>")).replace(RegExp("<p>s*(</?"+d+"[^>]*>)","g"),"$1")).replace(RegExp("(</?"+d+"[^>]*>)s*</p>","g"),"$1"),t&&(e=(e=(e=(e=e.replace(/<(script|style).*?<\/\\1>/g,function(e){return e[0].replace(/\n/g,"<WPPreserveNewline />")})).replace(/<br>|<br\/>/g,"<br />")).replace(/(<br \/>)?\s*\n/g,function(e,t){return t?e:"<br />\n"})).replace(/<WPPreserveNewline \/>/g,"\n")),e=(e=(e=e.replace(RegExp("(</?"+d+"[^>]*>)s*<br />","g"),"$1")).replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)/g,"$1")).replace(/\n<\/p>$/g,"</p>"),n.forEach(function(t){var n=r()(t,2);e=e.replace(n[0],n[1])}),-1!==e.indexOf("\x3c!-- wpnl --\x3e")&&(e=e.replace(/\s?<!-- wpnl -->\s?/g,"\n")),e}function c(e){var t="blockquote|ul|ol|li|dl|dt|dd|table|thead|tbody|tfoot|tr|th|td|h[1-6]|fieldset|figure",n=t+"|div|p",i=t+"|pre",r=[],u=!1,o=!1;return e?(-1===e.indexOf("<script")&&-1===e.indexOf("<style")||(e=e.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/g,function(e){return r.push(e),"<wp-preserve>"})),-1!==e.indexOf("<pre")&&(u=!0,e=e.replace(/<pre[^>]*>[\s\S]+?<\/pre>/g,function(e){return(e=(e=e.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-line-break>")).replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-line-break>")).replace(/\r?\n/g,"<wp-line-break>")})),-1!==e.indexOf("[caption")&&(o=!0,e=e.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(e){return e.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})),-1!==(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(RegExp("\\s*</("+n+")>\\s*","g"),"</$1>\n")).replace(RegExp("\\s*<((?:"+n+")(?: [^>]*)?)>","g"),"\n<$1>")).replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>")).replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n")).replace(/\s*<p>/gi,"")).replace(/\s*<\/p>\s*/gi,"\n\n")).replace(/\n[\s\u00a0]+\n/g,"\n\n")).replace(/(\s*)<br ?\/?>\s*/gi,function(e,t){return t&&-1!==t.indexOf("\n")?"\n\n":"\n"})).replace(/\s*<div/g,"\n<div")).replace(/<\/div>\s*/g,"</div>\n")).replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n")).replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption")).replace(RegExp("\\s*<((?:"+i+")(?: [^>]*)?)\\s*>","g"),"\n<$1>")).replace(RegExp("\\s*</("+i+")>\\s*","g"),"</$1>\n")).replace(/<((li|dt|dd)[^>]*)>/g," \t<$1>")).indexOf("<option")&&(e=(e=e.replace(/\s*<option/g,"\n<option")).replace(/\s*<\/select>/g,"\n</select>")),-1!==e.indexOf("<hr")&&(e=e.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")),-1!==e.indexOf("<object")&&(e=e.replace(/<object[\s\S]+?<\/object>/g,function(e){return e.replace(/[\r\n]+/g,"")})),e=(e=(e=(e=e.replace(/<\/p#>/g,"</p>\n")).replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1")).replace(/^\s+/,"")).replace(/[\s\u00a0]+$/,""),u&&(e=e.replace(/<wp-line-break>/g,"\n")),o&&(e=e.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),r.length&&(e=e.replace(/<wp-preserve>/g,function(){return r.shift()})),e):""}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t,n){var i=n(150);e.exports=function(e,t){var n=[],r=!0,u=!1,o=void 0;try{for(var s,a=i(e);!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){u=!0,o=e}finally{try{r||null==a.return||a.return()}finally{if(u)throw o}}return n}},function(e,t,n){e.exports=n(151)},function(e,t,n){n(152),n(171),e.exports=n(173)},function(e,t,n){n(153);for(var i=n(6),r=n(10),u=n(18),o=n(8)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),a=0;s.length>a;a++){var l=s[a],c=i[l],d=c&&c.prototype;d&&!d[o]&&r(d,o,l),u[l]=u.Array}},function(e,t,n){"use strict";var i=n(154),r=n(155),u=n(18),o=n(32);e.exports=n(64)(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return e&&e.length>n?r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]]):(this._t=void 0,r(1))},"values"),u.Arguments=u.Array,i("keys"),i("values"),i("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var i=n(63);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t,n){var i=n(158);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){e.exports=!n(20)&&!n(36)(function(){return 7!=Object.defineProperty(n(67)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(35);e.exports=function(e,t){if(!i(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!i(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){e.exports=n(10)},function(e,t,n){"use strict";var i=n(163),r=n(68),u=n(73),o={};n(10)(o,n(8)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=i(o,{next:r(1,n)}),u(e,t+" Iterator")}},function(e,t,n){var i=n(19),r=n(164),u=n(72),o=n(38)("IE_PROTO"),s=function(){},a=function(){var e,t=n(67)("iframe"),i=u.length;for(t.style.display="none",n(169).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),a=e.F;i--;)delete a.prototype[u[i]];return a()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=i(e),n=new s,s.prototype=null,n[o]=e):n=a(),void 0===t?n:r(n,t)}},function(e,t,n){var i=n(34),r=n(19),u=n(69);e.exports=n(20)?Object.defineProperties:function(e,t){r(e);for(var n,o=u(t),s=o.length,a=0;s>a;)i.f(e,n=o[a++],t[n]);return e}},function(e,t,n){var i=n(21),r=n(32),u=n(166)(!1),o=n(38)("IE_PROTO");e.exports=function(e,t){var n,s=r(e),a=0,l=[];for(n in s)n!=o&&i(s,n)&&l.push(n);for(;t.length>a;)i(s,n=t[a++])&&(~u(l,n)||l.push(n));return l}},function(e,t,n){var i=n(32),r=n(167),u=n(168);e.exports=function(e){return function(t,n,o){var s,a=i(t),l=r(a.length),c=u(o,l);if(e&&n!=n){for(;l>c;)if((s=a[c++])!=s)return!0}else for(;l>c;c++)if((e||c in a)&&a[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var i=n(37),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},function(e,t,n){var i=n(37),r=Math.max,u=Math.min;e.exports=function(e,t){return 0>(e=i(e))?r(e+t,0):u(e,t)}},function(e,t,n){var i=n(6).document;e.exports=i&&i.documentElement},function(e,t,n){var i=n(21),r=n(74),u=n(38)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),i(e,u)?e[u]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){"use strict";var i=n(172)(!0);n(64)(String,"String",function(e){this._t=e+"",this._i=0},function(){var e,t=this._t,n=this._i;return t.length>n?(e=i(t,n),this._i+=e.length,{value:e,done:!1}):{value:void 0,done:!0}})},function(e,t,n){var i=n(37),r=n(33);e.exports=function(e){return function(t,n){var u,o,s=r(t)+"",a=i(n),l=s.length;return 0>a||a>=l?e?"":void 0:55296>(u=s.charCodeAt(a))||u>56319||a+1===l||56320>(o=s.charCodeAt(a+1))||o>57343?e?s.charAt(a):u:e?s.slice(a,a+2):o-56320+(u-55296<<10)+65536}}},function(e,t,n){var i=n(19),r=n(174);e.exports=n(7).getIterator=function(e){var t=r(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return i(t.call(e))}},function(e,t,n){var i=n(175),r=n(8)("iterator"),u=n(18);e.exports=n(7).getIteratorMethod=function(e){if(null!=e)return e[r]||e["@@iterator"]||u[i(e)]}},function(e,t,n){var i=n(63),r=n(8)("toStringTag"),u="Arguments"==i(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),r))?n:u?i(t):"Object"==(o=i(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){for(var i=n(178),r=n(82),u=n(13),o=n(2),s=n(3),a=n(42),l=n(1),c=l("iterator"),d=l("toStringTag"),f=a.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},g=r(p),h=0;g.length>h;h++){var y,m=g[h],b=p[m],v=o[m],D=v&&v.prototype;if(D&&(D[c]||s(D,c,f),D[d]||s(D,d,m),a[m]=f,b))for(y in i)D[y]||u(D,y,i[y],!0)}},function(e,t,n){"use strict";var i=n(179),r=n(180),u=n(42),o=n(23);e.exports=n(182)(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return e&&e.length>n?r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]]):(this._t=void 0,r(1))},"values"),u.Arguments=u.Array,i("keys"),i("values"),i("entries")},function(e,t,n){var i=n(1)("unscopables"),r=Array.prototype;null==r[i]&&n(3)(r,i,{}),e.exports=function(e){r[i][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var i=n(80);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var i=n(76),r=n(183),u=n(13),o=n(3),s=n(42),a=n(185),l=n(85),c=n(192),d=n(1)("iterator"),f=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,g,h,y,m){a(n,t,g);var b,v,D,w=function(e){if(!f&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",F="values"==h,E=!1,x=e.prototype,C=x[d]||x["@@iterator"]||h&&x[h],A=C||w(h),j=h?F?w("entries"):A:void 0,_="Array"==t&&x.entries||C;if(_&&(D=c(_.call(new e)))!==Object.prototype&&D.next&&(l(D,k,!0),i||"function"==typeof D[d]||o(D,d,p)),F&&C&&"values"!==C.name&&(E=!0,A=function(){return C.call(this)}),i&&!m||!f&&!E&&x[d]||o(x,d,A),s[t]=A,s[k]=p,h)if(b={values:F?A:w("values"),keys:y?A:w("keys"),entries:j},m)for(v in b)v in x||u(x,v,b[v]);else r(r.P+r.F*(f||E),t,b);return b}},function(e,t,n){var i=n(2),r=n(39),u=n(3),o=n(13),s=n(81),a=function(e,t,n){var l,c,d,f,p=e&a.F,g=e&a.G,h=e&a.P,y=e&a.B,m=g?i:e&a.S?i[t]||(i[t]={}):(i[t]||{}).prototype,b=g?r:r[t]||(r[t]={}),v=b.prototype||(b.prototype={});for(l in g&&(n=t),n)d=((c=!p&&m&&void 0!==m[l])?m:n)[l],f=y&&c?s(d,i):h&&"function"==typeof d?s(Function.call,d):d,m&&o(m,l,d,e&a.U),b[l]!=d&&u(b,l,f),h&&v[l]!=d&&(v[l]=d)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,e.exports=a},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var i=n(186),r=n(41),u=n(85),o={};n(3)(o,n(1)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=i(o,{next:r(1,n)}),u(e,t+" Iterator")}},function(e,t,n){var i=n(12),r=n(187),u=n(45),o=n(44)("IE_PROTO"),s=function(){},a=function(){var e,t=n(78)("iframe"),i=u.length;for(t.style.display="none",n(191).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),a=e.F;i--;)delete a.prototype[u[i]];return a()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=i(e),n=new s,s.prototype=null,n[o]=e):n=a(),void 0===t?n:r(n,t)}},function(e,t,n){var i=n(11),r=n(12),u=n(82);e.exports=n(4)?Object.defineProperties:function(e,t){r(e);for(var n,o=u(t),s=o.length,a=0;s>a;)i.f(e,n=o[a++],t[n]);return e}},function(e,t,n){var i=n(23),r=n(189),u=n(190);e.exports=function(e){return function(t,n,o){var s,a=i(t),l=r(a.length),c=u(o,l);if(e&&n!=n){for(;l>c;)if((s=a[c++])!=s)return!0}else for(;l>c;c++)if((e||c in a)&&a[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var i=n(84),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},function(e,t,n){var i=n(84),r=Math.max,u=Math.min;e.exports=function(e,t){return 0>(e=i(e))?r(e+t,0):u(e,t)}},function(e,t,n){var i=n(2).document;e.exports=i&&i.documentElement},function(e,t,n){var i=n(14),r=n(193),u=n(44)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),i(e,u)?e[u]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){var i=n(43);e.exports=function(e){return Object(i(e))}},function(e,t,n){n(46)("split",2,function(e,t,i){"use strict";var r=n(86),u=i,o=[].push;if("".split(/.?/).length){var s=void 0===/()??/.exec("")[1];i=function(e,t){var n=this+"";if(void 0===e&&0===t)return[];if(!r(e))return u.call(n,e,t);var i,a,l,c,d,f=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),g=0,h=void 0===t?4294967295:t>>>0,y=RegExp(e.source,p+"g");for(s||(i=RegExp("^"+y.source+"$(?!\\s)",p));(a=y.exec(n))&&((l=a.index+a[0].length)<=g||(f.push(n.slice(g,a.index)),!s&&a.length>1&&a[0].replace(i,function(){for(d=1;arguments.length-2>d;d++)void 0===arguments[d]&&(a[d]=void 0)}),a.length>1&&n.length>a.index&&o.apply(f,a.slice(1)),c=a[0].length,g=l,h>f.length));)y.lastIndex===a.index&&y.lastIndex++;return g===n.length?!c&&y.test("")||f.push(""):f.push(n.slice(g)),f.length>h?f.slice(0,h):f}}return[function(n,r){var u=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,u,r):i.call(u+"",n,r)},i]})},function(e,t,n){n(46)("replace",2,function(e,t,n){return[function(i,r){"use strict";var u=e(this),o=null==i?void 0:i[t];return void 0!==o?o.call(i,u,r):n.call(u+"",i,r)},n]})},function(e,t,n){n(197),e.exports=n(7).Object.keys},function(e,t,n){var i=n(74),r=n(69);n(198)("keys",function(){return function(e){return r(i(e))}})},function(e,t,n){var i=n(66),r=n(7),u=n(36);e.exports=function(e,t){var n=(r.Object||{})[e]||Object[e],o={};o[e]=t(n),i(i.S+i.F*u(function(){n(1)}),"Object",o)}},function(e,t,n){n(46)("match",1,function(e,t,n){return[function(n){"use strict";var i=e(this),r=null==n?void 0:n[t];return void 0!==r?r.call(n,i):RegExp(n)[t](i+"")},n]})},function(e,t,n){var i=n(2),r=n(201),u=n(11).f,o=n(205).f,s=n(86),a=n(206),l=i.RegExp,c=l,d=l.prototype,f=/a/g,p=/a/g,g=new l(f)!==f;if(n(4)&&(!g||n(22)(function(){return p[n(1)("match")]=!1,l(f)!=f||l(p)==p||"/a/i"!=l(f,"i")}))){l=function(e,t){var n=this instanceof l,i=s(e),u=void 0===t;return!n&&i&&e.constructor===l&&u?e:r(g?new c(i&&!u?e.source:e,t):c((i=e instanceof l)?e.source:e,i&&u?a.call(e):t),n?this:d,l)};for(var h=function(e){e in l||u(l,e,{configurable:!0,get:function(){return c[e]},set:function(t){c[e]=t}})},y=o(c),m=0;y.length>m;)h(y[m++]);d.constructor=l,l.prototype=d,n(13)(i,"RegExp",l)}n(207)("RegExp")},function(e,t,n){var i=n(9),r=n(202).set;e.exports=function(e,t,n){var u,o=t.constructor;return o!==n&&"function"==typeof o&&(u=o.prototype)!==n.prototype&&i(u)&&r&&r(e,u),e}},function(e,t,n){var i=n(9),r=n(12),u=function(e,t){if(r(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{(i=n(81)(Function.call,n(203).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return u(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:u}},function(e,t,n){var i=n(204),r=n(41),u=n(23),o=n(79),s=n(14),a=n(77),l=Object.getOwnPropertyDescriptor;t.f=n(4)?l:function(e,t){if(e=u(e),t=o(t,!0),a)try{return l(e,t)}catch(e){}if(s(e,t))return r(!i.f.call(e,t),e[t])}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var i=n(83),r=n(45).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return i(e,r)}},function(e,t,n){"use strict";var i=n(12);e.exports=function(){var e=i(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var i=n(2),r=n(11),u=n(4),o=n(1)("species");e.exports=function(e){var t=i[e];u&&t&&!t[o]&&r.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t){e.exports=function(e){return e}},,,,,,,,,,,,,function(e,t,n){var i=n(222),r=n(208)(function(e,t){return null==e?{}:i(e,t)});e.exports=r},function(e,t,n){var i=n(223),r=n(90);e.exports=function(e,t){return i(e,t,function(t,n){return r(e,n)})}},function(e,t,n){var i=n(48),r=n(224),u=n(25);e.exports=function(e,t,n){for(var o=-1,s=t.length,a={};++o<s;){var l=t[o],c=i(e,l);n(c,l)&&r(a,u(l,e),c)}return a}},function(e,t,n){var i=n(225),r=n(25),u=n(91),o=n(24),s=n(15);e.exports=function(e,t,n,a){if(!o(e))return e;for(var l=-1,c=(t=r(t,e)).length,d=c-1,f=e;null!=f&&++l<c;){var p=s(t[l]),g=n;if(l!=d){var h=f[p];void 0===(g=a?a(h,p,f):void 0)&&(g=o(h)?h:u(t[l+1])?[]:{})}i(f,p,g),f=f[p]}return e}},function(e,t,n){var i=n(226),r=n(89),u=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var o=e[t];u.call(e,t)&&r(o,n)&&(void 0!==n||t in e)||i(e,t,n)}},function(e,t,n){var i=n(227);e.exports=function(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var i=n(228),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var i=n(261),r=n(102);e.exports=function(e,t){return null!=e&&r(e,t,i)}},function(e,t,n){"use strict";e.exports=function(e){return function(t){var n=-1,i=t&&t.children;if(!i)throw Error("Missing children in `parent` for `visitor`");for(;++n in i;)e(i[n],n,t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=h(e);return t=t||!1,0!==n.length&&(!1===t?n:n.slice(0,t))};var i=g(n(236)),r=g(n(94)),u=g(n(93)),o=g(n(52)),s=g(n(237)),a=g(n(95)),l=g(n(238)),c=g(n(239)),d=g(n(240)),f=g(n(269)),p=g(n(241));function g(e){return e&&e.__esModule?e:{default:e}}var h=function(e){if(""===(e=(0,i.default)([o.default,s.default,a.default,l.default,c.default,d.default,f.default])(e)))return[];var t=e.split(/\s/g);return t=(0,r.default)(t,function(e){return(0,p.default)(e)}),(0,u.default)(t,function(e){return""!==e.trim()})}},function(e,t,n){var i=n(272),r=n(273),u=n(144);e.exports=function(e,t,n){return t=r(t),void 0===n?(n=t,t=0):n=r(n),e=u(e),i(e,t,n)}},function(e,t,n){"use strict";var i=n(230);function r(e){e.position||(e.position={})}e.exports=i(function(e,t,n){var i=n.children;e.position&&(0!==t||n.position&&n.position.start||(r(n),n.position.start=e.position.start),t!==i.length-1||n.position&&n.position.end||(r(n),n.position.end=e.position.end))})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.get("content").match(/<a(?:[^>]+)?>/gi),n={total:null===t?0:t.length,internalTotal:0,internalDofollow:0,internalNofollow:0,externalTotal:0,externalDofollow:0,externalNofollow:0,otherTotal:0,otherDofollow:0,otherNofollow:0,anchors:t};return null===t?n:(t.forEach(function(e){var t=r.default.getLinkType(e,rankMath.parentDomain),i=r.default.checkNofollow(e,t);n[t+"Total"]++,n[t+i]++}),n)};var i,r=(i=n(313))&&i.__esModule?i:{default:i}},,function(e,t,n){var i=n(264)();e.exports=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/<!--[\s\S]*?-->/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/&nbsp;|&#160;/gi," ").replace(/\s{2,}/g," ").replace(/\s\./g,".").replace(/^\s+|\s+$/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/&\S+?;/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/--|\u2014/g," ")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(i,"").replace(r,"")};var i=/^[\–\-\(\)_\[\]’“”"'.?!:;,¿¡«»‹›—×+&<>]+/,r=/[\–\-\(\)_\[\]’“”"'.?!:;,¿¡«»‹›—×+&<>]+$/},function(e,t,n){"use strict";var i=n(230);e.exports=i(function(e,t,n){var i,r=e.children;r&&0!==r.length&&"WhiteSpaceNode"===r[0].type&&(n.children.splice(t,0,r.shift()),(i=r[0])&&i.position&&e.position&&(e.position.start=i.position.start))})},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){var i,r=e.children;if(r&&0!==r.length&&"WhiteSpaceNode"===r[r.length-1].type)return n.children.splice(t+1,0,e.children.pop()),(i=r[r.length-1])&&i.position&&e.position&&(e.position.end=i.position.end),t})},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){if("children"in e&&0===e.children.length)return n.children.splice(t,1),t})},function(e,t,n){e.exports={labels:n(331),scoringStrategy:n(332)}},,,,,,,,,,,,,function(e,t,n){"use strict";var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=s(n(259)),u=s(n(339)),o=s(n(348));function s(e){return e&&e.__esModule?e:{default:e}}var a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.paper=new u.default,this.researcher=new r.default(this.paper),this.researches=t.researches,this.elemContent=t.elemContent}return i(e,[{key:"assessTitle",value:function(e){return this.paper.setTitle(e),this.run({keywordInTitle:!0,titleHasPowerWords:!0,titleHasNumber:!0,titleSentiment:!0,titleStartWithKeyword:!0})}},{key:"assessPermalink",value:function(e){return this.paper.setPermalink(e),this.run({keywordInPermalink:!0,lengthPermalink:!0})}},{key:"assessFocusKeyword",value:function(e){return this.paper.setKeyword(e.keyword),this.run(e.isPrimary?{keywordDensity:!0,keywordIn10Content:!0,keywordInContent:!0,keywordInImageAlt:!0,keywordInMetaDescription:!0,keywordInPermalink:!0,keywordInSubheadings:!0,keywordInTitle:!0,keywordNotUsed:!0,titleStartWithKeyword:!0}:{keywordDensity:!0,keywordInContent:!0,keywordInSubheadings:!0})}},{key:"assessContent",value:function(e){return this.paper.setDescription(e),this.run({contentHasShortParagraphs:!0,contentHasTOC:!0,calculateFleschReading:!0,contentHasAssets:!0,keywordDensity:!0,keywordIn10Content:!0,keywordInContent:!0,keywordInImageAlt:!0,keywordInMetaDescription:!0,keywordInSubheadings:!0,lengthContent:!0,linksHasExternals:!0,linksHasInternal:!0,linksNotAllExternals:!0})}},{key:"runAll",value:function(){var e=this,t={},n=this.researches||this.researcher.getResearches();return(0,o.default)(n,function(n,i){t[i]=e.researcher.run(i)}),t}},{key:"run",value:function(e){var t=this,n={};return(0,o.default)(e,function(e,i){var r=t.researcher.run(i);!1!==r&&(n[i]=r)}),n}},{key:"refreshContent",value:function(){if(null!==this.elemContent&&0!==this.elemContent.length){var e="undefined"!=typeof tinymce&&tinymce.activeEditor&&"content"===tinymce.activeEditor.id?tinymce.activeEditor.getContent():this.elemContent.val();this.paper.setContent(e)}}}]),e}();window.Assessor=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=B(n(260)),u=B(n(270)),o=B(n(271)),s=B(n(300)),a=B(n(301)),l=B(n(302)),c=B(n(303)),d=B(n(304)),f=B(n(305)),p=B(n(306)),g=B(n(307)),h=B(n(308)),y=B(n(309)),m=B(n(310)),b=B(n(311)),v=B(n(312)),D=B(n(321)),w=B(n(322)),k=B(n(323)),F=B(n(324)),E=B(n(325)),x=B(n(335)),C=B(n(221)),A=B(n(229)),j=B(n(336)),_=B(n(92));function B(e){return e&&e.__esModule?e:{default:e}}var O=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.setPaper(t),this.researches={contentHasShortParagraphs:new r.default,contentHasTOC:new u.default,calculateFleschReading:new o.default,contentHasAssets:new s.default,keywordDensity:new a.default,keywordIn10Content:new l.default,keywordInContent:new c.default,keywordInImageAlt:new d.default,keywordInMetaDescription:new f.default,keywordInPermalink:new p.default,keywordInSubheadings:new g.default,keywordInTitle:new h.default,keywordNotUsed:new y.default,lengthContent:new m.default,lengthPermalink:new b.default,linksHasExternals:new v.default,linksHasInternal:new D.default,linksNotAllExternals:new w.default,titleHasPowerWords:new k.default,titleHasNumber:new F.default,titleSentiment:new E.default,titleStartWithKeyword:new x.default},this.researches=(0,C.default)(this.researches,Object.keys(rankMath.assessor.researchesTests))}return i(e,[{key:"setPaper",value:function(e){this.paper=e}},{key:"getResearches",value:function(){return this.researches}},{key:"hasResearch",value:function(e){return(0,A.default)(this.getResearches(),e)}},{key:"get",value:function(e){return!(0,_.default)(e)&&!(0,j.default)(e)&&!!this.hasResearch(e)&&this.getResearches()[e]}},{key:"run",value:function(e){var t=this.get(e);return!1!==t&&!1!==t.isApplicable()&&t.run(this.paper,this)}}]),e}();t.default=O},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(262));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="contentHasShortParagraphs",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("content"))return this.announce("empty",0);var n=!(0,u.default)(e.get("content")).some(function(e){return e.wordCount>120});return this.announce(n,n?this.getScore("contentHasShortParagraphs"):0)}}]),t}();t.default=a},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e,t){return null!=e&&n.call(e,t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=[];return(0,u.default)(e).map(function(e){t.push({wordCount:(0,r.default)(e),text:e})}),(0,i.default)(t,function(e){return e.wordCount>0})};var i=o(n(93)),r=o(n(263)),u=o(n(145));function o(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,r.default)(e).length};var i,r=(i=n(231))&&i.__esModule?i:{default:i}},function(e,t,n){var i=n(265),r=n(208),u=n(266),o=n(267),s=n(0),a=n(268);e.exports=function(e){return r(function(t){var n=t.length,r=n,l=i.prototype.thru;for(e&&t.reverse();r--;){var c=t[r];if("function"!=typeof c)throw new TypeError("Expected a function");if(l&&!d&&"wrapper"==o(c))var d=new i([],!0)}for(r=d?r:n;++r<n;){var f=o(c=t[r]),p="wrapper"==f?u(c):void 0;d=p&&a(p[0])&&424==p[1]&&!p[4].length&&1==p[9]?d[o(p[0])].apply(d,p[3]):1==c.length&&a(c)?d[f]():d.thru(c)}return function(){var e=arguments,i=e[0];if(d&&1==e.length&&s(i))return d.plant(i).value();for(var r=0,u=n?t[r].apply(this,e):i;++r<n;)u=t[r].call(this,u);return u}})}},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(){return""}},function(e,t){e.exports=function(){return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.replace(/[€-¿×÷ -⯿⸀-⹿]/g,"")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="contentHasTOC",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){return""===e.get("content")?this.announce("empty",0):this.announce(rankMath.assessor.hasTOCPlugin,rankMath.assessor.hasTOCPlugin?this.getScore("contentHasTOC"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=s(n(16)),u=s(n(232)),o=n(274);function s(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=a(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="calculateFleschReading",a(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("content"))return this.announce("empty",0,[0,0,0]);o.flesch.calculate(e.get("content"));var n=this.calculateResult(o.flesch.ease),i={veryEasy:{score:6,note:"very easy"},easy:{score:5,note:"easy"},fairlyEasy:{score:5,note:"fairly easy"},okay:{score:4,note:"okay"},fairlyDifficult:{score:3,note:"fairly difficult"},difficult:{score:2,note:"difficult"},veryDifficult:{score:1,note:"very difficult"}}[n],r=Math.min(i.score,this.getScore("calculateFleschReading"));return this.announce(4<=r,r,[i.note,o.flesch.ease,n])}},{key:"calculateResult",value:function(e){return e>90?"veryEasy":(0,u.default)(e,80.01,90)?"easy":(0,u.default)(e,70.01,80)?"fairlyEasy":(0,u.default)(e,60.01,70)?"okay":(0,u.default)(e,50.01,60)?"fairlyDifficult":(0,u.default)(e,31,50)?"difficult":"veryDifficult"}}]),t}();t.default=l},function(e,t){var n=Math.max,i=Math.min;e.exports=function(e,t,r){return e>=i(t,r)&&e<n(t,r)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flesch=void 0;var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=(a(n(229)),a(n(231))),u=a(n(275)),o=a(n(296)),s=a(n(299));function a(e){return e&&e.__esModule?e:{default:e}}var l=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return i(e,[{key:"reset",value:function(){delete this.data,delete this.ease,delete this.kincaid}},{key:"calculate",value:function(e){if(this.reset(),""===e)return!1;e=(0,s.default)(e);var t=(0,r.default)(e),n=(0,u.default)(e),i=t.length;if(0===n||0===i)return!1;var a=(0,o.default)(t);this.data={sentences:n,words:i,syllables:a},this.ease=this.fleschEase(n,i,a).toFixed(2),this.kincaid=this.fleschKincaid(n,i,a).toFixed(2)}},{key:"fleschEase",value:function(e,t,n){return 206.835-t/e*1.015-n/t*84.6}},{key:"fleschKincaid",value:function(e,t,n){return t/e*.39+n/t*11.8-15.59}}]),e}();t.flesch=new l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(""===(e=(0,i.default)([u.default,o.default,s.default,a.default,l.default,c.default])(e)))return 0;var t=(new d.default).tokenizeParagraph(e).children;return(0,r.default)(t,{type:"SentenceNode"}).length};var i=f(n(236)),r=f(n(93)),u=f(n(52)),o=f(n(237)),s=f(n(95)),a=f(n(238)),l=f(n(239)),c=f(n(240)),d=f(n(276));function f(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var i=n(277),r=n(49),u=n(230),o=n(27);e.exports=a,l.prototype=i.prototype;var s=new l;function a(e,t){if(!(this instanceof a))return new a(e,t);i.apply(this,arguments)}function l(){}a.prototype=s,s.tokenizeSentencePlugins=[u(function(e,t,n){var i,u,o,s,a;if("PunctuationNode"===e.type||"SymbolNode"===e.type)if(s=(i=n.children).length,"/"===(a=r(e)))(u=i[t-1])&&"w"===h(r(u))&&(i.splice(t,1),u.children.push(e),u.position&&e.position&&(u.position.end=e.position.end));else if(g.test(a)){if(u=i[t-1],t>2&&s-1>t&&"WordNode"===u.type&&"WhiteSpaceNode"===i[t-2].type&&"WhiteSpaceNode"===i[t+1].type&&f.test(h(r(u))))return i.splice(t,1),u.children.push(e),void(u.position&&e.position&&(u.position.end=e.position.end));t===s-1||"WordNode"!==i[t+1].type||0!==t&&"WordNode"===i[t-1].type||(a=h(r(u=i[t+1])),p.test(a)?(i.splice(t,1),u.children=[e].concat(u.children),u.position&&e.position&&(u.position.start=e.position.start)):"n"===a&&s-2>t&&g.test(r(i[t+2]))&&(o=i[t+2],i.splice(t,1),i.splice(t+1,1),u.children=[e].concat(u.children,o),u.position&&(e.position&&(u.position.start=e.position.start),o.position&&(u.position.end=o.position.end))))}})].concat(s.tokenizeSentencePlugins),s.tokenizeParagraphPlugins=[o(function(e,t,n){var i,u,o=e.children,s=o[o.length-1],a=o[o.length-2];if(s&&"."===r(s)&&a&&"WordNode"===a.type&&(i=r(a),(c.test(h(i))||d.test(i))&&(a.children.push(s),o.pop(),s.position&&a.position&&(a.position.end=s.position.end),u=n.children[t+1])))return e.children=o.concat(u.children),n.children.splice(t+1,1),u.position&&e.position&&(e.position.end=u.position.end),t-1})].concat(s.tokenizeParagraphPlugins);var c=/^(inc|ltd|bbls?|cu|doz|fl|ft|gal|gr|gro|in|kt|lbs?|mi|oz|pt|qt|sq|tbsp|tsp|yds?|sec|min|hr|mon|tue|tues|wed|thu|thurs|fri|sat|sun|jan|feb|mar|apr|jun|jul|aug|sep|sept|oct|nov|dec)$/,d=/^(Mr|Mrs|Miss|Ms|Mss|Mses|Mlle|Mme|M|Messrs|Mmes|Jr|Sr|Snr|Dr|Mgr|Atty|Prof|Hon|Rev|Fr|Msgr|Sr|Br|St|Pres|Supt|Rep|Sen|Gov|Amb|Treas|Sec|Amd|Brig|Gen|Cdr|Col|Capt|Lt|Maj|Sgt|Po|Wo|Ph|Ave|Blvd|Mt|Rd|Bldgs?|Nat|Natl|Rt|Rte|Co|Pk|Sq|Dr|Pt|St|Ft|Pen|Terr|Hwy|Fwy|Pkwy|Ala|Ariz|Ark|Cal|Calif|Col|Colo|Conn|Del|Fla|Ga|Ida|Id|Ill|Ind|Ia|Kan|Kans|Ken|Ky|La|Me|Md|Mass|Mich|Minn|Miss|Mo|Mont|Neb|Nebr|Nev|Mex|Dak|Okla|Ok|Ore|Penna|Penn|Pa|Tenn|Tex|Ut|Vt|Va|Wash|Wis|Wisc|Wyo|Alta|Man|Ont|Qué|Que|Sask|Yuk|Beds|Berks|Bucks|Cambs|Ches|Corn|Cumb|Derbys|Derbs|Dev|Dor|Dur|Glos|Hants|Here|Heref|Herts|Hunts|Lancs|Leics|Lincs|Mx|Middx|Mddx|Norf|Northants|Northumb|Northd|Notts|Oxon|Rut|Shrops|Salop|Som|Staffs|Staf|Suff|Sy|Sx|Ssx|Warks|War|Warw|Westm|Wilts|Worcs|Yorks)$/,f=/^(o|ol)$/,p=/^(im|er|em|cause|twas|tis|twere|\d\ds?)$/,g=/^['\u2019]$/;function h(e){return e.toLowerCase()}},function(e,t,n){"use strict";e.exports=n(278)},function(e,t,n){"use strict";var i=n(279),r=n(106);function u(e,t){var n=t||e;if(!(this instanceof u))return new u(e,t);this.doc=n?n+"":null}e.exports=u;var o=u.prototype;function s(e){return e+="Node",function(t,n,i){return null!=t||(t=""),(n||h)(t)({type:e,value:t+""},i)}}function a(e,t,n){e.prototype[t]=function(){return this.run(t,n.apply(this,arguments))}}function l(e){return function(t,n){var i;if(!(t in this))throw Error("Illegal Invocation: Unsupported `key` for `use(key, plugins)`. Make sure `key` is a supported function");n&&(i=t+"Plugins",n="function"==typeof n?[n]:n.concat(),this[i]||(this[i]=[]),e(this,i,n))}}o.position=!0,o.tokenizeSymbol=s("Symbol"),o.tokenizeWhiteSpace=s("WhiteSpace"),o.tokenizePunctuation=s("Punctuation"),o.tokenizeSource=s("Source"),o.tokenizeText=s("Text"),o.run=function(e,t){var n=this[e+"Plugins"],i=-1;if(n)for(;n[++i];)n[i](t);return t},o.use=l(function(e,t,n){e[t]=e[t].concat(n)}),o.useFirst=l(function(e,t,n){e[t]=n.concat(e[t])}),o.parse=function(e){return this.tokenizeRoot(e||this.doc)},o.tokenize=function(e){return function(e,t){var n,i,r,u,o,s,a,l,g,h,y,m;if(null==t?t="":t instanceof String&&(t=""+t),"string"!=typeof t){if("length"in t&&(!t[0]||t[0].type))return t;throw Error("Illegal invocation: '"+t+"' is not a valid argument for 'ParseLatin'")}if(n=[],!t)return n;for(o=0,i=0,r=1,u=1,m=e.position?function(e){var t=function(){var e=D();return function(t){return t.position=new function(e){this.start=e,this.end=D()}(e),t}}();return function(e){var t=e.length,n=-1,o=-1;for(i+=t;++n<t;)"\n"===e.charAt(n)&&(o=n,r++);-1===o?u+=t:u=t-o}(e),function(){return t(v.apply(null,arguments))}}:function(){return function(){return v.apply(null,arguments)}},s=t.length,g="",l="";s>o;)a=t.charAt(o),y=p.test(a)?"WhiteSpace":f.test(a)?"Punctuation":c.test(a)?"Word":"Symbol",b(),g=a,a="",h=y,y=null,o++;return b(),n;function b(){h!==y||"Word"!==h&&"WhiteSpace"!==h&&a!==g&&!d.test(a)?(l&&e["tokenize"+h](l,m),l=a):l+=a}function v(e,t){return t?t.children.push(e):n.push(e),e}function D(){return{line:r,column:u,offset:i}}}(this,e)},a(u,"tokenizeWord",function(e,t){var n=(t||h)(""),i={type:"WordNode",children:[]};return this.tokenizeText(e,t,i),n(i)}),a(u,"tokenizeSentence",i({type:"SentenceNode",tokenizer:"tokenize"})),a(u,"tokenizeParagraph",i({type:"ParagraphNode",delimiter:r.terminalMarker,delimiterType:"PunctuationNode",tokenizer:"tokenizeSentence"})),a(u,"tokenizeRoot",i({type:"RootNode",delimiter:r.newLine,delimiterType:"WhiteSpaceNode",tokenizer:"tokenizeParagraph"})),o.use("tokenizeSentence",[n(281),n(283),n(284),n(285),n(286),n(287),n(233)]),o.use("tokenizeParagraph",[n(288),n(289),n(290),n(291),n(292),n(293),n(294),n(242),n(243),n(295),n(244),n(233)]),o.use("tokenizeRoot",[n(242),n(243),n(244),n(233)]);var c=r.word,d=r.surrogates,f=r.punctuation,p=r.whiteSpace;function g(e,t){return t&&t.children.push(e),e}function h(){return g}},function(e,t,n){"use strict";var i=n(280);e.exports=function(e){var t=e.type,n=e.tokenizer,r=e.delimiter,u=r&&i(e.delimiterType,r);return function(e){var i=this[n](e);return{type:t,children:u?u(i):i}}}},function(e,t,n){"use strict";var i=n(49);e.exports=function(e,t){return function(n){for(var r,u,o,s=[],a=n.children,l=n.type,c=a.length,d=-1,f=c-1,p=0;++d<c;)(d===f||a[d].type===e&&t.test(i(a[d])))&&(r=a[p],u=a[d],o={type:l,children:a.slice(p,d+1)},r.position&&u.position&&(o.position={start:r.position.start,end:u.position.end}),s.push(o),p=d+1);return s}}},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,u;if(("SymbolNode"===e.type||"PunctuationNode"===e.type)&&"&"===i(e)&&(u=(r=n.children)[t+1],(0===t||"WordNode"!==r[t-1].type)&&u&&"WordNode"===u.type))return r.splice(t,1),u.children.unshift(e),u.position&&e.position&&(u.position.start=e.position.start),t-1})},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,u=-1;if(!e)throw Error("Iterate requires that |this| not be "+e);if(!i.call(e,"length"))throw Error("Iterate requires that |this| has a `length`");if("function"!=typeof t)throw Error("`callback` must be a function");for(;++u<e.length;)u in e&&"number"==typeof(r=t.call(n,e[u],u,e))&&(0>r&&(u=0),u=r-1)};var i={}.hasOwnProperty},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,u,o;if(0!==t&&("SymbolNode"===e.type||"PunctuationNode"===e.type)&&"-"===i(e)&&(u=(r=n.children)[t-1],(!(o=r[t+1])||"WordNode"!==o.type)&&u&&"WordNode"===u.type))return r.splice(t,1),u.children.push(e),u.position&&e.position&&(u.position.end=e.position.end),t})},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l,c,d;if(0!==t&&("SymbolNode"===e.type||"PunctuationNode"===e.type)&&(s=(r=n.children)[t-1])&&"WordNode"===s.type){for(l=t-1,c=[],d=[];r[++l];)if("WordNode"===(u=r[l]).type)c=c.concat(d,u.children),d=[];else{if("SymbolNode"!==u.type&&"PunctuationNode"!==u.type||!o.test(i(u)))break;d.push(u)}if(0!==c.length)return 0!==d.length&&(l-=d.length),r.splice(t,l-t),s.children=s.children.concat(c),a=c[c.length-1],s.position&&a.position&&(s.position.end=a.position.end),t}});var o=u.wordSymbolInner},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,o,s,a,l,c,d,f=n.children;if(o=f[t+1],(r=f[t-1])&&"WordNode"===r.type&&("SymbolNode"===e.type||"PunctuationNode"===e.type)&&i(e)===u&&(s=i(r),c=e,l=[e],d=1,o&&"WordNode"===o.type&&(a=i(o),c=o,l=l.concat(o.children),d++),3>s.length&&(!a||3>a.length)))return r.children=r.children.concat(l),f.splice(t,d),r.position&&c.position&&(r.position.end=c.position.end),t});var u="/"},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l,c,d;if(0!==t&&"."===i(e)&&(a=(s=(u=(r=n.children)[t-1]).children)&&s.length,"WordNode"===u.type&&1!==a&&a%2!=0)){for(l=a,c=!0;s[--l];)if(d=i(s[l]),l%2==0){if(d.length>1)return;o.test(d)||(c=!1)}else if("."!==d){if(a-2>l)break;return}if(!c)return r.splice(t,1),s.push(e),u.position&&e.position&&(u.position.end=e.position.end),t}});var o=u.numerical},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){var i,r=n.children;if("WordNode"===e.type&&(i=r[t+1])&&"WordNode"===i.type)return r.splice(t+1,1),e.children=e.children.concat(i.children),i.position&&e.position&&(e.position.end=i.position.end),t})},function(e,t,n){"use strict";var i=n(27);e.exports=i(function(e,t,n){for(var i,r,u=e.children,o=-1;u[++o];)if("WordNode"===u[o].type)return;if(i=n.children[t-1])return i.children=i.children.concat(u),n.children.splice(t,1),i.position&&e.position&&(i.position.end=e.position.end),t;(r=n.children[t+1])&&(r.children=u.concat(r.children),r.position&&e.position&&(r.position.start=e.position.start),n.children.splice(t,1))})},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a=e.children;if(a&&0!==a.length&&0!==t&&(u=a[1],s=n.children[t-1],("SymbolNode"===(r=a[0]).type||"PunctuationNode"===r.type)&&o.test(i(r))))return s.children.push(a.shift()),r.position&&s.position&&(s.position.end=r.position.end),u&&u.position&&e.position&&(e.position.start=u.position.start),t-1});var o=u.affixSymbol},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l=e.children;if(l&&0!==l.length&&0!==t)for(r=-1;l[++r];){if("WordNode"===(u=l[r]).type){if(!o.test(i(u)))return;return(a=(s=n.children)[t-1]).children=a.children.concat(l),s.splice(t,1),a.position&&e.position&&(a.position.end=e.position.end),t}if("SymbolNode"===u.type||"PunctuationNode"===u.type)return}});var o=u.lowerInitial},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r=e.children,u=n.children,s=u[t-1],a=r[0];if(s&&a&&"WordNode"===a.type&&o.test(i(a)))return s.children=s.children.concat(r),u.splice(t,1),s.position&&e.position&&(s.position.end=e.position.end),t});var o=u.digitStart},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,o,s,a=e.children;if(a&&a.length>1&&(r=a[a.length-1])&&"."===i(r)&&(o=a[a.length-2])&&"WordNode"===o.type&&u.test(i(o).toLowerCase())&&(o.children.push(r),a.pop(),r.position&&o.position&&(o.position.end=r.position.end),s=n.children[t+1]))return e.children=a.concat(s.children),n.children.splice(t+1,1),s.position&&e.position&&(e.position.end=s.position.end),t-1});var u=/^([0-9]{1,3}|[a-z]|al|ca|cap|cca|cent|cf|cit|con|cp|cwt|ead|etc|ff|fl|ibid|id|nem|op|pro|seq|sic|stat|tem|viz)$/},function(e,t,n){"use strict";var i=n(49),r=n(27);e.exports=r(function(e,t,n){var r,u,o,s,a=e.children;if(a&&0!==a.length&&0!==t)for(u=-1;a[++u];){if("WordNode"===(r=a[u]).type)return;if("SymbolNode"===r.type||"PunctuationNode"===r.type){if(","!==(o=i(r))&&";"!==o)return;return(s=n.children[t-1]).children=s.children.concat(a),s.position&&e.position&&(s.position.end=e.position.end),n.children.splice(t,1),t}}})},function(e,t,n){"use strict";var i=n(49),r=n(230),u=n(106);e.exports=r(function(e){for(var t,n,r,u,s=e.children,a=s.length,l=!1;s[--a];)if("SymbolNode"===(t=s[a]).type||"PunctuationNode"===t.type){if(o.test(i(t)))if(l){if("."===i(t))if(r=s[a+1],(n=s[a-1])&&"WordNode"===n.type){if(u=s[a+2],r&&u&&"WhiteSpaceNode"===r.type&&"."===i(u))continue;s.splice(a,1),n.children.push(t),t.position&&n.position&&(n.position.end=t.position.end),a--}else r&&"WordNode"===r.type&&(s.splice(a,1),r.children.unshift(t),t.position&&r.position&&(r.position.start=t.position.start))}else l=!0}else"WordNode"===t.type&&(l=!0)});var o=u.terminalMarker},function(e,t,n){"use strict";var i=n(49),r=n(27),u=n(106);e.exports=r(function(e,t,n){var r,u,s,a,l,c,d,f;if("SentenceNode"===e.type)for(s=(r=e.children).length-1,u=0;++u<s;)if("WhiteSpaceNode"===(f=r[u]).type&&o.test(i(f)))return e.children=r.slice(0,u),d={type:"SentenceNode",children:r.slice(u+1)},a=r[u-1],l=r[u+1],n.children.splice(t+1,0,f,d),e.position&&a.position&&l.position&&(c=e.position.end,e.position.end=a.position.end,d.position={start:l.position.start,end:c}),t+1});var o=u.newLineMulti},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=(0,i.default)(e,function(e){return function(e){return 3>=(e=e.toLowerCase()).length?1:null===(e=e.replace(/(?:[^laeiouy]es|ed|lle|[^laeiouy]e)$/,"").replace(/^y/,"").match(/[aeiouy]{1,2}/g))?0:e.length}(e)});return(0,r.default)(t)};var i=u(n(94)),r=u(n(297));function u(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){var i=n(298),r=n(104);e.exports=function(e){return e&&e.length?i(e,r):0}},function(e,t){e.exports=function(e,t){for(var n,i=-1,r=e.length;++i<r;){var u=t(e[i]);void 0!==u&&(n=void 0===n?u:n+u)}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return"."===(e=e.replace(/\b[0-9]+\b/g,""))?"":e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(5)),u=o(n(16));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="contentHasAssets",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),i(t,[{key:"run",value:function(e,t){var n=(0,r.default)("#rank_math_post_thumbnail");if(""===e.get("content"))return n.length?this.announce(1,1):this.announce("empty",0);var i=this.match(e.get("content"),"<img(?:[^>]+)?>"),u=this.match(e.get("content"),"\\[gallery( [^\\]]+?)?\\]"),o=this.match(e.get("content"),"<iframe(?:[^>]+)?>"),s=this.match(e.get("content"),"\\[video( [^\\]]+?)?\\]"),a=this.match(e.get("content"),/(http:\/\/|https:\/\/|)(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);i=null===i?0:i,i=null===u?i:i.concat(u),i=0===n.length?i:i.concat(n),o=null===o?0:o,o=null===s?o:o.concat(s),o=null===a?o:o.concat(a);var l=Math.min(this.calculateScore(i,o),this.getScore("contentHasAssets"));return this.announce(l>0,l)}},{key:"calculateScore",value:function(e,t){var n=0;return 1===e.length?n+=1:2===e.length?n+=2:3===e.length?n+=4:e.length>3&&(n+=6),1===t.length?n+=1:t.length>1&&(n+=2),Math.min(6,n)}},{key:"match",value:function(e,t){var n=RegExp(t,"ig"),i=e.match(n);return null===i?[]:i}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(232));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordDensity",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getContentWords();if(!1===n||0===n.length)return this.announce("empty",0,[0,0]);if(!n||!e.get("keywordCombinations"))return this.announce(!1,0,[0,0]);var i=RegExp(e.get("keywordCombinations").join("|"),"gi"),r=(e.get("content").match(i)||[]).length,u=(r/n.length*100).toFixed(2),o=Math.min(this.calculateScore(u),this.getScore("keywordDensity"));return this.announce(o>0,o,[u,r])}},{key:"calculateScore",value:function(e){return.5>e||e>2.5?0:(0,u.default)(e,.5,.75)?2:(0,u.default)(e,.76,1)?4:6}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordIn10Content",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getContentWords();if(!1===n||0===n.length||""===e.getLower("keyword"))return this.announce("empty",0);n.length>400&&(n=n.slice(0,Math.floor(.1*n.length))),n=n.join(" ");var i=(0,u.default)(n,e.getLower("keyword"));return this.announce(i,i?this.getScore("keywordIn10Content"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInContent",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("content")||""===e.get("keyword"))return this.announce("empty",0);var n=e.get("keywordCombinations"),i=e.getLower("content"),r=!1;return n.some(function(e){return r=(0,u.default)(i,e)}),this.announce(r,r?this.getScore("keywordInContent"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=u(n(16));function u(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}u(n(31));var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInImageAlt",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.get("keyword")||""===e.get("content")&&""===e.get("thumbnailAlt"))return this.announce("empty",0);var n=e.getLower("keyword");n=n.split(" ").filter(function(e,t,n){return-1===n.indexOf(e,t+1)}).join(" ");var i=RegExp("<img[^>]*alt=['\"][^'\"]*"+n.replace(/ /g,".*")+"[^'\"]*['\"]","gi"),r=null!==e.getLower("content").match(i)||n===e.getLower("thumbnailAlt");return r||(i=/\[gallery( [^\]]+?)?\]/gi,r=null!==e.getLower("content").match(i)&&"gallery"),this.announce(r,r?this.getScore("keywordInImageAlt"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInMetaDescription",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.getLower("description"))return this.announce("empty",0);var n=""!==e.getLower("keyword")&&(0,u.default)(e.getLower("description"),e.getLower("keyword"));return this.announce(n,n?this.getScore("keywordInMetaDescription"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInPermalink",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(""===e.getLower("permalink"))return this.announce("empty",0);var n=e.getLower("permalink").replace(/[-_]/gi,"-"),i=""!==e.getLower("keyword")&&(0,u.default)(n,e.get("keywordPermalink"));return this.announce(i,i?this.getScore("keywordInPermalink"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInSubheadings",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){if(""===e.get("keyword")||""===e.get("content"))return this.announce("empty",0);var n=RegExp("<h[2-6][^>]*>.*"+e.getLower("keyword")+".*</h[2-6]>","gi"),i=null!==e.getLower("content").match(n);return this.announce(i,i?this.getScore("keywordInSubheadings"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordInTitle",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getLower("title");if(""===n)return this.announce("empty",0);var i=""!==e.getLower("keyword")&&(0,u.default)(n,e.getLower("keyword"));return this.announce(i,i?this.getScore("keywordInTitle"):0)}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(5)),u=o(n(16));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="keywordNotUsed",i.keywordsChecked={},s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),i(t,[{key:"run",value:function(e,t){var n=this,i=e.getLower("keyword").trim();return""===i?this.announce("empty",0):void 0!==this.keywordsChecked[i]?this.announce(this.keywordsChecked[i],0):(this.keywordsChecked[i]=!0,r.default.ajax({url:rankMath.ajaxurl,type:"GET",data:{keyword:i,action:"rank_math_is_keyword_new",security:rankMath.security,objectID:rankMath.objectID,objectType:rankMath.objectType}}).done(function(e){n.keywordsChecked[i]=e.isNew;var t=n.announce(e.isNew,n.getScore("keywordNotUsed")),u=(0,r.default)(".seo-check-"+n.prefix);u.removeClass("test-ok test-fail test-empty test-looking"),u.addClass("test-"+t.status),u.find("span:eq(0)").html(t.message),n.changeKeywordInLink(i)}),this.announce("looking",0))}},{key:"changeKeywordInLink",value:function(e){var t=(0,r.default)(".focus-keyword-link");t.length&&t.attr("href",t.attr("href").replace("%focus_keyword%",e).replace("%post_type%",rankMath.objectType).replace("%yaxonomy%",rankMath.objectType))}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(232));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="lengthContent",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=e.getContentWords();if(!1===n||0===n.length)return this.announce("empty",0);var i=n.length,r=Math.min(this.calculateScore(i),this.getScore("lengthContent"));return this.announce(r>0,r,[i])}},{key:"calculateScore",value:function(e){return 2500>e?(0,u.default)(e,2e3,2500)?5:(0,u.default)(e,1500,2e3)?4:(0,u.default)(e,1e3,1500)?3:(0,u.default)(e,600,1e3)?2:0:8}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="lengthPermalink",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){var n=e.get("permalink"),i=n.length,r=r=Math.min(this.calculateScore(i),this.getScore("lengthPermalink"));return""===n?this.announce("empty",0):this.announce(r>0,r,[i])}},{key:"calculateScore",value:function(e){return e>75?0:4}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(234));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="linksHasExternals",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=(0,u.default)(e);if(null===n.anchors)return this.announce("empty",0);var i=n.externalTotal>0;return this.announce(i,i?this.getScore("linksHasExternals"):0,[n.externalTotal])}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=u(n(314)),r=u(n(31));function u(e){return e&&e.__esModule?e:{default:e}}var o=/href=(["'])([^"']+)\1/i;function s(e){var t=o.exec(e);return null===t?"":t[2]}function a(e){return i.default.parse(e).protocol}function l(e){return!!e&&("http:"===e||"https:"===e)}function c(e){return"#"===e[0]}function d(e,t){if(!(0,r.default)(e,"//")&&"/"===e[0])return!0;if("#"===e[0])return!1;var n=i.default.parse(e,!1,!0);return!n.host||(0,r.default)(n.host,t)}t.default={checkNofollow:function(e,t){return e=e.toLowerCase(),"internal"!==t&&rankMath.noFollowExternalLinks&&!(0,r.default)(e,"rel=")?(n=s(e),u=!0,o=i.default.parse(n,!1,!0),(rankMath.noFollowDomains.length?(rankMath.noFollowDomains.forEach(function(e){(0,r.default)(o.host,e)&&(u=!1)}),u):rankMath.noFollowExcludeDomains.length&&(u=!1,rankMath.noFollowExcludeDomains.forEach(function(e){(0,r.default)(o.host,e)&&(u=!0)}),u))?"Dofollow":"Nofollow"):(0,r.default)(e,"<a")&&(0,r.default)(e,"rel=")&&(0,r.default)(e,"nofollow")?"Nofollow":"Dofollow";var n,u,o},getFromAnchorTag:s,getLinkType:function(e,t){var n=s(e),i=a(n);return i&&!l(i)||c(n)?"other":d(n,t)?"internal":"external"},getProtocol:a,isHttpScheme:l,isInternalLink:d,isRelativeFragmentURL:c}},function(e,t,n){"use strict";var i=n(315),r=n(317);function u(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=v,t.resolve=function(e,t){return v(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?v(e,!1,!0).resolveObject(t):t},t.format=function(e){return r.isString(e)&&(e=v(e)),e instanceof u?e.format():u.prototype.format.call(e)},t.Url=u;var o=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),d=["%","/","?",";","#"].concat(c),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,g=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(318);function v(e,t,n){if(e&&r.isObject(e)&&e instanceof u)return e;var i=new u;return i.parse(e,t,n),i}u.prototype.parse=function(e,t,n){if(!r.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var u=e.indexOf("?"),s=-1!==u&&u<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var v=e=l.join(s);if(v=v.trim(),!n&&1===e.split("#").length){var D=a.exec(v);if(D)return this.path=v,this.href=v,this.pathname=D[1],D[2]?(this.search=D[2],this.query=t?b.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=o.exec(v);if(w){var k=(w=w[0]).toLowerCase();this.protocol=k,v=v.substr(w.length)}if(n||w||v.match(/^\/\/[^@\/]+@[^@\/]+/)){var F="//"===v.substr(0,2);!F||w&&y[w]||(v=v.substr(2),this.slashes=!0)}if(!y[w]&&(F||w&&!m[w])){for(var E,x,C=-1,A=0;f.length>A;A++)-1===(j=v.indexOf(f[A]))||-1!==C&&j>=C||(C=j);for(-1!==(x=-1===C?v.lastIndexOf("@"):v.lastIndexOf("@",C))&&(E=v.slice(0,x),v=v.slice(x+1),this.auth=decodeURIComponent(E)),C=-1,A=0;d.length>A;A++){var j;-1===(j=v.indexOf(d[A]))||-1!==C&&j>=C||(C=j)}-1===C&&(C=v.length),this.host=v.slice(0,C),v=v.slice(C),this.parseHost(),this.hostname=this.hostname||"";var _="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!_)for(var B=this.hostname.split(/\./),O=(A=0,B.length);O>A;A++){var z=B[A];if(z&&!z.match(p)){for(var P="",S=0,M=z.length;M>S;S++)z.charCodeAt(S)>127?P+="x":P+=z[S];if(!P.match(p)){var T=B.slice(0,A),q=B.slice(A+1),L=z.match(g);L&&(T.push(L[1]),q.unshift(L[2])),q.length&&(v="/"+q.join(".")+v),this.hostname=T.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),_||(this.hostname=i.toASCII(this.hostname));var I=this.port?":"+this.port:"";this.host=(this.hostname||"")+I,this.href+=this.host,_&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==v[0]&&(v="/"+v))}if(!h[k])for(A=0,O=c.length;O>A;A++){var N=c[A];if(-1!==v.indexOf(N)){var $=encodeURIComponent(N);$===N&&($=escape(N)),v=v.split(N).join($)}}var R=v.indexOf("#");-1!==R&&(this.hash=v.substr(R),v=v.slice(0,R));var W=v.indexOf("?");return-1!==W?(this.search=v.substr(W),this.query=v.substr(W+1),t&&(this.query=b.parse(this.query)),v=v.slice(0,W)):t&&(this.search="",this.query={}),v&&(this.pathname=v),m[k]&&this.hostname&&!this.pathname&&(this.pathname="/"),(this.pathname||this.search)&&(this.path=(I=this.pathname||"")+(this.search||"")),this.href=this.format(),this},u.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",i=this.hash||"",u=!1,o="";this.host?u=e+this.host:this.hostname&&(u=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(u+=":"+this.port)),this.query&&r.isObject(this.query)&&Object.keys(this.query).length&&(o=b.stringify(this.query));var s=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||m[t])&&!1!==u?(u="//"+(u||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):u||(u=""),i&&"#"!==i.charAt(0)&&(i="#"+i),s&&"?"!==s.charAt(0)&&(s="?"+s),t+u+(n=n.replace(/[?#]/g,function(e){return encodeURIComponent(e)}))+(s=s.replace("#","%23"))+i},u.prototype.resolve=function(e){return this.resolveObject(v(e,!1,!0)).format()},u.prototype.resolveObject=function(e){if(r.isString(e)){var t=new u;t.parse(e,!1,!0),e=t}for(var n=new u,i=Object.keys(this),o=0;i.length>o;o++){var s=i[o];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var a=Object.keys(e),l=0;a.length>l;l++){var c=a[l];"protocol"!==c&&(n[c]=e[c])}return m[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!m[e.protocol]){for(var d=Object.keys(e),f=0;d.length>f;f++){var p=d[f];n[p]=e[p]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||y[e.protocol])n.pathname=e.pathname;else{for(var g=(e.pathname||"").split("/");g.length&&!(e.host=g.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==g[0]&&g.unshift(""),2>g.length&&g.unshift(""),n.pathname=g.join("/")}return n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,(n.pathname||n.search)&&(n.path=(n.pathname||"")+(n.search||"")),n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var h=n.pathname&&"/"===n.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),v=b||h||n.host&&e.pathname,D=v,w=n.pathname&&n.pathname.split("/")||[],k=(g=e.pathname&&e.pathname.split("/")||[],n.protocol&&!m[n.protocol]);if(k&&(n.hostname="",n.port=null,n.host&&(""===w[0]?w[0]=n.host:w.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===g[0]?g[0]=e.host:g.unshift(e.host)),e.host=null),v=v&&(""===g[0]||""===w[0])),b)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,w=g;else if(g.length)w||(w=[]),w.pop(),w=w.concat(g),n.search=e.search,n.query=e.query;else if(!r.isNullOrUndefined(e.search))return k&&(n.hostname=n.host=w.shift(),(A=!(!n.host||0>=n.host.indexOf("@"))&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift())),n.search=e.search,n.query=e.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!w.length)return n.pathname=null,n.path=n.search?"/"+n.search:null,n.href=n.format(),n;for(var F=w.slice(-1)[0],E=(n.host||e.host||w.length>1)&&("."===F||".."===F)||""===F,x=0,C=w.length;C>=0;C--)"."===(F=w[C])?w.splice(C,1):".."===F?(w.splice(C,1),x++):x&&(w.splice(C,1),x--);if(!v&&!D)for(;x--;x)w.unshift("..");!v||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),E&&"/"!==w.join("/").substr(-1)&&w.push("");var A,j=""===w[0]||w[0]&&"/"===w[0].charAt(0);return k&&(n.hostname=n.host=j?"":w.length?w.shift():"",(A=!(!n.host||0>=n.host.indexOf("@"))&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift())),(v=v||n.host&&w.length)&&!j&&w.unshift(""),w.length?n.pathname=w.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},u.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){!function(e,t){var n;!function(t){var i=2147483647,r=36,u=1,o=26,s=38,a=700,l=72,c=128,d="-",f=/^xn--/,p=/[^\x20-\x7E]/,g=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},y=r-u,m=Math.floor,b=String.fromCharCode;function v(e){throw new RangeError(h[e])}function D(e,t){for(var n=e.length,i=[];n--;)i[n]=t(e[n]);return i}function w(e,t){var n=e.split("@"),i="";return n.length>1&&(i=n[0]+"@",e=n[1]),i+D((e=e.replace(g,".")).split("."),t).join(".")}function k(e){for(var t,n,i=[],r=0,u=e.length;u>r;)55296>(t=e.charCodeAt(r++))||t>56319||r>=u?i.push(t):56320==(64512&(n=e.charCodeAt(r++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--);return i}function F(e){return D(e,function(e){var t="";return e>65535&&(t+=b((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+b(e)}).join("")}function E(e,t){return e+22+75*(26>e)-((0!=t)<<5)}function x(e,t,n){var i=0;for(e=n?m(e/a):e>>1,e+=m(e/t);e>y*o>>1;i+=r)e=m(e/y);return m(i+(y+1)*e/(e+s))}function C(e){var t,n,s,a,f,p,g,h,y,b,D,w=[],k=e.length,E=0,C=c,A=l;for(0>(n=e.lastIndexOf(d))&&(n=0),s=0;n>s;++s)128>e.charCodeAt(s)||v("not-basic"),w.push(e.charCodeAt(s));for(a=n>0?n+1:0;k>a;){for(f=E,p=1,g=r;k>a||v("invalid-input"),D=e.charCodeAt(a++),r>(h=10>D-48?D-22:26>D-65?D-65:26>D-97?D-97:r)&&h<=m((i-E)/p)||v("overflow"),E+=h*p,(y=g>A?A+o>g?g-A:o:u)<=h;g+=r)p>m(i/(b=r-y))&&v("overflow"),p*=b;A=x(E-f,t=w.length+1,0==f),m(E/t)>i-C&&v("overflow"),C+=m(E/t),E%=t,w.splice(E++,0,C)}return F(w)}function A(e){var t,n,s,a,f,p,g,h,y,D,w,F,C,A,j,_=[];for(F=(e=k(e)).length,t=c,n=0,f=l,p=0;F>p;++p)128>(w=e[p])&&_.push(b(w));for(s=a=_.length,a&&_.push(d);F>s;){for(g=i,p=0;F>p;++p)(w=e[p])>=t&&g>w&&(g=w);for(g-t>m((i-n)/(C=s+1))&&v("overflow"),n+=(g-t)*C,t=g,p=0;F>p;++p)if(t>(w=e[p])&&++n>i&&v("overflow"),w==t){for(h=n,y=r;(D=y>f?f+o>y?y-f:o:u)<=h;y+=r)_.push(b(E(D+(j=h-D)%(A=r-D),0))),h=m(j/A);_.push(b(E(h,0))),f=x(n,C,s==a),n=0,++s}++n,++t}return _.join("")}void 0===(n={version:"1.4.1",ucs2:{decode:k,encode:F},decode:C,encode:A,toASCII:function(e){return w(e,function(e){return p.test(e)?"xn--"+A(e):e})},toUnicode:function(e){return w(e,function(e){return f.test(e)?C(e.slice(4).toLowerCase()):e})}})||(e.exports=n)}()}(n(316)(e),n(143))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(319),t.encode=t.stringify=n(320)},function(e,t,n){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,u){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var a=1e3;u&&"number"==typeof u.maxKeys&&(a=u.maxKeys);var l=e.length;a>0&&l>a&&(l=a);for(var c=0;l>c;++c){var d,f,p,g,h=e[c].replace(s,"%20"),y=h.indexOf(n);0>y?(d=h,f=""):(d=h.substr(0,y),f=h.substr(y+1)),p=decodeURIComponent(d),g=decodeURIComponent(f),i(o,p)?r(o[p])?o[p].push(g):o[p]=[o[p],g]:o[p]=g}return o};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,s){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?u(o(e),function(o){var s=encodeURIComponent(i(o))+n;return r(e[o])?u(e[o],function(e){return s+encodeURIComponent(i(e))}).join(t):s+encodeURIComponent(i(e[o]))}).join(t):s?encodeURIComponent(i(s))+n+encodeURIComponent(i(e)):""};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function u(e,t){if(e.map)return e.map(t);for(var n=[],i=0;e.length>i;i++)n.push(t(e[i],i));return n}var o=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(234));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="linksHasInternal",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=(0,u.default)(e);if(null===n.anchors)return this.announce("empty",0);var i=n.internalTotal>0;return this.announce(i,i?this.getScore("linksHasInternal"):0,[n.internalTotal])}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(234));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="linksNotAllExternals",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n=(0,u.default)(e),i=n.externalDofollow>0;return null===n.anchors?this.announce("empty",0):this.announce(i,i?this.getScore("linksNotAllExternals"):0,[n.externalTotal])}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(31));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleHasPowerWords",s(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){if(!rankMath.assessor.mtsConnected)return this.announce(!1,0);var n=e.getLower("title"),i=rankMath.assessor.powerWords.filter(function(e){return(0,u.default)(n,e)}).length,r=i>0;return""===n?this.announce("empty",0):this.announce(r,r?this.getScore("titleHasPowerWords"):0,[i])}},{key:"isApplicable",value:function(){return"en"===rankMath.locale}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleHasNumber",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){if(""===e.get("title"))return this.announce("empty",0);var n=/\d+/.test(e.get("title"));return this.announce(n,n?this.getScore("titleHasNumber"):0)}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=o(n(16)),u=o(n(326));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),o=0;r>o;o++)u[o]=arguments[o];return n=i=a(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleSentiment",a(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"run",value:function(e,t){var n;if(!rankMath.assessor.mtsConnected)return this.announce(!1,0);if(""===e.getLower("title"))return this.announce("empty",0);var i=new u.default,r={extras:(n={"a+":5,abound:2,abounds:2,abundance:4,abundant:4,accessable:3,accessible:3,acclaim:2,acclaimed:2,acclamation:2,accolade:3,accolades:3,accommodative:2,accomodative:2,accomplish:5,accomplished:5,accomplishment:5,accomplishments:5,accurate:3,accurately:3,achievable:3,achievement:3,achievements:3,achievible:3,acumen:1,adaptable:1,adaptive:1,adequate:1,adjustable:2,admirable:2,admirably:2,admiration:2,admire:2,admirer:2,admiring:2,admiringly:2,adorable:3,adore:3,adored:3,adorer:3,adoring:3,adoringly:3,adroit:2,adroitly:2,adulate:2,adulation:1,adulatory:1,advanced:3,advantage:3,advantageous:2,advantageously:2,advantages:2,adventuresome:2,adventurous:2,advocate:2,advocated:2,advocates:2,affability:2,affable:2,affably:2,affectation:3,affection:3,affectionate:3,affinity:3,affirm:2,affirmation:2,affirmative:2,affluence:2,affluent:3,afford:2,affordable:2,affordably:2,afordable:2,agile:3,agilely:2,agility:2,agreeable:3,agreeableness:3,agreeably:2,"all-around":2,alluring:3,alluringly:3,altruistic:3,altruistically:3,amaze:4,amazed:4,amazement:4,amazes:4,amazing:4,amazingly:4,ambitious:4,ambitiously:4,ameliorate:4,amenable:3,amenity:3,amiability:3,amiabily:3,amiable:3,amicability:3,amicable:3,amicably:3,amity:2,ample:2,amply:2,amuse:2,amusing:2,amusingly:2,angel:5,angelic:5,apotheosis:1,appeal:4,appealing:4,applaud:4,appreciable:4,appreciate:4,appreciated:4,appreciates:4,appreciative:4,appreciatively:4,appropriate:4,approval:4,approve:4,ardent:1,ardently:1,ardor:1,articulate:1,aspiration:3,aspirations:3,aspire:3,assurance:3,assurances:3,assure:3,assuredly:3,assuring:3,astonish:4,astonished:4,astonishing:4,astonishingly:4,astonishment:4,astound:4,astounded:4,astounding:4,astoundingly:4,astutely:1,attentive:1,attraction:1,attractive:1,attractively:1,attune:1,audible:1,audibly:1,auspicious:1,authentic:1,authoritative:1,autonomous:1,available:1,aver:1,avid:1,avidly:1,award:1,awarded:1,awards:1,awe:5,awed:1,awesome:5,awesomely:4,awesomeness:4,awestruck:4,awsome:4,backbone:3,balanced:3,bargain:3,beauteous:3,beautiful:3,beautifullly:3,beautifully:3,beautify:3,beauty:3,beckon:2,beckoned:1,beckoning:1,beckons:1,believable:3,believeable:3,beloved:3,benefactor:2,beneficent:2,beneficial:2,beneficially:2,beneficiary:2,benefit:3,benefits:3,benevolence:1,benevolent:1,benifits:2,best:5,"best-known":5,"best-performing":5,"best-selling":5,better:5,"better-known":5,"better-than-expected":4,beutifully:5,blameless:4,bless:3,blessing:3,bliss:4,blissful:4,blissfully:4,blithe:1,blockbuster:5,bloom:3,blossom:4,bolster:1,bonny:1,bonus:4,bonuses:4,boom:2,booming:3,boost:4,boundless:4,bountiful:3,brainiest:3,brainy:3,"brand-new":5,brave:3,bravery:3,bravo:2,breakthrough:5,breakthroughs:5,breathlessness:5,breathtaking:5,breathtakingly:5,breeze:4,bright:4,brighten:4,brighter:4,brightest:4,brilliance:4,brilliances:4,brilliant:4,brilliantly:4,brisk:3,brotherly:4,bullish:1,buoyant:1,cajole:1,calm:3,calming:3,calmness:3,capability:4,capable:4,capably:4,captivate:4,captivating:4,carefree:1,cashback:1,cashbacks:1,catchy:1,celebrate:4,celebrated:4,celebration:4,celebratory:4,champ:3,champion:3,charisma:4,charismatic:4,charitable:3,charm:5,charming:5,charmingly:5,chaste:1,cheaper:1,cheapest:1,cheer:4,cheerful:4,cheery:4,cherish:4,cherished:4,cherub:1,chic:1,chivalrous:2,chivalry:2,civility:2,civilize:2,clarity:4,classic:1,classy:1,clean:3,cleaner:3,cleanest:3,cleanliness:3,cleanly:3,clear:3,"clear-cut":3,cleared:3,clearer:3,clearly:3,clears:3,clever:3,cleverly:2,cohere:2,coherence:2,coherent:2,cohesive:2,colorful:3,comely:1,comfort:4,comfortable:4,comfortably:4,comforting:4,comfy:4,commend:1,commendable:1,commendably:1,commitment:3,commodious:1,compact:3,compactly:2,compassion:3,compassionate:4,compatible:3,competitive:3,complement:3,complementary:3,complemented:3,complements:3,compliant:2,compliment:5,complimentary:5,comprehensive:5,conciliate:1,conciliatory:1,concise:2,confidence:3,confident:4,congenial:1,congratulate:5,congratulation:5,congratulations:5,congratulatory:5,conscientious:2,considerate:4,consistent:4,consistently:4,constructive:4,consummate:1,contentment:1,continuity:4,contrasty:1,contribution:2,convenience:3,convenient:3,conveniently:3,convience:3,convienient:3,convient:3,convincing:3,convincingly:3,cool:5,coolest:5,cooperative:3,cooperatively:3,cornerstone:3,correct:5,correctly:5,"cost-effective":3,"cost-saving":3,"counter-attack":2,"counter-attacks":2,courage:3,courageous:3,courageously:3,courageousness:3,courteous:3,courtly:2,covenant:2,cozy:2,creative:2,credence:2,credible:2,crisp:1,crisper:1,cure:4,"cure-all":1,cushy:1,cute:5,cuteness:5,danke:1,danken:1,daring:5,daringly:5,darling:5,dashing:5,dauntless:1,dawn:1,dazzle:5,dazzled:5,dazzling:5,"dead-cheap":1,"dead-on":1,decency:5,decent:5,decisive:5,decisiveness:5,dedicated:5,defeat:1,defeated:1,defeating:1,defeats:1,defender:1,deference:1,deft:1,deginified:1,delectable:1,delicacy:4,delicate:4,delicious:4,delight:4,delighted:4,delightful:4,delightfully:4,delightfulness:4,dependable:2,dependably:2,deservedly:5,deserving:5,desirable:5,desiring:5,desirous:5,destiny:5,detachable:5,devout:5,dexterous:5,dexterously:5,dextrous:5,dignified:5,dignify:5,dignity:5,diligence:3,diligent:3,diligently:3,diplomatic:3,"dirt-cheap":3,distinction:3,distinctive:3,distinguished:3,diversified:3,divine:5,divinely:5,dominate:5,dominated:5,dominates:5,dote:1,dotingly:1,doubtless:1,dreamland:1,dumbfounded:1,dumbfounding:1,"dummy-proof":1,durable:3,dynamic:3,eager:5,eagerly:5,eagerness:5,earnest:5,earnestly:5,earnestness:5,ease:4,eased:4,eases:4,easier:4,easiest:4,easiness:4,easing:4,easy:4,"easy-to-use":5,easygoing:5,ebullience:1,ebullient:1,ebulliently:1,ecenomical:1,economical:5,ecstasies:5,ecstasy:5,ecstatic:5,ecstatically:5,edify:1,educated:5,effective:5,effectively:5,effectiveness:5,effectual:5,efficacious:5,efficient:5,efficiently:5,effortless:5,effortlessly:5,effusion:5,effusive:5,effusively:5,effusiveness:5,elan:2,elate:2,elated:2,elatedly:2,elation:3,electrify:5,elegance:5,elegant:5,elegantly:5,elevate:5,elite:5,eloquence:3,eloquent:3,eloquently:3,embolden:3,eminence:3,eminent:3,empathize:5,empathy:5,empower:5,empowerment:5,enchant:5,enchanted:5,enchanting:5,enchantingly:5,encourage:5,encouragement:5,encouraging:5,encouragingly:5,endear:3,endearing:3,endorse:3,endorsed:3,endorsement:3,endorses:3,endorsing:2,energetic:5,energize:5,"energy-efficient":5,"energy-saving":5,engaging:2,engrossing:2,enhance:5,enhanced:5,enhancement:5,enhances:5,enjoy:5,enjoyable:5,enjoyably:5,enjoyed:5,enjoying:5,enjoyment:5,enjoys:5,enlighten:5,enlightenment:5,enliven:1,ennoble:2,enough:3,enrapt:2,enrapture:1,enraptured:1,enrich:5,enrichment:3,enterprising:3,entertain:3,entertaining:5,entertains:5,enthral:2,enthrall:1,enthralled:1,enthuse:1,enthusiasm:4,enthusiast:4,enthusiastic:4,enthusiastically:3,entice:3,enticed:4,enticing:3,enticingly:4,entranced:3,entrancing:3,entrust:4,enviable:3,enviably:3,envious:3,enviously:3,enviousness:1,envy:1,equitable:1,ergonomical:5,"err-free":1,erudite:1,ethical:4,eulogize:2,euphoria:3,euphoric:3,euphorically:3,evaluative:4,evenly:5,eventful:4,everlasting:5,evocative:2,exalt:1,exaltation:2,exalted:3,exaltedly:3,exalting:3,exaltingly:3,examplar:1,examplary:1,excallent:1,exceed:5,exceeded:5,exceeding:5,exceedingly:5,exceeds:5,excel:5,exceled:5,excelent:5,excellant:5,excelled:5,excellence:5,excellency:5,excellent:5,excellently:5,excels:5,exceptional:5,exceptionally:5,excite:5,excited:5,excitedly:5,excitedness:5,excitement:5,excites:5,exciting:5,excitingly:5,exellent:5,exemplar:3,exemplary:3,exhilarate:3,exhilarating:3,exhilaratingly:3,exhilaration:3,exonerate:3,expansive:3,expeditiously:3,expertly:4,exquisite:1,exquisitely:1,extol:1,extoll:1,extraordinarily:5,extraordinary:5,exuberance:3,exuberant:3,exuberantly:3,exult:1,exultant:1,exultation:1,exultingly:1,"eye-catch":5,"eye-catching":5,eyecatch:5,eyecatching:5,fabulous:1,fabulously:4,facilitate:4,fair:5,fairly:5,fairness:5,faith:4,faithful:4,faithfully:4,faithfulness:4,fame:4,famed:4,famous:4,famously:4,fancier:5,fancinating:5,fancy:5,fanfare:3,fans:3,fantastic:3,fantastically:3,fascinate:5,fascinating:5,fascinatingly:5,fascination:5,fashionable:5,fashionably:5,fast:2,"fast-growing":2,"fast-paced":2,faster:5,fastest:5,"fastest-growing":5,faultless:3,fav:4,fave:4,favor:4,favorable:4,favored:4,favorite:4,favorited:4,favour:4,fearless:5,fearlessly:5,feasible:3,feasibly:3,feat:2,"feature-rich":2,fecilitous:2,feisty:2,felicitate:2,felicitous:2,felicity:3,fertile:3,fervent:3,fervently:3,fervid:3,fervidly:3,fervor:3,festive:3,fidelity:1,fiery:1,fine:5,"fine-looking":5,finely:5,finer:5,finest:5,firmer:4,"first-class":4,"first-in-class":4,"first-rate":5,flashy:5,flatter:4,flattering:4,flatteringly:4,flawless:5,flawlessly:5,flexibility:3,flexible:3,flourish:1,flourishing:1,fluent:2,flutter:2,fond:4,fondly:4,fondness:4,foolproof:4,foremost:3,foresight:5,formidable:4,fortitude:5,fortuitous:5,fortuitously:3,fortunate:5,fortunately:5,fortune:5,fragrant:4,free:5,freed:5,freedom:5,freedoms:5,fresh:5,fresher:5,freshest:5,friendliness:4,friendly:4,frolic:3,frugal:3,fruitful:4,ftw:4,fulfillment:4,fun:5,futurestic:4,futuristic:4,gaiety:1,gaily:1,gain:4,gained:4,gainful:4,gainfully:4,gaining:4,gains:4,gallant:2,gallantly:2,galore:4,geekier:4,geeky:3,gem:4,gems:4,generosity:4,generous:5,generously:5,genial:1,genius:4,gentle:4,gentlest:4,genuine:5,gifted:5,glad:4,gladden:1,gladly:4,gladness:4,glamorous:5,glee:1,gleeful:1,gleefully:1,glimmer:1,glimmering:1,glisten:1,glistening:1,glitter:1,glitz:1,glorify:5,glorious:5,gloriously:5,glory:5,glow:4,glowing:4,glowingly:4,"god-given":3,"god-send":3,godlike:4,godsend:4,gold:3,golden:3,good:5,goodly:5,goodness:4,goodwill:3,goood:5,gooood:5,gorgeous:4,gorgeously:4,grace:4,graceful:4,gracefully:4,gracious:4,graciously:4,graciousness:4,grand:5,grandeur:3,grateful:3,gratefully:3,gratification:3,gratified:3,gratifies:3,gratify:3,gratifying:3,gratifyingly:3,gratitude:5,great:5,greatest:5,greatness:5,grin:3,groundbreaking:3,guarantee:3,guidance:3,guiltless:3,gumption:1,gush:1,gusto:1,gutsy:1,hail:1,halcyon:1,hale:1,hallmark:1,hallmarks:1,hallowed:1,handier:1,handily:1,"hands-down":4,handsome:5,handsomely:5,handy:5,happier:5,happily:5,happiness:5,happy:5,"hard-working":4,hardier:4,hardy:4,harmless:3,harmonious:1,harmoniously:1,harmonize:1,harmony:4,headway:1,heal:5,healthful:5,healthy:4,hearten:2,heartening:2,heartfelt:3,heartily:3,heartwarming:4,heaven:5,heavenly:5,helped:4,helpful:4,helping:4,hero:4,heroic:4,heroically:4,heroine:2,heroize:2,heros:4,"high-quality":5,"high-spirited":3,hilarious:3,holy:3,homage:2,honest:3,honesty:4,honor:3,honorable:3,honored:3,honoring:3,hooray:4,hopeful:4,hospitable:4,hot:2,hotcake:2,hotcakes:3,hottest:4,hug:3,humane:4,humble:3,humility:4,humor:3,humorous:3,humorously:3,humour:3,humourous:3,ideal:4,idealize:3,ideally:3,idol:2,idolize:2,idolized:2,idyllic:1,illuminate:5,illuminati:1,illuminating:4,illumine:2,illustrious:3,ilu:1,imaculate:5,imaginative:5,immaculate:5,immaculately:5,immense:3,impartial:3,impartiality:3,impartially:3,impassioned:3,impeccable:3,impeccably:3,important:4,impress:4,impressed:4,impresses:4,impressive:4,impressively:4,impressiveness:4,improve:4,improved:3,improvement:4,improvements:5,improves:5,improving:3,incredible:4,incredibly:5,indebted:4,individualized:1,indulgence:1,indulgent:1,industrious:1,inestimable:1,inestimably:1,inexpensive:4,infallibility:1,infallible:1,infallibly:1,influential:1,ingenious:2,ingeniously:3,ingenuity:3,ingenuous:3,ingenuously:2,innocuous:3,innovation:4,innovative:4,inpressed:2,insightful:4,insightfully:3,inspiration:4,inspirational:5,inspire:5,inspiring:5,instantly:3,instructive:3,instrumental:3,integral:3,integrated:3,intelligence:3,intelligent:3,intelligible:2,interesting:4,interests:3,intimacy:2,intimate:2,intricate:3,intrigue:2,intriguing:2,intriguingly:2,intuitive:3,invaluable:5,invaluablely:5,inventive:3,invigorate:3,invigorating:2,invincibility:3,invincible:5,inviolable:3,inviolate:3,invulnerable:4,irreplaceable:3,irreproachable:3,irresistible:3,irresistibly:3,"issue-free":3,"jaw-droping":5,"jaw-dropping":5,jollify:3,jolly:3,jovial:2,joy:4,joyful:5,joyfully:5,joyous:4,joyously:4,jubilant:4,jubilantly:3,jubilate:3,jubilation:3,jubiliant:3,judicious:3,justly:3,keen:3,keenly:4,keenness:4,"kid-friendly":3,kindliness:5,kindly:5,kindness:5,knowledgeable:4,kudos:3,"large-capacity":3,laud:3,laudable:4,laudably:4,lavish:5,lavishly:5,"law-abiding":4,lawful:4,lawfully:4,lead:3,leading:3,leads:1,lean:1,led:1,legendary:5,leverage:3,levity:2,liberate:4,liberation:4,liberty:4,lifesaver:5,"light-hearted":3,lighter:3,likable:4,like:5,liked:4,likes:4,liking:5,lionhearted:4,lively:5,logical:4,"long-lasting":5,lovable:4,lovably:5,love:5,loved:5,loveliness:4,lovely:5,lover:4,loves:4,loving:5,"low-cost":2,"low-price":2,"low-priced":2,"low-risk":3,"lower-priced":3,loyal:4,loyalty:4,lucid:2,lucidly:2,luck:4,luckier:4,luckiest:4,luckiness:4,lucky:5,lucrative:3,luminous:3,lush:2,luster:2,lustrous:3,luxuriant:3,luxuriate:3,luxurious:3,luxuriously:4,luxury:5,lyrical:2,magic:3,magical:4,magnanimous:3,magnanimously:3,magnificence:2,magnificent:3,magnificently:3,majestic:3,majesty:3,manageable:2,maneuverable:2,marvel:4,marveled:4,marvelled:4,marvellous:4,marvelous:4,marvelously:5,marvelousness:3,marvels:3,master:5,masterful:5,masterfully:5,masterpiece:5,masterpieces:5,masters:5,mastery:4,matchless:4,mature:3,maturely:2,maturity:3,meaningful:4,memorable:5,merciful:5,mercifully:5,mercy:5,merit:4,meritorious:4,merrily:3,merriment:2,merriness:2,merry:4,mesmerize:3,mesmerized:3,mesmerizes:3,mesmerizing:3,mesmerizingly:3,meticulous:3,meticulously:3,mightily:4,mighty:2,"mind-blowing":5,miracle:5,miracles:5,miraculous:5,miraculously:5,miraculousness:1,modern:3,modest:3,modesty:3,momentous:3,monumental:3,monumentally:3,morality:3,motivated:3,"multi-purpose":3,navigable:3,neat:5,neatest:5,neatly:5,nice:5,nicely:5,nicer:5,nicest:5,nifty:4,nimble:4,noble:4,nobly:4,noiseless:4,"non-violence":2,"non-violent":2,notably:4,noteworthy:4,nourish:4,nourishing:4,nourishment:4,novelty:3,nurturing:3,oasis:3,obsession:3,obsessions:3,obtainable:3,openly:1,openness:1,optimal:3,optimism:3,optimistic:3,opulent:1,orderly:4,originality:4,outdo:4,outdone:4,outperform:4,outperformed:4,outperforming:4,outperforms:4,outshine:5,outshone:5,outsmart:5,outstanding:3,outstandingly:3,outstrip:4,outwit:4,ovation:2,overjoyed:2,overtake:3,overtaken:3,overtakes:4,overtaking:4,overtook:3,overture:3,"pain-free":4,painless:4,painlessly:5,palatial:2,pamper:3,pampered:3,pamperedly:3,pamperedness:2,pampers:2,panoramic:3,paradise:4,paramount:2,pardon:2,passion:2,passionate:2,passionately:2,patience:3,patient:3,patiently:2,patriot:2,patriotic:2,peace:5,peaceable:5,peaceful:5,peacefully:5,peacekeepers:5,peach:3,peerless:3,pep:2,pepped:2,pepping:2,peppy:2,peps:2,perfect:5,perfection:5,perfectly:5,permissible:2,perseverance:2,persevere:1,personages:1,personalized:3,phenomenal:4,phenomenally:4,picturesque:4,piety:3,pinnacle:4,playful:4,playfully:4,pleasant:4,pleasantly:3,pleased:4,pleases:4,pleasing:3,pleasingly:4,pleasurable:4,pleasurably:3,pleasure:3,plentiful:4,pluses:2,plush:1,plusses:1,poetic:1,poeticize:1,poignant:1,poise:1,poised:2,polished:2,polite:4,politeness:4,popular:5,portable:4,posh:3,positive:4,positively:5,positives:5,powerful:5,powerfully:5,praise:5,praiseworthy:5,praising:4,"pre-eminent":2,precious:2,precise:2,precisely:2,preeminent:2,prefer:2,preferable:2,preferably:2,prefered:2,preferes:2,preferring:2,prefers:2,premier:2,prestige:4,prestigious:2,prettily:2,pretty:5,priceless:5,pride:4,principled:2,privilege:2,privileged:2,prize:2,proactive:2,"problem-free":2,"problem-solver":2,prodigious:2,prodigiously:2,prodigy:2,productive:2,productively:2,proficient:2,proficiently:2,profound:3,profoundly:3,profuse:2,profusion:2,progress:2,progressive:2,prolific:2,prominence:2,prominent:2,promise:2,promised:2,promises:2,promising:2,promoter:2,prompt:2,promptly:2,proper:2,properly:2,propitious:2,propitiously:2,pros:2,prosper:2,prosperity:3,prosperous:3,prospros:3,protect:3,protection:4,protective:4,proud:2,proven:2,proves:2,providence:2,proving:2,prowess:2,prudence:2,prudent:2,prudently:2,punctual:2,pure:5,purify:5,purposeful:2,quaint:2,qualified:2,qualify:4,quicker:5,quiet:5,quieter:2,radiance:2,radiant:2,rapid:2,rapport:2,rapt:1,rapture:1,raptureous:1,raptureously:1,rapturous:1,rapturously:1,rational:1,"razor-sharp":2,reachable:1,readable:2,readily:2,ready:5,reaffirm:1,reaffirmation:2,realistic:2,realizable:2,reasonable:2,reasonably:2,reasoned:2,reassurance:2,reassure:2,receptive:2,reclaim:2,recomend:4,recommend:4,recommendation:4,recommendations:4,recommended:5,reconcile:3,reconciliation:3,"record-setting":4,recover:4,recovery:4,rectification:4,rectify:3,rectifying:3,redeem:3,redeeming:3,redemption:1,refine:1,refined:3,refinement:3,reform:4,reformed:4,reforming:3,reforms:3,refresh:3,refreshed:3,refreshing:3,refund:3,refunded:2,regal:2,regally:2,regard:2,rejoice:2,rejoicing:3,rejoicingly:3,rejuvenate:3,rejuvenated:3,rejuvenating:3,relaxed:4,relent:4,reliable:4,reliably:4,relief:4,relish:4,remarkable:3,remarkably:3,remedy:3,remission:3,remunerate:3,renaissance:3,renewed:2,renown:2,renowned:2,replaceable:3,reputable:3,reputation:4,resilient:4,resolute:4,resound:4,resounding:2,resourceful:2,resourcefulness:3,respect:3,respectable:3,respectful:2,respectfully:2,respite:2,resplendent:2,responsibly:2,responsive:4,restful:4,restored:2,restructure:2,restructured:2,restructuring:2,retractable:2,revel:2,revelation:2,revere:2,reverence:2,reverent:2,reverently:2,revitalize:2,revival:2,revive:4,revives:2,revolutionary:2,revolutionize:2,revolutionized:2,revolutionizes:2,reward:5,rewarding:5,rewardingly:5,rich:4,richer:4,richly:4,richness:4,right:4,righten:3,righteous:3,righteously:2,righteousness:2,rightful:2,rightfully:2,rightly:2,rightness:2,"risk-free":2,robust:2,"rock-star":4,"rock-stars":4,rockstar:2,rockstars:2,romantic:2,romantically:2,romanticize:2,roomier:2,roomy:2,rosy:2,safe:4,safely:4,sagacity:2,sagely:2,saint:2,saintliness:2,saintly:2,salutary:2,salute:2,sane:3,satisfactorily:3,satisfactory:3,satisfied:3,satisfies:3,satisfy:3,satisfying:3,satisified:3,saver:4,savings:4,savior:4,savvy:4,scenic:4,seamless:4,seasoned:2,secure:5,securely:2,selective:3,"self-determination":3,"self-respect":5,"self-satisfaction":5,"self-sufficiency":5,"self-sufficient":5,sensation:5,sensational:4,sensationally:4,sensations:4,sensible:4,sensibly:4,sensitive:2,serene:2,serenity:2,sexy:4,sharp:2,sharper:2,sharpest:2,shimmering:2,shimmeringly:2,shine:2,shiny:2,significant:2,silent:3,simpler:3,simplest:2,simplified:2,simplifies:2,simplify:2,simplifying:2,sincere:5,sincerely:2,sincerity:2,skill:4,skilled:2,skillful:2,skillfully:2,slammin:2,sleek:2,slick:2,smart:3,smarter:3,smartest:2,smartly:2,smile:2,smiles:2,smiling:2,smilingly:2,smitten:2,smooth:2,smoother:2,smoothes:2,smoothest:2,smoothly:2,snappy:2,snazzy:2,sociable:2,soft:4,softer:4,solace:2,solicitous:2,solicitously:2,solid:2,solidarity:2,soothe:2,soothingly:2,sophisticated:2,soulful:3,soundly:3,soundness:2,spacious:2,sparkle:2,sparkling:2,spectacular:5,spectacularly:5,speedily:2,speedy:2,spellbind:2,spellbinding:2,spellbindingly:2,spellbound:2,spirited:2,spiritual:2,splendid:2,splendidly:2,splendor:2,spontaneous:2,sporty:1,spotless:2,sprightly:1,stability:2,stabilize:2,stable:4,stainless:2,standout:2,"state-of-the-art":2,stately:2,statuesque:2,staunch:2,staunchly:2,staunchness:2,steadfast:2,steadfastly:2,steadfastness:2,steadiest:3,steadiness:3,steady:5,stellar:5,stellarly:2,stimulate:2,stimulates:2,stimulating:2,stimulative:2,stirringly:1,straighten:1,straightforward:3,streamlined:3,striking:2,strikingly:2,striving:2,strong:4,stronger:4,strongest:4,stunned:4,stunning:5,stunningly:5,stupendous:1,stupendously:1,sturdier:1,sturdy:1,stylish:4,stylishly:4,stylized:4,suave:2,suavely:1,sublime:2,subsidize:1,subsidized:1,subsidizes:1,subsidizing:1,substantive:1,succeed:3,succeeded:4,succeeding:3,succeeds:3,succes:1,success:4,successes:2,successful:2,successfully:4,suffice:2,sufficed:3,suffices:2,sufficient:3,sufficiently:3,suitable:4,sumptuous:1,sumptuously:1,sumptuousness:1,super:5,superb:5,superbly:5,superior:2,superiority:4,supple:2,support:3,supported:3,supporter:3,supporting:3,supportive:3,supports:3,supremacy:4,supreme:4,supremely:4,supurb:4,supurbly:3,surmount:2,surpass:3,surreal:4,survival:2,survivor:2,sustainability:2,sustainable:2,swank:1,swankier:1,swankiest:1,swanky:1,sweeping:2,sweet:4,sweeten:3,sweetheart:5,sweetly:4,sweetness:5,swift:3,swiftness:3,talent:2,talented:2,talents:2,tantalize:1,tantalizing:1,tantalizingly:1,tempt:1,tempting:3,temptingly:3,tenacious:2,tenaciously:2,tenacity:2,tender:4,tenderly:4,terrific:4,terrifically:4,thank:4,thankful:4,thinner:3,thoughtful:2,thoughtfully:2,thoughtfulness:2,thrift:2,thrifty:2,thrill:2,thrilled:2,thrilling:2,thrillingly:2,thrills:2,thrive:2,thriving:2,"thumb-up":2,"thumbs-up":2,tickle:2,tidy:2,"time-honored":1,timely:2,tingle:2,titillate:1,titillating:1,titillatingly:1,togetherness:2,tolerable:3,"toll-free":1,top:4,"top-notch":5,"top-quality":5,topnotch:5,tops:5,tough:2,tougher:3,toughest:4,traction:1,tranquil:1,tranquility:1,transparent:2,treasure:4,tremendously:5,trendy:5,triumph:5,triumphal:5,triumphant:1,triumphantly:1,trivially:1,trophy:1,"trouble-free":2,trump:5,trumpet:1,trust:5,trusted:2,trusting:3,trustingly:2,trustworthiness:2,trustworthy:2,trusty:4,truthful:2,truthfully:2,truthfulness:2,twinkly:2,"ultra-crisp":5,unabashed:2,unabashedly:2,unaffected:1,unassailable:2,unbeatable:2,unbiased:2,unbound:2,uncomplicated:3,unconditional:2,undamaged:3,undaunted:2,understandable:2,undisputable:2,undisputably:2,undisputed:3,unencumbered:1,unequivocal:1,unequivocally:1,unfazed:2,unfettered:1,unforgettable:3,unity:2,unlimited:3,unmatched:2,unparalleled:1,unquestionable:1,unquestionably:1,unreal:3,unrestricted:2,unrivaled:2,unselfish:2,unwavering:3,upbeat:2,upgradable:2,upgradeable:2,upgraded:2,upheld:2,uphold:2,uplift:2,uplifting:2,upliftingly:2,upliftment:2,upscale:2,usable:4,useable:2,useful:5,"user-friendly":2,"user-replaceable":2,valiant:1,valiantly:2,valor:2,valuable:5,variety:2,venerate:2,verifiable:1,veritable:1,versatile:2,versatility:1,vibrant:4,vibrantly:4,victorious:5,victory:5,viewable:2,vigilance:2,vigilant:3,virtue:2,virtuous:2,virtuously:2,visionary:2,vivacious:2,vivid:2,vouch:3,vouchsafe:2,warm:4,warmer:2,warmhearted:2,warmly:4,warmth:5,wealthy:5,welcome:2,well:5,"well-backlit":2,"well-balanced":2,"well-behaved":5,"well-being":2,"well-bred":2,"well-connected":2,"well-educated":2,"well-established":1,"well-informed":1,"well-intentioned":2,"well-known":3,"well-made":5,"well-managed":2,"well-mannered":2,"well-positioned":2,"well-received":2,"well-regarded":2,"well-rounded":2,"well-run":2,"well-wishers":2,wellbeing:2,whoa:2,wholeheartedly:2,wholesome:2,whooa:2,whoooa:2,wieldy:1,willing:2,willingly:2,willingness:3,win:5,windfall:2,winnable:2,winner:2,winners:2,winning:2,wins:2,wisdom:2,wise:2,wisely:2,witty:4,won:5,wonder:2,wonderful:2,wonderfully:2,wonderous:2,wonderously:2,wonders:2,wondrous:2,woo:3,work:2,workable:2,worked:3,works:4,"world-famous":2,worth:2,"worth-while":2,worthiness:2,worthwhile:2,worthy:4,wow:5,wowed:2,wowing:2,wows:2,yay:4,youthful:5,zeal:2,zenith:2,zest:4,zippy:2,"2-faced":-1,"2-faces":-1,abnormal:-5,abolish:-4,abominable:-3,abominably:-3,abominate:-2,abomination:-3,abort:-2,aborted:-3,aborts:-3,abrade:-2,abrasive:-4,abrupt:-2,abruptly:-2,abscond:-4},s(n,"aborted",-5),s(n,"absence",-5),s(n,"absent-minded",-5),s(n,"absentee",-5),s(n,"absurd",-4),s(n,"absurdity",-3),s(n,"absurdly",-3),s(n,"absurdness",-3),s(n,"abuse",-4),s(n,"abused",-4),s(n,"abuses",-4),s(n,"abusive",-3),s(n,"abysmal",-2),s(n,"abysmally",-1),s(n,"abyss",-1),s(n,"accidental",-3),s(n,"accost",-1),s(n,"accursed",-1),s(n,"accusation",-5),s(n,"accusations",-1),s(n,"accuse",-3),s(n,"accuses",-3),s(n,"accusing",-2),s(n,"accusingly",-4),s(n,"acerbate",-1),s(n,"acerbic",-1),s(n,"acerbically",-1),s(n,"ache",-5),s(n,"ached",-1),s(n,"aches",-2),s(n,"achey",-1),s(n,"aching",-5),s(n,"acrid",-1),s(n,"acridly",-1),s(n,"acridness",-1),s(n,"acrimonious",-1),s(n,"acrimoniously",-1),s(n,"acrimony",-1),s(n,"adamant",-4),s(n,"adamantly",-4),s(n,"addict",-5),s(n,"addicted",-2),s(n,"addicting",-2),s(n,"addicts",-3),s(n,"admonish",-4),s(n,"admonisher",-2),s(n,"admonishingly",-3),s(n,"admonishment",-4),s(n,"admonition",-3),s(n,"adulterate",-1),s(n,"adulterated",-3),s(n,"adulteration",-5),s(n,"adulterier",-2),s(n,"adversarial",-1),s(n,"adversary",-1),s(n,"adverse",-4),s(n,"adversity",-5),s(n,"afflict",-1),s(n,"affliction",-1),s(n,"afflictive",-1),s(n,"affront",-1),s(n,"afraid",-5),s(n,"aggravate",-4),s(n,"aggravating",-4),s(n,"aggravation",-5),s(n,"aggression",-5),s(n,"aggressive",-5),s(n,"aggressiveness",-4),s(n,"aggressor",-4),s(n,"aggrieve",-3),s(n,"aggrieved",-4),s(n,"aggrivation",-5),s(n,"aghast",-2),s(n,"agonies",-4),s(n,"agonize",-5),s(n,"agonizing",-5),s(n,"agonizingly",-4),s(n,"agony",-5),s(n,"aground",-2),s(n,"ail",-1),s(n,"ailing",-1),s(n,"ailment",-2),s(n,"aimless",-2),s(n,"alarm",-1),s(n,"alarmed",-1),s(n,"alarming",-1),s(n,"alarmingly",-1),s(n,"alienate",-2),s(n,"alienated",-1),s(n,"alienation",-1),s(n,"allegation",-2),s(n,"allegations",-3),s(n,"allege",-1),s(n,"allergic",-1),s(n,"allergies",-1),s(n,"allergy",-1),s(n,"aloof",-1),s(n,"altercation",-1),s(n,"ambiguity",-2),s(n,"ambiguous",-2),s(n,"ambivalence",-1),s(n,"ambivalent",-1),s(n,"ambush",-1),s(n,"amiss",-1),s(n,"amputate",-3),s(n,"anarchism",-1),s(n,"anarchist",-4),s(n,"anarchistic",-1),s(n,"anarchy",-1),s(n,"anemic",-1),s(n,"anger",-4),s(n,"angrily",-5),s(n,"angriness",-5),s(n,"angry",-5),s(n,"anguish",-3),s(n,"animosity",-1),s(n,"annihilate",-1),s(n,"annihilation",-1),s(n,"annoy",-3),s(n,"annoyance",-4),s(n,"annoyances",-4),s(n,"annoyed",-2),s(n,"annoying",-2),s(n,"annoyingly",-3),s(n,"annoys",-1),s(n,"anomalous",-1),s(n,"anomaly",-3),s(n,"antagonism",-1),s(n,"antagonist",-1),s(n,"antagonistic",-1),s(n,"antagonize",-1),s(n,"anti-",-1),s(n,"anti-american",-1),s(n,"anti-israeli",-1),s(n,"anti-occupation",-1),s(n,"anti-proliferation",-1),s(n,"anti-semites",-1),s(n,"anti-social",-1),s(n,"anti-us",-1),s(n,"anti-white",-1),s(n,"antipathy",-1),s(n,"antiquated",-1),s(n,"antithetical",-1),s(n,"anxieties",-1),s(n,"anxiety",-2),s(n,"anxious",-3),s(n,"anxiously",-3),s(n,"anxiousness",-1),s(n,"apathetic",-4),s(n,"apathetically",-1),s(n,"apathy",-5),s(n,"apocalypse",-5),s(n,"apocalyptic",-4),s(n,"apologist",-3),s(n,"apologists",-2),s(n,"appal",-1),s(n,"appall",-1),s(n,"appalled",-1),s(n,"appalling",-1),s(n,"appallingly",-1),s(n,"apprehension",-1),s(n,"apprehensions",-1),s(n,"apprehensive",-1),s(n,"apprehensively",-1),s(n,"arbitrary",-1),s(n,"arcane",-1),s(n,"archaic",-1),s(n,"arduous",-1),s(n,"arduously",-1),s(n,"argumentative",-1),s(n,"arrogance",-3),s(n,"arrogant",-4),s(n,"arrogantly",-5),s(n,"ashamed",-4),s(n,"asinine",-1),s(n,"asininely",-1),s(n,"asinininity",-1),s(n,"askance",-1),s(n,"asperse",-1),s(n,"aspersion",-1),s(n,"aspersions",-1),s(n,"assail",-1),s(n,"assassin",-2),s(n,"assassinate",-2),s(n,"assault",-1),s(n,"assult",-1),s(n,"astray",-1),s(n,"asunder",-1),s(n,"atrocious",-1),s(n,"atrocities",-1),s(n,"atrocity",-1),s(n,"atrophy",-1),s(n,"attack",-3),s(n,"attacks",-3),s(n,"audacious",-3),s(n,"audaciously",-2),s(n,"audaciousness",-2),s(n,"audacity",-2),s(n,"audiciously",-1),s(n,"austere",-1),s(n,"authoritarian",-1),s(n,"autocrat",-1),s(n,"autocratic",-1),s(n,"avalanche",-2),s(n,"avarice",-1),s(n,"avaricious",-1),s(n,"avariciously",-1),s(n,"avenge",-4),s(n,"averse",-1),s(n,"aversion",-1),s(n,"aweful",-4),s(n,"awful",-5),s(n,"awfully",-1),s(n,"awfulness",-1),s(n,"awkward",-3),s(n,"awkwardness",-2),s(n,"ax",-1),s(n,"babble",-1),s(n,"back-logged",-1),s(n,"back-wood",-1),s(n,"back-woods",-1),s(n,"backache",-1),s(n,"backaches",-1),s(n,"backaching",-1),s(n,"backbite",-1),s(n,"backbiting",-1),s(n,"backward",-1),s(n,"backwardness",-1),s(n,"backwood",-1),s(n,"backwoods",-1),s(n,"bad",-4),s(n,"badly",-2),s(n,"baffle",-5),s(n,"baffled",-4),s(n,"bafflement",-1),s(n,"baffling",-1),s(n,"bait",-1),s(n,"balk",-1),s(n,"banal",-1),s(n,"banalize",-1),s(n,"bane",-1),s(n,"banish",-5),s(n,"banishment",-4),s(n,"bankrupt",-2),s(n,"barbarian",-5),s(n,"barbaric",-4),s(n,"barbarically",-3),s(n,"barbarity",-2),s(n,"barbarous",-3),s(n,"barbarously",-1),s(n,"barren",-3),s(n,"baseless",-2),s(n,"bash",-1),s(n,"bashed",-1),s(n,"bashful",-1),s(n,"bashing",-1),s(n,"bastard",-2),s(n,"bastards",-2),s(n,"battered",-1),s(n,"battering",-1),s(n,"batty",-1),s(n,"bearish",-1),s(n,"beastly",-1),s(n,"bedlam",-1),s(n,"bedlamite",-1),s(n,"befoul",-1),s(n,"beg",-1),s(n,"beggar",-1),s(n,"beggarly",-1),s(n,"begging",-1),s(n,"beguile",-1),s(n,"belabor",-1),s(n,"belated",-1),s(n,"beleaguer",-1),s(n,"belie",-2),s(n,"belittle",-2),s(n,"belittled",-2),s(n,"belittling",-2),s(n,"bellicose",-2),s(n,"belligerence",-2),s(n,"belligerent",-2),s(n,"belligerently",-2),s(n,"bemoan",-2),s(n,"bemoaning",-2),s(n,"bemused",-2),s(n,"bent",-2),s(n,"berate",-2),s(n,"bereave",-2),s(n,"bereavement",-2),s(n,"bereft",-2),s(n,"berserk",-2),s(n,"beseech",-1),s(n,"beset",-1),s(n,"besiege",-1),s(n,"besmirch",-1),s(n,"bestial",-1),s(n,"betray",-1),s(n,"betrayal",-1),s(n,"betrayals",-1),s(n,"betrayer",-1),s(n,"betraying",-1),s(n,"betrays",-1),s(n,"bewail",-1),s(n,"beware",-2),s(n,"bewilder",-1),s(n,"bewildered",-1),s(n,"bewildering",-1),s(n,"bewilderingly",-1),s(n,"bewilderment",-1),s(n,"bewitch",-1),s(n,"bias",-3),s(n,"biased",-1),s(n,"biases",-1),s(n,"bicker",-1),s(n,"bickering",-1),s(n,"bid-rigging",-1),s(n,"bigotries",-1),s(n,"bigotry",-4),s(n,"bitch",-5),s(n,"bitchy",-5),s(n,"biting",-5),s(n,"bitingly",-5),s(n,"bitter",-5),s(n,"bitterly",-5),s(n,"bitterness",-5),s(n,"bizarre",-1),s(n,"blab",-1),s(n,"blabber",-1),s(n,"blackmail",-1),s(n,"blah",-1),s(n,"blame",-3),s(n,"blameworthy",-1),s(n,"bland",-1),s(n,"blandish",-1),s(n,"blaspheme",-1),s(n,"blasphemous",-1),s(n,"blasphemy",-1),s(n,"blasted",-1),s(n,"blatant",-1),s(n,"blatantly",-1),s(n,"blather",-1),s(n,"bleak",-1),s(n,"bleakly",-1),s(n,"bleakness",-1),s(n,"bleed",-2),s(n,"bleeding",-3),s(n,"bleeds",-3),s(n,"blemish",-1),s(n,"blind",-2),s(n,"blinding",-1),s(n,"blindingly",-1),s(n,"blindside",-1),s(n,"blister",-1),s(n,"blistering",-1),s(n,"bloated",-1),s(n,"blockage",-1),s(n,"blockhead",-1),s(n,"bloodshed",-1),s(n,"bloodthirsty",-1),s(n,"bloody",-1),s(n,"blotchy",-1),s(n,"blow",-3),s(n,"blunder",-1),s(n,"blundering",-1),s(n,"blunders",-1),s(n,"blunt",-1),s(n,"blur",-1),s(n,"bluring",-1),s(n,"blurred",-1),s(n,"blurring",-1),s(n,"blurry",-1),s(n,"blurs",-1),s(n,"blurt",-1),s(n,"boastful",-1),s(n,"boggle",-3),s(n,"bogus",-2),s(n,"boil",-2),s(n,"boiling",-3),s(n,"boisterous",-2),s(n,"bomb",-4),s(n,"bombard",-2),s(n,"bombardment",-1),s(n,"bombastic",-1),s(n,"bondage",-1),s(n,"bonkers",-4),s(n,"bore",-1),s(n,"bored",-1),s(n,"boredom",-2),s(n,"bores",-2),s(n,"boring",-1),s(n,"botch",-1),s(n,"bother",-1),s(n,"bothered",-1),s(n,"bothering",-1),s(n,"bothers",-1),s(n,"bothersome",-1),s(n,"bowdlerize",-1),s(n,"boycott",-3),s(n,"braggart",-3),s(n,"bragger",-2),s(n,"brainless",-3),s(n,"brainwash",-1),s(n,"brash",-1),s(n,"brashly",-1),s(n,"brashness",-1),s(n,"brat",-1),s(n,"bravado",-1),s(n,"brazen",-1),s(n,"brazenly",-2),s(n,"brazenness",-2),s(n,"breach",-3),s(n,"break",-2),s(n,"break-up",-2),s(n,"break-ups",-1),s(n,"breakdown",-4),s(n,"breaking",-1),s(n,"breaks",-2),s(n,"breakup",-2),s(n,"breakups",-2),s(n,"bribery",-2),s(n,"brimstone",-2),s(n,"bristle",-2),s(n,"brittle",-3),s(n,"broke",-3),s(n,"broken",-3),s(n,"broken-hearted",-3),s(n,"brood",-3),s(n,"browbeat",-3),s(n,"bruise",-3),s(n,"bruised",-2),s(n,"bruises",-2),s(n,"bruising",-2),s(n,"brusque",-3),s(n,"brutal",-3),s(n,"brutalising",-3),s(n,"brutalities",-2),s(n,"brutality",-2),s(n,"brutalize",-2),s(n,"brutalizing",-2),s(n,"brutally",-2),s(n,"brute",-2),s(n,"brutish",-1),s(n,"bs",-3),s(n,"buckle",-1),s(n,"bug",-2),s(n,"bugging",-5),s(n,"buggy",-3),s(n,"bugs",-2),s(n,"bulkier",-2),s(n,"bulkiness",-1),s(n,"bulky",-3),s(n,"bulkyness",-1),s(n,"bull****",-3),s(n,"bull----",-3),s(n,"bullies",-2),s(n,"bullshit",-5),s(n,"bullshyt",-1),s(n,"bully",-2),s(n,"bullying",-1),s(n,"bullyingly",-1),s(n,"bum",-1),s(n,"bump",-1),s(n,"bumped",-3),s(n,"bumping",-1),s(n,"bumpping",-1),s(n,"bumps",-1),s(n,"bumpy",-1),s(n,"bungle",-1),s(n,"bungler",-1),s(n,"bungling",-1),s(n,"bunk",-1),s(n,"burden",-4),s(n,"burdensome",-1),s(n,"burdensomely",-1),s(n,"burn",-5),s(n,"burned",-4),s(n,"burning",-1),s(n,"burns",-1),s(n,"bust",-1),s(n,"busts",-1),s(n,"busybody",-1),s(n,"butcher",-1),s(n,"butchery",-1),s(n,"buzzing",-1),s(n,"byzantine",-1),s(n,"cackle",-1),s(n,"calamities",-3),s(n,"calamitous",-3),s(n,"calamitously",-3),s(n,"calamity",-4),s(n,"callous",-2),s(n,"calumniate",-1),s(n,"calumniation",-1),s(n,"calumnies",-1),s(n,"calumnious",-1),s(n,"calumniously",-1),s(n,"calumny",-1),s(n,"cancer",-5),s(n,"cancerous",-1),s(n,"cannibal",-1),s(n,"cannibalize",-5),s(n,"capitulate",-1),s(n,"capricious",-1),s(n,"capriciously",-1),s(n,"capriciousness",-1),s(n,"capsize",-1),s(n,"careless",-4),s(n,"carelessness",-5),s(n,"caricature",-1),s(n,"carnage",-1),s(n,"carp",-1),s(n,"cartoonish",-1),s(n,"cash-strapped",-1),s(n,"castigate",-1),s(n,"castrated",-1),s(n,"casualty",-3),s(n,"cataclysm",-2),s(n,"cataclysmal",-2),s(n,"cataclysmic",-2),s(n,"cataclysmically",-1),s(n,"catastrophe",-4),s(n,"catastrophes",-4),s(n,"catastrophic",-4),s(n,"catastrophically",-1),s(n,"catastrophies",-1),s(n,"caustic",-1),s(n,"caustically",-1),s(n,"cautionary",-3),s(n,"cave",-1),s(n,"censure",-1),s(n,"chafe",-1),s(n,"chaff",-1),s(n,"chagrin",-1),s(n,"challenging",-3),s(n,"chaos",-5),s(n,"chaotic",-1),s(n,"chasten",-1),s(n,"chastise",-1),s(n,"chastisement",-1),s(n,"chatter",-1),s(n,"chatterbox",-1),s(n,"cheap",-3),s(n,"cheapen",-1),s(n,"cheaply",-1),s(n,"cheat",-2),s(n,"cheated",-3),s(n,"cheater",-2),s(n,"cheating",-1),s(n,"cheats",-1),s(n,"checkered",-1),s(n,"cheerless",-1),s(n,"cheesy",-1),s(n,"chide",-1),s(n,"childish",-1),s(n,"chill",-1),s(n,"chilly",-1),s(n,"chintzy",-1),s(n,"choke",-1),s(n,"choleric",-1),s(n,"choppy",-1),s(n,"chore",-1),s(n,"chronic",-1),s(n,"chunky",-1),s(n,"clamor",-1),s(n,"clamorous",-1),s(n,"clash",-1),s(n,"cliche",-1),s(n,"cliched",-1),s(n,"clique",-1),s(n,"clog",-1),s(n,"clogged",-1),s(n,"clogs",-1),s(n,"cloud",-1),s(n,"clouding",-1),s(n,"cloudy",-1),s(n,"clueless",-1),s(n,"clumsy",-3),s(n,"clunky",-3),s(n,"coarse",-3),s(n,"cocky",-1),s(n,"coerce",-2),s(n,"coercion",-2),s(n,"coercive",-2),s(n,"cold",-3),s(n,"coldly",-1),s(n,"collapse",-1),s(n,"collude",-1),s(n,"collusion",-1),s(n,"combative",-1),s(n,"combust",-2),s(n,"comical",-2),s(n,"commiserate",-2),s(n,"commonplace",-2),s(n,"commotion",-3),s(n,"commotions",-3),s(n,"complacent",-3),s(n,"complain",-3),s(n,"complained",-4),s(n,"complaining",-4),s(n,"complains",-4),s(n,"complaint",-4),s(n,"complaints",-2),s(n,"complex",-2),s(n,"complicated",-4),s(n,"complication",-4),s(n,"complicit",-4),s(n,"compulsion",-4),s(n,"compulsive",-1),s(n,"concede",-1),s(n,"conceded",-1),s(n,"conceit",-1),s(n,"conceited",-1),s(n,"concen",-1),s(n,"concens",-2),s(n,"concern",-1),s(n,"concerned",-1),s(n,"concerns",-1),s(n,"concession",-1),s(n,"concessions",-1),s(n,"condemn",-1),s(n,"condemnable",-1),s(n,"condemnation",-1),s(n,"condemned",-1),s(n,"condemns",-1),s(n,"condescend",-1),s(n,"condescending",-1),s(n,"condescendingly",-1),s(n,"condescension",-1),s(n,"confess",-1),s(n,"confession",-4),s(n,"confessions",-2),s(n,"confined",-2),s(n,"conflict",-2),s(n,"conflicted",-2),s(n,"conflicting",-2),s(n,"conflicts",-2),s(n,"confound",-2),s(n,"confounded",-2),s(n,"confounding",-2),s(n,"confront",-3),s(n,"confrontation",-3),s(n,"confrontational",-3),s(n,"confuse",-5),s(n,"confused",-4),s(n,"confuses",-4),s(n,"confusing",-4),s(n,"confusion",-4),s(n,"confusions",-4),s(n,"congested",-4),s(n,"congestion",-4),s(n,"cons",-5),s(n,"conscons",-2),s(n,"conservative",-1),s(n,"conspicuous",-1),s(n,"conspicuously",-1),s(n,"conspiracies",-1),s(n,"conspiracy",-4),s(n,"conspirator",-1),s(n,"conspiratorial",-1),s(n,"conspire",-5),s(n,"consternation",-1),s(n,"contagious",-3),s(n,"contaminate",-3),s(n,"contaminated",-3),s(n,"contaminates",-2),s(n,"contaminating",-2),s(n,"contamination",-1),s(n,"contempt",-1),s(n,"contemptible",-1),s(n,"contemptuous",-2),s(n,"contemptuously",-2),s(n,"contend",-2),s(n,"contention",-2),s(n,"contentious",-2),s(n,"contort",-3),s(n,"contortions",-3),s(n,"contradict",-3),s(n,"contradiction",-3),s(n,"contradictory",-3),s(n,"contrariness",-3),s(n,"contravene",-3),s(n,"contrive",-3),s(n,"contrived",-3),s(n,"controversial",-3),s(n,"controversy",-2),s(n,"convoluted",-2),s(n,"corrode",-2),s(n,"corrosion",-3),s(n,"corrosions",-3),s(n,"corrosive",-3),s(n,"corrupt",-4),s(n,"corrupted",-4),s(n,"corrupting",-4),s(n,"corruption",-4),s(n,"corrupts",-4),s(n,"corruptted",-4),s(n,"costlier",-3),s(n,"costly",-3),s(n,"counter-productive",-3),s(n,"counterproductive",-3),s(n,"coupists",-1),s(n,"covetous",-2),s(n,"coward",-4),s(n,"cowardly",-5),s(n,"crabby",-2),s(n,"crack",-2),s(n,"cracked",-2),s(n,"cracks",-1),s(n,"craftily",-1),s(n,"craftly",-1),s(n,"crafty",-1),s(n,"cramp",-1),s(n,"cramped",-1),s(n,"cramping",-1),s(n,"cranky",-1),s(n,"crap",-4),s(n,"crappy",-5),s(n,"craps",-3),s(n,"crash",-3),s(n,"crashed",-2),s(n,"crashes",-2),s(n,"crashing",-1),s(n,"crass",-1),s(n,"craven",-1),s(n,"cravenly",-1),s(n,"craze",-1),s(n,"crazily",-1),s(n,"craziness",-1),s(n,"crazy",-2),s(n,"creak",-3),s(n,"creaking",-3),s(n,"creaks",-1),s(n,"credulous",-1),s(n,"creep",-1),s(n,"creeping",-1),s(n,"creeps",-1),s(n,"creepy",-1),s(n,"crept",-1),s(n,"crime",-4),s(n,"criminal",-4),s(n,"cringe",-2),s(n,"cringed",-2),s(n,"cringes",-2),s(n,"cripple",-2),s(n,"crippled",-3),s(n,"cripples",-3),s(n,"crippling",-4),s(n,"crisis",-4),s(n,"critic",-4),s(n,"critical",-1),s(n,"criticism",-1),s(n,"criticisms",-1),s(n,"criticize",-1),s(n,"criticized",-1),s(n,"criticizing",-1),s(n,"critics",-3),s(n,"cronyism",-3),s(n,"crook",-3),s(n,"crooked",-3),s(n,"crooks",-1),s(n,"crowded",-1),s(n,"crowdedness",-1),s(n,"crude",-1),s(n,"cruel",-5),s(n,"crueler",-5),s(n,"cruelest",-5),s(n,"cruelly",-5),s(n,"cruelness",-4),s(n,"cruelties",-4),s(n,"cruelty",-4),s(n,"crumble",-3),s(n,"crumbling",-3),s(n,"crummy",-2),s(n,"crumple",-2),s(n,"crumpled",-2),s(n,"crumples",-1),s(n,"crush",-3),s(n,"crushed",-1),s(n,"crushing",-1),s(n,"cry",-3),s(n,"culpable",-1),s(n,"culprit",-3),s(n,"cumbersome",-1),s(n,"cunt",-5),s(n,"cunts",-5),s(n,"cuplrit",-1),s(n,"curse",-3),s(n,"cursed",-3),s(n,"curses",-4),s(n,"curt",-1),s(n,"cuss",-3),s(n,"cussed",-3),s(n,"cutthroat",-2),s(n,"cynical",-3),s(n,"cynicism",-3),s(n,"d*mn",-3),s(n,"damage",-3),s(n,"damaged",-3),s(n,"damages",-3),s(n,"damaging",-3),s(n,"damn",-4),s(n,"damnable",-5),s(n,"damnably",-5),s(n,"damnation",-5),s(n,"damned",-5),s(n,"damning",-5),s(n,"damper",-2),s(n,"danger",-2),s(n,"dangerous",-2),s(n,"dangerousness",-3),s(n,"dark",-3),s(n,"darken",-2),s(n,"darkened",-2),s(n,"darker",-2),s(n,"darkness",-2),s(n,"dastard",-1),s(n,"dastardly",-1),s(n,"daunt",-1),s(n,"daunting",-2),s(n,"dauntingly",-2),s(n,"dawdle",-1),s(n,"daze",-1),s(n,"dazed",-1),s(n,"dead",-5),s(n,"deadbeat",-5),s(n,"deadlock",-3),s(n,"deadly",-4),s(n,"deadweight",-3),s(n,"deaf",-3),s(n,"dearth",-1),s(n,"death",-4),s(n,"debacle",-1),s(n,"debase",-1),s(n,"debasement",-1),s(n,"debaser",-1),s(n,"debatable",-1),s(n,"debauch",-1),s(n,"debaucher",-1),s(n,"debauchery",-1),s(n,"debilitate",-1),s(n,"debilitating",-1),s(n,"debility",-1),s(n,"debt",-2),s(n,"debts",-2),s(n,"decadence",-1),s(n,"decadent",-1),s(n,"decay",-4),s(n,"decayed",-4),s(n,"deceit",-3),s(n,"deceitful",-3),s(n,"deceitfully",-3),s(n,"deceitfulness",-3),s(n,"deceive",-3),s(n,"deceiver",-3),s(n,"deceivers",-3),s(n,"deceiving",-3),s(n,"deception",-4),s(n,"deceptive",-4),s(n,"deceptively",-5),s(n,"declaim",-3),s(n,"decline",-2),s(n,"declines",-2),s(n,"declining",-2),s(n,"decrement",-2),s(n,"decrepit",-2),s(n,"decrepitude",-1),s(n,"decry",-1),s(n,"defamation",-3),s(n,"defamations",-3),s(n,"defamatory",-3),s(n,"defame",-3),s(n,"defect",-4),s(n,"defective",-4),s(n,"defects",-4),s(n,"defensive",-3),s(n,"defiance",-3),s(n,"defiant",-3),s(n,"defiantly",-3),s(n,"deficiencies",-3),s(n,"deficiency",-3),s(n,"deficient",-3),s(n,"defile",-3),s(n,"defiler",-3),s(n,"deform",-3),s(n,"deformed",-3),s(n,"defrauding",-4),s(n,"defunct",-2),s(n,"defy",-1),s(n,"degenerate",-2),s(n,"degenerately",-2),s(n,"degeneration",-2),s(n,"degradation",-3),s(n,"degrade",-3),s(n,"degrading",-3),s(n,"degradingly",-3),s(n,"dehumanization",-2),s(n,"dehumanize",-2),s(n,"deign",-1),s(n,"deject",-1),s(n,"dejected",-1),s(n,"dejectedly",-1),s(n,"dejection",-1),s(n,"delay",-1),s(n,"delayed",-1),s(n,"delaying",-1),s(n,"delays",-1),s(n,"delinquency",-1),s(n,"delinquent",-1),s(n,"delirious",-1),s(n,"delirium",-1),s(n,"delude",-1),s(n,"deluded",-1),s(n,"deluge",-1),s(n,"delusion",-1),s(n,"delusional",-1),s(n,"delusions",-1),s(n,"demean",-2),s(n,"demeaning",-1),s(n,"demise",-3),s(n,"demolish",-3),s(n,"demolisher",-3),s(n,"demon",-4),s(n,"demonic",-4),s(n,"demonize",-4),s(n,"demonized",-4),s(n,"demonizes",-4),s(n,"demonizing",-4),s(n,"demoralize",-1),s(n,"demoralizing",-1),s(n,"demoralizingly",-1),s(n,"denial",-2),s(n,"denied",-2),s(n,"denies",-1),s(n,"denigrate",-1),s(n,"denounce",-1),s(n,"dense",-1),s(n,"dent",-1),s(n,"dented",-1),s(n,"dents",-1),s(n,"denunciate",-1),s(n,"denunciation",-1),s(n,"denunciations",-1),s(n,"deny",-2),s(n,"denying",-2),s(n,"deplete",-1),s(n,"deplorable",-1),s(n,"deplorably",-1),s(n,"deplore",-1),s(n,"deploring",-1),s(n,"deploringly",-1),s(n,"deprave",-1),s(n,"depraved",-1),s(n,"depravedly",-1),s(n,"deprecate",-1),s(n,"depress",-4),s(n,"depressed",-3),s(n,"depressing",-4),s(n,"depressingly",-3),s(n,"depression",-4),s(n,"depressions",-4),s(n,"deprive",-3),s(n,"deprived",-3),s(n,"deride",-1),s(n,"derision",-1),s(n,"derisive",-1),s(n,"derisively",-1),s(n,"derisiveness",-1),s(n,"derogatory",-3),s(n,"desecrate",-1),s(n,"desert",-2),s(n,"desertion",-1),s(n,"desiccate",-1),s(n,"desiccated",-1),s(n,"desititute",-1),s(n,"desolate",-1),s(n,"desolately",-1),s(n,"desolation",-1),s(n,"despair",-1),s(n,"despairing",-1),s(n,"despairingly",-1),s(n,"desperate",-2),s(n,"desperately",-2),s(n,"desperation",-1),s(n,"despicable",-2),s(n,"despicably",-1),s(n,"despise",-1),s(n,"despised",-1),s(n,"despoil",-1),s(n,"despoiler",-1),s(n,"despondence",-1),s(n,"despondency",-1),s(n,"despondent",-1),s(n,"despondently",-1),s(n,"despot",-1),s(n,"despotic",-1),s(n,"despotism",-1),s(n,"destabilisation",-1),s(n,"destains",-1),s(n,"destitute",-1),s(n,"destitution",-1),s(n,"destroy",-5),s(n,"destroyer",-5),s(n,"destruction",-5),s(n,"destructive",-5),s(n,"desultory",-1),s(n,"deter",-2),s(n,"deteriorate",-5),s(n,"deteriorating",-5),s(n,"deterioration",-5),s(n,"deterrent",-5),s(n,"detest",-3),s(n,"detestable",-3),s(n,"detestably",-3),s(n,"detested",-3),s(n,"detesting",-3),s(n,"detests",-3),s(n,"detract",-3),s(n,"detracted",-2),s(n,"detracting",-2),s(n,"detraction",-2),s(n,"detracts",-2),s(n,"detriment",-2),s(n,"detrimental",-2),s(n,"devastate",-5),s(n,"devastated",-5),s(n,"devastates",-5),s(n,"devastating",-5),s(n,"devastatingly",-5),s(n,"devastation",-5),s(n,"deviate",-2),s(n,"deviation",-2),s(n,"devil",-2),s(n,"devilish",-2),s(n,"devilishly",-2),s(n,"devilment",-2),s(n,"devilry",-2),s(n,"devious",-3),s(n,"deviously",-3),s(n,"deviousness",-3),s(n,"devoid",-2),s(n,"diabolic",-2),s(n,"diabolical",-2),s(n,"diabolically",-2),s(n,"diametrically",-1),s(n,"diappointed",-5),s(n,"diatribe",-1),s(n,"diatribes",-1),s(n,"dick",-5),s(n,"dictator",-4),s(n,"dictatorial",-3),s(n,"die",-5),s(n,"die-hard",-2),s(n,"died",-4),s(n,"dies",-3),s(n,"difficult",-2),s(n,"difficulties",-2),s(n,"difficulty",-2),s(n,"diffidence",-1),s(n,"dilapidated",-1),s(n,"dilemma",-1),s(n,"dilly-dally",-1),s(n,"dim",-1),s(n,"dimmer",-1),s(n,"din",-1),s(n,"ding",-1),s(n,"dings",-1),s(n,"dinky",-1),s(n,"dire",-1),s(n,"direly",-1),s(n,"direness",-1),s(n,"dirt",-2),s(n,"dirtbag",-1),s(n,"dirtbags",-1),s(n,"dirts",-2),s(n,"dirty",-2),s(n,"disable",-1),s(n,"disabled",-1),s(n,"disaccord",-1),s(n,"disadvantage",-1),s(n,"disadvantaged",-1),s(n,"disadvantageous",-1),s(n,"disadvantages",-1),s(n,"disaffect",-1),s(n,"disaffected",-1),s(n,"disaffirm",-1),s(n,"disagree",-2),s(n,"disagreeable",-1),s(n,"disagreeably",-1),s(n,"disagreed",-2),s(n,"disagreeing",-1),s(n,"disagreement",-1),s(n,"disagrees",-1),s(n,"disallow",-4),s(n,"disapointed",-5),s(n,"disapointing",-5),s(n,"disapointment",-5),s(n,"disappoint",-5),s(n,"disappointed",-4),s(n,"disappointing",-4),s(n,"disappointingly",-4),s(n,"disappointment",-4),s(n,"disappointments",-4),s(n,"disappoints",-3),s(n,"disapprobation",-1),s(n,"disapproval",-2),s(n,"disapprove",-2),s(n,"disapproving",-2),s(n,"disarm",-2),s(n,"disarray",-1),s(n,"disaster",-1),s(n,"disasterous",-2),s(n,"disastrous",-2),s(n,"disastrously",-1),s(n,"disavow",-3),s(n,"disavowal",-3),s(n,"disbelief",-2),s(n,"disbelieve",-2),s(n,"disbeliever",-2),s(n,"disclaim",-1),s(n,"discombobulate",-1),s(n,"discomfit",-3),s(n,"discomfititure",-1),s(n,"discomfort",-1),s(n,"discompose",-1),s(n,"disconcert",-1),s(n,"disconcerted",-1),s(n,"disconcerting",-1),s(n,"disconcertingly",-1),s(n,"disconsolate",-1),s(n,"disconsolately",-1),s(n,"disconsolation",-1),s(n,"discontent",-2),s(n,"discontented",-2),s(n,"discontentedly",-2),s(n,"discontinued",-2),s(n,"discontinuity",-1),s(n,"discontinuous",-1),s(n,"discord",-1),s(n,"discordance",-1),s(n,"discordant",-1),s(n,"discountenance",-1),s(n,"discourage",-1),s(n,"discouragement",-1),s(n,"discouraging",-1),s(n,"discouragingly",-1),s(n,"discourteous",-1),s(n,"discourteously",-1),s(n,"discoutinous",-1),s(n,"discredit",-1),s(n,"discrepant",-1),s(n,"discriminate",-2),s(n,"discrimination",-2),s(n,"discriminatory",-2),s(n,"disdain",-1),s(n,"disdained",-1),s(n,"disdainful",-1),s(n,"disdainfully",-1),s(n,"disfavor",-1),s(n,"disgrace",-5),s(n,"disgraced",-5),s(n,"disgraceful",-5),s(n,"disgracefully",-5),s(n,"disgruntle",-3),s(n,"disgruntled",-3),s(n,"disgust",-5),s(n,"disgusted",-5),s(n,"disgustedly",-5),s(n,"disgustful",-5),s(n,"disgustfully",-5),s(n,"disgusting",-5),s(n,"disgustingly",-5),s(n,"dishearten",-4),s(n,"disheartening",-4),s(n,"dishearteningly",-4),s(n,"dishonest",-3),s(n,"dishonestly",-3),s(n,"dishonesty",-3),s(n,"dishonor",-3),s(n,"dishonorable",-3),s(n,"dishonorablely",-3),s(n,"disillusion",-2),s(n,"disillusioned",-2),s(n,"disillusionment",-2),s(n,"disillusions",-2),s(n,"disinclination",-2),s(n,"disinclined",-2),s(n,"disingenuous",-2),s(n,"disingenuously",-2),s(n,"disintegrate",-2),s(n,"disintegrated",-2),s(n,"disintegrates",-2),s(n,"disintegration",-2),s(n,"disinterest",-2),s(n,"disinterested",-2),s(n,"dislike",-3),s(n,"disliked",-3),s(n,"dislikes",-3),s(n,"disliking",-3),s(n,"dislocated",-3),s(n,"disloyal",-3),s(n,"disloyalty",-3),s(n,"dismal",-1),s(n,"dismally",-1),s(n,"dismalness",-1),s(n,"dismay",-3),s(n,"dismayed",-3),s(n,"dismaying",-3),s(n,"dismayingly",-3),s(n,"dismissive",-2),s(n,"dismissively",-2),s(n,"disobedience",-2),s(n,"disobedient",-2),s(n,"disobey",-1),s(n,"disoobedient",-1),s(n,"disorder",-1),s(n,"disordered",-1),s(n,"disorderly",-1),s(n,"disorganized",-1),s(n,"disorient",-1),s(n,"disoriented",-1),s(n,"disown",-1),s(n,"disparage",-1),s(n,"disparaging",-1),s(n,"disparagingly",-1),s(n,"dispensable",-1),s(n,"dispirit",-1),s(n,"dispirited",-1),s(n,"dispiritedly",-1),s(n,"dispiriting",-1),s(n,"displace",-1),s(n,"displaced",-1),s(n,"displease",-1),s(n,"displeased",-1),s(n,"displeasing",-1),s(n,"displeasure",-1),s(n,"disproportionate",-1),s(n,"disprove",-2),s(n,"disputable",-1),s(n,"dispute",-3),s(n,"disputed",-3),s(n,"disquiet",-1),s(n,"disquieting",-1),s(n,"disquietingly",-1),s(n,"disquietude",-1),s(n,"disregard",-3),s(n,"disregardful",-1),s(n,"disreputable",-1),s(n,"disrepute",-2),s(n,"disrespect",-1),s(n,"disrespectable",-1),s(n,"disrespectablity",-1),s(n,"disrespectful",-1),s(n,"disrespectfully",-1),s(n,"disrespectfulness",-1),s(n,"disrespecting",-1),s(n,"disrupt",-4),s(n,"disruption",-4),s(n,"disruptive",-4),s(n,"diss",-1),s(n,"dissapointed",-5),s(n,"dissappointed",-5),s(n,"dissappointing",-5),s(n,"dissatisfaction",-4),s(n,"dissatisfactory",-4),s(n,"dissatisfied",-4),s(n,"dissatisfies",-4),s(n,"dissatisfy",-4),s(n,"dissatisfying",-4),s(n,"dissed",-1),s(n,"dissemble",-1),s(n,"dissembler",-1),s(n,"dissension",-1),s(n,"dissent",-1),s(n,"dissenter",-1),s(n,"dissention",-1),s(n,"disservice",-1),s(n,"disses",-1),s(n,"dissidence",-1),s(n,"dissident",-1),s(n,"dissidents",-1),s(n,"dissing",-1),s(n,"dissocial",-1),s(n,"dissolute",-1),s(n,"dissolution",-1),s(n,"dissonance",-1),s(n,"dissonant",-1),s(n,"dissonantly",-1),s(n,"dissuade",-1),s(n,"dissuasive",-1),s(n,"distains",-1),s(n,"distaste",-1),s(n,"distasteful",-1),s(n,"distastefully",-1),s(n,"distort",-1),s(n,"distorted",-1),s(n,"distortion",-1),s(n,"distorts",-1),s(n,"distract",-1),s(n,"distracting",-1),s(n,"distraction",-1),s(n,"distraught",-1),s(n,"distraughtly",-1),s(n,"distraughtness",-1),s(n,"distress",-2),s(n,"distressed",-2),s(n,"distressing",-2),s(n,"distressingly",-1),s(n,"distrust",-3),s(n,"distrustful",-3),s(n,"distrusting",-3),s(n,"disturb",-3),s(n,"disturbance",-3),s(n,"disturbed",-3),s(n,"disturbing",-3),s(n,"disturbingly",-3),s(n,"disunity",-2),s(n,"disvalue",-2),s(n,"divergent",-2),s(n,"divisive",-2),s(n,"divisively",-2),s(n,"divisiveness",-2),s(n,"dizzing",-2),s(n,"dizzingly",-2),s(n,"dizzy",-2),s(n,"doddering",-2),s(n,"dodgey",-2),s(n,"dogged",-2),s(n,"doggedly",-2),s(n,"dogmatic",-2),s(n,"doldrums",-2),s(n,"domineer",-2),s(n,"domineering",-2),s(n,"donside",-2),s(n,"doom",-4),s(n,"doomed",-4),s(n,"doomsday",-3),s(n,"dope",-1),s(n,"doubt",-2),s(n,"doubtful",-1),s(n,"doubtfully",-1),s(n,"doubts",-2),s(n,"douchbag",-5),s(n,"douchebag",-5),s(n,"douchebags",-5),s(n,"downbeat",-3),s(n,"downcast",-1),s(n,"downer",-1),s(n,"downfall",-1),s(n,"downfallen",-1),s(n,"downgrade",-1),s(n,"downhearted",-1),s(n,"downheartedly",-1),s(n,"downhill",-1),s(n,"downside",-3),s(n,"downsides",-1),s(n,"downturn",-1),s(n,"downturns",-1),s(n,"drab",-1),s(n,"draconian",-1),s(n,"draconic",-1),s(n,"drag",-2),s(n,"dragged",-1),s(n,"dragging",-1),s(n,"dragoon",-1),s(n,"drags",-1),s(n,"drain",-3),s(n,"drained",-3),s(n,"draining",-3),s(n,"drains",-1),s(n,"drastic",-1),s(n,"drastically",-1),s(n,"drawback",-1),s(n,"drawbacks",-1),s(n,"dread",-4),s(n,"dreadful",-4),s(n,"dreadfully",-4),s(n,"dreadfulness",-4),s(n,"dreary",-2),s(n,"dripped",-2),s(n,"dripping",-2),s(n,"drippy",-2),s(n,"drips",-2),s(n,"drones",-2),s(n,"droop",-2),s(n,"droops",-2),s(n,"drop-out",-3),s(n,"drop-outs",-3),s(n,"dropout",-3),s(n,"dropouts",-2),s(n,"drought",-2),s(n,"drowning",-3),s(n,"drunk",-3),s(n,"drunkard",-1),s(n,"drunken",-1),s(n,"dubious",-1),s(n,"dubiously",-1),s(n,"dubitable",-1),s(n,"dud",-1),s(n,"dull",-1),s(n,"dullard",-1),s(n,"dumb",-2),s(n,"dumbfound",-2),s(n,"dump",-2),s(n,"dumped",-3),s(n,"dumping",-3),s(n,"dumps",-3),s(n,"dunce",-1),s(n,"dungeon",-1),s(n,"dungeons",-1),s(n,"dupe",-2),s(n,"dust",-2),s(n,"dusty",-2),s(n,"dwindling",-1),s(n,"dying",-1),s(n,"earsplitting",-1),s(n,"eccentric",-1),s(n,"eccentricity",-1),s(n,"effigy",-1),s(n,"effrontery",-1),s(n,"egocentric",-2),s(n,"egomania",-3),s(n,"egotism",-1),s(n,"egotistical",-1),s(n,"egotistically",-1),s(n,"egregious",-1),s(n,"egregiously",-1),s(n,"election-rigger",-1),s(n,"elimination",-1),s(n,"emaciated",-1),s(n,"emasculate",-1),s(n,"embarrass",-1),s(n,"embarrassing",-1),s(n,"embarrassingly",-1),s(n,"embarrassment",-1),s(n,"embattled",-1),s(n,"embroil",-1),s(n,"embroiled",-1),s(n,"embroilment",-1),s(n,"emergency",-1),s(n,"emphatic",-1),s(n,"emphatically",-1),s(n,"emptiness",-1),s(n,"encroach",-1),s(n,"encroachment",-1),s(n,"endanger",-3),s(n,"enemies",-2),s(n,"enemy",-2),s(n,"enervate",-1),s(n,"enfeeble",-1),s(n,"enflame",-1),s(n,"engulf",-1),s(n,"enjoin",-1),s(n,"enmity",-1),s(n,"enrage",-1),s(n,"enraged",-1),s(n,"enraging",-1),s(n,"enslave",-3),s(n,"entangle",-1),s(n,"entanglement",-1),s(n,"entrap",-1),s(n,"entrapment",-1),s(n,"envious",-1),s(n,"enviously",-1),s(n,"enviousness",-1),s(n,"epidemic",-4),s(n,"equivocal",-1),s(n,"erase",-3),s(n,"erode",-5),s(n,"erodes",-5),s(n,"erosion",-5),s(n,"err",-1),s(n,"errant",-1),s(n,"erratic",-1),s(n,"erratically",-1),s(n,"erroneous",-1),s(n,"erroneously",-1),s(n,"error",-3),s(n,"errors",-3),s(n,"eruptions",-1),s(n,"escapade",-1),s(n,"eschew",-1),s(n,"estranged",-1),s(n,"evade",-1),s(n,"evasion",-1),s(n,"evasive",-1),s(n,"evil",-1),s(n,"evildoer",-1),s(n,"evils",-1),s(n,"eviscerate",-1),s(n,"exacerbate",-1),s(n,"exagerate",-3),s(n,"exagerated",-3),s(n,"exagerates",-3),s(n,"exaggerate",-3),s(n,"exaggeration",-3),s(n,"exasperate",-3),s(n,"exasperated",-3),s(n,"exasperating",-3),s(n,"exasperatingly",-3),s(n,"exasperation",-3),s(n,"excessive",-3),s(n,"excessively",-2),s(n,"exclusion",-2),s(n,"excoriate",-2),s(n,"excruciating",-2),s(n,"excruciatingly",-1),s(n,"excuse",-2),s(n,"excuses",-2),s(n,"execrate",-3),s(n,"exhaust",-3),s(n,"exhausted",-3),s(n,"exhaustion",-3),s(n,"exhausts",-3),s(n,"exhorbitant",-2),s(n,"exhort",-2),s(n,"exile",-2),s(n,"exorbitant",-2),s(n,"exorbitantance",-2),s(n,"exorbitantly",-2),s(n,"expel",-4),s(n,"expensive",-4),s(n,"expire",-4),s(n,"expired",-4),s(n,"explode",-4),s(n,"exploit",-4),s(n,"exploitation",-3),s(n,"explosive",-3),s(n,"expropriate",-3),s(n,"expropriation",-3),s(n,"expulse",-1),s(n,"expunge",-1),s(n,"exterminate",-3),s(n,"extermination",-3),s(n,"extinguish",-1),s(n,"extort",-5),s(n,"extortion",-5),s(n,"extraneous",-1),s(n,"extravagance",-2),s(n,"extravagant",-1),s(n,"extravagantly",-1),s(n,"extremism",-3),s(n,"extremist",-5),s(n,"extremists",-5),s(n,"eyesore",-3),s(n,"f**k",-5),s(n,"fabricate",-3),s(n,"fabrication",-1),s(n,"facetious",-1),s(n,"facetiously",-1),s(n,"fail",-5),s(n,"failed",-4),s(n,"failing",-4),s(n,"fails",-4),s(n,"failure",-4),s(n,"failures",-4),s(n,"faint",-2),s(n,"fainthearted",-2),s(n,"faithless",-2),s(n,"fake",-2),s(n,"fall",-2),s(n,"fallacies",-2),s(n,"fallacious",-1),s(n,"fallaciously",-1),s(n,"fallaciousness",-1),s(n,"fallacy",-3),s(n,"fallen",-3),s(n,"falling",-3),s(n,"fallout",-4),s(n,"falls",-3),s(n,"false",-1),s(n,"falsehood",-5),s(n,"falsely",-4),s(n,"falsify",-4),s(n,"falter",-1),s(n,"faltered",-1),s(n,"famine",-5),s(n,"famished",-1),s(n,"fanatic",-3),s(n,"fanatical",-3),s(n,"fanatically",-4),s(n,"fanaticism",-2),s(n,"fanatics",-2),s(n,"fanciful",-2),s(n,"far-fetched",-1),s(n,"farce",-1),s(n,"farcical",-1),s(n,"farcical-yet-provocative",-1),s(n,"farcically",-1),s(n,"farfetched",-1),s(n,"fascism",-5),s(n,"fascist",-5),s(n,"fastidious",-1),s(n,"fastidiously",-1),s(n,"fastuous",-1),s(n,"fat",-1),s(n,"fat-cat",-1),s(n,"fat-cats",-1),s(n,"fatal",-4),s(n,"fatalistic",-4),s(n,"fatalistically",-4),s(n,"fatally",-4),s(n,"fatcat",-1),s(n,"fatcats",-1),s(n,"fateful",-3),s(n,"fatefully",-3),s(n,"fathomless",-1),s(n,"fatigue",-4),s(n,"fatigued",-4),s(n,"fatique",-4),s(n,"fatty",-4),s(n,"fatuity",-2),s(n,"fatuous",-2),s(n,"fatuously",-2),s(n,"fault",-4),s(n,"faults",-4),s(n,"faulty",-4),s(n,"fawningly",-1),s(n,"faze",-1),s(n,"fear",-5),s(n,"fearful",-5),s(n,"fearfully",-5),s(n,"fears",-5),s(n,"fearsome",-5),s(n,"feckless",-1),s(n,"feeble",-1),s(n,"feeblely",-1),s(n,"feebleminded",-1),s(n,"feign",-1),s(n,"feint",-1),s(n,"fell",-1),s(n,"felon",-1),s(n,"felonious",-1),s(n,"ferociously",-1),s(n,"ferocity",-1),s(n,"fetid",-1),s(n,"fever",-3),s(n,"feverish",-1),s(n,"fevers",-1),s(n,"fiasco",-1),s(n,"fib",-1),s(n,"fibber",-1),s(n,"fickle",-1),s(n,"fiction",-3),s(n,"fictional",-3),s(n,"fictitious",-3),s(n,"fidget",-1),s(n,"fidgety",-1),s(n,"fiend",-1),s(n,"fiendish",-1),s(n,"fierce",-1),s(n,"figurehead",-1),s(n,"filth",-2),s(n,"filthy",-2),s(n,"finagle",-2),s(n,"finicky",-2),s(n,"fissures",-2),s(n,"fist",-1),s(n,"flabbergast",-1),s(n,"flabbergasted",-1),s(n,"flagging",-1),s(n,"flagrant",-1),s(n,"flagrantly",-1),s(n,"flair",-1),s(n,"flairs",-1),s(n,"flak",-1),s(n,"flake",-1),s(n,"flakey",-1),s(n,"flakieness",-1),s(n,"flaking",-1),s(n,"flaky",-1),s(n,"flare",-1),s(n,"flares",-1),s(n,"flareup",-1),s(n,"flareups",-1),s(n,"flat-out",-1),s(n,"flaunt",-1),s(n,"flaw",-5),s(n,"flawed",-5),s(n,"flaws",-5),s(n,"flee",-2),s(n,"fleed",-2),s(n,"fleeing",-2),s(n,"fleer",-2),s(n,"flees",-2),s(n,"fleeting",-3),s(n,"flicering",-3),s(n,"flicker",-3),s(n,"flickering",-3),s(n,"flickers",-2),s(n,"flighty",-2),s(n,"flimflam",-2),s(n,"flimsy",-3),s(n,"flirt",-3),s(n,"flirty",-3),s(n,"floored",-3),s(n,"flounder",-3),s(n,"floundering",-3),s(n,"flout",-3),s(n,"fluster",-2),s(n,"foe",-4),s(n,"fool",-3),s(n,"fooled",-3),s(n,"foolhardy",-3),s(n,"foolish",-3),s(n,"foolishly",-3),s(n,"foolishness",-3),s(n,"forbid",-3),s(n,"forbidden",-2),s(n,"forbidding",-2),s(n,"forceful",-2),s(n,"foreboding",-1),s(n,"forebodingly",-1),s(n,"forfeit",-1),s(n,"forged",-1),s(n,"forgetful",-1),s(n,"forgetfully",-1),s(n,"forgetfulness",-1),s(n,"forlorn",-1),s(n,"forlornly",-1),s(n,"forsake",-2),s(n,"forsaken",-2),s(n,"forswear",-2),s(n,"foul",-5),s(n,"foully",-5),s(n,"foulness",-5),s(n,"fractious",-3),s(n,"fractiously",-3),s(n,"fracture",-3),s(n,"fragile",-3),s(n,"fragmented",-3),s(n,"frail",-3),s(n,"frantic",-3),s(n,"frantically",-3),s(n,"franticly",-3),s(n,"fraud",-3),s(n,"fraudulent",-3),s(n,"fraught",-3),s(n,"frazzle",-2),s(n,"frazzled",-2),s(n,"freak",-2),s(n,"freaking",-3),s(n,"freakish",-3),s(n,"freakishly",-3),s(n,"freaks",-2),s(n,"freeze",-2),s(n,"freezes",-2),s(n,"freezing",-2),s(n,"frenetic",-2),s(n,"frenetically",-3),s(n,"frenzied",-3),s(n,"frenzy",-3),s(n,"fret",-3),s(n,"fretful",-3),s(n,"frets",-3),s(n,"friction",-3),s(n,"frictions",-3),s(n,"fried",-3),s(n,"friggin",-3),s(n,"frigging",-3),s(n,"fright",-3),s(n,"frighten",-2),s(n,"frightening",-2),s(n,"frighteningly",-2),s(n,"frightful",-2),s(n,"frightfully",-2),s(n,"frigid",-3),s(n,"frost",-3),s(n,"frown",-3),s(n,"froze",-3),s(n,"frozen",-2),s(n,"fruitless",-2),s(n,"fruitlessly",-2),s(n,"frustrate",-2),s(n,"frustrated",-5),s(n,"frustrates",-5),s(n,"frustrating",-5),s(n,"frustratingly",-5),s(n,"frustration",-5),s(n,"frustrations",-5),s(n,"fuck",-5),s(n,"fucking",-5),s(n,"fudge",-2),s(n,"fugitive",-2),s(n,"full-blown",-3),s(n,"fulminate",-3),s(n,"fumble",-3),s(n,"fume",-3),s(n,"fumes",-3),s(n,"fundamentalism",-2),s(n,"funky",-2),s(n,"funnily",-2),s(n,"funny",-1),s(n,"furious",-2),s(n,"furiously",-2),s(n,"furor",-2),s(n,"fury",-3),s(n,"fuss",-3),s(n,"fussy",-3),s(n,"fustigate",-3),s(n,"fusty",-3),s(n,"futile",-3),s(n,"futilely",-3),s(n,"futility",-3),s(n,"fuzzy",-3),s(n,"gabble",-2),s(n,"gaff",-2),s(n,"gaffe",-2),s(n,"gainsay",-2),s(n,"gainsayer",-2),s(n,"gall",-2),s(n,"galling",-2),s(n,"gallingly",-2),s(n,"galls",-2),s(n,"gangster",-5),s(n,"gape",-5),s(n,"garbage",-5),s(n,"garish",-1),s(n,"gasp",-1),s(n,"gauche",-1),s(n,"gaudy",-1),s(n,"gawk",-1),s(n,"gawky",-3),s(n,"geezer",-1),s(n,"genocide",-3),s(n,"get-rich",-1),s(n,"ghastly",-1),s(n,"ghetto",-1),s(n,"ghosting",-1),s(n,"gibber",-1),s(n,"gibberish",-1),s(n,"gibe",-1),s(n,"giddy",-1),s(n,"gimmick",-3),s(n,"gimmicked",-3),s(n,"gimmicking",-3),s(n,"gimmicks",-3),s(n,"gimmicky",-3),s(n,"glare",-1),s(n,"glaringly",-1),s(n,"glib",-1),s(n,"glibly",-1),s(n,"glitch",-1),s(n,"glitches",-1),s(n,"gloatingly",-1),s(n,"gloom",-1),s(n,"gloomy",-1),s(n,"glower",-1),s(n,"glum",-1),s(n,"glut",-1),s(n,"gnawing",-1),s(n,"goad",-1),s(n,"goading",-1),s(n,"god-awful",-1),s(n,"goof",-1),s(n,"goofy",-1),s(n,"goon",-1),s(n,"gossip",-1),s(n,"graceless",-1),s(n,"gracelessly",-1),s(n,"graft",-1),s(n,"grainy",-1),s(n,"grapple",-1),s(n,"grate",-1),s(n,"grating",-1),s(n,"gravely",-1),s(n,"greasy",-1),s(n,"greed",-4),s(n,"greedy",-4),s(n,"grief",-5),s(n,"grievance",-5),s(n,"grievances",-5),s(n,"grieve",-5),s(n,"grieving",-5),s(n,"grievous",-5),s(n,"grievously",-5),s(n,"grim",-2),s(n,"grimace",-2),s(n,"grind",-1),s(n,"gripe",-1),s(n,"gripes",-1),s(n,"grisly",-1),s(n,"gritty",-1),s(n,"gross",-2),s(n,"grossly",-2),s(n,"grotesque",-1),s(n,"grouch",-1),s(n,"grouchy",-1),s(n,"groundless",-1),s(n,"grouse",-1),s(n,"growl",-3),s(n,"grudge",-4),s(n,"grudges",-4),s(n,"grudging",-4),s(n,"grudgingly",-4),s(n,"gruesome",-5),s(n,"gruesomely",-5),s(n,"gruff",-1),s(n,"grumble",-1),s(n,"grumpier",-1),s(n,"grumpiest",-1),s(n,"grumpily",-1),s(n,"grumpish",-1),s(n,"grumpy",-1),s(n,"guile",-1),s(n,"guilt",-3),s(n,"guiltily",-3),s(n,"guilty",-3),s(n,"gullible",-3),s(n,"gutless",-1),s(n,"gutter",-1),s(n,"hack",-2),s(n,"hacks",-2),s(n,"haggard",-2),s(n,"haggle",-2),s(n,"hairloss",-1),s(n,"halfhearted",-1),s(n,"halfheartedly",-1),s(n,"hallucinate",-1),s(n,"hallucination",-1),s(n,"hamper",-1),s(n,"hampered",-1),s(n,"handicapped",-1),s(n,"hang",-1),s(n,"hangs",-1),s(n,"haphazard",-1),s(n,"hapless",-1),s(n,"harangue",-1),s(n,"harass",-3),s(n,"harassed",-3),s(n,"harasses",-3),s(n,"harassment",-3),s(n,"harboring",-1),s(n,"harbors",-1),s(n,"hard",-4),s(n,"hard-hit",-3),s(n,"hard-line",-3),s(n,"hard-liner",-3),s(n,"hardball",-3),s(n,"harden",-3),s(n,"hardened",-3),s(n,"hardheaded",-3),s(n,"hardhearted",-3),s(n,"hardliner",-3),s(n,"hardliners",-3),s(n,"hardship",-5),s(n,"hardships",-5),s(n,"harm",-5),s(n,"harmed",-5),s(n,"harmful",-5),s(n,"harms",-5),s(n,"harpy",-1),s(n,"harridan",-1),s(n,"harried",-1),s(n,"harrow",-1),s(n,"harsh",-1),s(n,"harshly",-1),s(n,"hasseling",-1),s(n,"hassle",-3),s(n,"hassled",-3),s(n,"hassles",-3),s(n,"haste",-5),s(n,"hastily",-1),s(n,"hasty",-1),s(n,"hate",-5),s(n,"hated",-5),s(n,"hateful",-5),s(n,"hatefully",-5),s(n,"hatefulness",-5),s(n,"hater",-5),s(n,"haters",-5),s(n,"hates",-5),s(n,"hating",-5),s(n,"hatred",-5),s(n,"haughtily",-1),s(n,"haughty",-1),s(n,"haunt",-3),s(n,"haunting",-3),s(n,"havoc",-1),s(n,"hawkish",-1),s(n,"haywire",-1),s(n,"hazard",-3),s(n,"hazardous",-3),s(n,"haze",-1),s(n,"hazy",-1),s(n,"head-aches",-1),s(n,"headache",-2),s(n,"headaches",-2),s(n,"heartbreaker",-4),s(n,"heartbreaking",-4),s(n,"heartbreakingly",-4),s(n,"heartless",-4),s(n,"heathen",-1),s(n,"heavy-handed",-2),s(n,"heavyhearted",-2),s(n,"heck",-1),s(n,"heckle",-1),s(n,"heckled",-1),s(n,"heckles",-1),s(n,"hectic",-1),s(n,"hedge",-1),s(n,"hedonistic",-1),s(n,"heedless",-1),s(n,"hefty",-1),s(n,"hegemonism",-1),s(n,"hegemonistic",-1),s(n,"hegemony",-1),s(n,"heinous",-1),s(n,"hell",-2),s(n,"hell-bent",-2),s(n,"hellion",-1),s(n,"hells",-1),s(n,"helpless",-3),s(n,"helplessly",-3),s(n,"helplessness",-1),s(n,"heresy",-1),s(n,"heretic",-1),s(n,"heretical",-1),s(n,"hesitant",-1),s(n,"hestitant",-1),s(n,"hideous",-1),s(n,"hideously",-1),s(n,"hideousness",-1),s(n,"high-priced",-1),s(n,"hiliarious",-1),s(n,"hinder",-1),s(n,"hindrance",-1),s(n,"hiss",-1),s(n,"hissed",-1),s(n,"hissing",-1),s(n,"ho-hum",-1),s(n,"hoard",-1),s(n,"hoax",-5),s(n,"hobble",-5),s(n,"hogs",-1),s(n,"hollow",-1),s(n,"hoodium",-1),s(n,"hoodwink",-1),s(n,"hooligan",-1),s(n,"hopeless",-2),s(n,"hopelessly",-2),s(n,"hopelessness",-2),s(n,"horde",-2),s(n,"horrendous",-1),s(n,"horrendously",-1),s(n,"horrible",-1),s(n,"horrid",-1),s(n,"horrific",-1),s(n,"horrified",-1),s(n,"horrifies",-1),s(n,"horrify",-1),s(n,"horrifying",-1),s(n,"horrifys",-1),s(n,"hostage",-1),s(n,"hostile",-1),s(n,"hostilities",-1),s(n,"hostility",-1),s(n,"hotbeds",-1),s(n,"hothead",-1),s(n,"hotheaded",-1),s(n,"hothouse",-1),s(n,"hubris",-1),s(n,"huckster",-1),s(n,"hum",-1),s(n,"humid",-1),s(n,"humiliate",-3),s(n,"humiliating",-3),s(n,"humiliation",-3),s(n,"humming",-1),s(n,"hung",-3),s(n,"hurt",-5),s(n,"hurted",-5),s(n,"hurtful",-5),s(n,"hurting",-5),s(n,"hurts",-4),s(n,"hustler",-1),s(n,"hype",-1),s(n,"hypocricy",-3),s(n,"hypocrisy",-3),s(n,"hypocrite",-3),s(n,"hypocrites",-3),s(n,"hypocritical",-3),s(n,"hypocritically",-3),s(n,"hysteria",-2),s(n,"hysteric",-2),s(n,"hysterical",-2),s(n,"hysterically",-2),s(n,"hysterics",-2),s(n,"idiocies",-1),s(n,"idiocy",-1),s(n,"idiot",-3),s(n,"idiotic",-3),s(n,"idiotically",-3),s(n,"idiots",-3),s(n,"idle",-1),s(n,"ignoble",-1),s(n,"ignominious",-3),s(n,"ignominiously",-3),s(n,"ignominy",-3),s(n,"ignorance",-5),s(n,"ignorant",-5),s(n,"ignore",-5),s(n,"ill-advised",-2),s(n,"ill-conceived",-2),s(n,"ill-defined",-2),s(n,"ill-designed",-2),s(n,"ill-fated",-2),s(n,"ill-favored",-2),s(n,"ill-formed",-2),s(n,"ill-mannered",-2),s(n,"ill-natured",-2),s(n,"ill-sorted",-2),s(n,"ill-tempered",-2),s(n,"ill-treated",-2),s(n,"ill-treatment",-2),s(n,"ill-usage",-2),s(n,"ill-used",-2),s(n,"illegal",-4),s(n,"illegally",-4),s(n,"illegitimate",-1),s(n,"illicit",-1),s(n,"illiterate",-1),s(n,"illness",-1),s(n,"illogic",-1),s(n,"illogical",-1),s(n,"illogically",-1),s(n,"illusion",-1),s(n,"illusions",-1),s(n,"illusory",-1),s(n,"imaginary",-1),s(n,"imbalance",-1),s(n,"imbecile",-1),s(n,"imbroglio",-1),s(n,"immaterial",-1),s(n,"immature",-1),s(n,"imminence",-1),s(n,"imminently",-1),s(n,"immobilized",-1),s(n,"immoderate",-1),s(n,"immoderately",-1),s(n,"immodest",-1),s(n,"immoral",-1),s(n,"immorality",-1),s(n,"immorally",-1),s(n,"immovable",-1),s(n,"impair",-3),s(n,"impaired",-1),s(n,"impasse",-1),s(n,"impatience",-2),s(n,"impatient",-1),s(n,"impatiently",-1),s(n,"impeach",-1),s(n,"impedance",-1),s(n,"impede",-1),s(n,"impediment",-1),s(n,"impending",-1),s(n,"impenitent",-1),s(n,"imperfect",-1),s(n,"imperfection",-1),s(n,"imperfections",-1),s(n,"imperfectly",-3),s(n,"imperialist",-2),s(n,"imperil",-2),s(n,"imperious",-1),s(n,"imperiously",-1),s(n,"impermissible",-1),s(n,"impersonal",-1),s(n,"impertinent",-1),s(n,"impetuous",-1),s(n,"impetuously",-1),s(n,"impiety",-1),s(n,"impinge",-1),s(n,"impious",-1),s(n,"implacable",-1),s(n,"implausible",-1),s(n,"implausibly",-1),s(n,"implicate",-1),s(n,"implication",-1),s(n,"implode",-2),s(n,"impolite",-1),s(n,"impolitely",-1),s(n,"impolitic",-1),s(n,"importunate",-1),s(n,"importune",-1),s(n,"impose",-1),s(n,"imposers",-1),s(n,"imposing",-1),s(n,"imposition",-1),s(n,"impossible",-3),s(n,"impossiblity",-3),s(n,"impossibly",-1),s(n,"impotent",-2),s(n,"impoverish",-1),s(n,"impoverished",-1),s(n,"impractical",-1),s(n,"imprecate",-1),s(n,"imprecise",-2),s(n,"imprecisely",-1),s(n,"imprecision",-1),s(n,"imprison",-1),s(n,"imprisonment",-1),s(n,"improbability",-1),s(n,"improbable",-1),s(n,"improbably",-1),s(n,"improper",-1),s(n,"improperly",-1),s(n,"impropriety",-1),s(n,"imprudence",-1),s(n,"imprudent",-1),s(n,"impudence",-1),s(n,"impudent",-1),s(n,"impudently",-1),s(n,"impugn",-1),s(n,"impulsive",-3),s(n,"impulsively",-3),s(n,"impunity",-1),s(n,"impure",-1),s(n,"impurity",-1),s(n,"inability",-1),s(n,"inaccuracies",-1),s(n,"inaccuracy",-1),s(n,"inaccurate",-1),s(n,"inaccurately",-1),s(n,"inaction",-1),s(n,"inactive",-1),s(n,"inadequacy",-1),s(n,"inadequate",-1),s(n,"inadequately",-1),s(n,"inadverent",-1),s(n,"inadverently",-1),s(n,"inadvisable",-1),s(n,"inadvisably",-1),s(n,"inane",-1),s(n,"inanely",-1),s(n,"inappropriate",-1),s(n,"inappropriately",-1),s(n,"inapt",-1),s(n,"inaptitude",-1),s(n,"inarticulate",-1),s(n,"inattentive",-1),s(n,"inaudible",-1),s(n,"incapable",-1),s(n,"incapably",-1),s(n,"incautious",-1),s(n,"incendiary",-1),s(n,"incense",-2),s(n,"incessant",-1),s(n,"incessantly",-1),s(n,"incite",-1),s(n,"incitement",-1),s(n,"incivility",-1),s(n,"inclement",-1),s(n,"incognizant",-1),s(n,"incoherence",-1),s(n,"incoherent",-1),s(n,"incoherently",-1),s(n,"incommensurate",-1),s(n,"incomparable",-1),s(n,"incomparably",-1),s(n,"incompatability",-2),s(n,"incompatibility",-2),s(n,"incompatible",-2),s(n,"incompetence",-2),s(n,"incompetent",-2),s(n,"incompetently",-2),s(n,"incomplete",-3),s(n,"incompliant",-3),s(n,"incomprehensible",-3),s(n,"incomprehension",-3),s(n,"inconceivable",-3),s(n,"inconceivably",-3),s(n,"incongruous",-3),s(n,"incongruously",-3),s(n,"inconsequent",-3),s(n,"inconsequential",-1),s(n,"inconsequentially",-1),s(n,"inconsequently",-1),s(n,"inconsiderate",-1),s(n,"inconsiderately",-1),s(n,"inconsistence",-4),s(n,"inconsistencies",-1),s(n,"inconsistency",-1),s(n,"inconsistent",-4),s(n,"inconsolable",-1),s(n,"inconsolably",-1),s(n,"inconstant",-1),s(n,"inconvenience",-1),s(n,"inconveniently",-1),s(n,"incorrect",-5),s(n,"incorrectly",-1),s(n,"incorrigible",-1),s(n,"incorrigibly",-1),s(n,"incredulous",-1),s(n,"incredulously",-1),s(n,"inculcate",-1),s(n,"indecency",-5),s(n,"indecent",-5),s(n,"indecently",-5),s(n,"indecision",-2),s(n,"indecisive",-2),s(n,"indecisively",-1),s(n,"indecorum",-1),s(n,"indefensible",-1),s(n,"indelicate",-1),s(n,"indeterminable",-1),s(n,"indeterminably",-1),s(n,"indeterminate",-1),s(n,"indifference",-1),s(n,"indifferent",-1),s(n,"indigent",-1),s(n,"indignant",-1),s(n,"indignantly",-1),s(n,"indignation",-1),s(n,"indignity",-1),s(n,"indiscernible",-1),s(n,"indiscreet",-1),s(n,"indiscreetly",-1),s(n,"indiscretion",-1),s(n,"indiscriminate",-2),s(n,"indiscriminately",-2),s(n,"indiscriminating",-2),s(n,"indistinguishable",-2),s(n,"indoctrinate",-1),s(n,"indoctrination",-1),s(n,"indolent",-1),s(n,"indulge",-1),s(n,"ineffective",-1),s(n,"ineffectively",-1),s(n,"ineffectiveness",-1),s(n,"ineffectual",-1),s(n,"ineffectually",-1),s(n,"ineffectualness",-1),s(n,"inefficacious",-1),s(n,"inefficacy",-1),s(n,"inefficiency",-1),s(n,"inefficient",-1),s(n,"inefficiently",-1),s(n,"inelegance",-1),s(n,"inelegant",-1),s(n,"ineligible",-1),s(n,"ineloquent",-1),s(n,"ineloquently",-1),s(n,"inept",-1),s(n,"ineptitude",-1),s(n,"ineptly",-1),s(n,"inequalities",-1),s(n,"inequality",-1),s(n,"inequitable",-1),s(n,"inequitably",-1),s(n,"inequities",-1),s(n,"inescapable",-1),s(n,"inescapably",-1),s(n,"inessential",-1),s(n,"inevitable",-1),s(n,"inevitably",-1),s(n,"inexcusable",-1),s(n,"inexcusably",-1),s(n,"inexorable",-1),s(n,"inexorably",-1),s(n,"inexperience",-1),s(n,"inexperienced",-1),s(n,"inexpert",-1),s(n,"inexpertly",-1),s(n,"inexpiable",-1),s(n,"inexplainable",-1),s(n,"inextricable",-1),s(n,"inextricably",-1),s(n,"infamous",-1),s(n,"infamously",-1),s(n,"infamy",-1),s(n,"infected",-4),s(n,"infection",-1),s(n,"infections",-1),s(n,"inferior",-1),s(n,"inferiority",-1),s(n,"infernal",-1),s(n,"infest",-1),s(n,"infested",-1),s(n,"infidel",-1),s(n,"infidels",-1),s(n,"infiltrator",-1),s(n,"infiltrators",-1),s(n,"infirm",-1),s(n,"inflame",-1),s(n,"inflammation",-1),s(n,"inflammatory",-1),s(n,"inflammed",-1),s(n,"inflated",-1),s(n,"inflationary",-1),s(n,"inflexible",-1),s(n,"inflict",-1),s(n,"infraction",-1),s(n,"infringe",-1),s(n,"infringement",-1),s(n,"infringements",-1),s(n,"infuriate",-2),s(n,"infuriated",-2),s(n,"infuriating",-2),s(n,"infuriatingly",-2),s(n,"inglorious",-2),s(n,"ingrate",-2),s(n,"ingratitude",-2),s(n,"inhibit",-2),s(n,"inhibition",-2),s(n,"inhospitable",-2),s(n,"inhospitality",-2),s(n,"inhuman",-1),s(n,"inhumane",-3),s(n,"inhumanity",-3),s(n,"inimical",-1),s(n,"inimically",-1),s(n,"iniquitous",-1),s(n,"iniquity",-1),s(n,"injudicious",-1),s(n,"injure",-3),s(n,"injurious",-3),s(n,"injury",-3),s(n,"injustice",-3),s(n,"injustices",-1),s(n,"innuendo",-1),s(n,"inoperable",-1),s(n,"inopportune",-1),s(n,"inordinate",-1),s(n,"inordinately",-1),s(n,"insane",-3),s(n,"insanely",-3),s(n,"insanity",-3),s(n,"insatiable",-1),s(n,"insecure",-1),s(n,"insecurity",-1),s(n,"insensible",-2),s(n,"insensitive",-2),s(n,"insensitively",-3),s(n,"insensitivity",-3),s(n,"insidious",-3),s(n,"insidiously",-2),s(n,"insignificance",-3),s(n,"insignificant",-3),s(n,"insignificantly",-3),s(n,"insincere",-4),s(n,"insincerely",-4),s(n,"insincerity",-4),s(n,"insinuate",-2),s(n,"insinuating",-1),s(n,"insinuation",-1),s(n,"insociable",-1),s(n,"insolence",-1),s(n,"insolent",-1),s(n,"insolently",-1),s(n,"insolvent",-1),s(n,"insouciance",-1),s(n,"instability",-1),s(n,"instable",-2),s(n,"instigate",-2),s(n,"instigator",-2),s(n,"instigators",-2),s(n,"insubordinate",-4),s(n,"insubstantial",-4),s(n,"insubstantially",-4),s(n,"insufferable",-2),s(n,"insufferably",-2),s(n,"insufficiency",-2),s(n,"insufficient",-2),s(n,"insufficiently",-2),s(n,"insular",-1),s(n,"insult",-5),s(n,"insulted",-1),s(n,"insulting",-1),s(n,"insultingly",-1),s(n,"insults",-1),s(n,"insupportable",-1),s(n,"insupportably",-1),s(n,"insurmountable",-1),s(n,"insurmountably",-1),s(n,"insurrection",-1),s(n,"intefere",-1),s(n,"inteferes",-1),s(n,"intense",-1),s(n,"interfere",-1),s(n,"interference",-1),s(n,"interferes",-1),s(n,"intermittent",-1),s(n,"interrupt",-1),s(n,"interruption",-1),s(n,"interruptions",-1),s(n,"intimidate",-1),s(n,"intimidating",-1),s(n,"intimidatingly",-1),s(n,"intimidation",-1),s(n,"intolerable",-1),s(n,"intolerablely",-1),s(n,"intolerance",-1),s(n,"intoxicate",-1),s(n,"intractable",-1),s(n,"intransigence",-1),s(n,"intransigent",-1),s(n,"intrude",-4),s(n,"intrusion",-4),s(n,"intrusive",-1),s(n,"inundate",-1),s(n,"inundated",-1),s(n,"invader",-1),s(n,"invalid",-5),s(n,"invalidate",-1),s(n,"invalidity",-1),s(n,"invasive",-1),s(n,"invective",-1),s(n,"inveigle",-1),s(n,"invidious",-1),s(n,"invidiously",-1),s(n,"invidiousness",-1),s(n,"invisible",-4),s(n,"involuntarily",-1),s(n,"involuntary",-1),s(n,"irascible",-1),s(n,"irate",-1),s(n,"irately",-1),s(n,"ire",-1),s(n,"irk",-1),s(n,"irked",-1),s(n,"irking",-1),s(n,"irks",-1),s(n,"irksome",-1),s(n,"irksomely",-1),s(n,"irksomeness",-1),s(n,"irksomenesses",-1),s(n,"ironic",-3),s(n,"ironical",-3),s(n,"ironically",-3),s(n,"ironies",-3),s(n,"irony",-3),s(n,"irragularity",-1),s(n,"irrational",-1),s(n,"irrationalities",-1),s(n,"irrationality",-1),s(n,"irrationally",-1),s(n,"irrationals",-1),s(n,"irreconcilable",-1),s(n,"irrecoverable",-1),s(n,"irrecoverableness",-1),s(n,"irrecoverablenesses",-1),s(n,"irrecoverably",-1),s(n,"irredeemable",-1),s(n,"irredeemably",-1),s(n,"irreformable",-1),s(n,"irregular",-2),s(n,"irregularity",-2),s(n,"irrelevance",-2),s(n,"irrelevant",-2),s(n,"irreparable",-2),s(n,"irreplacible",-2),s(n,"irrepressible",-2),s(n,"irresolute",-2),s(n,"irresolvable",-2),s(n,"irresponsible",-2),s(n,"irresponsibly",-1),s(n,"irretating",-1),s(n,"irretrievable",-1),s(n,"irreversible",-1),s(n,"irritable",-1),s(n,"irritably",-1),s(n,"irritant",-1),s(n,"irritate",-1),s(n,"irritated",-1),s(n,"irritating",-1),s(n,"irritation",-1),s(n,"irritations",-1),s(n,"isolate",-2),s(n,"isolated",-2),s(n,"isolation",-2),s(n,"issue",-2),s(n,"issues",-1),s(n,"itch",-1),s(n,"itching",-3),s(n,"itchy",-1),s(n,"jabber",-1),s(n,"jaded",-1),s(n,"jagged",-1),s(n,"jam",-1),s(n,"jarring",-1),s(n,"jaundiced",-1),s(n,"jealous",-2),s(n,"jealously",-2),s(n,"jealousness",-2),s(n,"jealousy",-2),s(n,"jeer",-1),s(n,"jeering",-1),s(n,"jeeringly",-1),s(n,"jeers",-1),s(n,"jeopardize",-1),s(n,"jeopardy",-1),s(n,"jerk",-1),s(n,"jerky",-1),s(n,"jitter",-1),s(n,"jitters",-1),s(n,"jittery",-1),s(n,"job-killing",-1),s(n,"jobless",-3),s(n,"joke",-1),s(n,"joker",-1),s(n,"jolt",-3),s(n,"judder",-1),s(n,"juddering",-1),s(n,"judders",-1),s(n,"jumpy",-1),s(n,"junk",-3),s(n,"junky",-1),s(n,"junkyard",-1),s(n,"jutter",-1),s(n,"jutters",-1),s(n,"kaput",-1),s(n,"kill",-5),s(n,"killed",-5),s(n,"killer",-4),s(n,"killing",-4),s(n,"killjoy",-4),s(n,"kills",-4),s(n,"knave",-1),s(n,"knife",-1),s(n,"knock",-2),s(n,"knotted",-1),s(n,"kook",-1),s(n,"kooky",-1),s(n,"lack",-3),s(n,"lackadaisical",-1),s(n,"lacked",-1),s(n,"lackey",-1),s(n,"lackeys",-1),s(n,"lacking",-1),s(n,"lackluster",-1),s(n,"lacks",-1),s(n,"laconic",-1),s(n,"lag",-1),s(n,"lagged",-1),s(n,"lagging",-1),s(n,"laggy",-1),s(n,"lags",-1),s(n,"laid-off",-1),s(n,"lambast",-1),s(n,"lambaste",-1),s(n,"lame",-1),s(n,"lame-duck",-1),s(n,"lament",-1),s(n,"lamentable",-1),s(n,"lamentably",-1),s(n,"languid",-1),s(n,"languish",-1),s(n,"languor",-1),s(n,"languorous",-1),s(n,"languorously",-1),s(n,"lanky",-1),s(n,"lapse",-1),s(n,"lapsed",-1),s(n,"lapses",-1),s(n,"lascivious",-1),s(n,"last-ditch",-1),s(n,"latency",-1),s(n,"laughable",-1),s(n,"laughably",-1),s(n,"laughingstock",-1),s(n,"lawbreaker",-1),s(n,"lawbreaking",-1),s(n,"lawless",-1),s(n,"lawlessness",-1),s(n,"layoff",-1),s(n,"layoff-happy",-1),s(n,"lazy",-3),s(n,"leak",-1),s(n,"leakage",-1),s(n,"leakages",-1),s(n,"leaking",-1),s(n,"leaks",-1),s(n,"leaky",-1),s(n,"lech",-1),s(n,"lecher",-1),s(n,"lecherous",-1),s(n,"lechery",-1),s(n,"leech",-1),s(n,"leer",-1),s(n,"leery",-1),s(n,"left-leaning",-1),s(n,"lemon",-1),s(n,"lengthy",-1),s(n,"less-developed",-1),s(n,"lesser-known",-1),s(n,"letch",-1),s(n,"lethal",-1),s(n,"lethargic",-1),s(n,"lethargy",-1),s(n,"lewd",-1),s(n,"lewdly",-1),s(n,"lewdness",-1),s(n,"liability",-1),s(n,"liable",-2),s(n,"liar",-3),s(n,"liars",-4),s(n,"licentious",-1),s(n,"licentiously",-1),s(n,"licentiousness",-1),s(n,"lie",-3),s(n,"lied",-3),s(n,"lier",-3),s(n,"lies",-3),s(n,"life-threatening",-4),s(n,"lifeless",-4),s(n,"limit",-3),s(n,"limitation",-3),s(n,"limitations",-3),s(n,"limited",-3),s(n,"limits",-3),s(n,"limp",-1),s(n,"listless",-1),s(n,"litigious",-1),s(n,"little-known",-1),s(n,"livid",-1),s(n,"lividly",-1),s(n,"loath",-1),s(n,"loathe",-1),s(n,"loathing",-4),s(n,"loathly",-4),s(n,"loathsome",-1),s(n,"loathsomely",-1),s(n,"lone",-1),s(n,"loneliness",-1),s(n,"lonely",-1),s(n,"loner",-1),s(n,"lonesome",-1),s(n,"long-time",-1),s(n,"long-winded",-1),s(n,"longing",-3),s(n,"longingly",-3),s(n,"loophole",-2),s(n,"loopholes",-2),s(n,"loose",-3),s(n,"loot",-1),s(n,"lorn",-1),s(n,"lose",-5),s(n,"loser",-5),s(n,"losers",-5),s(n,"loses",-5),s(n,"losing",-5),s(n,"loss",-5),s(n,"losses",-5),s(n,"lost",-5),s(n,"loud",-2),s(n,"louder",-2),s(n,"lousy",-2),s(n,"loveless",-2),s(n,"lovelorn",-2),s(n,"low-rated",-2),s(n,"lowly",-2),s(n,"ludicrous",-2),s(n,"ludicrously",-2),s(n,"lugubrious",-2),s(n,"lukewarm",-2),s(n,"lull",-2),s(n,"lumpy",-2),s(n,"lunatic",-2),s(n,"lunaticism",-2),s(n,"lurch",-2),s(n,"lure",-1),s(n,"lurid",-1),s(n,"lurk",-1),s(n,"lurking",-1),s(n,"lying",-1),s(n,"macabre",-1),s(n,"mad",-1),s(n,"madden",-1),s(n,"maddening",-1),s(n,"maddeningly",-1),s(n,"madder",-1),s(n,"madly",-3),s(n,"madman",-3),s(n,"madness",-3),s(n,"maladjusted",-3),s(n,"maladjustment",-3),s(n,"malady",-3),s(n,"malaise",-3),s(n,"malcontent",-3),s(n,"malcontented",-1),s(n,"maledict",-1),s(n,"malevolence",-1),s(n,"malevolent",-1),s(n,"malevolently",-1),s(n,"malice",-1),s(n,"malicious",-1),s(n,"maliciously",-1),s(n,"maliciousness",-1),s(n,"malign",-2),s(n,"malignant",-2),s(n,"malodorous",-2),s(n,"maltreatment",-2),s(n,"mangle",-2),s(n,"mangled",-2),s(n,"mangles",-2),s(n,"mangling",-2),s(n,"mania",-3),s(n,"maniac",-3),s(n,"maniacal",-3),s(n,"manic",-3),s(n,"manipulate",-3),s(n,"manipulation",-3),s(n,"manipulative",-3),s(n,"manipulators",-3),s(n,"mar",-1),s(n,"marginal",-1),s(n,"marginally",-1),s(n,"martyrdom",-1),s(n,"martyrdom-seeking",-1),s(n,"mashed",-1),s(n,"massacre",-1),s(n,"massacres",-1),s(n,"matte",-1),s(n,"mawkish",-1),s(n,"mawkishly",-1),s(n,"mawkishness",-1),s(n,"meager",-1),s(n,"meaningless",-4),s(n,"meanness",-2),s(n,"measly",-2),s(n,"meddle",-2),s(n,"meddlesome",-2),s(n,"mediocre",-2),s(n,"mediocrity",-2),s(n,"melancholy",-2),s(n,"melodramatic",-2),s(n,"melodramatically",-1),s(n,"meltdown",-2),s(n,"menace",-2),s(n,"menacing",-2),s(n,"menacingly",-2),s(n,"mendacious",-2),s(n,"mendacity",-2),s(n,"menial",-2),s(n,"merciless",-2),s(n,"mercilessly",-1),s(n,"mess",-1),s(n,"messed",-1),s(n,"messes",-1),s(n,"messing",-1),s(n,"messy",-1),s(n,"midget",-1),s(n,"miff",-1),s(n,"militancy",-1),s(n,"mindless",-1),s(n,"mindlessly",-1),s(n,"mirage",-1),s(n,"mire",-1),s(n,"misalign",-1),s(n,"misaligned",-1),s(n,"misaligns",-1),s(n,"misapprehend",-1),s(n,"misbecome",-1),s(n,"misbecoming",-1),s(n,"misbegotten",-1),s(n,"misbehave",-1),s(n,"misbehavior",-1),s(n,"miscalculate",-1),s(n,"miscalculation",-1),s(n,"miscellaneous",-1),s(n,"mischief",-1),s(n,"mischievous",-1),s(n,"mischievously",-1),s(n,"misconception",-1),s(n,"misconceptions",-3),s(n,"miscreant",-3),s(n,"miscreants",-3),s(n,"misdirection",-3),s(n,"miser",-3),s(n,"miserable",-3),s(n,"miserableness",-3),s(n,"miserably",-3),s(n,"miseries",-2),s(n,"miserly",-2),s(n,"misery",-2),s(n,"misfit",-1),s(n,"misfortune",-5),s(n,"misgiving",-3),s(n,"misgivings",-3),s(n,"misguidance",-3),s(n,"misguide",-3),s(n,"misguided",-3),s(n,"mishandle",-3),s(n,"mishap",-4),s(n,"misinform",-2),s(n,"misinformed",-2),s(n,"misinterpret",-2),s(n,"misjudge",-2),s(n,"misjudgment",-3),s(n,"mislead",-3),s(n,"misleading",-3),s(n,"misleadingly",-3),s(n,"mislike",-4),s(n,"mismanage",-2),s(n,"mispronounce",-2),s(n,"mispronounced",-2),s(n,"mispronounces",-2),s(n,"misread",-3),s(n,"misreading",-3),s(n,"misrepresent",-2),s(n,"misrepresentation",-2),s(n,"miss",-1),s(n,"missed",-1),s(n,"misses",-1),s(n,"misstatement",-1),s(n,"mist",-1),s(n,"mistake",-3),s(n,"mistaken",-3),s(n,"mistakenly",-3),s(n,"mistakes",-3),s(n,"mistified",-1),s(n,"mistress",-1),s(n,"mistrust",-1),s(n,"mistrustful",-1),s(n,"mistrustfully",-1),s(n,"mists",-1),s(n,"misunderstand",-2),s(n,"misunderstanding",-2),s(n,"misunderstandings",-2),s(n,"misunderstood",-2),s(n,"misuse",-3),s(n,"moan",-1),s(n,"mobster",-1),s(n,"mock",-3),s(n,"mocked",-3),s(n,"mockeries",-1),s(n,"mockery",-1),s(n,"mocking",-1),s(n,"mockingly",-1),s(n,"mocks",-1),s(n,"molest",-5),s(n,"molestation",-5),s(n,"monotonous",-2),s(n,"monotony",-2),s(n,"monster",-5),s(n,"monstrosities",-2),s(n,"monstrosity",-2),s(n,"monstrous",-3),s(n,"monstrously",-3),s(n,"moody",-4),s(n,"moot",-1),s(n,"mope",-1),s(n,"morbid",-3),s(n,"morbidly",-3),s(n,"mordant",-2),s(n,"mordantly",-1),s(n,"moribund",-1),s(n,"moron",-4),s(n,"moronic",-4),s(n,"morons",-4),s(n,"mortification",-1),s(n,"mortified",-1),s(n,"mortify",-3),s(n,"mortifying",-1),s(n,"motionless",-1),s(n,"motley",-1),s(n,"mourn",-4),s(n,"mourner",-3),s(n,"mournful",-3),s(n,"mournfully",-3),s(n,"muddle",-1),s(n,"muddy",-1),s(n,"mudslinger",-1),s(n,"mudslinging",-1),s(n,"mulish",-1),s(n,"multi-polarization",-1),s(n,"mundane",-1),s(n,"murder",-3),s(n,"murderer",-1),s(n,"murderous",-1),s(n,"murderously",-1),s(n,"murky",-1),s(n,"muscle-flexing",-1),s(n,"mushy",-1),s(n,"musty",-1),s(n,"mysterious",-3),s(n,"mysteriously",-3),s(n,"mystery",-3),s(n,"mystify",-3),s(n,"myth",-2),s(n,"nag",-1),s(n,"nagging",-2),s(n,"naive",-5),s(n,"naively",-5),s(n,"narrower",-1),s(n,"nastily",-1),s(n,"nastiness",-1),s(n,"nasty",-3),s(n,"naughty",-4),s(n,"nauseate",-1),s(n,"nauseates",-1),s(n,"nauseating",-1),s(n,"nauseatingly",-1),s(n,"naïve",-3),s(n,"nebulous",-1),s(n,"nebulously",-1),s(n,"needless",-1),s(n,"needlessly",-1),s(n,"needy",-3),s(n,"nefarious",-1),s(n,"nefariously",-1),s(n,"negate",-1),s(n,"negation",-1),s(n,"negative",-5),s(n,"negatives",-4),s(n,"negativity",-4),s(n,"neglect",-4),s(n,"neglected",-3),s(n,"negligence",-3),s(n,"negligent",-3),s(n,"nemesis",-2),s(n,"nepotism",-1),s(n,"nervous",-4),s(n,"nervously",-4),s(n,"nervousness",-4),s(n,"nettle",-1),s(n,"nettlesome",-1),s(n,"neurotic",-1),s(n,"neurotically",-1),s(n,"niggle",-1),s(n,"niggles",-1),s(n,"nightmare",-4),s(n,"nightmarish",-4),s(n,"nightmarishly",-3),s(n,"nitpick",-1),s(n,"nitpicking",-1),s(n,"noise",-3),s(n,"noises",-3),s(n,"noisier",-1),s(n,"noisy",-2),s(n,"non-confidence",-1),s(n,"nonexistent",-1),s(n,"nonresponsive",-1),s(n,"nonsense",-4),s(n,"nosey",-3),s(n,"notoriety",-1),s(n,"notorious",-1),s(n,"notoriously",-1),s(n,"noxious",-1),s(n,"nuisance",-1),s(n,"numb",-3),s(n,"obese",-1),s(n,"object",-1),s(n,"objection",-1),s(n,"objectionable",-1),s(n,"objections",-1),s(n,"oblique",-1),s(n,"obliterate",-1),s(n,"obliterated",-1),s(n,"oblivious",-1),s(n,"obnoxious",-1),s(n,"obnoxiously",-1),s(n,"obscene",-5),s(n,"obscenely",-5),s(n,"obscenity",-5),s(n,"obscure",-1),s(n,"obscured",-1),s(n,"obscures",-1),s(n,"obscurity",-1),s(n,"obsess",-4),s(n,"obsessive",-1),s(n,"obsessively",-1),s(n,"obsessiveness",-1),s(n,"obsolete",-1),s(n,"obstacle",-1),s(n,"obstinate",-1),s(n,"obstinately",-1),s(n,"obstruct",-1),s(n,"obstructed",-1),s(n,"obstructing",-1),s(n,"obstruction",-1),s(n,"obstructs",-1),s(n,"obtrusive",-1),s(n,"obtuse",-1),s(n,"occlude",-1),s(n,"occluded",-1),s(n,"occludes",-1),s(n,"occluding",-1),s(n,"odd",-3),s(n,"odder",-3),s(n,"oddest",-1),s(n,"oddities",-1),s(n,"oddity",-1),s(n,"oddly",-2),s(n,"odor",-1),s(n,"offence",-3),s(n,"offend",-3),s(n,"offender",-3),s(n,"offending",-3),s(n,"offenses",-3),s(n,"offensive",-3),s(n,"offensively",-3),s(n,"offensiveness",-1),s(n,"officious",-1),s(n,"ominous",-1),s(n,"ominously",-1),s(n,"omission",-1),s(n,"omit",-1),s(n,"one-sided",-1),s(n,"onerous",-1),s(n,"onerously",-1),s(n,"onslaught",-1),s(n,"opinionated",-1),s(n,"opponent",-1),s(n,"opportunistic",-1),s(n,"oppose",-1),s(n,"opposition",-1),s(n,"oppositions",-1),s(n,"oppress",-1),s(n,"oppression",-5),s(n,"oppressive",-5),s(n,"oppressively",-5),s(n,"oppressiveness",-5),s(n,"oppressors",-5),s(n,"ordeal",-3),s(n,"orphan",-2),s(n,"ostracize",-1),s(n,"outbreak",-1),s(n,"outburst",-3),s(n,"outbursts",-3),s(n,"outcast",-2),s(n,"outcry",-3),s(n,"outlaw",-4),s(n,"outmoded",-2),s(n,"outrage",-5),s(n,"outraged",-5),s(n,"outrageous",-5),s(n,"outrageously",-5),s(n,"outrageousness",-5),s(n,"outrages",-1),s(n,"outsider",-1),s(n,"over-acted",-1),s(n,"over-awe",-1),s(n,"over-balanced",-1),s(n,"over-hyped",-1),s(n,"over-priced",-1),s(n,"over-valuation",-1),s(n,"overact",-2),s(n,"overacted",-2),s(n,"overawe",-1),s(n,"overbalance",-1),s(n,"overbalanced",-1),s(n,"overbearing",-1),s(n,"overbearingly",-1),s(n,"overblown",-1),s(n,"overdo",-1),s(n,"overdone",-1),s(n,"overdue",-1),s(n,"overemphasize",-1),s(n,"overheat",-1),s(n,"overkill",-1),s(n,"overloaded",-1),s(n,"overlook",-1),s(n,"overpaid",-1),s(n,"overpayed",-1),s(n,"overplay",-1),s(n,"overpower",-1),s(n,"overpriced",-1),s(n,"overrated",-1),s(n,"overreach",-1),s(n,"overrun",-3),s(n,"overshadow",-3),s(n,"oversight",-1),s(n,"oversights",-1),s(n,"oversimplification",-1),s(n,"oversimplified",-1),s(n,"oversimplify",-1),s(n,"oversize",-3),s(n,"overstate",-1),s(n,"overstated",-1),s(n,"overstatement",-1),s(n,"overstatements",-1),s(n,"overstates",-1),s(n,"overtaxed",-1),s(n,"overthrow",-1),s(n,"overthrows",-1),s(n,"overturn",-2),s(n,"overweight",-1),s(n,"overwhelm",-1),s(n,"overwhelmed",-1),s(n,"overwhelming",-1),s(n,"overwhelmingly",-1),s(n,"overwhelms",-1),s(n,"overzealous",-1),s(n,"overzealously",-1),s(n,"overzelous",-1),s(n,"pain",-4),s(n,"painful",-4),s(n,"painfull",-4),s(n,"painfully",-4),s(n,"pains",-4),s(n,"pale",-2),s(n,"pales",-2),s(n,"paltry",-1),s(n,"pan",-1),s(n,"pandemonium",-1),s(n,"pander",-1),s(n,"pandering",-1),s(n,"panders",-1),s(n,"panic",-1),s(n,"panick",-3),s(n,"panicked",-3),s(n,"panicking",-3),s(n,"panicky",-1),s(n,"paradoxical",-1),s(n,"paradoxically",-1),s(n,"paralize",-2),s(n,"paralyzed",-2),s(n,"paranoia",-3),s(n,"paranoid",-3),s(n,"parasite",-3),s(n,"pariah",-1),s(n,"parody",-4),s(n,"partiality",-1),s(n,"partisan",-1),s(n,"partisans",-1),s(n,"passe",-1),s(n,"passive",-1),s(n,"passiveness",-1),s(n,"pathetic",-1),s(n,"pathetically",-1),s(n,"patronize",-1),s(n,"paucity",-1),s(n,"pauper",-1),s(n,"paupers",-1),s(n,"payback",-1),s(n,"peculiar",-1),s(n,"peculiarly",-1),s(n,"pedantic",-1),s(n,"peeled",-1),s(n,"peeve",-1),s(n,"peeved",-1),s(n,"peevish",-1),s(n,"peevishly",-1),s(n,"penalize",-3),s(n,"penalty",-3),s(n,"perfidious",-1),s(n,"perfidity",-1),s(n,"perfunctory",-1),s(n,"peril",-1),s(n,"perilous",-1),s(n,"perilously",-1),s(n,"perish",-1),s(n,"pernicious",-1),s(n,"perplex",-1),s(n,"perplexed",-1),s(n,"perplexing",-1),s(n,"perplexity",-1),s(n,"persecute",-1),s(n,"persecution",-1),s(n,"pertinacious",-1),s(n,"pertinaciously",-1),s(n,"pertinacity",-1),s(n,"perturb",-1),s(n,"perturbed",-1),s(n,"pervasive",-2),s(n,"perverse",-2),s(n,"perversely",-1),s(n,"perversion",-1),s(n,"perversity",-1),s(n,"pervert",-1),s(n,"perverted",-1),s(n,"perverts",-1),s(n,"pessimism",-3),s(n,"pessimistic",-3),s(n,"pessimistically",-3),s(n,"pest",-1),s(n,"pestilent",-1),s(n,"petrified",-1),s(n,"petrify",-1),s(n,"pettifog",-1),s(n,"petty",-1),s(n,"phobia",-2),s(n,"phobic",-1),s(n,"phony",-1),s(n,"picket",-1),s(n,"picketed",-1),s(n,"picketing",-1),s(n,"pickets",-1),s(n,"picky",-1),s(n,"pig",-3),s(n,"pigs",-3),s(n,"pillage",-1),s(n,"pillory",-1),s(n,"pimple",-2),s(n,"pinch",-1),s(n,"pique",-1),s(n,"pitiable",-1),s(n,"pitiful",-1),s(n,"pitifully",-1),s(n,"pitiless",-1),s(n,"pitilessly",-1),s(n,"pittance",-1),s(n,"pity",-3),s(n,"plagiarize",-1),s(n,"plague",-1),s(n,"plasticky",-1),s(n,"plaything",-1),s(n,"plea",-1),s(n,"pleas",-1),s(n,"plebeian",-1),s(n,"plight",-1),s(n,"plot",-1),s(n,"plotters",-1),s(n,"ploy",-1),s(n,"plunder",-1),s(n,"plunderer",-1),s(n,"pointless",-1),s(n,"pointlessly",-1),s(n,"poison",-2),s(n,"poisonous",-2),s(n,"poisonously",-2),s(n,"pokey",-1),s(n,"poky",-1),s(n,"polarisation",-3),s(n,"polemize",-1),s(n,"pollute",-2),s(n,"polluter",-2),s(n,"polluters",-2),s(n,"polution",-2),s(n,"pompous",-1),s(n,"poor",-2),s(n,"poorer",-2),s(n,"poorest",-2),s(n,"poorly",-2),s(n,"posturing",-1),s(n,"pout",-1),s(n,"poverty",-4),s(n,"powerless",-4),s(n,"prate",-1),s(n,"pratfall",-1),s(n,"prattle",-1),s(n,"precarious",-1),s(n,"precariously",-1),s(n,"precipitate",-1),s(n,"precipitous",-1),s(n,"predatory",-1),s(n,"predicament",-1),s(n,"prejudge",-2),s(n,"prejudice",-2),s(n,"prejudices",-2),s(n,"prejudicial",-2),s(n,"premeditated",-1),s(n,"preoccupy",-1),s(n,"preposterous",-1),s(n,"preposterously",-1),s(n,"presumptuous",-1),s(n,"presumptuously",-1),s(n,"pretence",-1),s(n,"pretend",-1),s(n,"pretense",-1),s(n,"pretentious",-1),s(n,"pretentiously",-1),s(n,"prevaricate",-1),s(n,"pricey",-1),s(n,"pricier",-1),s(n,"prick",-1),s(n,"prickle",-1),s(n,"prickles",-1),s(n,"prideful",-1),s(n,"prik",-1),s(n,"primitive",-1),s(n,"prison",-1),s(n,"prisoner",-1),s(n,"problem",-3),s(n,"problematic",-3),s(n,"problems",-3),s(n,"procrastinate",-2),s(n,"procrastinates",-2),s(n,"procrastination",-2),s(n,"profane",-1),s(n,"profanity",-1),s(n,"prohibit",-3),s(n,"prohibitive",-3),s(n,"prohibitively",-3),s(n,"propaganda",-1),s(n,"propagandize",-1),s(n,"proprietary",-1),s(n,"prosecute",-1),s(n,"protest",-3),s(n,"protested",-3),s(n,"protesting",-1),s(n,"protests",-1),s(n,"protracted",-1),s(n,"provocation",-1),s(n,"provocative",-1),s(n,"provoke",-1),s(n,"pry",-1),s(n,"pugnacious",-1),s(n,"pugnaciously",-1),s(n,"pugnacity",-1),s(n,"punch",-1),s(n,"punish",-3),s(n,"punishable",-3),s(n,"punitive",-3),s(n,"punk",-2),s(n,"puny",-2),s(n,"puppet",-1),s(n,"puppets",-1),s(n,"puzzled",-1),s(n,"puzzlement",-1),s(n,"puzzling",-1),s(n,"quack",-1),s(n,"qualm",-1),s(n,"qualms",-1),s(n,"quandary",-1),s(n,"quarrel",-3),s(n,"quarrellous",-1),s(n,"quarrellously",-1),s(n,"quarrels",-1),s(n,"quarrelsome",-1),s(n,"quash",-1),s(n,"queer",-1),s(n,"questionable",-1),s(n,"quibble",-1),s(n,"quibbles",-1),s(n,"quitter",-1),s(n,"rabid",-1),s(n,"racism",-1),s(n,"racist",-5),s(n,"racists",-5),s(n,"racy",-2),s(n,"radical",-4),s(n,"radicalization",-5),s(n,"radically",-5),s(n,"radicals",-5),s(n,"rage",-4),s(n,"ragged",-3),s(n,"raging",-3),s(n,"rail",-1),s(n,"raked",-1),s(n,"rampage",-3),s(n,"rampant",-3),s(n,"ramshackle",-1),s(n,"rancor",-1),s(n,"randomly",-2),s(n,"rankle",-1),s(n,"rant",-1),s(n,"ranted",-1),s(n,"ranting",-1),s(n,"rantingly",-1),s(n,"rants",-1),s(n,"rape",-5),s(n,"raped",-5),s(n,"raping",-5),s(n,"rascal",-4),s(n,"rascals",-4),s(n,"rash",-3),s(n,"rattle",-2),s(n,"rattled",-2),s(n,"rattles",-2),s(n,"ravage",-3),s(n,"raving",-2),s(n,"reactionary",-1),s(n,"rebellious",-3),s(n,"rebuff",-1),s(n,"rebuke",-1),s(n,"recalcitrant",-1),s(n,"recant",-1),s(n,"recession",-1),s(n,"recessionary",-1),s(n,"reckless",-4),s(n,"recklessly",-4),s(n,"recklessness",-4),s(n,"recoil",-1),s(n,"recourses",-1),s(n,"redundancy",-1),s(n,"redundant",-1),s(n,"refusal",-1),s(n,"refuse",-4),s(n,"refused",-2),s(n,"refuses",-2),s(n,"refusing",-2),s(n,"refutation",-1),s(n,"refute",-1),s(n,"refuted",-1),s(n,"refutes",-1),s(n,"refuting",-1),s(n,"regress",-1),s(n,"regression",-1),s(n,"regressive",-1),s(n,"regret",-4),s(n,"regreted",-4),s(n,"regretful",-4),s(n,"regretfully",-4),s(n,"regrets",-4),s(n,"regrettable",-4),s(n,"regrettably",-4),s(n,"regretted",-4),s(n,"reject",-5),s(n,"rejected",-5),s(n,"rejecting",-5),s(n,"rejection",-5),s(n,"rejects",-5),s(n,"relapse",-5),s(n,"relentless",-3),s(n,"relentlessly",-3),s(n,"relentlessness",-3),s(n,"reluctance",-2),s(n,"reluctant",-2),s(n,"reluctantly",-2),s(n,"remorse",-4),s(n,"remorseful",-4),s(n,"remorsefully",-4),s(n,"remorseless",-4),s(n,"remorselessly",-4),s(n,"remorselessness",-4),s(n,"renounce",-1),s(n,"renunciation",-1),s(n,"repel",-1),s(n,"repetitive",-3),s(n,"reprehensible",-1),s(n,"reprehensibly",-1),s(n,"reprehension",-1),s(n,"reprehensive",-1),s(n,"repress",-1),s(n,"repression",-1),s(n,"repressive",-1),s(n,"reprimand",-1),s(n,"reproach",-1),s(n,"reproachful",-1),s(n,"reprove",-1),s(n,"reprovingly",-1),s(n,"repudiate",-1),s(n,"repudiation",-1),s(n,"repugn",-1),s(n,"repugnance",-1),s(n,"repugnant",-1),s(n,"repugnantly",-1),s(n,"repulse",-3),s(n,"repulsed",-2),s(n,"repulsing",-2),s(n,"repulsive",-3),s(n,"repulsively",-1),s(n,"repulsiveness",-1),s(n,"resent",-1),s(n,"resentful",-1),s(n,"resentment",-1),s(n,"resignation",-1),s(n,"resigned",-1),s(n,"resistance",-1),s(n,"restless",-3),s(n,"restlessness",-3),s(n,"restrict",-3),s(n,"restricted",-3),s(n,"restriction",-3),s(n,"restrictive",-3),s(n,"resurgent",-1),s(n,"retaliate",-2),s(n,"retaliatory",-2),s(n,"retard",-3),s(n,"retarded",-3),s(n,"retardedness",-3),s(n,"retards",-3),s(n,"reticent",-2),s(n,"retract",-2),s(n,"retreat",-2),s(n,"retreated",-2),s(n,"revenge",-5),s(n,"revengeful",-5),s(n,"revengefully",-5),s(n,"revert",-4),s(n,"revile",-3),s(n,"reviled",-3),s(n,"revoke",-3),s(n,"revolt",-4),s(n,"revolting",-4),s(n,"revoltingly",-4),s(n,"revulsion",-3),s(n,"revulsive",-3),s(n,"rhapsodize",-1),s(n,"rhetoric",-3),s(n,"rhetorical",-3),s(n,"ricer",-2),s(n,"ridicule",-2),s(n,"ridicules",-2),s(n,"ridiculous",-3),s(n,"ridiculously",-2),s(n,"rife",-1),s(n,"rift",-5),s(n,"rifts",-5),s(n,"rigid",-3),s(n,"rigidity",-2),s(n,"rigidness",-2),s(n,"rile",-1),s(n,"riled",-1),s(n,"rip",-4),s(n,"rip-off",-3),s(n,"ripoff",-3),s(n,"ripped",-3),s(n,"risk",-4),s(n,"risks",-4),s(n,"risky",-4),s(n,"rival",-5),s(n,"rivalry",-5),s(n,"roadblocks",-3),s(n,"rocky",-1),s(n,"rogue",-3),s(n,"rollercoaster",-2),s(n,"rot",-2),s(n,"rotten",-2),s(n,"rough",-2),s(n,"rremediable",-1),s(n,"rubbish",-2),s(n,"rude",-4),s(n,"rue",-1),s(n,"ruffian",-1),s(n,"ruffle",-1),s(n,"ruin",-3),s(n,"ruined",-3),s(n,"ruining",-3),s(n,"ruinous",-3),s(n,"ruins",-3),s(n,"rumbling",-2),s(n,"rumor",-2),s(n,"rumors",-2),s(n,"rumours",-2),s(n,"rumple",-1),s(n,"run-down",-2),s(n,"runaway",-2),s(n,"rupture",-4),s(n,"rust",-3),s(n,"rusts",-3),s(n,"rusty",-3),s(n,"rut",-2),s(n,"ruthless",-2),s(n,"ruthlessly",-1),s(n,"ruthlessness",-1),s(n,"ruts",-1),s(n,"sabotage",-3),s(n,"sack",-1),s(n,"sacrificed",-3),s(n,"sad",-4),s(n,"sadden",-4),s(n,"sadly",-4),s(n,"sadness",-4),s(n,"sag",-1),s(n,"sagged",-1),s(n,"sagging",-1),s(n,"saggy",-1),s(n,"sags",-1),s(n,"salacious",-1),s(n,"sanctimonious",-1),s(n,"sap",-1),s(n,"sarcasm",-2),s(n,"sarcastic",-2),s(n,"sarcastically",-2),s(n,"sardonic",-4),s(n,"sardonically",-4),s(n,"sass",-1),s(n,"satirical",-1),s(n,"satirize",-1),s(n,"savage",-3),s(n,"savaged",-3),s(n,"savagery",-4),s(n,"savages",-4),s(n,"scaly",-1),s(n,"scam",-5),s(n,"scams",-5),s(n,"scandal",-5),s(n,"scandalize",-5),s(n,"scandalized",-5),s(n,"scandalous",-5),s(n,"scandalously",-5),s(n,"scandals",-5),s(n,"scandel",-1),s(n,"scandels",-1),s(n,"scant",-1),s(n,"scapegoat",-1),s(n,"scar",-1),s(n,"scarce",-1),s(n,"scarcely",-4),s(n,"scarcity",-4),s(n,"scare",-5),s(n,"scared",-5),s(n,"scarier",-4),s(n,"scariest",-5),s(n,"scarily",-4),s(n,"scarred",-1),s(n,"scars",-1),s(n,"scary",-4),s(n,"scathing",-1),s(n,"scathingly",-1),s(n,"sceptical",-1),s(n,"scoff",-1),s(n,"scoffingly",-1),s(n,"scold",-2),s(n,"scolded",-1),s(n,"scolding",-1),s(n,"scoldingly",-1),s(n,"scorching",-1),s(n,"scorchingly",-1),s(n,"scorn",-1),s(n,"scornful",-1),s(n,"scornfully",-1),s(n,"scoundrel",-1),s(n,"scourge",-1),s(n,"scowl",-1),s(n,"scramble",-1),s(n,"scrambled",-1),s(n,"scrambles",-1),s(n,"scrambling",-1),s(n,"scrap",-3),s(n,"scratch",-3),s(n,"scratched",-1),s(n,"scratches",-1),s(n,"scratchy",-1),s(n,"scream",-1),s(n,"screech",-1),s(n,"screw-up",-1),s(n,"screwed",-1),s(n,"screwed-up",-1),s(n,"screwy",-1),s(n,"scuff",-1),s(n,"scuffs",-1),s(n,"scum",-2),s(n,"scummy",-1),s(n,"second-class",-1),s(n,"second-tier",-1),s(n,"secretive",-1),s(n,"sedentary",-3),s(n,"seedy",-1),s(n,"seethe",-1),s(n,"seething",-1),s(n,"self-coup",-1),s(n,"self-criticism",-1),s(n,"self-defeating",-1),s(n,"self-destructive",-1),s(n,"self-humiliation",-1),s(n,"self-interest",-1),s(n,"self-interested",-1),s(n,"self-serving",-1),s(n,"selfinterested",-1),s(n,"selfish",-4),s(n,"selfishly",-4),s(n,"selfishness",-4),s(n,"semi-retarded",-1),s(n,"senile",-5),s(n,"sensationalize",-1),s(n,"senseless",-3),s(n,"senselessly",-3),s(n,"seriousness",-1),s(n,"sermonize",-1),s(n,"servitude",-1),s(n,"set-up",-1),s(n,"setback",-3),s(n,"setbacks",-3),s(n,"sever",-2),s(n,"severe",-2),s(n,"severity",-2),s(n,"sh*t",-5),s(n,"shabby",-1),s(n,"shadowy",-1),s(n,"shady",-2),s(n,"shake",-2),s(n,"shaky",-2),s(n,"shallow",-2),s(n,"sham",-3),s(n,"shambles",-3),s(n,"shame",-3),s(n,"shameful",-2),s(n,"shamefully",-1),s(n,"shamefulness",-1),s(n,"shameless",-3),s(n,"shamelessly",-3),s(n,"shamelessness",-3),s(n,"shark",-2),s(n,"sharply",-2),s(n,"shatter",-1),s(n,"shemale",-1),s(n,"shimmer",-1),s(n,"shimmy",-1),s(n,"shipwreck",-2),s(n,"shirk",-2),s(n,"shirker",-1),s(n,"shit",-5),s(n,"shiver",-1),s(n,"shock",-3),s(n,"shocked",-3),s(n,"shocking",-3),s(n,"shockingly",-3),s(n,"shoddy",-1),s(n,"short-lived",-1),s(n,"shortage",-3),s(n,"shortchange",-1),s(n,"shortcoming",-1),s(n,"shortcomings",-1),s(n,"shortness",-2),s(n,"shortsighted",-4),s(n,"shortsightedness",-2),s(n,"showdown",-2),s(n,"shrew",-1),s(n,"shriek",-1),s(n,"shrill",-1),s(n,"shrilly",-1),s(n,"shrivel",-1),s(n,"shroud",-1),s(n,"shrouded",-1),s(n,"shrug",-1),s(n,"shun",-1),s(n,"shunned",-1),s(n,"sick",-3),s(n,"sicken",-3),s(n,"sickening",-3),s(n,"sickeningly",-1),s(n,"sickly",-1),s(n,"sickness",-1),s(n,"sidetrack",-1),s(n,"sidetracked",-1),s(n,"siege",-1),s(n,"sillily",-1),s(n,"silly",-1),s(n,"simplistic",-3),s(n,"simplistically",-1),s(n,"sin",-3),s(n,"sinful",-3),s(n,"sinfully",-3),s(n,"sinister",-3),s(n,"sinisterly",-1),s(n,"sink",-2),s(n,"sinking",-1),s(n,"skeletons",-2),s(n,"skeptic",-3),s(n,"skeptical",-3),s(n,"skeptically",-3),s(n,"skepticism",-3),s(n,"sketchy",-4),s(n,"skimpy",-2),s(n,"skinny",-2),s(n,"skittish",-1),s(n,"skittishly",-1),s(n,"skulk",-1),s(n,"slack",-1),s(n,"slander",-3),s(n,"slanderer",-3),s(n,"slanderous",-3),s(n,"slanderously",-3),s(n,"slanders",-1),s(n,"slap",-2),s(n,"slashing",-1),s(n,"slaughter",-5),s(n,"slaughtered",-5),s(n,"slave",-4),s(n,"slaves",-4),s(n,"sleazy",-3),s(n,"slime",-1),s(n,"slog",-1),s(n,"slogged",-1),s(n,"slogging",-1),s(n,"slogs",-1),s(n,"sloooooooooooooow",-1),s(n,"sloooow",-1),s(n,"slooow",-1),s(n,"sloow",-1),s(n,"sloppily",-1),s(n,"sloppy",-1),s(n,"sloth",-1),s(n,"slothful",-1),s(n,"slow",-1),s(n,"slow-moving",-1),s(n,"slowed",-1),s(n,"slower",-1),s(n,"slowest",-1),s(n,"slowly",-1),s(n,"sloww",-1),s(n,"slowww",-1),s(n,"slowwww",-1),s(n,"slug",-1),s(n,"sluggish",-1),s(n,"slump",-1),s(n,"slumping",-1),s(n,"slumpping",-1),s(n,"slur",-1),s(n,"slut",-5),s(n,"sluts",-5),s(n,"sly",-1),s(n,"smack",-2),s(n,"smallish",-2),s(n,"smash",-2),s(n,"smear",-1),s(n,"smell",-1),s(n,"smelled",-1),s(n,"smelling",-1),s(n,"smells",-1),s(n,"smelly",-1),s(n,"smelt",-1),s(n,"smoke",-2),s(n,"smokescreen",-1),s(n,"smolder",-1),s(n,"smoldering",-1),s(n,"smother",-1),s(n,"smoulder",-1),s(n,"smouldering",-1),s(n,"smudge",-1),s(n,"smudged",-1),s(n,"smudges",-1),s(n,"smudging",-1),s(n,"smug",-1),s(n,"smugly",-1),s(n,"smut",-1),s(n,"smuttier",-1),s(n,"smuttiest",-1),s(n,"smutty",-1),s(n,"snag",-1),s(n,"snagged",-1),s(n,"snagging",-1),s(n,"snags",-1),s(n,"snappish",-1),s(n,"snappishly",-1),s(n,"snare",-1),s(n,"snarky",-1),s(n,"snarl",-1),s(n,"sneak",-2),s(n,"sneakily",-2),s(n,"sneaky",-2),s(n,"sneer",-1),s(n,"sneering",-1),s(n,"sneeringly",-1),s(n,"snob",-1),s(n,"snobbish",-1),s(n,"snobby",-1),s(n,"snobish",-1),s(n,"snobs",-1),s(n,"snub",-1),s(n,"so-cal",-1),s(n,"soapy",-1),s(n,"sob",-1),s(n,"sober",-1),s(n,"sobering",-1),s(n,"solemn",-1),s(n,"solicitude",-1),s(n,"somber",-1),s(n,"sore",-1),s(n,"sorely",-1),s(n,"soreness",-1),s(n,"sorrow",-1),s(n,"sorrowful",-1),s(n,"sorrowfully",-1),s(n,"sorry",-1),s(n,"sour",-2),s(n,"sourly",-1),s(n,"spade",-1),s(n,"spank",-3),s(n,"spendy",-1),s(n,"spew",-1),s(n,"spewed",-1),s(n,"spewing",-1),s(n,"spews",-1),s(n,"spilling",-1),s(n,"spinster",-1),s(n,"spiritless",-3),s(n,"spite",-1),s(n,"spiteful",-1),s(n,"spitefully",-1),s(n,"spitefulness",-1),s(n,"splatter",-1),s(n,"split",-2),s(n,"splitting",-1),s(n,"spoil",-2),s(n,"spoilage",-1),s(n,"spoilages",-1),s(n,"spoiled",-1),s(n,"spoilled",-1),s(n,"spoils",-2),s(n,"spook",-1),s(n,"spookier",-1),s(n,"spookiest",-1),s(n,"spookily",-1),s(n,"spooky",-1),s(n,"spoon-fed",-1),s(n,"spoon-feed",-1),s(n,"spoonfed",-2),s(n,"sporadic",-1),s(n,"spotty",-1),s(n,"spurious",-1),s(n,"spurn",-1),s(n,"sputter",-1),s(n,"squabble",-1),s(n,"squabbling",-1),s(n,"squander",-1),s(n,"squash",-1),s(n,"squeak",-1),s(n,"squeaks",-1),s(n,"squeaky",-1),s(n,"squeal",-1),s(n,"squealing",-1),s(n,"squeals",-1),s(n,"squirm",-1),s(n,"stab",-2),s(n,"stagnant",-1),s(n,"stagnate",-1),s(n,"stagnation",-1),s(n,"staid",-1),s(n,"stain",-1),s(n,"stains",-1),s(n,"stale",-1),s(n,"stalemate",-1),s(n,"stall",-1),s(n,"stalls",-1),s(n,"stammer",-1),s(n,"stampede",-1),s(n,"standstill",-1),s(n,"stark",-2),s(n,"starkly",-2),s(n,"startle",-1),s(n,"startling",-1),s(n,"startlingly",-1),s(n,"starvation",-1),s(n,"starve",-2),s(n,"static",-1),s(n,"steal",-3),s(n,"stealing",-3),s(n,"steals",-3),s(n,"steep",-1),s(n,"steeply",-1),s(n,"stench",-1),s(n,"stereotype",-1),s(n,"stereotypical",-1),s(n,"stereotypically",-1),s(n,"stern",-1),s(n,"stew",-1),s(n,"sticky",-2),s(n,"stiff",-1),s(n,"stiffness",-1),s(n,"stifle",-1),s(n,"stifling",-1),s(n,"stiflingly",-1),s(n,"stigma",-1),s(n,"stigmatize",-1),s(n,"sting",-1),s(n,"stinging",-1),s(n,"stingingly",-1),s(n,"stingy",-1),s(n,"stink",-2),s(n,"stinks",-2),s(n,"stodgy",-2),s(n,"stole",-2),s(n,"stolen",-2),s(n,"stooge",-2),s(n,"stooges",-2),s(n,"stormy",-2),s(n,"straggle",-2),s(n,"straggler",-2),s(n,"strain",-2),s(n,"strained",-1),s(n,"straining",-1),s(n,"strange",-3),s(n,"strangely",-3),s(n,"stranger",-1),s(n,"strangest",-1),s(n,"strangle",-1),s(n,"streaky",-1),s(n,"strenuous",-1),s(n,"stress",-3),s(n,"stresses",-1),s(n,"stressful",-1),s(n,"stressfully",-1),s(n,"stricken",-1),s(n,"strict",-3),s(n,"strictly",-3),s(n,"strident",-1),s(n,"stridently",-1),s(n,"strife",-1),s(n,"strike",-1),s(n,"stringent",-1),s(n,"stringently",-1),s(n,"struck",-3),s(n,"struggle",-1),s(n,"struggled",-1),s(n,"struggles",-1),s(n,"struggling",-1),s(n,"strut",-1),s(n,"stubborn",-4),s(n,"stubbornly",-4),s(n,"stubbornness",-4),s(n,"stuck",-3),s(n,"stuffy",-1),s(n,"stumble",-1),s(n,"stumbled",-1),s(n,"stumbles",-1),s(n,"stump",-1),s(n,"stumped",-1),s(n,"stumps",-1),s(n,"stun",-2),s(n,"stunt",-3),s(n,"stunted",-3),s(n,"stupid",-1),s(n,"stupidest",-1),s(n,"stupidity",-1),s(n,"stupidly",-1),s(n,"stupified",-1),s(n,"stupify",-1),s(n,"stupor",-1),s(n,"stutter",-1),s(n,"stuttered",-1),s(n,"stuttering",-1),s(n,"stutters",-1),s(n,"sty",-1),s(n,"stymied",-1),s(n,"sub-par",-3),s(n,"subdued",-1),s(n,"subjected",-1),s(n,"subjection",-1),s(n,"subjugate",-1),s(n,"subjugation",-1),s(n,"submissive",-3),s(n,"subordinate",-1),s(n,"subpoena",-1),s(n,"subpoenas",-1),s(n,"subservience",-1),s(n,"subservient",-1),s(n,"substandard",-1),s(n,"subtract",-3),s(n,"subversion",-1),s(n,"subversive",-1),s(n,"subversively",-1),s(n,"subvert",-1),s(n,"succumb",-2),s(n,"suck",-4),s(n,"sucked",-3),s(n,"sucker",-3),s(n,"sucks",-3),s(n,"sucky",-2),s(n,"sue",-3),s(n,"sued",-3),s(n,"sueing",-3),s(n,"sues",-1),s(n,"suffer",-1),s(n,"suffered",-1),s(n,"sufferer",-1),s(n,"sufferers",-1),s(n,"suffering",-1),s(n,"suffers",-1),s(n,"suffocate",-1),s(n,"sugar-coat",-1),s(n,"sugar-coated",-1),s(n,"sugarcoated",-1),s(n,"suicidal",-5),s(n,"suicide",-5),s(n,"sulk",-4),s(n,"sullen",-1),s(n,"sully",-1),s(n,"sunder",-1),s(n,"sunk",-3),s(n,"sunken",-3),s(n,"superficial",-1),s(n,"superficiality",-1),s(n,"superficially",-1),s(n,"superfluous",-1),s(n,"superstition",-3),s(n,"superstitious",-3),s(n,"suppress",-1),s(n,"suppression",-1),s(n,"surrender",-1),s(n,"susceptible",-1),s(n,"suspect",-2),s(n,"suspicion",-2),s(n,"suspicions",-2),s(n,"suspicious",-1),s(n,"suspiciously",-1),s(n,"swagger",-1),s(n,"swamped",-1),s(n,"sweaty",-2),s(n,"swelled",-1),s(n,"swelling",-1),s(n,"swindle",-1),s(n,"swipe",-3),s(n,"swollen",-1),s(n,"symptom",-1),s(n,"symptoms",-1),s(n,"syndrome",-1),s(n,"taboo",-1),s(n,"tacky",-1),s(n,"taint",-1),s(n,"tainted",-1),s(n,"tamper",-1),s(n,"tangle",-1),s(n,"tangled",-1),s(n,"tangles",-1),s(n,"tank",-1),s(n,"tanked",-1),s(n,"tanks",-1),s(n,"tantrum",-1),s(n,"tardy",-1),s(n,"tarnish",-2),s(n,"tarnished",-1),s(n,"tarnishes",-1),s(n,"tarnishing",-1),s(n,"tattered",-1),s(n,"taunt",-1),s(n,"taunting",-1),s(n,"tauntingly",-1),s(n,"taunts",-3),s(n,"taut",-1),s(n,"tawdry",-1),s(n,"taxing",-1),s(n,"tease",-1),s(n,"teasingly",-1),s(n,"tedious",-1),s(n,"tediously",-1),s(n,"temerity",-1),s(n,"temper",-3),s(n,"tempest",-2),s(n,"temptation",-1),s(n,"tenderness",-1),s(n,"tense",-1),s(n,"tension",-1),s(n,"tentative",-1),s(n,"tentatively",-1),s(n,"tenuous",-1),s(n,"tenuously",-1),s(n,"tepid",-1),s(n,"terrible",-5),s(n,"terribleness",-5),s(n,"terribly",-4),s(n,"terror",-4),s(n,"terror-genic",-1),s(n,"terrorism",-5),s(n,"terrorize",-5),s(n,"testily",-1),s(n,"testy",-1),s(n,"tetchily",-1),s(n,"tetchy",-1),s(n,"thankless",-2),s(n,"thicker",-1),s(n,"thirst",-1),s(n,"thorny",-4),s(n,"thoughtless",-3),s(n,"thoughtlessly",-3),s(n,"thoughtlessness",-3),s(n,"thrash",-4),s(n,"threat",-4),s(n,"threaten",-4),s(n,"threatening",-4),s(n,"threats",-4),s(n,"threesome",-3),s(n,"throb",-2),s(n,"throbbed",-2),s(n,"throbbing",-2),s(n,"throbs",-2),s(n,"throttle",-1),s(n,"thug",-4),s(n,"thumb-down",-3),s(n,"thumbs-down",-3),s(n,"thwart",-2),s(n,"time-consuming",-1),s(n,"timid",-3),s(n,"timidity",-3),s(n,"timidly",-3),s(n,"timidness",-3),s(n,"tin-y",-1),s(n,"tingled",-1),s(n,"tingling",-1),s(n,"tired",-2),s(n,"tiresome",-2),s(n,"tiring",-1),s(n,"tiringly",-1),s(n,"toil",-1),s(n,"toll",-1),s(n,"top-heavy",-2),s(n,"topple",-1),s(n,"torment",-5),s(n,"tormented",-5),s(n,"torrent",-2),s(n,"tortuous",-1),s(n,"torture",-4),s(n,"tortured",-4),s(n,"tortures",-4),s(n,"torturing",-4),s(n,"torturous",-4),s(n,"torturously",-4),s(n,"totalitarian",-2),s(n,"touchy",-1),s(n,"toughness",-1),s(n,"tout",-1),s(n,"touted",-1),s(n,"touts",-1),s(n,"toxic",-4),s(n,"traduce",-1),s(n,"tragedy",-5),s(n,"tragic",-5),s(n,"tragically",-5),s(n,"traitor",-4),s(n,"traitorous",-1),s(n,"traitorously",-1),s(n,"tramp",-1),s(n,"trample",-1),s(n,"transgress",-2),s(n,"transgression",-2),s(n,"trap",-4),s(n,"traped",-4),s(n,"trapped",-4),s(n,"trash",-1),s(n,"trashed",-1),s(n,"trashy",-1),s(n,"trauma",-2),s(n,"traumatic",-2),s(n,"traumatically",-1),s(n,"traumatize",-1),s(n,"traumatized",-1),s(n,"travesties",-1),s(n,"travesty",-1),s(n,"treacherous",-1),s(n,"treacherously",-1),s(n,"treachery",-1),s(n,"treason",-1),s(n,"treasonous",-1),s(n,"trick",-1),s(n,"tricked",-1),s(n,"trickery",-1),s(n,"tricky",-1),s(n,"trivial",-1),s(n,"trivialize",-1),s(n,"trouble",-2),s(n,"troubled",-2),s(n,"troublemaker",-1),s(n,"troubles",-1),s(n,"troublesome",-1),s(n,"troublesomely",-1),s(n,"troubling",-1),s(n,"troublingly",-1),s(n,"truant",-1),s(n,"tumble",-1),s(n,"tumbled",-1),s(n,"tumbles",-1),s(n,"tumultuous",-1),s(n,"turbulent",-1),s(n,"turmoil",-1),s(n,"twist",-1),s(n,"twisted",-1),s(n,"twists",-1),s(n,"two-faced",-1),s(n,"two-faces",-1),s(n,"tyrannical",-4),s(n,"tyrannically",-4),s(n,"tyranny",-4),s(n,"tyrant",-4),s(n,"ugh",-1),s(n,"uglier",-4),s(n,"ugliest",-5),s(n,"ugliness",-4),s(n,"ugly",-3),s(n,"ulterior",-3),s(n,"ultimatum",-3),s(n,"ultimatums",-3),s(n,"ultra-hardline",-1),s(n,"un-viewable",-1),s(n,"unable",-1),s(n,"unacceptable",-2),s(n,"unacceptablely",-2),s(n,"unacceptably",-2),s(n,"unaccessible",-2),s(n,"unaccustomed",-2),s(n,"unachievable",-2),s(n,"unaffordable",-2),s(n,"unappealing",-4),s(n,"unattractive",-3),s(n,"unauthentic",-3),s(n,"unavailable",-3),s(n,"unavoidably",-3),s(n,"unbearable",-3),s(n,"unbearablely",-3),s(n,"unbelievable",-3),s(n,"unbelievably",-3),s(n,"uncaring",-3),s(n,"uncertain",-1),s(n,"uncivil",-1),s(n,"uncivilized",-1),s(n,"unclean",-2),s(n,"unclear",-2),s(n,"uncollectible",-2),s(n,"uncomfortable",-2),s(n,"uncomfortably",-2),s(n,"uncomfy",-2),s(n,"uncompetitive",-2),s(n,"uncompromising",-1),s(n,"uncompromisingly",-1),s(n,"unconfirmed",-1),s(n,"unconstitutional",-1),s(n,"uncontrolled",-2),s(n,"unconvincing",-2),s(n,"unconvincingly",-2),s(n,"uncooperative",-2),s(n,"uncouth",-1),s(n,"uncreative",-1),s(n,"undecided",-1),s(n,"undefined",-3),s(n,"undependability",-1),s(n,"undependable",-1),s(n,"undercut",-2),s(n,"undercuts",-1),s(n,"undercutting",-1),s(n,"underdog",-1),s(n,"underestimate",-1),s(n,"underlings",-1),s(n,"undermine",-3),s(n,"undermined",-3),s(n,"undermines",-3),s(n,"undermining",-3),s(n,"underpaid",-3),s(n,"underpowered",-2),s(n,"undersized",-2),s(n,"undesirable",-3),s(n,"undetermined",-1),s(n,"undid",-1),s(n,"undignified",-1),s(n,"undissolved",-1),s(n,"undocumented",-1),s(n,"undone",-1),s(n,"undue",-1),s(n,"unease",-1),s(n,"uneasily",-1),s(n,"uneasiness",-1),s(n,"uneasy",-1),s(n,"uneconomical",-2),s(n,"unemployed",-3),s(n,"unequal",-1),s(n,"unethical",-3),s(n,"uneven",-1),s(n,"uneventful",-1),s(n,"unexpected",-1),s(n,"unexpectedly",-1),s(n,"unexplained",-1),s(n,"unfairly",-1),s(n,"unfaithful",-1),s(n,"unfaithfully",-1),s(n,"unfamiliar",-1),s(n,"unfavorable",-1),s(n,"unfeeling",-1),s(n,"unfinished",-1),s(n,"unfit",-2),s(n,"unforeseen",-3),s(n,"unforgiving",-1),s(n,"unfortunate",-5),s(n,"unfortunately",-5),s(n,"unfounded",-1),s(n,"unfriendly",-2),s(n,"unfulfilled",-1),s(n,"unfunded",-1),s(n,"ungovernable",-1),s(n,"ungrateful",-1),s(n,"unhappily",-4),s(n,"unhappiness",-4),s(n,"unhappy",-4),s(n,"unhealthy",-4),s(n,"unhelpful",-3),s(n,"unilateralism",-1),s(n,"unimaginable",-1),s(n,"unimaginably",-1),s(n,"unimportant",-1),s(n,"uninformed",-1),s(n,"uninsured",-1),s(n,"unintelligible",-1),s(n,"unintelligile",-1),s(n,"unipolar",-1),s(n,"unjust",-1),s(n,"unjustifiable",-1),s(n,"unjustifiably",-1),s(n,"unjustified",-1),s(n,"unjustly",-1),s(n,"unkind",-1),s(n,"unkindly",-1),s(n,"unknown",-1),s(n,"unlamentable",-1),s(n,"unlamentably",-1),s(n,"unlawful",-2),s(n,"unlawfully",-2),s(n,"unlawfulness",-2),s(n,"unleash",-1),s(n,"unlicensed",-1),s(n,"unlikely",-1),s(n,"unlucky",-1),s(n,"unmoved",-3),s(n,"unnatural",-2),s(n,"unnaturally",-2),s(n,"unnecessary",-4),s(n,"unneeded",-1),s(n,"unnerve",-1),s(n,"unnerved",-1),s(n,"unnerving",-1),s(n,"unnervingly",-1),s(n,"unnoticed",-2),s(n,"unobserved",-3),s(n,"unorthodox",-3),s(n,"unorthodoxy",-3),s(n,"unpleasant",-1),s(n,"unpleasantries",-2),s(n,"unpopular",-2),s(n,"unpredictable",-1),s(n,"unprepared",-1),s(n,"unproductive",-1),s(n,"unprofitable",-1),s(n,"unprove",-1),s(n,"unproved",-1),s(n,"unproven",-1),s(n,"unproves",-1),s(n,"unproving",-1),s(n,"unqualified",-1),s(n,"unravel",-1),s(n,"unraveled",-1),s(n,"unreachable",-1),s(n,"unreadable",-1),s(n,"unrealistic",-1),s(n,"unreasonable",-1),s(n,"unreasonably",-1),s(n,"unrelenting",-2),s(n,"unrelentingly",-2),s(n,"unreliability",-2),s(n,"unreliable",-2),s(n,"unresolved",-2),s(n,"unresponsive",-3),s(n,"unrest",-3),s(n,"unruly",-1),s(n,"unsafe",-1),s(n,"unsatisfactory",-1),s(n,"unsavory",-1),s(n,"unscrupulous",-1),s(n,"unscrupulously",-1),s(n,"unsecure",-2),s(n,"unseemly",-1),s(n,"unsettle",-3),s(n,"unsettled",-3),s(n,"unsettling",-3),s(n,"unsettlingly",-1),s(n,"unskilled",-4),s(n,"unsophisticated",-1),s(n,"unsound",-1),s(n,"unspeakable",-1),s(n,"unspeakablely",-1),s(n,"unspecified",-1),s(n,"unstable",-1),s(n,"unsteadily",-1),s(n,"unsteadiness",-1),s(n,"unsteady",-1),s(n,"unsuccessful",-1),s(n,"unsuccessfully",-1),s(n,"unsupported",-1),s(n,"unsupportive",-1),s(n,"unsure",-1),s(n,"unsuspecting",-1),s(n,"unsustainable",-1),s(n,"untenable",-1),s(n,"untested",-1),s(n,"unthinkable",-1),s(n,"unthinkably",-1),s(n,"untimely",-1),s(n,"untouched",-1),s(n,"untrue",-1),s(n,"untrustworthy",-1),s(n,"untruthful",-1),s(n,"unusable",-1),s(n,"unusably",-1),s(n,"unuseable",-1),s(n,"unuseably",-1),s(n,"unusual",-1),s(n,"unusually",-1),s(n,"unviewable",-1),s(n,"unwanted",-1),s(n,"unwarranted",-1),s(n,"unwatchable",-1),s(n,"unwelcome",-1),s(n,"unwell",-1),s(n,"unwieldy",-1),s(n,"unwilling",-1),s(n,"unwillingly",-1),s(n,"unwillingness",-1),s(n,"unwise",-1),s(n,"unwisely",-1),s(n,"unworkable",-1),s(n,"unworthy",-1),s(n,"unyielding",-1),s(n,"upbraid",-1),s(n,"upheaval",-1),s(n,"uprising",-1),s(n,"uproar",-3),s(n,"uproarious",-1),s(n,"uproariously",-1),s(n,"uproarous",-1),s(n,"uproarously",-1),s(n,"uproot",-2),s(n,"upset",-1),s(n,"upseting",-1),s(n,"upsets",-1),s(n,"upsetting",-1),s(n,"upsettingly",-1),s(n,"urgent",-1),s(n,"useless",-2),s(n,"usurp",-1),s(n,"usurper",-1),s(n,"utterly",-1),s(n,"vagrant",-1),s(n,"vague",-2),s(n,"vagueness",-1),s(n,"vain",-1),s(n,"vainly",-1),s(n,"vanity",-1),s(n,"vehement",-1),s(n,"vehemently",-1),s(n,"vengeance",-4),s(n,"vengeful",-4),s(n,"vengefully",-4),s(n,"vengefulness",-4),s(n,"venom",-3),s(n,"venomous",-3),s(n,"venomously",-3),s(n,"vent",-3),s(n,"vestiges",-1),s(n,"vex",-1),s(n,"vexation",-1),s(n,"vexing",-1),s(n,"vexingly",-1),s(n,"vibrate",-1),s(n,"vibrated",-1),s(n,"vibrates",-1),s(n,"vibrating",-1),s(n,"vibration",-1),s(n,"vice",-1),s(n,"vicious",-1),s(n,"viciously",-1),s(n,"viciousness",-1),s(n,"victimize",-1),s(n,"vile",-1),s(n,"vileness",-1),s(n,"vilify",-1),s(n,"villainous",-1),s(n,"villainously",-1),s(n,"villains",-1),s(n,"villian",-1),s(n,"villianous",-1),s(n,"villianously",-1),s(n,"villify",-1),s(n,"vindictive",-1),s(n,"vindictively",-1),s(n,"vindictiveness",-1),s(n,"violate",-1),s(n,"violation",-1),s(n,"violator",-1),s(n,"violators",-1),s(n,"violent",-1),s(n,"violently",-1),s(n,"viper",-1),s(n,"virulence",-1),s(n,"virulent",-1),s(n,"virulently",-1),s(n,"virus",-3),s(n,"vociferous",-1),s(n,"vociferously",-1),s(n,"volatile",-1),s(n,"volatility",-1),s(n,"vomit",-1),s(n,"vomited",-1),s(n,"vomiting",-1),s(n,"vomits",-1),s(n,"vulgar",-1),s(n,"vulnerable",-1),s(n,"wack",-1),s(n,"wail",-1),s(n,"wallow",-1),s(n,"wane",-1),s(n,"waning",-1),s(n,"wanton",-1),s(n,"war-like",-3),s(n,"warily",-3),s(n,"wariness",-3),s(n,"warlike",-3),s(n,"warned",-2),s(n,"warning",-2),s(n,"warp",-1),s(n,"warped",-1),s(n,"wary",-1),s(n,"washed-out",-1),s(n,"waste",-1),s(n,"wasted",-1),s(n,"wasteful",-1),s(n,"wastefulness",-1),s(n,"wasting",-1),s(n,"water-down",-1),s(n,"watered-down",-1),s(n,"wayward",-1),s(n,"weak",-4),s(n,"weaken",-4),s(n,"weakening",-3),s(n,"weaker",-3),s(n,"weakness",-3),s(n,"weaknesses",-3),s(n,"weariness",-1),s(n,"wearisome",-1),s(n,"weary",-1),s(n,"wedge",-1),s(n,"weed",-1),s(n,"weep",-1),s(n,"weird",-1),s(n,"weirdly",-1),s(n,"wheedle",-1),s(n,"whimper",-1),s(n,"whine",-3),s(n,"whining",-1),s(n,"whiny",-1),s(n,"whips",-1),s(n,"whore",-1),s(n,"whores",-1),s(n,"wicked",-1),s(n,"wickedly",-1),s(n,"wickedness",-1),s(n,"wild",-1),s(n,"wildly",-1),s(n,"wiles",-1),s(n,"wilt",-1),s(n,"wily",-1),s(n,"wimpy",-1),s(n,"wince",-1),s(n,"wobble",-1),s(n,"wobbled",-1),s(n,"wobbles",-1),s(n,"woe",-1),s(n,"woebegone",-1),s(n,"woeful",-1),s(n,"woefully",-1),s(n,"womanizer",-1),s(n,"womanizing",-1),s(n,"worn",-1),s(n,"worried",-1),s(n,"worriedly",-1),s(n,"worrier",-1),s(n,"worries",-1),s(n,"worrisome",-1),s(n,"worry",-1),s(n,"worrying",-1),s(n,"worryingly",-1),s(n,"worse",-5),s(n,"worsen",-5),s(n,"worsening",-5),s(n,"worst",-5),s(n,"worthless",-3),s(n,"worthlessly",-3),s(n,"worthlessness",-3),s(n,"wound",-3),s(n,"wounds",-3),s(n,"wrangle",-2),s(n,"wrath",-3),s(n,"wreak",-3),s(n,"wreaked",-3),s(n,"wreaks",-3),s(n,"wreck",-3),s(n,"wrest",-2),s(n,"wrestle",-2),s(n,"wretch",-3),s(n,"wretched",-3),s(n,"wretchedly",-2),s(n,"wretchedness",-2),s(n,"wrinkle",-3),s(n,"wrinkled",-3),s(n,"wrinkles",-3),s(n,"wrip",-1),s(n,"wripped",-1),s(n,"wripping",-1),s(n,"writhe",-1),s(n,"wrong",-3),s(n,"wrongful",-3),s(n,"wrongly",-3),s(n,"wrought",-3),s(n,"yawn",-2),s(n,"zap",-2),s(n,"zapped",-2),s(n,"zaps",-1),s(n,"zealot",-3),s(n,"zealous",-3),s(n,"zealously",-3),s(n,"zombie",-4),n)},o=0!==i.analyze(e.getLower("title"),r).score;return this.announce(o,o?this.getScore("titleSentiment"):0)}},{key:"isApplicable",value:function(){return"en"===rankMath.locale}}]),t}();t.default=l},function(e,t,n){var i,r,u,o;i=n(327),r=n(328),u=n(329),(o=function(e){this.options=e}).prototype.registerLanguage=function(e,t){u.addLanguage(e,t)},o.prototype.analyze=function(e,t,n){void 0===e&&(e=""),"function"==typeof t&&(n=t,t={});var o=(t=t||{}).language||"en",s=u.getLabels(o);"object"==typeof t.extras&&(s=Object.assign(s,t.extras));for(var a=r(e),l=0,c=[],d=[],f=[],p=a.length;p--;){var g=a[p];if(s.hasOwnProperty(g)){c.push(g);var h=s[g];(h=u.applyScoringStrategy(o,a,p,h))>0&&d.push(g),0>h&&f.push(g),l+=h}}var y={score:l,comparative:a.length>0?l/a.length:0,tokens:a,words:c,positive:d,negative:f};if("function"!=typeof n)return y;i.nextTick(function(){n(null,y)})},e.exports=o},function(e,t){var n,i,r=e.exports={};function u(){throw Error("setTimeout has not been defined")}function o(){throw Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===u||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:u}catch(e){n=u}try{i="function"==typeof clearTimeout?clearTimeout:o}catch(e){i=o}}();var a,l=[],c=!1,d=-1;function f(){c&&a&&(c=!1,a.length?l=a.concat(l):d=-1,l.length&&p())}function p(){if(!c){var e=s(f);c=!0;for(var t=l.length;t;){for(a=l,l=[];++d<t;)a&&a[d].run();d=-1,t=l.length}a=null,c=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===o||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function h(){}r.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;arguments.length>n;n++)t[n-1]=arguments[n];l.push(new g(e,t)),1!==l.length||c||s(p)},g.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=h,r.addListener=h,r.once=h,r.off=h,r.removeListener=h,r.removeAllListeners=h,r.emit=h,r.prependListener=h,r.prependOnceListener=h,r.listeners=function(e){return[]},r.binding=function(e){throw Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t){e.exports=function(e){return e.toLowerCase().replace(/\n/g," ").replace(/[.,\/#!$%\^&\*;:{}=_`\"~()]/g,"").split(" ")}},function(e,t,n){var i=n(330),r=n(245);Object.assign(r.labels,i);var u={en:r};e.exports={addLanguage:function(e,t){if(!t.labels)throw Error("language.labels must be defined!");Object.assign(t.labels,i),u[e]=t},getLanguage:function(e){if(!e)return u.en;if(!u[e])try{var t=n(334)("./"+e+"/index");this.addLanguage(e,t)}catch(t){throw Error("No language found: "+e)}return u[e]},getLabels:function(e){return this.getLanguage(e).labels},applyScoringStrategy:function(e,t,n,i){return(this.getLanguage(e).scoringStrategy||o).apply(t,n,i)}};var o={apply:function(e,t,n){return n}}},function(e){e.exports={"😂":1,"❤":3,"♥":3,"😍":3,"😭":-1,"😘":3,"😊":3,"👌":2,"💕":3,"👏":2,"😁":2,"☺":3,"♡":3,"👍":2,"😩":-2,"🙏":2,"✌":2,"😏":1,"😉":2,"🙌":2,"🙈":2,"💪":2,"😄":2,"😒":-2,"💃":3,"💖":3,"😃":2,"😔":-1,"🎉":3,"😜":2,"🌸":3,"💜":3,"💙":3,"✨":1,"💗":3,"★":1,"█":-1,"☀":2,"😡":-1,"😎":2,"💋":3,"😋":3,"🙊":2,"😴":-1,"🎶":2,"💞":3,"😌":2,"🔫":-1,"💛":3,"💁":1,"💚":3,"♫":1,"😞":-1,"😆":2,"😝":2,"😪":-1,"😫":-1,"👊":1,"💀":-2,"😀":2,"😚":3,"😻":3,"💘":3,"☕":1,"👋":2,"🎊":3,"🍕":2,"❄":2,"😕":-2,"💔":-1,"😤":-2,"😈":1,"✈":2,"🔝":2,"😰":-1,"⚽":3,"😑":-2,"👑":3,"👉":1,"🍃":1,"🎁":3,"😠":-2,"🐧":2,"☆":2,"🍀":1,"🎈":3,"🎅":1,"😓":-1,"😣":-2,"😐":-2,"✊":2,"😨":-1,"😖":-1,"💤":1,"💓":3,"👎":-1,"💦":2,"✔":1,"😷":-1,"🙋":2,"🎄":2,"💩":-1,"🎵":2,"😛":3,"👯":2,"💎":2,"🌿":1,"🎂":3,"🌟":1,"🔮":1,"👫":1,"🏆":3,"✖":1,"☝":1,"😙":3,"⛄":2,"👅":2,"♪":2,"🍂":2,"💏":1,"🌴":2,"👈":2,"🌹":3,"🙆":2,"👻":1,"💰":1,"🍻":2,"🙅":-2,"🌞":2,"🍁":2,"⭐":2,"▪":1,"🎀":3,"🐷":1,"🙉":1,"🌺":2,"💅":1,"🐶":2,"🌚":2,"👽":1,"🎤":2,"👭":2,"🎧":2,"👆":1,"🍸":2,"🍷":2,"®":1,"🍉":3,"😇":3,"🏃":2,"😿":-2,"│":1,"🍺":2,"▶":1,"😲":-1,"🎸":2,"🍹":3,"💫":2,"📚":1,"😶":-1,"🌷":2,"💝":3,"💨":1,"🏈":2,"💍":2,"☔":1,"👸":3,"🇪":3,"░":-1,"🍩":1,"👾":1,"☁":1,"🌻":2,"↿":3,"🐯":2,"👼":1,"🍔":1,"😸":2,"👶":2,"↾":3,"💐":3,"🌊":2,"🍦":2,"🍓":3,"👇":1,"💆":1,"🍴":2,"😧":-1,"🇸":2,"😮":1,"🚫":-3,"😽":2,"🌈":2,"🙀":1,"⚠":-1,"🎮":2,"╯":-1,"🍆":2,"🍰":2,"✓":1,"👐":-1,"🍟":1,"🍌":2,"💑":3,"👬":-1,"🐣":2,"🎃":3,"▬":2,"":-3,"🐾":3,"🎓":2,"🏊":2,"📷":2,"👄":2,"🌼":4,"🚶":-1,"🐱":2,"🐸":-1,"🇺":2,"👿":-3,"🚬":2,"✿":1,"🐒":2,"🌍":3,"┊":5,"🐥":3,"🐼":1,"🎥":1,"💄":2,"⛔":2,"🏀":1,"💉":1,"💟":3,"🚗":1,"📝":1,"♦":2,"💭":1,"🌙":3,"🐟":3,"👣":1,"✂":-3,"🗿":2,"👪":-1,"🍭":1,"🌃":2,"❌":1,"🐰":3,"💊":2,"🚨":3,"😦":-2,"🍪":1,"🍣":-2,"✧":1,"🎆":3,"🎎":4,"🇩":3,"✅":2,"📱":1,"🙍":-2,"🍑":1,"🎼":1,"🔊":2,"🌌":2,"🍎":1,"🐻":2,"╰":-1,"💇":1,"♬":1,"🔴":2,"🍱":-2,"🍊":2,"🍒":1,"🐭":3,"👟":2,"🌎":1,"🍍":2,"🐮":3,"📲":1,"☼":1,"🌅":1,"🇷":3,"👠":1,"🌽":2,"💧":-1,"🍬":1,"😺":2,"🚀":2,"¦":3,"💢":1,"🎬":1,"🍧":1,"🍜":2,"🐏":3,"🏄":2,"➤":1,"⬆":1,"🍋":1,"🆗":2,"⚪":2,"📺":2,"🍅":1,"⛅":2,"🐢":1,"👙":2,"🏡":2,"🌾":2,"◉":1,"✏":1,"🐬":2,"🇹":3,"♣":1,"🐝":1,"🌝":1,"🇮":3,"🔋":-3,"🐍":1,"♔":2,"🔵":1,"😾":-2,"🌕":3,"🐨":2,"🔐":1,"💿":3,"🌳":2,"👰":2,"❀":2,"⚓":3,"🚴":3,"▀":-1,"👗":1,"➕":2,"💬":2,"▒":-1,"🔜":1,"🍨":1,"💲":1,"🍙":1,"🍥":-4,"▸":1,"♛":1,"😼":1,"🐙":2,"👨":2,"🍚":2,"♨":4,"🎹":1,"♕":2,"▃":5,"🇬":1,"🇧":1,"☠":-1,"🐠":2,"🚹":3,"💵":2,"✰":4,"╠":1,"👛":2,"🌱":3,"💻":1,"🌏":1,"▄":-1,"👓":1,"◄":1,"⚾":-1,"🌲":2,"👴":1,"🏠":2,"🍇":1,"🍘":2,"🐇":1,"🔞":-1,"👵":2,"◀":1,"🔙":1,"🌵":1,"🍮":-1,"🎇":3,"🐎":2,"➔":-1,"🐤":2,"╩":1,"🌑":2,"🚲":2,"🐑":-1,"🏁":2,"🎾":3,"╚":1,"🈹":1,"👮":-2,"☹":-3,"🐵":2,"✪":1,"◕":2,"🗼":3,"▐":-1,"♠":1,"┳":-2,"👺":-2,"🐚":1,"👂":-1,"🗽":1,"🍵":2,"🆒":2,"🐺":1,"⇨":2,"🌓":3,"🔒":1,"╬":-1,"👳":3,"🌂":1,"🚌":1,"♩":3,"🍡":-1,"❥":1,"🎡":1,"💌":2,"🐩":2,"🌜":2,"⌚":1,"🚿":3,"🔆":3,"🌛":3,"💂":-1,"🐔":1,"🙎":-1,"🏩":2,"🇫":2,"🔨":-1,"📢":2,"🐦":2,"🐲":-1,"♻":2,"🌘":3,"🌔":3,"👖":2,"😗":3,"🐄":1,"◟":-1,"🍢":-1,"🎨":1,"⬇":2,"🚼":3,"🇴":2,"🌗":3,"🌖":3,"🔅":5,"👜":1,"🐌":3,"💼":3,"🐹":1,"🌠":3,"🐈":1,"🌁":1,"⚫":1,"♧":2,"🏰":1,"🚵":2,"🎢":2,"🎷":3,"🎐":1,"┈":-4,"╗":2,"🌇":3,"⏰":2,"🚂":1,"◠":2,"🎿":2,"🆔":4,"🌒":3,"🐪":3,"╔":1,"╝":2,"👔":2,"🆓":1,"🐋":1,"▽":2,"🐛":1,"👕":2,"💳":2,"🏧":5,"💡":3,"⬅":2,"🐫":2,"🇱":2,"📹":2,"👞":2,"👚":3,"□":-2,"🚣":3,"🏉":3,"🗻":3,"╦":2,"⛺":3,"🐕":1,"🏂":2,"👡":2,"📻":2,"✒":1,"🌰":3,"🏢":1,"🎒":3,"⌒":3,"🏫":-2,"📴":4,"🚢":1,"🚚":-1,"🐉":1,"❒":1,"🔔":5,"◢":4,"🏥":1,"🚖":-1,"▌":-2,"☛":2,"💒":3,"🚤":2,"🐐":2,"■":-2,"🔚":2,"🎻":2,"🔷":1,"🎽":2,"📅":1,"🎺":3,"🍈":-3,"✉":1,"◤":5,"○":3,"🍼":3,"🚛":-2,"📓":1,"☉":1,"💴":-2,"➰":-1,"🔌":-1,"📕":1,"📣":2,"🚓":1,"🐗":3,"⛳":4,"┻":-3,"┛":3,"┃":2,"💺":1,"🏇":-1,"☻":1,"📞":2,"Ⓐ":-1,"🌉":3,"🚩":-2,"✎":3,"📃":2,"🏨":1,"📌":-3,"♎":-1,"💷":2,"🚄":3,"▲":3,"⛵":3,"🔸":1,"🚜":5,"🐆":2,"👒":1,"❕":1,"🔛":2,"♢":2,"🇲":2,"❅":4,"👝":2,"✞":2,"◡":1,"🎋":3,"👥":1,"🐡":1,"◆":4,"🔭":2,"🎪":1,"🐜":3,"♌":4,"☐":-5,"👷":1,"🔈":1,"📄":5,"🚐":4,"🌋":3,"📡":1,"🚳":5,"✘":4,"🅰":1,"🇼":2,"┓":3,"┣":3,"Ⓛ":2,"Ⓔ":2,"👤":4,"🚁":1,"🎠":3,"🐁":-2,"📗":1,"┐":-1,"♂":1,"📯":-1,"🔩":1,"👢":4,"◂":2,"📰":1,"📶":2,"🌄":1,"🗾":2,"🔶":2,"🏤":2,"🎩":2,"Ⓜ":1,"🔧":-4,"🐅":1,"♮":1,"🅾":-1,"📦":1,"🚊":1,"🔲":3,"△":1,"📆":5,"❛":2,"📉":2,"▵":2,"🔎":3,"☜":1,"🇯":2,"🇵":2,"📘":1,"ⓔ":3,"🔑":1,"⭕":2,"🔘":1,"🚭":5,"🚉":3,"🚪":3,"➳":2,"🚃":3,"┯":-3,"🆙":2,"🆖":1,"┗":5,"Ⓞ":2,"❇":3,"✴":3,"☊":5,"🔕":-2,"⬛":-2,"🚞":3,"🍶":3,"🌐":3,"♀":1,"🚅":3,"🚒":-2,"♋":1,"♍":3,"🕝":-2,"ⓐ":5,"📙":1,"Ⓢ":1,"📋":3,"🎱":1,"🐞":1,"🔺":1,"ⓡ":5,"♤":3,"🎯":3,"🔉":3,"↩":5,"🚾":1,"🎣":-4,"🔣":1,"❎":-5,"➥":1,"🎌":5,"◣":1,"⏬":5,"♭":1,"ⓞ":5,"🔳":2,"🏭":2,"🎳":-3,"☚":5,"➽":2,"➫":2,"➖":-5,"꒰":2,"꒱":2,"◝":-3,"📑":5,"ⓧ":5,"🔟":5,"〓":5,"ⓜ":2,"➠":5,"🚆":2,"℅":-5,"☃":2,"🚽":5,"ⓝ":5,"⇦":5,"👲":2,"🚡":-3,"🔬":5,"➗":-3,"📈":2,"⏪":2,"◎":5,"꒦":-5,"📎":5,"⑅":5,"✭":5,"♓":2,"┏":5,"☇":5,"࿎":-5,"👘":5,"↙":5,"Ⓕ":2,"Ⓦ":2,"Ⓟ":2,"🕑":2,"🕛":5,"♈":-5,"↬":5,"✍":5,"🏦":5,"🔻":5,"ⓟ":5,"ⓕ":5,"ⓘ":5,"♿":5,"⇗":5,"⇘":5,"ⓨ":5,"ⓙ":5,"▫":5,"🔇":5,"⌃":-5,"🔖":5,"📜":5,"🚝":5,"┘":-5,"✝":-5,"⍣":-5,"📮":-5,"🕕":-5,"🔯":5,"➸":5,"꒵":5,"🕥":-5,"✽":5,"📼":5,"🕐":-5,"🀄":5,"✬":5,"✫":5,"🕔":-5,"❣":5,"📫":5,"🉐":5,"🈂":-5,"🎰":-5,"҂":-5,"╤":-5,"📔":5}},function(e){e.exports={abandon:-2,abandoned:-2,abandons:-2,abducted:-2,abduction:-2,abductions:-2,abhor:-3,abhorred:-3,abhorrent:-3,abhors:-3,abilities:2,ability:2,aboard:1,aborted:-1,aborts:-1,absentee:-1,absentees:-1,absolve:2,absolved:2,absolves:2,absolving:2,absorbed:1,abuse:-3,abused:-3,abuses:-3,abusing:-3,abusive:-3,accept:1,acceptable:1,acceptance:1,accepted:1,accepting:1,accepts:1,accessible:1,accident:-2,accidental:-2,accidentally:-2,accidents:-2,acclaim:2,acclaimed:2,accolade:2,accomplish:2,accomplished:2,accomplishes:2,accomplishment:2,accomplishments:2,accusation:-2,accusations:-2,accuse:-2,accused:-2,accuses:-2,accusing:-2,ache:-2,achievable:1,aching:-2,acquit:2,acquits:2,acquitted:2,acquitting:2,acrimonious:-3,active:1,adequate:1,admire:3,admired:3,admires:3,admiring:3,admit:-1,admits:-1,admitted:-1,admonish:-2,admonished:-2,adopt:1,adopts:1,adorable:3,adoration:3,adore:3,adored:3,adores:3,adoring:3,adoringly:3,advanced:1,advantage:2,advantageous:2,advantageously:2,advantages:2,adventure:2,adventures:2,adventurous:2,adversary:-1,advisable:1,affected:-1,affection:3,affectionate:3,affectionateness:3,afflicted:-1,affordable:2,affronted:-1,aficionados:2,afraid:-2,aggravate:-2,aggravated:-2,aggravates:-2,aggravating:-2,aggression:-2,aggressions:-2,aggressive:-2,aggressiveness:-2,aghast:-2,agog:2,agonise:-3,agonised:-3,agonises:-3,agonising:-3,agonize:-3,agonized:-3,agonizes:-3,agonizing:-3,agree:1,agreeable:2,agreed:1,agreement:1,agrees:1,alarm:-2,alarmed:-2,alarmist:-2,alarmists:-2,alas:-1,alert:-1,alienation:-2,alive:1,allegation:-2,allegations:-2,allergic:-2,allow:1,ally:2,alone:-2,altruistic:2,amaze:2,amazed:2,amazes:2,amazing:4,ambitious:2,ambivalent:-1,amicable:2,amuse:3,amused:3,amusement:3,amusements:3,anger:-3,angered:-3,angers:-3,angry:-3,anguish:-3,anguished:-3,animosity:-2,annoy:-2,annoyance:-2,annoyed:-2,annoying:-2,annoys:-2,antagonistic:-2,anti:-1,anticipation:1,anxiety:-2,anxious:-2,apathetic:-3,apathy:-3,apeshit:-3,apocalyptic:-2,apologise:-1,apologised:-1,apologises:-1,apologising:-1,apologize:-1,apologized:-1,apologizes:-1,apologizing:-1,apology:-1,appalled:-2,appalling:-2,appealing:2,appease:2,appeased:2,appeases:2,appeasing:2,applaud:2,applauded:2,applauding:2,applauds:2,applause:2,appreciate:2,appreciated:2,appreciates:2,appreciating:2,appreciation:2,apprehensive:-2,appropriate:2,appropriately:2,approval:2,approved:2,approves:2,ardent:1,arrest:-2,arrested:-3,arrests:-2,arrogant:-2,arsehole:-4,ashame:-2,ashamed:-2,ass:-4,assassination:-3,assassinations:-3,assault:-2,assaults:-2,asset:2,assets:2,assfucking:-4,asshole:-4,astonished:2,astound:3,astounded:3,astounding:3,astoundingly:3,astounds:3,atrocious:-3,atrocity:-3,attack:-1,attacked:-1,attacking:-1,attacks:-1,attract:1,attracted:1,attracting:2,attraction:2,attractions:2,attractive:2,attractively:2,attractiveness:2,attracts:1,audacious:3,aura:1,authority:1,avenge:-2,avenged:-2,avenger:-2,avengers:-2,avenges:-2,avenging:-2,avert:-1,averted:-1,averts:-1,avid:2,avoid:-1,avoided:-1,avoids:-1,await:-1,awaited:-1,awaits:-1,award:3,awarded:3,awards:3,awesome:4,awful:-3,awkward:-2,axe:-1,axed:-1,backed:1,backing:2,backs:1,bad:-3,"bad luck":-2,badass:-3,badly:-3,badness:-3,bailout:-2,balanced:1,bamboozle:-2,bamboozled:-2,bamboozles:-2,ban:-2,banish:-1,bankrupt:-3,bankruptcy:-3,bankster:-3,banned:-2,barbarian:-2,barbaric:-2,barbarous:-2,bargain:2,barrier:-2,bastard:-5,bastards:-5,battle:-1,battled:-1,battles:-1,battling:-2,beaten:-2,beatific:3,beating:-1,beauties:3,beautiful:3,beautifully:3,beautify:3,beauty:3,befit:2,befitting:2,belittle:-2,belittled:-2,beloved:3,benefactor:2,benefactors:2,benefit:2,benefits:2,benefitted:2,benefitting:2,benevolent:3,bereave:-2,bereaved:-2,bereaves:-2,bereaving:-2,best:3,"best damn":4,betray:-3,betrayal:-3,betrayed:-3,betraying:-3,betrays:-3,better:2,bias:-1,biased:-2,big:1,bitch:-5,bitches:-5,bitter:-2,bitterest:-2,bitterly:-2,bizarre:-2,blackmail:-3,blackmailed:-3,blackmailing:-3,blackmails:-3,blah:-2,blame:-2,blamed:-2,blames:-2,blaming:-2,bless:2,blesses:2,blessing:3,blessings:3,blind:-1,bliss:3,blissful:3,blithe:2,bloated:-1,block:-1,blockade:-2,blockbuster:3,blocked:-1,blocking:-1,blocks:-1,bloody:-3,blurry:-2,boastful:-2,bold:2,boldly:2,bomb:-1,boost:1,boosted:1,boosting:1,boosts:1,bore:-2,bored:-2,boring:-3,bother:-2,bothered:-2,bothers:-2,bothersome:-2,boycott:-2,boycotted:-2,boycotting:-2,boycotts:-2,brainwashing:-3,brave:2,braveness:2,bravery:2,bravura:3,breach:-2,breached:-2,breaches:-2,breaching:-2,breakthrough:3,breathtaking:5,bribe:-3,bribed:-3,bribes:-3,bribing:-3,bright:1,brightest:2,brightness:1,brilliant:4,brilliance:3,brilliances:3,brisk:2,broke:-1,broken:-1,brooding:-2,brutal:-3,brutally:-3,bullied:-2,bullshit:-4,bully:-2,bullying:-2,bummer:-2,buoyant:2,burden:-2,burdened:-2,burdening:-2,burdens:-2,burglar:-2,burglary:-2,calm:2,calmed:2,calming:2,calms:2,"can't stand":-3,cancel:-1,cancelled:-1,cancelling:-1,cancels:-1,cancer:-1,capabilities:1,capability:1,capable:1,captivated:3,care:2,carefree:1,careful:2,carefully:2,carefulness:2,careless:-2,cares:2,caring:2,"cashing in":-2,casualty:-2,catastrophe:-3,catastrophic:-4,cautious:-1,celebrate:3,celebrated:3,celebrates:3,celebrating:3,celebration:3,celebrations:3,censor:-2,censored:-2,censors:-2,certain:1,chagrin:-2,chagrined:-2,challenge:-1,champion:2,championed:2,champions:2,chance:2,chances:2,chaos:-2,chaotic:-2,charged:-3,charges:-2,charisma:2,charitable:2,charm:3,charming:3,charmingly:3,charmless:-3,chastise:-3,chastised:-3,chastises:-3,chastising:-3,cheat:-3,cheated:-3,cheater:-3,cheaters:-3,cheating:-3,cheats:-3,cheer:2,cheered:2,cheerful:2,cheerfully:2,cheering:2,cheerless:-2,cheers:2,cheery:3,cherish:2,cherished:2,cherishes:2,cherishing:2,chic:2,chide:-3,chided:-3,chides:-3,chiding:-3,childish:-2,chilling:-1,choke:-2,choked:-2,chokes:-2,choking:-2,clarifies:2,clarity:2,clash:-2,classy:3,clean:2,cleaner:2,clear:1,cleared:1,clearly:1,clears:1,clever:2,clouded:-1,clueless:-2,cock:-5,cocksucker:-5,cocksuckers:-5,cocky:-2,coerced:-2,coercion:-2,collapse:-2,collapsed:-2,collapses:-2,collapsing:-2,collide:-1,collides:-1,colliding:-1,collision:-2,collisions:-2,colluding:-3,combat:-1,combats:-1,comedy:1,comfort:2,comfortable:2,comfortably:2,comforting:2,comforts:2,comic:1,commend:2,commended:2,commit:1,commitment:2,commits:1,committed:1,committing:1,compassion:2,compassionate:2,compelled:1,competencies:1,competent:2,competitive:2,complacent:-2,complain:-2,complained:-2,complaining:-2,complains:-2,complaint:-2,complaints:-2,complicating:-2,compliment:2,complimented:2,compliments:2,comprehensive:2,concerned:-2,conciliate:2,conciliated:2,conciliates:2,conciliating:2,condemn:-2,condemnation:-2,condemned:-2,condemns:-2,confidence:2,confident:2,confidently:2,conflict:-2,conflicting:-2,conflictive:-2,conflicts:-2,confuse:-2,confused:-2,confusing:-2,congrats:2,congratulate:2,congratulation:2,congratulations:2,consent:2,consents:2,consolable:2,conspiracy:-3,constipation:-2,constrained:-2,contagion:-2,contagions:-2,contagious:-1,contaminant:-2,contaminants:-2,contaminate:-2,contaminated:-2,contaminates:-2,contaminating:-2,contamination:-2,contaminations:-2,contempt:-2,contemptible:-2,contemptuous:-2,contemptuously:-2,contend:-1,contender:-1,contending:-1,contentious:-2,contestable:-2,controversial:-2,controversially:-2,controversies:-2,controversy:-2,convicted:-2,convince:1,convinced:1,convinces:1,convivial:2,cool:1,"cool stuff":3,cornered:-2,corpse:-1,corrupt:-3,corrupted:-3,corrupting:-3,corruption:-3,corrupts:-3,costly:-2,courage:2,courageous:2,courageously:2,courageousness:2,courteous:2,courtesy:2,"cover-up":-3,coward:-2,cowardly:-2,coziness:2,cramp:-1,crap:-3,crappy:-3,crash:-2,crazier:-2,craziest:-2,crazy:-2,creative:2,crestfallen:-2,cried:-2,cries:-2,crime:-3,crimes:-3,criminal:-3,criminals:-3,criminate:-3,criminated:-3,criminates:-3,crisis:-3,critic:-2,criticise:-2,criticised:-2,criticises:-2,criticising:-2,criticism:-2,criticize:-2,criticized:-2,criticizes:-2,criticizing:-2,critics:-2,critique:-2,crowding:-1,crude:-1,cruel:-3,cruelty:-3,crush:-1,crushed:-2,crushes:-1,crushing:-1,cry:-1,crying:-2,cunning:2,cunt:-5,curious:1,curse:-1,cut:-1,cutback:-2,cutbacks:-2,cute:2,cuts:-1,cutting:-1,cynic:-2,cynical:-2,cynicism:-2,damage:-3,damaged:-3,damages:-3,damaging:-3,damn:-2,"damn cute":3,"damn good":4,damned:-4,damnit:-4,danger:-2,dangerous:-2,dangerously:-2,daredevil:2,daring:2,darkest:-2,darkness:-1,dauntless:2,dazzling:3,dead:-3,deadening:-2,deadlock:-2,deadly:-3,deafening:-1,dear:2,dearly:3,death:-2,deaths:-2,debonair:2,debt:-2,deceit:-3,deceitful:-3,deceive:-3,deceived:-3,deceives:-3,deceiving:-3,deception:-3,deceptive:-3,decisive:1,dedicated:2,dedication:2,defeat:-2,defeated:-2,defect:-3,defective:-3,defects:-3,defender:2,defenders:2,defenseless:-2,defer:-1,deferring:-1,defiant:-1,deficient:-2,deficiency:-2,deficiencies:-2,deficit:-2,deformed:-2,deformities:-2,deformity:-2,defraud:-3,defrauds:-3,deft:2,defunct:-2,degrade:-2,degraded:-2,degrades:-2,dehumanize:-2,dehumanized:-2,dehumanizes:-2,dehumanizing:-2,deject:-2,dejected:-2,dejecting:-2,dejects:-2,delay:-1,delayed:-1,delectable:3,delicious:3,delight:3,delighted:3,delightful:3,delightfully:3,delighting:3,delights:3,demand:-1,demanded:-1,demanding:-1,demands:-1,demonstration:-1,demoralize:-2,demoralized:-2,demoralizes:-2,demoralizing:-2,denial:-2,denials:-2,denied:-2,denier:-2,deniers:-2,denies:-2,denounce:-2,denounces:-2,dent:-2,deny:-2,denying:-2,deplore:-3,deplored:-3,deplores:-3,deploring:-3,deport:-2,deported:-2,deporting:-2,deports:-2,deportation:-2,deportations:-2,depressed:-2,depressing:-2,deprivation:-3,derail:-2,derailed:-2,derails:-2,derelict:-2,deride:-2,derided:-2,derides:-2,deriding:-2,derision:-2,desirable:2,desire:1,desired:2,desirous:2,despair:-3,despairing:-3,despairs:-3,desperate:-3,desperately:-3,despondent:-3,destroy:-3,destroyed:-3,destroying:-3,destroys:-3,destruction:-3,destructive:-3,detached:-1,detain:-2,detained:-2,detention:-2,deteriorate:-2,deteriorated:-2,deteriorates:-2,deteriorating:-2,determined:2,deterrent:-2,detract:-1,detracted:-1,detracts:-1,devastate:-2,devastated:-2,devastating:-2,devastation:-2,devastations:-2,devoted:3,devotion:2,devotional:2,diamond:1,dick:-4,dickhead:-4,die:-3,died:-3,difficult:-1,diffident:-2,dignity:2,dilemma:-1,dilligence:2,dipshit:-3,dire:-3,direful:-3,dirt:-2,dirtier:-2,dirtiest:-2,dirty:-2,disabilities:-2,disability:-2,disabling:-1,disadvantage:-2,disadvantaged:-2,disagree:-2,disagreeable:-2,disagreement:-2,disappear:-1,disappeared:-1,disappears:-1,disappoint:-2,disappointed:-2,disappointing:-2,disappointment:-2,disappointments:-2,disappoints:-2,disapproval:-2,disapprovals:-2,disapprove:-2,disapproved:-2,disapproves:-2,disapproving:-2,disaster:-2,disasters:-2,disastrous:-3,disbelieve:-2,discard:-1,discarded:-1,discarding:-1,discards:-1,discernment:2,discomfort:-2,disconsolate:-2,disconsolation:-2,discontented:-2,discord:-2,discounted:-1,discouraged:-2,discredited:-2,discriminate:-2,discriminated:-2,discriminates:-2,discriminating:-2,discriminatory:-2,disdain:-2,disease:-1,diseases:-1,disgrace:-2,disgraced:-2,disguise:-1,disguised:-1,disguises:-1,disguising:-1,disgust:-3,disgusted:-3,disgustful:-3,disgusting:-3,disheartened:-2,dishonest:-2,disillusioned:-2,disinclined:-2,disjointed:-2,dislike:-2,disliked:-2,dislikes:-2,dismal:-2,dismayed:-2,dismissed:-2,disorder:-2,disorders:-2,disorganized:-2,disoriented:-2,disparage:-2,disparaged:-2,disparages:-2,disparaging:-2,displeased:-2,displeasure:-2,disproportionate:-2,dispute:-2,disputed:-2,disputes:-2,disputing:-2,disqualified:-2,disquiet:-2,disregard:-2,disregarded:-2,disregarding:-2,disregards:-2,disrespect:-2,disrespected:-2,disrupt:-2,disrupted:-2,disrupting:-2,disruption:-2,disruptions:-2,disruptive:-2,disrupts:-2,dissatisfied:-2,distasteful:-2,distinguished:2,distort:-2,distorted:-2,distorting:-2,distorts:-2,distract:-2,distracted:-2,distraction:-2,distracts:-2,distress:-2,distressed:-2,distresses:-2,distressing:-2,distrust:-3,distrustful:-3,disturb:-2,disturbed:-2,disturbing:-2,disturbs:-2,dithering:-2,diverting:-1,dizzy:-1,dodging:-2,dodgy:-2,"does not work":-3,dolorous:-2,donate:2,donated:2,donates:2,donating:2,donation:2,"dont like":-2,doom:-2,doomed:-2,doubt:-1,doubted:-1,doubtful:-1,doubting:-1,doubts:-1,douche:-3,douchebag:-3,dour:-2,downcast:-2,downer:-2,downhearted:-2,downside:-2,drag:-1,dragged:-1,drags:-1,drained:-2,dread:-2,dreaded:-2,dreadful:-3,dreading:-2,dream:1,dreams:1,dreary:-2,droopy:-2,drop:-1,dropped:-1,drown:-2,drowned:-2,drowns:-2,drudgery:-2,drunk:-2,dubious:-2,dud:-2,dull:-2,dumb:-3,dumbass:-3,dump:-1,dumped:-2,dumps:-1,dupe:-2,duped:-2,dupery:-2,durable:2,dying:-3,dysfunction:-2,eager:2,earnest:2,ease:2,easy:1,ecstatic:4,eerie:-2,eery:-2,effective:2,effectively:2,effectiveness:2,effortlessly:2,elated:3,elation:3,elegant:2,elegantly:2,embarrass:-2,embarrassed:-2,embarrasses:-2,embarrassing:-2,embarrassment:-2,embezzlement:-3,embittered:-2,embrace:1,emergency:-2,empathetic:2,empower:2,empowerment:2,emptiness:-1,empty:-1,enchanted:2,encourage:2,encouraged:2,encouragement:2,encourages:2,encouraging:2,endorse:2,endorsed:2,endorsement:2,endorses:2,enemies:-2,enemy:-2,energetic:2,engage:1,engages:1,engrossed:1,engrossing:3,enjoy:2,enjoyable:2,enjoyed:2,enjoying:2,enjoys:2,enlighten:2,enlightened:2,enlightening:2,enlightens:2,ennui:-2,enrage:-2,enraged:-2,enrages:-2,enraging:-2,enrapture:3,enslave:-2,enslaved:-2,enslaves:-2,ensure:1,ensuring:1,enterprising:1,entertaining:2,enthral:3,enthusiastic:3,entitled:1,entrusted:2,envies:-1,envious:-2,"environment-friendly":2,envy:-1,envying:-1,erroneous:-2,error:-2,errors:-2,escape:-1,escapes:-1,escaping:-1,esteem:2,esteemed:2,ethical:2,euphoria:3,euphoric:4,evacuate:-1,evacuated:-1,evacuates:-1,evacuating:-1,evacuation:-1,evergreen:2,evergreens:2,evergreening:-3,eviction:-1,evil:-3,exacerbate:-2,exacerbated:-2,exacerbates:-2,exacerbating:-2,exaggerate:-2,exaggerated:-2,exaggerates:-2,exaggerating:-2,exasparate:-2,exasperated:-2,exasperates:-2,exasperating:-2,excellence:3,excellent:3,excite:3,excited:3,excitement:3,exciting:3,exclude:-1,excluded:-2,exclusion:-1,exclusive:2,excruciatingly:-1,excuse:-1,exempt:-1,exhausted:-2,exhilarated:3,exhilarates:3,exhilarating:3,exonerate:2,exonerated:2,exonerates:2,exonerating:2,expand:1,expands:1,expel:-2,expelled:-2,expelling:-2,expels:-2,expertly:2,exploit:-2,exploited:-2,exploiting:-2,exploits:-2,exploration:1,explorations:1,expose:-1,exposed:-1,exposes:-1,exposing:-1,exquisite:3,extend:1,extends:1,extremist:-2,extremists:-2,exuberant:4,exultant:3,exultantly:3,fabulous:4,fabulously:4,fad:-2,fag:-3,faggot:-3,faggots:-3,fail:-2,failed:-2,failing:-2,fails:-2,failure:-2,failures:-2,fainthearted:-2,fair:2,fairness:2,faith:1,faithful:3,fake:-3,faker:-3,fakes:-3,faking:-3,fallen:-2,falling:-1,false:-1,falsely:-2,falsified:-3,falsify:-3,fame:1,famine:-2,famous:2,fan:3,fantastic:4,farce:-1,fascinate:3,fascinated:3,fascinates:3,fascinating:3,fascination:3,fascist:-2,fascists:-2,fatal:-3,fatalities:-3,fatality:-3,fatigue:-2,fatigued:-2,fatigues:-2,fatiguing:-2,favor:2,favorable:2,favorably:2,favored:2,favorite:2,favorited:2,favorites:2,favors:2,favour:2,favourable:2,favourably:2,favoured:2,favourite:2,favourited:2,favourites:2,favours:2,fear:-2,fearful:-2,fearfully:-2,fearing:-2,fearless:2,fearlessness:2,fearsome:-2,"fed up":-3,feeble:-2,feeling:1,felonies:-3,felony:-3,fertile:2,fervent:2,fervid:2,festive:2,fever:-2,fiasco:-3,fidgety:-2,fight:-1,fighting:-2,fine:2,fines:-2,finest:3,fire:-2,fired:-2,firing:-2,fit:1,fitness:1,filth:-2,filthy:-2,flagship:2,flaw:-2,flawed:-3,flawless:2,flawlessly:2,flaws:-2,flees:-1,flop:-2,flops:-2,flu:-2,flustered:-2,focused:2,fond:2,fondness:2,fool:-2,foolish:-2,fools:-2,forbid:-1,forbidden:-2,forbidding:-2,forced:-1,foreclosure:-2,foreclosures:-2,forefront:1,forget:-1,forgetful:-2,forgettable:-1,forgive:1,forgiving:1,forgot:-1,forgotten:-1,fortune:2,fortunate:2,fortunately:2,foul:-3,frantic:-1,fraud:-4,frauds:-4,fraudster:-4,fraudsters:-4,fraudulence:-4,fraudulent:-4,freak:-2,free:1,freedom:2,freedoms:2,frenzy:-3,fresh:1,friend:1,friendliness:2,friendly:2,friendship:2,fright:-2,frightened:-2,frightening:-3,frikin:-2,frisky:2,frowning:-1,fruitless:-2,frustrate:-2,frustrated:-2,frustrates:-2,frustrating:-2,frustration:-2,ftw:3,fuck:-4,fucked:-4,fucker:-4,fuckers:-4,fuckface:-4,fuckhead:-4,fuckin:-4,fucking:-4,"fucking amazing":4,"fucking beautiful":4,"fucking cute":4,"fucking fantastic":4,"fucking good":4,"fucking great":4,"fucking hot":2,"fucking love":4,"fucking loves":4,"fucking perfect":4,fucktard:-4,fud:-3,fuked:-4,fuking:-4,fulfill:2,fulfilled:2,fulfillment:2,fulfills:2,fuming:-2,fun:4,funeral:-1,funerals:-1,funky:2,funnier:4,funny:4,furious:-3,futile:-2,gag:-2,gagged:-2,gain:2,gained:2,gaining:2,gains:2,gallant:3,gallantly:3,gallantry:3,"game-changing":3,garbage:-1,gem:3,generous:2,generously:2,genial:3,ghastly:-2,ghost:-1,giddy:-2,gift:2,glad:3,glamorous:3,glamourous:3,glee:3,gleeful:3,gloom:-1,gloomy:-2,glorious:2,glory:2,glum:-2,god:1,goddamn:-3,godsend:4,gold:2,good:3,goodlooking:3,goodmorning:1,goodness:3,goodwill:3,goofiness:-2,goofy:-2,grace:1,graceful:2,gracious:3,grand:3,grant:1,granted:1,granting:1,grants:1,grateful:3,gratification:2,grave:-2,gray:-1,grisly:-2,gr8:3,great:3,greater:3,greatest:3,greed:-3,greedy:-2,"green wash":-3,"green washing":-3,greenwash:-3,greenwasher:-3,greenwashers:-3,greenwashing:-3,greet:1,greeted:1,greeting:1,greetings:2,greets:1,grey:-1,grief:-2,grieved:-2,grim:-2,gripping:2,groan:-2,groaned:-2,groaning:-2,groans:-2,gross:-2,growing:1,growth:2,growths:2,gruesome:-3,guarantee:1,guilt:-3,guilty:-3,gullibility:-2,gullible:-2,gun:-1,ha:2,hacked:-1,haha:3,hahaha:3,hahahah:3,hail:2,hailed:2,hallelujah:3,handpicked:1,handsome:3,hapless:-2,haplessness:-2,happiest:3,happiness:3,happy:3,harass:-3,harassed:-3,harasses:-3,harassing:-3,harassment:-3,hard:-1,hardier:2,hardship:-2,hardy:2,harm:-2,harmed:-2,harmful:-2,harming:-2,harmony:2,harmonious:2,harmoniously:2,harms:-2,harried:-2,harsh:-2,harsher:-2,harshest:-2,harshly:-2,hate:-3,hated:-3,hater:-3,haters:-3,hates:-3,hating:-3,hatred:-3,haunt:-1,haunted:-2,haunting:1,haunts:-1,havoc:-2,hazardous:-3,headache:-2,healthy:2,heartbreaking:-3,heartbroken:-3,heartfelt:3,heartless:-2,heartwarming:3,heaven:2,heavenly:4,heavyhearted:-2,hehe:2,hell:-4,hellish:-2,help:2,helpful:2,helping:2,helpless:-2,helps:2,hero:2,heroes:2,heroic:3,hesitant:-2,hesitate:-2,hid:-1,hide:-1,hideous:-3,hides:-1,hiding:-1,highlight:2,hilarious:2,hinder:-2,hindrance:-2,hoax:-2,hollow:-1,homeless:-2,homesick:-2,homicide:-2,homicides:-2,honest:2,honor:2,honored:2,honoring:2,honour:2,honoured:2,honouring:2,hooligan:-2,hooliganism:-2,hooligans:-2,hope:2,hopeful:2,hopefully:2,hopeless:-2,hopelessness:-2,hopes:2,hoping:2,horrendous:-3,horrid:-3,horrible:-3,horrific:-3,horrified:-3,hospitalized:-2,hostile:-2,huckster:-2,hug:2,huge:1,hugs:2,humane:2,humble:1,humbug:-2,humerous:3,humiliated:-3,humiliation:-3,humor:2,humorous:2,humour:2,humourous:2,hunger:-2,hurrah:5,hurt:-2,hurting:-2,hurts:-2,hypocritical:-2,hysteria:-3,hysterical:-3,hysterics:-3,icky:-3,idiocy:-3,idiot:-3,idiotic:-3,ignorance:-2,ignorant:-2,ignore:-1,ignored:-2,ignores:-1,ill:-2,"ill-fated":-2,illegal:-3,illegally:-3,illegitimate:-3,illiteracy:-2,illness:-2,illnesses:-2,illogical:-2,imaginative:2,imbecile:-3,immobilized:-1,immortal:2,immune:1,impair:-2,impaired:-2,impairing:-2,impairment:-2,impairs:-2,impatient:-2,impeachment:-3,impeachments:-3,impede:-2,impeded:-2,impedes:-2,impeding:-2,impedingly:-2,imperfect:-2,importance:2,important:2,impose:-1,imposed:-1,imposes:-1,imposing:-1,imposter:-2,impotent:-2,impress:3,impressed:3,impresses:3,impressive:3,imprisoned:-2,imprisonment:-2,improper:-2,improperly:-2,improve:2,improved:2,improvement:2,improves:2,improving:2,inability:-2,inaction:-2,inadequate:-2,inadvertently:-2,inappropriate:-2,incapable:-2,incapacitated:-2,incapacitates:-2,incapacitating:-2,incense:-2,incensed:-2,incenses:-2,incensing:-2,incoherent:-2,incompetence:-2,incompetent:-2,incomplete:-1,incomprehensible:-2,inconsiderate:-2,inconvenience:-2,inconvenient:-2,increase:1,increased:1,indecisive:-2,indestructible:2,indicted:-2,indifference:-2,indifferent:-2,indignant:-2,indignation:-2,indoctrinate:-2,indoctrinated:-2,indoctrinates:-2,indoctrinating:-2,inediable:-2,inexorable:-3,inexcusable:-3,ineffective:-2,ineffectively:-2,ineffectual:-2,inefficiency:-2,inefficient:-2,inefficiently:-2,inept:-2,ineptitude:-2,infantile:-2,infantilized:-2,infatuated:2,infatuation:2,infect:-2,infected:-2,infecting:-2,infection:-2,infections:-2,infectious:-2,infects:-2,inferior:-2,infest:-2,infested:-2,infesting:-2,infests:-2,inflamed:-2,inflict:-2,inflicted:-2,inflicting:-2,inflicts:-2,influential:2,infract:-2,infracted:-2,infracting:-2,infracts:-2,infringement:-2,infuriate:-2,infuriated:-2,infuriates:-2,infuriating:-2,inhibit:-1,inhuman:-2,injured:-2,injuries:-2,injury:-2,injustice:-2,innovate:1,innovates:1,innovation:1,innovative:2,inoperative:-2,inquisition:-2,inquisitive:2,insane:-2,insanity:-2,insecure:-2,insensitive:-2,insensitivity:-2,insignificant:-2,insipid:-2,insolvent:-2,insomnia:-2,inspiration:2,inspirational:2,inspire:2,inspired:2,inspires:2,inspiring:3,insufficiency:-2,insufficient:-2,insufficiently:-2,insult:-2,insulted:-2,insulting:-2,insults:-2,intact:2,integrity:2,intelligent:2,intense:1,interest:1,interested:2,interesting:2,interests:1,interrogated:-2,interrupt:-2,interrupted:-2,interrupting:-2,interruption:-2,interrupts:-2,intimacy:2,intimidate:-2,intimidated:-2,intimidates:-2,intimidating:-2,intimidation:-2,intransigence:-2,intransigency:-2,intricate:2,intrigues:1,invasion:-1,invincible:2,invite:1,inviting:1,invulnerable:2,irate:-3,ironic:-1,irony:-1,irrational:-1,irreparable:-2,irreproducible:-2,irresistible:2,irresistibly:2,irresolute:-2,irresponsible:-2,irresponsibly:-2,irreversible:-1,irreversibly:-1,irritate:-3,irritated:-3,irritates:-3,irritating:-3,isolated:-1,itchy:-2,jackass:-4,jackasses:-4,jailed:-2,jaunty:2,jealous:-2,jealousy:-2,jeopardy:-2,jerk:-3,jesus:1,jewel:1,jewels:1,jocular:2,join:1,joke:2,jokes:2,jolly:2,jovial:2,joy:3,joyful:3,joyfully:3,joyless:-2,joyous:3,jubilant:3,jumpy:-1,justice:2,justifiably:2,justified:2,keen:1,kickback:-3,kickbacks:-3,kidnap:-2,kidnapped:-2,kidnapping:-2,kidnappings:-2,kidnaps:-2,kill:-3,killed:-3,killing:-3,kills:-3,kind:2,"kind of":0,kinder:2,kindness:2,kiss:2,kudos:3,lack:-2,lackadaisical:-2,lag:-1,lagged:-2,lagging:-2,lags:-2,lame:-2,landmark:2,lapse:-1,lapsed:-1,laugh:1,laughed:1,laughing:1,laughs:1,laughting:1,launched:1,lawl:3,lawsuit:-2,lawsuits:-2,lazy:-1,leadership:1,leading:2,leak:-1,leaked:-1,leave:-1,legal:1,legally:1,lenient:1,lethal:-2,lethality:-2,lethargic:-2,lethargy:-2,liar:-3,liars:-3,libelous:-2,lied:-2,lifeless:-1,lifesaver:4,lighthearted:1,likable:2,like:2,likeable:2,liked:2,likers:2,likes:2,liking:2,limitation:-1,limited:-1,limits:-1,litigation:-1,litigious:-2,lively:2,livid:-2,lmao:4,lmfao:4,loathe:-3,loathed:-3,loathes:-3,loathing:-3,loathsome:-3,lobbied:-2,lobby:-2,lobbying:-2,lobbyist:-2,lobbyists:-2,lol:3,lolol:4,lololol:4,lolololol:4,lonely:-2,lonesome:-2,longing:-1,lool:3,loom:-1,loomed:-1,looming:-1,looms:-1,loool:3,looool:3,loose:-3,looses:-3,loser:-3,losing:-3,loss:-3,losses:-3,lost:-3,lousy:-2,lovable:3,love:3,loved:3,lovelies:3,lovely:3,loves:3,loving:2,"loving-kindness":3,lowest:-1,loyal:3,loyalty:3,luck:3,luckily:3,lucky:3,lucrative:3,ludicrous:-3,lugubrious:-2,lunatic:-3,lunatics:-3,lurk:-1,lurking:-1,lurks:-1,luxury:2,macabre:-2,mad:-3,maddening:-3,"made-up":-1,madly:-3,madness:-3,magnificent:3,maladaption:-2,maldevelopment:-2,maltreatment:-2,mandatory:-1,manipulated:-1,manipulating:-1,manipulation:-1,manslaughter:-3,marvel:3,marvelous:3,marvels:3,masterpiece:4,masterpieces:4,matter:1,matters:1,mature:2,meaningful:2,meaningless:-2,medal:3,mediocrity:-3,meditative:1,melancholy:-2,memorable:1,memoriam:-2,menace:-2,menaced:-2,menaces:-2,mercy:2,merry:3,mesmerizing:3,mess:-2,messed:-2,"messing up":-2,methodical:2,methodically:2,mindless:-2,miracle:4,mirth:3,mirthful:3,mirthfully:3,misbehave:-2,misbehaved:-2,misbehaves:-2,misbehaving:-2,misbranding:-3,miscast:-2,mischief:-1,mischiefs:-1,misclassified:-2,misclassifies:-2,misclassify:-2,misconduct:-2,misconducted:-2,misconducting:-2,misconducts:-2,miserable:-3,miserably:-3,misery:-2,misfire:-2,misfortune:-2,misgiving:-2,misinformation:-2,misinformed:-2,misinterpreted:-2,mislead:-3,misleaded:-3,misleading:-3,misleads:-3,misplace:-2,misplaced:-2,misplaces:-2,misplacing:-2,mispricing:-3,misread:-1,misreport:-2,misreported:-2,misreporting:-2,misreports:-2,misrepresent:-2,misrepresentation:-2,misrepresentations:-2,misrepresented:-2,misrepresenting:-2,misrepresents:-2,miss:-2,missed:-2,missing:-2,mistake:-2,mistaken:-2,mistakes:-2,mistaking:-2,misunderstand:-2,misunderstanding:-2,misunderstands:-2,misunderstood:-2,misuse:-2,misused:-2,misuses:-2,misusing:-2,moan:-2,moaned:-2,moaning:-2,moans:-2,mock:-2,mocked:-2,mocking:-2,mocks:-2,modernize:2,modernized:2,modernizes:2,modernizing:2,mongering:-2,monopolize:-2,monopolized:-2,monopolizes:-2,monopolizing:-2,monotone:-1,moody:-1,mope:-1,moping:-1,moron:-3,motherfucker:-5,motherfucking:-5,motivate:1,motivated:2,motivating:2,motivation:1,mourn:-2,mourned:-2,mournful:-2,mourning:-2,mourns:-2,muddy:-2,mumpish:-2,murder:-2,murderer:-2,murdering:-3,murderous:-3,murders:-2,murky:-2,myth:-1,n00b:-2,naive:-2,narcissism:-2,nasty:-3,natural:1,"naïve":-2,needy:-2,negative:-2,negativity:-2,neglect:-2,neglected:-2,neglecting:-2,neglects:-2,nerves:-1,nervous:-2,nervously:-2,nice:3,nifty:2,niggas:-5,nigger:-5,no:-1,"no fun":-3,noble:2,noblest:2,noisy:-1,"non-approved":-2,nonsense:-2,noob:-2,nosey:-2,"not good":-2,"not working":-3,notable:2,noticeable:2,notorious:-2,novel:2,numb:-1,nurturing:2,nuts:-3,obliterate:-2,obliterated:-2,obnoxious:-3,obscene:-2,obscenity:-2,obsessed:2,obsolete:-2,obstacle:-2,obstacles:-2,obstinate:-2,obstruct:-2,obstructed:-2,obstructing:-2,obstruction:-2,obstructs:-2,odd:-2,offence:-2,offences:-2,offend:-2,offended:-2,offender:-2,offending:-2,offends:-2,offense:-2,offenses:-2,offensive:-2,offensively:-2,offline:-1,oks:2,ominous:3,"once-in-a-lifetime":3,oops:-2,opportunities:2,opportunity:2,oppressed:-2,oppression:-2,oppressions:-2,oppressive:-2,optimism:2,optimistic:2,optionless:-2,ostracize:-2,ostracized:-2,ostracizes:-2,ouch:-2,outage:-2,outages:-2,outbreak:-2,outbreaks:-2,outcry:-2,outmaneuvered:-2,outnumbered:-2,outrage:-3,outraged:-3,outrageous:-3,outreach:2,outstanding:5,overjoyed:4,overload:-1,overlooked:-1,overprotective:-2,overran:-2,overreact:-2,overreacted:-2,overreacting:-2,overreaction:-2,overreacts:-2,oversell:-2,overselling:-2,oversells:-2,oversight:-1,oversimplification:-2,oversimplified:-2,oversimplifies:-2,oversimplify:-2,oversold:-2,overstatement:-2,overstatements:-2,overweight:-1,overwrought:-3,oxymoron:-1,pain:-2,pained:-2,painful:-2,panic:-3,panicked:-3,panics:-3,paradise:3,paradox:-1,pardon:2,pardoned:2,pardoning:2,pardons:2,parley:-1,passion:1,passionate:2,passive:-1,passively:-1,pathetic:-2,pay:-1,peace:2,peaceful:2,peacefully:2,penalize:-2,penalized:-2,penalizes:-2,penalizing:-2,penalty:-2,pensive:-1,perfect:3,perfected:2,perfection:3,perfectly:3,perfects:2,peril:-2,perjury:-3,perpetrated:-2,perpetrator:-2,perpetrators:-2,perplexed:-2,persecute:-2,persecuted:-2,persecutes:-2,persecuting:-2,perturbed:-2,pervert:-3,pesky:-2,pessimism:-2,pessimistic:-2,petrified:-2,philanthropy:2,phobic:-2,picturesque:2,pileup:-1,pillage:-2,pique:-2,piqued:-2,piss:-4,pissed:-4,pissing:-3,piteous:-2,pitied:-1,pity:-2,plague:-3,plagued:-3,plagues:-3,plaguing:-3,playful:2,pleasant:3,please:1,pleased:3,pleasurable:3,pleasure:3,plodding:-2,poignant:2,pointless:-2,poised:-2,poison:-2,poisoned:-2,poisons:-2,polished:2,polite:2,politeness:2,pollutant:-2,pollute:-2,polluted:-2,polluter:-2,polluters:-2,pollutes:-2,pollution:-2,poor:-2,poorer:-2,poorest:-2,poorly:-2,popular:3,popularity:3,positive:2,positively:2,possessive:-2,"post-traumatic":-2,postpone:-1,postponed:-1,postpones:-1,postponing:-1,poverty:-1,powerful:2,powerless:-2,praise:3,praised:3,praises:3,praising:3,pray:1,praying:1,prays:1,prblm:-2,prblms:-2,predatory:-2,prepared:1,pressure:-1,pressured:-2,pretend:-1,pretending:-1,pretends:-1,pretty:1,prevent:-1,prevented:-1,preventing:-1,prevents:-1,prick:-5,prison:-2,prisoner:-2,prisoners:-2,privileged:2,proactive:2,problem:-2,problems:-2,profit:2,profitable:2,profiteer:-2,profits:2,progress:2,prohibit:-1,prohibits:-1,prominent:2,promise:1,promised:1,promises:1,promote:1,promoted:1,promotes:1,promoting:1,promptly:1,propaganda:-2,prosecute:-1,prosecuted:-2,prosecutes:-1,prosecution:-1,prospect:1,prospects:1,prosperity:3,prosperous:3,protect:1,protected:1,protects:1,protest:-2,protesters:-2,protesting:-2,protests:-2,proud:2,proudly:2,provoke:-1,provoked:-1,provokes:-1,provoking:-1,prudence:2,pseudoscience:-3,psychopathic:-2,punish:-2,punished:-2,punishes:-2,punishing:-2,punitive:-2,pure:1,purest:1,purposeful:2,pushy:-1,puzzled:-2,quaking:-2,qualities:2,quality:2,questionable:-2,questioned:-1,questioning:-1,racism:-3,racist:-3,racists:-3,rage:-2,rageful:-2,rainy:-1,rant:-3,ranter:-3,ranters:-3,rants:-3,rape:-4,raped:-4,rapist:-4,rapture:2,raptured:2,raptures:2,rapturous:4,rash:-2,ratified:2,reach:1,reached:1,reaches:1,reaching:1,reassure:1,reassured:1,reassures:1,reassuring:2,rebel:-2,rebellion:-2,rebels:-2,recession:-2,reckless:-2,recognition:2,recommend:2,recommended:2,recommends:2,redeemed:2,refine:1,refined:1,refines:1,refreshingly:2,refuse:-2,refused:-2,refuses:-2,refusing:-2,regret:-2,regretful:-2,regrets:-2,regretted:-2,regretting:-2,reigning:1,reject:-1,rejected:-1,rejecting:-1,rejection:-2,rejects:-1,rejoice:4,rejoiced:4,rejoices:4,rejoicing:4,relaxed:2,relentless:-1,reliability:2,reliable:2,reliably:2,reliant:2,relieve:1,relieved:2,relieves:1,relieving:2,relishing:2,remarkable:2,remorse:-2,repellent:-2,repercussion:-2,repercussions:-2,reprimand:-2,reprimanded:-2,reprimanding:-2,reprimands:-2,repulse:-1,repulsed:-2,repulsive:-2,rescue:2,rescued:2,rescues:2,resentful:-2,resign:-1,resigned:-1,resigning:-1,resigns:-1,resolute:2,resolution:2,resolve:2,resolved:2,resolves:2,resolving:2,respect:2,respected:2,respects:2,responsibility:1,responsible:2,responsive:2,restful:2,restless:-2,restore:1,restored:1,restores:1,restoring:1,restrict:-2,restricted:-2,restricting:-2,restriction:-2,restrictive:-1,restricts:-2,retained:-1,retard:-2,retarded:-2,retreat:-1,revenge:-2,revengeful:-2,revered:2,revive:2,revives:2,revolting:-2,reward:2,rewarded:2,rewarding:2,rewards:2,rich:2,richly:2,ridiculous:-3,rig:-1,rigged:-1,"right direction":3,righteousness:2,rightful:2,rightfully:2,rigorous:3,rigorously:3,riot:-2,riots:-2,rise:1,rises:1,risk:-2,risks:-2,risky:-2,riveting:3,rob:-2,robber:-2,robed:-2,robing:-2,robs:-2,robust:2,rofl:4,roflcopter:4,roflmao:4,romance:2,romantical:2,romantically:2,rose:1,rotfl:4,rotflmfao:4,rotflol:4,rotten:-3,rude:-2,ruin:-2,ruined:-2,ruining:-2,ruins:-2,sabotage:-2,sad:-2,sadden:-2,saddened:-2,sadly:-2,safe:1,safely:1,safer:2,safety:1,salient:1,salute:2,saluted:2,salutes:2,saluting:2,salvation:2,sappy:-1,sarcastic:-2,satisfied:2,savange:-2,savanges:-2,save:2,saved:2,savings:1,scam:-2,scams:-2,scandal:-3,scandalous:-3,scandals:-3,scapegoat:-2,scapegoats:-2,scare:-2,scared:-2,scar:-2,scars:-2,scary:-2,sceptical:-2,scold:-2,scoop:3,scorn:-2,scornful:-2,scream:-2,screamed:-2,screaming:-2,screams:-2,screwed:-2,"screwed up":-3,scum:-3,scumbag:-4,seamless:2,seamlessly:2,secure:2,secured:2,secures:2,sedition:-2,seditious:-2,seduced:-1,"self-abuse":-2,"self-confident":2,"self-contradictory":-2,"self-deluded":-2,selfish:-3,selfishness:-3,sentence:-2,sentenced:-2,sentences:-2,sentencing:-2,serene:2,settlement:1,settlements:1,severe:-2,severely:-2,sexist:-2,sexistic:-2,sexy:3,shaky:-2,shame:-2,shamed:-2,shameful:-2,share:1,shared:1,shares:1,shattered:-2,shit:-4,shithead:-4,shitty:-3,shock:-2,shocked:-2,shocking:-2,shocks:-2,shoody:-2,shoot:-1,"short-sighted":-2,"short-sightedness":-2,shortage:-2,shortages:-2,shrew:-4,shy:-1,sick:-2,sickness:-2,"side-effect":-2,"side-effects":-2,sigh:-2,significance:1,significant:1,silencing:-1,silly:-1,simplicity:1,sin:-2,sincere:2,sincerely:2,sincerest:2,sincerity:2,sinful:-3,singleminded:-2,sinister:-2,sins:-2,skeptic:-2,skeptical:-2,skepticism:-2,skeptics:-2,slam:-2,slash:-2,slashed:-2,slashes:-2,slashing:-2,slave:-3,slavery:-3,slaves:-3,sleeplessness:-2,slick:2,slicker:2,slickest:2,slip:-1,sloppy:-2,sluggish:-2,slumping:-1,slut:-5,smart:1,smarter:2,smartest:2,smear:-2,smile:2,smiled:2,smiles:2,smiling:2,smog:-2,smuggle:-2,smuggled:-2,smuggling:-2,smuggles:-2,sneaky:-1,sneeze:-2,sneezed:-2,sneezes:-2,sneezing:-2,snub:-2,snubbed:-2,snubbing:-2,snubs:-2,sobering:1,solemn:-1,solid:2,solidarity:2,solidified:2,solidifies:2,solidify:2,solidifying:2,solution:1,solutions:1,solve:1,solved:1,solves:1,solving:1,somber:-2,"some kind":0,"son-of-a-bitch":-5,soothe:3,soothed:3,soothing:3,sophisticated:2,sore:-1,sorrow:-2,sorrowful:-2,sorry:-1,spacious:1,spam:-2,spammer:-3,spammers:-3,spamming:-2,spark:1,sparkle:3,sparkles:3,sparkling:3,spearhead:2,speculative:-2,spirit:1,spirited:2,spiritless:-2,spiteful:-2,splendid:3,spoiled:-2,spoilt:-2,spotless:2,sprightly:2,squander:-2,squandered:-2,squandering:-2,squanders:-2,squelched:-1,stab:-2,stabbed:-2,stable:2,stabs:-2,stall:-2,stalled:-2,stalling:-2,stamina:2,stampede:-2,stank:-2,startled:-2,startling:3,starve:-2,starved:-2,starves:-2,starving:-2,steadfast:2,steal:-2,stealing:-2,steals:-2,stereotype:-2,stereotyped:-2,stifled:-1,stimulate:1,stimulated:1,stimulates:1,stimulating:2,stingy:-2,stink:-2,stinked:-2,stinker:-2,stinking:-2,stinks:-2,stinky:-2,stole:-2,stolen:-2,stop:-1,stopped:-1,stopping:-1,stops:-1,stout:2,straight:1,strange:-1,strangely:-1,strangled:-2,strength:2,strengthen:2,strengthened:2,strengthening:2,strengthens:2,strengths:2,stress:-1,stressed:-2,stressor:-2,stressors:-2,stricken:-2,strike:-1,strikers:-2,strikes:-1,strong:2,stronger:2,strongest:2,struck:-1,struggle:-2,struggled:-2,struggles:-2,struggling:-2,stubborn:-2,stuck:-2,stunned:-2,stunning:4,stupid:-2,stupidity:-3,stupidly:-2,suave:2,subpoena:-2,substantial:1,substantially:1,subversive:-2,succeed:3,succeeded:3,succeeding:3,succeeds:3,success:2,successful:3,successfully:3,suck:-3,sucks:-3,sue:-2,sued:-2,sueing:-2,sues:-2,suffer:-2,suffered:-2,sufferer:-2,sufferers:-2,suffering:-2,suffers:-2,suicidal:-2,suicide:-2,suicides:-2,suing:-2,suitable:2,suited:2,sulking:-2,sulky:-2,sullen:-2,sunshine:2,super:3,superb:5,superior:2,support:2,supported:2,supporter:1,supporters:1,supporting:1,supportive:2,supports:2,supreme:4,survived:2,surviving:2,survivor:2,suspect:-1,suspected:-1,suspecting:-1,suspects:-1,suspend:-1,suspended:-1,suspicious:-2,sustainability:1,sustainable:2,sustainably:2,swear:-2,swearing:-2,swears:-2,sweet:2,sweeter:3,sweetest:3,swift:2,swiftly:2,swindle:-3,swindles:-3,swindling:-3,sympathetic:2,sympathy:2,taint:-2,tainted:-2,talent:2,tard:-2,tarnish:-2,tarnished:-2,tarnishes:-2,tears:-2,tender:2,tenderness:2,tense:-2,tension:-1,terrible:-3,terribly:-3,terrific:4,terrifically:4,terrified:-3,terror:-3,terrorist:-2,terrorists:-2,terrorize:-3,terrorized:-3,terrorizes:-3,thank:2,thankful:2,thanks:2,thorny:-2,thoughtful:2,thoughtless:-2,threat:-2,threaten:-2,threatened:-2,threatening:-2,threatens:-2,threats:-2,thrilled:5,thwart:-2,thwarted:-2,thwarting:-2,thwarts:-2,timid:-2,timorous:-2,tired:-2,tits:-2,tolerance:2,tolerant:2,toothless:-2,top:2,tops:2,torn:-2,torture:-4,tortured:-4,tortures:-4,torturing:-4,totalitarian:-2,totalitarianism:-2,tout:-2,touted:-2,touting:-2,touts:-2,toxic:-3,tragedies:-2,tragedy:-2,tragic:-2,tranquil:2,transgress:-2,transgressed:-2,transgresses:-2,transgressing:-2,trap:-1,trapped:-2,traps:-1,trauma:-3,traumatic:-3,travesty:-2,treason:-3,treasonous:-3,treasure:2,treasures:2,trembling:-2,tremor:-2,tremors:-2,tremulous:-2,tribulation:-2,tribute:2,tricked:-2,trickery:-2,triumph:4,triumphant:4,troll:-2,trouble:-2,troubled:-2,troubles:-2,troubling:-2,true:2,trust:1,trusted:2,trusts:1,tumor:-2,twat:-5,tyran:-3,tyrannic:-3,tyrannical:-3,tyrannically:-3,tyrans:-3,ubiquitous:2,ugh:-2,ugliness:-3,ugly:-3,unable:-2,unacceptable:-2,unappeasable:-2,unappreciated:-2,unapproved:-2,unattractive:-2,unavailable:-1,unavailing:-2,unaware:-2,unbearable:-2,unbelievable:-1,unbelieving:-1,unbiased:2,uncertain:-1,unclear:-1,uncomfortable:-2,unconcerned:-2,unconfirmed:-1,unconvinced:-1,uncredited:-1,undecided:-1,undercooked:-2,underestimate:-1,underestimated:-1,underestimates:-1,underestimating:-1,undermine:-2,undermined:-2,undermines:-2,undermining:-2,underperform:-2,underperformed:-2,underperforming:-2,underperforms:-2,undeserving:-2,undesirable:-2,uneasy:-2,unemployed:-1,unemployment:-2,unequal:-1,unequaled:2,unethical:-2,uneventful:-2,unfair:-2,unfavorable:-2,unfit:-2,unfitted:-2,unfocused:-2,unforgivable:-3,unforgiving:-2,unfulfilled:-2,unfunny:-2,ungenerous:-2,ungrateful:-3,unhappy:-2,unhappiness:-2,unhealthy:-2,unhygienic:-2,unified:1,unimaginative:-2,unimpressed:-2,uninspired:-2,unintelligent:-2,unintentional:-2,uninvolving:-2,united:1,unjust:-2,unlikely:-1,unlovable:-2,unloved:-2,unmatched:1,unmotivated:-2,unoriginal:-2,unparliamentary:-2,unpleasant:-2,unpleasantness:-2,unprofessional:-2,unravel:1,unreleting:-2,unresearched:-2,unsafe:-2,unsatisfied:-2,unscientific:-2,unsecured:-2,unselfish:2,unsettled:-1,unsold:-1,unsophisticated:-2,unsound:-2,unstable:-2,unstoppable:2,unsuccessful:-2,unsuccessfully:-2,unsupported:-2,unsure:-1,untarnished:2,untrue:-2,unwanted:-2,unworthy:-2,uplifting:2,uproar:-3,upset:-2,upsets:-2,upsetting:-2,uptight:-2,urgent:-1,useful:2,usefulness:2,useless:-2,uselessness:-2,vague:-2,validate:1,validated:1,validates:1,validating:1,vapid:-2,verdict:-1,verdicts:-1,vested:1,vexation:-2,vexing:-2,vibrant:3,vicious:-2,victim:-3,victimization:-3,victimize:-3,victimized:-3,victimizes:-3,victimizing:-3,victims:-3,victor:3,victors:3,victory:3,victories:3,vigilant:3,vigor:3,vile:-3,vindicate:2,vindicated:2,vindicates:2,vindicating:2,violate:-2,violated:-2,violates:-2,violating:-2,violation:-2,violations:-2,violence:-3,"violence-related":-3,violent:-3,violently:-3,virtuous:2,virulent:-2,vision:1,visionary:3,visioning:1,visions:1,vitality:3,vitamin:1,vitriolic:-3,vivacious:3,vividly:2,vociferous:-1,vomit:-3,vomited:-3,vomiting:-3,vomits:-3,vulnerability:-2,vulnerable:-2,walkout:-2,walkouts:-2,wanker:-3,want:1,war:-2,warfare:-2,warm:1,warmhearted:2,warmness:2,warmth:2,warn:-2,warned:-2,warning:-3,warnings:-3,warns:-2,waste:-1,wasted:-2,wasting:-2,wavering:-1,weak:-2,weakened:-2,weakness:-2,weaknesses:-2,wealth:3,wealthier:2,wealthy:2,weary:-2,weep:-2,weeping:-2,weird:-2,welcome:2,welcomed:2,welcomes:2,"well-being":2,"well-championed":3,"well-developed":2,"well-established":2,"well-focused":2,"well-groomed":2,"well-proportioned":2,whimsical:1,whitewash:-3,whore:-4,wicked:-2,widowed:-1,willingness:2,win:4,winner:4,winning:4,wins:4,winwin:3,wisdom:1,wish:1,wishes:1,wishing:1,withdrawal:-3,wits:2,woebegone:-2,woeful:-3,won:3,wonderful:4,wonderfully:4,woo:3,woohoo:3,wooo:4,woow:4,worn:-1,worried:-3,worries:-3,worry:-3,worrying:-3,worse:-3,worsen:-3,worsened:-3,worsening:-3,worsens:-3,worshiped:3,worst:-3,worth:2,worthless:-2,worthy:2,wow:4,wowow:4,wowww:4,wrathful:-3,wreck:-2,wrenching:-2,wrong:-2,wrongdoing:-2,wrongdoings:-2,wronged:-2,wrongful:-2,wrongfully:-2,wrongly:-2,wtf:-4,wtff:-4,wtfff:-4,xo:3,xoxo:3,xoxoxo:4,xoxoxoxo:4,yeah:1,yearning:1,yeees:2,yes:1,youthful:2,yucky:-2,yummy:3,zealot:-2,zealots:-2,zealous:2}},function(e,t,n){var i=n(333);e.exports={apply:function(e,t,n){return t>0&&i[e[t-1]]&&(n=-n),n}}},function(e){e.exports={cant:1,"can't":1,dont:1,"don't":1,doesnt:1,"doesn't":1,not:1,non:1,wont:1,"won't":1,isnt:1,"isn't":1}},function(e,t,n){var i={"./en/index":245};function r(e){var t=u(e);return n(t)}function u(e){var t=i[e];if(!(t+1)){var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}r.keys=function(){return Object.keys(i)},r.resolve=u,e.exports=r,r.id=334},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,r=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),u=(i=n(16))&&i.__esModule?i:{default:i};function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=function(e){function t(){var e,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var r=arguments.length,u=Array(r),s=0;r>s;s++)u[s]=arguments[s];return n=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),i.prefix="titleStartWithKeyword",o(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,u.default),r(t,[{key:"run",value:function(e,t){if(""===e.getLower("keyword")||""===e.getLower("title"))return this.announce("empty",0);var n=e.getLower("title"),i=n.indexOf(e.getLower("keyword")),r=i>=0&&Math.floor(n.length/2)>i;return this.announce(r,r?this.getScore("titleStartWithKeyword"):0)}}]),t}();t.default=s},function(e,t,n){var i=n(337),r=n(99),u=n(103),o=n(0),s=n(26),a=n(100),l=n(338),c=n(101),d=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(o(e)||"string"==typeof e||"function"==typeof e.splice||a(e)||c(e)||u(e)))return!e.length;var t=r(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(l(e))return!i(e).length;for(var n in e)if(d.call(e,n))return!1;return!0}},function(e,t,n){var i=n(50)(Object.keys,Object);e.exports=i},function(e,t){e.exports=function(){return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=c(n(229)),u=c(n(231)),o=n(340),s=c(n(341)),a=c(n(136)),l=c(n(241));function c(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.title="",this.content="",this.keyword="",this.permalink="",this.description="",this.thumbnailAlt="",this.contentWords=null,this.keywordPlurals=!1,this.keywordPermalink=!1,this.keywordCombinations=!1}return i(e,[{key:"get",value:function(e){return(0,r.default)(this,e)?this[e]:""}},{key:"getLower",value:function(e){return this.get(e+="Lower")}},{key:"setTitle",value:function(e){this.title=e,this.titleLower=e.toLowerCase()}},{key:"setPermalink",value:function(e){this.permalink=e,this.permalinkLower=e.toLowerCase()}},{key:"setDescription",value:function(e){this.description=e,this.descriptionLower=e.toLowerCase()}},{key:"setKeyword",value:function(e){this.keyword=e,this.keywordLower=e.toLowerCase(),this.keywordPlurals=!1,this.keywordPermalink=!1,this.keywordCombinations=!1,""!==e&&(this.keywordPlurals=new Map,this.keywordPermalink=(0,a.default)((0,l.default)(this.keywordLower.split(".").join("").replace(/[-_]/gi,"-"))),(0,u.default)(this.keywordLower).forEach(function(e){this.keywordPlurals.set(e,o.pluralize.get(e))},this),this.keywordCombinations=(0,s.default)(this.keywordPlurals),this.keywordCombinations.push(this.keywordLower))}},{key:"setContent",value:function(e){e=e.replace(/<script[^>]*>.*?<\/script>/gi,"").replace(/<style[^>]*>.*?<\/style>/gi,""),this.content=e.replace(/<!--[\s\S]*?(?:-->)/g,""),this.contentLower=e.toLowerCase(),this.contentWords=null}},{key:"getContentWords",value:function(){return null!==this.contentWords&&!1!==this.contentWords?this.contentWords:(this.contentWords=(0,u.default)(this.getLower("content")),this.contentWords)}},{key:"setThumbnailAlt",value:function(e){this.thumbnailAlt=e,void 0!==e&&(this.thumbnailAltLower=e.toLowerCase())}}]),e}();t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;t.length>n;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.irregularSingles={},this.irregularPlurals={},this.uncountables={adulthood:!0,advice:!0,agenda:!0,aid:!0,alcohol:!0,ammo:!0,anime:!0,athletics:!0,audio:!0,bison:!0,blood:!0,bream:!0,buffalo:!0,butter:!0,carp:!0,cash:!0,chassis:!0,chess:!0,clothing:!0,cod:!0,commerce:!0,cooperation:!0,corps:!0,debris:!0,diabetes:!0,digestion:!0,elk:!0,energy:!0,equipment:!0,excretion:!0,expertise:!0,flounder:!0,fun:!0,gallows:!0,garbage:!0,graffiti:!0,headquarters:!0,health:!0,herpes:!0,highjinks:!0,homework:!0,housework:!0,information:!0,jeans:!0,justice:!0,kudos:!0,labour:!0,literature:!0,machinery:!0,mackerel:!0,mail:!0,media:!0,mews:!0,moose:!0,music:!0,mud:!0,manga:!0,news:!0,pike:!0,plankton:!0,pliers:!0,police:!0,pollution:!0,premises:!0,rain:!0,research:!0,rice:!0,salmon:!0,scissors:!0,seo:!0,series:!0,sewage:!0,shambles:!0,shrimp:!0,species:!0,staff:!0,swine:!0,tennis:!0,traffic:!0,transportation:!0,trout:!0,tuna:!0,wealth:!0,welfare:!0,whiting:!0,wildebeest:!0,wildlife:!0,wordpress:!0,you:!0},this.pluralizationRules=[[/[^aeiou]ese$/i,"$0"],[/deer$/i,"$0"],[/fish$/i,"$0"],[/measles$/i,"$0"],[/o[iu]s$/i,"$0"],[/pox$/i,"$0"],[/sheep$/i,"$0"],[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"]],this.generateIrregularrules()}return i(e,[{key:"generateIrregularrules",value:function(){[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["whiskey","whiskies"],["thou","you"]].forEach(function(e){var t=e[0],n=e[1];this.irregularSingles[t]=n,this.irregularPlurals[n]=t},this)}},{key:"get",value:function(e){if(!e.length)return e;var t=e.toLowerCase();if(this.irregularPlurals.hasOwnProperty(t)&&this.restoreCase(e,t),this.irregularSingles.hasOwnProperty(t)&&this.restoreCase(e,this.irregularSingles[t]),this.uncountables.hasOwnProperty(t))return e;for(var n=this.pluralizationRules.length;n--;){var i=this.pluralizationRules[n];if(i[0].test(e))return this.replace(e,i)}return e}},{key:"restoreCase",value:function(e,t){return e===t?t:e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}},{key:"replace",value:function(e,t){var n=this;return e.replace(t[0],function(i,r){var u=n.interpolate(t[1],arguments);return n.restoreCase(""===i?e[r-1]:i,u)})}},{key:"interpolate",value:function(e,t){return e.replace(/\$(\d{1,2})/g,function(e,n){return t[n]||""})}}]),e}();t.pluralize=new r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=Array.from(e.keys()),n=t.length,o=[];function s(t){e.forEach(function(e,n){e===n||(0,i.default)(t,e)||o.push(t.join(" ").replace(n,e))})}o.push(t.join(" "));for(var a=0;n*n>a;a++)(0,r.default)(o[a])||s(o[a].split(" "));return o.push(Array.from(e.values()).join(" ")),(0,u.default)(o)};var i=o(n(31)),r=o(n(92)),u=o(n(342));function o(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){var i=n(343);e.exports=function(e){return e&&e.length?i(e):[]}},function(e,t,n){var i=n(97),r=n(344),u=n(345),o=n(98),s=n(346),a=n(347);e.exports=function(e,t,n){var l=-1,c=r,d=e.length,f=!0,p=[],g=p;if(n)f=!1,c=u;else if(200>d)g=t?[]:p;else{var h=t?null:s(e);if(h)return a(h);f=!1,c=o,g=new i}e:for(;++l<d;){var y=e[l],m=t?t(y):y;if(y=n||0!==y?y:0,f&&m==m){for(var b=g.length;b--;)if(g[b]===m)continue e;t&&g.push(m),p.push(y)}else c(g,m,n)||(g!==p&&g.push(m),p.push(y))}return p}},function(e,t,n){var i=n(51);e.exports=function(e,t){return!(null==e||!e.length)&&i(e,t,0)>-1}},function(e,t){e.exports=function(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var i=n(349),r=n(28),u=n(350),o=n(0);e.exports=function(e,t){return(o(e)?i:r)(e,u(t))}},function(e,t){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}},function(e,t){e.exports=function(e){return e}}]);
includes/class-installer.php CHANGED
@@ -156,7 +156,6 @@ class Installer {
156
  */
157
  private function deactivate() {
158
  $this->clear_rewrite_rules( false );
159
- Capability_Manager::get()->remove_capabilities();
160
  $this->remove_cron_jobs();
161
  $this->clear_cache();
162
  $this->do_action( 'deactivate' );
156
  */
157
  private function deactivate() {
158
  $this->clear_rewrite_rules( false );
 
159
  $this->remove_cron_jobs();
160
  $this->clear_cache();
161
  $this->do_action( 'deactivate' );
includes/class-module-manager.php CHANGED
@@ -144,8 +144,11 @@ class Module_Manager {
144
  'amp' => array(
145
  'id' => 'amp',
146
  'title' => esc_html__( 'AMP', 'rank-math' ),
147
- /* translators: Link to AMP plugin */
148
- 'desc' => sprintf( esc_html__( 'Install %s from WordPress.org to make Rank Math work with Accelerated Mobile Pages. It is required because AMP are different than WordPress pages and our plugin doesn\'t work with them out-of-the-box.', 'rank-math' ), '<a href="https://wordpress.org/plugins/amp/" target="_blank">' . esc_html__( 'AMP plugin', 'rank-math' ) . '</a>' ),
 
 
 
149
  'icon' => 'dashicons-smartphone',
150
  'only' => 'skip',
151
  ),
144
  'amp' => array(
145
  'id' => 'amp',
146
  'title' => esc_html__( 'AMP', 'rank-math' ),
147
+ 'desc' => sprintf(
148
+ /* translators: Link to AMP plugin */
149
+ esc_html__( 'Install %s from WordPress.org to make Rank Math work with Accelerated Mobile Pages. It is required because AMP are different than WordPress pages and our plugin doesn\'t work with them out-of-the-box.', 'rank-math' ),
150
+ '<a href="' . Helper::get_admin_url( 'help#help-panel-amp' ) . '">' . esc_html__( 'AMP plugin', 'rank-math' ) . '</a>'
151
+ ),
152
  'icon' => 'dashicons-smartphone',
153
  'only' => 'skip',
154
  ),
includes/class-shortcodes.php CHANGED
@@ -389,7 +389,7 @@ class Shortcodes {
389
  $rating = isset( $rating ) ? floatval( $rating ) : 0;
390
  ob_start();
391
  ?>
392
- <div id="rank-math-review" class="<?php echo $args['class']; ?>">
393
  <h5 class="rank-math-title"><?php echo esc_html( $title ); ?></h5>
394
 
395
  <div class="rank-math-review-item">
@@ -403,7 +403,7 @@ class Shortcodes {
403
  </div>
404
  </div>
405
  <div class="rank-math-total-wrapper">
406
- <strong><?php echo esc_html__( 'Editor\'s Rating:', 'rank-math' ); ?></strong><br />
407
  <span class="rank-math-total"><?php echo $rating; ?></span>
408
  <div class="rank-math-review-star">
409
  <div class="rank-math-review-result-wrapper">
@@ -417,12 +417,11 @@ class Shortcodes {
417
  <?php } ?>
418
  </div>
419
  </div>
420
-
421
  </div>
422
  </div>
423
  </div>
424
  <?php
425
 
426
- return ob_get_clean();
427
  }
428
  }
389
  $rating = isset( $rating ) ? floatval( $rating ) : 0;
390
  ob_start();
391
  ?>
392
+ <div id="rank-math-review">
393
  <h5 class="rank-math-title"><?php echo esc_html( $title ); ?></h5>
394
 
395
  <div class="rank-math-review-item">
403
  </div>
404
  </div>
405
  <div class="rank-math-total-wrapper">
406
+ <strong><?php echo $this->do_filter( 'review/text', esc_html__( 'Editor\'s Rating:', 'rank-math' ) ); ?></strong><br />
407
  <span class="rank-math-total"><?php echo $rating; ?></span>
408
  <div class="rank-math-review-star">
409
  <div class="rank-math-review-result-wrapper">
417
  <?php } ?>
418
  </div>
419
  </div>
 
420
  </div>
421
  </div>
422
  </div>
423
  <?php
424
 
425
+ return $this->do_filter( 'review/html', ob_get_clean() );
426
  }
427
  }
includes/class-updates.php CHANGED
@@ -30,6 +30,7 @@ class Updates {
30
  private static $updates = [
31
  '0.9.8' => 'updates/update-0.9.8.php',
32
  '0.10.0' => 'updates/update-0.10.0.php',
 
33
  ];
34
 
35
  /**
30
  private static $updates = [
31
  '0.9.8' => 'updates/update-0.9.8.php',
32
  '0.10.0' => 'updates/update-0.10.0.php',
33
+ '1.0.14' => 'updates/update-1.0.14.php',
34
  ];
35
 
36
  /**
includes/frontend/class-frontend.php CHANGED
@@ -293,7 +293,8 @@ class Frontend {
293
  if (
294
  Helper::get_settings( 'general.nofollow_external_links' ) ||
295
  Helper::get_settings( 'general.new_window_external_links' ) ||
296
- Helper::get_settings( 'general.nofollow_image_links' )
 
297
  ) {
298
  $this->filter( 'the_content', 'add_link_attributes', 11 );
299
  }
@@ -325,6 +326,7 @@ class Frontend {
325
  $nofollow_link = Helper::get_settings( 'general.nofollow_external_links' );
326
  $nofollow_image = Helper::get_settings( 'general.nofollow_image_links' );
327
  $new_window_link = Helper::get_settings( 'general.new_window_external_links' );
 
328
 
329
  foreach ( $matches[0] as $link ) {
330
  $is_dirty = false;
@@ -372,6 +374,17 @@ class Frontend {
372
  $attrs['target'] = '_blank';
373
  }
374
 
 
 
 
 
 
 
 
 
 
 
 
375
  if ( $is_dirty ) {
376
  $new = '<a' . HTML::attributes_to_string( $attrs ) . '>';
377
  $content = str_replace( $link, $new, $content );
293
  if (
294
  Helper::get_settings( 'general.nofollow_external_links' ) ||
295
  Helper::get_settings( 'general.new_window_external_links' ) ||
296
+ Helper::get_settings( 'general.nofollow_image_links' ) ||
297
+ $this->do_filter( 'noopener', true )
298
  ) {
299
  $this->filter( 'the_content', 'add_link_attributes', 11 );
300
  }
326
  $nofollow_link = Helper::get_settings( 'general.nofollow_external_links' );
327
  $nofollow_image = Helper::get_settings( 'general.nofollow_image_links' );
328
  $new_window_link = Helper::get_settings( 'general.new_window_external_links' );
329
+ $add_noopener = $this->do_filter( 'noopener', true );
330
 
331
  foreach ( $matches[0] as $link ) {
332
  $is_dirty = false;
374
  $attrs['target'] = '_blank';
375
  }
376
 
377
+ if ( $add_noopener ) {
378
+ $is_dirty = true;
379
+
380
+ // Check if rel is already added and has no dofollow.
381
+ if ( empty( $attrs['rel'] ) ) {
382
+ $attrs['rel'] = 'noopener';
383
+ } elseif ( ! Str::contains( 'noopener', $attrs['rel'] ) ) {
384
+ $attrs['rel'] .= ' noopener';
385
+ }
386
+ }
387
+
388
  if ( $is_dirty ) {
389
  $new = '<a' . HTML::attributes_to_string( $attrs ) . '>';
390
  $content = str_replace( $link, $new, $content );
includes/frontend/class-generate.php CHANGED
@@ -385,7 +385,7 @@ class Generate {
385
  }
386
 
387
  $keywords = Post::get_meta( 'focus_keyword', $object->ID );
388
- $post_content = wpautop( WordPress::strip_shortcodes( Post::is_woocommerce_page() ? $object->post_content : do_shortcode( $object->post_content ) ) );
389
  $post_content = wp_kses( $post_content, array( 'p' => array() ) );
390
 
391
  // 4. Paragraph with the focus keyword.
385
  }
386
 
387
  $keywords = Post::get_meta( 'focus_keyword', $object->ID );
388
+ $post_content = wpautop( WordPress::strip_shortcodes( Post::is_woocommerce_page() || ( function_exists( 'is_wcfm_page' ) && is_wcfm_page() ) ? $object->post_content : do_shortcode( $object->post_content ) ) );
389
  $post_content = wp_kses( $post_content, array( 'p' => array() ) );
390
 
391
  // 4. Paragraph with the focus keyword.
includes/modules/local-seo/class-local-seo.php CHANGED
@@ -57,8 +57,9 @@ class Local_Seo {
57
  }
58
 
59
  $pages = get_posts(array(
60
- 's' => $_GET['term'],
61
- 'post_type' => 'page',
 
62
  ));
63
 
64
  $data = array();
57
  }
58
 
59
  $pages = get_posts(array(
60
+ 's' => $_GET['term'],
61
+ 'post_type' => 'page',
62
+ 'posts_per_page' => -1,
63
  ));
64
 
65
  $data = array();
includes/modules/redirections/assets/redirections.js CHANGED
@@ -59,11 +59,15 @@
59
  },
60
 
61
  validateForm: function() {
62
- $( '.rank-math-redirections-form > .cmb-form' ).on( 'submit', function( ev ) {
 
 
63
  var form = $( this ),
64
  errorElems = form.find( '.validation-message' ),
65
  hasError = false
66
 
 
 
67
  // Clear error.
68
  form.find( '.invalid' ).removeClass( 'invalid' )
69
  errorElems.each( function() {
@@ -81,7 +85,8 @@
81
  })
82
 
83
  if ( hasError ) {
84
- ev.preventDefault()
 
85
  }
86
  })
87
  },
59
  },
60
 
61
  validateForm: function() {
62
+
63
+ var buttonPrimary = $( '.rank-math-redirections-form .button-primary' )
64
+ $( '.rank-math-redirections-form > .cmb-form' ).on( 'submit', function( event ) {
65
  var form = $( this ),
66
  errorElems = form.find( '.validation-message' ),
67
  hasError = false
68
 
69
+ buttonPrimary.prop( 'disabled', true )
70
+
71
  // Clear error.
72
  form.find( '.invalid' ).removeClass( 'invalid' )
73
  errorElems.each( function() {
85
  })
86
 
87
  if ( hasError ) {
88
+ event.preventDefault()
89
+ buttonPrimary.prop( 'disabled', false )
90
  }
91
  })
92
  },
includes/modules/redirections/class-db.php CHANGED
@@ -348,7 +348,7 @@ class DB {
348
 
349
  // Turn it to an array and strip stop words by comparing against an array of stopwords.
350
  $words = str_replace( '/', '-', $uri );
351
- $words = str_replace( '.', '-', $uri );
352
  $words = explode( '-', $words );
353
  return array_diff( $words, $redirection_stop_words );
354
  }
348
 
349
  // Turn it to an array and strip stop words by comparing against an array of stopwords.
350
  $words = str_replace( '/', '-', $uri );
351
+ $words = str_replace( '.', '-', $words );
352
  $words = explode( '-', $words );
353
  return array_diff( $words, $redirection_stop_words );
354
  }
includes/modules/redirections/class-redirector.php CHANGED
@@ -110,9 +110,7 @@ class Redirector {
110
  // Debug if on.
111
  $this->do_debugging();
112
 
113
- $header_code = is_array( $this->matched ) && isset( $this->matched['header_code'] ) ? $this->matched['header_code'] : Helper::get_settings( 'general.redirections_header_code' );
114
- $header_code = absint( $header_code );
115
-
116
  if ( in_array( $header_code, [ 410, 451 ], true ) ) {
117
  $this->redirect_without_target( $header_code );
118
  return;
@@ -135,16 +133,13 @@ class Redirector {
135
  * @return void
136
  */
137
  private function redirect_without_target( $header_code ) {
 
138
  if ( 410 === $header_code ) {
139
- $this->set_404();
140
  $this->status_header( 410 );
141
- return;
142
  }
143
 
144
  if ( 451 === $header_code ) {
145
- $this->set_404();
146
  $this->status_header( 451, 'Unavailable For Legal Reasons' );
147
- return;
148
  }
149
  }
150
 
@@ -293,7 +288,7 @@ class Redirector {
293
  * @param int $code HTTP status code.
294
  * @param string $description Optional. A custom description for the HTTP status.
295
  */
296
- protected function status_header( $code, $description = '' ) {
297
  status_header( $code, $description );
298
  }
299
 
@@ -301,22 +296,21 @@ class Redirector {
301
  * Sets the wp_query to 404 when this is an object.
302
  */
303
  private function set_404() {
304
- $wp_query = $this->get_wp_query();
 
 
305
  $wp_query->is_404 = true;
306
  }
307
 
308
  /**
309
- * Returns instance of WP_Query.
 
 
310
  *
311
- * @return WP_Query Instance of WP_Query.
312
  */
313
- private function get_wp_query() {
314
- global $wp_query;
315
-
316
- if ( is_object( $wp_query ) ) {
317
- return $wp_query;
318
- }
319
-
320
- return new WP_Query();
321
  }
322
  }
110
  // Debug if on.
111
  $this->do_debugging();
112
 
113
+ $header_code = $this->get_header_code();
 
 
114
  if ( in_array( $header_code, [ 410, 451 ], true ) ) {
115
  $this->redirect_without_target( $header_code );
116
  return;
133
  * @return void
134
  */
135
  private function redirect_without_target( $header_code ) {
136
+ $this->set_404();
137
  if ( 410 === $header_code ) {
 
138
  $this->status_header( 410 );
 
139
  }
140
 
141
  if ( 451 === $header_code ) {
 
142
  $this->status_header( 451, 'Unavailable For Legal Reasons' );
 
143
  }
144
  }
145
 
288
  * @param int $code HTTP status code.
289
  * @param string $description Optional. A custom description for the HTTP status.
290
  */
291
+ private function status_header( $code, $description = '' ) {
292
  status_header( $code, $description );
293
  }
294
 
296
  * Sets the wp_query to 404 when this is an object.
297
  */
298
  private function set_404() {
299
+ global $wp_query;
300
+
301
+ $wp_query = is_object( $wp_query ) ? $wp_query : new WP_Query;
302
  $wp_query->is_404 = true;
303
  }
304
 
305
  /**
306
+ * Get header code.
307
+ * 1. From matched redirection.
308
+ * 2. From optgeneral options.
309
  *
310
+ * @return int
311
  */
312
+ private function get_header_code() {
313
+ $header_code = is_array( $this->matched ) && isset( $this->matched['header_code'] ) ? $this->matched['header_code'] : Helper::get_settings( 'general.redirections_header_code' );
314
+ return absint( $header_code );
 
 
 
 
 
315
  }
316
  }
includes/modules/rich-snippet/class-admin.php CHANGED
@@ -28,14 +28,14 @@ class Admin extends Module {
28
  public function __construct() {
29
 
30
  $directory = dirname( __FILE__ );
31
- $this->config(array(
32
  'id' => 'rich-snippet',
33
  'directory' => $directory,
34
- 'help' => array(
35
  'title' => esc_html__( 'Rich Snippet', 'rank-math' ),
36
  'view' => $directory . '/views/help.php',
37
- ),
38
- ));
39
  parent::__construct();
40
 
41
  $this->filter( 'rank_math/metabox/tabs', 'add_metabox_tab' );
@@ -46,6 +46,7 @@ class Admin extends Module {
46
  * Add rich snippet tab to the metabox.
47
  *
48
  * @param array $tabs Array of tabs.
 
49
  * @return array
50
  */
51
  public function add_metabox_tab( $tabs ) {
@@ -54,15 +55,15 @@ class Admin extends Module {
54
  return $tabs;
55
  }
56
 
57
- Arr::insert( $tabs, array(
58
- 'richsnippet' => array(
59
  'icon' => 'dashicons',
60
  'title' => esc_html__( 'Rich Snippet', 'rank-math' ),
61
  'desc' => esc_html__( 'This tab contains snippet options.', 'rank-math' ),
62
  'file' => $this->directory . '/views/metabox-options.php',
63
  'capability' => 'onpage_snippet',
64
- ),
65
- ), 3 );
66
 
67
  return $tabs;
68
  }
@@ -73,21 +74,31 @@ class Admin extends Module {
73
  * @param CMB2 $cmb CMB2 instance.
74
  */
75
  public function save_advanced_meta( $cmb ) {
76
- if ( isset( $cmb->data_to_save['rank_math_snippet_recipe_instruction_type'] ) && 'HowToSection' !== $cmb->data_to_save['rank_math_snippet_recipe_instruction_type'] ) {
 
77
  return;
78
  }
79
 
80
- $recipe_instructions = isset( $cmb->data_to_save['rank_math_snippet_recipe_instructions'] ) ? $cmb->data_to_save['rank_math_snippet_recipe_instructions'] : array();
81
-
82
- if ( empty( $recipe_instructions ) ) {
83
- return;
84
  }
 
 
85
 
86
- foreach ( $recipe_instructions as $key => $recipe_instruction ) {
87
- if ( ! $recipe_instruction['name'] || ! $recipe_instruction['text'] ) {
88
- unset( $recipe_instructions[ $key ] );
89
- }
 
 
 
 
 
 
90
  }
91
- $cmb->data_to_save['rank_math_snippet_recipe_instructions'] = $recipe_instructions;
 
92
  }
93
  }
28
  public function __construct() {
29
 
30
  $directory = dirname( __FILE__ );
31
+ $this->config([
32
  'id' => 'rich-snippet',
33
  'directory' => $directory,
34
+ 'help' => [
35
  'title' => esc_html__( 'Rich Snippet', 'rank-math' ),
36
  'view' => $directory . '/views/help.php',
37
+ ],
38
+ ]);
39
  parent::__construct();
40
 
41
  $this->filter( 'rank_math/metabox/tabs', 'add_metabox_tab' );
46
  * Add rich snippet tab to the metabox.
47
  *
48
  * @param array $tabs Array of tabs.
49
+ *
50
  * @return array
51
  */
52
  public function add_metabox_tab( $tabs ) {
55
  return $tabs;
56
  }
57
 
58
+ Arr::insert( $tabs, [
59
+ 'richsnippet' => [
60
  'icon' => 'dashicons',
61
  'title' => esc_html__( 'Rich Snippet', 'rank-math' ),
62
  'desc' => esc_html__( 'This tab contains snippet options.', 'rank-math' ),
63
  'file' => $this->directory . '/views/metabox-options.php',
64
  'capability' => 'onpage_snippet',
65
+ ],
66
+ ], 3 );
67
 
68
  return $tabs;
69
  }
74
  * @param CMB2 $cmb CMB2 instance.
75
  */
76
  public function save_advanced_meta( $cmb ) {
77
+ $instructions = $this->can_save_data( $cmb );
78
+ if ( empty( $instructions ) ) {
79
  return;
80
  }
81
 
82
+ foreach ( $instructions as $key => $instruction ) {
83
+ if ( ! $instruction['name'] || ! $instruction['text'] || empty( trim( $instruction['name'] ) ) ) {
84
+ unset( $instructions[ $key ] );
85
+ }
86
  }
87
+ $cmb->data_to_save['rank_math_snippet_recipe_instructions'] = $instructions;
88
+ }
89
 
90
+ /**
91
+ * Can save metadata.
92
+ *
93
+ * @param CMB2 $cmb CMB2 instance.
94
+ *
95
+ * @return boolean|array
96
+ */
97
+ private function can_save_data( $cmb ) {
98
+ if ( isset( $cmb->data_to_save['rank_math_snippet_recipe_instruction_type'] ) && 'HowToSection' !== $cmb->data_to_save['rank_math_snippet_recipe_instruction_type'] ) {
99
+ return false;
100
  }
101
+
102
+ return isset( $cmb->data_to_save['rank_math_snippet_recipe_instructions'] ) ? $cmb->data_to_save['rank_math_snippet_recipe_instructions'] : [];
103
  }
104
  }
includes/modules/rich-snippet/class-jsonld.php CHANGED
@@ -12,8 +12,7 @@ namespace RankMath\RichSnippet;
12
 
13
  use RankMath\Helper;
14
  use RankMath\Traits\Hooker;
15
- use RankMath\Admin\Admin_Helper;
16
- use MyThemeShop\Helpers\Str;
17
  use MyThemeShop\Helpers\Conditional;
18
 
19
  defined( 'ABSPATH' ) || exit;
@@ -26,1342 +25,92 @@ class JsonLD {
26
  use Hooker;
27
 
28
  /**
29
- * The Constructor.
30
- */
31
- public function __construct() {
32
-
33
- $this->action( 'rank_math/head', 'json_ld', 90 );
34
- $this->filter( 'rank_math/json_ld', 'website', 10 );
35
-
36
- if ( is_search() ) {
37
- $this->filter( 'rank_math/json_ld', 'search_results_page', 20 );
38
- } elseif ( is_author() ) {
39
- $this->filter( 'rank_math/json_ld', 'profile_page', 20 );
40
- } elseif ( Conditional::is_woocommerce_active() && ( ( is_tax() && in_array( get_query_var( 'taxonomy' ), get_object_taxonomies( 'product' ) ) ) || is_shop() ) ) {
41
- $this->filter( 'rank_math/json_ld', 'products_page', 20 );
42
- } elseif ( is_category() || is_tag() || is_tax() ) {
43
- $this->filter( 'rank_math/json_ld', 'collection_page', 20 );
44
- } elseif ( is_home() ) {
45
- $this->filter( 'rank_math/json_ld', 'blog', 20 );
46
- } elseif ( is_singular() ) {
47
- $this->filter( 'rank_math/json_ld', 'rich_snippet', 20 );
48
- }
49
-
50
- /**
51
- * Allow developer to disable the breadcrumb json-ld output.
52
- *
53
- * @param bool $unsigned Default: true
54
- */
55
- if ( Helper::get_settings( 'general.breadcrumbs' ) && $this->do_filter( 'json_ld/breadcrumbs_enabled', true ) ) {
56
- $this->filter( 'rank_math/json_ld', 'breadcrumbs', 20 );
57
- }
58
- }
59
-
60
- /**
61
- * JSON LD output function that the functions for specific code can hook into.
62
- */
63
- public function json_ld() {
64
- /**
65
- * Collect data to output in JSON-LD.
66
- *
67
- * @param array $unsigned An array of data to output in json-ld.
68
- * @param JsonLD $unsigned JsonLD instance.
69
- */
70
- $data = $this->do_filter( 'json_ld', array(), $this );
71
- if ( is_array( $data ) && ! empty( $data ) ) {
72
- echo '<script type="application/ld+json">' . wp_json_encode( array_values( array_filter( $data ) ) ) . '</script>' . "\n";
73
- }
74
- }
75
-
76
- /**
77
- * Outputs code to allow recognition of the internal search engine.
78
- *
79
- * @link https://developers.google.com/structured-data/site-name
80
  *
81
- * @param array $data Array of json-ld data.
82
- * @return array
83
  */
84
- public function website( $data ) {
85
-
86
- $data['WebSite'] = array(
87
- '@context' => 'https://schema.org',
88
- '@type' => 'WebSite',
89
- '@id' => home_url( '/#website' ),
90
- 'url' => get_home_url(),
91
- 'name' => $this->get_website_name(),
92
- );
93
-
94
- /**
95
- * Allow disabling of the json+ld output.
96
- *
97
- * @param boolean Whether or not to display json+ld search on the frontend
98
- */
99
- if ( ! $this->do_filter( 'json_ld/disable_search', false ) ) {
100
- /**
101
- * Allows filtering of the search URL.
102
- *
103
- * @param string $search_url The search URL for this site with a `{search_term_string}` variable.
104
- */
105
- $search_url = $this->do_filter( 'json_ld/search_url', home_url( '/?s={search_term_string}' ) );
106
-
107
- $data['WebSite']['potentialAction'] = array(
108
- '@type' => 'SearchAction',
109
- 'target' => $search_url,
110
- 'query-input' => 'required name=search_term_string',
111
- );
112
- }
113
-
114
- return $data;
115
- }
116
 
117
  /**
118
- * Outputs code to allow recognition of the SearchResultsPage.
119
- *
120
- * @link https://schema.org/SearchResultsPage
121
  *
122
- * @param array $data Array of json-ld data.
123
- * @return array
124
  */
125
- public function search_results_page( $data ) {
126
-
127
- $data['SearchResultsPage'] = array(
128
- '@context' => 'https://schema.org',
129
- '@type' => 'SearchResultsPage',
130
- );
131
-
132
- return $data;
133
- }
134
 
135
  /**
136
- * Outputs code to allow recognition of the ProfilePage.
137
- *
138
- * @link https://schema.org/ProfilePage
139
  *
140
- * @param array $data Array of json-ld data.
141
- * @return array
142
  */
143
- public function profile_page( $data ) {
144
-
145
- $data['ProfilePage'] = array(
146
- '@context' => 'https://schema.org',
147
- '@type' => 'ProfilePage',
148
- 'headline' => sprintf( 'About %s', get_the_author() ),
149
- 'datePublished' => get_the_date( 'Y-m-d' ),
150
- 'dateModified' => get_the_modified_date( 'Y-m-d' ),
151
- 'about' => $this->get_author(),
152
- );
153
-
154
- return $data;
155
- }
156
-
157
- /**
158
- * Outputs code to allow recognition of the CollectionPage.
159
- *
160
- * @link https://schema.org/CollectionPage
161
- *
162
- * @param array $data Array of json-ld data.
163
- * @return array
164
- */
165
- public function products_page( $data ) {
166
-
167
- $parts = array();
168
- while ( have_posts() ) :
169
- the_post();
170
-
171
- // Title.
172
- $title = Helper::get_post_meta( 'snippet_name', get_the_ID() );
173
- $title = $title ? $title : get_the_title();
174
-
175
- // URL.
176
- $url = Helper::get_post_meta( 'snippet_url', get_the_ID() );
177
- $url = $url ? $url : get_the_permalink();
178
-
179
- $part = array(
180
- '@type' => 'Product',
181
- 'name' => $title,
182
- 'url' => $url,
183
- '@id' => $url,
184
- );
185
-
186
- $parts[] = $part;
187
- endwhile;
188
-
189
- wp_reset_query();
190
-
191
- $data['ProductsPage'] = array(
192
- '@context' => 'https://schema.org/',
193
- '@graph' => $parts,
194
- );
195
-
196
- return $data;
197
- }
198
 
199
  /**
200
- * Outputs code to allow recognition of the CollectionPage.
201
- *
202
- * @link https://schema.org/CollectionPage
203
- *
204
- * @param array $data Array of json-ld data.
205
- * @return array
206
- */
207
- public function collection_page( $data ) {
208
-
209
- $queried_object = get_queried_object();
210
- /**
211
- * Allow developer to remove snippet data.
212
- *
213
- * @param bool $unsigned Default: false
214
- * @param string $unsigned Taxonomy Name
215
- */
216
- if ( true === Helper::get_settings( 'titles.remove_' . $queried_object->taxonomy . '_snippet_data' ) || true === $this->do_filter( 'snippet/remove_taxonomy_data', false, $queried_object->taxonomy ) ) {
217
- return $data;
218
- }
219
-
220
- $data['CollectionPage'] = array(
221
- '@context' => 'https://schema.org/',
222
- '@type' => 'CollectionPage',
223
- 'headline' => single_term_title( '', false ),
224
- 'description' => strip_tags( term_description() ),
225
- 'url' => get_term_link( get_queried_object() ),
226
- 'hasPart' => $this->get_post_parts( $data ),
227
- );
228
-
229
- return $data;
230
- }
231
-
232
- /**
233
- * Outputs code to allow recognition of the Blog.
234
- *
235
- * @link https://schema.org/CollectionPage
236
- *
237
- * @param array $data Array of json-ld data.
238
- * @return array
239
  */
240
- public function blog( $data ) {
241
- $is_front = is_front_page() && is_home() || is_front_page();
242
- $data['schema'] = 'BlogPosting';
243
- $data['Blog'] = array(
244
- '@context' => 'https://schema.org/',
245
- '@type' => 'Blog',
246
- 'url' => $is_front ? home_url() : get_permalink( get_option( 'page_for_posts' ) ),
247
- 'headline' => $is_front ? $this->get_website_name() : get_the_title( get_option( 'page_for_posts' ) ),
248
- 'description' => get_bloginfo( 'description' ),
249
- 'blogPost' => $this->get_post_parts( $data ),
250
- );
251
-
252
- return $data;
253
  }
254
 
255
  /**
256
- * Generate rich snippet.
257
- *
258
- * @param array $data Array of json-ld data.
259
- * @return array
260
  */
261
- public function rich_snippet( $data ) {
262
  global $post;
263
 
264
- $schema = Helper::get_post_meta( 'rich_snippet' );
265
- if ( ! $schema && Conditional::is_woocommerce_active() && is_product() && ! metadata_exists( 'post', $post->ID, 'rank_math_rich_snippet' ) ) {
266
- $schema = Helper::get_settings( 'titles.pt_product_default_rich_snippet' );
267
- }
268
-
269
- if ( false === $schema ) {
270
- return $data;
271
  }
272
 
273
- $method = 'rich_snippet_' . $schema;
274
- $parts = array(
275
- 'canonical' => rank_math()->head->canonical( false ),
276
- 'modified' => get_post_modified_time( 'Y-m-d\TH:i:sP', true ),
277
- 'published' => get_post_time( 'Y-m-d\TH:i:sP', true ),
278
- 'excerpt' => wp_strip_all_tags( get_the_excerpt(), true ),
279
- );
280
-
281
- // Title.
282
- $title = Helper::get_post_meta( 'snippet_name' );
283
- $parts['title'] = $title ? $title : rank_math()->head->title( '' );
284
-
285
- // Description.
286
- $desc = Helper::get_post_meta( 'snippet_desc' );
287
- $parts['desc'] = $desc ? $desc : ( $parts['excerpt'] ? $parts['excerpt'] : Helper::get_post_meta( 'description' ) );
288
-
289
- // URL.
290
- $url = Helper::get_post_meta( 'snippet_url' );
291
- $parts['url'] = $url ? $url : $parts['canonical'];
292
-
293
- // Author.
294
- $author = Helper::get_post_meta( 'snippet_author' );
295
- $parts['author'] = $author ? $author : get_the_author_meta( 'display_name', $post->post_author );
296
-
297
  /**
298
- * Short-circuit if 3rd party is interested generating his own data.
 
 
 
299
  */
300
- $pre = $this->do_filter( 'snippet/' . $method, false, $parts, $data );
301
- if ( false !== $pre ) {
302
- $data['richSnippet'] = $this->do_filter( 'snippet/' . $method . '_entity', $pre );
303
- return $data;
304
- }
305
-
306
- if ( ! method_exists( $this, $method ) ) {
307
- return $data;
308
- }
309
-
310
- $entity = $this->$method( $parts, $data );
311
-
312
- // Images.
313
- $this->add_prop( 'thumbnail', $entity );
314
- if ( ! empty( $entity['image'] ) && 'video' === $schema ) {
315
- $entity['thumbnailUrl'] = $entity['image']['url'];
316
- unset( $entity['image'] );
317
- }
318
-
319
- $data['richSnippet'] = $this->do_filter( 'snippet/' . $method . '_entity', $entity );
320
-
321
- return $data;
322
- }
323
-
324
- /**
325
- * Article rich snippet.
326
- *
327
- * @param array $parts Array of global parts for snippet.
328
- * @param array $data Array of json-ld data.
329
- * @return array
330
- */
331
- private function rich_snippet_article( $parts, &$data ) {
332
- $entity = array(
333
- '@context' => 'https://schema.org',
334
- '@type' => Helper::get_post_meta( 'snippet_article_type' ),
335
- 'headline' => $parts['title'],
336
- 'description' => $parts['desc'],
337
- 'datePublished' => $parts['published'],
338
- 'dateModified' => $parts['modified'],
339
- 'publisher' => $this->get_publisher( $data ),
340
- 'mainEntityOfPage' => array(
341
- '@type' => 'WebPage',
342
- '@id' => $parts['canonical'],
343
- ),
344
- 'author' => array(
345
- '@type' => 'Person',
346
- 'name' => $parts['author'],
347
- ),
348
- );
349
-
350
- if ( isset( $data['Organization'] ) ) {
351
- unset( $data['Organization'] );
352
- }
353
-
354
- return $entity;
355
- }
356
-
357
- /**
358
- * Book rich snippet.
359
- *
360
- * @param array $parts Array of global parts for snippet.
361
- * @param array $data Array of json-ld data.
362
- * @return array
363
- */
364
- private function rich_snippet_book( $parts, &$data ) {
365
- $editions = array_filter( (array) Helper::get_post_meta( 'snippet_book_editions' ) );
366
- $entity = array(
367
- '@context' => 'https://schema.org',
368
- '@type' => 'Book',
369
- 'name' => $parts['title'],
370
- 'author' => array(
371
- '@type' => 'Person',
372
- 'name' => $parts['author'],
373
- ),
374
- 'url' => $parts['url'],
375
- 'hasPart' => array(),
376
- );
377
-
378
- foreach ( \array_reverse( $editions ) as $edition ) {
379
-
380
- if ( empty( $edition['name'] ) ) {
381
- continue;
382
- }
383
-
384
- $work = array(
385
- '@type' => 'Book',
386
- 'bookEdition' => $edition['book_edition'],
387
- 'bookFormat' => 'https://schema.org/' . $edition['book_format'],
388
- 'datePublished' => $edition['date_published'],
389
- );
390
-
391
- $fields = array( 'isbn', 'name', 'author' );
392
- foreach ( $fields as $field ) {
393
- if ( ! empty( $edition[ $field ] ) ) {
394
- $work[ $field ] = $edition[ $field ];
395
- }
396
- }
397
-
398
- if ( ! empty( $edition['url'] ) ) {
399
- $work['@id'] = $edition['url'];
400
- $work['url'] = $edition['url'];
401
- }
402
-
403
- $entity['hasPart'][] = $work;
404
- }
405
-
406
- return $entity;
407
- }
408
-
409
- /**
410
- * Course rich snippet.
411
- *
412
- * @param array $parts Array of global parts for snippet.
413
- * @param array $data Array of json-ld data.
414
- * @return array
415
- */
416
- private function rich_snippet_course( $parts, &$data ) {
417
- $entity = array(
418
- '@context' => 'https://schema.org',
419
- '@type' => 'Course',
420
- 'name' => $parts['title'],
421
- 'description' => $parts['desc'],
422
- 'provider' => array(
423
- '@type' => 'Organization',
424
- 'name' => Helper::get_post_meta( 'snippet_course_provider' ),
425
- 'sameAs' => Helper::get_post_meta( 'snippet_course_provider_url' ),
426
- ),
427
- );
428
-
429
- if ( isset( $data['Organization'] ) ) {
430
- unset( $data['Organization'] );
431
- }
432
-
433
- return $entity;
434
- }
435
-
436
- /**
437
- * Event rich snippet.
438
- *
439
- * @param array $parts Array of global parts for snippet.
440
- * @param array $data Array of json-ld data.
441
- * @return array
442
- */
443
- private function rich_snippet_event( $parts, &$data ) {
444
- $entity = array(
445
- '@context' => 'https://schema.org',
446
- '@type' => Helper::get_post_meta( 'snippet_event_type' ),
447
- 'name' => $parts['title'],
448
- 'description' => $parts['desc'],
449
- 'url' => $parts['url'],
450
- 'eventStatus' => Helper::get_post_meta( 'snippet_event_status' ),
451
- 'location' => array(
452
- '@type' => 'Place',
453
- 'name' => Helper::get_post_meta( 'snippet_event_venue' ),
454
- 'url' => Helper::get_post_meta( 'snippet_event_venueurl' ),
455
- ),
456
- 'offers' => array(
457
- '@type' => 'Offer',
458
- 'name' => 'General Admission',
459
- 'category' => 'primary',
460
- ),
461
- );
462
-
463
- if ( $start_date = Helper::get_post_meta( 'snippet_event_startdate' ) ) { // phpcs:ignore
464
- $entity['startDate'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $start_date ) );
465
- }
466
- if ( $end_date = Helper::get_post_meta( 'snippet_event_enddate' ) ) { // phpcs:ignore
467
- $entity['endDate'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $end_date ) );
468
- }
469
-
470
- $this->set_address( 'event', $entity['location'] );
471
-
472
- $this->set_data( array(
473
- 'snippet_event_price' => 'price',
474
- 'snippet_event_currency' => 'priceCurrency',
475
- 'snippet_event_ticketurl' => 'url',
476
- 'snippet_event_inventory' => 'inventoryLevel',
477
- 'snippet_event_availability' => 'availability',
478
- 'snippet_event_availability_starts' => 'validFrom',
479
- ), $entity['offers'] );
480
-
481
- if ( ! empty( $entity['offers']['validFrom'] ) ) {
482
- $entity['offers']['validFrom'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $entity['offers']['validFrom'] ) );
483
- }
484
- if ( $performer = Helper::get_post_meta( 'snippet_event_performer' ) ) { // phpcs:ignore
485
- $entity['performer'] = array(
486
- '@type' => 'Person',
487
- 'name' => $performer,
488
- );
489
- }
490
-
491
- return $entity;
492
- }
493
-
494
- /**
495
- * Job Posting rich snippet.
496
- *
497
- * @param array $parts Array of global parts for snippet.
498
- * @param array $data Array of json-ld data.
499
- * @return array
500
- */
501
- private function rich_snippet_jobposting( $parts, &$data ) {
502
- global $post;
503
-
504
- $posted = $parts['published'];
505
- if ( $start_date = Helper::get_post_meta( 'snippet_jobposting_startdate' ) ) { // phpcs:ignore
506
- $posted = str_replace( ' ', 'T', date( 'Y-m-d H:i', $start_date ) );
507
- }
508
-
509
- $entity = array(
510
- '@context' => 'https://schema.org',
511
- '@type' => 'JobPosting',
512
- 'title' => $parts['title'],
513
- 'description' => $parts['desc'] ? $parts['desc'] : get_the_content(),
514
- 'identifier' => array(
515
- '@type' => 'PropertyValue',
516
- 'name' => '',
517
- 'value' => '',
518
- ),
519
- 'datePosted' => $posted,
520
- 'validThrough' => '',
521
- 'employmentType' => Helper::get_post_meta( 'snippet_jobposting_employment_type' ),
522
- 'jobLocation' => array( '@type' => 'Place' ),
523
- 'baseSalary' => array(
524
- '@type' => 'MonetaryAmount',
525
- 'currency' => Helper::get_post_meta( 'snippet_jobposting_currency' ),
526
- 'value' => array(
527
- '@type' => 'QuantitativeValue',
528
- 'value' => absint( Helper::get_post_meta( 'snippet_jobposting_salary' ) ),
529
- 'unitText' => Helper::get_post_meta( 'snippet_jobposting_payroll' ),
530
- ),
531
- ),
532
- );
533
-
534
- $this->add_prop( 'thumbnail', $entity );
535
- $this->set_address( 'jobposting', $entity['jobLocation'] );
536
-
537
- // Publisher.
538
- if ( $organization = Helper::get_post_meta( 'snippet_jobposting_organization' ) ) { // phpcs:ignore
539
- $entity['hiringOrganization'] = array(
540
- '@type' => 'Organization',
541
- 'name' => $organization,
542
- 'sameAs' => Helper::get_post_meta( 'snippet_jobposting_url' ),
543
- 'logo' => Helper::get_post_meta( 'snippet_jobposting_logo' ),
544
- );
545
- } elseif ( isset( $data['Organization'] ) ) {
546
- $this->set_publisher( $entity['hiringOrganization'], $data['Organization'] );
547
- }
548
-
549
- if ( $end_date = Helper::get_post_meta( 'snippet_jobposting_expirydate' ) ) { // phpcs:ignore
550
- $entity['validThrough'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $end_date ) );
551
-
552
- // Unpublish job posting when expired.
553
- if ( Helper::get_post_meta( 'snippet_jobposting_unpublish' ) ) {
554
- if ( date_create( 'now' )->getTimestamp() > $end_date ) {
555
- wp_update_post( array(
556
- 'ID' => $post->ID,
557
- 'post_status' => 'draft',
558
- ) );
559
- }
560
- }
561
- }
562
-
563
- return $entity;
564
- }
565
-
566
- /**
567
- * Local Business rich snippet.
568
- *
569
- * @param array $parts Array of global parts for snippet.
570
- * @param array $data Array of json-ld data.
571
- * @return array
572
- */
573
- private function rich_snippet_local( $parts, &$data ) {
574
-
575
- $entity = array(
576
- '@context' => 'https://schema.org',
577
- '@type' => 'LocalBusiness',
578
- '@id' => rank_math()->head->canonical( false ),
579
- 'name' => $parts['title'],
580
- 'url' => $parts['url'],
581
- 'telephone' => Helper::get_post_meta( 'snippet_local_phone' ),
582
- 'geo' => array( '@type' => 'GeoCoordinates' ),
583
- 'priceRange' => Helper::get_post_meta( 'snippet_local_price_range' ),
584
- 'openingHoursSpecification' => array( '@type' => 'OpeningHoursSpecification' ),
585
- );
586
-
587
- $this->set_address( 'local', $entity );
588
-
589
- $this->set_data( array(
590
- 'snippet_local_opendays' => 'dayOfWeek',
591
- 'snippet_local_opens' => 'opens',
592
- 'snippet_local_closes' => 'closes',
593
- ), $entity['openingHoursSpecification'] );
594
-
595
- // GPS.
596
- if ( $geo = Helper::get_post_meta( 'snippet_local_geo' ) ) { // phpcs:ignore
597
- $parts = explode( ' ', $geo );
598
- if ( count( $parts ) > 1 ) {
599
- $entity['geo']['latitude'] = $parts[0];
600
- $entity['geo']['longitude'] = $parts[1];
601
- }
602
- }
603
-
604
- if ( isset( $data['Organization'] ) ) {
605
- unset( $data['Organization'] );
606
- }
607
-
608
- return $entity;
609
- }
610
-
611
- /**
612
- * Music rich snippet.
613
- *
614
- * @param array $parts Array of global parts for snippet.
615
- * @param array $data Array of json-ld data.
616
- * @return array
617
- */
618
- private function rich_snippet_music( $parts, &$data ) {
619
- $entity = array(
620
- '@context' => 'https://schema.org',
621
- '@type' => Helper::get_post_meta( 'snippet_music_type' ),
622
- 'name' => $parts['title'],
623
- 'description' => $parts['desc'],
624
- 'url' => $parts['url'],
625
- );
626
- return $entity;
627
- }
628
-
629
- /**
630
- * Product rich snippet.
631
- *
632
- * @param array $parts Array of global parts for snippet.
633
- * @param array $data Array of json-ld data.
634
- * @return array
635
- */
636
- private function rich_snippet_product( $parts, &$data ) {
637
- $sku = Helper::get_post_meta( 'snippet_product_sku' );
638
- $entity = array(
639
- '@context' => 'https://schema.org/',
640
- '@type' => 'Product',
641
- 'sku' => $sku ? $sku : '',
642
- 'name' => $parts['title'],
643
- 'description' => $parts['desc'],
644
- 'releaseDate' => $parts['published'],
645
- 'offers' => array(
646
- '@type' => 'Offer',
647
- 'priceCurrency' => Helper::get_post_meta( 'snippet_product_currency' ),
648
- 'price' => Helper::get_post_meta( 'snippet_product_price' ),
649
- 'url' => get_the_permalink(),
650
- 'priceValidUntil' => Helper::get_post_meta( 'snippet_product_price_valid' ),
651
- 'availability' => Helper::get_post_meta( 'snippet_product_instock' ) ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
652
- ),
653
- );
654
-
655
- $brand = Helper::get_post_meta( 'snippet_product_brand' );
656
- if ( $brand ) {
657
- $entity['mpn'] = $brand;
658
- $entity['brand'] = array(
659
- '@type' => 'Thing',
660
- 'name' => $brand,
661
- );
662
- }
663
-
664
- if ( Conditional::is_woocommerce_active() && is_product() ) {
665
- remove_action( 'wp_footer', array( WC()->structured_data, 'output_structured_data' ), 10 );
666
- remove_action( 'woocommerce_email_order_details', array( WC()->structured_data, 'output_email_structured_data' ), 30 );
667
- $this->set_product( $entity );
668
- }
669
-
670
- if ( Conditional::is_edd_active() && is_singular( 'download' ) ) {
671
- remove_action( 'edd_purchase_link_top', 'edd_purchase_link_single_pricing_schema', 10 );
672
- remove_action( 'loop_start', 'edd_microdata_wrapper_open', 10 );
673
- $this->set_edd( $entity );
674
- }
675
-
676
- return $entity;
677
- }
678
-
679
- /**
680
- * Recipe rich snippet.
681
- *
682
- * @param array $parts Array of global parts for snippet.
683
- * @param array $data Array of json-ld data.
684
- * @return array
685
- */
686
- private function rich_snippet_recipe( $parts, &$data ) {
687
- $entity = array(
688
- '@context' => 'https://schema.org/',
689
- '@type' => 'Recipe',
690
- 'name' => $parts['title'],
691
- 'description' => $parts['desc'],
692
- 'datePublished' => $parts['published'],
693
- 'author' => array(
694
- '@type' => 'Person',
695
- 'name' => $parts['author'],
696
- ),
697
- 'prepTime' => 'PT' . Helper::get_post_meta( 'snippet_recipe_preptime' ),
698
- 'cookTime' => 'PT' . Helper::get_post_meta( 'snippet_recipe_cooktime' ),
699
- 'totalTime' => 'PT' . Helper::get_post_meta( 'snippet_recipe_totaltime' ),
700
- 'recipeCategory' => Helper::get_post_meta( 'snippet_recipe_type' ),
701
- 'recipeCuisine' => Helper::get_post_meta( 'snippet_recipe_cuisine' ),
702
- 'keywords' => Helper::get_post_meta( 'snippet_recipe_keywords' ),
703
- 'recipeYield' => Helper::get_post_meta( 'snippet_recipe_yield' ),
704
- 'recipeIngredient' => Str::to_arr_no_empty( Helper::get_post_meta( 'snippet_recipe_ingredients' ) ),
705
- );
706
-
707
- $instruction_type = Helper::get_post_meta( 'snippet_recipe_instruction_type' );
708
-
709
- switch ( $instruction_type ) {
710
- case 'HowToSection':
711
- $instructions = Helper::get_post_meta( 'snippet_recipe_instructions' );
712
-
713
- if ( is_array( $instructions ) ) {
714
- foreach ( $instructions as $instruction ) {
715
- if ( empty( $instruction['name'] ) ) {
716
- continue;
717
- }
718
-
719
- $steps = Str::to_arr_no_empty( $instruction['text'] );
720
- if ( empty( $steps ) ) {
721
- continue;
722
- }
723
-
724
- $list = $steps;
725
- if ( 1 < count( $steps ) ) {
726
- $list = array();
727
- foreach ( $steps as $step ) {
728
- $list[] = array(
729
- 'type' => 'HowtoStep',
730
- 'text' => $step,
731
- );
732
- }
733
- }
734
-
735
- $entity['recipeInstructions'][] = array(
736
- 'type' => 'HowToSection',
737
- 'name' => $instruction['name'],
738
- 'itemListElement' => $list,
739
- );
740
- }
741
- }
742
- break;
743
-
744
- case 'HowToStep':
745
- $instructions = Str::to_arr_no_empty( Helper::get_post_meta( 'snippet_recipe_single_instructions' ) );
746
- if ( empty( $instructions ) ) {
747
- break;
748
- }
749
-
750
- if ( 1 < count( $instructions ) ) {
751
- $entity['recipeInstructions']['type'] = 'HowToSection';
752
- $entity['recipeInstructions']['name'] = Helper::get_post_meta( 'snippet_recipe_instruction_name' );
753
- foreach ( $instructions as $instruction ) {
754
- $entity['recipeInstructions']['itemListElement'][] = array(
755
- 'type' => 'HowtoStep',
756
- 'text' => $instruction,
757
- );
758
- }
759
- } else {
760
- $entity['recipeInstructions'] = $instructions;
761
- }
762
- break;
763
-
764
- default:
765
- $entity['recipeInstructions'] = Helper::get_post_meta( 'snippet_recipe_single_instructions' );
766
- break;
767
- }
768
-
769
- if ( $calories = Helper::get_post_meta( 'snippet_recipe_calories' ) ) { // phpcs:ignore
770
- $entity['nutrition'] = array(
771
- '@type' => 'NutritionInformation',
772
- 'calories' => $calories,
773
- );
774
- }
775
-
776
- if ( $rating = Helper::get_post_meta( 'snippet_recipe_rating' ) ) { // phpcs:ignore
777
- $entity['aggregateRating'] = array(
778
- '@type' => 'AggregateRating',
779
- 'ratingValue' => $rating,
780
- 'bestRating' => Helper::get_post_meta( 'snippet_recipe_rating_max' ),
781
- 'worstRating' => Helper::get_post_meta( 'snippet_recipe_rating_min' ),
782
- 'ratingCount' => '1',
783
- );
784
- }
785
-
786
- if ( $video = Helper::get_post_meta( 'snippet_recipe_video' ) ) { // phpcs:ignore
787
- $entity['video'] = array(
788
- '@type' => 'VideoObject',
789
- 'embedUrl' => $video,
790
- 'description' => Helper::get_post_meta( 'snippet_recipe_video_description' ),
791
- 'name' => Helper::get_post_meta( 'snippet_recipe_video_name' ),
792
- 'thumbnailUrl' => Helper::get_post_meta( 'snippet_recipe_video_thumbnail' ),
793
- 'uploadDate' => Helper::get_post_meta( 'snippet_recipe_video_date' ),
794
- );
795
- }
796
-
797
- return $entity;
798
- }
799
-
800
- /**
801
- * Restaurant rich snippet.
802
- *
803
- * @param array $parts Array of global parts for snippet.
804
- * @param array $data Array of json-ld data.
805
- * @return array
806
- */
807
- private function rich_snippet_restaurant( $parts, &$data ) {
808
- $entity = $this->rich_snippet_local( $parts, $data );
809
-
810
- $entity['@type'] = 'Restaurant';
811
- $entity['description'] = $parts['desc'];
812
- $entity['hasMenu'] = Helper::get_post_meta( 'snippet_restaurant_menu' );
813
-
814
- $serves_cuisine = trim( Helper::get_post_meta( 'snippet_restaurant_serves_cuisine' ) );
815
- if ( $serves_cuisine ) {
816
- $entity['servesCuisine'] = explode( ',', $serves_cuisine );
817
  }
818
-
819
- return $entity;
820
  }
821
 
822
  /**
823
- * Video rich snippet.
824
  *
825
- * @param array $parts Array of global parts for snippet.
826
  * @param array $data Array of json-ld data.
827
- * @return array
828
- */
829
- private function rich_snippet_video( $parts, &$data ) {
830
- $entity = array(
831
- '@context' => 'https://schema.org',
832
- '@type' => 'VideoObject',
833
- 'name' => $parts['title'],
834
- 'description' => $parts['desc'],
835
- 'uploadDate' => $parts['published'],
836
- 'duration' => 'PT' . Helper::get_post_meta( 'snippet_video_duration' ),
837
- );
838
-
839
- $this->set_data( array(
840
- 'snippet_video_url' => 'contentUrl',
841
- 'snippet_video_embed_url' => 'embedUrl',
842
- 'snippet_video_views' => 'interactionCount',
843
- ), $entity );
844
-
845
- if ( isset( $data['Organization'] ) ) {
846
- $this->set_publisher( $entity, $data['Organization'] );
847
- unset( $data['Organization'] );
848
- }
849
-
850
- return $entity;
851
- }
852
-
853
- /**
854
- * Person rich snippet.
855
- *
856
- * @param array $parts Array of global parts for snippet.
857
- * @param array $data Array of json-ld data.
858
- * @return array
859
- */
860
- private function rich_snippet_person( $parts, &$data ) {
861
- $entity = array(
862
- '@context' => 'https://schema.org',
863
- '@type' => 'Person',
864
- 'name' => $parts['title'],
865
- 'description' => $parts['desc'],
866
- 'email' => Helper::get_post_meta( 'snippet_person_email' ),
867
- 'gender' => Helper::get_post_meta( 'snippet_person_gender' ),
868
- 'jobTitle' => Helper::get_post_meta( 'snippet_person_job_title' ),
869
- );
870
-
871
- $this->set_address( 'person', $entity );
872
-
873
- return $entity;
874
- }
875
-
876
- /**
877
- * Review rich snippet.
878
- *
879
- * @param array $parts Array of global parts for snippet.
880
- * @param array $data Array of json-ld data.
881
- * @return array
882
- */
883
- private function rich_snippet_review( $parts, &$data ) {
884
- $entity = array(
885
- '@context' => 'https://schema.org',
886
- '@type' => 'Review',
887
- 'author' => array(
888
- '@type' => 'Person',
889
- 'name' => $parts['author'],
890
- ),
891
- 'datePublished' => $parts['published'],
892
- 'description' => $parts['desc'],
893
- 'itemReviewed' => array(
894
- '@type' => 'Thing',
895
- 'name' => $parts['title'],
896
- ),
897
- 'reviewRating' => array(
898
- '@type' => 'Rating',
899
- 'worstRating' => Helper::get_post_meta( 'snippet_review_worst_rating' ),
900
- 'bestRating' => Helper::get_post_meta( 'snippet_review_best_rating' ),
901
- 'ratingValue' => Helper::get_post_meta( 'snippet_review_rating_value' ),
902
- ),
903
- );
904
-
905
- $this->add_prop( 'thumbnail', $entity['itemReviewed'] );
906
-
907
- $this->filter( 'the_content', 'rm_review_inject_data', 11 );
908
-
909
- return $entity;
910
- }
911
-
912
- /**
913
- * Service rich snippet.
914
- *
915
- * @param array $parts Array of global parts for snippet.
916
- * @param array $data Array of json-ld data.
917
- * @return array
918
- */
919
- private function rich_snippet_service( $parts, &$data ) {
920
- $entity = array(
921
- '@context' => 'https://schema.org',
922
- '@type' => 'Service',
923
- 'name' => $parts['title'],
924
- 'description' => $parts['desc'],
925
- 'serviceType' => Helper::get_post_meta( 'snippet_service_type' ),
926
- 'offers' => array(
927
- '@type' => 'Offer',
928
- 'price' => Helper::get_post_meta( 'snippet_service_price' ),
929
- 'priceCurrency' => Helper::get_post_meta( 'snippet_service_price_currency' ),
930
- ),
931
- 'aggregateRating' => array(
932
- '@type' => 'AggregateRating',
933
- 'ratingValue' => Helper::get_post_meta( 'snippet_service_rating_value' ),
934
- 'ratingCount' => Helper::get_post_meta( 'snippet_service_rating_count' ),
935
- ),
936
- );
937
-
938
- return $entity;
939
- }
940
-
941
- /**
942
- * SoftwareApplication rich snippet.
943
- *
944
- * @param array $parts Array of global parts for snippet.
945
- * @param array $data Array of json-ld data.
946
- * @return array
947
- */
948
- private function rich_snippet_software( $parts, &$data ) {
949
- $entity = array(
950
- '@context' => 'https://schema.org',
951
- '@type' => 'SoftwareApplication',
952
- 'name' => $parts['title'],
953
- 'description' => $parts['desc'],
954
- 'operatingSystem' => Helper::get_post_meta( 'snippet_software_operating_system' ),
955
- 'applicationCategory' => Helper::get_post_meta( 'snippet_software_application_category' ),
956
- 'offers' => array(
957
- '@type' => 'Offer',
958
- 'price' => Helper::get_post_meta( 'snippet_software_price' ),
959
- 'priceCurrency' => Helper::get_post_meta( 'snippet_software_price_currency' ),
960
- ),
961
- 'aggregateRating' => array(
962
- '@type' => 'AggregateRating',
963
- 'ratingValue' => Helper::get_post_meta( 'snippet_software_rating_value' ),
964
- 'ratingCount' => Helper::get_post_meta( 'snippet_software_rating_count' ),
965
- ),
966
- );
967
-
968
- return $entity;
969
- }
970
-
971
- /**
972
- * Set product data for rich snippet.
973
- *
974
- * @param array $entity Array of json-ld entity.
975
- */
976
- private function set_product( &$entity ) {
977
- global $post;
978
- $product_id = get_the_ID();
979
- $permalink = get_permalink();
980
- $product = wc_get_product( $product_id );
981
- $attributes = new WC_Attributes( $product );
982
-
983
- if ( Helper::is_module_active( 'woocommerce' ) ) {
984
- $wc = new \RankMath\WooCommerce\Woocommerce;
985
- $brand = $wc->get_product_var_brand();
986
-
987
- // Brand.
988
- if ( $brand ) {
989
- $entity['mpn'] = $brand;
990
- $entity['brand'] = array(
991
- '@type' => 'Thing',
992
- 'name' => $brand,
993
- );
994
- }
995
- }
996
-
997
- $entity['name'] = $product->get_title();
998
- $entity['description'] = strip_shortcodes( $post->post_excerpt );
999
- $entity['url'] = $permalink;
1000
- $entity['sku'] = $product->get_sku() ? $product->get_sku() : '';
1001
-
1002
- // Categories.
1003
- $categories = get_the_terms( $product_id, 'product_cat' );
1004
- if ( ! is_wp_error( $categories ) && ! empty( $categories ) ) {
1005
- $category = '';
1006
- if ( 0 === $categories[0]->parent ) {
1007
- $category = $categories[0]->name;
1008
- } else {
1009
- $category = array();
1010
- $ancestors = get_ancestors( $categories[0]->term_id, 'product_cat' );
1011
- foreach ( $ancestors as $parent ) {
1012
- $term = get_term( $parent, 'product_cat' );
1013
- $category[] = $term->name;
1014
- }
1015
- $category[] = $categories[0]->name;
1016
- $category = join( ' > ', $category );
1017
- }
1018
- $entity['category'] = $category;
1019
- }
1020
-
1021
- $related_products = wc_get_related_products( $product_id, 5 );
1022
- if ( ! empty( $related_products ) ) {
1023
- foreach ( $related_products as $related_id ) {
1024
- $entity['isRelatedTo'][] = array(
1025
- '@type' => 'Product',
1026
- 'url' => get_permalink( $related_id ),
1027
- 'name' => get_the_title( $related_id ),
1028
- );
1029
- }
1030
- }
1031
-
1032
- $upsells = $product->get_upsell_ids();
1033
- if ( ! empty( $upsells ) ) {
1034
- foreach ( $upsells as $upsell_id ) {
1035
- $entity['isSimilarTo'][] = array(
1036
- '@type' => 'Product',
1037
- 'url' => get_permalink( $upsell_id ),
1038
- 'name' => get_the_title( $upsell_id ),
1039
- );
1040
- }
1041
- }
1042
-
1043
- if ( $product->has_weight() ) {
1044
- $hash = array(
1045
- 'lbs' => 'LBR',
1046
- 'kg' => 'KGM',
1047
- 'g' => 'GRM',
1048
- 'oz' => 'ONZ',
1049
- );
1050
- $unit = get_option( 'woocommerce_weight_unit' );
1051
-
1052
- $entity['weight'] = array(
1053
- '@type' => 'QuantitativeValue',
1054
- 'unitCode' => isset( $hash[ $unit ] ) ? $hash[ $unit ] : 'LBR',
1055
- 'value' => $product->get_weight(),
1056
- );
1057
- }
1058
-
1059
- if ( $product->has_dimensions() ) {
1060
- $hash = array(
1061
- 'in' => 'INH',
1062
- 'm' => 'MTR',
1063
- 'cm' => 'CMT',
1064
- 'mm' => 'MMT',
1065
- 'yd' => 'YRD',
1066
- );
1067
- $unit = get_option( 'woocommerce_dimension_unit' );
1068
- $code = isset( $hash[ $unit ] ) ? $hash[ $unit ] : '';
1069
-
1070
- $entity['height'] = array(
1071
- '@type' => 'QuantitativeValue',
1072
- 'unitCode' => $code,
1073
- 'value' => $product->get_height(),
1074
- );
1075
-
1076
- $entity['width'] = array(
1077
- '@type' => 'QuantitativeValue',
1078
- 'unitCode' => $code,
1079
- 'value' => $product->get_width(),
1080
- );
1081
-
1082
- $entity['depth'] = array(
1083
- '@type' => 'QuantitativeValue',
1084
- 'unitCode' => $code,
1085
- 'value' => $product->get_length(),
1086
- );
1087
- }
1088
-
1089
- if ( $product->get_image_id() ) {
1090
- $wpimage = wp_get_attachment_image_src( $product->get_image_id(), 'single-post-thumbnail' );
1091
- $entity['image'][] = array(
1092
- '@type' => 'ImageObject',
1093
- 'url' => $wpimage[0],
1094
- 'height' => $wpimage[2],
1095
- 'width' => $wpimage[1],
1096
- );
1097
-
1098
- $gallery = $product->get_gallery_image_ids();
1099
- foreach ( $gallery as $image_id ) {
1100
- $wpimage = wp_get_attachment_image_src( $image_id, 'single-post-thumbnail' );
1101
- $entity['image'][] = array(
1102
- '@type' => 'ImageObject',
1103
- 'url' => $wpimage[0],
1104
- 'height' => $wpimage[2],
1105
- 'width' => $wpimage[1],
1106
- );
1107
- }
1108
- }
1109
-
1110
- // Offers.
1111
- $do_single_offer = true;
1112
- $seller = $this->get_seller();
1113
- if ( $product->is_type( 'variable' ) ) {
1114
- $variations = $product->get_available_variations();
1115
-
1116
- if ( ! empty( $variations ) ) {
1117
- $do_single_offer = false;
1118
- $entity['offers'] = array();
1119
-
1120
- foreach ( $variations as $variation ) {
1121
-
1122
- // Offers are only for public products.
1123
- if ( $variation['variation_is_visible'] && $variation['variation_is_active'] ) {
1124
- $price_valid_until = get_post_meta( $variation['variation_id'], '_sale_price_dates_to', true );
1125
-
1126
- $offer = array(
1127
- '@type' => 'Offer',
1128
- 'description' => strip_tags( $variation['variation_description'] ),
1129
- 'price' => $variation['display_price'],
1130
- 'priceCurrency' => get_woocommerce_currency(),
1131
- 'availability' => $variation['is_in_stock'] ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
1132
- 'itemCondition' => 'NewCondition',
1133
- 'seller' => $seller,
1134
- 'priceValidUntil' => $price_valid_until ? date( 'Y-m-d', $price_valid_until ) : '',
1135
- );
1136
-
1137
- // Generate a unique variation ID.
1138
- if ( '' !== $variation['sku'] ) {
1139
- $offer['sku'] = $variation['sku'];
1140
- $offer['@id'] = $permalink . '#' . $variation['sku'];
1141
- } else {
1142
- foreach ( $variation['attributes'] as $key => $value ) {
1143
- if ( '' !== $value ) {
1144
- $offer['@id'] = $permalink . '#' . substr( $key, 10 ) . '-' . filter_var( $value, FILTER_SANITIZE_URL );
1145
- }
1146
- }
1147
- }
1148
-
1149
- // Look for itemCondition override by variation.
1150
- foreach ( $variation['attributes'] as $key => $value ) {
1151
- if ( stristr( $key, 'itemCondition' ) ) {
1152
- $offer['itemCondition'] = $value;
1153
- }
1154
- }
1155
- $entity['offers'][] = $offer;
1156
- }
1157
- }
1158
- }
1159
- }
1160
-
1161
- if ( $do_single_offer ) {
1162
- $offer = array(
1163
- '@type' => 'Offer',
1164
- 'price' => $product->get_price() ? $product->get_price() : '0',
1165
- 'priceCurrency' => get_woocommerce_currency(),
1166
- 'availability' => $product->is_in_stock() ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
1167
- 'itemCondition' => 'NewCondition',
1168
- 'seller' => $seller,
1169
- 'url' => $permalink,
1170
- 'priceValidUntil' => ! empty( $product->get_date_on_sale_to() ) ? date( 'Y-m-d', strtotime( $product->get_date_on_sale_to() ) ) : '',
1171
- );
1172
-
1173
- $attributes->assign_property( $offer, 'itemCondition' );
1174
- $entity['offers'] = $offer;
1175
- }
1176
-
1177
- // Ratings.
1178
- if ( $product->get_rating_count() > 0 ) {
1179
- // Aggregate Rating.
1180
- $entity['aggregateRating'] = array(
1181
- '@type' => 'AggregateRating',
1182
- 'ratingValue' => $product->get_average_rating(),
1183
- 'bestRating' => '5',
1184
- 'ratingCount' => (string) $product->get_rating_count(),
1185
- 'reviewCount' => $product->get_review_count(),
1186
- );
1187
-
1188
- // Reviews.
1189
- $comments = get_comments(array(
1190
- 'post_type' => 'product',
1191
- 'post_id' => get_the_ID(),
1192
- 'status' => 'approve',
1193
- ));
1194
- foreach ( $comments as $comment ) {
1195
- $entity['review'][] = array(
1196
- '@type' => 'Review',
1197
- '@id' => $permalink . '#li-comment-' . $comment->comment_ID,
1198
- 'description' => $comment->comment_content,
1199
- 'datePublished' => $comment->comment_date,
1200
- 'reviewRating' => array(
1201
- '@type' => 'Rating',
1202
- 'ratingValue' => intval( get_comment_meta( $comment->comment_ID, 'rating', true ) ),
1203
- ),
1204
- 'author' => array(
1205
- '@type' => 'Person',
1206
- 'name' => $comment->comment_author,
1207
- 'url' => $comment->comment_author_url,
1208
- ),
1209
- );
1210
- }
1211
- }
1212
-
1213
- // GTIN numbers need product attributes.
1214
- $attributes->assign_property( $entity, 'gtin8' );
1215
- $attributes->assign_property( $entity, 'gtin12' );
1216
- $attributes->assign_property( $entity, 'gtin13' );
1217
- $attributes->assign_property( $entity, 'gtin14' );
1218
-
1219
- // Color.
1220
- $attributes->assign_property( $entity, 'color' );
1221
-
1222
- // Remaining Attributes.
1223
- $attributes->assign_remaining( $entity );
1224
- }
1225
-
1226
- /**
1227
- * Set EDD data for rich snippet.
1228
- *
1229
- * @param array $entity Array of json-ld entity.
1230
- */
1231
- private function set_edd( &$entity ) {
1232
- global $post;
1233
-
1234
- $product_id = get_the_ID();
1235
- $permalink = get_permalink();
1236
- $product = new \EDD_Download( $product_id );
1237
-
1238
- $entity['name'] = $post->post_title;
1239
- $entity['description'] = strip_shortcodes( $post->post_content );
1240
- $entity['url'] = $permalink;
1241
-
1242
- // Sku?
1243
- if ( $product->get_sku() ) {
1244
- $entity['sku'] = $product->get_sku();
1245
- }
1246
-
1247
- // Categories.
1248
- $categories = get_the_terms( $product_id, 'download_category' );
1249
- if ( ! is_wp_error( $categories ) && ! empty( $categories ) ) {
1250
- $category = '';
1251
- if ( 0 === $categories[0]->parent ) {
1252
- $category = $categories[0]->name;
1253
- } else {
1254
- $ancestors = get_ancestors( $categories[0]->term_id, 'download_category' );
1255
- foreach ( $ancestors as $parent ) {
1256
- $term = get_term( $parent, 'download_category' );
1257
- $category[] = $term->name;
1258
- }
1259
- $category[] = $categories[0]->name;
1260
- $category = join( ' > ', $category );
1261
- }
1262
- $entity['category'] = $category;
1263
- }
1264
-
1265
- // Offers.
1266
- $do_single_offer = true;
1267
- $seller = $this->get_seller();
1268
-
1269
- if ( $product->has_variable_prices() ) {
1270
- $variations = $product->get_prices();
1271
-
1272
- if ( ! empty( $variations ) ) {
1273
- $do_single_offer = false;
1274
- $entity['offers'] = array();
1275
- foreach ( $variations as $variation ) {
1276
- // Offers are only for public products.
1277
- $offer = array(
1278
- '@type' => 'Offer',
1279
- 'description' => $variation['name'],
1280
- 'price' => $variation['amount'],
1281
- 'priceCurrency' => edd_get_currency(),
1282
- 'seller' => $seller,
1283
- 'url' => $permalink,
1284
- );
1285
-
1286
- $entity['offers'][] = $offer;
1287
- }
1288
- }
1289
- }
1290
-
1291
- if ( $do_single_offer ) {
1292
-
1293
- $offer = array(
1294
- '@type' => 'Offer',
1295
- 'price' => $product->get_price() ? $product->get_price() : '0',
1296
- 'priceCurrency' => edd_get_currency(),
1297
- 'seller' => $seller,
1298
- 'url' => $permalink,
1299
- );
1300
-
1301
- $entity['offers'] = $offer;
1302
- }
1303
-
1304
- }
1305
-
1306
- /**
1307
- * Get seller
1308
  *
1309
  * @return array
1310
  */
1311
- public function get_seller() {
1312
-
1313
- $site_url = site_url();
1314
- $type = Helper::get_settings( 'titles.knowledgegraph_type' );
1315
-
1316
- $seller = array(
1317
- '@type' => 'person' === $type ? 'Person' : 'Organization',
1318
- '@id' => $site_url . '/',
1319
- 'name' => $this->get_website_name(),
1320
- 'url' => $site_url,
1321
- );
1322
-
1323
- if ( 'company' === $type ) {
1324
- $seller['logo'] = Helper::get_settings( 'titles.knowledgegraph_logo' );
1325
- }
1326
-
1327
- return $seller;
1328
- }
1329
-
1330
- /**
1331
- * Generate breadcrumbs JSON-LD.
1332
- *
1333
- * @param array $data Array of json-ld data.
1334
- */
1335
- public function breadcrumbs( $data ) {
1336
- $breadcrumbs = rank_math()->breadcrumbs;
1337
- $crumbs = $breadcrumbs ? $breadcrumbs->get_crumbs() : false;
1338
- if ( empty( $crumbs ) ) {
1339
- return $data;
1340
- }
1341
-
1342
- $entity = array(
1343
- '@context' => 'https://schema.org',
1344
- '@type' => 'BreadcrumbList',
1345
- 'itemListElement' => array(),
1346
- );
1347
-
1348
- foreach ( $crumbs as $index => $crumb ) {
1349
- if ( ! empty( $crumb['hide_in_schema'] ) ) {
1350
- continue;
1351
  }
1352
-
1353
- $entity['itemListElement'][] = array(
1354
- '@type' => 'ListItem',
1355
- 'position' => $index + 1,
1356
- 'item' => array(
1357
- '@id' => $crumb[1],
1358
- 'name' => $crumb[0],
1359
- ),
1360
- );
1361
  }
1362
 
1363
- $data['BreadcrumbList'] = $this->do_filter( 'snippet/breadcrumb_entity', $entity );
1364
-
1365
  return $data;
1366
  }
1367
 
@@ -1372,47 +121,43 @@ class JsonLD {
1372
  * @param array $entity Array of json-ld entity.
1373
  */
1374
  public function add_prop( $prop, &$entity ) {
1375
-
1376
  if ( empty( $prop ) ) {
1377
  return;
1378
  }
1379
 
 
 
 
 
 
 
1380
  // phpcs:disable
1381
- if ( 'email' === $prop && $email = Helper::get_settings( 'titles.email' ) ) {
1382
- $entity['email'] = $email;
1383
  return;
1384
  }
1385
 
1386
  if ( 'url' === $prop && $url = Helper::get_settings( 'titles.url' ) ) {
1387
- $entity['url'] = Str::starts_with( 'http://', $url ) || Str::starts_with( 'https://', $url ) ? $url : 'http://' . $url;
1388
  return;
1389
  }
1390
 
1391
  if ( 'address' === $prop && $address = Helper::get_settings( 'titles.local_address' ) ) {
1392
- $entity['address'] = array( '@type' => 'PostalAddress' ) + $address;
1393
  return;
1394
  }
1395
 
1396
- if ( 'image' === $prop && $logo = Helper::get_settings( 'titles.knowledgegraph_logo' ) ) {
1397
- $entity['logo'] = $logo;
1398
- return;
1399
- }
1400
-
1401
- if ( 'phone' === $prop && $phone = Helper::get_settings( 'titles.phone' ) ) {
1402
- $entity['telephone'] = $phone;
1403
- return;
1404
- }
1405
  // phpcs:enable
1406
 
1407
  if ( 'thumbnail' === $prop ) {
1408
  $image = Helper::get_thumbnail_with_fallback( get_the_ID(), 'full' );
1409
  if ( ! empty( $image ) ) {
1410
- $entity['image'] = array(
1411
  '@type' => 'ImageObject',
1412
  'url' => $image[0],
1413
  'width' => $image[1],
1414
  'height' => $image[2],
1415
- );
1416
  }
1417
 
1418
  return;
@@ -1424,7 +169,7 @@ class JsonLD {
1424
  *
1425
  * @return string
1426
  */
1427
- private function get_website_name() {
1428
  $name = Helper::get_settings( 'titles.knowledgegraph_name' );
1429
 
1430
  return $name ? $name : get_bloginfo( 'name' );
@@ -1434,49 +179,46 @@ class JsonLD {
1434
  * Get post parts
1435
  *
1436
  * @param array $data Array of json-ld data.
 
1437
  * @return array
1438
  */
1439
- private function get_post_parts( $data ) {
1440
- $parts = array();
1441
 
1442
- while ( have_posts() ) :
1443
  the_post();
1444
 
1445
- $schema = Helper::get_post_meta( 'rich_snippet', get_the_ID() );
 
1446
  if ( ! $schema ) {
1447
  continue;
1448
  }
1449
 
1450
- // Title.
1451
- $title = Helper::get_post_meta( 'snippet_name', get_the_ID() );
1452
- $title = $title ? $title : get_the_title();
1453
 
1454
- // URL.
1455
- $url = Helper::get_post_meta( 'snippet_url', get_the_ID() );
1456
- $url = $url ? $url : get_the_permalink();
1457
-
1458
- $part = array(
1459
  '@type' => isset( $data['schema'] ) ? $data['schema'] : $schema,
1460
  'headline' => $title,
1461
  'name' => $title,
1462
  'url' => $url,
 
1463
  'dateModified' => get_post_modified_time( 'Y-m-d\TH:i:sP', true ),
1464
  'datePublished' => get_post_time( 'Y-m-d\TH:i:sP', true ),
1465
- 'mainEntityOfPage' => $url,
1466
  'author' => $this->get_author(),
1467
  'publisher' => $this->get_publisher( $data ),
1468
- 'image' => $this->get_post_image(),
1469
- 'keywords' => $this->get_post_terms(),
1470
  'commentCount' => get_comments_number(),
1471
- 'comment' => $this->get_comments(),
1472
- );
1473
 
1474
  if ( 'article' === $schema ) {
1475
  $part['wordCount'] = str_word_count( get_the_content() );
1476
  }
1477
 
1478
  $parts[] = $part;
1479
- endwhile;
1480
 
1481
  wp_reset_query();
1482
 
@@ -1486,23 +228,23 @@ class JsonLD {
1486
  /**
1487
  * Get publisher
1488
  *
1489
- * @param array $data Entity.
 
1490
  * @return array
1491
  */
1492
- private function get_publisher( $data ) {
1493
-
1494
  if ( ! isset( $data['Organization'] ) && ! isset( $data['Person'] ) ) {
1495
- return array(
1496
  '@type' => 'Organization',
1497
  'name' => $this->get_website_name(),
1498
- 'logo' => array(
1499
  '@type' => 'ImageObject',
1500
  'url' => Helper::get_settings( 'titles.knowledgegraph_logo' ),
1501
- ),
1502
- );
1503
  }
1504
 
1505
- $entity = array();
1506
  if ( isset( $data['Organization'] ) ) {
1507
  $this->set_publisher( $entity, $data['Organization'] );
1508
  $logo = isset( $entity['publisher']['logo']['url'] ) ? $entity['publisher']['logo']['url'] : '';
@@ -1511,10 +253,10 @@ class JsonLD {
1511
  if ( isset( $data['Person'] ) ) {
1512
  $this->set_publisher( $entity, $data['Person'] );
1513
  $logo = Helper::get_settings( 'titles.knowledgegraph_logo' );
1514
- $entity['publisher']['logo'] = array(
1515
  '@type' => 'ImageObject',
1516
  'url' => $logo,
1517
- );
1518
  }
1519
 
1520
  $entity['publisher']['@type'] = 'Organization';
@@ -1525,75 +267,77 @@ class JsonLD {
1525
  /**
1526
  * Get post thumbnail if any
1527
  *
 
 
1528
  * @return array
1529
  */
1530
- private function get_post_image() {
1531
- if ( ! has_post_thumbnail() ) {
1532
  return false;
1533
  }
1534
 
1535
- $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' );
1536
 
1537
- return array(
1538
  '@type' => 'ImageObject',
1539
  'url' => $image[0],
1540
  'height' => $image[2],
1541
  'width' => $image[1],
1542
- );
1543
  }
1544
 
1545
  /**
1546
  * Get post terms
1547
  *
 
1548
  * @param string $taxonomy Taxonomy name.
 
1549
  * @return array
1550
  */
1551
- private function get_post_terms( $taxonomy = false ) {
1552
  if ( false === $taxonomy ) {
1553
  $taxonomy = get_queried_object();
1554
  if ( ! is_object( $taxonomy ) ) {
1555
- return array();
1556
  }
1557
  $taxonomy = $taxonomy->taxonomy;
1558
  }
1559
 
1560
- $tags = wp_get_post_terms( get_the_ID(), $taxonomy, array( 'fields' => 'names' ) );
1561
- if ( $tags && ! is_wp_error( $tags ) ) {
1562
- return $tags;
1563
- }
1564
  }
1565
 
1566
  /**
1567
  * Get comments data
1568
  *
 
 
1569
  * @return array
1570
  */
1571
- private function get_comments() {
1572
- global $post;
1573
-
1574
- $comments = array();
1575
- $post_comments = get_comments(array(
1576
- 'post_id' => $post->ID,
1577
  'number' => 10,
1578
  'status' => 'approve',
1579
  'type' => 'comment',
1580
- ));
1581
 
1582
  if ( empty( $post_comments ) ) {
1583
  return '';
1584
  }
1585
 
 
1586
  foreach ( $post_comments as $comment ) {
1587
- $comments[] = array(
1588
  '@type' => 'Comment',
1589
  'dateCreated' => $comment->comment_date,
1590
  'description' => $comment->comment_content,
1591
- 'author' => array(
1592
  '@type' => 'Person',
1593
  'name' => $comment->comment_author,
1594
  'url' => $comment->comment_author_url,
1595
- ),
1596
- );
1597
  }
1598
 
1599
  return $comments;
@@ -1604,12 +348,12 @@ class JsonLD {
1604
  *
1605
  * @return array
1606
  */
1607
- private function get_author() {
1608
- $author = array(
1609
  '@type' => 'Person',
1610
  'name' => get_the_author_meta( 'display_name' ),
1611
  'url' => esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
1612
- );
1613
 
1614
  if ( get_the_author_meta( 'description' ) ) {
1615
  $author['description'] = get_the_author_meta( 'description' );
@@ -1618,12 +362,12 @@ class JsonLD {
1618
  if ( version_compare( get_bloginfo( 'version' ), '4.2', '>=' ) ) {
1619
  $image = get_avatar_url( get_the_author_meta( 'user_email' ), 96 );
1620
  if ( $image ) {
1621
- $author['image'] = array(
1622
  '@type' => 'ImageObject',
1623
  'url' => $image,
1624
  'height' => 96,
1625
  'width' => 96,
1626
- );
1627
  }
1628
  }
1629
 
@@ -1637,17 +381,17 @@ class JsonLD {
1637
  * @param array $organization Organization data.
1638
  * @param string $type Type data set to. Default: 'publisher'.
1639
  */
1640
- private function set_publisher( &$entity, $organization, $type = 'publisher' ) {
1641
- $keys = array( '@context', '@type', 'url', 'name', 'logo', 'image', 'contactPoint', 'sameAs' );
1642
  foreach ( $keys as $key ) {
1643
  if ( ! isset( $organization[ $key ] ) ) {
1644
  continue;
1645
  }
1646
 
1647
- $entity[ $type ][ $key ] = 'logo' !== $key ? $organization[ $key ] : array(
1648
  '@type' => 'ImageObject',
1649
  'url' => $organization[ $key ],
1650
- );
1651
  }
1652
  }
1653
 
@@ -1657,14 +401,17 @@ class JsonLD {
1657
  * @param string $schema Schema to get data for.
1658
  * @param array $entity Array of json-ld entity to attach data to.
1659
  */
1660
- private function set_address( $schema, &$entity ) {
1661
  $address = Helper::get_post_meta( "snippet_{$schema}_address" );
1662
 
1663
- if ( is_array( $address ) && ! empty( $address ) ) {
1664
- $entity['address'] = array( '@type' => 'PostalAddress' );
1665
- foreach ( $address as $key => $value ) {
1666
- $entity['address'][ $key ] = $value;
1667
- }
 
 
 
1668
  }
1669
  }
1670
 
@@ -1676,62 +423,66 @@ class JsonLD {
1676
  * @param array $hash Key to get data and Value to save as.
1677
  * @param array $entity Array of json-ld entity to attach data to.
1678
  */
1679
- private function set_data( $hash, &$entity ) {
1680
  foreach ( $hash as $metakey => $dest ) {
1681
- $entity[ $dest ] = Helper::get_post_meta( $metakey );
1682
  }
1683
  }
1684
 
1685
  /**
1686
- * Injects reviews to content.
1687
- *
1688
- * @param string $content Post content.
1689
- * @return string
1690
- *
1691
- * @since 1.0.12
1692
  */
1693
- public function rm_review_inject_data( $content ) {
1694
-
1695
- /**
1696
- * Filter: Allow disabling the review display.
1697
- *
1698
- * @param bool $return True to disable.
1699
- */
1700
- if ( true === $this->do_filter( 'hide_review_data', false ) ) {
1701
- return $content;
1702
- }
1703
-
1704
- $location = $this->do_filter( 'review/location', Helper::get_post_meta( 'snippet_review_location' ) );
1705
- $location = $location ? $location : 'bottom';
1706
-
1707
- if ( 'custom' === $location ) {
1708
- return $content;
1709
- }
1710
 
1711
- $review = do_shortcode( '[rank_math_review_snippet]' );
 
 
1712
 
1713
- if ( ! $review ) {
1714
- return $content;
1715
- }
1716
 
1717
- if ( 'top' === $location || 'both' === $location ) {
1718
- $content = $review . $content;
1719
- }
1720
 
1721
- if ( 'bottom' === $location || 'both' === $location ) {
1722
- global $multipage, $numpages, $page;
1723
- if ( $multipage ) {
1724
- if ( $page == $numpages ) {
1725
- $content .= $review;
1726
- return $content;
1727
- }
1728
- return $content;
1729
- }
 
1730
 
1731
- $content .= $review;
1732
- return $content;
1733
- }
 
 
 
 
 
 
 
1734
 
1735
- return $content;
 
 
 
 
 
 
 
 
1736
  }
1737
  }
12
 
13
  use RankMath\Helper;
14
  use RankMath\Traits\Hooker;
15
+ use MyThemeShop\Helpers\Url;
 
16
  use MyThemeShop\Helpers\Conditional;
17
 
18
  defined( 'ABSPATH' ) || exit;
25
  use Hooker;
26
 
27
  /**
28
+ * Hold post object.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  *
30
+ * @var WP_Post
 
31
  */
32
+ public $post = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  /**
35
+ * Hold post ID.
 
 
36
  *
37
+ * @var ID
 
38
  */
39
+ public $post_id = 0;
 
 
 
 
 
 
 
 
40
 
41
  /**
42
+ * Hold post parts.
 
 
43
  *
44
+ * @var array
 
45
  */
46
+ public $parts = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
  /**
49
+ * The Constructor.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  */
51
+ public function __construct() {
52
+ $this->action( 'rank_math/head', 'json_ld', 90 );
53
+ $this->action( 'rank_math/json_ld', 'add_context_data' );
 
 
 
 
 
 
 
 
 
 
54
  }
55
 
56
  /**
57
+ * JSON LD output function that the functions for specific code can hook into.
 
 
 
58
  */
59
+ public function json_ld() {
60
  global $post;
61
 
62
+ if ( is_singular() ) {
63
+ $this->post = $post;
64
+ $this->post_id = $post->ID;
65
+ $this->get_parts();
 
 
 
66
  }
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  /**
69
+ * Collect data to output in JSON-LD.
70
+ *
71
+ * @param array $unsigned An array of data to output in json-ld.
72
+ * @param JsonLD $unsigned JsonLD instance.
73
  */
74
+ $data = $this->do_filter( 'json_ld', [], $this );
75
+ if ( is_array( $data ) && ! empty( $data ) ) {
76
+ echo '<script type="application/ld+json">' . wp_json_encode( array_values( array_filter( $data ) ) ) . '</script>' . "\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  }
 
 
78
  }
79
 
80
  /**
81
+ * Get Default Schema Data.
82
  *
 
83
  * @param array $data Array of json-ld data.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  *
85
  * @return array
86
  */
87
+ public function add_context_data( $data ) {
88
+ /**
89
+ * Allow developer to disable the breadcrumb json-ld output.
90
+ *
91
+ * @param bool $unsigned Default: true
92
+ */
93
+ $is_breadcrumb = Helper::get_settings( 'general.breadcrumbs' ) && $this->do_filter( 'json_ld/breadcrumbs_enabled', true );
94
+ $is_product_page = Conditional::is_woocommerce_active() && ( ( is_tax() && in_array( get_query_var( 'taxonomy' ), get_object_taxonomies( 'product' ) ) ) || is_shop() );
95
+
96
+ $snippets = [
97
+ '\\RankMath\\RichSnippet\\Website' => true,
98
+ '\\RankMath\\RichSnippet\\Search_Results' => is_search(),
99
+ '\\RankMath\\RichSnippet\\Author' => is_author(),
100
+ '\\RankMath\\RichSnippet\\Products_Page' => $is_product_page,
101
+ '\\RankMath\\RichSnippet\\Collection_Page' => ! $is_product_page && ( is_category() || is_tag() || is_tax() ),
102
+ '\\RankMath\\RichSnippet\\Blog' => is_home(),
103
+ '\\RankMath\\RichSnippet\\Singular' => is_singular(),
104
+ '\\RankMath\\RichSnippet\\Breadcrumbs' => $is_breadcrumb,
105
+ ];
106
+
107
+ foreach ( $snippets as $class => $can_run ) {
108
+ if ( $can_run && class_exists( $class ) ) {
109
+ $class = new $class;
110
+ $data = $class->process( $data, $this );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  }
 
 
 
 
 
 
 
 
 
112
  }
113
 
 
 
114
  return $data;
115
  }
116
 
121
  * @param array $entity Array of json-ld entity.
122
  */
123
  public function add_prop( $prop, &$entity ) {
 
124
  if ( empty( $prop ) ) {
125
  return;
126
  }
127
 
128
+ $hash = [
129
+ 'email' => [ 'titles.email', 'email' ],
130
+ 'image' => [ 'titles.knowledgegraph_logo', 'logo' ],
131
+ 'phone' => [ 'titles.phone', 'telephone' ],
132
+ ];
133
+
134
  // phpcs:disable
135
+ if ( isset( $hash[ $prop ] ) && $value = Helper::get_settings( $hash[ $prop ][0] ) ) {
136
+ $entity[ $hash[ $prop ][1] ] = $value;
137
  return;
138
  }
139
 
140
  if ( 'url' === $prop && $url = Helper::get_settings( 'titles.url' ) ) {
141
+ $entity['url'] = ! Url::is_relative( $url ) ? $url : 'http://' . $url;
142
  return;
143
  }
144
 
145
  if ( 'address' === $prop && $address = Helper::get_settings( 'titles.local_address' ) ) {
146
+ $entity['address'] = [ '@type' => 'PostalAddress' ] + $address;
147
  return;
148
  }
149
 
 
 
 
 
 
 
 
 
 
150
  // phpcs:enable
151
 
152
  if ( 'thumbnail' === $prop ) {
153
  $image = Helper::get_thumbnail_with_fallback( get_the_ID(), 'full' );
154
  if ( ! empty( $image ) ) {
155
+ $entity['image'] = [
156
  '@type' => 'ImageObject',
157
  'url' => $image[0],
158
  'width' => $image[1],
159
  'height' => $image[2],
160
+ ];
161
  }
162
 
163
  return;
169
  *
170
  * @return string
171
  */
172
+ public function get_website_name() {
173
  $name = Helper::get_settings( 'titles.knowledgegraph_name' );
174
 
175
  return $name ? $name : get_bloginfo( 'name' );
179
  * Get post parts
180
  *
181
  * @param array $data Array of json-ld data.
182
+ *
183
  * @return array
184
  */
185
+ public function get_post_collection( $data ) {
186
+ $parts = [];
187
 
188
+ while ( have_posts() ) {
189
  the_post();
190
 
191
+ $post_id = get_the_ID();
192
+ $schema = Helper::get_post_meta( 'rich_snippet', $post_id );
193
  if ( ! $schema ) {
194
  continue;
195
  }
196
 
197
+ $title = $this->get_post_title( $post_id );
198
+ $url = $this->get_post_url( $post_id );
 
199
 
200
+ $part = [
 
 
 
 
201
  '@type' => isset( $data['schema'] ) ? $data['schema'] : $schema,
202
  'headline' => $title,
203
  'name' => $title,
204
  'url' => $url,
205
+ 'mainEntityOfPage' => $url,
206
  'dateModified' => get_post_modified_time( 'Y-m-d\TH:i:sP', true ),
207
  'datePublished' => get_post_time( 'Y-m-d\TH:i:sP', true ),
 
208
  'author' => $this->get_author(),
209
  'publisher' => $this->get_publisher( $data ),
210
+ 'image' => $this->get_post_thumbnail( $post_id ),
211
+ 'keywords' => $this->get_post_terms( $post_id ),
212
  'commentCount' => get_comments_number(),
213
+ 'comment' => $this->get_comments( $post_id ),
214
+ ];
215
 
216
  if ( 'article' === $schema ) {
217
  $part['wordCount'] = str_word_count( get_the_content() );
218
  }
219
 
220
  $parts[] = $part;
221
+ }
222
 
223
  wp_reset_query();
224
 
228
  /**
229
  * Get publisher
230
  *
231
+ * @param array $data Entity.
232
+ *
233
  * @return array
234
  */
235
+ public function get_publisher( $data ) {
 
236
  if ( ! isset( $data['Organization'] ) && ! isset( $data['Person'] ) ) {
237
+ return [
238
  '@type' => 'Organization',
239
  'name' => $this->get_website_name(),
240
+ 'logo' => [
241
  '@type' => 'ImageObject',
242
  'url' => Helper::get_settings( 'titles.knowledgegraph_logo' ),
243
+ ],
244
+ ];
245
  }
246
 
247
+ $entity = [];
248
  if ( isset( $data['Organization'] ) ) {
249
  $this->set_publisher( $entity, $data['Organization'] );
250
  $logo = isset( $entity['publisher']['logo']['url'] ) ? $entity['publisher']['logo']['url'] : '';
253
  if ( isset( $data['Person'] ) ) {
254
  $this->set_publisher( $entity, $data['Person'] );
255
  $logo = Helper::get_settings( 'titles.knowledgegraph_logo' );
256
+ $entity['publisher']['logo'] = [
257
  '@type' => 'ImageObject',
258
  'url' => $logo,
259
+ ];
260
  }
261
 
262
  $entity['publisher']['@type'] = 'Organization';
267
  /**
268
  * Get post thumbnail if any
269
  *
270
+ * @param int $post_id Post id to get featured image for.
271
+ *
272
  * @return array
273
  */
274
+ public function get_post_thumbnail( $post_id = 0 ) {
275
+ if ( ! has_post_thumbnail( $post_id ) ) {
276
  return false;
277
  }
278
 
279
+ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), 'full' );
280
 
281
+ return [
282
  '@type' => 'ImageObject',
283
  'url' => $image[0],
284
  'height' => $image[2],
285
  'width' => $image[1],
286
+ ];
287
  }
288
 
289
  /**
290
  * Get post terms
291
  *
292
+ * @param int $post_id Post id to get terms for.
293
  * @param string $taxonomy Taxonomy name.
294
+ *
295
  * @return array
296
  */
297
+ public function get_post_terms( $post_id = 0, $taxonomy = false ) {
298
  if ( false === $taxonomy ) {
299
  $taxonomy = get_queried_object();
300
  if ( ! is_object( $taxonomy ) ) {
301
+ return [];
302
  }
303
  $taxonomy = $taxonomy->taxonomy;
304
  }
305
 
306
+ $terms = wp_get_post_terms( $post_id, $taxonomy, [ 'fields' => 'names' ] );
307
+ return is_wp_error( $terms ) || empty( $terms ) ? [] : $terms;
 
 
308
  }
309
 
310
  /**
311
  * Get comments data
312
  *
313
+ * @param int $post_id Post id to get comments for.
314
+ *
315
  * @return array
316
  */
317
+ public function get_comments( $post_id = 0 ) {
318
+ $post_comments = get_comments([
319
+ 'post_id' => $post_id,
 
 
 
320
  'number' => 10,
321
  'status' => 'approve',
322
  'type' => 'comment',
323
+ ]);
324
 
325
  if ( empty( $post_comments ) ) {
326
  return '';
327
  }
328
 
329
+ $comments = [];
330
  foreach ( $post_comments as $comment ) {
331
+ $comments[] = [
332
  '@type' => 'Comment',
333
  'dateCreated' => $comment->comment_date,
334
  'description' => $comment->comment_content,
335
+ 'author' => [
336
  '@type' => 'Person',
337
  'name' => $comment->comment_author,
338
  'url' => $comment->comment_author_url,
339
+ ],
340
+ ];
341
  }
342
 
343
  return $comments;
348
  *
349
  * @return array
350
  */
351
+ public function get_author() {
352
+ $author = [
353
  '@type' => 'Person',
354
  'name' => get_the_author_meta( 'display_name' ),
355
  'url' => esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
356
+ ];
357
 
358
  if ( get_the_author_meta( 'description' ) ) {
359
  $author['description'] = get_the_author_meta( 'description' );
362
  if ( version_compare( get_bloginfo( 'version' ), '4.2', '>=' ) ) {
363
  $image = get_avatar_url( get_the_author_meta( 'user_email' ), 96 );
364
  if ( $image ) {
365
+ $author['image'] = [
366
  '@type' => 'ImageObject',
367
  'url' => $image,
368
  'height' => 96,
369
  'width' => 96,
370
+ ];
371
  }
372
  }
373
 
381
  * @param array $organization Organization data.
382
  * @param string $type Type data set to. Default: 'publisher'.
383
  */
384
+ public function set_publisher( &$entity, $organization, $type = 'publisher' ) {
385
+ $keys = [ '@context', '@type', 'url', 'name', 'logo', 'image', 'contactPoint', 'sameAs' ];
386
  foreach ( $keys as $key ) {
387
  if ( ! isset( $organization[ $key ] ) ) {
388
  continue;
389
  }
390
 
391
+ $entity[ $type ][ $key ] = 'logo' !== $key ? $organization[ $key ] : [
392
  '@type' => 'ImageObject',
393
  'url' => $organization[ $key ],
394
+ ];
395
  }
396
  }
397
 
401
  * @param string $schema Schema to get data for.
402
  * @param array $entity Array of json-ld entity to attach data to.
403
  */
404
+ public function set_address( $schema, &$entity ) {
405
  $address = Helper::get_post_meta( "snippet_{$schema}_address" );
406
 
407
+ // Early Bail!
408
+ if ( ! is_array( $address ) || empty( $address ) ) {
409
+ return;
410
+ }
411
+
412
+ $entity['address'] = [ '@type' => 'PostalAddress' ];
413
+ foreach ( $address as $key => $value ) {
414
+ $entity['address'][ $key ] = $value;
415
  }
416
  }
417
 
423
  * @param array $hash Key to get data and Value to save as.
424
  * @param array $entity Array of json-ld entity to attach data to.
425
  */
426
+ public function set_data( $hash, &$entity ) {
427
  foreach ( $hash as $metakey => $dest ) {
428
+ $entity[ $dest ] = Helper::get_post_meta( $metakey, $this->post_id );
429
  }
430
  }
431
 
432
  /**
433
+ * Get post parts.
 
 
 
 
 
434
  */
435
+ private function get_parts() {
436
+ $parts = [
437
+ 'title' => $this->get_post_title(),
438
+ 'url' => $this->get_post_url(),
439
+ 'canonical' => rank_math()->head->canonical( false ),
440
+ 'modified' => get_post_modified_time( 'Y-m-d\TH:i:sP', true ),
441
+ 'published' => get_post_time( 'Y-m-d\TH:i:sP', true ),
442
+ 'excerpt' => wp_strip_all_tags( get_the_excerpt(), true ),
443
+ ];
 
 
 
 
 
 
 
 
444
 
445
+ // Description.
446
+ $desc = Helper::get_post_meta( 'snippet_desc' );
447
+ $parts['desc'] = $desc ? $desc : ( $parts['excerpt'] ? $parts['excerpt'] : Helper::get_post_meta( 'description' ) );
448
 
449
+ // Author.
450
+ $author = Helper::get_post_meta( 'snippet_author' );
451
+ $parts['author'] = $author ? $author : get_the_author_meta( 'display_name', $this->post->post_author );
452
 
453
+ $this->parts = $parts;
454
+ }
 
455
 
456
+ /**
457
+ * Get post title.
458
+ *
459
+ * @param int $post_id Post ID to get title for.
460
+ * @return string
461
+ */
462
+ public function get_post_title( $post_id = 0 ) {
463
+ $title = Helper::get_post_meta( 'snippet_name', $post_id );
464
+ return $title ? $title : ( 0 === $post_id ? rank_math()->head->title( '' ) : get_the_title( $post_id ) );
465
+ }
466
 
467
+ /**
468
+ * Get post url.
469
+ *
470
+ * @param int $post_id Post ID to get url for.
471
+ * @return string
472
+ */
473
+ public function get_post_url( $post_id = 0 ) {
474
+ $url = Helper::get_post_meta( 'snippet_url', $post_id );
475
+ return $url ? $url : ( 0 === $post_id ? rank_math()->head->canonical( false ) : get_the_permalink( $post_id ) );
476
+ }
477
 
478
+ /**
479
+ * Get product description.
480
+ *
481
+ * @param int $post_id Post ID to get url for.
482
+ * @return string
483
+ */
484
+ public function get_product_desc( $post_id = 0 ) {
485
+ $product = wc_get_product( $post_id );
486
+ return wp_strip_all_tags( do_shortcode( $product->get_short_description() ? $product->get_short_description() : $product->get_description() ), true );
487
  }
488
  }
includes/modules/rich-snippet/interface-snippet.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Snippet Interface
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ defined( 'ABSPATH' ) || exit;
14
+
15
+ /**
16
+ * Snippet interface.
17
+ */
18
+ interface Snippet {
19
+
20
+ /**
21
+ * Process snippet data
22
+ *
23
+ * @param array $data Array of json-ld data.
24
+ * @param JsonLD $jsonld Instance of JsonLD.
25
+ *
26
+ * @return array
27
+ */
28
+ public function process( $data, $jsonld );
29
+ }
includes/modules/rich-snippet/snippets/class-article.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Article Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Article class.
19
+ */
20
+ class Article implements Snippet {
21
+
22
+ /**
23
+ * Article rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => Helper::get_post_meta( 'snippet_article_type' ),
34
+ 'headline' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'datePublished' => $jsonld->parts['published'],
37
+ 'dateModified' => $jsonld->parts['modified'],
38
+ 'publisher' => $jsonld->get_publisher( $data ),
39
+ 'mainEntityOfPage' => [
40
+ '@type' => 'WebPage',
41
+ '@id' => $jsonld->parts['canonical'],
42
+ ],
43
+ 'author' => [
44
+ '@type' => 'Person',
45
+ 'name' => $jsonld->parts['author'],
46
+ ],
47
+ ];
48
+
49
+ if ( isset( $data['Organization'] ) ) {
50
+ unset( $data['Organization'] );
51
+ }
52
+
53
+ return $entity;
54
+ }
55
+ }
includes/modules/rich-snippet/snippets/class-author.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Author Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ defined( 'ABSPATH' ) || exit;
14
+
15
+ /**
16
+ * Author class.
17
+ */
18
+ class Author implements Snippet {
19
+
20
+ /**
21
+ * Outputs code to allow recognition of the ProfilePage.
22
+ *
23
+ * @link https://schema.org/ProfilePage
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $data['ProfilePage'] = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'ProfilePage',
34
+ 'headline' => sprintf( 'About %s', get_the_author() ),
35
+ 'datePublished' => get_the_date( 'Y-m-d' ),
36
+ 'dateModified' => get_the_modified_date( 'Y-m-d' ),
37
+ 'about' => $jsonld->get_author(),
38
+ ];
39
+
40
+ return $data;
41
+ }
42
+ }
includes/modules/rich-snippet/snippets/class-blog.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Blog Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ defined( 'ABSPATH' ) || exit;
14
+
15
+ /**
16
+ * Blog class.
17
+ */
18
+ class Blog implements Snippet {
19
+
20
+ /**
21
+ * Outputs code to allow recognition of the Blog.
22
+ *
23
+ * @link https://schema.org/Blog
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $is_front = is_front_page() && is_home() || is_front_page();
32
+ $data['schema'] = 'BlogPosting';
33
+ $data['Blog'] = [
34
+ '@context' => 'https://schema.org/',
35
+ '@type' => 'Blog',
36
+ 'url' => $is_front ? home_url() : get_permalink( get_option( 'page_for_posts' ) ),
37
+ 'headline' => $is_front ? $jsonld->get_website_name() : get_the_title( get_option( 'page_for_posts' ) ),
38
+ 'description' => get_bloginfo( 'description' ),
39
+ 'blogPost' => $jsonld->get_post_collection( $data ),
40
+ ];
41
+
42
+ return $data;
43
+ }
44
+ }
includes/modules/rich-snippet/snippets/class-book.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Book Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Book class.
19
+ */
20
+ class Book implements Snippet {
21
+
22
+ /**
23
+ * Book rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'Book',
34
+ 'name' => $jsonld->parts['title'],
35
+ 'author' => [
36
+ '@type' => 'Person',
37
+ 'name' => $jsonld->parts['author'],
38
+ ],
39
+ 'url' => $jsonld->parts['url'],
40
+ 'hasPart' => [],
41
+ ];
42
+
43
+ foreach ( $this->get_editions() as $edition ) {
44
+ $entity['hasPart'][] = $this->get_work_entity( $edition );
45
+ }
46
+
47
+ return $entity;
48
+ }
49
+
50
+ /**
51
+ * Get work entity.
52
+ *
53
+ * @param array $edition Edition data.
54
+ * @return array
55
+ */
56
+ private function get_work_entity( $edition ) {
57
+ $work = [
58
+ '@type' => 'Book',
59
+ 'bookEdition' => $edition['book_edition'],
60
+ 'bookFormat' => 'https://schema.org/' . $edition['book_format'],
61
+ 'datePublished' => $edition['date_published'],
62
+ ];
63
+
64
+ $fields = [ 'isbn', 'name', 'author', 'url' ];
65
+ foreach ( $fields as $field ) {
66
+ if ( ! empty( $edition[ $field ] ) ) {
67
+ $work[ $field ] = $edition[ $field ];
68
+ }
69
+ }
70
+
71
+ if ( ! empty( $edition['url'] ) ) {
72
+ $work['@id'] = $edition['url'];
73
+ }
74
+
75
+ return $work;
76
+ }
77
+
78
+ /**
79
+ * Get book editions.
80
+ *
81
+ * @return array
82
+ */
83
+ private function get_editions() {
84
+ $editions = (array) Helper::get_post_meta( 'snippet_book_editions' );
85
+ $editions = array_filter( $editions, [ $this, 'filter_edition' ], ARRAY_FILTER_USE_BOTH );
86
+ return array_reverse( $editions );
87
+ }
88
+
89
+ /**
90
+ * Filter edition.
91
+ *
92
+ * @param array $edition Array of edition.
93
+ * @param mixed $key Key of edition.
94
+ * @return boolean
95
+ */
96
+ protected function filter_edition( $edition, $key ) {
97
+ return ! ( empty( $edition ) || empty( $edition['name'] ) );
98
+ }
99
+ }
includes/modules/rich-snippet/snippets/class-breadcrumbs.php ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Breadcrumbs Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ defined( 'ABSPATH' ) || exit;
14
+
15
+ /**
16
+ * Breadcrumbs class.
17
+ */
18
+ class Breadcrumbs implements Snippet {
19
+
20
+ /**
21
+ * Generate breadcrumbs JSON-LD.
22
+ *
23
+ * @link https://schema.org/BreadcrumbList
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $breadcrumbs = rank_math()->breadcrumbs;
32
+ $crumbs = $breadcrumbs ? $breadcrumbs->get_crumbs() : false;
33
+ if ( empty( $crumbs ) ) {
34
+ return $data;
35
+ }
36
+
37
+ $entity = [
38
+ '@context' => 'https://schema.org',
39
+ '@type' => 'BreadcrumbList',
40
+ 'itemListElement' => [],
41
+ ];
42
+
43
+ foreach ( $crumbs as $index => $crumb ) {
44
+ if ( ! empty( $crumb['hide_in_schema'] ) ) {
45
+ continue;
46
+ }
47
+
48
+ $entity['itemListElement'][] = [
49
+ '@type' => 'ListItem',
50
+ 'position' => $index + 1,
51
+ 'item' => [
52
+ '@id' => $crumb[1],
53
+ 'name' => $crumb[0],
54
+ ],
55
+ ];
56
+ }
57
+
58
+ $data['BreadcrumbList'] = apply_filters( 'rank_math/snippet/breadcrumb', $entity );
59
+
60
+ return $data;
61
+ }
62
+ }
includes/modules/rich-snippet/snippets/class-collection-page.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The CollectionPage Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Collection_Page class.
19
+ */
20
+ class Collection_Page implements Snippet {
21
+
22
+ /**
23
+ * Outputs code to allow recognition of the CollectionPage.
24
+ *
25
+ * @link https://schema.org/CollectionPage
26
+ *
27
+ * @param array $data Array of json-ld data.
28
+ * @param JsonLD $jsonld JsonLD Instance.
29
+ *
30
+ * @return array
31
+ */
32
+ public function process( $data, $jsonld ) {
33
+ $queried_object = get_queried_object();
34
+
35
+ /**
36
+ * Allow developer to remove snippet data.
37
+ *
38
+ * @param bool $unsigned Default: false
39
+ * @param string $unsigned Taxonomy Name
40
+ */
41
+ if ( true === Helper::get_settings( 'titles.remove_' . $queried_object->taxonomy . '_snippet_data' ) || true === apply_filters( 'rank_math/snippet/remove_taxonomy_data', false, $queried_object->taxonomy ) ) {
42
+ return $data;
43
+ }
44
+
45
+ $data['CollectionPage'] = [
46
+ '@context' => 'https://schema.org/',
47
+ '@type' => 'CollectionPage',
48
+ 'headline' => single_term_title( '', false ),
49
+ 'description' => strip_tags( term_description() ),
50
+ 'url' => get_term_link( get_queried_object() ),
51
+ 'hasPart' => $jsonld->get_post_collection( $data ),
52
+ ];
53
+
54
+ return $data;
55
+ }
56
+ }
includes/modules/rich-snippet/snippets/class-course.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Course Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Course class.
19
+ */
20
+ class Course implements Snippet {
21
+
22
+ /**
23
+ * Course rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'Course',
34
+ 'name' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'provider' => [
37
+ '@type' => 'Organization',
38
+ 'name' => Helper::get_post_meta( 'snippet_course_provider' ),
39
+ 'sameAs' => Helper::get_post_meta( 'snippet_course_provider_url' ),
40
+ ],
41
+ ];
42
+
43
+ if ( isset( $data['Organization'] ) ) {
44
+ unset( $data['Organization'] );
45
+ }
46
+
47
+ return $entity;
48
+ }
49
+ }
includes/modules/rich-snippet/snippets/class-event.php ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Event Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Event class.
19
+ */
20
+ class Event implements Snippet {
21
+
22
+ /**
23
+ * Event rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => Helper::get_post_meta( 'snippet_event_type' ),
34
+ 'name' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'url' => $jsonld->parts['url'],
37
+ 'eventStatus' => Helper::get_post_meta( 'snippet_event_status' ),
38
+ 'location' => [
39
+ '@type' => 'Place',
40
+ 'name' => Helper::get_post_meta( 'snippet_event_venue' ),
41
+ 'url' => Helper::get_post_meta( 'snippet_event_venueurl' ),
42
+ ],
43
+ 'offers' => [
44
+ '@type' => 'Offer',
45
+ 'name' => 'General Admission',
46
+ 'category' => 'primary',
47
+ ],
48
+ ];
49
+
50
+ if ( $start_date = Helper::get_post_meta( 'snippet_event_startdate' ) ) { // phpcs:ignore
51
+ $entity['startDate'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $start_date ) );
52
+ }
53
+ if ( $end_date = Helper::get_post_meta( 'snippet_event_enddate' ) ) { // phpcs:ignore
54
+ $entity['endDate'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $end_date ) );
55
+ }
56
+
57
+ $jsonld->set_address( 'event', $entity['location'] );
58
+
59
+ $jsonld->set_data([
60
+ 'snippet_event_price' => 'price',
61
+ 'snippet_event_currency' => 'priceCurrency',
62
+ 'snippet_event_ticketurl' => 'url',
63
+ 'snippet_event_inventory' => 'inventoryLevel',
64
+ 'snippet_event_availability' => 'availability',
65
+ 'snippet_event_availability_starts' => 'validFrom',
66
+ ], $entity['offers'] );
67
+
68
+ if ( ! empty( $entity['offers']['validFrom'] ) ) {
69
+ $entity['offers']['validFrom'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $entity['offers']['validFrom'] ) );
70
+ }
71
+ if ( $performer = Helper::get_post_meta( 'snippet_event_performer' ) ) { // phpcs:ignore
72
+ $entity['performer'] = [
73
+ '@type' => 'Person',
74
+ 'name' => $performer,
75
+ ];
76
+ }
77
+
78
+ return $entity;
79
+ }
80
+ }
includes/modules/rich-snippet/snippets/class-jobposting.php ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The JobPosting Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * JobPosting class.
19
+ */
20
+ class JobPosting implements Snippet {
21
+
22
+ /**
23
+ * Job Posting rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'JobPosting',
34
+ 'title' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'] ? $jsonld->parts['desc'] : get_the_content(),
36
+ 'identifier' => [
37
+ '@type' => 'PropertyValue',
38
+ 'name' => '',
39
+ 'value' => '',
40
+ ],
41
+ 'datePosted' => $this->get_posted_date( $jsonld->parts['published'] ),
42
+ 'validThrough' => '',
43
+ 'employmentType' => Helper::get_post_meta( 'snippet_jobposting_employment_type' ),
44
+ 'jobLocation' => [ '@type' => 'Place' ],
45
+ 'baseSalary' => [
46
+ '@type' => 'MonetaryAmount',
47
+ 'currency' => Helper::get_post_meta( 'snippet_jobposting_currency' ),
48
+ 'value' => [
49
+ '@type' => 'QuantitativeValue',
50
+ 'value' => absint( Helper::get_post_meta( 'snippet_jobposting_salary' ) ),
51
+ 'unitText' => Helper::get_post_meta( 'snippet_jobposting_payroll' ),
52
+ ],
53
+ ],
54
+ ];
55
+
56
+ $jsonld->add_prop( 'thumbnail', $entity );
57
+ $jsonld->set_address( 'jobposting', $entity['jobLocation'] );
58
+
59
+ // Publisher.
60
+ if ( $organization = Helper::get_post_meta( 'snippet_jobposting_organization' ) ) { // phpcs:ignore
61
+ $entity['hiringOrganization'] = [
62
+ '@type' => 'Organization',
63
+ 'name' => $organization,
64
+ 'sameAs' => Helper::get_post_meta( 'snippet_jobposting_url' ),
65
+ 'logo' => Helper::get_post_meta( 'snippet_jobposting_logo' ),
66
+ ];
67
+ } elseif ( isset( $data['Organization'] ) ) {
68
+ $jsonld->set_publisher( $entity['hiringOrganization'], $data['Organization'] );
69
+ }
70
+
71
+ $this->is_expired_unpublish( $jsonld, $entity );
72
+
73
+ return $entity;
74
+ }
75
+
76
+ /**
77
+ * Get posted date.
78
+ *
79
+ * @param string $default Default value.
80
+ * @return string
81
+ */
82
+ private function get_posted_date( $default = '' ) {
83
+ $posted = $default;
84
+ if ( $start_date = Helper::get_post_meta( 'snippet_jobposting_startdate' ) ) { // phpcs:ignore
85
+ $posted = str_replace( ' ', 'T', date( 'Y-m-d H:i', $start_date ) );
86
+ }
87
+
88
+ return $posted;
89
+ }
90
+
91
+ /**
92
+ * Unpublish job posting when expired.
93
+ *
94
+ * @param JsonLD $jsonld JsonLD Instance.
95
+ * @param array $entity Array of json-ld entity.
96
+ */
97
+ private function is_expired_unpublish( $jsonld, &$entity ) {
98
+ $end_date = Helper::get_post_meta( 'snippet_jobposting_expirydate' );
99
+ if ( empty( $end_date ) ) {
100
+ return;
101
+ }
102
+
103
+ $entity['validThrough'] = str_replace( ' ', 'T', date( 'Y-m-d H:i', $end_date ) );
104
+ if ( date_create( 'now' )->getTimestamp() < $end_date ) {
105
+ return;
106
+ }
107
+
108
+ if ( ! Helper::get_post_meta( 'snippet_jobposting_unpublish' ) ) {
109
+ return;
110
+ }
111
+
112
+ wp_update_post([
113
+ 'ID' => $jsonld->post_id,
114
+ 'post_status' => 'draft',
115
+ ]);
116
+ }
117
+ }
includes/modules/rich-snippet/snippets/class-local.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Local Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Local class.
19
+ */
20
+ class Local implements Snippet {
21
+
22
+ /**
23
+ * Local rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'LocalBusiness',
34
+ 'name' => $jsonld->parts['title'],
35
+ 'url' => $jsonld->parts['url'],
36
+ 'telephone' => Helper::get_post_meta( 'snippet_local_phone' ),
37
+ 'geo' => [ '@type' => 'GeoCoordinates' ],
38
+ 'priceRange' => Helper::get_post_meta( 'snippet_local_price_range' ),
39
+ 'openingHoursSpecification' => [ '@type' => 'OpeningHoursSpecification' ],
40
+ ];
41
+
42
+ $jsonld->set_address( 'local', $entity );
43
+
44
+ $jsonld->set_data([
45
+ 'snippet_local_opendays' => 'dayOfWeek',
46
+ 'snippet_local_opens' => 'opens',
47
+ 'snippet_local_closes' => 'closes',
48
+ ], $entity['openingHoursSpecification'] );
49
+
50
+ // GPS.
51
+ if ( $geo = Helper::get_post_meta( 'snippet_local_geo' ) ) { // phpcs:ignore
52
+ $parts = explode( ' ', $geo );
53
+ if ( count( $parts ) > 1 ) {
54
+ $entity['geo']['latitude'] = $parts[0];
55
+ $entity['geo']['longitude'] = $parts[1];
56
+ }
57
+ }
58
+
59
+ if ( isset( $data['Organization'] ) ) {
60
+ unset( $data['Organization'] );
61
+ }
62
+
63
+ return $entity;
64
+ }
65
+ }
includes/modules/rich-snippet/snippets/class-music.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Music Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Music class.
19
+ */
20
+ class Music implements Snippet {
21
+
22
+ /**
23
+ * Music rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => Helper::get_post_meta( 'snippet_music_type' ),
34
+ 'name' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'url' => $jsonld->parts['url'],
37
+ ];
38
+
39
+ return $entity;
40
+ }
41
+ }
includes/modules/rich-snippet/snippets/class-person.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Person Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Person class.
19
+ */
20
+ class Person implements Snippet {
21
+
22
+ /**
23
+ * Person rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'Person',
34
+ 'name' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'email' => Helper::get_post_meta( 'snippet_person_email' ),
37
+ 'gender' => Helper::get_post_meta( 'snippet_person_gender' ),
38
+ 'jobTitle' => Helper::get_post_meta( 'snippet_person_job_title' ),
39
+ ];
40
+
41
+ $jsonld->set_address( 'person', $entity );
42
+
43
+ return $entity;
44
+ }
45
+ }
includes/modules/rich-snippet/snippets/class-product-edd.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Edd Product Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use EDD_Download;
14
+ use RankMath\Helper;
15
+
16
+ defined( 'ABSPATH' ) || exit;
17
+
18
+ /**
19
+ * Product_Edd class.
20
+ */
21
+ class Product_Edd {
22
+
23
+ /**
24
+ * Set product data for rich snippet.
25
+ *
26
+ * @param array $entity Array of json-ld entity.
27
+ * @param JsonLD $jsonld JsonLD Instance.
28
+ */
29
+ public function set_product( &$entity, $jsonld ) {
30
+ $product_id = get_the_ID();
31
+ $permalink = get_permalink();
32
+ $product = new EDD_Download( $product_id );
33
+
34
+ $entity['url'] = $permalink;
35
+ $entity['name'] = $jsonld->post->post_title;
36
+ $entity['description'] = strip_shortcodes( $jsonld->post->post_content );
37
+ $entity['category'] = Product::get_category( $product_id, 'download_category' );
38
+
39
+ // Sku.
40
+ if ( $product->get_sku() ) {
41
+ $entity['sku'] = $product->get_sku();
42
+ }
43
+
44
+ // Offers.
45
+ $seller = Product::get_seller( $jsonld );
46
+ $variations = $this->has_variations( $product );
47
+ if ( false !== $variations ) {
48
+ $entity['offers'] = [];
49
+ foreach ( $variations as $variation ) {
50
+ $offer = [
51
+ '@type' => 'Offer',
52
+ 'description' => $variation['name'],
53
+ 'price' => $variation['amount'],
54
+ 'priceCurrency' => edd_get_currency(),
55
+ 'seller' => $seller,
56
+ 'url' => $permalink,
57
+ ];
58
+
59
+ $entity['offers'][] = $offer;
60
+ }
61
+
62
+ return;
63
+ }
64
+
65
+ // Single offer.
66
+ $entity['offers'] = [
67
+ '@type' => 'Offer',
68
+ 'price' => $product->get_price() ? $product->get_price() : '0',
69
+ 'priceCurrency' => edd_get_currency(),
70
+ 'seller' => $seller,
71
+ 'url' => $permalink,
72
+ ];
73
+ }
74
+
75
+ /**
76
+ * If product is variable send variations.
77
+ *
78
+ * @param EDD_Download $product Current product.
79
+ *
80
+ * @return array|boolean
81
+ */
82
+ private function has_variations( $product ) {
83
+ if ( ! $product->has_variable_prices() ) {
84
+ return false;
85
+ }
86
+
87
+ $variations = $product->get_prices();
88
+ return ! empty( $variations ) ? $variations : false;
89
+ }
90
+ }
includes/modules/rich-snippet/snippets/class-product-woocommerce.php ADDED
@@ -0,0 +1,388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The WooCommerce Product Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Product_WooCommerce class.
19
+ */
20
+ class Product_WooCommerce {
21
+
22
+ /**
23
+ * Attribute assigner.
24
+ *
25
+ * @var WC_Attributes
26
+ */
27
+ private $attributes;
28
+
29
+ /**
30
+ * Set product data for rich snippet.
31
+ *
32
+ * @param array $entity Array of json-ld entity.
33
+ * @param JsonLD $jsonld JsonLD Instance.
34
+ */
35
+ public function set_product( &$entity, $jsonld ) {
36
+ $product = wc_get_product( get_the_ID() );
37
+ $this->attributes = new WC_Attributes( $product );
38
+
39
+ if ( Helper::is_module_active( 'woocommerce' ) ) {
40
+ $wc = new \RankMath\WooCommerce\Woocommerce;
41
+ $brand = $wc->get_product_var_brand();
42
+
43
+ // Brand.
44
+ if ( $brand ) {
45
+ $entity['mpn'] = $brand;
46
+ $entity['brand'] = [
47
+ '@type' => 'Thing',
48
+ 'name' => $brand,
49
+ ];
50
+ }
51
+ }
52
+
53
+ $entity['url'] = $product->get_permalink();
54
+ $entity['name'] = $product->get_name();
55
+ $entity['description'] = $jsonld->get_product_desc( $product );
56
+ $entity['sku'] = $product->get_sku() ? $product->get_sku() : '';
57
+ $entity['category'] = Product::get_category( $product->get_id(), 'product_cat' );
58
+
59
+ $this->set_related_products( $product->get_id(), $entity );
60
+ $this->set_upsell_products( $product, $entity );
61
+ $this->set_weight( $product, $entity );
62
+ $this->set_dimensions( $product, $entity );
63
+ $this->set_images( $product, $entity );
64
+ $this->set_ratings( $product, $entity );
65
+ $this->set_offers( $product, $entity, Product::get_seller( $jsonld ) );
66
+
67
+ // GTIN numbers need product attributes.
68
+ $this->attributes->assign_property( $entity, 'gtin8' );
69
+ $this->attributes->assign_property( $entity, 'gtin12' );
70
+ $this->attributes->assign_property( $entity, 'gtin13' );
71
+ $this->attributes->assign_property( $entity, 'gtin14' );
72
+
73
+ // Color.
74
+ $this->attributes->assign_property( $entity, 'color' );
75
+
76
+ // Remaining Attributes.
77
+ $this->attributes->assign_remaining( $entity );
78
+ }
79
+
80
+ /**
81
+ * Set related products.
82
+ *
83
+ * @param int $product_id Product ID.
84
+ * @param array $entity Array of json-ld entity.
85
+ */
86
+ private function set_related_products( $product_id, &$entity ) {
87
+ $related_products = wc_get_related_products( $product_id, 5 );
88
+ if ( empty( $related_products ) ) {
89
+ return;
90
+ }
91
+
92
+ foreach ( $related_products as $related_id ) {
93
+ $entity['isRelatedTo'][] = [
94
+ '@type' => 'Product',
95
+ 'url' => get_permalink( $related_id ),
96
+ 'name' => get_the_title( $related_id ),
97
+ ];
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Set upsell products.
103
+ *
104
+ * @param object $product Product instance.
105
+ * @param array $entity Array of json-ld entity.
106
+ */
107
+ private function set_upsell_products( $product, &$entity ) {
108
+ $upsells = $product->get_upsell_ids();
109
+ if ( empty( $upsells ) ) {
110
+ return;
111
+ }
112
+
113
+ foreach ( $upsells as $upsell_id ) {
114
+ $entity['isSimilarTo'][] = [
115
+ '@type' => 'Product',
116
+ 'url' => get_permalink( $upsell_id ),
117
+ 'name' => get_the_title( $upsell_id ),
118
+ ];
119
+ }
120
+ }
121
+
122
+ /**
123
+ * Set product weight.
124
+ *
125
+ * @param object $product Product instance.
126
+ * @param array $entity Array of json-ld entity.
127
+ */
128
+ private function set_weight( $product, &$entity ) {
129
+ if ( ! $product->has_weight() ) {
130
+ return;
131
+ }
132
+
133
+ $hash = [
134
+ 'lbs' => 'LBR',
135
+ 'kg' => 'KGM',
136
+ 'g' => 'GRM',
137
+ 'oz' => 'ONZ',
138
+ ];
139
+ $unit = get_option( 'woocommerce_weight_unit' );
140
+
141
+ $entity['weight'] = [
142
+ '@type' => 'QuantitativeValue',
143
+ 'unitCode' => isset( $hash[ $unit ] ) ? $hash[ $unit ] : 'LBR',
144
+ 'value' => $product->get_weight(),
145
+ ];
146
+ }
147
+
148
+ /**
149
+ * Set product dimension.
150
+ *
151
+ * @param object $product Product instance.
152
+ * @param array $entity Array of json-ld entity.
153
+ */
154
+ private function set_dimensions( $product, &$entity ) {
155
+ if ( ! $product->has_dimensions() ) {
156
+ return;
157
+ }
158
+
159
+ $hash = [
160
+ 'in' => 'INH',
161
+ 'm' => 'MTR',
162
+ 'cm' => 'CMT',
163
+ 'mm' => 'MMT',
164
+ 'yd' => 'YRD',
165
+ ];
166
+ $unit = get_option( 'woocommerce_dimension_unit' );
167
+ $code = isset( $hash[ $unit ] ) ? $hash[ $unit ] : '';
168
+
169
+ $entity['height'] = [
170
+ '@type' => 'QuantitativeValue',
171
+ 'unitCode' => $code,
172
+ 'value' => $product->get_height(),
173
+ ];
174
+
175
+ $entity['width'] = [
176
+ '@type' => 'QuantitativeValue',
177
+ 'unitCode' => $code,
178
+ 'value' => $product->get_width(),
179
+ ];
180
+
181
+ $entity['depth'] = [
182
+ '@type' => 'QuantitativeValue',
183
+ 'unitCode' => $code,
184
+ 'value' => $product->get_length(),
185
+ ];
186
+ }
187
+
188
+ /**
189
+ * Set product images.
190
+ *
191
+ * @param object $product Product instance.
192
+ * @param array $entity Array of json-ld entity.
193
+ */
194
+ private function set_images( $product, &$entity ) {
195
+ if ( ! $product->get_image_id() ) {
196
+ return;
197
+ }
198
+
199
+ $image = wp_get_attachment_image_src( $product->get_image_id(), 'single-post-thumbnail' );
200
+ $entity['image'][] = [
201
+ '@type' => 'ImageObject',
202
+ 'url' => $image[0],
203
+ 'height' => $image[2],
204
+ 'width' => $image[1],
205
+ ];
206
+
207
+ $gallery = $product->get_gallery_image_ids();
208
+ foreach ( $gallery as $image_id ) {
209
+ $image = wp_get_attachment_image_src( $image_id, 'single-post-thumbnail' );
210
+ $entity['image'][] = [
211
+ '@type' => 'ImageObject',
212
+ 'url' => $image[0],
213
+ 'height' => $image[2],
214
+ 'width' => $image[1],
215
+ ];
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Set product ratings.
221
+ *
222
+ * @param object $product Product instance.
223
+ * @param array $entity Array of json-ld entity.
224
+ */
225
+ private function set_ratings( $product, &$entity ) {
226
+ if ( $product->get_rating_count() < 1 ) {
227
+ return;
228
+ }
229
+
230
+ // Aggregate Rating.
231
+ $entity['aggregateRating'] = [
232
+ '@type' => 'AggregateRating',
233
+ 'ratingValue' => $product->get_average_rating(),
234
+ 'bestRating' => '5',
235
+ 'ratingCount' => $product->get_rating_count(),
236
+ 'reviewCount' => $product->get_review_count(),
237
+ ];
238
+
239
+ // Reviews.
240
+ $comments = get_comments([
241
+ 'post_type' => 'product',
242
+ 'post_id' => get_the_ID(),
243
+ 'status' => 'approve',
244
+ ]);
245
+ $permalink = $product->get_permalink();
246
+
247
+ foreach ( $comments as $comment ) {
248
+ $entity['review'][] = [
249
+ '@type' => 'Review',
250
+ '@id' => $permalink . '#li-comment-' . $comment->comment_ID,
251
+ 'description' => $comment->comment_content,
252
+ 'datePublished' => $comment->comment_date,
253
+ 'reviewRating' => [
254
+ '@type' => 'Rating',
255
+ 'ratingValue' => intval( get_comment_meta( $comment->comment_ID, 'rating', true ) ),
256
+ ],
257
+ 'author' => [
258
+ '@type' => 'Person',
259
+ 'name' => $comment->comment_author,
260
+ 'url' => $comment->comment_author_url,
261
+ ],
262
+ ];
263
+ }
264
+ }
265
+
266
+ /**
267
+ * Set product offers.
268
+ *
269
+ * @param object $product Product instance.
270
+ * @param array $entity Array of json-ld entity.
271
+ * @param array $seller Seller info.
272
+ */
273
+ private function set_offers( $product, &$entity, $seller ) {
274
+ if ( '' === $product->get_price() ) {
275
+ return;
276
+ }
277
+
278
+ if ( true === $this->set_offers_variable( $product, $entity, $seller ) ) {
279
+ return;
280
+ }
281
+
282
+ $offer = [
283
+ '@type' => 'Offer',
284
+ 'price' => $product->get_price() ? $product->get_price() : '0',
285
+ 'priceCurrency' => get_woocommerce_currency(),
286
+ 'availability' => $product->is_in_stock() ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
287
+ 'itemCondition' => 'NewCondition',
288
+ 'seller' => $seller,
289
+ 'url' => $product->get_permalink(),
290
+ 'priceValidUntil' => ! empty( $product->get_date_on_sale_to() ) ? date( 'Y-m-d', strtotime( $product->get_date_on_sale_to() ) ) : '',
291
+ ];
292
+
293
+ $this->attributes->assign_property( $offer, 'itemCondition' );
294
+ $entity['offers'] = $offer;
295
+ }
296
+
297
+ /**
298
+ * Set product variable offers.
299
+ *
300
+ * @param object $product Product instance.
301
+ * @param array $entity Array of json-ld entity.
302
+ * @param array $seller Seller info.
303
+ */
304
+ private function set_offers_variable( $product, &$entity, $seller ) {
305
+ $permalink = $product->get_permalink();
306
+ $variations = $this->has_variations( $product );
307
+ if ( false === $variations ) {
308
+ return false;
309
+ }
310
+
311
+ $entity['offers'] = [];
312
+ foreach ( $variations as $variation ) {
313
+ $price_valid_until = get_post_meta( $variation['variation_id'], '_sale_price_dates_to', true );
314
+
315
+ $offer = [
316
+ '@type' => 'Offer',
317
+ 'description' => strip_tags( $variation['variation_description'] ),
318
+ 'price' => $variation['display_price'],
319
+ 'priceCurrency' => get_woocommerce_currency(),
320
+ 'availability' => $variation['is_in_stock'] ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
321
+ 'itemCondition' => 'NewCondition',
322
+ 'seller' => $seller,
323
+ 'priceValidUntil' => $price_valid_until ? date( 'Y-m-d', $price_valid_until ) : '',
324
+ 'url' => $permalink,
325
+ ];
326
+
327
+ // Generate a unique variation ID.
328
+ $this->set_variation_unique_id( $variation, $offer, $permalink );
329
+
330
+ // Look for itemCondition override by variation.
331
+ $this->set_variation_condition( $variation, $offer );
332
+ $entity['offers'][] = $offer;
333
+ }
334
+
335
+ return true;
336
+ }
337
+
338
+ /**
339
+ * Set product variation condition.
340
+ *
341
+ * @param object $variation Product variation.
342
+ * @param array $entity Array of json-ld entity.
343
+ * @param string $permalink Permalink of product.
344
+ */
345
+ private function set_variation_unique_id( $variation, &$entity, $permalink ) {
346
+ if ( '' !== $variation['sku'] ) {
347
+ $entity['sku'] = $variation['sku'];
348
+ $entity['@id'] = $permalink . '#' . $variation['sku'];
349
+ return;
350
+ }
351
+
352
+ foreach ( $variation['attributes'] as $key => $value ) {
353
+ if ( '' !== $value ) {
354
+ $entity['@id'] = $permalink . '#' . substr( $key, 10 ) . '-' . filter_var( $value, FILTER_SANITIZE_URL );
355
+ }
356
+ }
357
+ }
358
+
359
+ /**
360
+ * Set product variation condition.
361
+ *
362
+ * @param object $variation Product variation.
363
+ * @param array $entity Array of json-ld entity.
364
+ */
365
+ private function set_variation_condition( $variation, &$entity ) {
366
+ foreach ( $variation['attributes'] as $key => $value ) {
367
+ if ( stristr( $key, 'itemCondition' ) ) {
368
+ $entity['itemCondition'] = $value;
369
+ }
370
+ }
371
+ }
372
+
373
+ /**
374
+ * If product is variable send variations.
375
+ *
376
+ * @param object $product Current product.
377
+ *
378
+ * @return array|boolean
379
+ */
380
+ private function has_variations( $product ) {
381
+ if ( ! $product->is_type( 'variable' ) ) {
382
+ return false;
383
+ }
384
+
385
+ $variations = $product->get_available_variations();
386
+ return ! empty( $variations ) ? $variations : false;
387
+ }
388
+ }
includes/modules/rich-snippet/snippets/class-product.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Product Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+ use MyThemeShop\Helpers\Conditional;
15
+ use RankMath\RichSnippet\Product_Edd;
16
+ use RankMath\RichSnippet\Product_WooCommerce;
17
+
18
+ defined( 'ABSPATH' ) || exit;
19
+
20
+ /**
21
+ * Product class.
22
+ */
23
+ class Product implements Snippet {
24
+
25
+ /**
26
+ * Hold JsonLD Instance.
27
+ *
28
+ * @var JsonLD
29
+ */
30
+ private $json = '';
31
+
32
+ /**
33
+ * Product rich snippet.
34
+ *
35
+ * @param array $data Array of json-ld data.
36
+ * @param JsonLD $jsonld JsonLD Instance.
37
+ *
38
+ * @return array
39
+ */
40
+ public function process( $data, $jsonld ) {
41
+ $this->json = $jsonld;
42
+ $sku = Helper::get_post_meta( 'snippet_product_sku' );
43
+ $entity = [
44
+ '@context' => 'https://schema.org/',
45
+ '@type' => 'Product',
46
+ 'sku' => $sku ? $sku : '',
47
+ 'name' => $jsonld->parts['title'],
48
+ 'description' => $jsonld->parts['desc'],
49
+ 'releaseDate' => $jsonld->parts['published'],
50
+ 'offers' => [
51
+ '@type' => 'Offer',
52
+ 'priceCurrency' => Helper::get_post_meta( 'snippet_product_currency' ),
53
+ 'price' => Helper::get_post_meta( 'snippet_product_price' ),
54
+ 'url' => get_the_permalink(),
55
+ 'priceValidUntil' => Helper::get_post_meta( 'snippet_product_price_valid' ),
56
+ 'availability' => Helper::get_post_meta( 'snippet_product_instock' ) ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
57
+ ],
58
+ ];
59
+
60
+ $brand = Helper::get_post_meta( 'snippet_product_brand' );
61
+ if ( $brand ) {
62
+ $entity['mpn'] = $brand;
63
+ $entity['brand'] = [
64
+ '@type' => 'Thing',
65
+ 'name' => $brand,
66
+ ];
67
+ }
68
+
69
+ if ( Conditional::is_woocommerce_active() && is_product() ) {
70
+ remove_action( 'wp_footer', [ WC()->structured_data, 'output_structured_data' ], 10 );
71
+ remove_action( 'woocommerce_email_order_details', [ WC()->structured_data, 'output_email_structured_data' ], 30 );
72
+ $product = new Product_WooCommerce;
73
+ $product->set_product( $entity, $jsonld );
74
+ }
75
+
76
+ if ( Conditional::is_edd_active() && is_singular( 'download' ) ) {
77
+ remove_action( 'edd_purchase_link_top', 'edd_purchase_link_single_pricing_schema', 10 );
78
+ remove_action( 'loop_start', 'edd_microdata_wrapper_open', 10 );
79
+ $product = new Product_Edd;
80
+ $product->set_product( $entity, $jsonld );
81
+ }
82
+
83
+ return $entity;
84
+ }
85
+
86
+ /**
87
+ * Get seller
88
+ *
89
+ * @param JsonLD $jsonld JsonLD Instance.
90
+ *
91
+ * @return array
92
+ */
93
+ public static function get_seller( $jsonld ) {
94
+ $site_url = site_url();
95
+ $type = Helper::get_settings( 'titles.knowledgegraph_type' );
96
+ $seller = [
97
+ '@type' => 'person' === $type ? 'Person' : 'Organization',
98
+ '@id' => $site_url . '/',
99
+ 'name' => $jsonld->get_website_name(),
100
+ 'url' => $site_url,
101
+ ];
102
+
103
+ if ( 'company' === $type ) {
104
+ $seller['logo'] = Helper::get_settings( 'titles.knowledgegraph_logo' );
105
+ }
106
+
107
+ return $seller;
108
+ }
109
+
110
+ /**
111
+ * Set product categories.
112
+ *
113
+ * @param int $product_id Product ID.
114
+ * @param string $taxonomy Taxonomy.
115
+ */
116
+ public static function get_category( $product_id, $taxonomy ) {
117
+ $categories = get_the_terms( $product_id, $taxonomy );
118
+ if ( is_wp_error( $categories ) || empty( $categories ) ) {
119
+ return;
120
+ }
121
+
122
+ if ( 0 === $categories[0]->parent ) {
123
+ return $categories[0]->name;
124
+ }
125
+
126
+ $ancestors = get_ancestors( $categories[0]->term_id, $taxonomy );
127
+ foreach ( $ancestors as $parent ) {
128
+ $term = get_term( $parent, $taxonomy );
129
+ $category[] = $term->name;
130
+ }
131
+ $category[] = $categories[0]->name;
132
+
133
+ return join( ' > ', $category );
134
+ }
135
+ }
includes/modules/rich-snippet/snippets/class-products-page.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Products Page Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Products_Page class.
19
+ */
20
+ class Products_Page implements Snippet {
21
+
22
+ /**
23
+ * Outputs code to allow recognition of the CollectionPage.
24
+ *
25
+ * @link https://schema.org/CollectionPage
26
+ *
27
+ * @param array $data Array of json-ld data.
28
+ * @param JsonLD $jsonld JsonLD Instance.
29
+ *
30
+ * @return array
31
+ */
32
+ public function process( $data, $jsonld ) {
33
+ $data['ProductsPage'] = [
34
+ '@context' => 'https://schema.org/',
35
+ '@graph' => [],
36
+ ];
37
+
38
+ while ( have_posts() ) {
39
+ the_post();
40
+
41
+ $post_id = get_the_ID();
42
+ $url = $jsonld->get_post_url( $post_id );
43
+
44
+ $part = [
45
+ '@type' => 'Product',
46
+ 'name' => $jsonld->get_post_title( $post_id ),
47
+ 'url' => $url,
48
+ '@id' => $url,
49
+ 'description' => $jsonld->get_product_desc( $post_id ),
50
+ ];
51
+
52
+ $data['ProductsPage']['@graph'][] = $part;
53
+ }
54
+
55
+ wp_reset_query();
56
+
57
+ return $data;
58
+ }
59
+ }
includes/modules/rich-snippet/snippets/class-recipe.php ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Recipe Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+ use MyThemeShop\Helpers\Str;
15
+
16
+ defined( 'ABSPATH' ) || exit;
17
+
18
+ /**
19
+ * Recipe class.
20
+ */
21
+ class Recipe implements Snippet {
22
+
23
+ /**
24
+ * Recipe rich snippet.
25
+ *
26
+ * @param array $data Array of json-ld data.
27
+ * @param JsonLD $jsonld JsonLD Instance.
28
+ *
29
+ * @return array
30
+ */
31
+ public function process( $data, $jsonld ) {
32
+ $entity = [
33
+ '@context' => 'https://schema.org/',
34
+ '@type' => 'Recipe',
35
+ 'name' => $jsonld->parts['title'],
36
+ 'description' => $jsonld->parts['desc'],
37
+ 'datePublished' => $jsonld->parts['published'],
38
+ 'author' => [
39
+ '@type' => 'Person',
40
+ 'name' => $jsonld->parts['author'],
41
+ ],
42
+ 'prepTime' => 'PT' . Helper::get_post_meta( 'snippet_recipe_preptime' ),
43
+ 'cookTime' => 'PT' . Helper::get_post_meta( 'snippet_recipe_cooktime' ),
44
+ 'totalTime' => 'PT' . Helper::get_post_meta( 'snippet_recipe_totaltime' ),
45
+ 'recipeCategory' => Helper::get_post_meta( 'snippet_recipe_type' ),
46
+ 'recipeCuisine' => Helper::get_post_meta( 'snippet_recipe_cuisine' ),
47
+ 'keywords' => Helper::get_post_meta( 'snippet_recipe_keywords' ),
48
+ 'recipeYield' => Helper::get_post_meta( 'snippet_recipe_yield' ),
49
+ 'recipeIngredient' => Str::to_arr_no_empty( Helper::get_post_meta( 'snippet_recipe_ingredients' ) ),
50
+ ];
51
+
52
+ $instruction_type = Helper::get_post_meta( 'snippet_recipe_instruction_type' );
53
+
54
+ switch ( $instruction_type ) {
55
+ case 'HowToSection':
56
+ $this->set_how_to_section( $entity );
57
+ break;
58
+
59
+ case 'HowToStep':
60
+ $this->set_how_to_step( $entity );
61
+ break;
62
+
63
+ default:
64
+ $entity['recipeInstructions'] = Helper::get_post_meta( 'snippet_recipe_single_instructions' );
65
+ break;
66
+ }
67
+
68
+ $this->set_calories( $entity );
69
+ $this->set_rating( $entity );
70
+ $this->set_video( $entity );
71
+
72
+ return $entity;
73
+ }
74
+
75
+ /**
76
+ * Set reciepe how to section.
77
+ *
78
+ * @param array $entity Array of json-ld entity.
79
+ */
80
+ private function set_how_to_section( &$entity ) {
81
+ $instructions = Helper::get_post_meta( 'snippet_recipe_instructions' );
82
+ if ( ! is_array( $instructions ) ) {
83
+ return;
84
+ }
85
+
86
+ foreach ( $instructions as $instruction ) {
87
+ $steps = Str::to_arr_no_empty( $instruction['text'] );
88
+ if ( empty( $steps ) ) {
89
+ continue;
90
+ }
91
+
92
+ $entity['recipeInstructions'][] = [
93
+ 'type' => 'HowToSection',
94
+ 'name' => $instruction['name'],
95
+ 'itemListElement' => $this->get_list_how_to_section( $steps ),
96
+ ];
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Get steps for how to section.
102
+ *
103
+ * @param array $steps Array of steps.
104
+ * @return mixed
105
+ */
106
+ private function get_list_how_to_section( $steps ) {
107
+ $list = $steps;
108
+ if ( 1 < count( $steps ) ) {
109
+ $list = [];
110
+ foreach ( $steps as $step ) {
111
+ $list[] = [
112
+ 'type' => 'HowtoStep',
113
+ 'text' => $step,
114
+ ];
115
+ }
116
+ }
117
+
118
+ return $list;
119
+ }
120
+
121
+ /**
122
+ * Set reciepe how to step.
123
+ *
124
+ * @param array $entity Array of json-ld entity.
125
+ */
126
+ private function set_how_to_step( &$entity ) {
127
+ $instructions = Str::to_arr_no_empty( Helper::get_post_meta( 'snippet_recipe_single_instructions' ) );
128
+ if ( empty( $instructions ) ) {
129
+ return;
130
+ }
131
+
132
+ $count = count( $instructions );
133
+ if ( 1 > $count ) {
134
+ return;
135
+ }
136
+
137
+ if ( 1 === $count ) {
138
+ $entity['recipeInstructions'] = $instructions;
139
+ return;
140
+ }
141
+
142
+ $entity['recipeInstructions']['type'] = 'HowToSection';
143
+ $entity['recipeInstructions']['name'] = Helper::get_post_meta( 'snippet_recipe_instruction_name' );
144
+ foreach ( $instructions as $instruction ) {
145
+ $entity['recipeInstructions']['itemListElement'][] = [
146
+ 'type' => 'HowtoStep',
147
+ 'text' => $instruction,
148
+ ];
149
+ }
150
+ }
151
+
152
+ /**
153
+ * Set reciepe calories.
154
+ *
155
+ * @param array $entity Array of json-ld entity.
156
+ */
157
+ private function set_calories( &$entity ) {
158
+ if ( $calories = Helper::get_post_meta( 'snippet_recipe_calories' ) ) { // phpcs:ignore
159
+ $entity['nutrition'] = [
160
+ '@type' => 'NutritionInformation',
161
+ 'calories' => $calories,
162
+ ];
163
+ }
164
+ }
165
+
166
+ /**
167
+ * Set reciepe rating.
168
+ *
169
+ * @param array $entity Array of json-ld entity.
170
+ */
171
+ private function set_rating( &$entity ) {
172
+ if ( $rating = Helper::get_post_meta( 'snippet_recipe_rating' ) ) { // phpcs:ignore
173
+ $entity['aggregateRating'] = [
174
+ '@type' => 'AggregateRating',
175
+ 'ratingValue' => $rating,
176
+ 'bestRating' => Helper::get_post_meta( 'snippet_recipe_rating_max' ),
177
+ 'worstRating' => Helper::get_post_meta( 'snippet_recipe_rating_min' ),
178
+ 'ratingCount' => '1',
179
+ ];
180
+ }
181
+ }
182
+
183
+ /**
184
+ * Set reciepe video.
185
+ *
186
+ * @param array $entity Array of json-ld entity.
187
+ */
188
+ private function set_video( &$entity ) {
189
+ if ( $video = Helper::get_post_meta( 'snippet_recipe_video' ) ) { // phpcs:ignore
190
+ $entity['video'] = [
191
+ '@type' => 'VideoObject',
192
+ 'embedUrl' => $video,
193
+ 'description' => Helper::get_post_meta( 'snippet_recipe_video_description' ),
194
+ 'name' => Helper::get_post_meta( 'snippet_recipe_video_name' ),
195
+ 'thumbnailUrl' => Helper::get_post_meta( 'snippet_recipe_video_thumbnail' ),
196
+ 'uploadDate' => Helper::get_post_meta( 'snippet_recipe_video_date' ),
197
+ ];
198
+ }
199
+ }
200
+ }
includes/modules/rich-snippet/snippets/class-restaurant.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Restaurant Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Restaurant class.
19
+ */
20
+ class Restaurant implements Snippet {
21
+
22
+ /**
23
+ * Restaurant rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $local = new Local;
32
+ $entity = $local->process( $data, $jsonld );
33
+
34
+ $entity['@type'] = 'Restaurant';
35
+ $entity['description'] = $jsonld->parts['desc'];
36
+ $entity['hasMenu'] = Helper::get_post_meta( 'snippet_restaurant_menu' );
37
+
38
+ $serves_cuisine = trim( Helper::get_post_meta( 'snippet_restaurant_serves_cuisine' ) );
39
+ if ( $serves_cuisine ) {
40
+ $entity['servesCuisine'] = explode( ',', $serves_cuisine );
41
+ }
42
+
43
+ return $entity;
44
+ }
45
+ }
includes/modules/rich-snippet/snippets/class-review.php ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Review Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+ use RankMath\Traits\Hooker;
15
+
16
+ defined( 'ABSPATH' ) || exit;
17
+
18
+ /**
19
+ * Review class.
20
+ */
21
+ class Review implements Snippet {
22
+
23
+ use Hooker;
24
+
25
+ /**
26
+ * Review rich snippet.
27
+ *
28
+ * @param array $data Array of json-ld data.
29
+ * @param JsonLD $jsonld JsonLD Instance.
30
+ *
31
+ * @return array
32
+ */
33
+ public function process( $data, $jsonld ) {
34
+ $entity = [
35
+ '@context' => 'https://schema.org',
36
+ '@type' => 'Review',
37
+ 'author' => [
38
+ '@type' => 'Person',
39
+ 'name' => $jsonld->parts['author'],
40
+ ],
41
+ 'datePublished' => $jsonld->parts['published'],
42
+ 'description' => $jsonld->parts['desc'],
43
+ 'itemReviewed' => [
44
+ '@type' => 'Thing',
45
+ 'name' => $jsonld->parts['title'],
46
+ ],
47
+ 'reviewRating' => [
48
+ '@type' => 'Rating',
49
+ 'worstRating' => Helper::get_post_meta( 'snippet_review_worst_rating' ),
50
+ 'bestRating' => Helper::get_post_meta( 'snippet_review_best_rating' ),
51
+ 'ratingValue' => Helper::get_post_meta( 'snippet_review_rating_value' ),
52
+ ],
53
+ ];
54
+
55
+ $jsonld->add_prop( 'thumbnail', $entity['itemReviewed'] );
56
+
57
+ $this->filter( 'the_content', 'add_review_to_content', 11 );
58
+
59
+ return $entity;
60
+ }
61
+
62
+ /**
63
+ * Injects reviews to content.
64
+ *
65
+ * @param string $content Post content.
66
+ * @return string
67
+ *
68
+ * @since 1.0.12
69
+ */
70
+ public function add_review_to_content( $content ) {
71
+ global $multipage, $numpages, $page;
72
+
73
+ $location = $this->can_add_content();
74
+ if ( false === $location ) {
75
+ return $content;
76
+ }
77
+
78
+ $review = do_shortcode( '[rank_math_review_snippet]' );
79
+
80
+ if ( 'top' === $location || 'both' === $location ) {
81
+ $content = $review . $content;
82
+ }
83
+
84
+ if ( ( 'bottom' === $location || 'both' === $location ) && ( ! $multipage || $page === $numpages ) ) {
85
+ $content .= $review;
86
+ }
87
+
88
+ return $content;
89
+ }
90
+
91
+ /**
92
+ * Can add content.
93
+ *
94
+ * @return boolean|string
95
+ */
96
+ private function can_add_content() {
97
+ if ( ! is_main_query() || ! in_the_loop() ) {
98
+ return false;
99
+ }
100
+
101
+ /**
102
+ * Filter: Allow disabling the review display.
103
+ *
104
+ * @param bool $return True to disable.
105
+ */
106
+ if ( true === $this->do_filter( 'snippet/review/hide_data', false ) ) {
107
+ return false;
108
+ }
109
+
110
+ $location = $this->do_filter( 'snippet/review/location', Helper::get_post_meta( 'snippet_review_location' ) );
111
+ $location = $location ? $location : 'bottom';
112
+
113
+ if ( 'custom' === $location ) {
114
+ return false;
115
+ }
116
+
117
+ return $location;
118
+ }
119
+ }
includes/modules/rich-snippet/snippets/class-search-results.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Search Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ defined( 'ABSPATH' ) || exit;
14
+
15
+ /**
16
+ * Search_Results class.
17
+ */
18
+ class Search_Results implements Snippet {
19
+
20
+ /**
21
+ * Outputs code to allow recognition of the SearchResultsPage.
22
+ *
23
+ * @link https://schema.org/SearchResultsPage
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $data['SearchResultsPage'] = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'SearchResultsPage',
34
+ ];
35
+
36
+ return $data;
37
+ }
38
+ }
includes/modules/rich-snippet/snippets/class-service.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Service Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Service class.
19
+ */
20
+ class Service implements Snippet {
21
+
22
+ /**
23
+ * Service rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'Service',
34
+ 'name' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'serviceType' => Helper::get_post_meta( 'snippet_service_type' ),
37
+ 'offers' => [
38
+ '@type' => 'Offer',
39
+ 'price' => Helper::get_post_meta( 'snippet_service_price' ),
40
+ 'priceCurrency' => Helper::get_post_meta( 'snippet_service_price_currency' ),
41
+ ],
42
+ 'aggregateRating' => [
43
+ '@type' => 'AggregateRating',
44
+ 'ratingValue' => Helper::get_post_meta( 'snippet_service_rating_value' ),
45
+ 'ratingCount' => Helper::get_post_meta( 'snippet_service_rating_count' ),
46
+ ],
47
+ ];
48
+
49
+ return $entity;
50
+ }
51
+ }
includes/modules/rich-snippet/snippets/class-singular.php ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Singular Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+ use RankMath\Traits\Hooker;
15
+ use MyThemeShop\Helpers\Conditional;
16
+
17
+ defined( 'ABSPATH' ) || exit;
18
+
19
+ /**
20
+ * Singular class.
21
+ */
22
+ class Singular implements Snippet {
23
+
24
+ use Hooker;
25
+
26
+ /**
27
+ * Generate rich snippet.
28
+ *
29
+ * @param array $data Array of json-ld data.
30
+ * @param JsonLD $jsonld JsonLD Instance.
31
+ *
32
+ * @return array
33
+ */
34
+ public function process( $data, $jsonld ) {
35
+ $schema = $this->can_add_schema( $jsonld );
36
+ if ( false === $schema ) {
37
+ return $data;
38
+ }
39
+
40
+ $hook = 'snippet/rich_snippet_' . $schema;
41
+ /**
42
+ * Short-circuit if 3rd party is interested generating his own data.
43
+ */
44
+ $pre = $this->do_filter( $hook, false, $jsonld->parts, $data );
45
+ if ( false !== $pre ) {
46
+ $data['richSnippet'] = $this->do_filter( $hook . '_entity', $pre );
47
+ return $data;
48
+ }
49
+
50
+ $object = $this->get_schema_class( $schema );
51
+ if ( false === $object ) {
52
+ return $data;
53
+ }
54
+
55
+ $entity = $object->process( $data, $jsonld );
56
+
57
+ // Images.
58
+ $jsonld->add_prop( 'thumbnail', $entity );
59
+ if ( ! empty( $entity['image'] ) && 'video' === $schema ) {
60
+ $entity['thumbnailUrl'] = $entity['image']['url'];
61
+ unset( $entity['image'] );
62
+ }
63
+
64
+ $data['richSnippet'] = $this->do_filter( $hook . '_entity', $entity );
65
+
66
+ return $data;
67
+ }
68
+
69
+ /**
70
+ * Can add schema.
71
+ *
72
+ * @param JsonLD $jsonld JsonLD Instance.
73
+ *
74
+ * @return boolean|string
75
+ */
76
+ private function can_add_schema( $jsonld ) {
77
+ $schema = Helper::get_post_meta( 'rich_snippet' );
78
+ if ( ! $schema && Conditional::is_woocommerce_active() && is_product() && ! metadata_exists( 'post', $jsonld->post_id, 'rank_math_rich_snippet' ) ) {
79
+ $schema = Helper::get_settings( 'titles.pt_product_default_rich_snippet' );
80
+ }
81
+
82
+ return $schema;
83
+ }
84
+
85
+ /**
86
+ * Get Schema Class.
87
+ *
88
+ * @param string $schema Schema type.
89
+ * @return bool|Class
90
+ */
91
+ private function get_schema_class( $schema ) {
92
+ $data = [
93
+ 'article' => '\\RankMath\\RichSnippet\\Article',
94
+ 'book' => '\\RankMath\\RichSnippet\\Book',
95
+ 'course' => '\\RankMath\\RichSnippet\\Course',
96
+ 'event' => '\\RankMath\\RichSnippet\\Event',
97
+ 'jobposting' => '\\RankMath\\RichSnippet\\JobPosting',
98
+ 'music' => '\\RankMath\\RichSnippet\\Music',
99
+ 'recipe' => '\\RankMath\\RichSnippet\\Recipe',
100
+ 'restaurant' => '\\RankMath\\RichSnippet\\Restaurant',
101
+ 'video' => '\\RankMath\\RichSnippet\\Video',
102
+ 'person' => '\\RankMath\\RichSnippet\\Person',
103
+ 'review' => '\\RankMath\\RichSnippet\\Review',
104
+ 'service' => '\\RankMath\\RichSnippet\\Service',
105
+ 'software' => '\\RankMath\\RichSnippet\\Software',
106
+ 'product' => '\\RankMath\\RichSnippet\\Product',
107
+ ];
108
+
109
+ if ( isset( $data[ $schema ] ) && class_exists( $data[ $schema ] ) ) {
110
+ return new $data[ $schema ];
111
+ }
112
+
113
+ return false;
114
+ }
115
+ }
includes/modules/rich-snippet/snippets/class-software.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Software Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Software class.
19
+ */
20
+ class Software implements Snippet {
21
+
22
+ /**
23
+ * Software rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'SoftwareApplication',
34
+ 'name' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'operatingSystem' => Helper::get_post_meta( 'snippet_software_operating_system' ),
37
+ 'applicationCategory' => Helper::get_post_meta( 'snippet_software_application_category' ),
38
+ 'offers' => [
39
+ '@type' => 'Offer',
40
+ 'price' => Helper::get_post_meta( 'snippet_software_price' ),
41
+ 'priceCurrency' => Helper::get_post_meta( 'snippet_software_price_currency' ),
42
+ ],
43
+ 'aggregateRating' => [
44
+ '@type' => 'AggregateRating',
45
+ 'ratingValue' => Helper::get_post_meta( 'snippet_software_rating_value' ),
46
+ 'ratingCount' => Helper::get_post_meta( 'snippet_software_rating_count' ),
47
+ ],
48
+ ];
49
+
50
+ return $entity;
51
+ }
52
+ }
includes/modules/rich-snippet/snippets/class-video.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Video Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet\Video
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ use RankMath\Helper;
14
+
15
+ defined( 'ABSPATH' ) || exit;
16
+
17
+ /**
18
+ * Video class.
19
+ */
20
+ class Video implements Snippet {
21
+
22
+ /**
23
+ * Video rich snippet.
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $entity = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'VideoObject',
34
+ 'name' => $jsonld->parts['title'],
35
+ 'description' => $jsonld->parts['desc'],
36
+ 'uploadDate' => $jsonld->parts['published'],
37
+ 'duration' => 'PT' . Helper::get_post_meta( 'snippet_video_duration' ),
38
+ ];
39
+
40
+ $jsonld->set_data([
41
+ 'snippet_video_url' => 'contentUrl',
42
+ 'snippet_video_embed_url' => 'embedUrl',
43
+ 'snippet_video_views' => 'interactionCount',
44
+ ], $entity );
45
+
46
+ if ( isset( $data['Organization'] ) ) {
47
+ $jsonld->set_publisher( $entity, $data['Organization'] );
48
+ unset( $data['Organization'] );
49
+ }
50
+
51
+ return $entity;
52
+ }
53
+ }
includes/modules/rich-snippet/{class-wc-attributes.php → snippets/class-wc-attributes.php} RENAMED
@@ -65,11 +65,11 @@ class WC_Attributes {
65
  public function assign_remaining( &$entity ) {
66
  foreach ( $this->_attributes as $key => $attrib ) {
67
  if ( $attrib['is_visible'] && ! $attrib['is_variation'] ) {
68
- $entity['additionalProperty'][] = array(
69
  '@type' => 'PropertyValue',
70
  'name' => $key,
71
  'value' => $this->_product->get_attribute( $key ),
72
- );
73
  }
74
  }
75
  }
65
  public function assign_remaining( &$entity ) {
66
  foreach ( $this->_attributes as $key => $attrib ) {
67
  if ( $attrib['is_visible'] && ! $attrib['is_variation'] ) {
68
+ $entity['additionalProperty'][] = [
69
  '@type' => 'PropertyValue',
70
  'name' => $key,
71
  'value' => $this->_product->get_attribute( $key ),
72
+ ];
73
  }
74
  }
75
  }
includes/modules/rich-snippet/snippets/class-website.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Website Class
4
+ *
5
+ * @since 1.0.13
6
+ * @package RankMath
7
+ * @subpackage RankMath\RichSnippet
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ namespace RankMath\RichSnippet;
12
+
13
+ defined( 'ABSPATH' ) || exit;
14
+
15
+ /**
16
+ * Website class.
17
+ */
18
+ class Website implements Snippet {
19
+
20
+ /**
21
+ * Outputs code to allow recognition of the internal search engine.
22
+ *
23
+ * @link https://developers.google.com/structured-data/site-name
24
+ *
25
+ * @param array $data Array of json-ld data.
26
+ * @param JsonLD $jsonld JsonLD Instance.
27
+ *
28
+ * @return array
29
+ */
30
+ public function process( $data, $jsonld ) {
31
+ $data['WebSite'] = [
32
+ '@context' => 'https://schema.org',
33
+ '@type' => 'WebSite',
34
+ '@id' => home_url( '/#website' ),
35
+ 'url' => get_home_url(),
36
+ 'name' => $jsonld->get_website_name(),
37
+ ];
38
+
39
+ /**
40
+ * Allow disabling of the json+ld output.
41
+ *
42
+ * @param boolean Whether or not to display json+ld search on the frontend
43
+ */
44
+ if ( ! apply_filters( 'rank_math/json_ld/disable_search', false ) ) {
45
+ /**
46
+ * Allows filtering of the search URL.
47
+ *
48
+ * @param string $search_url The search URL for this site with a `{search_term_string}` variable.
49
+ */
50
+ $search_url = apply_filters( 'rank_math/json_ld/search_url', home_url( '/?s={search_term_string}' ) );
51
+
52
+ $data['WebSite']['potentialAction'] = [
53
+ '@type' => 'SearchAction',
54
+ 'target' => $search_url,
55
+ 'query-input' => 'required name=search_term_string',
56
+ ];
57
+ }
58
+
59
+ return $data;
60
+ }
61
+ }
includes/modules/rich-snippet/views/article.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Article Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ use RankMath\Helper;
10
+
11
+ $article_dep = [ [ 'rank_math_rich_snippet', 'article' ] ];
12
+ /* translators: Google article snippet doc link */
13
+ $article_desc = 'person' === Helper::get_settings( 'titles.knowledgegraph_type' ) ? '<div class="notice notice-warning inline"><p>' . sprintf( __( 'Google does not allow Person as the Publisher for articles. Organization will be used instead. You can read more about this <a href="%s" target="_blank">here</a>.', 'rank-math' ), 'https://developers.google.com/search/docs/data-types/article' ) . '</p></div>' : '';
14
+
15
+ $cmb->add_field([
16
+ 'id' => 'rank_math_snippet_article_type',
17
+ 'type' => 'radio_inline',
18
+ 'name' => esc_html__( 'Article Type', 'rank-math' ),
19
+ 'options' => [
20
+ 'Article' => esc_html__( 'Article', 'rank-math' ),
21
+ 'BlogPosting' => esc_html__( 'Blog Post', 'rank-math' ),
22
+ 'NewsArticle' => esc_html__( 'News Article', 'rank-math' ),
23
+ ],
24
+ 'default' => Helper::get_settings( "titles.pt_{$post_type}_default_article_type" ),
25
+ 'classes' => 'nob',
26
+ 'desc' => $article_desc,
27
+ 'dep' => $article_dep,
28
+ ]);
includes/modules/rich-snippet/views/book.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Book Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $book_dep = [ [ 'rank_math_rich_snippet', 'book' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_book_editions',
13
+ 'type' => 'group',
14
+ 'name' => esc_html__( 'Book Editions', 'rank-math' ),
15
+ 'desc' => esc_html__( 'Either a specific edition of the written work, or the volume of the work.', 'rank-math' ),
16
+ 'options' => [
17
+ 'closed' => true,
18
+ 'sortable' => true,
19
+ 'add_button' => esc_html__( 'Add New', 'rank-math' ),
20
+ 'group_title' => esc_html__( 'Book Edition {#}', 'rank-math' ),
21
+ 'remove_button' => esc_html__( 'Remove', 'rank-math' ),
22
+ ],
23
+ 'classes' => 'cmb-group-fix-me nob',
24
+ 'dep' => $book_dep,
25
+ 'fields' => [
26
+ [
27
+ 'id' => 'name',
28
+ 'type' => 'text',
29
+ 'name' => esc_html__( 'Title', 'rank-math' ),
30
+ 'desc' => __( 'The title of the tome. Use for the title of the tome if it differs from the book.<br>*Optional when tome has the same title as the book.', 'rank-math' ),
31
+ ],
32
+
33
+ [
34
+ 'id' => 'book_edition',
35
+ 'type' => 'text',
36
+ 'name' => esc_html__( 'Edition', 'rank-math' ),
37
+ 'desc' => esc_html__( 'The edition of the book.', 'rank-math' ),
38
+ ],
39
+
40
+ [
41
+ 'id' => 'isbn',
42
+ 'type' => 'text',
43
+ 'name' => esc_html__( 'ISBN', 'rank-math' ),
44
+ 'desc' => esc_html__( 'The ISBN of the print book.', 'rank-math' ),
45
+ ],
46
+
47
+ [
48
+ 'id' => 'url',
49
+ 'type' => 'text_url',
50
+ 'name' => esc_html__( 'Url', 'rank-math' ),
51
+ 'desc' => esc_html__( 'URL specific to this edition if one exists.', 'rank-math' ),
52
+ ],
53
+
54
+ [
55
+ 'id' => 'author',
56
+ 'type' => 'text',
57
+ 'name' => esc_html__( 'Author(s)', 'rank-math' ),
58
+ 'desc' => __( 'The author(s) of the tome. Use if the author(s) of the tome differ from the related book. Provide one Person entity per author.<br>*Optional when the tome has the same set of authors as the book.', 'rank-math' ),
59
+ ],
60
+
61
+ [
62
+ 'id' => 'date_published',
63
+ 'type' => 'text_date',
64
+ 'name' => esc_html__( 'Date Published', 'rank-math' ),
65
+ 'desc' => esc_html__( 'Date of first publication of this tome.', 'rank-math' ),
66
+ ],
67
+
68
+ [
69
+ 'id' => 'book_format',
70
+ 'type' => 'radio_inline',
71
+ 'name' => esc_html__( 'Book Format', 'rank-math' ),
72
+ 'desc' => esc_html__( 'The format of the book.', 'rank-math' ),
73
+ 'options' => [
74
+ 'EBook' => esc_html__( 'EBook', 'rank-math' ),
75
+ 'Hardcover' => esc_html__( 'Hardcover', 'rank-math' ),
76
+ 'Paperback' => esc_html__( 'Paperback', 'rank-math' ),
77
+ 'AudioBook' => esc_html__( 'Audio Book', 'rank-math' ),
78
+ ],
79
+ 'default' => 'Hardcover',
80
+ ],
81
+ ],
82
+ ]);
includes/modules/rich-snippet/views/course.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Course Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $course_dep = [ [ 'rank_math_rich_snippet', 'course' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_course_provider',
13
+ 'type' => 'text',
14
+ 'name' => esc_html__( 'Course Provider', 'rank-math' ),
15
+ 'dep' => $course_dep,
16
+ ]);
17
+
18
+ $cmb->add_field([
19
+ 'id' => 'rank_math_snippet_course_provider_url',
20
+ 'type' => 'text_url',
21
+ 'name' => esc_html__( 'Course Provider URL', 'rank-math' ),
22
+ 'dep' => $course_dep,
23
+ 'classes' => 'nob',
24
+ ]);
includes/modules/rich-snippet/views/event.php ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Event Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $event = [ [ 'rank_math_rich_snippet', 'event' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_event_type',
13
+ 'type' => 'select',
14
+ 'name' => esc_html__( 'Event Type', 'rank-math' ),
15
+ 'desc' => esc_html__( 'Type of the event.', 'rank-math' ),
16
+ 'options' => [
17
+ 'Event' => esc_html__( 'Event', 'rank-math' ),
18
+ 'BusinessEvent' => esc_html__( 'Business Event', 'rank-math' ),
19
+ 'ChildrensEvent' => esc_html__( 'Childrens Event', 'rank-math' ),
20
+ 'ComedyEvent' => esc_html__( 'Comedy Event', 'rank-math' ),
21
+ 'DanceEvent' => esc_html__( 'Dance Event', 'rank-math' ),
22
+ 'DeliveryEvent' => esc_html__( 'Delivery Event', 'rank-math' ),
23
+ 'EducationEvent' => esc_html__( 'Education Event', 'rank-math' ),
24
+ 'ExhibitionEvent' => esc_html__( 'Exhibition Event', 'rank-math' ),
25
+ 'Festival' => esc_html__( 'Festival', 'rank-math' ),
26
+ 'FoodEvent' => esc_html__( 'Food Event', 'rank-math' ),
27
+ 'LiteraryEvent' => esc_html__( 'Literary Event', 'rank-math' ),
28
+ 'MusicEvent' => esc_html__( 'Music Event', 'rank-math' ),
29
+ 'PublicationEvent' => esc_html__( 'Publication Event', 'rank-math' ),
30
+ 'SaleEvent' => esc_html__( 'Sale Event', 'rank-math' ),
31
+ 'ScreeningEvent' => esc_html__( 'Screening Event', 'rank-math' ),
32
+ 'SocialEvent' => esc_html__( 'Social Event', 'rank-math' ),
33
+ 'SportsEvent' => esc_html__( 'Sports Event', 'rank-math' ),
34
+ 'TheaterEvent' => esc_html__( 'Theater Event', 'rank-math' ),
35
+ 'VisualArtsEvent' => esc_html__( 'Visual Arts Event', 'rank-math' ),
36
+ ],
37
+ 'default' => 'Event',
38
+ 'classes' => 'cmb-row-33',
39
+ 'dep' => $event,
40
+ ]);
41
+
42
+ $cmb->add_field([
43
+ 'id' => 'rank_math_snippet_event_venue',
44
+ 'type' => 'text',
45
+ 'name' => esc_html__( 'Venue Name', 'rank-math' ),
46
+ 'desc' => esc_html__( 'The venue name.', 'rank-math' ),
47
+ 'classes' => 'cmb-row-33',
48
+ 'dep' => $event,
49
+ ]);
50
+
51
+ $cmb->add_field([
52
+ 'id' => 'rank_math_snippet_event_venue_url',
53
+ 'type' => 'text_url',
54
+ 'name' => esc_html__( 'Venue URL', 'rank-math' ),
55
+ 'desc' => esc_html__( 'Website URL of the venue', 'rank-math' ),
56
+ 'classes' => 'cmb-row-33',
57
+ 'dep' => $event,
58
+ ]);
59
+
60
+ $cmb->add_field([
61
+ 'id' => 'rank_math_snippet_event_address',
62
+ 'type' => 'address',
63
+ 'name' => esc_html__( 'Address', 'rank-math' ),
64
+ 'dep' => $event,
65
+ ]);
66
+
67
+ $cmb->add_field([
68
+ 'id' => 'rank_math_snippet_event_performer',
69
+ 'type' => 'text',
70
+ 'name' => esc_html__( 'Performer', 'rank-math' ),
71
+ 'desc' => esc_html__( 'A performer at the event', 'rank-math' ),
72
+ 'dep' => $event,
73
+ ]);
74
+
75
+ $cmb->add_field([
76
+ 'id' => 'rank_math_snippet_event_status',
77
+ 'type' => 'select',
78
+ 'name' => esc_html__( 'Event Status', 'rank-math' ),
79
+ 'desc' => esc_html__( 'Current status of the event (optional)', 'rank-math' ),
80
+ 'options' => [
81
+ '' => esc_html__( 'None', 'rank-math' ),
82
+ 'EventScheduled' => esc_html__( 'Scheduled', 'rank-math' ),
83
+ 'EventCancelled' => esc_html__( 'Cancelled', 'rank-math' ),
84
+ 'EventPostponed' => esc_html__( 'Postponed', 'rank-math' ),
85
+ 'EventRescheduled' => esc_html__( 'Rescheduled', 'rank-math' ),
86
+ ],
87
+ 'classes' => 'cmb-row-33',
88
+ 'dep' => $event,
89
+ ]);
90
+
91
+ $cmb->add_field([
92
+ 'id' => 'rank_math_snippet_event_startdate',
93
+ 'type' => 'text_datetime_timestamp',
94
+ 'date_format' => 'Y-m-d',
95
+ 'name' => esc_html__( 'Start Date', 'rank-math' ),
96
+ 'desc' => esc_html__( 'Date and time of the event.', 'rank-math' ),
97
+ 'classes' => 'cmb-row-33',
98
+ 'dep' => $event,
99
+ ]);
100
+
101
+ $cmb->add_field([
102
+ 'id' => 'rank_math_snippet_event_enddate',
103
+ 'type' => 'text_datetime_timestamp',
104
+ 'date_format' => 'Y-m-d',
105
+ 'name' => esc_html__( 'End Date', 'rank-math' ),
106
+ 'desc' => esc_html__( 'End date and time of the event.', 'rank-math' ),
107
+ 'classes' => 'cmb-row-33',
108
+ 'dep' => $event,
109
+ ]);
110
+
111
+ $cmb->add_field([
112
+ 'id' => 'rank_math_snippet_event_ticketurl',
113
+ 'type' => 'text',
114
+ 'name' => esc_html__( 'Ticket URL', 'rank-math' ),
115
+ 'desc' => esc_html__( 'A URL where visitors can purchase tickets for the event.', 'rank-math' ),
116
+ 'classes' => 'cmb-row-33',
117
+ 'dep' => $event,
118
+ ]);
119
+
120
+ $cmb->add_field([
121
+ 'id' => 'rank_math_snippet_event_price',
122
+ 'type' => 'text',
123
+ 'name' => esc_html__( 'Entry Price', 'rank-math' ),
124
+ 'desc' => esc_html__( 'Entry price of the event (optional)', 'rank-math' ),
125
+ 'classes' => 'cmb-row-33',
126
+ 'dep' => $event,
127
+ 'attributes' => [ 'type' => 'number' ],
128
+ ]);
129
+
130
+ $cmb->add_field([
131
+ 'id' => 'rank_math_snippet_event_currency',
132
+ 'type' => 'text',
133
+ 'name' => esc_html__( 'Currency', 'rank-math' ),
134
+ 'desc' => esc_html__( 'ISO 4217 Currency Code', 'rank-math' ),
135
+ 'classes' => 'cmb-row-33',
136
+ 'dep' => $event,
137
+ ]);
138
+
139
+ $cmb->add_field([
140
+ 'id' => 'rank_math_snippet_event_availability',
141
+ 'type' => 'select',
142
+ 'name' => esc_html__( 'Availability', 'rank-math' ),
143
+ 'desc' => esc_html__( 'Offer availability', 'rank-math' ),
144
+ 'options' => [
145
+ '' => esc_html__( 'None', 'rank-math' ),
146
+ 'InStock' => esc_html__( 'In Stock', 'rank-math' ),
147
+ 'SoldOut' => esc_html__( 'Sold Out', 'rank-math' ),
148
+ 'PreOrder' => esc_html__( 'Preorder', 'rank-math' ),
149
+ ],
150
+ 'classes' => 'cmb-row-33 nob',
151
+ 'dep' => $event,
152
+ ]);
153
+
154
+ $cmb->add_field([
155
+ 'id' => 'rank_math_snippet_event_availability_starts',
156
+ 'type' => 'text_datetime_timestamp',
157
+ 'date_format' => 'Y-m-d',
158
+ 'name' => esc_html__( 'Availability Starts', 'rank-math' ),
159
+ 'desc' => esc_html__( 'Date and time when offer is made available. (optional)', 'rank-math' ),
160
+ 'classes' => 'cmb-row-33 nob',
161
+ 'dep' => $event,
162
+ ]);
163
+
164
+ $cmb->add_field([
165
+ 'id' => 'rank_math_snippet_event_inventory',
166
+ 'type' => 'text',
167
+ 'name' => esc_html__( 'Stock Inventory', 'rank-math' ),
168
+ 'desc' => esc_html__( 'Number of tickets (optional)', 'rank-math' ),
169
+ 'classes' => 'cmb-row-33 nob',
170
+ 'dep' => $event,
171
+ 'attributes' => [ 'type' => 'number' ],
172
+ ]);
includes/modules/rich-snippet/views/job-posting.php ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Job Posting Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ use RankMath\Helper;
10
+
11
+ $jobposting = [ [ 'rank_math_rich_snippet', 'jobposting' ] ];
12
+
13
+ $cmb->add_field([
14
+ 'id' => 'rank_math_snippet_jobposting_salary',
15
+ 'type' => 'text',
16
+ 'name' => esc_html__( 'Salary (Recommended)', 'rank-math' ),
17
+ 'desc' => esc_html__( 'Insert amount, e.g. "50.00", or a salary range, e.g. "40.00-50.00".', 'rank-math' ),
18
+ 'classes' => 'cmb-row-33',
19
+ 'dep' => $jobposting,
20
+ 'attributes' => [ 'type' => 'number' ],
21
+ ]);
22
+
23
+ $cmb->add_field([
24
+ 'id' => 'rank_math_snippet_jobposting_currency',
25
+ 'type' => 'text',
26
+ 'name' => esc_html__( 'Salary Currency', 'rank-math' ),
27
+ 'desc' => esc_html__( 'ISO 4217 Currency Code', 'rank-math' ),
28
+ 'classes' => 'cmb-row-33',
29
+ 'dep' => $jobposting,
30
+ ]);
31
+
32
+ $cmb->add_field([
33
+ 'id' => 'rank_math_snippet_jobposting_payroll',
34
+ 'type' => 'select',
35
+ 'name' => esc_html__( 'Payroll (Recommended)', 'rank-math' ),
36
+ 'desc' => esc_html__( 'Salary amount is for', 'rank-math' ),
37
+ 'options' => [
38
+ '' => esc_html__( 'None', 'rank-math' ),
39
+ 'YEAR' => esc_html__( 'Yearly', 'rank-math' ),
40
+ 'MONTH' => esc_html__( 'Monthly', 'rank-math' ),
41
+ 'WEEK' => esc_html__( 'Weekly', 'rank-math' ),
42
+ 'DAY' => esc_html__( 'Daily', 'rank-math' ),
43
+ 'HOUR' => esc_html__( 'Hourly', 'rank-math' ),
44
+ ],
45
+ 'classes' => 'cmb-row-33',
46
+ 'dep' => $jobposting,
47
+ ]);
48
+
49
+ $cmb->add_field([
50
+ 'id' => 'rank_math_snippet_jobposting_startdate',
51
+ 'type' => 'text_datetime_timestamp',
52
+ 'date_format' => 'Y-m-d',
53
+ 'name' => esc_html__( 'Date Posted', 'rank-math' ),
54
+ 'desc' => wp_kses_post( __( 'The original date on which employer posted the job. You can leave it empty to use the post publication date as job posted date.', 'rank-math' ) ),
55
+ 'classes' => 'cmb-row-33',
56
+ 'dep' => $jobposting,
57
+ ]);
58
+
59
+ $cmb->add_field([
60
+ 'id' => 'rank_math_snippet_jobposting_expirydate',
61
+ 'type' => 'text_datetime_timestamp',
62
+ 'date_format' => 'Y-m-d',
63
+ 'name' => esc_html__( 'Expiry Posted', 'rank-math' ),
64
+ 'desc' => esc_html__( 'The date when the job posting will expire. If a job posting never expires, or you do not know when the job will expire, do not include this property.', 'rank-math' ),
65
+ 'classes' => 'cmb-row-33',
66
+ 'dep' => $jobposting,
67
+ ]);
68
+
69
+ $cmb->add_field([
70
+ 'id' => 'rank_math_snippet_jobposting_unpublish',
71
+ 'type' => 'switch',
72
+ 'name' => esc_html__( 'Unpublish when expired', 'rank-math' ),
73
+ 'desc' => esc_html__( 'If checked, post status will be changed to Draft and its URL will return a 404 error, as required by the Rich Result guidelines.', 'rank-math' ),
74
+ 'classes' => 'cmb-row-33',
75
+ 'default' => 'on',
76
+ 'dep' => $jobposting,
77
+ ]);
78
+
79
+ $cmb->add_field([
80
+ 'id' => 'rank_math_snippet_jobposting_employment_type',
81
+ 'type' => 'multicheck_inline',
82
+ 'name' => esc_html__( 'Employment Type (Recommended)', 'rank-math' ),
83
+ 'desc' => esc_html__( 'Type of employment. You can choose more than one value.', 'rank-math' ),
84
+ 'options' => [
85
+ 'FULL_TIME' => esc_html__( 'Full Time', 'rank-math' ),
86
+ 'PART_TIME' => esc_html__( 'Part Time', 'rank-math' ),
87
+ 'CONTRACTOR' => esc_html__( 'Contractor', 'rank-math' ),
88
+ 'TEMPORARY' => esc_html__( 'Temporary', 'rank-math' ),
89
+ 'INTERN' => esc_html__( 'Intern', 'rank-math' ),
90
+ 'VOLUNTEER' => esc_html__( 'Volunteer', 'rank-math' ),
91
+ 'PER_DIEM' => esc_html__( 'Per Diem', 'rank-math' ),
92
+ 'OTHER' => esc_html__( 'Other', 'rank-math' ),
93
+ ],
94
+ 'dep' => $jobposting,
95
+ 'select_all_button' => false,
96
+ ]);
97
+
98
+ $cmb->add_field([
99
+ 'id' => 'rank_math_snippet_jobposting_organization',
100
+ 'type' => 'text',
101
+ 'name' => esc_html__( 'Hiring Organization', 'rank-math' ),
102
+ 'desc' => esc_html__( 'The name of the company. Leave empty to use your own company information.', 'rank-math' ),
103
+ 'attributes' => [
104
+ 'placeholder' => 'company' === Helper::get_settings( 'titles.knowledgegraph_type' ) ? Helper::get_settings( 'titles.knowledgegraph_name' ) : get_bloginfo( 'name' ),
105
+ ],
106
+ 'dep' => $jobposting,
107
+ 'classes' => 'cmb-row-50',
108
+ ]);
109
+
110
+ $cmb->add_field([
111
+ 'id' => 'rank_math_snippet_jobposting_id',
112
+ 'type' => 'text',
113
+ 'name' => esc_html__( 'Posting ID (Recommended)', 'rank-math' ),
114
+ 'desc' => esc_html__( 'The hiring organization\'s unique identifier for the job. Leave empty to use the post ID.', 'rank-math' ),
115
+ 'classes' => 'cmb-row-50',
116
+ 'dep' => $jobposting,
117
+ ]);
118
+
119
+ $cmb->add_field([
120
+ 'id' => 'rank_math_snippet_jobposting_url',
121
+ 'type' => 'text_url',
122
+ 'name' => esc_html__( 'Organization URL (Recommended)', 'rank-math' ),
123
+ 'desc' => esc_html__( 'The URL of the organization offering the job position. Leave empty to use your own company information.', 'rank-math' ),
124
+ 'classes' => 'cmb-row-50',
125
+ 'dep' => $jobposting,
126
+ ]);
127
+
128
+ $cmb->add_field([
129
+ 'id' => 'rank_math_snippet_jobposting_logo',
130
+ 'type' => 'text_url',
131
+ 'name' => esc_html__( 'Organization Logo (Recommended)', 'rank-math' ),
132
+ 'desc' => esc_html__( 'Logo URL of the organization offering the job position. Leave empty to use your own company information.', 'rank-math' ),
133
+ 'classes' => 'cmb-row-50',
134
+ 'dep' => $jobposting,
135
+ ]);
136
+
137
+ $cmb->add_field([
138
+ 'id' => 'rank_math_snippet_jobposting_address',
139
+ 'type' => 'address',
140
+ 'name' => esc_html__( 'Location', 'rank-math' ),
141
+ 'classes' => 'nob',
142
+ 'dep' => $jobposting,
143
+ ]);
includes/modules/rich-snippet/views/local.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Local Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $local = [ [ 'rank_math_rich_snippet', 'local,restaurant' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_local_address',
13
+ 'type' => 'address',
14
+ 'name' => esc_html__( 'Address', 'rank-math' ),
15
+ 'dep' => $local,
16
+ ]);
17
+
18
+ $cmb->add_field([
19
+ 'id' => 'rank_math_snippet_local_geo',
20
+ 'type' => 'text',
21
+ 'name' => esc_html__( 'Geo Coordinates', 'rank-math' ),
22
+ 'classes' => 'cmb-row-33',
23
+ 'dep' => $local,
24
+ ]);
25
+
26
+ $cmb->add_field([
27
+ 'id' => 'rank_math_snippet_local_phone',
28
+ 'type' => 'text',
29
+ 'name' => esc_html__( 'Phone Number', 'rank-math' ),
30
+ 'classes' => 'cmb-row-33',
31
+ 'dep' => $local,
32
+ ]);
33
+
34
+ $cmb->add_field([
35
+ 'id' => 'rank_math_snippet_local_price_range',
36
+ 'type' => 'text',
37
+ 'name' => esc_html__( 'Price Range', 'rank-math' ),
38
+ 'classes' => 'cmb-row-33',
39
+ 'dep' => $local,
40
+ ]);
41
+
42
+ $cmb->add_field([
43
+ 'id' => 'rank_math_snippet_local_opens',
44
+ 'type' => 'text_time',
45
+ 'name' => esc_html__( 'Opening Time', 'rank-math' ),
46
+ 'classes' => 'cmb-row-50',
47
+ 'dep' => $local,
48
+ ]);
49
+
50
+ $cmb->add_field([
51
+ 'id' => 'rank_math_snippet_local_closes',
52
+ 'type' => 'text_time',
53
+ 'name' => esc_html__( 'Closing Time', 'rank-math' ),
54
+ 'classes' => 'cmb-row-50',
55
+ 'dep' => $local,
56
+ ]);
57
+
58
+ $cmb->add_field([
59
+ 'id' => 'rank_math_snippet_local_opendays',
60
+ 'type' => 'multicheck_inline',
61
+ 'name' => esc_html__( 'Open Days', 'rank-math' ),
62
+ 'options' => [
63
+ 'monday' => esc_html__( 'Monday', 'rank-math' ),
64
+ 'tuesday' => esc_html__( 'Tuesday', 'rank-math' ),
65
+ 'wednesday' => esc_html__( 'Wednesday', 'rank-math' ),
66
+ 'thursday' => esc_html__( 'Thursday', 'rank-math' ),
67
+ 'friday' => esc_html__( 'Friday', 'rank-math' ),
68
+ 'saturday' => esc_html__( 'Saturday', 'rank-math' ),
69
+ 'sunday' => esc_html__( 'Sunday', 'rank-math' ),
70
+ ],
71
+ 'select_all_button' => false,
72
+ 'dep' => $local,
73
+ ]);
includes/modules/rich-snippet/views/metabox-options.php CHANGED
@@ -17,30 +17,30 @@ $post_type = WordPress::get_post_type();
17
 
18
  if ( ( class_exists( 'WooCommerce' ) && 'product' === $post_type ) || ( class_exists( 'Easy_Digital_Downloads' ) && 'download' === $post_type ) ) {
19
 
20
- $cmb->add_field( array(
21
  'id' => 'rank_math_woocommerce_notice',
22
  'type' => 'notice',
23
  'what' => 'info',
24
  'content' => '<span class="dashicons dashicons-yes"></span> ' . esc_html__( 'Rank Math automatically inserts additional Rich Snippet meta data for WooCommerce products. You can set the Rich Snippet Type to "None" to disable this feature and just use the default data added by WooCommerce.', 'rank-math' ),
25
- ) );
26
 
27
- $cmb->add_field( array(
28
  'id' => 'rank_math_rich_snippet',
29
  'type' => 'radio_inline',
30
  'name' => esc_html__( 'Rich Snippet Type', 'rank-math' ),
31
  /* translators: link to title setting screen */
32
  'desc' => sprintf( wp_kses_post( __( 'Rich Snippets help you stand out in SERPs. <a href="%s" target="_blank">Learn more</a>.', 'rank-math' ) ), 'https://mythemeshop.com/kb/wordpress-seo-plugin-rank-math/rich-snippets/?utm_source=Rank+Math+Plugin+Options&utm_medium=LP+CPC&utm_content=Rank+Math+KB&utm_campaign=Rank+Math' ),
33
- 'options' => array(
34
  'off' => esc_html__( 'None', 'rank-math' ),
35
  'product' => esc_html__( 'Product', 'rank-math' ),
36
- ),
37
  'default' => Helper::get_settings( "titles.pt_{$post_type}_default_rich_snippet" ),
38
- ) );
39
 
40
  return;
41
  }
42
 
43
- $cmb->add_field( array(
44
  'id' => 'rank_math_rich_snippet',
45
  'type' => 'select',
46
  'name' => esc_html__( 'Rich Snippet Type', 'rank-math' ),
@@ -48,1121 +48,71 @@ $cmb->add_field( array(
48
  'desc' => sprintf( wp_kses_post( __( 'Rich Snippets help you stand out in SERPs. <a href="%s" target="_blank">Learn more</a>.', 'rank-math' ) ), 'https://mythemeshop.com/kb/wordpress-seo-plugin-rank-math/rich-snippets/?utm_source=Rank+Math+Plugin+Options&utm_medium=LP+CPC&utm_content=Rank+Math+KB&utm_campaign=Rank+Math' ),
49
  'options' => Helper::choices_rich_snippet_types( esc_html__( 'None', 'rank-math' ) ),
50
  'default' => Helper::get_settings( "titles.pt_{$post_type}_default_rich_snippet" ),
51
- ) );
52
 
53
  $headline = Helper::get_settings( "titles.pt_{$post_type}_default_snippet_name" );
54
  $headline = $headline ? $headline : '';
55
 
56
  // Common fields.
57
- $cmb->add_field( array(
58
  'id' => 'rank_math_snippet_name',
59
  'type' => 'text',
60
  'name' => esc_html__( 'Headline', 'rank-math' ),
61
- 'dep' => array( array( 'rank_math_rich_snippet', 'off', '!=' ) ),
62
- 'attributes' => array(
63
- 'placeholder' => $headline,
64
- ),
65
  'classes' => 'rank-math-supports-variables',
66
- ) );
67
 
68
  $description = Helper::get_settings( "titles.pt_{$post_type}_default_snippet_desc" );
69
  $description = $description ? $description : '';
70
 
71
- $cmb->add_field( array(
72
  'id' => 'rank_math_snippet_desc',
73
  'type' => 'textarea',
74
  'name' => esc_html__( 'Description', 'rank-math' ),
75
- 'attributes' => array(
76
  'rows' => 3,
77
  'data-autoresize' => true,
78
  'placeholder' => $description,
79
- ),
80
  'classes' => 'rank-math-supports-variables',
81
- 'dep' => array( array( 'rank_math_rich_snippet', 'off,book,local', '!=' ) ),
82
- ) );
83
 
84
- $cmb->add_field( array(
85
  'id' => 'rank_math_snippet_url',
86
  'type' => 'text_url',
87
  'name' => esc_html__( 'Url', 'rank-math' ),
88
- 'attributes' => array(
89
  'rows' => 3,
90
  'data-autoresize' => true,
91
- ),
92
- 'dep' => array( array( 'rank_math_rich_snippet', 'book,event,local,music' ) ),
93
- ) );
94
 
95
- $cmb->add_field( array(
96
  'id' => 'rank_math_snippet_author',
97
  'type' => 'text',
98
  'name' => esc_html__( 'Author', 'rank-math' ),
99
- 'attributes' => array(
100
  'rows' => 3,
101
  'data-autoresize' => true,
102
- ),
103
- 'dep' => array( array( 'rank_math_rich_snippet', 'book' ) ),
104
- ) );
105
-
106
- // Article fields.
107
- $article_dep = array( array( 'rank_math_rich_snippet', 'article' ) );
108
- /* translators: Google article snippet doc link */
109
- $article_desc = 'person' === Helper::get_settings( 'titles.knowledgegraph_type' ) ? '<div class="notice notice-warning inline"><p>' . sprintf( __( 'Google does not allow Person as the Publisher for articles. Organization will be used instead. You can read more about this <a href="%s" target="_blank">here</a>.', 'rank-math' ), 'https://developers.google.com/search/docs/data-types/article' ) . '</p></div>' : '';
110
- $cmb->add_field( array(
111
- 'id' => 'rank_math_snippet_article_type',
112
- 'type' => 'radio_inline',
113
- 'name' => esc_html__( 'Article Type', 'rank-math' ),
114
- 'options' => array(
115
- 'Article' => esc_html__( 'Article', 'rank-math' ),
116
- 'BlogPosting' => esc_html__( 'Blog Post', 'rank-math' ),
117
- 'NewsArticle' => esc_html__( 'News Article', 'rank-math' ),
118
- ),
119
- 'default' => Helper::get_settings( "titles.pt_{$post_type}_default_article_type" ),
120
- 'classes' => 'nob',
121
- 'desc' => $article_desc,
122
- 'dep' => $article_dep,
123
- ) );
124
-
125
- // Book fields.
126
- $book_dep = array( array( 'rank_math_rich_snippet', 'book' ) );
127
- $cmb->add_field( array(
128
- 'id' => 'rank_math_snippet_book_editions',
129
- 'type' => 'group',
130
- 'name' => esc_html__( 'Book Editions', 'rank-math' ),
131
- 'desc' => esc_html__( 'Either a specific edition of the written work, or the volume of the work.', 'rank-math' ),
132
- 'options' => array(
133
- 'closed' => true,
134
- 'sortable' => true,
135
- 'add_button' => esc_html__( 'Add New', 'rank-math' ),
136
- 'group_title' => esc_html__( 'Book Edition {#}', 'rank-math' ),
137
- 'remove_button' => esc_html__( 'Remove', 'rank-math' ),
138
- ),
139
- 'classes' => 'cmb-group-fix-me nob',
140
- 'dep' => $book_dep,
141
- 'fields' => array(
142
- array(
143
- 'id' => 'name',
144
- 'type' => 'text',
145
- 'name' => esc_html__( 'Title', 'rank-math' ),
146
- 'desc' => __( 'The title of the tome. Use for the title of the tome if it differs from the book.<br>*Optional when tome has the same title as the book.', 'rank-math' ),
147
- ),
148
-
149
- array(
150
- 'id' => 'book_edition',
151
- 'type' => 'text',
152
- 'name' => esc_html__( 'Edition', 'rank-math' ),
153
- 'desc' => esc_html__( 'The edition of the book.', 'rank-math' ),
154
- ),
155
-
156
- array(
157
- 'id' => 'isbn',
158
- 'type' => 'text',
159
- 'name' => esc_html__( 'ISBN', 'rank-math' ),
160
- 'desc' => esc_html__( 'The ISBN of the print book.', 'rank-math' ),
161
- ),
162
-
163
- array(
164
- 'id' => 'url',
165
- 'type' => 'text_url',
166
- 'name' => esc_html__( 'Url', 'rank-math' ),
167
- 'desc' => esc_html__( 'URL specific to this edition if one exists.', 'rank-math' ),
168
- ),
169
-
170
- array(
171
- 'id' => 'author',
172
- 'type' => 'text',
173
- 'name' => esc_html__( 'Author(s)', 'rank-math' ),
174
- 'desc' => __( 'The author(s) of the tome. Use if the author(s) of the tome differ from the related book. Provide one Person entity per author.<br>*Optional when the tome has the same set of authors as the book.', 'rank-math' ),
175
- ),
176
-
177
- array(
178
- 'id' => 'date_published',
179
- 'type' => 'text_date',
180
- 'name' => esc_html__( 'Date Published', 'rank-math' ),
181
- 'desc' => esc_html__( 'Date of first publication of this tome.', 'rank-math' ),
182
- ),
183
-
184
- array(
185
- 'id' => 'book_format',
186
- 'type' => 'radio_inline',
187
- 'name' => esc_html__( 'Book Format', 'rank-math' ),
188
- 'desc' => esc_html__( 'The format of the book.', 'rank-math' ),
189
- 'options' => array(
190
- 'EBook' => esc_html__( 'EBook', 'rank-math' ),
191
- 'Hardcover' => esc_html__( 'Hardcover', 'rank-math' ),
192
- 'Paperback' => esc_html__( 'Paperback', 'rank-math' ),
193
- 'AudioBook' => esc_html__( 'Audio Book', 'rank-math' ),
194
- ),
195
- 'default' => 'Hardcover',
196
- ),
197
- ),
198
- ) );
199
-
200
- // Course fields.
201
- $course_dep = array( array( 'rank_math_rich_snippet', 'course' ) );
202
- $cmb->add_field( array(
203
- 'id' => 'rank_math_snippet_course_provider',
204
- 'type' => 'text',
205
- 'name' => esc_html__( 'Course Provider', 'rank-math' ),
206
- 'dep' => $course_dep,
207
- ) );
208
-
209
- $cmb->add_field( array(
210
- 'id' => 'rank_math_snippet_course_provider_url',
211
- 'type' => 'text_url',
212
- 'name' => esc_html__( 'Course Provider URL', 'rank-math' ),
213
- 'dep' => $course_dep,
214
- 'classes' => 'nob',
215
- ) );
216
-
217
- // Event fields.
218
- $event = array( array( 'rank_math_rich_snippet', 'event' ) );
219
- $cmb->add_field( array(
220
- 'id' => 'rank_math_snippet_event_type',
221
- 'type' => 'select',
222
- 'name' => esc_html__( 'Event Type', 'rank-math' ),
223
- 'desc' => esc_html__( 'Type of the event.', 'rank-math' ),
224
- 'options' => array(
225
- 'Event' => esc_html__( 'Event', 'rank-math' ),
226
- 'BusinessEvent' => esc_html__( 'Business Event', 'rank-math' ),
227
- 'ChildrensEvent' => esc_html__( 'Childrens Event', 'rank-math' ),
228
- 'ComedyEvent' => esc_html__( 'Comedy Event', 'rank-math' ),
229
- 'DanceEvent' => esc_html__( 'Dance Event', 'rank-math' ),
230
- 'DeliveryEvent' => esc_html__( 'Delivery Event', 'rank-math' ),
231
- 'EducationEvent' => esc_html__( 'Education Event', 'rank-math' ),
232
- 'ExhibitionEvent' => esc_html__( 'Exhibition Event', 'rank-math' ),
233
- 'Festival' => esc_html__( 'Festival', 'rank-math' ),
234
- 'FoodEvent' => esc_html__( 'Food Event', 'rank-math' ),
235
- 'LiteraryEvent' => esc_html__( 'Literary Event', 'rank-math' ),
236
- 'MusicEvent' => esc_html__( 'Music Event', 'rank-math' ),
237
- 'PublicationEvent' => esc_html__( 'Publication Event', 'rank-math' ),
238
- 'SaleEvent' => esc_html__( 'Sale Event', 'rank-math' ),
239
- 'ScreeningEvent' => esc_html__( 'Screening Event', 'rank-math' ),
240
- 'SocialEvent' => esc_html__( 'Social Event', 'rank-math' ),
241
- 'SportsEvent' => esc_html__( 'Sports Event', 'rank-math' ),
242
- 'TheaterEvent' => esc_html__( 'Theater Event', 'rank-math' ),
243
- 'VisualArtsEvent' => esc_html__( 'Visual Arts Event', 'rank-math' ),
244
- ),
245
- 'default' => 'Event',
246
- 'classes' => 'cmb-row-33',
247
- 'dep' => $event,
248
- ) );
249
-
250
- $cmb->add_field( array(
251
- 'id' => 'rank_math_snippet_event_venue',
252
- 'type' => 'text',
253
- 'name' => esc_html__( 'Venue Name', 'rank-math' ),
254
- 'desc' => esc_html__( 'The venue name.', 'rank-math' ),
255
- 'classes' => 'cmb-row-33',
256
- 'dep' => $event,
257
- ) );
258
-
259
- $cmb->add_field( array(
260
- 'id' => 'rank_math_snippet_event_venue_url',
261
- 'type' => 'text_url',
262
- 'name' => esc_html__( 'Venue URL', 'rank-math' ),
263
- 'desc' => esc_html__( 'Website URL of the venue', 'rank-math' ),
264
- 'classes' => 'cmb-row-33',
265
- 'dep' => $event,
266
- ) );
267
-
268
- $cmb->add_field( array(
269
- 'id' => 'rank_math_snippet_event_address',
270
- 'type' => 'address',
271
- 'name' => esc_html__( 'Address', 'rank-math' ),
272
- 'dep' => $event,
273
- ) );
274
-
275
- $cmb->add_field( array(
276
- 'id' => 'rank_math_snippet_event_performer',
277
- 'type' => 'text',
278
- 'name' => esc_html__( 'Performer', 'rank-math' ),
279
- 'desc' => esc_html__( 'A performer at the event', 'rank-math' ),
280
- 'dep' => $event,
281
- ) );
282
-
283
- $cmb->add_field( array(
284
- 'id' => 'rank_math_snippet_event_status',
285
- 'type' => 'select',
286
- 'name' => esc_html__( 'Event Status', 'rank-math' ),
287
- 'desc' => esc_html__( 'Current status of the event (optional)', 'rank-math' ),
288
- 'options' => array(
289
- '' => esc_html__( 'None', 'rank-math' ),
290
- 'EventScheduled' => esc_html__( 'Scheduled', 'rank-math' ),
291
- 'EventCancelled' => esc_html__( 'Cancelled', 'rank-math' ),
292
- 'EventPostponed' => esc_html__( 'Postponed', 'rank-math' ),
293
- 'EventRescheduled' => esc_html__( 'Rescheduled', 'rank-math' ),
294
- ),
295
- 'classes' => 'cmb-row-33',
296
- 'dep' => $event,
297
- ) );
298
-
299
- $cmb->add_field( array(
300
- 'id' => 'rank_math_snippet_event_startdate',
301
- 'type' => 'text_datetime_timestamp',
302
- 'date_format' => 'Y-m-d',
303
- 'name' => esc_html__( 'Start Date', 'rank-math' ),
304
- 'desc' => esc_html__( 'Date and time of the event.', 'rank-math' ),
305
- 'classes' => 'cmb-row-33',
306
- 'dep' => $event,
307
- ) );
308
-
309
- $cmb->add_field( array(
310
- 'id' => 'rank_math_snippet_event_enddate',
311
- 'type' => 'text_datetime_timestamp',
312
- 'date_format' => 'Y-m-d',
313
- 'name' => esc_html__( 'End Date', 'rank-math' ),
314
- 'desc' => esc_html__( 'End date and time of the event.', 'rank-math' ),
315
- 'classes' => 'cmb-row-33',
316
- 'dep' => $event,
317
- ) );
318
-
319
- $cmb->add_field( array(
320
- 'id' => 'rank_math_snippet_event_ticketurl',
321
- 'type' => 'text',
322
- 'name' => esc_html__( 'Ticket URL', 'rank-math' ),
323
- 'desc' => esc_html__( 'A URL where visitors can purchase tickets for the event.', 'rank-math' ),
324
- 'classes' => 'cmb-row-33',
325
- 'dep' => $event,
326
- ) );
327
-
328
- $cmb->add_field( array(
329
- 'id' => 'rank_math_snippet_event_price',
330
- 'type' => 'text',
331
- 'name' => esc_html__( 'Entry Price', 'rank-math' ),
332
- 'desc' => esc_html__( 'Entry price of the event (optional)', 'rank-math' ),
333
- 'classes' => 'cmb-row-33',
334
- 'dep' => $event,
335
- 'attributes' => array(
336
- 'type' => 'number',
337
- ),
338
- ) );
339
-
340
- $cmb->add_field( array(
341
- 'id' => 'rank_math_snippet_event_currency',
342
- 'type' => 'text',
343
- 'name' => esc_html__( 'Currency', 'rank-math' ),
344
- 'desc' => esc_html__( 'ISO 4217 Currency Code', 'rank-math' ),
345
- 'classes' => 'cmb-row-33',
346
- 'dep' => $event,
347
- ) );
348
-
349
- $cmb->add_field( array(
350
- 'id' => 'rank_math_snippet_event_availability',
351
- 'type' => 'select',
352
- 'name' => esc_html__( 'Availability', 'rank-math' ),
353
- 'desc' => esc_html__( 'Offer availability', 'rank-math' ),
354
- 'options' => array(
355
- '' => esc_html__( 'None', 'rank-math' ),
356
- 'InStock' => esc_html__( 'In Stock', 'rank-math' ),
357
- 'SoldOut' => esc_html__( 'Sold Out', 'rank-math' ),
358
- 'PreOrder' => esc_html__( 'Preorder', 'rank-math' ),
359
- ),
360
- 'classes' => 'cmb-row-33 nob',
361
- 'dep' => $event,
362
- ) );
363
-
364
- $cmb->add_field( array(
365
- 'id' => 'rank_math_snippet_event_availability_starts',
366
- 'type' => 'text_datetime_timestamp',
367
- 'date_format' => 'Y-m-d',
368
- 'name' => esc_html__( 'Availability Starts', 'rank-math' ),
369
- 'desc' => esc_html__( 'Date and time when offer is made available. (optional)', 'rank-math' ),
370
- 'classes' => 'cmb-row-33 nob',
371
- 'dep' => $event,
372
- ) );
373
-
374
- $cmb->add_field( array(
375
- 'id' => 'rank_math_snippet_event_inventory',
376
- 'type' => 'text',
377
- 'name' => esc_html__( 'Stock Inventory', 'rank-math' ),
378
- 'desc' => esc_html__( 'Number of tickets (optional)', 'rank-math' ),
379
- 'classes' => 'cmb-row-33 nob',
380
- 'dep' => $event,
381
- 'attributes' => array(
382
- 'type' => 'number',
383
- ),
384
- ) );
385
-
386
- // Job Posting fields.
387
- $jobposting = array( array( 'rank_math_rich_snippet', 'jobposting' ) );
388
- $cmb->add_field( array(
389
- 'id' => 'rank_math_snippet_jobposting_salary',
390
- 'type' => 'text',
391
- 'name' => esc_html__( 'Salary (Recommended)', 'rank-math' ),
392
- 'desc' => esc_html__( 'Insert amount, e.g. "50.00", or a salary range, e.g. "40.00-50.00".', 'rank-math' ),
393
- 'classes' => 'cmb-row-33',
394
- 'dep' => $jobposting,
395
- 'attributes' => array(
396
- 'type' => 'number',
397
- ),
398
- ) );
399
-
400
- $cmb->add_field( array(
401
- 'id' => 'rank_math_snippet_jobposting_currency',
402
- 'type' => 'text',
403
- 'name' => esc_html__( 'Salary Currency', 'rank-math' ),
404
- 'desc' => esc_html__( 'ISO 4217 Currency Code', 'rank-math' ),
405
- 'classes' => 'cmb-row-33',
406
- 'dep' => $jobposting,
407
- ) );
408
-
409
- $cmb->add_field( array(
410
- 'id' => 'rank_math_snippet_jobposting_payroll',
411
- 'type' => 'select',
412
- 'name' => esc_html__( 'Payroll (Recommended)', 'rank-math' ),
413
- 'desc' => esc_html__( 'Salary amount is for', 'rank-math' ),
414
- 'options' => array(
415
- '' => esc_html__( 'None', 'rank-math' ),
416
- 'YEAR' => esc_html__( 'Yearly', 'rank-math' ),
417
- 'MONTH' => esc_html__( 'Monthly', 'rank-math' ),
418
- 'WEEK' => esc_html__( 'Weekly', 'rank-math' ),
419
- 'DAY' => esc_html__( 'Daily', 'rank-math' ),
420
- 'HOUR' => esc_html__( 'Hourly', 'rank-math' ),
421
- ),
422
- 'classes' => 'cmb-row-33',
423
- 'dep' => $jobposting,
424
- ) );
425
-
426
- $cmb->add_field( array(
427
- 'id' => 'rank_math_snippet_jobposting_startdate',
428
- 'type' => 'text_datetime_timestamp',
429
- 'date_format' => 'Y-m-d',
430
- 'name' => esc_html__( 'Date Posted', 'rank-math' ),
431
- 'desc' => wp_kses_post( __( 'The original date on which employer posted the job. You can leave it empty to use the post publication date as job posted date.', 'rank-math' ) ),
432
- 'classes' => 'cmb-row-33',
433
- 'dep' => $jobposting,
434
- ) );
435
-
436
- $cmb->add_field( array(
437
- 'id' => 'rank_math_snippet_jobposting_expirydate',
438
- 'type' => 'text_datetime_timestamp',
439
- 'date_format' => 'Y-m-d',
440
- 'name' => esc_html__( 'Expiry Posted', 'rank-math' ),
441
- 'desc' => esc_html__( 'The date when the job posting will expire. If a job posting never expires, or you do not know when the job will expire, do not include this property.', 'rank-math' ),
442
- 'classes' => 'cmb-row-33',
443
- 'dep' => $jobposting,
444
- ) );
445
-
446
- $cmb->add_field( array(
447
- 'id' => 'rank_math_snippet_jobposting_unpublish',
448
- 'type' => 'switch',
449
- 'name' => esc_html__( 'Unpublish when expired', 'rank-math' ),
450
- 'desc' => esc_html__( 'If checked, post status will be changed to Draft and its URL will return a 404 error, as required by the Rich Result guidelines.', 'rank-math' ),
451
- 'classes' => 'cmb-row-33',
452
- 'default' => 'on',
453
- 'dep' => $jobposting,
454
- ) );
455
-
456
- $cmb->add_field( array(
457
- 'id' => 'rank_math_snippet_jobposting_employment_type',
458
- 'type' => 'multicheck_inline',
459
- 'name' => esc_html__( 'Employment Type (Recommended)', 'rank-math' ),
460
- 'desc' => esc_html__( 'Type of employment. You can choose more than one value.', 'rank-math' ),
461
- 'options' => array(
462
- 'FULL_TIME' => esc_html__( 'Full Time', 'rank-math' ),
463
- 'PART_TIME' => esc_html__( 'Part Time', 'rank-math' ),
464
- 'CONTRACTOR' => esc_html__( 'Contractor', 'rank-math' ),
465
- 'TEMPORARY' => esc_html__( 'Temporary', 'rank-math' ),
466
- 'INTERN' => esc_html__( 'Intern', 'rank-math' ),
467
- 'VOLUNTEER' => esc_html__( 'Volunteer', 'rank-math' ),
468
- 'PER_DIEM' => esc_html__( 'Per Diem', 'rank-math' ),
469
- 'OTHER' => esc_html__( 'Other', 'rank-math' ),
470
- ),
471
- 'dep' => $jobposting,
472
- 'select_all_button' => false,
473
- ) );
474
-
475
- $cmb->add_field( array(
476
- 'id' => 'rank_math_snippet_jobposting_organization',
477
- 'type' => 'text',
478
- 'name' => esc_html__( 'Hiring Organization', 'rank-math' ),
479
- 'desc' => esc_html__( 'The name of the company. Leave empty to use your own company information.', 'rank-math' ),
480
- 'attributes' => array(
481
- 'placeholder' => 'company' === Helper::get_settings( 'titles.knowledgegraph_type' ) ? Helper::get_settings( 'titles.knowledgegraph_name' ) : get_bloginfo( 'name' ),
482
- ),
483
- 'dep' => $jobposting,
484
- 'classes' => 'cmb-row-50',
485
- ) );
486
-
487
- $cmb->add_field( array(
488
- 'id' => 'rank_math_snippet_jobposting_id',
489
- 'type' => 'text',
490
- 'name' => esc_html__( 'Posting ID (Recommended)', 'rank-math' ),
491
- 'desc' => esc_html__( 'The hiring organization\'s unique identifier for the job. Leave empty to use the post ID.', 'rank-math' ),
492
- 'classes' => 'cmb-row-50',
493
- 'dep' => $jobposting,
494
- ) );
495
-
496
- $cmb->add_field( array(
497
- 'id' => 'rank_math_snippet_jobposting_url',
498
- 'type' => 'text_url',
499
- 'name' => esc_html__( 'Organization URL (Recommended)', 'rank-math' ),
500
- 'desc' => esc_html__( 'The URL of the organization offering the job position. Leave empty to use your own company information.', 'rank-math' ),
501
- 'classes' => 'cmb-row-50',
502
- 'dep' => $jobposting,
503
- ) );
504
-
505
- $cmb->add_field( array(
506
- 'id' => 'rank_math_snippet_jobposting_logo',
507
- 'type' => 'text_url',
508
- 'name' => esc_html__( 'Organization Logo (Recommended)', 'rank-math' ),
509
- 'desc' => esc_html__( 'Logo URL of the organization offering the job position. Leave empty to use your own company information.', 'rank-math' ),
510
- 'classes' => 'cmb-row-50',
511
- 'dep' => $jobposting,
512
- ) );
513
-
514
- $cmb->add_field( array(
515
- 'id' => 'rank_math_snippet_jobposting_address',
516
- 'type' => 'address',
517
- 'name' => esc_html__( 'Location', 'rank-math' ),
518
- 'classes' => 'nob',
519
- 'dep' => $jobposting,
520
- ) );
521
-
522
- // Local fields.
523
- $local = array( array( 'rank_math_rich_snippet', 'local,restaurant' ) );
524
- $cmb->add_field( array(
525
- 'id' => 'rank_math_snippet_local_address',
526
- 'type' => 'address',
527
- 'name' => esc_html__( 'Address', 'rank-math' ),
528
- 'dep' => $local,
529
- ) );
530
-
531
- $cmb->add_field( array(
532
- 'id' => 'rank_math_snippet_local_geo',
533
- 'type' => 'text',
534
- 'name' => esc_html__( 'Geo Coordinates', 'rank-math' ),
535
- 'classes' => 'cmb-row-33',
536
- 'dep' => $local,
537
- ) );
538
-
539
- $cmb->add_field( array(
540
- 'id' => 'rank_math_snippet_local_phone',
541
- 'type' => 'text',
542
- 'name' => esc_html__( 'Phone Number', 'rank-math' ),
543
- 'classes' => 'cmb-row-33',
544
- 'dep' => $local,
545
- ) );
546
-
547
- $cmb->add_field( array(
548
- 'id' => 'rank_math_snippet_local_price_range',
549
- 'type' => 'text',
550
- 'name' => esc_html__( 'Price Range', 'rank-math' ),
551
- 'classes' => 'cmb-row-33',
552
- 'dep' => $local,
553
- ) );
554
-
555
- $cmb->add_field( array(
556
- 'id' => 'rank_math_snippet_local_opens',
557
- 'type' => 'text_time',
558
- 'name' => esc_html__( 'Opening Time', 'rank-math' ),
559
- 'classes' => 'cmb-row-50',
560
- 'dep' => $local,
561
- ) );
562
-
563
- $cmb->add_field( array(
564
- 'id' => 'rank_math_snippet_local_closes',
565
- 'type' => 'text_time',
566
- 'name' => esc_html__( 'Closing Time', 'rank-math' ),
567
- 'classes' => 'cmb-row-50',
568
- 'dep' => $local,
569
- ) );
570
-
571
- $cmb->add_field( array(
572
- 'id' => 'rank_math_snippet_local_opendays',
573
- 'type' => 'multicheck_inline',
574
- 'name' => esc_html__( 'Open Days', 'rank-math' ),
575
- 'options' => array(
576
- 'monday' => esc_html__( 'Monday', 'rank-math' ),
577
- 'tuesday' => esc_html__( 'Tuesday', 'rank-math' ),
578
- 'wednesday' => esc_html__( 'Wednesday', 'rank-math' ),
579
- 'thursday' => esc_html__( 'Thursday', 'rank-math' ),
580
- 'friday' => esc_html__( 'Friday', 'rank-math' ),
581
- 'saturday' => esc_html__( 'Saturday', 'rank-math' ),
582
- 'sunday' => esc_html__( 'Sunday', 'rank-math' ),
583
- ),
584
- 'select_all_button' => false,
585
- 'dep' => $local,
586
- ) );
587
-
588
- // Music fields.
589
- $music = array( array( 'rank_math_rich_snippet', 'music' ) );
590
- $cmb->add_field( array(
591
- 'id' => 'rank_math_snippet_music_type',
592
- 'type' => 'radio_inline',
593
- 'name' => esc_html__( 'Type', 'rank-math' ),
594
- 'options' => array(
595
- 'MusicGroup' => esc_html__( 'MusicGroup', 'rank-math' ),
596
- 'MusicAlbum' => esc_html__( 'MusicAlbum', 'rank-math' ),
597
- ),
598
- 'classes' => 'cmb-row-33 nob',
599
- 'default' => 'MusicGroup',
600
- 'dep' => $music,
601
- ) );
602
-
603
- // Product fields.
604
- $product = array( array( 'rank_math_rich_snippet', 'product' ) );
605
- $cmb->add_field( array(
606
- 'id' => 'rank_math_snippet_product_sku',
607
- 'type' => 'text',
608
- 'name' => esc_html__( 'Product SKU', 'rank-math' ),
609
- 'dep' => $product,
610
- ) );
611
-
612
- $cmb->add_field( array(
613
- 'id' => 'rank_math_snippet_product_brand',
614
- 'type' => 'text',
615
- 'name' => esc_html__( 'Product Brand', 'rank-math' ),
616
- 'dep' => $product,
617
- ) );
618
-
619
- $cmb->add_field( array(
620
- 'id' => 'rank_math_snippet_product_currency',
621
- 'type' => 'text',
622
- 'name' => esc_html__( 'Product Currency', 'rank-math' ),
623
- 'desc' => esc_html__( 'ISO 4217 Currency Code', 'rank-math' ),
624
- 'dep' => $product,
625
- ) );
626
-
627
- $cmb->add_field( array(
628
- 'id' => 'rank_math_snippet_product_price',
629
- 'type' => 'text',
630
- 'name' => esc_html__( 'Product Price', 'rank-math' ),
631
- 'dep' => $product,
632
- 'attributes' => array(
633
- 'type' => 'number',
634
- ),
635
- ) );
636
-
637
- $cmb->add_field( array(
638
- 'id' => 'rank_math_snippet_product_price_valid',
639
- 'type' => 'text_date',
640
- 'date_format' => 'Y-m-d',
641
- 'name' => esc_html__( 'Price Valid Until', 'rank-math' ),
642
- 'desc' => esc_html__( 'The date after which the price will no longer be available.', 'rank-math' ),
643
- 'dep' => $product,
644
- ) );
645
-
646
- $cmb->add_field( array(
647
- 'id' => 'rank_math_snippet_product_instock',
648
- 'type' => 'switch',
649
- 'name' => esc_html__( 'Product In-Stock', 'rank-math' ),
650
- 'dep' => $product,
651
- 'classes' => 'nob',
652
- 'default' => 'on',
653
- ) );
654
-
655
- // Recipe fields.
656
- $recipe = array( array( 'rank_math_rich_snippet', 'recipe' ) );
657
- $cmb->add_field( array(
658
- 'id' => 'rank_math_snippet_recipe_type',
659
- 'type' => 'text',
660
- 'name' => esc_html__( 'Type', 'rank-math' ),
661
- 'desc' => esc_html__( 'Type of dish, for example "appetizer", or "dessert".', 'rank-math' ),
662
- 'classes' => 'cmb-row-33',
663
- 'dep' => $recipe,
664
- ) );
665
-
666
- $cmb->add_field( array(
667
- 'id' => 'rank_math_snippet_recipe_cuisine',
668
- 'type' => 'text',
669
- 'name' => esc_html__( 'Cuisine', 'rank-math' ),
670
- 'desc' => esc_html__( 'The cuisine of the recipe (for example, French or Ethiopian).', 'rank-math' ),
671
- 'classes' => 'cmb-row-33',
672
- 'dep' => $recipe,
673
- ) );
674
-
675
- $cmb->add_field( array(
676
- 'id' => 'rank_math_snippet_recipe_keywords',
677
- 'type' => 'text',
678
- 'name' => esc_html__( 'Keywords', 'rank-math' ),
679
- 'desc' => esc_html__( 'Other terms for your recipe such as the season, the holiday, or other descriptors. Separate multiple entries with commas.', 'rank-math' ),
680
- 'classes' => 'cmb-row-33',
681
- 'dep' => $recipe,
682
- ) );
683
-
684
- $cmb->add_field( array(
685
- 'id' => 'rank_math_snippet_recipe_yield',
686
- 'type' => 'text',
687
- 'name' => esc_html__( 'Recipe Yield', 'rank-math' ),
688
- 'desc' => esc_html__( 'Quantity produced by the recipe, for example "4 servings"', 'rank-math' ),
689
- 'classes' => 'cmb-row-33',
690
- 'dep' => $recipe,
691
- ) );
692
-
693
- $cmb->add_field( array(
694
- 'id' => 'rank_math_snippet_recipe_calories',
695
- 'type' => 'text',
696
- 'name' => esc_html__( 'Calories', 'rank-math' ),
697
- 'desc' => esc_html__( 'The number of calories in the recipe.', 'rank-math' ),
698
- 'classes' => 'cmb-row-33',
699
- 'dep' => $recipe,
700
- ) );
701
-
702
- $cmb->add_field( array(
703
- 'id' => 'rank_math_snippet_recipe_preptime',
704
- 'type' => 'text',
705
- 'name' => esc_html__( 'Preparation Time', 'rank-math' ),
706
- 'desc' => esc_html__( 'Example: 1H30M', 'rank-math' ),
707
- 'classes' => 'cmb-row-33',
708
- 'dep' => $recipe,
709
- ) );
710
-
711
- $cmb->add_field( array(
712
- 'id' => 'rank_math_snippet_recipe_cooktime',
713
- 'type' => 'text',
714
- 'name' => esc_html__( 'Cooking Time', 'rank-math' ),
715
- 'desc' => esc_html__( 'Example: 1H30M', 'rank-math' ),
716
- 'classes' => 'cmb-row-33',
717
- 'dep' => $recipe,
718
- ) );
719
-
720
- $cmb->add_field( array(
721
- 'id' => 'rank_math_snippet_recipe_totaltime',
722
- 'type' => 'text',
723
- 'name' => esc_html__( 'Total Time', 'rank-math' ),
724
- 'desc' => esc_html__( 'Example: 1H30M', 'rank-math' ),
725
- 'classes' => 'cmb-row-33',
726
- 'dep' => $recipe,
727
- ) );
728
-
729
- $cmb->add_field( array(
730
- 'id' => 'rank_math_snippet_recipe_rating',
731
- 'type' => 'text',
732
- 'name' => esc_html__( 'Rating', 'rank-math' ),
733
- 'desc' => esc_html__( 'Rating score of the recipe.', 'rank-math' ),
734
- 'classes' => 'cmb-row-33',
735
- 'dep' => $recipe,
736
- ) );
737
-
738
- $cmb->add_field( array(
739
- 'id' => 'rank_math_snippet_recipe_rating_min',
740
- 'type' => 'text',
741
- 'name' => esc_html__( 'Rating Minimum', 'rank-math' ),
742
- 'desc' => esc_html__( 'Rating minimum score of the recipe.', 'rank-math' ),
743
- 'classes' => 'cmb-row-33',
744
- 'dep' => $recipe,
745
- ) );
746
-
747
- $cmb->add_field( array(
748
- 'id' => 'rank_math_snippet_recipe_rating_max',
749
- 'type' => 'text',
750
- 'name' => esc_html__( 'Rating Maximum', 'rank-math' ),
751
- 'desc' => esc_html__( 'Rating maximum score of the recipe.', 'rank-math' ),
752
- 'classes' => 'cmb-row-33',
753
- 'dep' => $recipe,
754
- ) );
755
-
756
- $cmb->add_field( array(
757
- 'id' => 'rank_math_snippet_recipe_video',
758
- 'type' => 'text_url',
759
- 'name' => esc_html__( 'Recipe Video', 'rank-math' ),
760
- 'desc' => esc_html__( 'A recipe video URL.', 'rank-math' ),
761
- 'classes' => 'cmb-row-33',
762
- 'dep' => $recipe,
763
- ) );
764
-
765
- $cmb->add_field( array(
766
- 'id' => 'rank_math_snippet_recipe_video_thumbnail',
767
- 'type' => 'text_url',
768
- 'name' => esc_html__( 'Recipe Video Thumbnail', 'rank-math' ),
769
- 'desc' => esc_html__( 'A recipe video thumbnail URL.', 'rank-math' ),
770
- 'classes' => 'cmb-row-33',
771
- 'dep' => $recipe,
772
- ) );
773
-
774
- $cmb->add_field( array(
775
- 'id' => 'rank_math_snippet_recipe_video_name',
776
- 'type' => 'text',
777
- 'name' => esc_html__( 'Recipe Video Name', 'rank-math' ),
778
- 'desc' => esc_html__( 'A recipe video Name.', 'rank-math' ),
779
- 'classes' => 'cmb-row-33',
780
- 'dep' => $recipe,
781
- ) );
782
-
783
- $cmb->add_field( array(
784
- 'id' => 'rank_math_snippet_recipe_video_date',
785
- 'type' => 'text_date',
786
- 'name' => esc_html__( 'Video Upload Date', 'rank-math' ),
787
- 'classes' => 'cmb-row-33',
788
- 'dep' => $recipe,
789
- ) );
790
-
791
- $cmb->add_field( array(
792
- 'id' => 'rank_math_snippet_recipe_video_description',
793
- 'type' => 'textarea',
794
- 'name' => esc_html__( 'Recipe Video Description', 'rank-math' ),
795
- 'desc' => esc_html__( 'A recipe video Description.', 'rank-math' ),
796
- 'classes' => 'cmb-row-50',
797
- 'attributes' => array(
798
- 'rows' => 4,
799
- 'data-autoresize' => true,
800
- ),
801
- 'dep' => $recipe,
802
- ) );
803
-
804
- $cmb->add_field( array(
805
- 'id' => 'rank_math_snippet_recipe_ingredients',
806
- 'type' => 'textarea',
807
- 'name' => esc_html__( 'Recipe Ingredients', 'rank-math' ),
808
- 'desc' => esc_html__( 'Recipe ingredients, add one item per line', 'rank-math' ),
809
- 'attributes' => array(
810
- 'rows' => 4,
811
- 'data-autoresize' => true,
812
- ),
813
- 'classes' => 'cmb-row-50',
814
- 'dep' => $recipe,
815
- ) );
816
-
817
- $cmb->add_field( array(
818
- 'id' => 'rank_math_snippet_recipe_instruction_type',
819
- 'type' => 'radio_inline',
820
- 'name' => esc_html__( 'Instruction Type', 'rank-math' ),
821
- 'options' => array(
822
- 'SingleField' => esc_html__( 'Single Field', 'rank-math' ),
823
- 'HowToStep' => esc_html__( 'How To Step', 'rank-math' ),
824
- 'HowToSection' => esc_html__( 'How To Section', 'rank-math' ),
825
- ),
826
- 'classes' => 'recipe-instruction-type',
827
- 'default' => 'SingleField',
828
- 'dep' => $recipe,
829
- ) );
830
-
831
- $cmb->add_field( array(
832
- 'id' => 'rank_math_snippet_recipe_instruction_name',
833
- 'type' => 'text',
834
- 'name' => esc_html__( 'Recipe Instruction Name', 'rank-math' ),
835
- 'desc' => esc_html__( 'Instruction name of the recipe.', 'rank-math' ),
836
- 'classes' => 'nob',
837
- 'dep' => array(
838
- 'relation' => 'and',
839
- array( 'rank_math_rich_snippet', 'recipe' ),
840
- array( 'rank_math_snippet_recipe_instruction_type', 'HowToStep' ),
841
- ),
842
- ) );
843
-
844
- $cmb->add_field( array(
845
- 'id' => 'rank_math_snippet_recipe_single_instructions',
846
- 'type' => 'textarea',
847
- 'name' => esc_html__( 'Recipe Instructions', 'rank-math' ),
848
- 'attributes' => array(
849
- 'rows' => 4,
850
- 'data-autoresize' => true,
851
- ),
852
- 'classes' => 'nob',
853
- 'dep' => array(
854
- 'relation' => 'and',
855
- array( 'rank_math_rich_snippet', 'recipe' ),
856
- array( 'rank_math_snippet_recipe_instruction_type', 'HowToStep,SingleField' ),
857
- ),
858
- ) );
859
-
860
- $cmb->add_field( array(
861
- 'id' => 'rank_math_snippet_recipe_instructions',
862
- 'type' => 'group',
863
- 'name' => esc_html__( 'Recipe Instructions', 'rank-math' ),
864
- 'desc' => esc_html__( 'Steps to take, add one instruction per line', 'rank-math' ),
865
- 'options' => array(
866
- 'closed' => true,
867
- 'sortable' => true,
868
- 'add_button' => esc_html__( 'Add New Instruction', 'rank-math' ),
869
- 'group_title' => esc_html__( 'Instruction {#}', 'rank-math' ),
870
- 'remove_button' => esc_html__( 'Remove', 'rank-math' ),
871
- ),
872
- 'classes' => 'cmb-group-fix-me nob',
873
- 'dep' => array(
874
- 'relation' => 'and',
875
- array( 'rank_math_rich_snippet', 'recipe' ),
876
- array( 'rank_math_snippet_recipe_instruction_type', 'HowToSection' ),
877
- ),
878
- 'fields' => array(
879
- array(
880
- 'id' => 'name',
881
- 'type' => 'text',
882
- 'name' => esc_html__( 'Name', 'rank-math' ),
883
- 'desc' => esc_html__( 'Instruction name of the recipe.', 'rank-math' ),
884
- ),
885
- array(
886
- 'id' => 'text',
887
- 'type' => 'textarea',
888
- 'name' => esc_html__( 'Text', 'rank-math' ),
889
- 'attributes' => array(
890
- 'rows' => 4,
891
- 'data-autoresize' => true,
892
- ),
893
- 'desc' => esc_html__( 'Steps to take, add one instruction per line', 'rank-math' ),
894
- ),
895
- ),
896
- ) );
897
-
898
- // Restaurant fields.
899
- $restaurant = array( array( 'rank_math_rich_snippet', 'restaurant' ) );
900
- $cmb->add_field( array(
901
- 'id' => 'rank_math_snippet_restaurant_serves_cuisine',
902
- 'type' => 'text',
903
- 'name' => esc_html__( 'Serves Cuisine', 'rank-math' ),
904
- 'desc' => esc_html__( 'The type of cuisine we serve. separated by comma.', 'rank-math' ),
905
- 'classes' => 'cmb-row-50 nob',
906
- 'dep' => $restaurant,
907
- ) );
908
-
909
- $cmb->add_field( array(
910
- 'id' => 'rank_math_snippet_restaurant_menu',
911
- 'type' => 'text_url',
912
- 'name' => esc_html__( 'Menu URL', 'rank-math' ),
913
- 'desc' => esc_html__( 'The menu url of the restaurant.', 'rank-math' ),
914
- 'classes' => 'cmb-row-50 nob',
915
- 'dep' => $restaurant,
916
- ) );
917
-
918
- // Video fields.
919
- $video = array( array( 'rank_math_rich_snippet', 'video' ) );
920
- $cmb->add_field( array(
921
- 'id' => 'rank_math_snippet_video_url',
922
- 'type' => 'text_url',
923
- 'name' => esc_html__( 'Content URL', 'rank-math' ),
924
- 'desc' => esc_html__( 'A URL pointing to the actual video media file.', 'rank-math' ),
925
- 'classes' => 'cmb-row-50',
926
- 'dep' => $video,
927
- ) );
928
-
929
- $cmb->add_field( array(
930
- 'id' => 'rank_math_snippet_video_embed_url',
931
- 'type' => 'text_url',
932
- 'name' => esc_html__( 'Embed URL', 'rank-math' ),
933
- 'desc' => esc_html__( 'A URL pointing to the embeddable player for the video.', 'rank-math' ),
934
- 'classes' => 'cmb-row-50',
935
- 'dep' => $video,
936
- ) );
937
-
938
- $cmb->add_field( array(
939
- 'id' => 'rank_math_snippet_video_duration',
940
- 'type' => 'text',
941
- 'name' => esc_html__( 'Duration', 'rank-math' ),
942
- 'desc' => esc_html__( 'Duration of the video', 'rank-math' ),
943
- 'classes' => 'cmb-row-50 nob',
944
- 'attributes' => array( 'placeholder' => 'Example: 12M30S' ),
945
- 'dep' => $video,
946
- ) );
947
-
948
- $cmb->add_field( array(
949
- 'id' => 'rank_math_snippet_video_views',
950
- 'type' => 'text',
951
- 'name' => esc_html__( 'Views', 'rank-math' ),
952
- 'desc' => esc_html__( 'Number of views', 'rank-math' ),
953
- 'classes' => 'cmb-row-50 nob',
954
- 'dep' => $video,
955
- 'attributes' => array(
956
- 'type' => 'number',
957
- ),
958
- ) );
959
-
960
- // Person fields.
961
- $person = array( array( 'rank_math_rich_snippet', 'person' ) );
962
-
963
- $cmb->add_field( array(
964
- 'id' => 'rank_math_snippet_person_email',
965
- 'type' => 'text',
966
- 'attributes' => array( 'type' => 'email' ),
967
- 'name' => esc_html__( 'Email', 'rank-math' ),
968
- 'dep' => $person,
969
- ) );
970
-
971
- $cmb->add_field( array(
972
- 'id' => 'rank_math_snippet_person_address',
973
- 'type' => 'address',
974
- 'name' => esc_html__( 'Address', 'rank-math' ),
975
- 'dep' => $person,
976
- ) );
977
-
978
- $cmb->add_field( array(
979
- 'id' => 'rank_math_snippet_person_gender',
980
- 'type' => 'text',
981
- 'name' => esc_html__( 'Gender', 'rank-math' ),
982
- 'dep' => $person,
983
- ) );
984
-
985
- $cmb->add_field( array(
986
- 'id' => 'rank_math_snippet_person_job_title',
987
- 'type' => 'text',
988
- 'name' => esc_html__( 'Job title', 'rank-math' ),
989
- 'dep' => $person,
990
- ) );
991
-
992
- // Review fields.
993
- $review = array( array( 'rank_math_rich_snippet', 'review' ) );
994
-
995
- $cmb->add_field( array(
996
- 'id' => 'rank_math_snippet_review_worst_rating',
997
- 'name' => esc_html__( 'Worst Rating', 'rank-math' ),
998
- 'type' => 'text',
999
- 'default' => 1,
1000
- 'dep' => $review,
1001
- 'attributes' => array(
1002
- 'type' => 'number',
1003
- ),
1004
- ) );
1005
-
1006
- $cmb->add_field( array(
1007
- 'id' => 'rank_math_snippet_review_best_rating',
1008
- 'name' => esc_html__( 'Best Rating', 'rank-math' ),
1009
- 'type' => 'text',
1010
- 'default' => 5,
1011
- 'dep' => $review,
1012
- 'attributes' => array(
1013
- 'type' => 'number',
1014
- ),
1015
- ) );
1016
-
1017
- $cmb->add_field( array(
1018
- 'id' => 'rank_math_snippet_review_rating_value',
1019
- 'name' => esc_html__( 'Rating Value', 'rank-math' ),
1020
- 'type' => 'text',
1021
- 'dep' => $review,
1022
- 'attributes' => array(
1023
- 'type' => 'number',
1024
- 'min' => 1,
1025
- 'max' => 5,
1026
- 'step' => 0.1,
1027
- ),
1028
- ) );
1029
-
1030
- $cmb->add_field( array(
1031
- 'id' => 'rank_math_snippet_review_location',
1032
- 'name' => esc_html__( 'Review Location', 'rank-math' ),
1033
- 'type' => 'select',
1034
- 'dep' => $review,
1035
- 'classes' => 'nob',
1036
- 'default' => 'bottom',
1037
- 'options' => array(
1038
- 'bottom' => esc_html__( 'Below Content', 'rank-math' ),
1039
- 'top' => esc_html__( 'Above Content', 'rank-math' ),
1040
- 'both' => esc_html__( 'Above & Below Content', 'rank-math' ),
1041
- 'custom' => esc_html__( 'Custom (use shortcode)', 'rank-math' ),
1042
- ),
1043
- ) );
1044
-
1045
- $cmb->add_field( array(
1046
- 'id' => 'rank_math_snippet_review_shortcode',
1047
- 'name' => ' ',
1048
- 'type' => 'text',
1049
- 'classes' => 'nopt',
1050
- 'desc' => esc_html__( 'Copy & paste this shortcode in the content.', 'rank-math' ),
1051
- 'dep' => array(
1052
- 'relation' => 'and',
1053
- array( 'rank_math_rich_snippet', 'review' ),
1054
- array( 'rank_math_snippet_review_location', 'custom' ),
1055
- ),
1056
- 'attributes' => array(
1057
- 'readonly' => 'readonly',
1058
- 'value' => '[rank_math_review_snippet]',
1059
- ),
1060
- ) );
1061
-
1062
- // Software Application fields.
1063
- $software = array( array( 'rank_math_rich_snippet', 'software' ) );
1064
-
1065
- $cmb->add_field( array(
1066
- 'id' => 'rank_math_snippet_software_price',
1067
- 'type' => 'text',
1068
- 'name' => esc_html__( 'Price', 'rank-math' ),
1069
- 'dep' => $software,
1070
- 'attributes' => array(
1071
- 'type' => 'number',
1072
- ),
1073
- ) );
1074
-
1075
- $cmb->add_field( array(
1076
- 'id' => 'rank_math_snippet_software_price_currency',
1077
- 'type' => 'text',
1078
- 'name' => esc_html__( 'Price Currency', 'rank-math' ),
1079
- 'dep' => $software,
1080
- ) );
1081
-
1082
- $cmb->add_field( array(
1083
- 'id' => 'rank_math_snippet_software_operating_system',
1084
- 'name' => esc_html__( 'Operating System', 'rank-math' ),
1085
- 'type' => 'text',
1086
- 'desc' => esc_html__( 'For example, "Windows 7", "OSX 10.6", "Android 1.6"', 'rank-math' ),
1087
- 'dep' => $software,
1088
- ) );
1089
-
1090
- $cmb->add_field( array(
1091
- 'id' => 'rank_math_snippet_software_application_category',
1092
- 'name' => esc_html__( 'Application Category', 'rank-math' ),
1093
- 'type' => 'text',
1094
- 'desc' => esc_html__( 'For example, "Game", "Multimedia"', 'rank-math' ),
1095
- 'dep' => $software,
1096
- ) );
1097
-
1098
- $cmb->add_field( array(
1099
- 'id' => 'rank_math_snippet_software_rating_value',
1100
- 'name' => esc_html__( 'Rating Value', 'rank-math' ),
1101
- 'type' => 'text',
1102
- 'dep' => $software,
1103
- 'attributes' => array(
1104
- 'type' => 'number',
1105
- 'min' => 1,
1106
- 'max' => 5,
1107
- ),
1108
- ) );
1109
-
1110
- $cmb->add_field( array(
1111
- 'id' => 'rank_math_snippet_software_rating_count',
1112
- 'name' => esc_html__( 'Rating Count', 'rank-math' ),
1113
- 'type' => 'text',
1114
- 'dep' => $software,
1115
- 'attributes' => array(
1116
- 'type' => 'number',
1117
- ),
1118
- ) );
1119
-
1120
- // Service fields.
1121
- $service = array( array( 'rank_math_rich_snippet', 'service' ) );
1122
-
1123
- $cmb->add_field( array(
1124
- 'id' => 'rank_math_snippet_service_type',
1125
- 'name' => esc_html__( 'Service Type', 'rank-math' ),
1126
- 'type' => 'text',
1127
- 'desc' => esc_html__( 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', 'rank-math' ),
1128
- 'dep' => $service,
1129
- ) );
1130
-
1131
- $cmb->add_field( array(
1132
- 'id' => 'rank_math_snippet_service_price',
1133
- 'type' => 'text',
1134
- 'name' => esc_html__( 'Price', 'rank-math' ),
1135
- 'dep' => $service,
1136
- 'attributes' => array(
1137
- 'type' => 'number',
1138
- ),
1139
- ) );
1140
-
1141
- $cmb->add_field( array(
1142
- 'id' => 'rank_math_snippet_service_price_currency',
1143
- 'type' => 'text',
1144
- 'name' => esc_html__( 'Price Currency', 'rank-math' ),
1145
- 'dep' => $service,
1146
- ) );
1147
-
1148
- $cmb->add_field( array(
1149
- 'id' => 'rank_math_snippet_service_rating_value',
1150
- 'name' => esc_html__( 'Rating Value', 'rank-math' ),
1151
- 'type' => 'text',
1152
- 'dep' => $service,
1153
- 'attributes' => array(
1154
- 'type' => 'number',
1155
- 'min' => 1,
1156
- 'max' => 5,
1157
- ),
1158
- ) );
1159
-
1160
- $cmb->add_field( array(
1161
- 'id' => 'rank_math_snippet_service_rating_count',
1162
- 'name' => esc_html__( 'Rating Count', 'rank-math' ),
1163
- 'type' => 'text',
1164
- 'dep' => $service,
1165
- 'attributes' => array(
1166
- 'type' => 'number',
1167
- ),
1168
- ) );
17
 
18
  if ( ( class_exists( 'WooCommerce' ) && 'product' === $post_type ) || ( class_exists( 'Easy_Digital_Downloads' ) && 'download' === $post_type ) ) {
19
 
20
+ $cmb->add_field([
21
  'id' => 'rank_math_woocommerce_notice',
22
  'type' => 'notice',
23
  'what' => 'info',
24
  'content' => '<span class="dashicons dashicons-yes"></span> ' . esc_html__( 'Rank Math automatically inserts additional Rich Snippet meta data for WooCommerce products. You can set the Rich Snippet Type to "None" to disable this feature and just use the default data added by WooCommerce.', 'rank-math' ),
25
+ ]);
26
 
27
+ $cmb->add_field([
28
  'id' => 'rank_math_rich_snippet',
29
  'type' => 'radio_inline',
30
  'name' => esc_html__( 'Rich Snippet Type', 'rank-math' ),
31
  /* translators: link to title setting screen */
32
  'desc' => sprintf( wp_kses_post( __( 'Rich Snippets help you stand out in SERPs. <a href="%s" target="_blank">Learn more</a>.', 'rank-math' ) ), 'https://mythemeshop.com/kb/wordpress-seo-plugin-rank-math/rich-snippets/?utm_source=Rank+Math+Plugin+Options&utm_medium=LP+CPC&utm_content=Rank+Math+KB&utm_campaign=Rank+Math' ),
33
+ 'options' => [
34
  'off' => esc_html__( 'None', 'rank-math' ),
35
  'product' => esc_html__( 'Product', 'rank-math' ),
36
+ ],
37
  'default' => Helper::get_settings( "titles.pt_{$post_type}_default_rich_snippet" ),
38
+ ]);
39
 
40
  return;
41
  }
42
 
43
+ $cmb->add_field([
44
  'id' => 'rank_math_rich_snippet',
45
  'type' => 'select',
46
  'name' => esc_html__( 'Rich Snippet Type', 'rank-math' ),
48
  'desc' => sprintf( wp_kses_post( __( 'Rich Snippets help you stand out in SERPs. <a href="%s" target="_blank">Learn more</a>.', 'rank-math' ) ), 'https://mythemeshop.com/kb/wordpress-seo-plugin-rank-math/rich-snippets/?utm_source=Rank+Math+Plugin+Options&utm_medium=LP+CPC&utm_content=Rank+Math+KB&utm_campaign=Rank+Math' ),
49
  'options' => Helper::choices_rich_snippet_types( esc_html__( 'None', 'rank-math' ) ),
50
  'default' => Helper::get_settings( "titles.pt_{$post_type}_default_rich_snippet" ),
51
+ ]);
52
 
53
  $headline = Helper::get_settings( "titles.pt_{$post_type}_default_snippet_name" );
54
  $headline = $headline ? $headline : '';
55
 
56
  // Common fields.
57
+ $cmb->add_field([
58
  'id' => 'rank_math_snippet_name',
59
  'type' => 'text',
60
  'name' => esc_html__( 'Headline', 'rank-math' ),
61
+ 'dep' => [ [ 'rank_math_rich_snippet', 'off', '!=' ] ],
62
+ 'attributes' => [ 'placeholder' => $headline ],
 
 
63
  'classes' => 'rank-math-supports-variables',
64
+ ]);
65
 
66
  $description = Helper::get_settings( "titles.pt_{$post_type}_default_snippet_desc" );
67
  $description = $description ? $description : '';
68
 
69
+ $cmb->add_field([
70
  'id' => 'rank_math_snippet_desc',
71
  'type' => 'textarea',
72
  'name' => esc_html__( 'Description', 'rank-math' ),
73
+ 'attributes' => [
74
  'rows' => 3,
75
  'data-autoresize' => true,
76
  'placeholder' => $description,
77
+ ],
78
  'classes' => 'rank-math-supports-variables',
79
+ 'dep' => [ [ 'rank_math_rich_snippet', 'off,book,local', '!=' ] ],
80
+ ]);
81
 
82
+ $cmb->add_field([
83
  'id' => 'rank_math_snippet_url',
84
  'type' => 'text_url',
85
  'name' => esc_html__( 'Url', 'rank-math' ),
86
+ 'attributes' => [
87
  'rows' => 3,
88
  'data-autoresize' => true,
89
+ ],
90
+ 'dep' => [ [ 'rank_math_rich_snippet', 'book,event,local,music' ] ],
91
+ ]);
92
 
93
+ $cmb->add_field([
94
  'id' => 'rank_math_snippet_author',
95
  'type' => 'text',
96
  'name' => esc_html__( 'Author', 'rank-math' ),
97
+ 'attributes' => [
98
  'rows' => 3,
99
  'data-autoresize' => true,
100
+ ],
101
+ 'dep' => [ [ 'rank_math_rich_snippet', 'book' ] ],
102
+ ]);
103
+
104
+ include_once 'article.php';
105
+ include_once 'book.php';
106
+ include_once 'course.php';
107
+ include_once 'event.php';
108
+ include_once 'job-posting.php';
109
+ include_once 'local.php';
110
+ include_once 'music.php';
111
+ include_once 'product.php';
112
+ include_once 'recipe.php';
113
+ include_once 'restaurant.php';
114
+ include_once 'video.php';
115
+ include_once 'person.php';
116
+ include_once 'review.php';
117
+ include_once 'software.php';
118
+ include_once 'service.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/modules/rich-snippet/views/music.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Music Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $music = [ [ 'rank_math_rich_snippet', 'music' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_music_type',
13
+ 'type' => 'radio_inline',
14
+ 'name' => esc_html__( 'Type', 'rank-math' ),
15
+ 'options' => [
16
+ 'MusicGroup' => esc_html__( 'MusicGroup', 'rank-math' ),
17
+ 'MusicAlbum' => esc_html__( 'MusicAlbum', 'rank-math' ),
18
+ ],
19
+ 'classes' => 'cmb-row-33 nob',
20
+ 'default' => 'MusicGroup',
21
+ 'dep' => $music,
22
+ ]);
includes/modules/rich-snippet/views/person.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Person Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $person = [ [ 'rank_math_rich_snippet', 'person' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_person_email',
13
+ 'type' => 'text',
14
+ 'attributes' => [ 'type' => 'email' ],
15
+ 'name' => esc_html__( 'Email', 'rank-math' ),
16
+ 'dep' => $person,
17
+ ]);
18
+
19
+ $cmb->add_field([
20
+ 'id' => 'rank_math_snippet_person_address',
21
+ 'type' => 'address',
22
+ 'name' => esc_html__( 'Address', 'rank-math' ),
23
+ 'dep' => $person,
24
+ ]);
25
+
26
+ $cmb->add_field([
27
+ 'id' => 'rank_math_snippet_person_gender',
28
+ 'type' => 'text',
29
+ 'name' => esc_html__( 'Gender', 'rank-math' ),
30
+ 'dep' => $person,
31
+ ]);
32
+
33
+ $cmb->add_field([
34
+ 'id' => 'rank_math_snippet_person_job_title',
35
+ 'type' => 'text',
36
+ 'name' => esc_html__( 'Job title', 'rank-math' ),
37
+ 'dep' => $person,
38
+ ]);
includes/modules/rich-snippet/views/product.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Product Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $product = [ [ 'rank_math_rich_snippet', 'product' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_product_sku',
13
+ 'type' => 'text',
14
+ 'name' => esc_html__( 'Product SKU', 'rank-math' ),
15
+ 'dep' => $product,
16
+ ]);
17
+
18
+ $cmb->add_field([
19
+ 'id' => 'rank_math_snippet_product_brand',
20
+ 'type' => 'text',
21
+ 'name' => esc_html__( 'Product Brand', 'rank-math' ),
22
+ 'dep' => $product,
23
+ ]);
24
+
25
+ $cmb->add_field([
26
+ 'id' => 'rank_math_snippet_product_currency',
27
+ 'type' => 'text',
28
+ 'name' => esc_html__( 'Product Currency', 'rank-math' ),
29
+ 'desc' => esc_html__( 'ISO 4217 Currency Code', 'rank-math' ),
30
+ 'dep' => $product,
31
+ ]);
32
+
33
+ $cmb->add_field([
34
+ 'id' => 'rank_math_snippet_product_price',
35
+ 'type' => 'text',
36
+ 'name' => esc_html__( 'Product Price', 'rank-math' ),
37
+ 'dep' => $product,
38
+ 'attributes' => [ 'type' => 'number' ],
39
+ ]);
40
+
41
+ $cmb->add_field([
42
+ 'id' => 'rank_math_snippet_product_price_valid',
43
+ 'type' => 'text_date',
44
+ 'date_format' => 'Y-m-d',
45
+ 'name' => esc_html__( 'Price Valid Until', 'rank-math' ),
46
+ 'desc' => esc_html__( 'The date after which the price will no longer be available.', 'rank-math' ),
47
+ 'dep' => $product,
48
+ ]);
49
+
50
+ $cmb->add_field([
51
+ 'id' => 'rank_math_snippet_product_instock',
52
+ 'type' => 'switch',
53
+ 'name' => esc_html__( 'Product In-Stock', 'rank-math' ),
54
+ 'dep' => $product,
55
+ 'classes' => 'nob',
56
+ 'default' => 'on',
57
+ ]);
includes/modules/rich-snippet/views/recipe.php ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Recipe Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $recipe = [ [ 'rank_math_rich_snippet', 'recipe' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_recipe_type',
13
+ 'type' => 'text',
14
+ 'name' => esc_html__( 'Type', 'rank-math' ),
15
+ 'desc' => esc_html__( 'Type of dish, for example "appetizer", or "dessert".', 'rank-math' ),
16
+ 'classes' => 'cmb-row-33',
17
+ 'dep' => $recipe,
18
+ ]);
19
+
20
+ $cmb->add_field([
21
+ 'id' => 'rank_math_snippet_recipe_cuisine',
22
+ 'type' => 'text',
23
+ 'name' => esc_html__( 'Cuisine', 'rank-math' ),
24
+ 'desc' => esc_html__( 'The cuisine of the recipe (for example, French or Ethiopian).', 'rank-math' ),
25
+ 'classes' => 'cmb-row-33',
26
+ 'dep' => $recipe,
27
+ ]);
28
+
29
+ $cmb->add_field([
30
+ 'id' => 'rank_math_snippet_recipe_keywords',
31
+ 'type' => 'text',
32
+ 'name' => esc_html__( 'Keywords', 'rank-math' ),
33
+ 'desc' => esc_html__( 'Other terms for your recipe such as the season, the holiday, or other descriptors. Separate multiple entries with commas.', 'rank-math' ),
34
+ 'classes' => 'cmb-row-33',
35
+ 'dep' => $recipe,
36
+ ]);
37
+
38
+ $cmb->add_field([
39
+ 'id' => 'rank_math_snippet_recipe_yield',
40
+ 'type' => 'text',
41
+ 'name' => esc_html__( 'Recipe Yield', 'rank-math' ),
42
+ 'desc' => esc_html__( 'Quantity produced by the recipe, for example "4 servings"', 'rank-math' ),
43
+ 'classes' => 'cmb-row-33',
44
+ 'dep' => $recipe,
45
+ ]);
46
+
47
+ $cmb->add_field([
48
+ 'id' => 'rank_math_snippet_recipe_calories',
49
+ 'type' => 'text',
50
+ 'name' => esc_html__( 'Calories', 'rank-math' ),
51
+ 'desc' => esc_html__( 'The number of calories in the recipe.', 'rank-math' ),
52
+ 'classes' => 'cmb-row-33',
53
+ 'dep' => $recipe,
54
+ ]);
55
+
56
+ $cmb->add_field([
57
+ 'id' => 'rank_math_snippet_recipe_preptime',
58
+ 'type' => 'text',
59
+ 'name' => esc_html__( 'Preparation Time', 'rank-math' ),
60
+ 'desc' => esc_html__( 'Example: 1H30M', 'rank-math' ),
61
+ 'classes' => 'cmb-row-33',
62
+ 'dep' => $recipe,
63
+ ]);
64
+
65
+ $cmb->add_field([
66
+ 'id' => 'rank_math_snippet_recipe_cooktime',
67
+ 'type' => 'text',
68
+ 'name' => esc_html__( 'Cooking Time', 'rank-math' ),
69
+ 'desc' => esc_html__( 'Example: 1H30M', 'rank-math' ),
70
+ 'classes' => 'cmb-row-33',
71
+ 'dep' => $recipe,
72
+ ]);
73
+
74
+ $cmb->add_field([
75
+ 'id' => 'rank_math_snippet_recipe_totaltime',
76
+ 'type' => 'text',
77
+ 'name' => esc_html__( 'Total Time', 'rank-math' ),
78
+ 'desc' => esc_html__( 'Example: 1H30M', 'rank-math' ),
79
+ 'classes' => 'cmb-row-33',
80
+ 'dep' => $recipe,
81
+ ]);
82
+
83
+ $cmb->add_field([
84
+ 'id' => 'rank_math_snippet_recipe_rating',
85
+ 'type' => 'text',
86
+ 'name' => esc_html__( 'Rating', 'rank-math' ),
87
+ 'desc' => esc_html__( 'Rating score of the recipe.', 'rank-math' ),
88
+ 'classes' => 'cmb-row-33',
89
+ 'dep' => $recipe,
90
+ ]);
91
+
92
+ $cmb->add_field([
93
+ 'id' => 'rank_math_snippet_recipe_rating_min',
94
+ 'type' => 'text',
95
+ 'name' => esc_html__( 'Rating Minimum', 'rank-math' ),
96
+ 'desc' => esc_html__( 'Rating minimum score of the recipe.', 'rank-math' ),
97
+ 'classes' => 'cmb-row-33',
98
+ 'dep' => $recipe,
99
+ ]);
100
+
101
+ $cmb->add_field([
102
+ 'id' => 'rank_math_snippet_recipe_rating_max',
103
+ 'type' => 'text',
104
+ 'name' => esc_html__( 'Rating Maximum', 'rank-math' ),
105
+ 'desc' => esc_html__( 'Rating maximum score of the recipe.', 'rank-math' ),
106
+ 'classes' => 'cmb-row-33',
107
+ 'dep' => $recipe,
108
+ ]);
109
+
110
+ $cmb->add_field([
111
+ 'id' => 'rank_math_snippet_recipe_video',
112
+ 'type' => 'text_url',
113
+ 'name' => esc_html__( 'Recipe Video', 'rank-math' ),
114
+ 'desc' => esc_html__( 'A recipe video URL.', 'rank-math' ),
115
+ 'classes' => 'cmb-row-33',
116
+ 'dep' => $recipe,
117
+ ]);
118
+
119
+ $cmb->add_field([
120
+ 'id' => 'rank_math_snippet_recipe_video_thumbnail',
121
+ 'type' => 'text_url',
122
+ 'name' => esc_html__( 'Recipe Video Thumbnail', 'rank-math' ),
123
+ 'desc' => esc_html__( 'A recipe video thumbnail URL.', 'rank-math' ),
124
+ 'classes' => 'cmb-row-33',
125
+ 'dep' => $recipe,
126
+ ]);
127
+
128
+ $cmb->add_field([
129
+ 'id' => 'rank_math_snippet_recipe_video_name',
130
+ 'type' => 'text',
131
+ 'name' => esc_html__( 'Recipe Video Name', 'rank-math' ),
132
+ 'desc' => esc_html__( 'A recipe video Name.', 'rank-math' ),
133
+ 'classes' => 'cmb-row-33',
134
+ 'dep' => $recipe,
135
+ ]);
136
+
137
+ $cmb->add_field([
138
+ 'id' => 'rank_math_snippet_recipe_video_date',
139
+ 'type' => 'text_date',
140
+ 'name' => esc_html__( 'Video Upload Date', 'rank-math' ),
141
+ 'classes' => 'cmb-row-33',
142
+ 'dep' => $recipe,
143
+ ]);
144
+
145
+ $cmb->add_field([
146
+ 'id' => 'rank_math_snippet_recipe_video_description',
147
+ 'type' => 'textarea',
148
+ 'name' => esc_html__( 'Recipe Video Description', 'rank-math' ),
149
+ 'desc' => esc_html__( 'A recipe video Description.', 'rank-math' ),
150
+ 'classes' => 'cmb-row-50',
151
+ 'attributes' => [
152
+ 'rows' => 4,
153
+ 'data-autoresize' => true,
154
+ ],
155
+ 'dep' => $recipe,
156
+ ]);
157
+
158
+ $cmb->add_field([
159
+ 'id' => 'rank_math_snippet_recipe_ingredients',
160
+ 'type' => 'textarea',
161
+ 'name' => esc_html__( 'Recipe Ingredients', 'rank-math' ),
162
+ 'desc' => esc_html__( 'Recipe ingredients, add one item per line', 'rank-math' ),
163
+ 'attributes' => [
164
+ 'rows' => 4,
165
+ 'data-autoresize' => true,
166
+ ],
167
+ 'classes' => 'cmb-row-50',
168
+ 'dep' => $recipe,
169
+ ]);
170
+
171
+ $cmb->add_field([
172
+ 'id' => 'rank_math_snippet_recipe_instruction_type',
173
+ 'type' => 'radio_inline',
174
+ 'name' => esc_html__( 'Instruction Type', 'rank-math' ),
175
+ 'options' => [
176
+ 'SingleField' => esc_html__( 'Single Field', 'rank-math' ),
177
+ 'HowToStep' => esc_html__( 'How To Step', 'rank-math' ),
178
+ 'HowToSection' => esc_html__( 'How To Section', 'rank-math' ),
179
+ ],
180
+ 'classes' => 'recipe-instruction-type',
181
+ 'default' => 'SingleField',
182
+ 'dep' => $recipe,
183
+ ]);
184
+
185
+ $cmb->add_field([
186
+ 'id' => 'rank_math_snippet_recipe_instruction_name',
187
+ 'type' => 'text',
188
+ 'name' => esc_html__( 'Recipe Instruction Name', 'rank-math' ),
189
+ 'desc' => esc_html__( 'Instruction name of the recipe.', 'rank-math' ),
190
+ 'classes' => 'nob',
191
+ 'dep' => [
192
+ 'relation' => 'and',
193
+ [ 'rank_math_rich_snippet', 'recipe' ],
194
+ [ 'rank_math_snippet_recipe_instruction_type', 'HowToStep' ],
195
+ ],
196
+ ]);
197
+
198
+ $cmb->add_field([
199
+ 'id' => 'rank_math_snippet_recipe_single_instructions',
200
+ 'type' => 'textarea',
201
+ 'name' => esc_html__( 'Recipe Instructions', 'rank-math' ),
202
+ 'attributes' => [
203
+ 'rows' => 4,
204
+ 'data-autoresize' => true,
205
+ ],
206
+ 'classes' => 'nob',
207
+ 'dep' => [
208
+ 'relation' => 'and',
209
+ [ 'rank_math_rich_snippet', 'recipe' ],
210
+ [ 'rank_math_snippet_recipe_instruction_type', 'HowToStep,SingleField' ],
211
+ ],
212
+ ]);
213
+
214
+ $cmb->add_field([
215
+ 'id' => 'rank_math_snippet_recipe_instructions',
216
+ 'type' => 'group',
217
+ 'name' => esc_html__( 'Recipe Instructions', 'rank-math' ),
218
+ 'desc' => esc_html__( 'Steps to take, add one instruction per line', 'rank-math' ),
219
+ 'options' => [
220
+ 'closed' => true,
221
+ 'sortable' => true,
222
+ 'add_button' => esc_html__( 'Add New Instruction', 'rank-math' ),
223
+ 'group_title' => esc_html__( 'Instruction {#}', 'rank-math' ),
224
+ 'remove_button' => esc_html__( 'Remove', 'rank-math' ),
225
+ ],
226
+ 'classes' => 'cmb-group-fix-me nob',
227
+ 'dep' => [
228
+ 'relation' => 'and',
229
+ [ 'rank_math_rich_snippet', 'recipe' ],
230
+ [ 'rank_math_snippet_recipe_instruction_type', 'HowToSection' ],
231
+ ],
232
+ 'fields' => [
233
+ [
234
+ 'id' => 'name',
235
+ 'type' => 'text',
236
+ 'name' => esc_html__( 'Name', 'rank-math' ),
237
+ 'desc' => esc_html__( 'Instruction name of the recipe.', 'rank-math' ),
238
+ ],
239
+ [
240
+ 'id' => 'text',
241
+ 'type' => 'textarea',
242
+ 'name' => esc_html__( 'Text', 'rank-math' ),
243
+ 'attributes' => [
244
+ 'rows' => 4,
245
+ 'data-autoresize' => true,
246
+ ],
247
+ 'desc' => esc_html__( 'Steps to take, add one instruction per line', 'rank-math' ),
248
+ ],
249
+ ],
250
+ ]);
includes/modules/rich-snippet/views/restaurant.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Restaurant Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $restaurant = [ [ 'rank_math_rich_snippet', 'restaurant' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_restaurant_serves_cuisine',
13
+ 'type' => 'text',
14
+ 'name' => esc_html__( 'Serves Cuisine', 'rank-math' ),
15
+ 'desc' => esc_html__( 'The type of cuisine we serve. separated by comma.', 'rank-math' ),
16
+ 'classes' => 'cmb-row-50 nob',
17
+ 'dep' => $restaurant,
18
+ ]);
19
+
20
+ $cmb->add_field([
21
+ 'id' => 'rank_math_snippet_restaurant_menu',
22
+ 'type' => 'text_url',
23
+ 'name' => esc_html__( 'Menu URL', 'rank-math' ),
24
+ 'desc' => esc_html__( 'The menu url of the restaurant.', 'rank-math' ),
25
+ 'classes' => 'cmb-row-50 nob',
26
+ 'dep' => $restaurant,
27
+ ]);
includes/modules/rich-snippet/views/review.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Review Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $review = [ [ 'rank_math_rich_snippet', 'review' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_review_worst_rating',
13
+ 'name' => esc_html__( 'Worst Rating', 'rank-math' ),
14
+ 'type' => 'text',
15
+ 'default' => 1,
16
+ 'dep' => $review,
17
+ 'attributes' => [ 'type' => 'number' ],
18
+ ]);
19
+
20
+ $cmb->add_field([
21
+ 'id' => 'rank_math_snippet_review_best_rating',
22
+ 'name' => esc_html__( 'Best Rating', 'rank-math' ),
23
+ 'type' => 'text',
24
+ 'default' => 5,
25
+ 'dep' => $review,
26
+ 'attributes' => [ 'type' => 'number' ],
27
+ ]);
28
+
29
+ $cmb->add_field([
30
+ 'id' => 'rank_math_snippet_review_rating_value',
31
+ 'name' => esc_html__( 'Rating Value', 'rank-math' ),
32
+ 'type' => 'text',
33
+ 'dep' => $review,
34
+ 'attributes' => [
35
+ 'type' => 'number',
36
+ 'min' => 1,
37
+ 'max' => 5,
38
+ 'step' => 0.1,
39
+ ],
40
+ ]);
41
+
42
+ $cmb->add_field([
43
+ 'id' => 'rank_math_snippet_review_location',
44
+ 'name' => esc_html__( 'Review Location', 'rank-math' ),
45
+ 'type' => 'select',
46
+ 'dep' => $review,
47
+ 'classes' => 'nob',
48
+ 'default' => 'bottom',
49
+ 'options' => [
50
+ 'bottom' => esc_html__( 'Below Content', 'rank-math' ),
51
+ 'top' => esc_html__( 'Above Content', 'rank-math' ),
52
+ 'both' => esc_html__( 'Above & Below Content', 'rank-math' ),
53
+ 'custom' => esc_html__( 'Custom (use shortcode)', 'rank-math' ),
54
+ ],
55
+ ]);
56
+
57
+ $cmb->add_field([
58
+ 'id' => 'rank_math_snippet_review_shortcode',
59
+ 'name' => ' ',
60
+ 'type' => 'text',
61
+ 'classes' => 'nopt',
62
+ 'desc' => esc_html__( 'Copy & paste this shortcode in the content.', 'rank-math' ),
63
+ 'dep' => [
64
+ 'relation' => 'and',
65
+ [ 'rank_math_rich_snippet', 'review' ],
66
+ [ 'rank_math_snippet_review_location', 'custom' ],
67
+ ],
68
+ 'attributes' => [
69
+ 'readonly' => 'readonly',
70
+ 'value' => '[rank_math_review_snippet]',
71
+ ],
72
+ ]);
includes/modules/rich-snippet/views/service.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Service Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $service = [ [ 'rank_math_rich_snippet', 'service' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_service_type',
13
+ 'name' => esc_html__( 'Service Type', 'rank-math' ),
14
+ 'type' => 'text',
15
+ 'desc' => esc_html__( 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', 'rank-math' ),
16
+ 'dep' => $service,
17
+ ]);
18
+
19
+ $cmb->add_field([
20
+ 'id' => 'rank_math_snippet_service_price',
21
+ 'type' => 'text',
22
+ 'name' => esc_html__( 'Price', 'rank-math' ),
23
+ 'dep' => $service,
24
+ 'attributes' => [ 'type' => 'number' ],
25
+ ]);
26
+
27
+ $cmb->add_field([
28
+ 'id' => 'rank_math_snippet_service_price_currency',
29
+ 'type' => 'text',
30
+ 'name' => esc_html__( 'Price Currency', 'rank-math' ),
31
+ 'dep' => $service,
32
+ ]);
33
+
34
+ $cmb->add_field([
35
+ 'id' => 'rank_math_snippet_service_rating_value',
36
+ 'name' => esc_html__( 'Rating Value', 'rank-math' ),
37
+ 'type' => 'text',
38
+ 'dep' => $service,
39
+ 'attributes' => [
40
+ 'type' => 'number',
41
+ 'min' => 1,
42
+ 'max' => 5,
43
+ ],
44
+ ]);
45
+
46
+ $cmb->add_field([
47
+ 'id' => 'rank_math_snippet_service_rating_count',
48
+ 'name' => esc_html__( 'Rating Count', 'rank-math' ),
49
+ 'type' => 'text',
50
+ 'dep' => $service,
51
+ 'attributes' => [ 'type' => 'number' ],
52
+ ]);
includes/modules/rich-snippet/views/software.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Software Application Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $software = [ [ 'rank_math_rich_snippet', 'software' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_software_price',
13
+ 'type' => 'text',
14
+ 'name' => esc_html__( 'Price', 'rank-math' ),
15
+ 'dep' => $software,
16
+ 'attributes' => [ 'type' => 'number' ],
17
+ ]);
18
+
19
+ $cmb->add_field([
20
+ 'id' => 'rank_math_snippet_software_price_currency',
21
+ 'type' => 'text',
22
+ 'name' => esc_html__( 'Price Currency', 'rank-math' ),
23
+ 'dep' => $software,
24
+ ]);
25
+
26
+ $cmb->add_field([
27
+ 'id' => 'rank_math_snippet_software_operating_system',
28
+ 'name' => esc_html__( 'Operating System', 'rank-math' ),
29
+ 'type' => 'text',
30
+ 'desc' => esc_html__( 'For example, "Windows 7", "OSX 10.6", "Android 1.6"', 'rank-math' ),
31
+ 'dep' => $software,
32
+ ]);
33
+
34
+ $cmb->add_field([
35
+ 'id' => 'rank_math_snippet_software_application_category',
36
+ 'name' => esc_html__( 'Application Category', 'rank-math' ),
37
+ 'type' => 'text',
38
+ 'desc' => esc_html__( 'For example, "Game", "Multimedia"', 'rank-math' ),
39
+ 'dep' => $software,
40
+ ]);
41
+
42
+ $cmb->add_field([
43
+ 'id' => 'rank_math_snippet_software_rating_value',
44
+ 'name' => esc_html__( 'Rating Value', 'rank-math' ),
45
+ 'type' => 'text',
46
+ 'dep' => $software,
47
+ 'attributes' => [
48
+ 'type' => 'number',
49
+ 'min' => 1,
50
+ 'max' => 5,
51
+ ],
52
+ ]);
53
+
54
+ $cmb->add_field([
55
+ 'id' => 'rank_math_snippet_software_rating_count',
56
+ 'name' => esc_html__( 'Rating Count', 'rank-math' ),
57
+ 'type' => 'text',
58
+ 'dep' => $software,
59
+ 'attributes' => [ 'type' => 'number' ],
60
+ ]);
includes/modules/rich-snippet/views/video.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Metabox - Video Rich Snippet
4
+ *
5
+ * @package RankMath
6
+ * @subpackage RankMath\RichSnippet
7
+ */
8
+
9
+ $video = [ [ 'rank_math_rich_snippet', 'video' ] ];
10
+
11
+ $cmb->add_field([
12
+ 'id' => 'rank_math_snippet_video_url',
13
+ 'type' => 'text_url',
14
+ 'name' => esc_html__( 'Content URL', 'rank-math' ),
15
+ 'desc' => esc_html__( 'A URL pointing to the actual video media file.', 'rank-math' ),
16
+ 'classes' => 'cmb-row-50',
17
+ 'dep' => $video,
18
+ ]);
19
+
20
+ $cmb->add_field([
21
+ 'id' => 'rank_math_snippet_video_embed_url',
22
+ 'type' => 'text_url',
23
+ 'name' => esc_html__( 'Embed URL', 'rank-math' ),
24
+ 'desc' => esc_html__( 'A URL pointing to the embeddable player for the video.', 'rank-math' ),
25
+ 'classes' => 'cmb-row-50',
26
+ 'dep' => $video,
27
+ ]);
28
+
29
+ $cmb->add_field([
30
+ 'id' => 'rank_math_snippet_video_duration',
31
+ 'type' => 'text',
32
+ 'name' => esc_html__( 'Duration', 'rank-math' ),
33
+ 'desc' => esc_html__( 'Duration of the video', 'rank-math' ),
34
+ 'classes' => 'cmb-row-50 nob',
35
+ 'attributes' => [ 'placeholder' => 'Example: 12M30S' ],
36
+ 'dep' => $video,
37
+ ]);
38
+
39
+ $cmb->add_field([
40
+ 'id' => 'rank_math_snippet_video_views',
41
+ 'type' => 'text',
42
+ 'name' => esc_html__( 'Views', 'rank-math' ),
43
+ 'desc' => esc_html__( 'Number of views', 'rank-math' ),
44
+ 'classes' => 'cmb-row-50 nob',
45
+ 'dep' => $video,
46
+ 'attributes' => [ 'type' => 'number' ],
47
+ ]);
includes/opengraph/class-twitter.php CHANGED
@@ -97,16 +97,15 @@ class Twitter extends OpenGraph {
97
 
98
  $this->tag( 'twitter:card', $this->type );
99
 
100
- if ( in_array( $this->type, array( 'app', 'player' ) ) && is_singular() && ! is_front_page() ) {
101
- if ( 'app' === $this->type ) {
102
- $this->remove_tags();
103
- }
104
-
105
  $this->action( 'rank_math/opengraph/twitter', $this->type, 15 );
106
  }
107
 
108
- $is_archive = is_archive() && ! ( is_author() || is_category() || is_tag() || is_tax() );
109
- if ( $is_archive && in_array( $this->type, array( 'summary', 'summary_large_image' ) ) ) {
 
110
  $this->remove_tags();
111
  }
112
  }
97
 
98
  $this->tag( 'twitter:card', $this->type );
99
 
100
+ $remove_tags = false;
101
+ if ( is_singular() && ! is_front_page() && in_array( $this->type, array( 'app', 'player' ) ) ) {
102
+ $remove_tags = 'app' === $this->type;
 
 
103
  $this->action( 'rank_math/opengraph/twitter', $this->type, 15 );
104
  }
105
 
106
+ $is_archive = is_archive() && ! ( is_author() || is_category() || is_tag() || is_tax() );
107
+ $remove_tags = $is_archive && in_array( $this->type, array( 'summary', 'summary_large_image' ) );
108
+ if ( $remove_tags ) {
109
  $this->remove_tags();
110
  }
111
  }
includes/updates/update-1.0.14.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Updates routine for version 1.0.14.
4
+ *
5
+ * @since 1.0.14
6
+ * @package RankMath
7
+ * @subpackage RankMath\Updates
8
+ * @author MyThemeShop <admin@mythemeshop.com>
9
+ */
10
+
11
+ /**
12
+ * Delete previous notices.
13
+ */
14
+ function rank_math_1_0_14_clear_old_notices() {
15
+ delete_option( 'rank_math_notifications' );
16
+ }
17
+
18
+ rank_math_1_0_14_clear_old_notices();
rank-math.php CHANGED
@@ -9,7 +9,7 @@
9
  *
10
  * @wordpress-plugin
11
  * Plugin Name: Rank Math SEO
12
- * Version: 1.0.12
13
  * Plugin URI: https://link.mythemeshop.com/rankmathseo
14
  * Description: Rank Math is a revolutionary SEO product that combines the features of many SEO tools and lets you multiply your traffic in the easiest way possible.
15
  * Author: MyThemeShop
@@ -34,7 +34,7 @@ final class RankMath {
34
  *
35
  * @var string
36
  */
37
- public $version = '1.0.12';
38
 
39
  /**
40
  * Rank Math database version.
9
  *
10
  * @wordpress-plugin
11
  * Plugin Name: Rank Math SEO
12
+ * Version: 1.0.14
13
  * Plugin URI: https://link.mythemeshop.com/rankmathseo
14
  * Description: Rank Math is a revolutionary SEO product that combines the features of many SEO tools and lets you multiply your traffic in the easiest way possible.
15
  * Author: MyThemeShop
34
  *
35
  * @var string
36
  */
37
+ public $version = '1.0.14';
38
 
39
  /**
40
  * Rank Math database version.
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: seo, sitemap, google search console, schema.org, redirection
5
  Tested up to: 5.0.2
6
  Requires at least: 4.6.0
7
  Requires PHP: 5.6
8
- Stable tag: 1.0.12
9
  License: GPL-2.0+
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.txt
11
 
@@ -434,6 +434,21 @@ We look forward to helping you.
434
 
435
  == Changelog ==
436
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
  = 1.0.12 [Jan 14, 2019] =
438
  * Made PHP 7.2 as the recommended version of the plugin. We will continue supporting PHP 5.6 till March and will then move the support to at least PHP 7
439
  * Added a Shortcode for the Review Schema to show the output on the frontend according to Google's guidelines. All older posts where Review Schema is used, the output will display below the content
5
  Tested up to: 5.0.2
6
  Requires at least: 4.6.0
7
  Requires PHP: 5.6
8
+ Stable tag: 1.0.14
9
  License: GPL-2.0+
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.txt
11
 
434
 
435
  == Changelog ==
436
 
437
+ = 1.0.14 [Jan 22, 2019] =
438
+ * Added a new filter to change Editor's choice text in the review Shortcode
439
+ * Added noopener tag to all the external links
440
+ * Improved the Snippet code and separated it to make it load much faster and work efficiently on large sites
441
+ * Improved the Syntax for Array
442
+ * Improved the AMP link in the plugin's module page
443
+ * Fixed an issue with the Local SEO dropdown that made it to not work effectively
444
+ * Fixed an issue with the Editor script where the Editor screen was freezing when more than 4 words were used as a focus keyword
445
+ * Fixed a compatibility issue with WooCommerce Multivendor Marketplace plugin
446
+ * Fixed Duplicate Redirection creation issue where successive clicks on the 'Add Redirection button' was causing redirections to be created twice
447
+ * Continued moving the things to the API
448
+
449
+ = 1.0.13 [Jan 21, 2019] =
450
+ * Used for internal testing
451
+
452
  = 1.0.12 [Jan 14, 2019] =
453
  * Made PHP 7.2 as the recommended version of the plugin. We will continue supporting PHP 5.6 till March and will then move the support to at least PHP 7
454
  * Added a Shortcode for the Review Schema to show the output on the frontend according to Google's guidelines. All older posts where Review Schema is used, the output will display below the content
uninstall.php CHANGED
@@ -52,7 +52,7 @@ if ( apply_filters( 'rank_math_clear_data_on_uninstall', false ) ) {
52
  */
53
  include dirname( __FILE__ ) . '/vendor/autoload.php';
54
 
55
- \RankMath\Modules\Role_Manager\Role_Manager::remove_capabilities();
56
 
57
  // Clear any cached data that has been removed.
58
  wp_cache_flush();
52
  */
53
  include dirname( __FILE__ ) . '/vendor/autoload.php';
54
 
55
+ \RankMath\Role_Manager\Capability_Manager::get()->remove_capabilities();
56
 
57
  // Clear any cached data that has been removed.
58
  wp_cache_flush();
vendor/composer/autoload_classmap.php CHANGED
@@ -206,9 +206,35 @@ return array(
206
  'RankMath\\Replace_Vars' => $baseDir . '/includes/class-replace-vars.php',
207
  'RankMath\\Rewrite' => $baseDir . '/includes/class-rewrite.php',
208
  'RankMath\\RichSnippet\\Admin' => $baseDir . '/includes/modules/rich-snippet/class-admin.php',
 
 
 
 
 
 
 
 
 
209
  'RankMath\\RichSnippet\\JsonLD' => $baseDir . '/includes/modules/rich-snippet/class-jsonld.php',
 
 
 
 
 
 
 
 
 
 
210
  'RankMath\\RichSnippet\\RichSnippet' => $baseDir . '/includes/modules/rich-snippet/class-richsnippet.php',
211
- 'RankMath\\RichSnippet\\WC_Attributes' => $baseDir . '/includes/modules/rich-snippet/class-wc-attributes.php',
 
 
 
 
 
 
 
212
  'RankMath\\Role_Manager\\Capability_Manager' => $baseDir . '/includes/modules/role-manager/class-capability-manager.php',
213
  'RankMath\\Role_Manager\\Members' => $baseDir . '/includes/modules/role-manager/class-members.php',
214
  'RankMath\\Role_Manager\\Role_Manager' => $baseDir . '/includes/modules/role-manager/class-role-manager.php',
206
  'RankMath\\Replace_Vars' => $baseDir . '/includes/class-replace-vars.php',
207
  'RankMath\\Rewrite' => $baseDir . '/includes/class-rewrite.php',
208
  'RankMath\\RichSnippet\\Admin' => $baseDir . '/includes/modules/rich-snippet/class-admin.php',
209
+ 'RankMath\\RichSnippet\\Article' => $baseDir . '/includes/modules/rich-snippet/snippets/class-article.php',
210
+ 'RankMath\\RichSnippet\\Author' => $baseDir . '/includes/modules/rich-snippet/snippets/class-author.php',
211
+ 'RankMath\\RichSnippet\\Blog' => $baseDir . '/includes/modules/rich-snippet/snippets/class-blog.php',
212
+ 'RankMath\\RichSnippet\\Book' => $baseDir . '/includes/modules/rich-snippet/snippets/class-book.php',
213
+ 'RankMath\\RichSnippet\\Breadcrumbs' => $baseDir . '/includes/modules/rich-snippet/snippets/class-breadcrumbs.php',
214
+ 'RankMath\\RichSnippet\\Collection_Page' => $baseDir . '/includes/modules/rich-snippet/snippets/class-collection-page.php',
215
+ 'RankMath\\RichSnippet\\Course' => $baseDir . '/includes/modules/rich-snippet/snippets/class-course.php',
216
+ 'RankMath\\RichSnippet\\Event' => $baseDir . '/includes/modules/rich-snippet/snippets/class-event.php',
217
+ 'RankMath\\RichSnippet\\JobPosting' => $baseDir . '/includes/modules/rich-snippet/snippets/class-jobposting.php',
218
  'RankMath\\RichSnippet\\JsonLD' => $baseDir . '/includes/modules/rich-snippet/class-jsonld.php',
219
+ 'RankMath\\RichSnippet\\Local' => $baseDir . '/includes/modules/rich-snippet/snippets/class-local.php',
220
+ 'RankMath\\RichSnippet\\Music' => $baseDir . '/includes/modules/rich-snippet/snippets/class-music.php',
221
+ 'RankMath\\RichSnippet\\Person' => $baseDir . '/includes/modules/rich-snippet/snippets/class-person.php',
222
+ 'RankMath\\RichSnippet\\Product' => $baseDir . '/includes/modules/rich-snippet/snippets/class-product.php',
223
+ 'RankMath\\RichSnippet\\Product_Edd' => $baseDir . '/includes/modules/rich-snippet/snippets/class-product-edd.php',
224
+ 'RankMath\\RichSnippet\\Product_WooCommerce' => $baseDir . '/includes/modules/rich-snippet/snippets/class-product-woocommerce.php',
225
+ 'RankMath\\RichSnippet\\Products_Page' => $baseDir . '/includes/modules/rich-snippet/snippets/class-products-page.php',
226
+ 'RankMath\\RichSnippet\\Recipe' => $baseDir . '/includes/modules/rich-snippet/snippets/class-recipe.php',
227
+ 'RankMath\\RichSnippet\\Restaurant' => $baseDir . '/includes/modules/rich-snippet/snippets/class-restaurant.php',
228
+ 'RankMath\\RichSnippet\\Review' => $baseDir . '/includes/modules/rich-snippet/snippets/class-review.php',
229
  'RankMath\\RichSnippet\\RichSnippet' => $baseDir . '/includes/modules/rich-snippet/class-richsnippet.php',
230
+ 'RankMath\\RichSnippet\\Search_Results' => $baseDir . '/includes/modules/rich-snippet/snippets/class-search-results.php',
231
+ 'RankMath\\RichSnippet\\Service' => $baseDir . '/includes/modules/rich-snippet/snippets/class-service.php',
232
+ 'RankMath\\RichSnippet\\Singular' => $baseDir . '/includes/modules/rich-snippet/snippets/class-singular.php',
233
+ 'RankMath\\RichSnippet\\Snippet' => $baseDir . '/includes/modules/rich-snippet/interface-snippet.php',
234
+ 'RankMath\\RichSnippet\\Software' => $baseDir . '/includes/modules/rich-snippet/snippets/class-software.php',
235
+ 'RankMath\\RichSnippet\\Video' => $baseDir . '/includes/modules/rich-snippet/snippets/class-video.php',
236
+ 'RankMath\\RichSnippet\\WC_Attributes' => $baseDir . '/includes/modules/rich-snippet/snippets/class-wc-attributes.php',
237
+ 'RankMath\\RichSnippet\\Website' => $baseDir . '/includes/modules/rich-snippet/snippets/class-website.php',
238
  'RankMath\\Role_Manager\\Capability_Manager' => $baseDir . '/includes/modules/role-manager/class-capability-manager.php',
239
  'RankMath\\Role_Manager\\Members' => $baseDir . '/includes/modules/role-manager/class-members.php',
240
  'RankMath\\Role_Manager\\Role_Manager' => $baseDir . '/includes/modules/role-manager/class-role-manager.php',
vendor/composer/autoload_static.php CHANGED
@@ -252,9 +252,35 @@ class ComposerStaticInite0bd047aa5058f04568aa38dfc5ac000
252
  'RankMath\\Replace_Vars' => __DIR__ . '/../..' . '/includes/class-replace-vars.php',
253
  'RankMath\\Rewrite' => __DIR__ . '/../..' . '/includes/class-rewrite.php',
254
  'RankMath\\RichSnippet\\Admin' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/class-admin.php',
 
 
 
 
 
 
 
 
 
255
  'RankMath\\RichSnippet\\JsonLD' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/class-jsonld.php',
 
 
 
 
 
 
 
 
 
 
256
  'RankMath\\RichSnippet\\RichSnippet' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/class-richsnippet.php',
257
- 'RankMath\\RichSnippet\\WC_Attributes' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/class-wc-attributes.php',
 
 
 
 
 
 
 
258
  'RankMath\\Role_Manager\\Capability_Manager' => __DIR__ . '/../..' . '/includes/modules/role-manager/class-capability-manager.php',
259
  'RankMath\\Role_Manager\\Members' => __DIR__ . '/../..' . '/includes/modules/role-manager/class-members.php',
260
  'RankMath\\Role_Manager\\Role_Manager' => __DIR__ . '/../..' . '/includes/modules/role-manager/class-role-manager.php',
252
  'RankMath\\Replace_Vars' => __DIR__ . '/../..' . '/includes/class-replace-vars.php',
253
  'RankMath\\Rewrite' => __DIR__ . '/../..' . '/includes/class-rewrite.php',
254
  'RankMath\\RichSnippet\\Admin' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/class-admin.php',
255
+ 'RankMath\\RichSnippet\\Article' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-article.php',
256
+ 'RankMath\\RichSnippet\\Author' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-author.php',
257
+ 'RankMath\\RichSnippet\\Blog' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-blog.php',
258
+ 'RankMath\\RichSnippet\\Book' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-book.php',
259
+ 'RankMath\\RichSnippet\\Breadcrumbs' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-breadcrumbs.php',
260
+ 'RankMath\\RichSnippet\\Collection_Page' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-collection-page.php',
261
+ 'RankMath\\RichSnippet\\Course' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-course.php',
262
+ 'RankMath\\RichSnippet\\Event' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-event.php',
263
+ 'RankMath\\RichSnippet\\JobPosting' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-jobposting.php',
264
  'RankMath\\RichSnippet\\JsonLD' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/class-jsonld.php',
265
+ 'RankMath\\RichSnippet\\Local' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-local.php',
266
+ 'RankMath\\RichSnippet\\Music' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-music.php',
267
+ 'RankMath\\RichSnippet\\Person' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-person.php',
268
+ 'RankMath\\RichSnippet\\Product' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-product.php',
269
+ 'RankMath\\RichSnippet\\Product_Edd' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-product-edd.php',
270
+ 'RankMath\\RichSnippet\\Product_WooCommerce' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-product-woocommerce.php',
271
+ 'RankMath\\RichSnippet\\Products_Page' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-products-page.php',
272
+ 'RankMath\\RichSnippet\\Recipe' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-recipe.php',
273
+ 'RankMath\\RichSnippet\\Restaurant' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-restaurant.php',
274
+ 'RankMath\\RichSnippet\\Review' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-review.php',
275
  'RankMath\\RichSnippet\\RichSnippet' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/class-richsnippet.php',
276
+ 'RankMath\\RichSnippet\\Search_Results' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-search-results.php',
277
+ 'RankMath\\RichSnippet\\Service' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-service.php',
278
+ 'RankMath\\RichSnippet\\Singular' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-singular.php',
279
+ 'RankMath\\RichSnippet\\Snippet' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/interface-snippet.php',
280
+ 'RankMath\\RichSnippet\\Software' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-software.php',
281
+ 'RankMath\\RichSnippet\\Video' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-video.php',
282
+ 'RankMath\\RichSnippet\\WC_Attributes' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-wc-attributes.php',
283
+ 'RankMath\\RichSnippet\\Website' => __DIR__ . '/../..' . '/includes/modules/rich-snippet/snippets/class-website.php',
284
  'RankMath\\Role_Manager\\Capability_Manager' => __DIR__ . '/../..' . '/includes/modules/role-manager/class-capability-manager.php',
285
  'RankMath\\Role_Manager\\Members' => __DIR__ . '/../..' . '/includes/modules/role-manager/class-members.php',
286
  'RankMath\\Role_Manager\\Role_Manager' => __DIR__ . '/../..' . '/includes/modules/role-manager/class-role-manager.php',