diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/banner-1544x500.jpg b/wp/wp-content/plugins/sharethis-share-buttons/assets/banner-1544x500.jpg
new file mode 100644
index 00000000..db1ba7e7
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/banner-1544x500.jpg differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/banner-772x250.jpg b/wp/wp-content/plugins/sharethis-share-buttons/assets/banner-772x250.jpg
new file mode 100644
index 00000000..b36a0c78
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/banner-772x250.jpg differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/consent-management-platform.svg b/wp/wp-content/plugins/sharethis-share-buttons/assets/consent-management-platform.svg
new file mode 100644
index 00000000..2cb00a06
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/assets/consent-management-platform.svg
@@ -0,0 +1,73 @@
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/finished-step.png b/wp/wp-content/plugins/sharethis-share-buttons/assets/finished-step.png
new file mode 100644
index 00000000..b0719a4c
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/finished-step.png differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/icon-128x128.jpg b/wp/wp-content/plugins/sharethis-share-buttons/assets/icon-128x128.jpg
new file mode 100644
index 00000000..2183cc92
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/icon-128x128.jpg differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/icon-256x256.jpg b/wp/wp-content/plugins/sharethis-share-buttons/assets/icon-256x256.jpg
new file mode 100644
index 00000000..5532700a
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/icon-256x256.jpg differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/inline-setup-logo.png b/wp/wp-content/plugins/sharethis-share-buttons/assets/inline-setup-logo.png
new file mode 100644
index 00000000..ac9f34cc
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/inline-setup-logo.png differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/inline-share-buttons.svg b/wp/wp-content/plugins/sharethis-share-buttons/assets/inline-share-buttons.svg
new file mode 100644
index 00000000..7bc99dc4
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/assets/inline-share-buttons.svg
@@ -0,0 +1,22 @@
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-1.png b/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-1.png
new file mode 100644
index 00000000..bb2ea101
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-1.png differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-2.png b/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-2.png
new file mode 100644
index 00000000..0741bc4e
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-2.png differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-3.png b/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-3.png
new file mode 100644
index 00000000..8e20c274
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/screenshot-3.png differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/sharethis-setup-logo.png b/wp/wp-content/plugins/sharethis-share-buttons/assets/sharethis-setup-logo.png
new file mode 100644
index 00000000..007deab1
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/sharethis-setup-logo.png differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/st-loading.gif b/wp/wp-content/plugins/sharethis-share-buttons/assets/st-loading.gif
new file mode 100644
index 00000000..601d37c7
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/st-loading.gif differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/sticky-setup-logo.png b/wp/wp-content/plugins/sharethis-share-buttons/assets/sticky-setup-logo.png
new file mode 100644
index 00000000..7c05b4dc
Binary files /dev/null and b/wp/wp-content/plugins/sharethis-share-buttons/assets/sticky-setup-logo.png differ
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/assets/sticky-share-buttons.svg b/wp/wp-content/plugins/sharethis-share-buttons/assets/sticky-share-buttons.svg
new file mode 100644
index 00000000..a784336d
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/assets/sticky-share-buttons.svg
@@ -0,0 +1,23 @@
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/css/admin.css b/wp/wp-content/plugins/sharethis-share-buttons/css/admin.css
new file mode 100644
index 00000000..ead4a313
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/css/admin.css
@@ -0,0 +1,1905 @@
+/*Share Buttons Menus*/
+.adBanner {
+ background-color: transparent;
+ height: 1px;
+ width: 1px;
+}
+
+#adblocker-notice {
+ display: none;
+}
+
+div[title="googlebookmarks"] svg,
+div[title="telegram"] svg,
+div[title="douban"] svg,
+div[title="renren"] svg,
+div[title="getpocket"] svg
+{
+ width: 25px;
+ height: 24px;
+ padding-bottom: 10px;
+}
+
+.sharethis-wrap {
+ background: #ffffff;
+ padding: 1rem;
+}
+
+.sharethis-wrap .tabs-wrap {
+ border-bottom: 1px solid #ebebeb;
+ display: flex;
+}
+
+.sharethis-wrap .tabs-wrap .button-tab {
+ align-items: center;
+ color: #3d3d3d;
+ cursor: pointer;
+ display: flex;
+ font-size: 1rem;
+ font-weight: 400;
+ margin-right: 2.5rem;
+ padding-bottom: .75rem;
+}
+
+.sharethis-wrap .tabs-wrap .button-tab.engage {
+ border-bottom: 2px solid #13682B;
+ color: #13682B;
+ font-weight: 600;
+}
+
+.sharethis-wrap .tabs-wrap .button-tab span {
+ background: #f5f5f5;
+ border-radius: .5rem;
+ color: #a3a3a3;
+ font-size: 12px;
+ font-weight: 600;
+ padding: .5rem;
+ margin-left: 1rem;
+}
+
+.sharethis-wrap .tabs-wrap .button-tab img {
+ margin-right: .5rem;
+ width: 1.5rem;
+}
+
+.sharethis-wrap .tabs-wrap .button-tab.engage span {
+ background: #ECF3EE;
+ color: #13682B;
+}
+
+.sharethis-wrap input[type=radio] {
+ display: none;
+}
+
+.sharethis-wrap .share-on input[type=radio]:checked + div {
+ background: #4089c1;
+}
+
+.sharethis-wrap .share-off input[type=radio]:checked + div {
+ background: #979797;
+}
+
+.sharethis-wrap .enable-buttons .share-on input[type=radio]:checked + div {
+ background: #00b300;
+}
+
+.sharethis-wrap .share-off input[type=radio] + div, .sharethis-wrap .share-on input[type=radio] + div {
+ width: 40px;
+ height: 40px;
+ background: #ffffff;
+ border: 1px solid #c5c5c5;
+ display: inline-block;
+}
+
+.sharethis-wrap .share-on input[type=radio] + div {
+ border-top-left-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.sharethis-wrap .share-off input[type=radio] + div {
+ border-top-right-radius: 5px;
+ border-bottom-right-radius: 5px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.sharethis-wrap .form-table label .label-text {
+ color: #8d8d8d;
+ text-align: center;
+ line-height: 40px;
+}
+
+.sharethis-wrap .share-on {
+ margin-right: -6px;
+}
+
+.sharethis-wrap .share-on input:checked:before, .sharethis-wrap .share-off input:checked:before {
+ display: none;
+}
+
+.sharethis-wrap input:checked:focus {
+ box-shadow: none;
+}
+
+.sharethis-wrap input[type=radio]:checked + div {
+ color: #ffffff;
+}
+
+.sharethis-wrap h2 {
+ padding: 1.2rem;
+}
+
+.sharethis-wrap h2 span {
+ border: 1px solid #ffffff;
+ padding: .4rem .6rem;
+ border-radius: 5px;
+ margin-right: 1rem;
+ font-size: 14px;
+ cursor: pointer;
+ font-family: arial, sans-serif;
+}
+
+.sharethis-wrap form {
+ margin: 0 2rem;
+}
+
+.sharethis-wrap form .form-table tbody {
+ display: table;
+ width: 100%;
+}
+
+.sharethis-wrap form .form-table {
+ display: none;
+}
+
+.sharethis-wrap form .form-table.engage {
+ display: block;
+ margin: 5rem auto 0;
+ max-width: 690px;
+}
+
+.sharethis-wrap form .form-table tr:first-of-type td {
+ width: 100%;
+}
+
+.sharethis-wrap .form-table th {
+ min-width: 17.5rem;
+}
+
+.sharethis-wrap .form-table th span {
+ padding-top: 1rem;
+ display: block;
+ color: #6f6f6f;
+ font-weight: 100;
+ font-size: 12px;
+ line-height: 1.5;
+}
+
+.sharethis-wrap .form-table tr {
+ border-top: solid 1px #d6d6d6;
+ margin: 2rem 0 0 1.5rem;
+ padding-top: .5rem;
+}
+
+.sharethis-wrap form .form-table tr:first-of-type {
+ display: table-row;
+ border-top: none;
+}
+
+.sharethis-wrap form .form-table tr:nth-child(2) {
+ border-top: none;
+}
+
+.sharethis-wrap h3 {
+ font-weight: 100;
+ line-height: 1.5;
+}
+
+.sharethis-wrap h3 a {
+ color: #1ca5d8;
+ text-decoration: none;
+}
+
+.sharethis-wrap .onoff-buttons .option-title {
+ display: inline-block;
+ margin-bottom: 2rem;
+}
+
+.sharethis-wrap form .submit {
+ display: none;
+ text-align: right;
+}
+
+.sharethis-wrap .enable-tool,
+.sharethis-wrap .disable-tool {
+ background: #13682B;
+ border-radius: .25rem;
+ border: none;
+ color: white;
+ cursor: pointer;
+ font-weight: 600;
+ font-size: 14px;
+ margin-bottom: 3rem;
+ outline: none;
+ padding: .5rem 1.25rem;
+}
+
+.sharethis-wrap .disable-tool {
+ bottom: 60px;
+ left: 50%;
+ position: absolute;
+ transform: translateX(-50%);
+}
+
+.sharethis-wrap form .submit.engage {
+ display: block;
+}
+
+.sharethis-wrap .submit #submit {
+ background: #00b300;
+ text-shadow: none;
+ border: 1px solid #009900;
+
+}
+
+.sharethis-wrap .submit #reset {
+ background: #979797;
+ margin-left: .5rem;
+ text-shadow: none;
+ border: 1px solid #727272;
+ box-shadow: none;
+}
+
+.sharethis-wrap .readonly-input-field input {
+ background: #ffffff;
+}
+
+.sharethis-wrap .readonly-input-field button {
+ border-radius: 4px;
+ font-size: 11px;
+ background: #efefef;
+ border: 1px solid #dddddd;
+ padding: .46rem .6rem;
+}
+
+.sharethis-wrap a.social-login-button {
+ padding: .4rem;
+ background: #008ec2;
+ border: 1px solid #006799;
+ border-radius: 4px;
+ color: #ffffff;
+ text-decoration: none;
+}
+
+.sharethis-wrap form .form-table td {
+ padding-left: 2rem;
+}
+
+.sharethis-wrap .list-wrapper {
+ margin: -1.5rem 0 2rem;
+}
+
+.sharethis-wrap .search-st-icon {
+ padding: 0 9px;
+ background: url( 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWw0KCTwhRU5USVRZIG5zX2V4dGVuZCAiaHR0cDovL25zLmFkb2JlLmNvbS9FeHRlbnNpYmlsaXR5LzEuMC8iPg0KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPg0KCTwhRU5USVRZIG5zX2dyYXBocyAiaHR0cDovL25zLmFkb2JlLmNvbS9HcmFwaHMvMS4wLyI+DQoJPCFFTlRJVFkgbnNfdmFycyAiaHR0cDovL25zLmFkb2JlLmNvbS9WYXJpYWJsZXMvMS4wLyI+DQoJPCFFTlRJVFkgbnNfaW1yZXAgImh0dHA6Ly9ucy5hZG9iZS5jb20vSW1hZ2VSZXBsYWNlbWVudC8xLjAvIj4NCgk8IUVOVElUWSBuc19zZncgImh0dHA6Ly9ucy5hZG9iZS5jb20vU2F2ZUZvcldlYi8xLjAvIj4NCgk8IUVOVElUWSBuc19jdXN0b20gImh0dHA6Ly9ucy5hZG9iZS5jb20vR2VuZXJpY0N1c3RvbU5hbWVzcGFjZS8xLjAvIj4NCgk8IUVOVElUWSBuc19hZG9iZV94cGF0aCAiaHR0cDovL25zLmFkb2JlLmNvbS9YUGF0aC8xLjAvIj4NCl0+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zOng9IiZuc19leHRlbmQ7IiB4bWxuczppPSImbnNfYWk7IiB4bWxuczpncmFwaD0iJm5zX2dyYXBoczsiDQoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIxOC41IDE2LjQgMTYzLjMgMTY1LjYiDQoJIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMTguNSAxNi40IDE2My4zIDE2NS42OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojNjc3MjdGO30NCjwvc3R5bGU+DQo8c3dpdGNoPg0KCTxmb3JlaWduT2JqZWN0IHJlcXVpcmVkRXh0ZW5zaW9ucz0iJm5zX2FpOyIgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+DQoJCTxpOnBnZlJlZiAgeGxpbms6aHJlZj0iI2Fkb2JlX2lsbHVzdHJhdG9yX3BnZiI+DQoJCTwvaTpwZ2ZSZWY+DQoJPC9mb3JlaWduT2JqZWN0Pg0KCTxnIGk6ZXh0cmFuZW91cz0ic2VsZiI+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03OC40LDE3LjJjLTMyLjYsMC01OS4xLDI2LjQtNTkuMSw1OS4xczI2LjQsNTkuMSw1OS4xLDU5LjFjMzIuNiwwLDU5LjEtMjYuNCw1OS4xLTU5LjFTMTExLDE3LjIsNzguNCwxNy4yeg0KCQkJIE03OC40LDEyMC40Yy0yNC40LDAtNDQuMS0xOS43LTQ0LjEtNDQuMVM1NCwzMi4yLDc4LjQsMzIuMmMyNC40LDAsNDQuMSwxOS43LDQ0LjEsNDQuMVMxMDIuNywxMjAuNCw3OC40LDEyMC40eiIvPg0KCQkNCgkJCTxyZWN0IHg9IjExNS41IiB5PSIxMzkuMSIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIDAuNzA3MSAtMC43MDcxIDAuNzA3MSAxNDkuNzgzMyAtNjEuODg4NSkiIGNsYXNzPSJzdDAiIHdpZHRoPSI2OC4zIiBoZWlnaHQ9IjIxLjQiLz4NCgkJDQoJCQk8cmVjdCB4PSIxMDguMyIgeT0iMTE2IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjcwNzEgMC43MDcxIC0wLjcwNzEgMC43MDcxIDEyMy42Mjc5IC01MS4wNTQ2KSIgY2xhc3M9InN0MCIgd2lkdGg9IjMwLjMiIGhlaWdodD0iMTUuNSIvPg0KCTwvZz4NCjwvc3dpdGNoPg0KPGk6cGdmICBpZD0iYWRvYmVfaWxsdXN0cmF0b3JfcGdmIj4NCgk8IVtDREFUQVsNCgllSnp0dmVsNjZyalNLUHpkQVBjQUNRUUlZRHd5SlNGaERKa0paQ0lUTWVBa3JCQWdCcnA3dlQvT3RYK1NQQnZMbG9HMWU3L25PYnQzCnB3SExKYWxVVmFvcVZha2lvV1k3VlJwTWVsS0tvK2hnSUJLcHlKSTRuOGlGSVBvMWVESWFMV1p6R2Y0VWE4V0RUSmFpUWFQU1NhNnIKTnJ5VDVObHdNaTRFbVR6Rm9JZDErSGJzWGhaL0I4dVR2MGZEOFVjOEdJdURCemZEK1VnQ2o3N0ZqL0h3L1RkNGtQb1lpYk1aTmZ2cgpJNjUxRFdCVnhUbG94dEJwTnMwSVFZWXRzR3l3ZVFFYmlPTy9RUHZoLzhESEdTN0hnZC9LazhWNEFFQ1ZKLy9BTVFTWkhQZy9DLzZGCkR4dkRsalN6dGFBNG1zNnlOTXZ3T1o2RGpTbWV6VEFzSzJRNFZ1QkJmem1HNGhpR3kyYVlqQ0R3UEFSSFpmTjVqc253ZElZVkFOanEKcEwvNGxzYnpwanpwUzdOWlpUS2F5TE5Dc1BKYkhBY3Z4QS93UkF4MnBORm84bmV3UEJMN1h3R0FNS0ZiSDQ0a2dKdHZjUjVrT0lpcAowZ25EZHN1TDRXaHd1Zmp1U1FCcmJCNyt5blVSeE5zWkFBV2d3cy93NTJ6M0JHQk9ha3Z6T1pnTjZBOGl1M1ZjTm84Qy9JaitpVDIxCnBJOGhXamlBMEplNENsYWVUTDlGK1F1OEM2WXRNQnlUcDdOMGx1ZnlMRnpaUEo5amMxa21td0d6elNBOFpITjVsbUVBQW9RTXhCUkgKQ2JsTWptVjUwSVlYRkpnMzB2ZDBCQllNWVRlZnB3QUNhUnI4TlQ2cTdjRHNVWnNVazh0U09UNEhPcUVGUHAvUEJsT3NJRkFzeC9LOApBTllsbTgwSHVWeU9ZZ1NHcGVrOEw5QTBGK1N6T1FxTUM2eEhOcDlsV1ZhQmFheUQ5TmRRK3JzUXZKeU1KUVhaSlhuZVZ1aUU1MmxhCithczhhUzFHa253N0hzNEJGakx3cDd5QzdvdkpRQnFCOXZyNzlaR0lzSXorWVl5L1NvTWJVZjZRNW9DOEpxUEZIREZBVHVzQnJPYTUKK0Z1Q0pJR2dNZGx1R2F6R0dQUXpub1BoZG9mdjNiOFV0dWwrekF0TVZtbVc3MTVOcGZITjVBNU5KY1hRR1NwTEF3d0FmQWxDTmh0awpXWnJLWlZoYUVMaGNOaWN3UVk3SzBYbUFaSURKWUQ1REI5a01HbVFXTEJYSDYrTm1qTC9xWUVxanVTU1B3WnBwQS9xUDlsNGJEN3FxCjBKQUc1aEVJYUFTd2Z3MTdXVURnVFVEeVYvSVFvSytnNGo3YlBaYUhBNE1Oc213d3AveEJ5d09HaGY3SE1IbVd6ck41MGwveTZIK0EKNjRVY3c3TWt2eWhvQTJReUIxUFExcHJ0Vmk1TUxFcFRGMjB3Q3pEcHl1UWIwdW9NeWl4SURZQnRSNU1QNVpuK0dUMEJyeSttQ2tZVQp1Z0ZrM1pTSFl3Z3pjSW1lNUxyTjBRSThPcFluaStuSitIMFNpQ255dWdrSEk0K3Z4dUREWjdBc0wyYWZ3WnZKWkFSRXNLV0Ira2lCCkFoL0tjK1VkOUR0OGd4S0gwL2gvVFYvNk8wNzlnSWYvVy9xb2lLUFI4RU1XcDUvRHZsTTNEcy8xL3N6UGZIUUpDRlNXRENqb3EvWmYKNzdmYmZiU0lUbU8xUHRJN1VILzJNY0wvUkI5M1VoOW9LMkJMR0FTdmVyL0FGd0FGN2FmQkcxbnNLMHFLM29hQTlvR0Ftb0xtdzc4MAoxQVpSRzRQMjhRMU1qNGlaTEZnYkRNSFlNSDI1dG1uL0xjNzduK2ZEM3N5N3QvUGhlR200NkRkUm52ODlrYjhnMGdhU2FLZ3lCSXY3CkpZSHVsd2FsL0xvNldJVlBSOUo0TU5QeG9IdzFxT1FjWUZqNWpXQ1l2Nzk3azlGdzltMlFudW1YSmhqb3NEK1MycjluYytuYkcxcFYKZWdmek1Ja0s5R3R0L0pjMG1reE56S2kwSTVqdFNCeUxzbTNaenhGdGlXQmpNQURDaHRMOHdRMGl4Tno3Y0R3QVhOVmVET2VTSVhzbQozMU9vS3dmYm4rSlVRclBXV3JaMWdBTGF3RTA3VWlybHZsWGxsU2RRSVp2L0hrbXpRUHBzUFBsN2pMNEVDNEhZRThDQnVCak5YK0xCCjlLWDRMUVdUZ1hSN0NKUktTV3RDQjY4Q3RFbWpZSUlQSXZpaEZhQ3ByRUNERFR4SDV6Z2U2Q0J3SHdmS0sxQlJCWUVGT3pUUThORXYKTk1zeWVhanRaM2dlL3BLbm9TN1A1b1Y4anVVeWpBcjZvUlRROUR6dzVUZjRjZ28rL0FJLy9RMFUyZUJGOE9tRkRnN0F6dyt0QUJyRQpJSkJXc0w4WENLYkJMTUIvMFh3QmdvelplcUtzS1k2QXVpQ2hHVFo3RzU2VDNRNUFHSHo0bjhDU2ZkRHNCNXBsZmJEYW1Qd3M3RGtBCloxN05KVnlnQnF0UUVFTXJqeFNHaEdEK1AvVm5BTWoySXdhNE9sYk5ZQUFXcGhpSWROUGFkMEJrOE51d0Q3RWh5citWN3c4WDU1ZkEKS0hCOHVCZU0vZk05R29QSEtTQjg1V0Z2TVplQUlFckNwaVVaMnI3L0NSQWJnRzlxMWY4RXBxZ3NqWlUyYkRCOUFqQ2pQNFYvNXIraApYSUJQWXp2aldmY3ZVWjd0QWJadEErampEMnZUdjhUUlFtc0xmNTloMm8wQnl5dk4xSkhNTE4vK2wySm5ESXdiQXNTTUp2MHZhVUNDCkdhMWw4dCtkVjIrSVhDa013ZHdBY1FCRDVoSk53bnQrNXRZYld2NDFNY0c0WW9Kby9rT3hONUpJQ045elZmOWxSdTh2WnZQSjk1OWkKOWY5TlVxendGL0hrWUZOeVV2NXpkRmlZaVZDYmduc2VZREZTY3Z6amZBSEc4bDgwbFA4YnVIVDIvdmQvOFc3OEw3UEJiRFRzLzIrWAp4VUREcDdnc3grUzVITTlDSDMyNkpZa2ovSncvcGVISEp3bVg2UzMvWFhITVpGaUtadWlNSU9RRk91czF1NytIZy9rbnllVFVodi95CjNJTHA4bVRpTXAzZVpBNzIySFBwZmE2NHUwbG10dnpPdnp4SisrbWF4eEwrUXlTRy92VloyWThJUFdiMW0yUld2LzhybEFNa0ZkdVQKaGR5WDBESHB2NjRkZ0QzczN4N0N0elFYQjBCWlduY2MrVFhIc1QxUXZSTWs1R1JxREgraDFiN2hpVzlKbHNRUzhqWXZiOWcyTnNveApERzA2RithRE9ZWUd4QTkreUdZRjZGZFNTTDg1R2NJanUyNHdoZzVUemJKSDY3ZzZuRTFINHU4TEVUcDMwWFJLOHJ3M0VlVkJFQnFQCnQrTmhIMHhCbTVaaDl6RWFjelZMTFkzNzdPZlE5cE5xWTB3dGFYUXphU25qUWVOclRtWkRPRUgwbE5YWjJYYjBiVHZZSmdiSTJFVDcKeVV5YnBPb0Z1MXltRmEwRldnVGxHZGp2T0VIRlcra2tENTNpQ3FiNjhGdzZ5QVI3T2xFdzJHYktjNEhsMlJ3ZUZHc0N4WnFheldWeApQSnVLZ0hUN3Y0TWY4bkFRaEVFVytvb3FzNE1OcCtKVWtzSEQ3OFVJZVE0SmUvMlFKWW0wcmF5NU9UelJZb0xxMlZhSGl1Skc5SmFhCkExQ0pMR25yazJhTVNUTk1zQ2xMTTBuK1N3cmVTUC9NMFNtTDJCdU9obk4xL1JpYTFnRXlkUEJkT1JBR2VKTEYyVnlTVTMraFk2VmcKVHh5SjQ3NWs1Uk1FWDNkRG9wUGY0TGs0L2xqQWs2bm1aQXJkL1loOWxQQWFreWo0S3AzVUY2T1I5cTU2cEE2ZUtpOXdMT0FPdFJQVApnUk04T3UrMm9MSjNiR0NQZG10WDFpbkdqR1RIcGkwTnlRS3RzN0ZUdTZ1cDJOZXhaK3luam0zcllsOHFqVDlHa2xkcnFBWFpHK2V3CjQ0QmhCZ0NOUUV6TmpVWEpNVUFhNUhpZXRZczUrOXZ0dWFnTEFXOTAxMGVUaVV5QUc5VE9naHMyQXhRcERGUTRYOU1hQ3JsOGpuRnAKYWwxR2w0YjZRRDNHK2Y0K2s5VEpNOWhGcVVpalVRVW9GaHFXc0RCaHc3Wlo1amlPRDRidExFa2xKbU5pT1hFOEh3YkYwVkNjTGJjegpzK1prTVIvQmM4M1pYSjU4U1lTTjU0RDlOV3pUbEJKQ0FsUmR3WjJDYS8vTTlYMFp2L2hJaWJlc1BiNXRBeDVTVDhZTms5RVdZMmx0ClJDWVowYjQ3UmtGZjVjay92aHJmR3hZVDRVemg4TTBUWlRFcmVHTXlpQmhQTnV1TEJ0L25zamhPUVBSb1lnVlBYalI0d2E0QTZYSi8KTnAzWUtRMVFsWjFPdnNXWnF0NWt0UWtQcGtOS0hiTDZDOWlDTkptc1creFRjVERRZGJmU1NiQzBtRStDTGJSZE9HMjhZSS9ROUx2ZwoxM2pTL3dJVUNiYS9pYlk3WUpvT1p4TVltZ2MyZlFtNTdkWFYxeFkwNkVVR0R4MzdHNWoyVUpxYTJ0UEJsRURUWHFzTGRDc1Jma0ZMCmNpZU9oN05QQU5Ba1UxMjNKWFRRZlRlY0RaV2RHRXBrc3hUUDVyMmx1QUhuWmpJMTlVdThEUmdBeXNnUU44UElaRmtMM3lDZ0pQQ2MKTUpITkN3eWxCSi9sZ1NyTUJYTkFJL2VDQmxrU0RRN0tWak52WXZGcUtQTW40NEgwVDF2cVQ4WXFtUUpyWHA4UFEyZHpSQ013OExQcQpFT3BEZWVieENpSWZQRFhnWHRPeHN4NE42V0JXSkNIOS9TVUt5bVlaZmMyek9aNk1naUE0SndKaU1EdmJWTk5zSjM5SjhoUWVtYy9jClgraVBobE9nVk1NRGhYK0FVdjBCWktmNlJ1enBRaG9NRjk5Qkl5YjJaZG5TYzlKMzZ6cDBwR2pQZ3laejBOZ0VvVnAvSWMwK2RUR0oKVkRCVGI1cUtZWG5qYWpHZkFsbnAvczRlZktNL2tRZlNZSGxYQ0tZdkozUExZNU8wYll0L1NSZkEwQnNDZkdpVzNjeTZBd0w1V1B2dQpTUU5sQ0ZZekRqeXJUOGJ6ODBuZlpFMXBEOC9CQ3hyTWs2ckRmdVU0TXZScTJ2QWxwWDlOZWxSdk9QOFc0VnBicHEwanl0eDgrdkg5ClJZRU5ReHBNM3Q4cHhjR282bzNZNWlpbTNONmNjUmlMRmZoaUpnRktLTU92T2cyWmdvRnNsR09HQTdiVWtZUVFZZkVjTFBVM200K28KZ1FJUkViZUcvNWc3ZVBpYTJ0NXdzcEM4TXgxOGc4ZWpNZkdncGdOaTRNb1pyUDZHMDFKUHA3TGF6R1VKUUJ1MWQzVlpHZFp4WVVFNwprK004bThlMk1wOGRNRGxjcXlHTXRhUkdRRDZSdFp4UFZOMUd5UFB1TFdXais2eUFIYVhTMWt5Z01QZ09hUFdEWU85M3NDb0RDU3E3Ckx3S0VZcXlzSS9QMGJWakROeklqelFYVXhHUmx1UUN6TlZ0YWROUUtPWG53YmFDY0dFaXo0Y2ZZSkl0WVRFUEVIVDNWWSt3R0VUV2MKdkE5SEVrRTdjYVlJS2lLZWdHOVpsbU41MWlPWmd2em8zZ0xvT0dEcDUxRGhkNWtMYktudmtUMlkxS1BwL1k2dDVRRUZiRFNZQ0dRUgp0NDROMzhHVytqbVIvMGNsZDB5cnFlcDRkS01GMU9zSDVVcDhhcHUvVEs0cjUxWXphSHhwc0R6Yi9lVSt4MWwvT3VyL3hrc2xwVTEvCmJGZjI3RzNtdzVGdXgrRG5COVpwSkU2OThhQzJjeGs3MnJDa01Rd1NjSk83c05VTXhqZ1NVUzVxcnNocGd6RkkzZ0VrUDRjNWRPcEkKS0ZiQWJzbEF4RU9YaFZVV3VlekhIbTM2OG1UcTBXUUs1T3R3L0Q3eGFDYWI0azY5T29XKzI1NG96MXpXMGFwUkdOc0xRZU81YVVwZQpiVTE3RElFYVpBeURvTEUrRElLMnBtRTRjZEg3ZUU0TlJ1NGlUMmt6bGQ4bll6ZDVCNXZORnIyWnpaMWpHZG9NVFBRdmFlU3lpak9nCmVVSmQxYlhKV1BvUWpkTXBUQ05vY2dEOWRlWk9OYkFkMkc3RzdyQkdESVFtNmo1SjUvV2ZVYk5QY1NESmtndVdZQ05wRHEyak1SaWIKdmpDTzBLeXRzazV5L3A4cFpUa2s0R2luVGtFcjJhN0tJenZKcWVXSGc5THYxRTdkQlEwUHB4TjlHZTBVdDZsN1M3Q3R1WFlKWGJYSQpVMnVXNkU0Tko5TytpMVJCRFdZdUs0NGFEQlo0UWdZTlpvc3BJcSsvUDRkelNXTklNb3ZXQnNsZEpaRUg4c3g3UDBHdDNoZmp2Z3RGCktXMVV5MW1qS285TkJMMGpqc2VhYTlOdzRpMjE4aklqK3Q4bTFTcDJTN1dwNEwzVUMxWW00aHhvMU0reDl2MVY4emtlL0l2MU1PUysKZ2VablVnK2RsZ2UwZ2FhWTJaZmgxRVp6WmZTL2YzKzVLQkZHdzhuOFU3TUg5L1NEUHRCTHNLUTFEMEpyZTluREtoZ09qT2J3SDJuVQpsT1IzcVcvM3RDdzVzOGVpM1Z1NzFPUno4bmRqT0xEeGxlb2thQU5wck9TVkxubG84c0h4eFBEZ0JJZGo1S0dCQ3FQa1Nza21wd3diCkxKMjRPV0tzNXkzUVl3MFBXa3AyOXRYYklIaFg2cm5KalM1VnNzWWhyZEpFOFlxa2xjeTdZTmtzL1JnY3VMYmptUTFBRTBwamdtT2UKVGNVKzhkU1pZSzNaZHB2N2lrNFg2S1RRSFlwT1JHdllQYU9SRzBPaWRrQzdBdmJiaDRjWk5mc2FUb0YxTW5iaEFOaE1sbUQrdVFUbgpRT1lSZ1M5cForcW1ZWGpOU3JTNnhLeHNkanJwd1lRMEU1TlpUOTNocWxTZ3U3R2l1aHRiWm5jall5T2txMlVIcG5IQURrSFpHOUJMCm5TMlRxNVhxWVJzSHNsOGV0U09oTHBFemZtNW1MbEVndXJPSldVd1lCMnhtQitRWUxLdytZTTU0Z0JLenpHZHkraFBBQmYzaHNyb0YKbmxSdnFyWVp3ZVlmNzh2OCtMQWs4Y0NQMm9VUnl6RGdJZGlaSkkrWG44QVZVVkt0VGVxTzV1UlZzSGtzaXdOb2NBPT0NCgldXT4NCgk8IVtDREFUQVsNCglCOFh4UVBVVHUzbUdsWmRRYWl2TTdJWXZvZUFPKzB2V25wVEY4TnVWOHBaM1gzdkxzc1hJS0xTbXJrR29Ta29iaEtROUM2VGg3K1pmCm9Md3F0U3NuSnptaEtrSG1obEFUUmVFdG16aTg2NlhwZE9JaWxUajhuSFB3RTh2dlh4YzQvY0cxL2drOTJPTU9iK2JsNm52KytLdXgKM1RvUXErOTBwNmcvWlJNSHJjeG5LTTQxRGtLcGRMUVZpSVFTeGEvOVVQenlNUjlLZmc3Qm83ZDNLcFJZRk5xaDVNVkROWlNpTDFnNgpmZENKb2U2RlVDVit6Yy9ZMlFVWVhQV0xQN3g2SzNMbEhKZkxQR2ErSC9kVGIvVko5cDZqQjhaVHV0R1ZLb0dJTEJjUGVxWGs5UEwwCjZDdy9LK1lhKy9kVWZmTEkzOVhrNTBlNitsanYzTlFQU2dkOVpyZVVIZFBwSytrMlVleThzUFJwczFXaEcyOUNtbjBMTmE2WVpQVHoKRGp1UVFJUmdLTEo4R0ZxVTN5NFdGNlZHcG45VjJCa1BkNCtGK2NVUkdNTmQreWc5cCt1Rmw2dnFKUC9XVHBYQXU2ZmY5R0NuVTlVNwpuWUoxVVJiaW9NTXJHQzFQWnBmS0ozVWh6bWV5ekZlSGRQcmhLMnR2QXRFdlA0dFBQTVdkNXhhSjRuRm94NWdHbFo3bGp0bEY1NjJIClZ2OTRwUFp0Z04yYlBjZ3Y4ZW9GbmViYnlwSVlVd1B2Smg3NUxiYXdDMTVqeG5DMFY2Wk9YMjR6VlZ1bnFCZTFXK0dhKzVKeG5iN0oKTHovelcweW5sVjZtSmFaWXgwNW51WHNtRU1ITnRjSG5JNlV2NTA3M3QzWm0wZkJrNnRTcHZIaWp3ckZldVBWc2RCcUlHTjNTZGZwdwpIOU5wWmp1YzIzdlBPM2ZLZDU3cCtrMzUybkdtVy9WcElSQ0pYQTB2V2s1enBZKzNKK2ZZVHFPbjUvd0ZEcjIzOG5PZlBZV2R4bEduCllDNW1CRy9kY3hGaEhnVXY4cE9sVlMyRWkycW56V2pVUmtyOFRmWjRoRG9GZk5XcldUdDlBVno1Y3RkckdkMWFPaTEwaGR2QlI5cXgKMDlmVXpTVzIwMno2dlIwMU9vWDhZbHJWVUZ5ZUZSSXo1MDZiMlZmKzRmTTg2ZFRwTEZyc01KaE9oYzlBSkI0dFM4Zk9jK1U3SGJxZQpweThkTzkycWYyVERyVy8yeXFsVHV2N3lVamM2QmV0aVhkWEkxL2lpZ3V0VXBJK1RiM2ZPblI3VHBhZ1V5M2FjT2dYck10OU9IcXJkCmRsSXhHOU1jWHZJSHowcW50ZWV2dXFYVHgzMzZQSnRpWUtlN1M1MDJwSW5HcVZrZ3greHpQWDk2RkRHZFpyYXpYNFA2SzY3VEtuMngKKzVKMzZqUVFtVzJkL0JTT2ZzbVhMZFN0dmRQMlhwVERkbm9tdFRrYTArbFRpbTUzNDF1b1UxVW1tK2Q2MXBBdW54N2pNY2RPNzZMagpEMnluN2MvcnQ1NVRwM0FYNDUrTzZidXo2YjR6Z3MrNXlHMzlhUC9BdWRQcDZSYTIwN3Z1OGRZY2RScUlPTXoxaXI0L1BLczZkM3BSCnJIVmZyMTllSER0OXVmbzZjZW9VeUdUWTdhK09NS2hqRVB5Y28xOW1vNVJ6cDVlL3B0OVgrUnpuMkduM0pEVkduY0w5WlhtdWNxU2QKQ0dFNjdkelN0ZUgzcVdPbnVjdlVWdWpvSlZVRG5SWitqRTVCTDBncUxiclpyanJYSGhlM01VMzg4VnpjUloyeTBXS3NZWjNwT2YyMgpXeWpCVHBOTE8wMzMxODhPYzlxOUNVUkF0d2Z5MGdZMzJUbFFPNTBmSm13ekRZR05QcTUwV3U0d0oxWkJtSlJudDhVUTdKUXlPZ1c5CnFGTHBKS1hOdFRLM2RacllhMnhsbEU0UG1iT1VUUlFtcC96bEcrcVVDeGNxWjlaT3c3SXM5c2FnRjlBdGJaK3JYSkltR3YyZWh1enkKVi9oVktLdWRGcTRwRzNxM0p0TGJqYks5U1dJM1k5TXVoTWJ0enV1a1lIdHVQTzFjTTk5M3VLZWZRUCtMTExCUEFiL3NscW83bU9kZwpEWFlTRlZXWmtuNUpXZHZUVEk3cGF1T2VmZVhzVDhlZld3OHFWem85enpaUENzL1l0M1BzYnVzTi8vUlRmSTNhbmhvWXkyeVgySjNIClB2YnQ4OFQ0a01VLzdWMjk3MkdmQmlKWFcvMWVBL004MTlocDdOL09sS2Z2MForODdlM2J4SER2bC9xVTJTclluL1pPMjJNTll3N1AKNzZvSlRjdDBlSG9mNmFWRCtLZlAxY0tCN2FrWlkyK1IxMndZKy9hdmVYUGF3RDc5dW1QTDE5aW5nY2ozVjczNGluc094bkM5SjJDZgpucko4OFFIN3REL3V0Yy94R05zSjdadzg3K0xlM3FtVkxub1M5dWtwZTdqRjRERldDckhoZUFIenR0Q2dhd2U3MnB3THNUM2IwOFROCjlleFFmVnFoOW0xUEE1R2J0K1BkRXU3NTUyNzRVRk9Iblo0ZVBoNWRtWi95eVpacThYSGg2MFFsdFZ1aEI5R25pcTRudjBWR3lEaFQKVGJONlYzQXh6ZGg1R0JxOWxWRHFOTjhCUnUrdkcvaUhnci9WUThscXF3TC8zQU5SbHcrajE2QzBURndvRWtidFQyeVZOYmtwYjdIUgpnMlpLM1EyWWlIbUhLRzV6VVdSREtzWU9NTTFNM0pTK3lJMmp3SXg4V0NCakIxbEo3L3U2TWIrZEhoNzA0a0MyYmRXZ3VaT3lDR3R6CnA0bDk5dU1hMDJsbWUvdDJPbm95Ny92bWJ2bk9JN1pUc0FYOVlyQ2QwdlgzeXphMjAwQUVicGw5NTdueW5ZRzVVNzRkTm5XYXV5eTMKVFowT2RuYTJqVTVuMjU5U1MrK1VnNVJzUVhEeEoveXR6L1Y0Wk9rMDNzRjJDdEI3d0dJN0Jhc1BiUWVqVzl0Y29lM3dpdW0wODRLZgo2Vlo5eGx2MmZXdTN5SGJBZGdwdGgwL25UdmRERkxaVHFJM1h6NlBZdVNLTkJOc3AxRWR1TEdzcTViWHUwU2QxR1lBdFZua2NmQk8wCmpMOHV2c2VlN1RMYlA2KzFoeXRiTzlWRFlta3BmS3AwcDhxTE1wajFjeWxoOGdBWmpQc1crNGJZYVpuOGFNWDZRbGFGeTA3N1NKWEoKeG92cDRYWWhhZndwVG1PREc5WFVoMUlKSXJVNGplOVBkWWd4QktLWWI0Ui9vVEVVODhkUFZTQzR4QnJzbVRNRWt5Smh3QUNLdFlqNgpKM2t4VVR0QUNyVFdnVEVhTUxXRHFkTEU0djlEUXErYy9wU3FFZjFQeTJwWnFLNnNLNzE1RmZaeWJCWndiNmVIMnBCdm0rRHJEdFJMCkY3c2FkaFNkWHhYSEpnUTJkMlN3TG1ZVW1qRlBud3FSQ1BvRFNmTGViQUk0RGVrcmY0SWRFdEtURjFGQXVoZEpObnBJbnhnZUc1dHIKRUNHZGZWbVV6MnhJWDBJNS9LTU9YYkhKcjZHOWI1OWhORVF3UC9USGMvM2FXNmlKNFNGeFhNRnRmWDY3MlBsQnhmZldmZjBDcENzNApjYUpRTjJTWlFabm1vZ0JqZHN1LzZsN0FTSWg5TDJYZ1hkVmhWcWFzNCtjZmI4NEJ1eGdKNW9GcTlMZ081K2k4RDVERmxoL3pweXNpCnl5cDY0amJSRTRpQThieldyRXZMcmJvYXRlY1QyWXhBYmNCZ1hTd28zRkdFanpQdVhtczZlakdqU2RhU3loOFZkNHJMMVlrck82bVEKVFhCN2NTVnlJVHBPcldQalNuMDEvRXlOTzd5N3VmQkM5UEhaamlJdFc1aWhWQk1rczVLYTFJNjYra3ZFWGdPOTNFMENFYWZWOGpVaAphQW8rbU1hZ2l6K3JoSG1MNzREaFBWU2RoVXNuT1dYRWNMUkJnQmdzV3RBdVZxV3hpRWwvVGhJSEd1M29sSXdjUXM0NFpweEF3Ym1RCkFiUHkzZTd5bGkvV3NWd1hpUGpqTzNIclllRzZrdHRNOHBaSndqOVBDZjJzUWZXT1dna0RTTVpZN2N4OVFkVS9ZRGtOSi9ZeWJZRDUKUVJtbzZtUEx3SzZ1OVVHWlJnYm1NajkySEZmeHVEZkRUZklJK21IbXQra2xMY3hsU1JMTFN6STRkdC9qQW5qaHMwVFRYN2taVmlGdwoxeGl0WG12UUhHZ3pUM1BYamNseGZSMndlQXd4MHJCcXNMYU5pVmg3R2h4YjVmVHl0Z1FJTjJEYWVGMEdOVDg4eGV5VlZ5MTFORzVEClV2ZDlaVkI0bFU1Zk9xTDFBMWErZGYzTU9yK3FVN2pwL0piMUcwZEkxODk2d3V1RXJPUG05OXJFb096SUVGaDd2Q25LQWh1S0RaUjIKOXJvS3NJNjdFZU1QWXg1Nm5UK01kZVdOWWN3cTBYeGpiR29tdExlc3ZHUzR6b3VPUWtqZHhmeG94dzAvcG1BTEk4ZktENThoQWdVYgo4Ymt6Vjg0UHR6YkdsZVdIbnpDcG9helNtSHFhNjRDZFErYnMzQmQybGtiVGdiNitOYkZUbk9uYk10NVVDR2c2aGJOcTJQQVdDaVFECmdlY3ZwQ1llZmlBZVVnRE1oV0FvVnQxeWhZRkFqSG14dmMwbVQyQjJ6WThHZEYwL09aRUtzc1djYkVQbFVOTndjcmNNaU96THJFZVoKM05uZzB3bWsrSnFyaDhUZWdlcldzT01PYUlJa1RnMlQ4TkRad3hKRm9BeEtVenpJN0dIOGtMYTk3SDFpQWZBeWp4QXduRXBqTFZjQgpjT0pIQURqT1Q3UDN3UXlqS3lKOUNlWExtb0o5ZjdGUkxVNlgvM1VDRHdUdlNlZUh2TmJZRmF6T21kckw3SmpjbjRHeHlRTVJRUDJmCjNNYVE1Y3pnZHQ4RkViSndMSTRsQm9WZkhGbWNDK2UvMGxZV1A3V3p1S09SdHV4ZFd2YVFBS3JkV3RlWGNHcHp5YUxWdDQ2SDJLajQKUHJYcTd4aEhnTEtMZVlnSzVpeTY5dFNnRGxPNHZ2QzBoOTNjRzRmTTZjSzZMZHRuRlNCeGNBQTYrR0hYbVpCQ3lhZEx1K29LZnAvdgpVM2d3M0hGQ2kzVVg4MFNNbDYvUEpnbzBlMzVKdDRUWXlSQmd4eVFLTEo0R3F5cDl0RUNxdE1WckRlaUF4Sm5vclVxZjJWUnBCMzRoCndGM2hPdUkrR3RzMmlIUVk1NDJRTzd6TlJyMHBnbUFiUElNWXMyNkVLMDB0N2o2MUFBSHJuaTF0ZjM3cEhGSHk5TXkrODYwMG9aQjEKeThQNitsd0Z3T0Z0UkZoUkFKajIvYk9scmM0Wk1kNjZMTUNOZGFQRFVUS1pMZ3NQcTZJb2ZzTTBLL0NiblJpV0xENUN2b01KQTlTRQpsQ0pNM2xIcnJCL2E5aVBJbFhlN2h6YnNaVVArVmpBdUhPdjVrTW1RYVVnUEtXeVVhbGtYdUc3dW14NEJ4U01vVmpPU3M1NGsrb0dECjQwQW5LTHFtNUFCbjNaTUtCQVhSaGhKdjZXL25jd1JtT1IvRWFoZEVKeFV3blNBWnMrcWJGUlRpNm43Q0FPeDlNcjlYQllXdXJyamQKMk8xS0NJeWxmSjd4WVZINVM5cEZxUFJlRjlNeHQ2dEVtMzNGbHlUYTdDdGhXRWxyYVJJVmdKaWpIM2RVQnJ5MXVZZmJ0U1dhNFlFSAp3RFltMFc1dEVtMGxUUW42cFgxSk5CenZnM1hiZ0VRRFVKQkU4Nll4YnpqZUVpMUFCR2Y5czFjRXgrVThLRm1PNmVjNGFVZk9zUzZZCmt3VnQwSmo1Nk5CWlMxRUR2YlFvUkdEeExQbkc0VzhPQjdDcnhGekJRM0FpSWFSclpvNW5yeFhBNTFmdWtwSDBjQUdDdWd1Um5POFQKYVBVVkkvckJDVlFnUW1ZMFB0eXRZMHZyNndMWHpSYld0SXBRZ0ZDV0ZYdUR4bnpBOFE2QnNFRnhpRlJCY0RBbXRjL1JhSUZIdUJOZQpWNVhjRHN6VGtSVWcxKy9CL0JMMjNSRDhsaUxnbkFEUmJpaHV0YkFoQXNRVzM4UDk1dlQ3ZTZlOTBJbkdTSGJEZTErbXRjV2phRjdWCjU1OFY5WHZicXFtOXJBM0hwdCt2dElzaE9INzBlOHd1aHVDc3JkOURLTmk5RUoyKytkb05uMy9jMk5CNUw3UmFyL2Jkc0x0OFVneC8KOHgwRWlOR1VnQVFpak1NeXdqQ3dzKy9Ld0xMQUw0a1psUmhkd014REQxamUxbTFrY3U1KzhLL3A0cjBLRDBUY1RTSzJJY2FJV056Ygp1QVFyU1dGMVhvY29OV2RYWEFYZzh5NU5SaEhlbmw0MEtFS0tjR1l1KzdaVW9WTFFzckJ0VEJVS1AyUmZSaHBiZmhnczhMR2pSd1NSCmE5Wng0VThCRUNxZG90U3d4TktiYlM3YUZnSWpQTDN4T0x1Qm9ManczdG41Smp3a0FHTlpJbjh5N216QXVwWmRFazFmQVlXMWtUdEwKMFZKWWlpQWFrb2tpTFBHV3ZtSlZqZjJzS0Z5TUhTMExkUVdVbkhkMjloRktqYSs3b2VUZGF5MlVLbkd2TUhPdTVpdUh6ajJERGtiYQpieUtIemoyRHpuWkx3TW81ZE80WmRJb0d1MzRPblhzR25UVmJjUFVjT3ZjTU9sdTI0TW81ZE80WmRJSElabkxvM0RQb2JObUNLK2ZRCnVXZlFBWDdaU0E2ZGV3WWQ0djBONU5BdHR6Tm4wQ21XeGZvNWRPN3gwRXZubFN2bTBOa0NrbTM3dGFNZnBncERUdXJ1WnE5VnI4UG4KQVNHcnhMU0xrUXpLZVVqdThWTkFNUXpZMVhOTXhsVGRIblRxeThWa09rbXMydlZmVHp6aGJOdW5LdHJ0TFJsREsrTEo1bUp5d0pPQgpKZjBlRXVmTXNsMEx3VHJFbVIzMFlnU3BZTkE3K2t1NjJ3dzlZZU93VFBiTExoa2Q3S1g4ejAvM0t0aVMzYXllSzFla3V3NHBiVHNaCldSbnBYcDRyZDM1eFQ1b2pTcG5UeUZXTEhNWVFiTTBlVjcyQzE2K1RuQWY4QllOZ1EwR1EyNWpFMDB2Z05xNnRHQXBpNWYxT2F0dVgKWjkwWng4dWhJSTZSa0Y3SmJyNURRWnh5RXBQVHRWMVZNRDh0N2FMeiswQU1QaFRFYm9ab2xJd3hSR3J1R1ZyZU5nPT0NCgldXT4NCgk8IVtDREFUQVsNCgl6ZFFhUmZER0xKL1o5TmdmTHpvbkVROWkzWlRENjgvc1hWck9Ib2NQb0F4RW5BK2djVW1tNHRhRlk5YWh1K01NNStrRnlISUpEQ0J3Cm5GbmNobkQxdjNKVG01c0V2SDI3c1hRWW9IUlpLZGx2SHBqV2VIRHNIbUhzTDQ5djRiVk4rc2pqNjdubnYyeGJuRmI0MUxRdEcrK1QKSnhjdUQrbHpHemVrSThPenJFUjNlSzJnUnd5OGp5aUN3YkhWZyttZ05oT3ZuMnpMaVhIU0xYMEE4N0l4VkZER2p1d0N6Q3RGeG5OYworcWtvQk9ZUlZlOWprcmFNbWZVdzVwa202Z2RqWGxjaHVJNUxpKzdRczJmS0Q1MlVOZFNwNFo0OVE2ckxndjFGOS9wNk16c21JOHdyCld3N2RST0VCNG12TFl3eHY3Q3NELzd4aGVWdUpHMjlzek5qN2FOaU1QWWU0QzkzWXc0THdFZy9PQUF3Sjg5SHd1aHpGV0dtL2lYS20KbkJIdlJlN1NwR1lZanZkaGlwc1g3M3ZoRTJ2Q09kaVZlSFI0cGNaaXoyU3NFZ1pNeUpQUExkNEFsMUQrd3N6UUlvMGNxK3JjaisyTAp6L1J4d2p1R2tqM1NqenpkTzdhTUtPZXpWL1psTnNmdTU3NzBzUlBFNzFoOXpCZkgvenB4NG5pYlBrYUdKei91SFp1aWJZNVBocGxqCjZjMlFnTTBvUlBtVjVJT3lEb2tsSFpMaVVYVExRUFBsa1hITnNPTTNoQ2ZQdkZlM1FWazlNdFN5UitiNzFOMGpzMHhqR0kvTTZUb2UKR1YzQ01HZmh6WGhrdUhBQkd2RGV2Z3NDajh6cEppS0lBSWpZQmxJR05ZL01PdmNwZ1RVbjlNZ0VJdTVwYUd0N1pHRCtHZS9saFNORApqRmR5VG9Bd1BRY202Vmxaems5SWlYNERsWjZIZW5nenA2M0s4cGxYSHFxbnNxemVSTUVkM2lhMjNXZnRTUXpUTTZ4THg4aUFJTE5hCndDWkRsRHBxZGVrNDc4aGdhb1hZMmxNejFGMkY5MWVoME1QYkNONjdaS05QR0RtTXo2dkRoeTRRVHdnRnpXTHZodktSVitjZHJlY1YKUFFnUnMwN3FxTmxLT25OMWdub20xOWtEOVpyMmMxUTBGL0FyNGVHRDYwYUh6NGZ6ZFYvZnl2bHdUbWRKTUlsdHMvbHdhOUlZWVQ2YwpkNTdGSnZMaDRFbmlja2JjQ2hHcXJ2bHc1Qm1wNitURExXVUxycGdKN2pRa3czaDBsWllieTRlem5PLzdUdFVnelljanVZZGsvWHc0CjY3cG9HWEdiem9lejlxSmx4SzE1ckFQejJOYlBySWZibTYvRElkUUx6bVVKZ1cwa0poSkptTHVKMVpCZU1YT013MkxiY21MbHBxaFcKbGdNa1ZzcEdSM0NTNjZyTmxlVndCbHlldURlY2pXUnk2YkVNVG5henI3dElFWHRBZnpMV0llWS80am42czdzVTd4ejlTWHJaTDRScwplT2R1UWVzM1VIbm1NcTF6Um12MUtFSmdtd3BON2t3TkpseFpHNGY0NXRmWHhpc2J1UTBZUVVtdGI3MGlPQjdzUTNKM1I4VVczK0IvCk5Jb0dXM0cvRXBoVXRkZEJNVGFPOXJ5SndzVXZIVTh1KzdCZzZ0bXlRVzNORnlNN2Y0TCtQMzhJeE1peDFhNFd4b0RxYm0wc0kxWGMKNnVFZEJzUVpxZmVieVVoOS90bEVSaXFFc29tTVZKZ3Z0b21NVkFobi9ZeFVDTVdla1lxN0J0bzdmK3ZlNmRKVVc1QlJRUE90RXJGaAp5b0VOSHdqOFdrVFJ0bXVud3RsMnNhNzhSMUxobk5abDg2bHdBVkxEZmExVXVDV00vWkZVT0crN2NoT3BjQUd2RzBzMmtncG5qb2hBCnlYRCtVK0VJRkVNbHQ3cmpwaHI2dXhHK3NoUWdZVDBaOFo5WGh6ZUxiQ2MyK3JwZ3ptd2dNS0tidWx4akFyVmJtZ0d3OWQyVEtzWTYKVzBSblNkNkhDeWlGamVSK3RXMzF2Qkt6UGZSbWJrYzQvamFIRHJLUm43RVg0aERIb0JyY0MydkdKWjFqU05RMVFBVXlpMWVmeDZNNwpzVnZkSGl4cTlYejQ2TFYrVTJ6V2p0THphS1YrYzVqdG9Fcm0xY2VhZkZScVpHNU9LMldxWDZtVTAyZXdDRUY3cW0xR2taSGRCNnY2Cm5LelpXQzU1Wi91aEozemx0dHgxb1dtbVZGdUdYV0t2ZjNWaGRqK2JPaFUrZHlQN29Ra3U3K3pCclZ6Y0lPMlNZWWZLYW1NNnpXekQKb3RvaXJ0TTMxd3k3NDFUZTFLbTlubGtoTWRNN3RTZTd3VkxUZWxWRFd3TFlWc3dsdzA1ZXZERVV0dFBFL3Q0M0xzTXVzNzM5azFrOApZelBzT2s5dWVXZmZiaGwyazVzYmJLZUJ5TTY1OURuQVpkaEpicm1FMXcvNFRtdVhUOGRHcDB2MStNSmpicStMNi9SNmlaUUF1NnJkCm8wOHFuUmNjVnQrNTVSNFJSUDc1bktBZHF2VWNieW90VmEvS2VjWkJGZFVZdDc0WTJiZFR0N3ZVamt6UnRvVFgvaWZHUzJIeXpaMEoKUWN3R1VSMHJva3ZjVFY0VHR6cFdQd1NESWhtU3czWHViakZYcTFXU2M5SitzYmMzckZ4SmJtbERiRVpEWHBYeVNQSGtIaUpKSEE5VApKYWc0WWxFd1hldStyVk5FemdiS0lFMU5oMW5wR0xSS1VHd0V6UzlBTkNpUFdnT2VRMUwyL2FyZllFcVhJVGw1amxmamwyUEpvd3lSCkxkaFY1WmNOWnRNNWpkQ2t3VzRvbTg1SjJ6YlhUTmxNTnAyVHd3dFZMZDlvTnAxbGFtb3VuZGZOay82ejZad0NRTFR6U21mNXRFbzIKblZNdUhhejd0dGxzdWxXOTF2Nnk2WndzTlNzbGJ5S2JUdHZaekxsME91OXZMSnZPNlp6R0ptRTJrRTNuWkRmRFhXeXoyWFM0czlmTgpadE01NWRJaFcyeWoyWFJPeWczeXcydzBtODVwZFhIMi91clpkUFpvYVpoTDUxRXZhWVZzT3Z0QnJlTHQyWFEybmRQNjJXODJYaitiCnpsZy9lL1RnSnJQcG5FQnArWldieTZielB1SGRSRGFkVXk3ZEJqRG1xUlA2d1JocE5oMFJ4dGJPcG5QS3BUUHRZaHZLcG5QS3BWdXEKbExkMk5wMFRBRXZPeUVheTZaeHk2Unh5UnRiTXBuUFNuYkhXNjhyWmRBWUE0L3dUWDFkMDFXdzZweFhDWkQrdGtVM25sRXZuYVZkaQowVUdjZm9NN2VWOHJtODQySWZ1ZDlyNnk2YXhEOGpJQW5UTlNyUWFndzRucnJ4TmZWemZocmFRVHJ6S1Z4TGxZUDF1K3RBdWllblZPCkJPbER1eUNzVjBkU044R3pYaDBwbnVZSlUrVWdSZWRmRFUvVnVhZGlZYnRSeDZXVTIxSWxXdjlEUXBWWnZFdlZrYVozWWtyUU9tWUsKZStDSm9PeXliVWlPRXViRU5aVEM1NUNnOTVOTXdtQXRva1BtZEdhemlMaHdmbXFQUHNMdit5NXVNTjlsN2h3eFppOTB0M3E4aEZybQp6bGVka1pYTDNKSDRMazdYTG5PSEtuOTVGYm9qVEtURFgzQkxISis4VnBrN0krYktwZEFkZVpvU3BzeWRhNlVKVEppQy96SjM4UFpzCnowSjM1dEY2bHJranZSZHVlclorVnVYaExST3g3aThyQnlDZWtXWVdCYnlWN3VuWjJuSDQ4STd1MjRQNCtvbDBycEdIWkxIV0tKRnUKamFRaUk0c3pRaHpUN0paZjZCekM0U3NyRFdZWWFtR0h2b0xJSEdxa0F1d1FKY0VRNWhNMTNyYWpsdWdPTlJjdjV1NVVKenZ2T1c1KwoyKzJYRlJQRVBNcHkrSWlHQXNDSVlwR0pvcUVBTUpLSWJ2ZjRjaVQ1TnBMNXVGS05TWFBFblFabjdaeGFCTVc4NVRsS1MwSTQrQ0FxClgzVVNOMVJvRXRWSjNHaGliWHM1YUFMOHRybGJBUUV3Ykw2Sk5iK1NKT01FakpaRW1KbmRSUW44dXR3UW90SnNTT0pVQ0xTL3hIZVgKTFhxWWk3Zm0zUUI2OXROR01sUHM5eDR2eTFmeUNvWUEyTGw3Vm9TUENvYmdVWlBna05pcmdwOVZmMTg1ODlGWElnTTJxaFBDV2Z0dwpGNVdCVy8rV0FBV09weElmSUlOalpVUHZRanhZeXdJeGlGY3FnNTlFaG9UQmhLWmU3amJFaGc0VjdsYktyL1JkNFE1UnNrdU51ODNrCkU4RW9BcmNhZDRSczZGSGhqanp6Y1oxOEltdWx2UFhaMExuQzNXcVY4dnphMHJoS2VYZzJYS1hDbmZjdFo1dW9jT2NTZFVPWVdIdFAKRU41RUlNZWVmOVpXYzh5NWJ4dExySDMrc1ZuVks5VjZCdmoyVnlVZG0vbDRzWUc4ZEFDRldqL21Dc0Voc2FFQ0JIRFdONStRVCtuQwpuZzJMVFdQeXlyeUI1ZkxjWWhUOTU3Y1hZc2tsTml6RUhET1RyWEY5Ukd6NDREK0p5ZTZGczJhRXZXS1ZTWDlKVExDQ1lTR0c5NTc2CmlyQ0JvQnk5T1dhTWtWNXREb0dSY0NYZWIybkYySmdnajVqQXJueFE3MU1pQllZUlhGM1pQWW5KWkZtUUpXYXVsTVJra21NMjFkRGgKdWtTVXY3V0tZdWhRajY5Q2JTak9EbW5FS0ZvR2R6TGlNOGUxNDM1aW85U3VKYzF4N2F4NE5aWGpQVmVkalpWNzdNMVE5TWFHS3VXbAozUTl3QWhaZ3VCelhwVEFNbHh4WHp6dUk0S0EyVU81UjlRREJaVGpQb3Y0Y1lrZzAxUTltdkRVT2JxcGZUS1djUHIydmJrdW43ZXBoCm9uMXpNSGxMWk1DbjQ2YVMyL2Z3WEIrdzBlSldWZGw0b0d2WDdEbldkekZMR3Q3bFljdmNxU1VmYnJaOTEybWFYVlhXT215RnlsUEgKS1I5T3lVdkNwK0hKaTdjQ2crMlVydE83dU15L3pIWTQyNHEvbUsxWGE4TFdzMXZ1MzVURGQzcTgvWGpyMUdrZ290UmhPK2xSSDdnNgpiSEdYMUxTbWdNK0htMFd6TzdJcDFwcXpaVG5HWTRkUEkweHFXdHkxNHB6b21Qa0hNS1lnK0d6ZldGVjdHbDZFdjZ5KzRmTGh1aTZkCkhvY3pGbjZ4RjdxNzNuN0VkSnByV0ZJcjdaMjJuRHBGVVRlSWZzL3VzQWltYTdYYnVuVlZ3L0JwVXYra3BtQXVkZy9TVHUyVWJFRkwKUzY1Q0UwQ2szM1lMSllKMmljSmtYbE5rc3BiamU5RGg3VkVMK25HTnc5WlpjVEdmOUkzT3BhS0JWVnNGU0JYaTF0T2dxcSt3U2ZjcQpaZ2Z1cVUxTEhoSmM5by9TaTQvUUt2eVFLdmk0TnYxdVc2TFVwdG1Lc2VSTE9zeVNROWRIYUpVTlQ4YSs3aDBKNllHbnRsZTBLWEZXCkdtbG9GWllFakt3MGp4aE5ZbnB5aXRKYUtiWUhaZDM1aWRKQ3ZqN3NvSnpqdFB3UHlYNld0RVoyb2t1VWxqOSttYmhrcWFxaldZcU4KdGQ4UUFnWmEzTFdLcTlwbWZNeG9YVTRJRGd3OXFyUzVPN2Y4MUg3cXBEeENZYkRtNzdLRTJZQjcrYlZtdTh0bUZmK1kvd3ZqSFAxagp0VTBjV2IvV0RNOHk3ZzRpc2l4QTBrdG85VnZOblJHemx0VmlvK1Fxb1ZGTUVqVGljTUFLYTlodDVCcm8rZ1p0WkxHK29qUFl3YzhQCkUrNWM5Q3hmamdDeHZ1em45M3Z6a05Xbnd2OHNCUkI4NVdTYnAzZWQ3TFlIL05FZ3lSMFJsbFJBTDcwTnY3cTJTSlhCTVVFdUUxa20KVTk0a1dwZHEyRGw0WS9IWmJXNDNveEpvNDVaQjRZUDFqYVZ6WHovVk93b3craFhlVUNxblE4MGIrNTJReEttQTNrV3ZUS0FVbjVJYgpNUGU2eG1UalFobXBFQmltc3ZFS2s3U2RWNjZITWM5Y0hqOFk4emk1OUljeHp4ckhQaVo1emo5ak1iYVVMb3cxWnYxWDFBdEUxc2tDCnhDbm5tQWpWRmJNQUxXTnd5UUhVdFBIVnNnQkpjd0NkL01ua1dZQVlFbGpLQVhTcndJNEQ0YitpbmowYXlsOFdJR2tPNEZLa2lxOHMKUUZKODJ2WktuMW1BamdUaWtBUG9iaU43WlFINnNKRlh5Z0k4VWthelBDdkhvbndXR3Z0alJmbmNLTmtqYTh0SFVUNlhteWcyV0pRUApaYVZ0cGd5blMxRSs4eW5Qbnl2S3Qxd2YrVThVNVNQMHdxMVpsTS9rN2ZtRFJmbTBYZXpQRnVWenZXL2NCVThaRjkwWmpjYjdicWdWCjZ2b1IzdzIxVmwwL1BkZk9zYXJmS25kRE9kWDFjM2VsNHJPZS9kWDF3MDB0dG42YzBpbGhOSVhIM1ZEa2RmM2NzKzQyY0RjVXF1dTMKaWZ6S2RYTWhyRG1KcTlmMXN5bnN0cXArUmhXekRUaDBzVlg5ZkdaeXJSaXQ2SmpKdFVKZFA4elUxS3ArNjlTdk5OZjFXOWx2NmF1dQpuM3RWUDVMcURDUjEvZHhKMHpOQ2xiQ3VIMEYrNVFicSttblljYzZZc1ZQeXFuWDkzS3Y2WWZReDMzWDlmR2VsYlNqZDNWelZ6OTNQClQxN1hiMDBhSTZ6clIxU1BiKzJjZC9lcWZuN3I4YTIyNVMzVjQxdWJBNTJxK3VGT3JQelc5WE1QYzNPdW0rQy9ycDk3ZW9wNm1vQk4KVDZFSjYvcTVCeFdvbFl6b2RldjZtVkc1WE5VUHR5Nm1reHFpdW43bVhwYXIrcm40WVZ3RHJ1MTEvVmJPU3R0WWVpZmNLemVXOStCUwoxYzhQNzd2VjlmTlhqMi9WdW41V0tQYnNpVlhyOFhra29oUFg0L05YMXc4SEplMXl4dWUvcnA5N1ZUL2xOcTMxNi9wNTJTK2JxZXRICm5wVzJNVFpjcXVwSElNZUk2dnF0ckkzN3F1dm5YdFZ2US9YNFBOaUh1QjdmV3V4anFzZTNWbDAvSFlyak5YOUxtU2tyMXZWenR4TGMKYjlRaHIrdm5ibEE3MzNEb3Y2NmY0NXoxcW41NDY5VmZYVDkzTlNkQW5JZnJYdGVQOU5hbTllcjZHZW1JVGxtNEt3PT0NCgldXT4NCgk8IVtDREFUQVsNCgkxZVB6N2MzQzFlUHpXOWZQR1lybWhsNGo1c3BTMTIvWm5XME9xREg1eHRlcTYrZWVERzg5VFZpOXJwKzdYMHV2eWJWbVhUOWIrcGpOCjFyTHVZcXZYOVhNMzIwM3JzbFpkUDNlejNjU1ZhOVgxczJHTU1CTFNiMTAvYjd0eUUzWDlTTEk0MTYvcjUxN1ZEL2F5aWJwK1JkZXEKZnNwdDgrdlg5WE1XQmRvaEM3cWZmd04xL2R4UGJCU01yVi9YVHgrWG8zTnlGUjNHcWE2ZisrRUMvbllnZjNYOU1QeXBWdlVqaXJjawpLelhva2hBTHZYQSs3MHBKTzJ3T2oyNmJ3OVd0cFY2U2kydjNjK2xHUmZRYi9nelRFbmh2OFYwNEppNWE2RW5CaWVIREtoNU16Y1U4CkZaVk43U3BtM2NYZXFJbUJHRHA5SldWMGpGNWFiTkh6bVN5enM4OFEyRlpPUTRtbnl6Q2RmdmpLS2sxZ1BsVW9mRkU4b2VqWU9KVHUKUDAxNVR2NDhyUmRITDNtZ3c5enV4bExmOFdqNXAwdzNQaTVMMnorTGNpYjBMQTQ0OE9udEtKemJXOVIyTHE1K1dzTFBWK2NwSzFCOApQM2RSZjZET0tEa2tuQi96YitYVzErM2hvSDJSdWYrOGtTNkZuN3VZOUI2K0w4WDU2cSt0bTliWlYyRzAveENJVEtURDJQaW5tLzJKCnlFZmp6R1hvL3ZJd0d1Wml4NW5JKzlQSlNYenh1ZjNFVDU2bEFscGFsTmxadkwxcDM0V294T3RSaVAzNHVVdnNjOUVqdWw0K0s5UDEKOS80cGZaelphY255V3o0bXozTDNKN1B0MTB3dkVKa0p2YWVtbmdwNGt6aElwKzRwN2p5L3BhVzkvVXJMcytjSkxEYVgzM2FXSVpicwowcjNIODI2KzFMK2VRaDVSUzBDaVdEaXBBdXNJUm5aTFIrZW5Uc2hDNkFEVG5lL0lNaGNPdWM3ME15WkdwZWIyM2VOTk1UeVcwL1VkCmx2OVlCQ0xibzBGb0FITkpUN1hrME5BaU9lVXZZYnpheFJqbEpJWks5WnViQ0IyV0J1QzM1c1Nxc0U5dDdBT20xcXlZVXVZVWY3S3kKVjVycVd3S3g1b1NKWWlaU1dWUWY2OUlES3A5WmVUbHVQV1F1SzRPdG8vUjgvL1FvUFJ2czFmUGJYODNhL1JIM0N0QTJMaDZQN2g2ZQpTNDFNcUlja3pOMlBCbFlwb0JsakVsOVptTXpZZVQzYU93L0phRmFsNzhuNXJIUjJmOTlOMU80ZUd2QVRtRzV6Uk1HazNhVGlXeXNLCkhSbFpUblI2SG9PeENOMjVaaU9uQlNxcXlPUzB3TVNRN3hqZ0pEc0dYN083S084WENKeVRLZmg2a0VSZndTNzJKSU92RlVwN3JaNnUKMTlpTEhBRGJvQlBWWkdSUmp6Vk9UcGhrOUxPTGhvbm1jaFkzUDhyUFJXMEdad256Zy9ORVgzK1FNajk0elVyNmc3VDV3YlR5WWVxRgpNVDA2THYvQS9JTExYZk52dDdHZUJ1Y3lhWDd3d1EvMEJ4U3FiOGcwd2tjMDNCTENUQ05WNStBREJ2WnlNUGxpR29jdCtNTzFHWGJ2Ckl3RnhlNTFVbXZURDJZSXF2WUFvaE9SVlp2cXBBd1kyU2NPc3BXK21mM2dDMFhiTnFHOWMzeUtnU21YSi9XMkk3d1RNTGtZYlU1aU4KcDNpby9kK1lFTVBHRDQvMllDOTc4TUM3VlI1Ukg3dWxadi85dkhwMkVtb2JCS2tmQ2xRTS83ekZldFZZb016R0cvWDlGU0U2d1FQYQplUHo2L0VDSFdCYm16YkIwL1BLWSt5aTFGK0ZoN1hIUXBPR3NHSU4rMlpmRjYxRmxLS1laT3QxNTVUVHl1dUZORTY4ZVpuVlN1VStwCjY4SldyeXR3RDd4UGE0Ui9EMkQzWG1CdHRudEdWWGlGZTdRYlRPQW5Udi9FS3dCcWU5OFo4UFV4cFh6dDl0SENQNmIxSEN2aGtkYmcKUEpxb0RZYkZEclh4UEhMbUI5V3ZjSzMvOVpPbjAxKy9CRzB1ajJweFRUb2V6dEhzcUIycEpmTnh3TmIwWGRpYU5mQVdVODlVbFFrWgpmMVRYbitxdEt3b3ZsTkVwdHhPL2draDlBWDg2OXpINGlkRS9zYWhkSUtLMnZQamc0YSs4dzNpdTYyOTNuVW8xa1l2WDY3V0x1NXk2CnA4Ni9CVnJxRlRLUVBpa3V2TC8vVnUvR254NmR0bS9OQTY5czRPcVdYd1o2WGFLbXFpQ2FyRlduaThvT0gyYWpoWjBKeTlmdXl6OTMKUUZydVZoTjVnZC9YNU9iMEVEeTRPSzB1eE9ZVmVIQndDT2FTRDdjR2xaZlQ3VWJ4Si94OWJyKzZRRjJ3MDI5VlpvSHhLb3d0YnAzRwpFWnRwVGU1K0lHRlRFTWNRV2M4eitEU05TRE1RZ2NUNURIN0l5a2hhb2d4bmxJcHNrWlp0SHNHR3hzNlB1dkRDVVFxbG1zTndkS0NQCkplOVVjU3cxcy91S3N2eCtXM2l5M2tTaHUzYmZYNCtlN2FzUEgwQUptM1lRclFsRnFtcmM5S0lLOEdJbEJVY1lZMTltUFdDL2xFZGIKNDdwVnJnSml5ZDQxS205ZnBRRXdRNmRsbFFPUEMzRzRPQmRJVVFQWXlURUs3b0FzellIVi9iaFNaQ2tTWVVDTUNxb0VCVjhERVNoRAowOVhUL1FrTjRGelJjQUJ4THJ6M1VkSmczN0x3TjRpN2hDMlZ2R0kyN01BT2FOTHE2QmkxWjJoMXRtb21TSytiWjBMeHk4ZDhLTkduCmp1Q2ZjaWpKMWkrVnIvSDl5MElvZWZkNkVrcWxvNjFRNG5wckJ6NXRoMUlscmdqL0RFTEppNGRHS0M3THlWQXk5QmFGaXVHZHlSTGYKVVJ5SFV2TWdBVGRqdFR4ejdibitvNnVRU05RZDFjUzMydGZSK0NmOWRuUVhiWFZLTjN1L1l0V1RwOHdwa0h5eHJhUDl3enFscXdzLwpxdWNLcVE3cHo4Z2thVFUvaUR1dERPczdNdWp2NGVkbzBwQTc5VzZ5c1YyNit0Zy9MOTFVK1hEMS9YcldVdld4V2VnbFdxVUhrWEZWCmxnOGV0NUU2d1ZiN1Y0ZXI5WHhkZmQrWmJoZTRTclVISnQ3dkFuN3huckEyM2JFTUlMWjV1eFVJcVFnZUVVZVZldzdVcXg0dXhwRDEKVXRyNUM1Slo5S3c2TGw4MWoxN3FWVUY0ODl2emM5NjlaNlBXczdsdlZWcjJ1N3RIZTgrZjNTclZlcE1yN3dmam5oUFNzU2puU25Lbwpxc2VPL3Nkb3JIamIzYTNackZKVldoNmordTJuMytybEdmV3VxWnc3Vjg1eHVjeDI0YngxVktoSncvSlhMSFpkYXpTSHpORlBLVjJxCm5ud1BaL1hxaUNtamN6SElpM3gxQ0RhdzFoeHlaWlRpRzZYdkZWZmFDZHVCQ0RtK0R3dlhpbUZUWE95RWZFMWM5U2VUVHQxdDRpNkUKcHRXczN6aWg2Uk0vM0N2dTZKWTQySXpwdFBpVHNvK0hWSXp1UnJmM1E4bWY2VGtVbytmUWpENEREMUl5Rko3dFFDU1VqQjhCV2J0YgpUb1pTdWRScktENGNBZUU2dm42R2I5T3crU0VjVk5oaTVaT1JnTTdxWU45ZmhkbDlFcC9HbFdyZmQ5TFIzZG5CU2IwN3Z3blYzakpYCm44VE12cktFMlp4c00vUXhVbFNUVHhjU0dxd2duMXVvdHdPRmRqOW1TMUVMdmhjWk8yZFZUMWFGMlYyNDZvdmJTSGt0RUZsYnJCTUkKZFNndC9lN2kvdmR3ZEl2bTVqY1VtOHF5eWk3bWY3cndackNWVU8xcnVvR0lkY0lPaEZhT3JxMm9nVjVjWjIxd2xvbXYxcVl4dTc2MgpobHlaSXN2SlhKUEx5U0ZXS1ZNMEMweTN6bVVwT2FXUFN2M3J5M3IxTUNHY2xwS1RRclQ2V0orL2xCcVp0OHVqOTV2cFhrMSs2VjBKCm85NXJHTmw1UjJsNUhpNi9YYkx0ZW41YktKb3R2cjNGUnpGWnBuajVqbzBlN2g3YmZHYmF2V0pwZEZVV2hSd3Ztbm40Qml6eHpQYXMKbGhnK2ZwWnU3dTdsUFNrdmY0SFpoejZ6UDQzV2VTQlNFOFVvVlhzY2JIMGl6SnZXSURKNXFVQU5nUVhHTEhOaW1UTnB6K0V3MENOKwpuZ01SdUFZQS9aWFhaekoxWW5hcDNtUG1vMU1rTFZHMzkyeVZvdmJ2Z1VSL1lZNzJUcjlhUGpwVmxRaXM5aFNJckswNEVtaFBsdXphClA3R1ZJVEVEWStGTStwTlBmSk5pRytvd3ErdU1tOVNVMXQ5RVVTYlhCdlFIZCswQnhTajZ0QlBjdDIrbm5nTXJTTmlWTFhIbzhtb2EKRWhiNXNOWmNlRFBlZ1J6endyeTkreWYvYzRhWktUNTNGWFR4NTZuR1pnY3RPOHFoR3doZGo3QVVkMkZ4RjM1a0N5L05penpZUERKSAo0TTkrR1d3VTI1Zm82LzUrYXI0UGRwRGpjN0R4dE0rUDB2UERzMUpEdUtYQWRuUFhCbC9wZW1GblVpMVV0d2NaK28vc0x5NENBT2lXCkJBTFh0N2xxRTdkQXUvQXBjRmZwT1JCWjZudGFxWlMvb3VQbktwV056bXhicS92RytwL2RYNVoyTm5QR0VEbXFmVXdYU0pocFdJMGkKK01QT0dPditBc1I2YXB6S2padzhBeXQydjNjV3JnSWRwbnA4ZlBBRjVBcjM0MnVsZmFsUTZDNENuL3VyZnhKSFVRU2Jjb05oZTRaegpXWWV4eWFoTnRjUkoyV3ZGNlpMSnNUVm9ERTAzRVBIRlhpc3lsNE1jSTExa0g4eEZUbU9JdlZaa3JrREV4bDd3WUs1amppbXpocVNpCkY1UFZGZ3RkZXBlaHhHUHNLSlFZOGZWUXNqczRoVitqb2VUbnJ4Zm93YnVFNXlaNzBMVjNGWWlFNG0vdk9YaWtVb010dVZEcU5OL1oKdE90UDgvTnZ6dHZ1cE54QWpHM1dUN0VoUC84S3hyclp6NyttcGJxaWpieWFuOEpwNG9xTlRLUlJybUhFcURyL0d1NVhrdTc5K21CWApvM2pvSDNQUXFEZHN4QURKNzN6a3NIN1BKb3FITkxhdUtmRUhmYkRlMXB2aUh3TXNGV3VzNWg4YlQrWDZ6U0gvZ0F5U2VuNXJrVFZzCkZTZExCY1hBKzdkVm9ySEtNUFFVSjkxa2dJVFJJd1VUKzhQTXZScmQ4U0RPVjdCWm1hZzByM3htWHlRUEg2emhpdnhKcUhGOXd2ZjkKMDgxT0cwWW9GTlJRVXI4cVJpQ1NPV3p0UHBkdWJuKzlFaWx5NkZPOUd3S2Y5cEtLZjBoM2dtS3BMWUFsOTFLOSt6WGFyWmRHNGk4Qwo3a2FmQUpSRWZSWTZlTkdDWGNVZnlwcnovcWNXWHROZy8rekMyMDk1L3N6Q28yV0hzUXAvZE9HMVNoTi9kdUdOS09nL3VmQXE3Ly9oCmhWZjE1RCs4OEdqWndmN3laeGZlY1gvWjVNS3JpdjM4TUtGbDJHRWlxUFI0ZmhqSGJTclZZWnBCM0xKQk1WUHphMS81WFJRNVlOelYKZVM3WXJRZ2pYdG9hVFkzMnVNUkJ1emJRRk9QK2pya3J0SlB1bjkwYk95bll4U28zUGQ0WUtQcDEreWV6dU5CQXZFWHNJQmE5NW85SgpCOTE1WkU5Tk0wQy9oUTQ2MzdwMWVvdDJNYVBTRDFyemp0a2R2Q05NNm5ZUTNNbVRBYUt0QUZDVGt3QkdVQ3ljRWtaZDcwYlorSGM1CkMxZi9Tb294eDY4Zk5LU0RPUG9WcnVDdSt0dlhWZ0xHNWdsNjVONWd5VUNDYzBZVmovVENQcnRIOTdzaUlndndnRUpSQkVKenNsenoKUnd2WVZTVDIzbmZMVXYxSDI4UDNScmVYY0poYjhFSEhXZ0FwWmw2WGg5QWtYVk9DN09WeTUwbm55czlZTDl4NlpzUXQvaGhHKzFNVwpVcUltR3NZV0lkaHBTRUVsUDN2YTBmZ0tsWHJLYjJzU0JvN0hUSDQ5ZHFJaDRZZ3pJU0d5SDNyVGtNQ25EUlRBMFh5WmJ2RkZaWE1VCkZGUm5iVk9GcVdjekVoWlBWem9TYktXbmtnWVNzQ2pnanE1ak1SVUY0dUdWYlVkR1Y0UWlhYUowR2pJdnlUSVM3Q2c0WkU1bkt1MlgKNDJjNkNob3YxTmF2VzdTL3FKU0FwUVBsWmpTRmlMTlhYeW9kc0F2R2pJTCsxUVdPRHFLYTcwSVpOL3R4N1V4S2JpRE10SWdCQUZmZgpEWVJTWG1pTk1hQ0NIN29Pc3dwSHdHRGY0d1RCR0JUZWR3UmhKc21WcHFIY1RLM3R5Q3ROQTBvZGluUU1Dci9ZUVhEaC9GZDZIYUt5ClVTWHl3L2dERVROVHBjYmQ3cnh0ay93WE1UTmRrb0d3QVRCVDVXb1NKcVlVb2xrZWd3ZEZtSHhLTVROZFlrR1l4MkJIcFVHVnR1VzAKV0h5SGhhK3hCbUxYamtxREx2MFR0bktuU3N3WFhUcE53NkJLSnp4b3ZPKzY2UmwwU1RlcTdaNWVTVzVzYlJjM2lJK3UzNVQxc1haZQo3RFFXSjZJeGwxbkZuU1NmUW1Pa2lJbmphTXlEU0UwMEZqZG9iRFdPajJNbG40WEczRUdZYU13dnV5bzBGamRvYk1WcDRHanMyVXBqCkxod2ZKOWlSUTlIcTg3VUtnSjI5V2dIc1duZmtWUVRYcmtHVjJERUVJdTZqY0pKOXZzWmczWkZYNGZoZEVxcUVZc3ZZa2UyQ2EzZlYKSFJrWlhOSXZDYXFmamFSQlkxcWVjZW8wL3dqUFF4N2hLVWdqbEx5S0o1SHhERFBtOWRUREJxWGxPcDlubGt6SytWRU9LWHg2eXVlcgpPWk9MRWNQZnp6QVI2d3pNb0NNb0tZUGxoeTVLMjB4cCtYQmFRcE9hN3RUUWM2TWFNWlQwQ1BQYllkWmtZMWN4T2Q2WnJTU2FrSnBoCkIwZExxUU5WWDB6ckJzdXpPVzJveU1mMGdiN1FnMWlzb0QwbzdCb1BtTnByWVY5N2NBUjZNUjZ4MGNQem92YW9UcGtlbU5JRGkrZTAKOGNDV3RZU3lqY3c5SHg4bFVHTWxrK3ZWM1BkeFBXV2dGU0R3VmdhL25hZlZmTEhqS3hwU2R3SXcrL2ZjbkxVa3pnPT0NCgldXT4NCgk8IVtDREFUQVsNCgk4eXFBWmlVQm15UlZzNjk1a3RKMWZuanpoMkt1Tjg4cDFBalZRUUpmV3pTVVB3ejRNNEJmSHhTd1FCNEFTMEpKK1F4VGNUVnp0M09DClZoTDBVbUgydE9USUs4cWNtN0FudmNiZks1K1orbFY1bE52T21XeHl4WHlNUGxXMHZEUHpMVW9BVGl2dERzVjZab0dIYzB1Yi9DdTMKQjRWSzZYWm43NjN5bVQyYmxtNUs0M3RJMkhtMi9MVDdxbEJxdlArZ1owM2V3THhYUFFmVXZKYTk4NlMrT0NLUVZCUXd2WHN0SmNNWgozbk1WVno2SlczY294UTJpdDcycmZDby9jZzNrSEFGRXMzK0NQZ1VpNmpMMlBnVEVHNnE3N091V2d1S0RBU3VVaTZJSEFIWXBwbndTCnc1VURkVFJmSXF1UHBnYzZ1RDNVSG56d2VucW5ZSnBManp1OHJUYzBqOXRqcXBvVzkzY0tIK1BvYlgyL3h2OWFjcGdjUDF5cjF4UXAKZjlSYmFIU1B5NzVCZDFEQ3pKL1NLQk1Uakx1MHEzeXFQWjhtbEUrbWNjOC9PUFNibG4xcEhrM204YnN4cXI1SFpqZEgrNGNQZk9ucwpnWWFIbGk4Q2tCdlhNU1ZUT016dERDTTdLS05SeVdhdVBVdGxzOGR0elNSTEU4YitZSktsOWViSlA1VmtDVy9SblBXKy9uQ1NwWjZOCjdqdkpjdkovaW9FY25XZURPUmI4U2JjV0kwbStrb2NmdzNFd0dkZ0xwRXNuREhNN0hrenFzaVRkU1AvTXE1UCs0bHNhejRPRllMclUKcnB5YzVJU3ExSjhNcEdCU0NTek82bFNjVW1XQktudk1kNEpZSElWS05uajFQWC84MWRodUhZalZkN3BUdEFjanhMbkdBVXJUQk1wSApvdmkxcjZRakpUK0huekRtZ0FvbEZvVTJURGlxaGxMMEJRc2RybzVYUHBtRTBtUG0rM0UvOVZhZlpPODVlcEN3eGhKQ05icDQwQ3NsCnA1ZW5SMmY1V1RIWDJMK242cE5IL3E0bVB6L1MxY2Q2NTZaK1VEcm9xMkwrU29KM3VMNnc5R216QmUrbkZ0THNXNmh4QmFubXp1RTIKbGJJUml1MG45NW52cGNzMXRuR0UwcDZQM205dkxsR2NQTXA5dG1jKzY2blZSb2pKUFpKaE1STUJtemErSzJtczhzL0RWNHJ0TmdaSgpsQldtYkQ4dnMwOUV6MG82THhCalcwam9Sclg3c2JhaktCaVhnZGRGOElvTkJLVEMwUVI4TFNTVTZ5S2lCNjBmeEp2SzE1ZVpwTndqCm9lZU5uMEhlKzlENXd6ek1KRDErTTEzdVlMNXNJVm1KNkJjNW5Ka3Zja2plTXJvMmRVYVpIM3djdkp1NDBIaVFDcDk4R3IxY3hsVW0KTzkvUzc2aTROTjlSY2Z4SzZSY1BYSnJ2cURpZUZtRE8vYVd1WEYzU3lqVVBqY3c1Qzc5cTRjdE03eldpdzc1T0tJMTZVd2I2N0s1VApPcGVFMFhreC9JMVNyNHZJVkNDY2F4cldGSktaZnVNS2ZXWFYyeU1lbnhoTlZhZ25nTWkrYUg5QkgrbU5JalhZZUthZ0krYUd3dDQrCllDWkkyOTBEUzJLenBSMDJBSWpwelVEVTRkRUdQRUJqVEhwN3RwKzQzWk16eFZ2K3NwUjlHY1RVMnlvZTJ5R1ZmanRQeHI3OFpwQVgKRzE4TXZ2U2JJcExtS3lRYUIxQ1Z2ZGVTMWRucTQ0a2lkbUVHbGFwQlYwZTNyUHBwOGZTcVJDVFg0bUpYL2NSK1FGRjhMNmpYUlR3ZQpRWWlQRkhKVnM5M1J1WEtCQ050ZHRCVElvSmUzK01PbmZsTUVhNzRwWW0vd1MzL0FtOVFIWXk1djk2RUt3ZVVjaUN0TjEzUHM2SC9zCjEzTndrY1dKdmptOXBCVSszMkZ2ZVhYSDMzc1MxRTlWVWRmVVhqZ1ZZOXpPM1hmSlBwNnJ5czFMdlRyYTZwZGFOOC9SV2k5MWhOUysKZlZRR1NkVU41dE9Nb2lwWlphVDFpcWtkMjRVNytuMDRQaTdjS2J4Y1RXSklicGJqSTdrSkJHcW1VYTdSMUkzVGhUdjZqVDdxOFdsVQoyWU0xZlRDdU1YWnpvazdqNFN1aDJWbXZNM2lDUTZXSFc4MGRSYitrWTlSTVUwMG94VStMMW9XZklHbXBLRGE2dEFTYitLK2lZanJxCldoQjQ1NDVXakMxNElSaXMyVUlocFJBS29VZkY5bks0Y3gzTnBVRTdySDVMa2JERmVmSEhFSzZLYUVVeUJFalZxVHBrWUl3cDEwVW8KQXJ4NGtxYUYzdG1oSVZVMXN6TTVyZENxOGxHOFlnd2pTbGtjUlJjNFB0alY1Z2RrS1Z4ZlJZTUUwMGdwWWhSSk5DQkIwNm9FVlhVawpDU2xTMERnNmJwbGdnNTBvdEFBRzA5RXV5UVZPWnJteWRLbW5jV1Flc3hhdlVPejJJNDl6d0sxS2FVcy9CN3hiT2toa1ozRnp1RXhvCkp6bXMyVUFrS3VIRG1uR3N4TWJ5SGM1MjRybTFWVHc4MWs0OEo3dTJFOC9aVnIxdUNpV0hTWjViUXRvRzR1R2hXZEpCREdPbXdnSEkKdDREMEEwUUN0ZWU5RkdSN0JtaTAxU1JjSWVVNlJ2UWJKRWdLL1liV3Bjc2g3VjB6ZXJwekMrYlhPeUpLR0NHTTZpR25lcVhYQVdzYwp0Y0dqclJmTWFXTmlUSHJhYUhZRW0wOGJPOGt4OXFpTjRLRE41b1hYanpUSVBXSUpmVlUvZDU5a3JxZWhBQjBBYXlpb1BBNWVOUlNnCkEyQXpFcUFSNVlHRTNiRHB0UEd3OGpNeG56WUNyblE2ZFE1RWJPZk8rTlBHTlE2R0ZCZHRtdURJMWUzVU9SNHpZUkVkRkZzSlNhVXgKVnhCeGR4RGVBSFpOeVI0cmdqQVRBNDRmQWhFM2pvZ24xeDFEeXNLVks0R2dDS2FCSm9HdUkzY0VrVjUzR3ZUYW9ReHh4aGRWQXJ0eQpDVVF5N3ArN3JRQjJiUUJRK3FVL0VPdExtR1FTQTRKME5aSXBKd0FJWXhhYU1JL0NEb0lpV0EzM3NJemt1a1NWcExFQTFMQnlieEFNCkFTcXhESTUwbUNTcmdjaHNHK3cxMnpvK3ExaTZTdThhN2NKamJxK3B0cXQvczlaMmRnSnhwakczV2FWWGtEbzJHa3M3a29nUE9rODcKRWdqMDloQnpmSHBWQWpGb0xFMnZPdzI4MUNHbHNUUzd6aGdRamFVNWIyNXI4QWNYbFlRQ1FpNEtuR1VNcklmVVVmY1hOMHl3QklGWQo3bU5JV1hia1ZWYURwUWdvSWhCeFd3MldSTGx4RWx3NkFIcmxIUmxkMGdqTTBhTVp1dHpWN0lNc3RvYjFtOFBDWTAwR1ppWXdqeThiCkZmSGo5QmRLaXowWHpFY2U4QnBZWkdOQjFYQXp0OVdpZFhHK3IzYUR0OVZxTnJMRGZiV0p6ZDFXcS9ndEhlK3JUV3p1dGxyWUMrYSsKMmczZVZnc2tQKzYrMmczZVZxdjZ4a2x2bDEzeHR0cUFHOFNOM1ZZTDVvSzdyM2FEdDlVcWw5STYzbGViMk54dHRaWkwwSWo5dTM1dgpxNFZ6d2R4WHU4SGJhZ01SOWI1YWVQRzhMY2hDa1JJSG5aakNTTm9COEs2R3hmWlViUUp2emxQbEZCOHo1SlIrRlRaS0pwd1hmMkJJCkNOenZHbkhFUmJEVURmb0svblFtbEhwR2NoUjZVWTlDS3NqZDBreWk0K3IwOEdGT0tjNjdZYktRUUJLYkMrL1ZUbzBxQ2dGVFVRYnUKOE83eXpEaVlWMC9uWTROYjFSRlF6TVpOZ1JlSzNDd2VKTFFobjZtaUlIbkxVSXJZMGs4cUF4R3owQytlMDdvdjBDYkNNdnBaNWE0KwpQK2pwZkM1cG5zQktVdmtOVmxjQ1gwK1VKdEE3K2t1N2xCWklMMGFSWGdac1E0VHBsUUwrVHpHd0Y0akFrOHB1YlR3d24xSUdJaEh3ClMxdWFMNmF3Z2RBdFN4L0Q4Ym40VzVJRFRGRDVod2Ivd0wvWmZKQmhjMEZXRU1BWEFmNTYzZ3ZFVU5zZ0V3K2Vqd04wc0FSVXhXNjYKSk0rcncvNThPQm1MOHU5Z0FmNzBjSEYrZTFJTkZvTEtDMTN3d2w0d0JvWkVkMEZyOENnT3owZTdZSmhkQ0FiOCsvQTMvQ0FGZGhkZwpKRlh3K1NwQVV4bU9aZGtzVFhOQ2x1ZXlZRlFVbjh2eFdTWkhaMmcrei9GWjhBdVh5K1Z6YkQ3SDhEekgwMkN3RkVPekFrT0R2M1FlCnZBOWZvcms4eXdpWlhJYk44Z0lDdzJkcElaZGpPWUhOOHd4cWs4K1pXZ25CQnpGQXE5Z0FnL3NOdnB5Q0Q3L0FUMzhIR1RwNEVYeDYKb1lNRE9QQldJSnVqdUF3bjVESThLMlJ6REJka2NpeVZ6ZWM1SnNQVEdWWUlmZ2Q0Z2NyeVBNM2tCSUhQNUFCOGV4TW1UM0UwbldWcApsdUZ6UEpjTGdwRlFuQ0RraFN6Tk1ZNE5XSTdLY2hsZW9KbTh3SUZlKzRHbE5ubUdZcGhNbnVjNEljK0JYcGVHa2VHcFRCWU1uY3VECjl1RDcwbFRzRFVBbkRFM2xjeHhFYm9iSk12bWxKZ3lYcFhnV0RJek5jQm5Zd0Q2S3BRWk9VMWxxWThlSGZSaDJqSHF1U2ovd0R0YXYKdXJ4ODJUeWd2SXcrNGh4WVA0R25BR0l6Yko3TDgyaUVTMjA0bmdKRDVXZ2hvNExQZzhYSTBRRFJUQjdRVmM2aGhjTzBsOXZ3T1lyTwpzeHlmWWZJTStDbTROQkltazZWeUFFY0FGUWczRGhPM3R3RG9wUUV1bUR5Zlkza3dOcmdtOWpZTXkxSjhoc3NCNUtQbjluSFluenNzCm9iWEZFajZXeHJDRVUrK1ZnV3U0ZXd0RVJta2FZRElaaWhGNEtBMnlPUjRzTnlRZ01BZ0JpQkdCaDF6SU1HQ1NnRTZCOEdDRW5KQUwKZ2pjeWVjQXZBTldnSTBCRTU0RHdPSXJtYVNoUmFNQk1iRERIVURrQjljWXd2SkFSWUJ2d0c4Y0FFZ1ZEQVJQaWcrQWRJUWVranBBRgpraWVMd0hnTTVod00zRmwyMnI3SHhHR2gwSkw2YzNIOE1aTGl3ZlR0ZUFnRFROcHplVGorQ0tMSDU4Ty9wUGFuT0pVS2hZWTRIb3drCitWTDhsaFFadXdUdlpQeVhPQm9PbkNIcEhZR1BrOFY0QUI3Yy9JWndHUVdhQUFSbE5wdkxNa0M2MEFBYndYUkxFa2RMNzVhVXNTYjkKOUZlWnlHTkpWbnJqbEhlNVlQcGtQRjlxZVRJZXpvZmk2SG9oRG1SeFBGK2pIOXJudTFhYytIM2IzRE9ydkV0akVLZzBiWW1ENFdLbQpkOFF5Rk5qakFOVUIzWTdMNTNISWIwakRqMCsvV0xIT2pQTXpPbCtOVlRwaWd1bnlaT0xRZURUcGYvMDluSzFEUE14YVUvZTFNR3JqClRBNUliU0hEZ0swSUtDaVpIT2JkKytGZy9xbHFQa3VNMnhSbDhYdm0vRlNkVUlxbXNrQVU1WE5nU3RwY3l1VlNIeWgzcmNsY2hGeHUKMHF1QTlrWUJTZ0VDUGM5a09Kb1Bab0JxeE5CQTltV0JJR05aQmdwRU9rc0IwUW9VQnFCR2dXMFVDanVCNDRBY0F6OHdmSjZGa2d6SQpMcFlHaEFlMmdCeE5BNlVDaUhWQWdYbXdUd0h3VEFZSlRTQ1lnWExGNTJtd1R3UEt6RElVTFFDNW53TkNFL1NOaEtibmVQN3ZrSW5DCi81T0ovMEdaeUFEczV4Z2h6d0w5TTVkbjJQOG5FLzlMWkNKSFUwQkU1SUFNWVlBODRiTC9GVEx4dkt6WXZjQUtSb1pwS2dWTTRxYjQKSWQzSTRoQ0lpTURIVFB4TENvcmpNWHhYbW9JbndROVptczBuc2hTY2ZVNytocitBVjdUbXdKNitxZ2YrZjNtZExaOD0NCgldXT4NCjwvaTpwZ2Y+DQo8L3N2Zz4NCg==' ) no-repeat;
+}
+
+.sharethis-wrap #category-result-wrapper, .sharethis-wrap #page-result-wrapper {
+ margin: 0 .15rem;
+ border: 1px solid #eeeeee;
+ max-height: 10rem;
+ overflow-y: auto;
+ overflow-x: hidden;
+ display: none;
+ position: absolute;
+ background: #ffffff;
+ max-width: 295px;
+ width: 100%;
+ z-index: 1;
+ box-shadow: 0 1px 10px -2px #979797;
+}
+
+.sharethis-wrap #category-result-wrapper li.ta-category-item, .sharethis-wrap #page-result-wrapper li.ta-page-item {
+ list-style: none;
+ cursor: pointer;
+ font-size: 14px;
+ padding: .5rem 1rem;
+ margin: 0;
+}
+
+.sharethis-wrap #category-result-wrapper li.ta-category-item:hover, .sharethis-wrap #page-result-wrapper li.ta-page-item:hover {
+ font-weight: bold;
+ background: rgb(241, 241, 241);
+}
+
+.sharethis-wrap li.omit-item {
+ background: #979797;
+ color: #ffffff;
+ width: auto;
+ display: inline;
+ padding: .45rem .45rem;
+ border-radius: 3px;
+ margin-left: .5rem;
+}
+
+.sharethis-wrap li.omit-item:first-of-type {
+ margin-left: 0;
+}
+
+.sharethis-wrap li.omit-item span.remove-omit {
+ margin-left: 0.5rem;
+ color: #979797;
+ background: #ffffff;
+ border-radius: 10px;
+ padding: .1rem .3rem;
+ font-size: 10px;
+ cursor: pointer;
+}
+
+.sharethis-wrap .current-page-omit, .sharethis-wrap .current-category-omit {
+ max-width: 21rem;
+}
+
+.sharethis-wrap .margin-input-fields {
+ display: none;
+ margin-left: 1rem;
+}
+
+.sharethis-wrap .margin-control-button {
+ background: #e2e2e2;
+ color: #979797;
+ border: none;
+ border-radius: 3px;
+ font-size: 10px;
+ padding: .3rem .5rem;
+ outline: none;
+}
+
+.sharethis-wrap .margin-control-button:hover {
+ background: #dadada;
+}
+
+.sharethis-wrap .margin-control-button span {
+ background: #979797;
+ border-radius: 2px;
+ padding: .15rem .2rem .1rem .15rem;
+ color: #e2e2e2;
+ font-size: 10px;
+ margin-left: .2rem;
+ font-family: arial, sans-serif;
+}
+
+.sharethis-wrap .margin-control-button.active-margin {
+ background: #4089c1;
+ color: #ffffff;
+ border: none;
+ border-radius: 3px;
+ font-size: 10px;
+ padding: .3rem .5rem;
+}
+
+.sharethis-wrap .margin-control-button.active-margin:hover {
+ background: #3d79ae;
+}
+
+.sharethis-wrap .margin-control-button.active-margin span {
+ background: #ffffff;
+ border-radius: 2px;
+ color: #4089c1;
+ font-size: 10px;
+ margin-left: .2rem;
+ padding: .15rem .2rem .1rem .15rem;
+ font-family: arial, sans-serif;
+}
+
+.sharethis-wrap .margin-control-button.active-margin + .margin-input-fields {
+ display: inline-block;
+}
+
+.sharethis-wrap .margin-input-fields input {
+ max-width: 4rem;
+}
+
+.sharethis-wrap .margin-input-fields span {
+ color: #cecece;
+ font-size: 25px;
+ margin: 0 .5rem;
+ font-weight: 300;
+}
+
+/*General & Connection Settings*/
+
+.sharethis-connection-wrap h4, .sharethis-general-wrap h4 {
+ font-size: 23px;
+ font-weight: normal;
+ text-align: center;
+ max-width: 75%;
+ line-height: 30px;
+ margin: 0 auto 3rem;
+}
+
+a.st-support, a.st-contact, .sharethis-general-wrap .random-form-table th a {
+ color: #1ca5d8;
+ text-decoration: none;
+}
+
+.sharethis-connection-wrap form .form-table, .sharethis-general-wrap form .form-table {
+ max-width: 28%;
+ float: left;
+ margin-top: 0;
+}
+
+.sharethis-connection-wrap form .form-table th {
+ min-width: 80px;
+}
+
+.sharethis-general-wrap .form-table th {
+ min-width: 17.5rem;
+}
+
+.sharethis-general-wrap .form-table th span, .sharethis-general-wrap .random-form-table th span {
+ padding-top: 1rem;
+ display: block;
+ color: #6f6f6f;
+ font-weight: 100;
+ font-size: 12px;
+}
+
+.sharethis-connection-wrap form p.submit {
+ width: auto;
+ display: inline-block;
+ margin-top: .9rem;
+}
+
+.sharethis-general-wrap form p.submit {
+ margin-top: 2.5rem;
+}
+
+.sharethis-general-wrap form p.submit input {
+ background: #f5f5f5;
+ border: 1px solid #cccccc;
+ border-radius: 4px;
+ color: #444444;
+ box-shadow: none;
+ text-shadow: none;
+}
+
+.sharethis-connection-wrap p {
+ font-size: .8rem;
+ max-width: 55%;
+ display: block;
+}
+
+.sharethis-general-wrap form, .sharethis-general-wrap .random-form-table {
+ border-top: solid 1px #d6d6d6;
+ margin: 2rem 0 0 1.5rem;
+ padding-top: .5rem;
+}
+
+.sharethis-general-wrap .random-form-table:first-of-type th {
+ text-align: left;
+ vertical-align: top;
+ padding-top: 1rem;
+ max-width: 275px;
+ min-width: 275px;
+ display: block;
+}
+
+.sharethis-general-wrap a.st-support, .sharethis-general-wrap .random-form-table th a {
+ font-size: 12px;
+}
+
+.sharethis-general-wrap #random-gif-container {
+ padding: 1rem 1rem 0;
+ max-width: 35rem;
+ text-align: left;
+}
+
+.sharethis-general-wrap #random-gif-container img {
+ width: 100%;
+}
+
+.sharethis-general-wrap .random-form-table {
+ width: 98%;
+}
+
+.sharethis-general-wrap .random-form-table th {
+ text-align: left;
+}
+
+.sharethis-general-wrap .st-error {
+ border-left: 4px solid #dc3232;
+ padding: 12px;
+ margin: 0 .1rem .5rem;
+ background-color: #fff;
+ -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
+ box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
+}
+
+.sharethis-connection-wrap #sharethis-loading {
+ display: none;
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ background: rgba( 255, 255, 255, 0.8);
+ text-align: center;
+ top: 0;
+ left: -18px;
+}
+
+.sharethis-connection-wrap #sharethis-loading img {
+ margin-top: 16%;
+}
+
+.sharethis-connection-wrap #sharethis-loading span {
+ display: block;
+ font-size: 14px;
+ color: #848484;
+}
+
+/* Setup style */
+
+.sharethis-connection-wrap .sharethis-setup-logo {
+ width: 14%;
+ margin: 1rem auto 0;
+}
+
+.st-loading-gif {
+ position: fixed;
+ top: 2rem;
+ left: 10rem;
+ background: #ffffff;
+ opacity: .9;
+ width: 90%;
+ height: 100%;
+ z-index: 99999;
+ text-align: center;
+ padding-top: 40vh;
+ display: none;
+}
+
+.sharethis-connection-wrap .sharethis-setup-logo img {
+ width: 100%;
+}
+
+.sharethis-connection-wrap .sharethis-setup-steps div, .sharethis-connection-wrap .sharethis-setup-steps span {
+ display: inline-block;
+}
+
+.sharethis-setup-steps {
+ text-align: center;
+ margin: 3rem 0;
+}
+
+#sharethis-step-one-wrap h1 {
+ text-align: center;
+ font-size: 60px;
+ font-weight: bold;
+ color: #2e7d33;
+ margin-bottom: 3rem;
+}
+
+.sharethis-setup-steps .step-spacer {
+ border-top: 1px solid black;
+ padding: 0 3.5rem .2rem;
+ margin: 0 .5rem;
+}
+
+.sharethis-setup-steps .step-spacer:last-of-type {
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+
+.sharethis-setup-steps .step-num {
+ background: #d8d8d8;
+ color: #ffffff;
+ border-radius: 25px;
+ font-size: 12px;
+ width: 25px;
+ height: 25px;
+ line-height: 25px;
+}
+
+.sharethis-setup-steps .step-num.current-step {
+ background: #91d400;
+}
+
+.sharethis-setup-steps .step-num.finished-step {
+ background: #2e7d32;
+}
+
+.sharethis-setup-steps .step-num.finished-step img {
+ width: 15px;
+ vertical-align: middle;
+}
+
+#sharethis-step-one-wrap .button-choices-wrap {
+ max-width: 55%;
+ margin: auto;
+}
+
+#sharethis-step-one-wrap .button-choices-wrap .sharethis-button-option {
+ width: 47%;
+ margin-right: .5rem;
+ display: inline-block;
+ background: #ffffff;
+ box-shadow: 0 5px 30px 6px #cdcdcd;
+}
+
+#sharethis-step-one-wrap .button-choices-wrap .sharethis-button-option span {
+ padding: 1rem;
+ display: inline-block;
+ line-height: 25px;
+}
+
+#sharethis-step-one-wrap .button-choices-wrap .sharethis-button-option a {
+ display: inline-block;
+ padding: 0 1rem 1rem;
+ color: #ffaa41;
+ text-decoration: none;
+ font-weight: 500;
+}
+
+#sharethis-step-one-wrap .button-choices-wrap .sharethis-button-option img {
+ width: 100%;
+}
+
+#sharethis-step-one-wrap .sharethis-login-message {
+ margin-top: 3rem;
+ text-align: center;
+}
+
+a {
+ color: #3a843e;
+}
+
+/* Step two */
+
+#sharethis-step-two-wrap .st-preview-message {
+ margin: 2rem auto;
+ text-align: center;
+}
+
+#sharethis-step-two-wrap .button-configuration-wrap {
+ padding: 1rem 1rem 2rem;
+ background: #fff;
+ max-width: 71%;
+ margin: auto auto 3rem;
+ text-align: center;
+ box-shadow: 0 0 40px 12px #cdcdcd;
+}
+
+a.st-rc-back {
+ background: #ffffff;
+ box-shadow: 0 3px 0 0 #a6a6a6;
+ border-radius: 4px;
+ border: 1px solid #ddd;
+ color: #565656;
+ cursor: pointer;
+ margin: auto;
+ display: flex;
+ font-size: 14px;
+ font-weight: 300;
+ height: 40px;
+ letter-spacing: 0.1em;
+ line-height: 40px;
+ opacity: 1;
+ padding: 0 20px;
+ text-align: center;
+ text-transform: uppercase;
+ text-decoration: none;
+ transition: opacity 0.2s ease-out;
+ position: absolute;
+ left: .5rem;
+ top: .5rem;
+}
+
+a.st-rc-back:hover {
+ background: #eeeeee;
+}
+
+a.st-rc-back:active {
+ background: #eeeeee;
+ box-shadow: none;
+}
+
+#sharethis-step-two-wrap a.st-rc-link, #sharethis-step-three-wrap a.st-rc-link {
+ background: #2e7d32;
+ box-shadow: 0 3px 0 0 #1b5e20;
+ border-radius: 4px;
+ border: none;
+ color: #fff;
+ cursor: pointer;
+ margin: auto;
+ display: flex;
+ font-size: 14px;
+ font-weight: 300;
+ height: 40px;
+ letter-spacing: 0.1em;
+ line-height: 40px;
+ opacity: 1;
+ padding: 0 20px;
+ position: relative;
+ width: 5rem;
+ text-align: center;
+ text-transform: uppercase;
+ text-decoration: none;
+ transition: opacity 0.2s ease-out;
+}
+
+#sharethis-step-three-wrap a.st-rc-link {
+ width: 12rem;
+}
+
+#sharethis-step-two-wrap a.st-rc-link:hover, #sharethis-step-three-wrap a.st-rc-link:hover {
+ background: #388e3c;
+}
+
+#sharethis-step-two-wrap a.st-rc-link:active, #sharethis-step-three-wrap a.st-rc-link:active {
+ background: #388e3c;
+ box-shadow: none;
+}
+
+#sharethis-step-two-wrap a.st-rc-link:first-of-type {
+ position: absolute;
+ right: .5rem;
+ top: .5rem;
+}
+
+#sharethis-step-two-wrap .button-configuration-wrap hr {
+ margin: 2.5rem 1rem;
+}
+
+#sharethis-step-two-wrap .button-configuration-wrap h3 {
+ margin-bottom: 1rem;
+}
+
+#sharethis-step-two-wrap .button-configuration-wrap .share-buttons {
+ margin: 1rem 1rem 0;
+}
+
+.share-buttons .share-button {
+ border-radius: 4px;
+ color: #fff;
+ cursor: pointer;
+ display: inline-block;
+ height: 48px;
+ margin-bottom: 8px;
+ margin-right: 8px;
+ position: relative;
+ text-align: center;
+ transition: all .3s;
+ top: 0;
+ width: 48px;
+}
+
+.share-buttons .share-button img {
+ box-sizing: border-box;
+ height: 48px;
+ padding: 12px;
+ width: 48px;
+}
+
+.button-configuration-wrap hr {
+ margin: 2rem 0 0;
+}
+
+.button-configuration-wrap .share-buttons .share-button[data-selected=false]:not(:hover) {
+ background: #ccc !important;
+}
+
+#sharethis-step-two-wrap .button-configuration-wrap .share-buttons .share-button>svg {
+ height: 20px;
+ vertical-align: top!important;
+ width: 20px;
+}
+
+.button-configuration-wrap .alignment-button[data-alignment=left] {
+ text-align: left;
+}
+
+.button-configuration-wrap .alignment-button[data-alignment=center] {
+ text-align: center;
+}
+
+.button-configuration-wrap .alignment-button[data-alignment=right] {
+ text-align: right;
+}
+
+.button-configuration-wrap .alignment-button[data-alignment=justified] .box {
+ width: 31%;
+}
+
+.button-configuration-wrap .alignment-button {
+ cursor: pointer;
+ border-radius: 5px;
+ overflow: hidden;
+ display: inline-block;
+ margin: 8px;
+}
+
+.button-configuration-wrap .alignment-button .top {
+ width: 190px;
+ height: 20px;
+ margin-bottom: 0;
+ padding: 5px 5px 0;
+ background: #bdbdbd;
+}
+
+.button-configuration-wrap .alignment-button[data-selected=true] .top {
+ background: #92d400;
+}
+
+.button-configuration-wrap .alignment-button .bottom {
+ background: #e0e0e0;
+ width: 180px;
+ height: 25px;
+ padding: 5px 10px 0;
+ margin-top: 0;
+ text-align: left
+}
+
+.button-configuration-wrap .alignment-button[data-selected=true] .bottom {
+ background: #c2ea6a;
+}
+
+.button-configuration-wrap .alignment-button .box {
+ border-radius: 10px;
+ display: inline-block;
+ height: 15px;
+ width: 15px;
+ background: #fff;
+}
+
+.button-configuration-wrap .button-sizes .item {
+ padding-top: 10px;
+}
+
+[type=radio].with-gap:checked+label:after, [type=radio].with-gap:checked+label:before, [type=radio]:checked+label:after {
+ border: 2px solid #92d400;
+}
+
+[type=radio]:not(:checked)+label:after, [type=radio]:not(:checked)+label:before {
+ border: 2px solid #5a5a5a;
+}
+
+[type=radio]:checked+label:before {
+ border: 2px solid transparent;
+}
+
+[type=radio].with-gap:checked+label:after, [type=radio]:checked+label:after {
+ background-color: #92d400;
+}
+
+[type=radio].with-gap:checked+label:after {
+ -webkit-transform: scale(.5);
+ transform: scale(.5);
+}
+
+[type=radio]:checked+label, [type=radio]:not(:checked)+label {
+ position: relative;
+ padding-left: 35px;
+ cursor: pointer;
+ display: inline-block;
+ height: 25px;
+ line-height: 27px;
+ transition: .28s ease;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+[type=radio]+label:after, [type=radio]+label:before {
+ content: "";
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin: 4px;
+ width: 16px;
+ height: 16px;
+ z-index: 0;
+ transition: .28s ease;
+}
+
+[type=radio]:checked, [type=radio]:not(:checked) {
+ position: absolute;
+ left: -9999px;
+ opacity: 0;
+}
+
+input[type=checkbox], input[type=radio] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+[type=radio].with-gap:checked+label:after, [type=radio].with-gap:checked+label:before, [type=radio]:checked+label:after, [type=radio]:checked+label:before, [type=radio]:not(:checked)+label:after, [type=radio]:not(:checked)+label:before {
+ border-radius: 50%;
+}
+
+.switch label input[type=checkbox]:checked+.lever {
+ background-color: #c2ea6a;
+}
+
+.switch label input[type=checkbox] {
+ opacity: 0;
+ width: 0;
+ height: 0;
+}
+
+[type=checkbox]:checked, [type=checkbox]:not(:checked) {
+ position: absolute;
+ left: -9999px;
+ opacity: 0;
+}
+
+input[type=checkbox], input[type=radio] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+.switch label .lever {
+ content: "";
+ display: inline-block;
+ position: relative;
+ width: 40px;
+ height: 15px;
+ background-color: #818181;
+ border-radius: 15px;
+ margin-right: 10px;
+ transition: background .3s ease;
+ vertical-align: middle;
+ margin: 0 16px;
+}
+
+.item .switch, #inline-share-buttons-config .item input[type=text] {
+ display: inline-block;
+ height: 25px;
+ padding: 0;
+ margin: 6px 0 0 10px;
+ width: 60px;
+ text-align: center;
+ vertical-align: top;
+}
+
+.switch label input[type=checkbox]:checked+.lever:after {
+ background-color: #92d400;
+ left: 24px;
+}
+
+.switch label .lever:after {
+ content: "";
+ position: absolute;
+ display: inline-block;
+ width: 21px;
+ height: 21px;
+ background-color: #f1f1f1;
+ border-radius: 21px;
+ box-shadow: 0 1px 3px 1px rgba(0,0,0,.4);
+ left: -5px;
+ top: -3px;
+ transition: left .3s ease,background .3s ease,box-shadow .1s ease;
+}
+
+.button-configuration-wrap .row {
+ margin: auto;
+}
+
+.item .switch, #inline-share-buttons-config .item input[type=text] {
+ display: inline-block;
+ padding: 0;
+ margin: 0;
+ width: 60px;
+ text-align: center;
+ vertical-align: top;
+}
+
+input:not([type]), input[type=date], input[type=datetime-local], input[type=datetime], input[type=email], .button-configuration-wrap input[type=number], input[type=password], input[type=search], input[type=tel], .button-configuration-wrap input[type=text], input[type=time], input[type=url], textarea.materialize-textarea {
+ background-color: transparent;
+ border: none;
+ border-bottom: 1px solid #9e9e9e;
+ border-radius: 0;
+ outline: none;
+ height: 2rem;
+ width: 20%;
+ margin: 0;
+ padding: 0;
+ box-shadow: none;
+ box-sizing: content-box;
+ transition: all .3s;
+}
+
+.row .button-config .item input[type=text] {
+ width: 17%;
+ margin-left: 1.8rem;
+}
+
+.row .button-config {
+ display: inline-block;
+ width: 33%;
+ vertical-align: top;
+}
+
+.row .button-config .item {
+ text-align: left;
+ margin: 1.5rem 0 0 7rem;
+}
+
+#sharethis-step-two-wrap .row .button-config .item {
+ margin: 1.5rem 0 0 5rem;
+}
+
+input[type=range] {
+ border: 1px solid #fff;
+}
+
+input[type=range] {
+ position: relative;
+ background-color: transparent;
+ border: none;
+ outline: none;
+ width: 100%;
+ margin: 15px 0;
+ padding: 0;
+}
+
+input[type=range]+.thumb {
+ position: absolute;
+ border: none;
+ height: 0;
+ width: 0;
+ border-radius: 50%;
+ background-color: #92d400;
+ top: 10px;
+ margin-left: -6px;
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+input[type=range], input[type=range]+.thumb {
+ cursor: pointer;
+}
+
+input[type=range] {
+ -webkit-appearance: none;
+}
+
+input[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ border: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background-color: #92d400;
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ margin: -5px 0 0;
+ transition: .3s;
+}
+
+input[type=range]:focus::-webkit-slider-runnable-track {
+ background: #ccc;
+}
+
+input[type=range] {
+ border: 1px solid #fff;
+}
+
+input[type=range]::-moz-range-track {
+ height: 3px;
+ background: #ddd;
+ border: none;
+}
+
+input[type=range]::-moz-range-thumb {
+ border: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #92d400;
+ margin-top: -5px;
+}
+
+input[type=range]:-moz-focusring {
+ outline: 1px solid #fff;
+ outline-offset: -1px;
+}
+
+input[type=range]:focus::-moz-range-track {
+ background: #ccc;
+}
+
+input[type=range]::-ms-track {
+ height: 3px;
+ background: transparent;
+ border-color: transparent;
+ border-width: 6px 0;
+ color: transparent;
+}
+
+input[type=range]::-ms-fill-lower {
+ background: #777;
+}
+
+input[type=range]::-ms-fill-upper {
+ background: #ddd;
+}
+
+input[type=range]::-ms-thumb {
+ border: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #92d400;
+}
+
+input[type=range]:focus::-ms-fill-lower {
+ background: #888;
+}
+
+input[type=range]:focus::-ms-fill-upper {
+ background: #ccc;
+}
+
+.range-field {
+ position: relative;
+}
+
+input[type=range] {
+ position: relative;
+ border: none;
+ outline: none;
+ width: 100%;
+ margin: 15px 0;
+ padding: 0;
+}
+
+input[type=range]:focus {
+ outline: none;
+}
+
+input[type=range]+.thumb {
+ position: absolute;
+ border: none;
+ height: 0;
+ width: 0;
+ border-radius: 50%;
+ background-color: #363E27;
+ top: 10px;
+ margin-left: -6px;
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+input[type=range]+.thumb .value {
+ display: none;
+ width: 30px;
+ text-align: center;
+ color: #1d1d1c;
+ font-size: 0;
+ -webkit-transform: rotate(45deg);
+}
+
+input[type=range]+.thumb.active {
+ border-radius: 50% 50% 50% 0;
+}
+
+input[type=range]+.thumb.active .value {
+ color: #ffffff;
+ margin-left: -1px;
+ margin-top: 8px;
+ font-size: 10px;
+}
+
+input[type=range] {
+ -webkit-appearance:none;
+}
+
+input[type=range]::-webkit-slider-runnable-track {
+ height: 3px;
+ background: #c2c0c2;
+ border: none;
+}
+
+.button-configuration-wrap .button-config-half {
+ width: 40%;
+ display: inline-block;
+}
+
+.button-configuration-wrap .button-config-half span {
+ color: #9e9e9e;
+}
+
+/* Step three */
+
+#sharethis-step-three-wrap .page-content[data-size=small] {
+ width: 450px;
+ padding: 1rem 1rem 2rem;
+ background: #fff;
+ margin: auto auto 3rem;
+ text-align: center;
+ box-shadow: 0 0 40px 12px #cdcdcd;
+}
+
+#sharethis-step-three-wrap .input>input, #sharethis-login-wrap .input>input {
+ background-color: transparent;
+ border: none;
+ border-bottom: 1px solid #9e9e9e;
+ border-radius: 0;
+ display: block;
+ font-family: Roboto,sans-serif;
+ font-weight: 300;
+ height: 40px;
+ line-height: 40px;
+ margin: 0;
+ outline: none;
+ padding: 0;
+ position: relative;
+ text-align: left;
+ width: 100%;
+ z-index: 2;
+}
+
+#sharethis-step-three-wrap .input>input:focus, #sharethis-login-wrap .input>input:focus {
+ outline: none;
+ box-shadow: none;
+}
+
+#sharethis-step-three-wrap .input>input:focus + label, #sharethis-login-wrap .input>input:focus + label {
+ color: #92d400;
+ font-size: 13px;
+ top: -4px;
+}
+
+#sharethis-step-three-wrap .input>input, #sharethis-step-three-wrap .input>label, #sharethis-login-wrap .input>input, #sharethis-login-wrap .input>label {
+ font-size: 16px;
+ transition: all .2s ease-in;
+ box-shadow: none;
+}
+
+#sharethis-step-three-wrap .input.has-text>label, #sharethis-login-wrap .input.has-text>label {
+ color: rgba(0,0,0,.87);
+ font-size: 13px;
+ top: -4px;
+}
+
+#sharethis-step-three-wrap [type=checkbox]:checked, [type=checkbox]:not(:checked) {
+ position: absolute;
+ left: -9999px;
+ opacity: 0;
+}
+
+#sharethis-step-three-wrap [type=checkbox]+label {
+ position: relative;
+ padding-left: 35px;
+ cursor: pointer;
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ font-size: 1rem;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -ms-user-select: none;
+}
+
+#sharethis-step-three-wrap [type=checkbox].filled-in:not(:checked)+label:before {
+ width: 0;
+ height: 0;
+ border: 3px solid transparent;
+ left: 6px;
+ top: 10px;
+ -webkit-transform: rotate(37deg);
+ transform: rotate(37deg);
+ -webkit-transform-origin: 20% 40%;
+ transform-origin: 100% 100%;
+}
+
+#sharethis-step-three-wrap [type=checkbox].filled-in+label:after, [type=checkbox].filled-in+label:before {
+ content: "";
+ left: 0;
+ position: absolute;
+ transition: border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;
+ z-index: 1;
+}
+
+#sharethis-step-three-wrap [type=checkbox]+label:before, [type=checkbox]:not(.filled-in)+label:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 18px;
+ height: 18px;
+ border: 2px solid #5a5a5a;
+ border-radius: 1px;
+ margin-top: 2px;
+ transition: .2s;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox {
+ width: 100%;
+ display: inline-block;
+ text-align: center;
+ margin: 1.5rem 0;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox a:visited, #sharethis-step-three-wrap .st-terms-checkbox a {
+ color: #2e7d32;
+ outline: 0;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox [type=checkbox].filled-in:not(:checked)+label:after {
+ height: 15px;
+ width: 15px;
+ background-color: transparent;
+ border: 2px solid #5a5a5a;
+ top: 0;
+ z-index: 0;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox [type=checkbox].filled-in+label:after, [type=checkbox].filled-in+label:before {
+ content: "";
+ left: 0;
+ position: absolute;
+ transition: border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;
+ z-index: 1;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox [type=checkbox].filled-in+label:after {
+ border-radius: 2px;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox [type=checkbox].filled-in:checked+label:before {
+ top: 0;
+ left: 1px;
+ width: 3px;
+ height: 9px;
+ border-top: 2px solid transparent;
+ border-left: 2px solid transparent;
+ border-right: 2px solid #fff;
+ border-bottom: 2px solid #fff;
+ -webkit-transform: rotate(37deg);
+ transform: rotate(37deg);
+ -webkit-transform-origin: 100% 100%;
+ transform-origin: 100% 100%;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox [type=checkbox].filled-in:checked+label:after {
+ top: 0;
+ width: 15px;
+ height: 15px;
+ border: 2px solid #92d400;
+ background-color: #92d400;
+ z-index: 0;
+}
+
+#sharethis-step-three-wrap .st-terms-checkbox [type=checkbox].filled-in+label:after, [type=checkbox].filled-in+label:before {
+ content: "";
+ left: 0;
+ position: absolute;
+ transition: border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;
+ z-index: 1;
+}
+
+/* Login */
+
+#sharethis-property-select-wrap {
+ display: none;
+}
+
+#sharethis-login-wrap .sharethis-login-form, #sharethis-property-select-wrap .sharethis-login-form {
+ max-width: 90%;
+ width: 380px;
+ padding: 1rem 1rem 2rem;
+ background: #fff;
+ max-width: 71%;
+ margin: auto auto 3rem;
+ text-align: center;
+ box-shadow: 0 0 40px 12px #cdcdcd;
+}
+
+#sharethis-login-wrap .login-account, #sharethis-property-select-wrap #connect-property, #sharethis-property-select-wrap #create-new-property {
+ background: #2e7d32;
+ box-shadow: 0 3px 0 0 #1b5e20;
+ border-radius: 4px;
+ border: none;
+ color: #fff;
+ cursor: pointer;
+ margin: auto;
+ display: flex;
+ font-size: 14px;
+ font-weight: 300;
+ height: 40px;
+ letter-spacing: 0.1em;
+ line-height: 40px;
+ opacity: 1;
+ padding: 0 20px;
+ position: relative;
+ width: 5rem;
+ text-align: center;
+ text-transform: uppercase;
+ text-decoration: none;
+ transition: opacity 0.2s ease-out;
+}
+
+#sharethis-login-wrap .login-account {
+ width: 3rem;
+}
+
+#sharethis-login-wrap p {
+ margin: 1rem auto 0;
+}
+
+#sharethis-property-select-wrap #sharethis-properties {
+ margin-bottom: 1rem;
+}
+
+#sharethis-property-select-wrap #connect-property {
+ margin-bottom: 1rem;
+}
+
+#sharethis-property-select-wrap #create-new-property {
+ width: 12rem;
+}
+
+#sharethis-login-wrap .login-account:hover, #sharethis-property-select-wrap #connect-property:hover, #sharethis-property-select-wrap #create-new-property:hover {
+ background: #388e3c;
+}
+
+#sharethis-login-wrap .login-account:active, #sharethis-property-select-wrap #connect-property:active, #sharethis-property-select-wrap #create-new-property:active {
+ background: #388e3c;
+ box-shadow: none;
+}
+
+.sharethis-inline-share-buttons,
+.sharethis-sticky-share-buttons {
+ position: relative;
+}
+
+.sharethis-prev-stick .sharethis-Inline-share-buttons, .sharethis-prev-stick.sharethis-inline-share-buttons, .sharethis-prev-stick .sharethis-inline-share-buttons {
+ position: fixed;
+ top: 2rem;
+ z-index: 99999;
+ background: #ffffff;
+ width: 87%;
+ padding: 1rem;
+ left: 10rem;
+ -webkit-box-shadow: 0 4px 11px 0 #cdcdcd;
+ -moz-box-shadow: 0 4px 11px 0 #cdcdcd;
+ box-shadow: 0 4px 11px 0 #cdcdcd;
+}
+
+.sharethis-Sticky-share-buttons, .sharethis-sticky-share-buttons .st-sticky-share-buttons.st-left {
+ z-index: 0!important;
+ margin-left: 10rem!important;
+}
+
+.sharethis-Sticky-share-buttons, .sharethis-sticky-share-buttons .st-sticky-share-buttons .st-btn {
+ transition: unset!important;
+ -webkit-transition: unset!important;
+}
+
+.button-configuration-wrap {
+ position: relative;
+ z-index: 10001;
+}
+
+div.st-design-message {
+ display: block;
+ color: #6f6f6f;
+ font-weight: 100;
+ font-size: 12px;
+ line-height: 1.5;
+ width: 280px;
+ text-align: left;
+ margin-bottom: 1rem;
+}
+
+
+/* Sharethis button config page */
+
+.platform-config-wrapper {
+ display: none;
+ text-align: center;
+}
+
+.platform-config-wrapper[data-enabled="Disabled"] > div,
+.platform-config-wrapper[data-enabled="Disabled"] + table
+{
+ opacity: .5;
+}
+
+.platform-config-wrapper.engage {
+ display: block;
+}
+
+.sharethis_page_sharethis-share-buttons .button-configuration-wrap {
+ text-align: center;
+ width: 90%;
+ margin: auto;
+}
+
+.sharethis_page_sharethis-share-buttons .button-configuration-wrap h3 {
+ font-weight: bold;
+ margin-bottom: 0;
+}
+
+.sharethis_page_sharethis-share-buttons .button-configuration-wrap span.config-desc {
+ font-size: 12px;
+}
+
+.sharethis_page_sharethis-share-buttons .button-configuration-wrap .share-buttons {
+ margin-top: .5rem;
+}
+
+.sharethis_page_sharethis-share-buttons .sharethis-sticky-share-buttons .st-sticky-share-buttons.st-left.stuck-buttons {
+ left: -1.3rem!important;
+}
+
+.button-config .item {
+ color: #9e9e9e;
+}
+
+.button-configuration-wrap .button-config-half h3 {
+ margin-bottom: 1rem;
+}
+
+/* Tool tip */
+
+.button-config .tooltip-icon {
+ font-size: 15px;
+ padding-left: 5px;
+}
+
+.button-config .tooltip-icon>svg {
+ background: #9e9e9e;
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,.16);
+ width: 10x;
+ border-radius: 10px;
+}
+
+.button-config .item.tooltip span.lbl {
+ color: #9e9e9e;
+ display: inline-block;
+ line-height: 25px;
+ padding: 0 0 8px;
+ text-align: left;
+ vertical-align: top;
+ position: relative;
+}
+
+.material-tooltip {
+ width:250px;
+ text-align:left;
+ font-size:12px
+}
+
+.tooltipped:hover + .material-tooltip {
+ display: block;
+}
+
+.material-tooltip, .st-tooltip {
+ background:#404040;
+ border-radius:4px;
+ position: absolute;
+ padding: .5rem;
+ color: #ffffff;
+ display: none;
+ left: 9rem;
+ top: .5rem;
+ z-index: 999999;
+}
+
+.sharethis_page_sharethis-share-buttons .material-tooltip, .sharethis_page_sharethis-share-buttons .st-tooltip {
+ left: 11rem;
+ padding: .5rem 1rem;
+}
+
+.st-tooltip {
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,.16);
+ color: #ffffff;
+ cursor:pointer;
+ font-size:11px;
+ min-height:70px;
+ padding:20px 23px 20px 24px;
+ position:fixed;
+ max-width:160px;
+ z-index:1;
+}
+
+#sharethis-form-color {
+ display: flex;
+ flex-wrap: wrap;
+ margin: auto;
+ width: 50%;
+}
+
+#sharethis-form-color .color {
+ box-shadow: 1px 1px 4px 1px #cdcdcd;
+ cursor: pointer;
+ margin: 5px;
+}
+
+#sharethis-form-color .color.selected {
+ box-shadow: 0px 0px 3px 5px #21a219;
+}
+
+#publisher-purpose .purpose-item {
+ margin-bottom: 25px;
+}
+
+#publisher-purpose .purpose-item div.title {
+ display: block;
+ text-align: left;
+ font-weight: bold;
+ width: 100%;
+}
+
+#publisher-purpose .purpose-item label {
+ display: inline-block;
+ width: 21%;
+}
+
+.gdpr-platform #publisher-purpose .purpose-item label:first-of-type {
+ width: 14%;
+}
+
+
+.gdpr-platform .vendor-table-body {
+ border: solid 1px #cdcdcd;
+ padding: 10px;
+ max-height: 600px;
+ overflow: scroll;
+}
+
+.gdpr-platform .vendor-table-cell {
+ padding: 20px 0;
+ border-bottom: solid 1px #cdcdcd;
+}
+
+.gdpr-platform .vendor-table-cell input[type="checkbox"] {
+ display: none;
+}
+
+.gdpr-platform .exclusion-item {
+ padding: 20px 0;
+ border-bottom: solid 1px #cdcdcd;
+}
+
+.gdpr-platform input[type=checkbox] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+.gdpr-platform .switch label input[type=checkbox]:checked + .lever,
+.gdpr-platform .switch label input[type=radio]:checked + .lever {
+ background: #09cd18;
+ border: 2px solid #09cd18;
+ box-shadow: none;
+}
+
+.gdpr-platform input[type="text"] {
+ line-height: 40px;
+ margin-bottom: 10px;
+ width: 300px;
+}
+
+.gdpr-platform select {
+ margin-bottom: 10px;
+ line-height: 40px;
+ width: 300px;
+}
+
+.gdpr-platform .switch label input[type=checkbox]:checked + .lever:before,
+.gdpr-platform .switch label input[type=radio]:checked + .lever:before {
+ content: "✓";
+ position: absolute;
+ top: 0;
+ left: 5px;
+ color: #fff;
+}
+
+.gdpr-platform .switch label {
+ font-size: 12px;
+ display: block;
+ margin-top: 10px;
+}
+
+.gdpr-platform .switch label .lever {
+ content: "";
+ display: inline-block;
+ position: relative;
+ width: 20px;
+ height: 18px;
+ background-color: #fff;
+ border: 1px solid #cdcdcd;
+ border-radius: 0;
+ margin-right: 10px;
+ transition: background .3s ease;
+ vertical-align: middle;
+ margin: 0 16px;
+}
+
+.gdpr-platform .switch label .lever:after {
+ border-radius: 0;
+ content: unset;
+ position: unset;
+}
+
+
+.gdpr-platform [type=radio].filled-in + label:before {
+ content: "";
+ left: 0;
+ position: absolute;
+ transition: border .25s, background-color .25s, width .2s .1s, height .2s .1s, top .2s .1s, left .2s .1s;
+ z-index: 1;
+}
+
+p.form-color {
+ float: left;
+ width: 100%;
+ padding-top: 15px;
+}
+
+#sharethis-form-color {
+ display: flex;
+ flex-wrap: wrap;
+ margin: auto;
+ width: 50%;
+}
+
+#sharethis-form-color .color {
+ box-shadow: 1px 1px 4px 1px #cdcdcd;
+ cursor: pointer;
+ margin: 5px;
+}
+
+#sharethis-form-color .color.selected {
+ box-shadow: 0px 0px 3px 5px #21a219;
+}
+
+.empty-choices {
+ display: flex;
+ justify-content: center;
+ opacity: 1;
+ transition: opacity .6s;
+}
+
+a.st-rc-link {
+ margin: 20px 0 0 10px;
+}
+
+.gdpr-platform a.st-rc-link {
+ background: #09CD18;
+ border-radius: 3px;
+ border: none;
+ color: #fff;
+ cursor: pointer;
+ margin: .8em auto .5em;
+ display: inline-block;
+ padding: 15px 60px;
+ letter-spacing: 0.1em;
+ text-align: center;
+ text-decoration: none;
+ transition: opacity 0.2s ease-out
+}
+
+.empty-choices a {
+ padding: 10px;
+ min-width: 250px;
+}
+
+.empty-choices a.st-rc-link {
+ margin: 20px 0 20px 10px;
+}
+
+#starter-questions {
+ flex-direction: column;
+ display: flex;
+ align-items: center;
+}
+
+.accor-wrap {
+ margin: 1rem 0 0;
+ display: inline-block;
+ width: 100%;
+}
+
+.accor-wrap .accor-tab {
+ background: #308cc1;
+ padding: .5rem;
+ border-radius: 5px;
+ color: #ffffff;
+}
+
+.accor-wrap .well {
+ display: inline-block;
+ width: 100%;
+}
+
+.accor-wrap .well h3 {
+ margin: 1rem 0;
+}
+
+.accor-wrap .well .col-md-12:first-of-type h3 {
+ margin-top: 0;
+}
+
+.accor-wrap .accor-content {
+ display: none;
+}
+
+.accor-wrap .accor-arrow {
+ border: 1px solid #ffffff;
+ padding: .2rem .4rem;
+ border-radius: 5px;
+ margin: 0 .3rem 0 1rem;
+ font-size: 12px;
+ cursor: pointer;
+ font-family: arial, sans-serif;
+ position: absolute;
+ left: 43px;
+}
+
+.manual-select,
+.ssb-select {
+ display: none;
+}
+
+.manual-select.engage,
+.ssb-select.engage {
+ display: block;
+}
+
+.network-select-type-wrap {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 3rem;
+}
+
+.network-select-type-wrap h2 {
+ width: 100%;
+}
+
+.network-select-type-wrap .network-type {
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ margin: 1rem;
+ padding: 1.75rem;
+ width: 42%;
+}
+
+.network-type.engage label:after {
+ background-color: #92d400;
+ border: 2px solid #92d400;
+ -webkit-transform: scale(.5);
+ transform: scale(.5);
+}
+
+.network-type.engage label:before {
+ border: 2px solid #92d400;
+}
+
+.item label {
+ font-size: 1rem;
+}
+
+.network-select-type-wrap .network-type.engage {
+ border-color: #21a219;
+}
+
+.network-select-type-wrap .network-type.engage .item label {
+ color: #21a219;
+}
+
+#social-service-count,
+#social-service-count-button {
+ width: 100%!important; // Override global select menu style.
+}
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/css/meta-box.css b/wp/wp-content/plugins/sharethis-share-buttons/css/meta-box.css
new file mode 100644
index 00000000..34d90a81
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/css/meta-box.css
@@ -0,0 +1,44 @@
+/* Meta boxes */
+
+#sharethis-meta-box .button-check-wrap {
+ display: block;
+ margin-bottom: .5rem;
+}
+
+#sharethis-meta-box .sharethis-shortcode {
+ background: #ffffff;
+ border: 1px solid #b4b9be;
+ width: 100%;
+ margin-right: 1rem;
+}
+
+#sharethis-meta-box .under-message {
+ font-style: italic;
+ color: #979797;
+}
+
+#sharethis-meta-box #sticky {
+ margin-bottom: 1rem;
+}
+
+/* Block styles */
+.inline-share-button-block img {
+ max-width: 37px;
+ margin-right: 10px;
+ display: inline-block;
+ vertical-align: middle;
+ background-color: #a4d94a;
+ padding: 10px;
+}
+
+.inline-share-button-block {
+ font-size: 20px;
+ font-family: sans-serif;
+ border-bottom: 2px solid #93d227;
+ border-top: 2px solid #93d227;
+ padding: 10px;
+ color: #93d227;
+ text-align: center;
+ max-width: 400px;
+ margin: auto;
+}
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/css/mu-style.css b/wp/wp-content/plugins/sharethis-share-buttons/css/mu-style.css
new file mode 100644
index 00000000..a6103052
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/css/mu-style.css
@@ -0,0 +1 @@
+/* Hide sticky buttons */
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/instance.php b/wp/wp-content/plugins/sharethis-share-buttons/instance.php
new file mode 100644
index 00000000..99c6de15
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/instance.php
@@ -0,0 +1,29 @@
+ {
+ enableButton.addEventListener( 'click', ( e ) => {
+ e.stopPropagation();
+ e.preventDefault();
+
+ self.updateButtons( enableButton.dataset.button, 'On' );
+ self.loadPreview( 'turnon', enableButton.dataset.button );
+ } );
+ } );
+ }
+
+ // Disable tool submit.
+ const disableButtons = document.querySelectorAll( '.disable-tool' );
+
+ if ( disableButtons ) {
+ disableButtons.forEach( disableButton => {
+ disableButton.addEventListener( 'click', ( e ) => {
+ e.stopPropagation();
+ e.preventDefault();
+
+ self.updateButtons( disableButton.dataset.button, 'Off' );
+ self.loadPreview( 'turnoff', disableButton.dataset.button );
+ } );
+ } );
+ }
+
+ // Tabs.
+ const buttonTabs = document.querySelectorAll( '.sharethis-wrap .tabs-wrap .button-tab' );
+ const firstTable = document.querySelector( 'table.form-table' );
+ const firstSubmit = document.querySelector( 'form .submit' );
+
+ if ( firstTable && firstSubmit ) {
+ firstTable.classList.add( 'engage' );
+ firstSubmit.classList.add( 'engage' );
+ }
+
+ if ( buttonTabs ) {
+ buttonTabs.forEach( buttonTab => {
+ buttonTab.addEventListener( 'click', () => {
+ const buttonType = buttonTab.className.replace( 'button-tab ', '').replace( ' engage', '');
+ const currentButton = document.querySelector( '.tabs-wrap .button-tab.engage' );
+ const currentContent = document.querySelector( '.platform-config-wrapper.engage' );
+ const currentTable = document.querySelector( 'table.form-table.engage' );
+ const formTables = document.querySelectorAll( 'table.form-table' );
+
+ let newTable = 'inline' === buttonType && formTables ? formTables[0] : formTables[1];
+ newTable = 'sticky' !== buttonType && 'inline' !== buttonType ? '' : newTable;
+
+ if ( currentButton && currentContent ) {
+ currentButton.classList.remove( 'engage' );
+ currentContent.classList.remove( 'engage' );
+ }
+
+ if ( currentTable ) {
+ currentTable.classList.remove( 'engage' );
+ }
+
+ buttonTab.classList.add( 'engage' );
+
+ const tabContent = document.querySelector( '.' + buttonType + '-platform' );
+
+ if ( tabContent ) {
+ tabContent.classList.add( 'engage' );
+ }
+
+ if ( newTable && '' !== newTable ) {
+ newTable.classList.add( 'engage' );
+ }
+
+ self.loadPreview( '', buttonType );
+ } );
+ } );
+ }
+
+ // Add click events to networkselect.
+ const networkTypes = document.querySelectorAll( '.network-type' );
+
+ if ( networkTypes ) {
+ networkTypes.forEach( networkType => {
+ const networkTypeInput = networkType.querySelector( '.item' );
+
+ if ( networkTypeInput ) {
+ networkTypeInput.addEventListener( 'click', ( e ) => {
+ const buttonTab = document.querySelector('.button-tab.engage');
+ const buttonType = buttonTab ? buttonTab.className.replace( 'button-tab ', '').replace( ' engage', '') : 'inline';
+ const selectedType = document.querySelector( '.' + buttonType + '-platform' + ' .network-type.engage' );
+ const manualSelects = document.querySelectorAll( '.' + buttonType + '-platform' + ' .manual-select' );
+ const ssbSelects = document.querySelectorAll( '.' + buttonType + '-platform' + ' .ssb-select' );
+
+ selectedType.classList.remove( 'engage' );
+ selectedType.querySelector( 'input' ).checked = false;
+ e.currentTarget.parentNode.classList.add( 'engage' );
+ e.currentTarget.parentNode.querySelector( 'input' ).checked = true;
+
+ if ( e.currentTarget.parentNode.classList.contains( 'manual-share' ) ) {
+ if ( manualSelects && ssbSelects ) {
+ manualSelects.forEach( manualSelect => {
+ manualSelect.classList.add( 'engage' );
+ } );
+
+ ssbSelects.forEach( ssbSelect => {
+ ssbSelect.classList.remove( 'engage' );
+ } );
+ }
+ } else if ( manualSelects && ssbSelects ) {
+ manualSelects.forEach( manualSelect => {
+ manualSelect.classList.remove( 'engage' );
+ } );
+ ssbSelects.forEach( ssbSelect => {
+ ssbSelect.classList.add( 'engage' );
+ } );
+ }
+
+ self.loadPreview( 'ssb', buttonType );
+ } );
+ }
+ } );
+ }
+
+ // Smart share buttons count change.
+ document.querySelector( '.inline-platform #social-service-count' ).addEventListener('change',() => {
+ self.loadPreview( '', 'inline' );
+ } );
+
+ document.querySelector( '.sticky-platform #social-service-count' ).addEventListener('change',() => {
+ self.loadPreview( '', 'sticky' );
+ } );
+
+ // Scroll to anchor in vendor list.
+ // Send user input to category search AFTER they stop typing.
+ $('body').on( 'keyup', '.vendor-search input', function( e ) {
+ clearTimeout( timer );
+
+ timer = setTimeout( function() {
+ self.scrollToAnchor($(this).val());
+ }.bind( this ), 500 );
+ } );
+
+ // Toggle button menus when arrows are clicked.
+ $( 'body' ).on( 'click', '.accor-wrap .accor-tab', function() {
+ var type = $( this ).find( 'span.accor-arrow' );
+
+ self.updateAccors( type.html(), type );
+ } );
+
+ // New color select.
+ this.$container.on('click', "#sharethis-form-color .color", function() {
+ $('#sharethis-form-color .color').removeClass('selected');
+ $(this).addClass('selected');
+ });
+
+ // clear or show choices.
+ this.$container.on('click', '#clear-choices', function(e) {
+ e.preventDefault();
+ e.stopPropagation();
+
+ $( '.purpose-item input' ).prop( 'checked', false );
+ });
+
+ // clear or show choices.
+ this.$container.on('click', '#see-st-choices', function(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ $('.purpose-item input[name="purposes[1]"]').prop('checked', true);
+ $('.purpose-item input[name="purposes[3]"][value="consent"]').prop('checked', true);
+ $('.purpose-item input[name="purposes[5]"][value="consent"]').prop('checked', true);
+ $('.purpose-item input[name="purposes[6]"][value="consent"]').prop('checked', true);
+ $('.purpose-item input[name="purposes[9]"][value="legitimate"]').prop('checked', true);
+ $('.purpose-item input[name="purposes[10]"][value="legitimate"]').prop('checked', true);
+ });
+
+ // Uncheck radio if click on selected box.
+ this.$container.on( 'click', '.gdpr-platform .lever', ( e ) => {
+ e.preventDefault();
+ e.stopPropagation();
+
+ const theInput = $( e.currentTarget ).siblings( 'input' );
+
+ if ( 'select-purpose' === theInput.attr( 'name' ) && !theInput.is( ':checked' ) ) {
+ if ( 'consent' === theInput.val() ) {
+ $( '.purpose-item input' ).prop( 'checked', false );
+ $( '.empty-choices' ).addClass( 'engage' );
+ } else {
+ $( '.purpose-item input[name="purposes[1]"]' ).prop( 'checked', true );
+ $( '.purpose-item input[name="purposes[3]"][value="consent"]' ).prop( 'checked', true );
+ $( '.purpose-item input[name="purposes[5]"][value="consent"]' ).prop( 'checked', true );
+ $( '.purpose-item input[name="purposes[6]"][value="consent"]' ).prop( 'checked', true );
+ $( '.purpose-item input[name="purposes[9]"][value="legitimate"]' ).prop( 'checked', true );
+ $( '.purpose-item input[name="purposes[10]"][value="legitimate"]' ).prop( 'checked', true );
+ }
+
+ theInput.prop( 'checked', true )
+
+ $( '.back-next' ).addClass( 'engage' );
+
+ return;
+ }
+
+ if ( theInput.is( ':checked' ) ) {
+ $( `input[name="${theInput.attr( 'name' )}"]` ).prop( 'checked', false )
+ } else {
+ theInput.prop( 'checked', true )
+ }
+ } );
+
+ // On off button events.
+ this.$container.on( 'click', '.share-on, .share-off', function() {
+
+ // Revert to default color.
+ $( this ).closest( 'div' ).find( 'div.label-text' ).css( 'color', '#8d8d8d' );
+
+ // Change the input selected color to white.
+ $( this ).find( '.label-text' ).css( 'color', '#ffffff' );
+ } );
+
+ // Copy text from read only input fields.
+ this.$container.on( 'click', '#copy-shortcode, #copy-template', function() {
+ self.copyText( $( this ).closest( 'div' ).find( 'input' ) );
+ } );
+
+ // Open close options and update platform and WP on off status.
+ this.$container.on( 'click', '.enable-buttons .share-on, .enable-buttons .share-off', function() {
+ var button = $( this ).closest( 'div' ).attr( 'id' ),
+ type = $( this ).find( 'div.label-text' ).html();
+
+ self.updateButtons( button, type, 'click' );
+ } );
+
+ // Toggle button menus when arrows are clicked.
+ this.$container.on( 'click', 'span.st-arrow', function() {
+ var button = $( this ).attr( 'id' ),
+ type = $( this ).html();
+
+ self.updateButtons( button, type, '' );
+ } );
+
+ // Click reset buttons.
+ this.$container.on( 'click', 'p.submit #reset', function() {
+ var type = $( this )
+ .closest( 'p.submit' )
+ .prev()
+ .find( '.enable-buttons' )
+ .attr( 'id' );
+
+ self.setDefaults( type );
+ } );
+
+ // Send user input to category search AFTER they stop typing.
+ this.$container.on( 'keyup', 'input#category-ta, input#page-ta', function( e ) {
+ var type = $( this ).siblings( '.search-st-icon' ).attr( 'id' ),
+ result = '#' + type + '-result-wrapper';
+
+ clearTimeout( timer );
+
+ timer = setTimeout( function() {
+ self.returnResults( $( this ).val(), type, result );
+ }.bind( this ), 500 );
+ } );
+
+ // Force search when search icon is clicked.
+ this.$container.on( 'click', '.search-st-icon', function() {
+ var type = $( this ).attr( 'id' ),
+ key = $( this ).siblings( 'input' ).val(),
+ result = '#' + type + '-result-wrapper';
+
+ self.returnResults( key, type, result );
+ } );
+
+ // Select an item to exclude. Add it to list.
+ this.$container.on( 'click', '.ta-page-item, .ta-category-item', function() {
+ var type = $( this )
+ .closest( '.list-wrapper' )
+ .find( 'span.search-st-icon' )
+ .attr( 'id' );
+
+ self.updateOmit( $( this ), type );
+ } );
+
+ // Remove excluded item from list.
+ this.$container.on( 'click', '.remove-omit', function() {
+ $( this ).closest( 'li.omit-item' ).remove();
+ } );
+
+ // Toggle margin control buttons.
+ this.$container.on( 'click', 'button.margin-control-button', function() {
+ var status = $( this ).hasClass( 'active-margin' );
+
+ self.activateMargin( this, status );
+ } );
+
+ // Color Picker.
+ var colorOptions = {
+ change: function( event, ui ){
+ var button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ if (true === event.target.classList.contains('custom-icon-color')) {
+ self.$iconColor = ui.color.toString();
+ } else {
+ self.$backgroundColor = ui.color.toString();
+ }
+
+ self.loadPreview( '', button );
+ },
+ clear: function( event, ui) {
+ var button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ if (true === event.target.classList.contains('custom-icon-color')) {
+ self.$iconColor = ui.color.toString();
+ } else {
+ self.$backgroundColor = ui.color.toString();
+ }
+
+ self.loadPreview( '', button );
+ }
+ };
+ var colorSOptions = {
+ change: function( event, ui ){
+ var button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ if (true === event.target.classList.contains('custom-st-icon-color')) {
+ self.$iconSColor = ui.color.toString();
+ } else {
+ self.$backgroundSColor = ui.color.toString();
+ }
+
+ self.loadPreview( '', button );
+ },
+ clear: function( event, ui) {
+ var button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ if (true === event.target.classList.contains('custom-st-icon-color')) {
+ self.$iconSColor = ui.color.toString();
+ } else {
+ self.$backgroundSColor = ui.color.toString();
+ }
+
+ self.loadPreview( '', button );
+ }
+ };
+ $( '#inline .custom-button-color' ).wpColorPicker(colorOptions );
+ $( '#inline .custom-icon-color' ).wpColorPicker(colorOptions );
+ $( '#sticky .custom-st-button-color' ).wpColorPicker(colorSOptions );
+ $( '#sticky .custom-st-icon-color' ).wpColorPicker(colorSOptions );
+
+ $( 'body' ).on( 'click', '.item #black, .item #gray, .item #social, .item #white, .item #custom, .item #cta, .item #counts, .item #none, .item #medium, .item #small, .item #large', function() {
+ var checked = $( this ).siblings( 'input' ).is( ':checked' ),
+ button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ $( '.sharethis-inline-share-buttons' ).removeClass( 'st-has-labels' );
+
+ if ( ! checked ) {
+ $( this ).closest( '.st-radio-config' ).find( '.item' ).each( function() {
+ $( this ).find( 'input' ).prop( 'checked', false );
+ } );
+
+ $( this ).siblings( 'input' ).prop( 'checked', true );
+ }
+
+ self.loadPreview( '', button );
+ } );
+
+ // All levers.
+ this.$container.on( 'click', '.item div.switch', function() {
+ var button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ self.loadPreview( '', button );
+ } );
+
+ // Minimum count.
+ this.$container.on( 'change', 'input.minimum-count, #radius-selector, .vertical-alignment, .mobile-breakpoint', function() {
+ var button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ self.loadPreview( '', button );
+ } );
+
+ // Languages.
+ this.$container.on( 'change', '#st-language-inline, #st-language-sticky', function() {
+ var id = $( this ).attr( 'id' ),
+ language = $( this ).find( 'option:selected' ).val();
+
+ if ( 'st-language-inline' === id ) {
+ $( '#st-language-sticky option[value="' + language + '"]' ).prop( 'selected', true );
+ } else {
+ $( '#st-language-inline option[value="' + language + '"]' ).prop( 'selected', true );
+ }
+
+ self.loadPreview( '', 'sticky' );
+ self.loadPreview( '', 'inline' );
+ } );
+
+ // Button alignment.
+ this.$container.on( 'click', '.button-alignment .alignment-button', function() {
+ var button = $( this ).closest( '.selected-button' ).attr( 'id' );
+
+ $( '.sharethis-inline-share-buttons' ).removeClass( 'st-justified' );
+ $( '.button-alignment .alignment-button[data-selected="true"]' )
+ .attr( 'data-selected', 'false' );
+ $( this ).attr( 'data-selected', 'true' );
+
+ self.loadPreview( '', button );
+ } );
+
+ // Select or deselect a network.
+ this.$container.on( 'click', '.share-buttons .share-button', function() {
+ var selection = $( this ).attr( 'data-selected' ),
+ button = $( this ).closest( '.selected-button' ).attr( 'id' ),
+ network = $( this ).attr( 'data-network' );
+
+ if ( 'true' === selection ) {
+ $( this ).attr( 'data-selected', 'false' );
+ $( '.' + button + '-platform .sharethis-selected-networks > div > div div[data-network="' + network + '"]' ).remove();
+ } else {
+ $( this ).attr( 'data-selected', 'true' );
+ $( '.' + button + '-platform .sharethis-selected-networks > div > div' ).append( '
' );
+ }
+
+ self.loadPreview( '', button );
+ } );
+
+ const form = document.querySelector( '.sharethis-wrap form' );
+
+ form.addEventListener('submit', function (event) {
+ const button = document.querySelector('.platform-config-wrapper.engage .selected-button').id;
+ const currentForm = document.querySelector( '.sharethis-wrap form' );
+ // Prevent the default form submission behavior
+ event.preventDefault();
+
+ // Create an empty object to store the form data
+ const formData = {};
+
+ // Iterate through the form fields
+ for (const field of currentForm.elements) {
+
+ // Check if the field has a name and is not a button
+ if (field.name && field.name.includes('sharethis') && field.name.includes( button ) && field.type !== 'submit') {
+ // Add the field's name and value to the formData object
+ if ( field.checked ) {
+ formData[field.name] = field.value;
+ }
+
+ if ( 'number' === field.type ) {
+ formData[field.name] = field.value;
+ }
+
+ if ( field.name.includes('page_off') || field.name.includes('category_off') ) {
+ formData[field.name] = field.value;
+ }
+ }
+ }
+
+ // Now, formData is an object containing the form data in key-value pairs
+ // Set option value for button.
+ wp.ajax.post( 'update_st_settings', {
+ formData: JSON.stringify(formData),
+ button: button,
+ nonce: self.data.nonce
+ } ).always( function(response) {
+ self.loadPreview( 'submit', 'inline' );
+ self.loadPreview( 'submit', 'sticky' );
+ self.loadPreview( 'submit', 'gdpr' );
+
+ window.location.reload();
+ } );
+
+ });
+ },
+
+ /**
+ * Show button configuration.
+ *
+ * @param button
+ * @param type
+ */
+ updateButtons: function( button, type ) {
+ const pTypes = [ 'show', 'On', '►', 'true' ];
+
+ // If not one of the show types then hide.
+ const turnOnOff = -1 !== $.inArray( type, pTypes ) ? 'On' : 'Off';
+
+ // Set option value for button.
+ wp.ajax.post( 'update_buttons', {
+ type: button.toLowerCase(),
+ onoff: turnOnOff,
+ nonce: this.data.nonce
+ } ).always( function() {
+ } );
+ },
+
+ /**
+ * Update buttons on platform
+ *
+ * @param button
+ * @param type
+ */
+ updatePlatform: function( button, type ) {
+ var status,
+ buttonConfig,
+ self = this,
+ button = button.toLowerCase();
+
+ // Set status variable to bool.
+ if ( 'On' === type ) {
+ status = true;
+ } else {
+ status = false;
+ }
+
+ // Default button config with enable.
+ if ( 'inline' === button ) {
+ buttonConfig = { "enabled": ( true === status ), "alignment" : "center", "font_size" : 12, "has_spacing" : true, "labels" : "cta", "min_count" : 10, "networks" : [ "facebook", "twitter", "pinterest", "email", "sms", "sharethis" ], "num_networks" : 6, "padding" : 10, "radius" : 4, "show_total" : true, "size" : 40, "size_label" : "medium", "spacing" : 8 }
+ } else {
+ buttonConfig = { "enabled": ( true === status ), "alignment" : "left", "labels" : "cta", "min_count" : 10, "mobile_breakpoint" : 1024, "networks" : [ "facebook", "twitter", "pinterest", "email", "sms", "sharethis" ], "num_networks" : 6, "padding" : 12, "radius" : 4, "show_mobile" : true, "show_toggle" : true, "show_total" : true, "size" : 48, "top" : 160 }
+ }
+ },
+
+ /**
+ * Copy text to clipboard
+ *
+ * @param copiedText
+ */
+ copyText: function( copiedText ) {
+ copiedText.select();
+ document.execCommand( 'copy' );
+ },
+
+ /**
+ * Add the reset buttons to share buttons menu
+ */
+ createReset: function() {
+ var button = '';
+
+ $( '.sharethis-wrap form .submit' ).append( button );
+ },
+
+ /**
+ * Set to default settings when reset is clicked.
+ *
+ * @param type
+ */
+ setDefaults: function( type ) {
+ wp.ajax.post( 'set_default_settings', {
+ type: type,
+ nonce: this.data.nonce
+ } ).always( function() {
+ if ( 'both' !== type ) {
+ location.href = location.pathname + '?page=sharethis-inline-sticky-share-buttons&reset=' + type;
+ } else {
+ location.reload();
+ }
+ } );
+ },
+
+ /**
+ * Send input value and return LIKE categories/pages.
+ *
+ * @param key
+ * @param type
+ * @param result
+ */
+ returnResults: function( key, type, result ) {
+ wp.ajax.post( 'return_omit', {
+ key: key,
+ type: type,
+ nonce: this.data.nonce
+ } ).always( function( results ) {
+ if ( '' !== results ) {
+ $( result ).show().html( results );
+ } else {
+ $( result ).hide();
+ }
+ }.bind( this ) );
+ },
+
+ /**
+ * Add / remove selected omit item to omit list.
+ *
+ * @param value
+ * @param type
+ */
+ updateOmit: function( value, type ) {
+ var result = '#' + type + '-current-omit',
+ wrapper = '#' + type + '-result-wrapper';
+
+ // Hide the results when item is selected and add it to list.
+ $( wrapper ).hide();
+ $( result ).append( '' + value.html() + 'X' );
+ },
+
+ /**
+ * Get current config data from user.
+ */
+ getConfig: function() {
+ var result = null,
+ callExtra = 'secret=' + this.data.secret;
+
+ if ( 'undefined' === this.data.secret || undefined === this.data.secret ) {
+ callExtra = 'token=' + this.data.token;
+ }
+
+ $.ajax( {
+ url: 'https://platform-api.sharethis.com/v1.0/property/?' + callExtra + '&id=' + this.data.propertyid,
+ method: 'GET',
+ async: false,
+ contentType: 'application/json; charset=utf-8',
+ success: function( results ) {
+ result = results;
+ },
+ error: function (results) {
+ result = {
+ inline: {
+ networks: [],
+ },
+ sticky: {
+ networks: [],
+ },
+ };
+ }
+ } );
+
+ return result;
+ },
+
+ /**
+ * Activate specified option margin controls and show/hide
+ *
+ * @param marginButton
+ * @param status
+ */
+ activateMargin: function( marginButton, status ) {
+ if ( ! status ) {
+ $( marginButton ).addClass( 'active-margin' ).find( 'span.margin-on-off' ).html( 'On' );
+ $( marginButton ).siblings( 'div.margin-input-fields' ).show().find( 'input' ).prop( 'disabled', false );
+ } else {
+ $( marginButton ).removeClass( 'active-margin' ).find( 'span.margin-on-off' ).html( 'Off' );
+ $( marginButton ).siblings( 'div.margin-input-fields' ).hide().find( 'input' ).prop( 'disabled', true );
+ }
+ },
+
+ /**
+ * Load preview buttons.
+ *
+ * @param type
+ * @param button
+ */
+ loadPreview: function( type, button ) {
+ if ( 'initial' === type ) {
+ this.setConfigFields( button, '', '' );
+ }
+
+ var bAlignment = $( '.button-alignment .alignment-button[data-selected="true"]' ).attr( 'data-alignment' ),
+ sAlignment = $( '.sticky-alignment' ).find( 'input' ).is( ':checked' ),
+ self = this,
+ bSize = $( '.button-size .item input:checked' ).siblings( 'label' ).html(),
+ bLabels = $( '#' + button + ' .button-labels .item input:checked' ).siblings( 'label' ).attr( 'id' ),
+ bCount = $( '#' + button + ' input.minimum-count' ).val(),
+ bColor = $('#' + button + ' .button-color .item input:checked')
+ .siblings('label')
+ .attr('id'),
+ customColor = this.$backgroundColor,
+ customSColor = this.$backgroundSColor,
+ customIconColor = this.$iconColor,
+ customSIconColor = this.$iconSColor,
+ showTotal = $( '#' + button + ' span.show-total-count' ).siblings( 'div.switch' ).find( 'input' ).is( ':checked' ),
+ extraSpacing = $( 'div.extra-spacing' ).find( 'input' ).is( ':checked' ),
+ showMobile = $( 'div.show-on-mobile' ).find( 'input' ).is( ':checked' ),
+ showDesktop = $( 'div.show-on-desktop' ).find( 'input' ).is( ':checked' ),
+ vertAlign = $( '.vertical-alignment' ).val() + 'px',
+ mobileBreak = $( '.mobile-breakpoint' ).val(),
+ spacing = 0,
+ bRadius = $( '#' + button + ' #radius-selector' ).val() + 'px',
+ language = $( '#st-language-' + button + ' option:selected' ).val(),
+ publisherPurpose = $('#publisher-purpose input:checked'),
+ publisherPurposes = [],
+ display = $('#sharethis-user-type option:selected').val(),
+ name = $('#sharethis-publisher-name').val(),
+ scope = 'publisher',
+ color = $( '#sharethis-form-color .color.selected' ).attr('data-value'),
+ languageGDPR = $( '#st-language' ).val(),
+ networks,
+ size,
+ padding,
+ fontSize,
+ config,
+ beforeConfig,
+ theFirst = false,
+ wpConfig,
+ upConfig,
+ theData,
+ enabled = false,
+ buttonCode = button.toLowerCase();
+
+ let smartShareCount = document.querySelector( '.' + buttonCode + '-platform #social-service-count' );
+ const smartShareButton = document.querySelector( '.' + buttonCode + '-platform .smart-share.engage.network-type' );
+ smartShareCount = smartShareCount ? smartShareCount.value : 6;
+
+ // Set button var.
+ button = 'inline' === buttonCode || 'sticky' === buttonCode ? buttonCode + '-share-buttons' : 'gdpr-compliance-tool-v2';
+
+ if ( 'initial' === type && undefined !== this.data.buttonConfig[ buttonCode ] ) {
+ networks = this.data.buttonConfig[ buttonCode ]['networks'];
+ } else {
+ networks = [];
+
+ $( '#' + buttonCode + '-8 > div .st-btn' ).each( function ( index ) {
+ networks[index] = $( this ).attr( 'data-network' );
+ } );
+ }
+
+ if ( 'sync-platform' === type && undefined !== this.$config[ button ] ) {
+ networks = this.$config[ button ]['networks'];
+ }
+
+ // If newly turned on use selected networks.
+ if ( 'ssb' === type || 'turnon' === type || undefined !== this.data.buttonConfig[ buttonCode ] && undefined === this.data.buttonConfig[ buttonCode ]['networks'] ) {
+ networks = [];
+
+ $( '.' + buttonCode + '-platform .share-buttons .share-button[data-selected="true"]' ).each( function ( index ) {
+ networks[index] = $( this ).attr( 'data-network' );
+ } );
+ }
+
+ if ( 'submit' === type ) {
+ networks = [];
+
+ $( '#' + buttonCode + '-8 > div .st-btn' ).each( function ( index ) {
+ networks[index] = $( this ).attr( 'data-network' );
+ } );
+ }
+
+ // If true alignment is right else its left.
+ if ( sAlignment ) {
+ sAlignment = 'right';
+ } else {
+ sAlignment = 'left';
+ }
+
+ if ( 'Small' === bSize ) {
+ size = 32;
+ fontSize = 11;
+ padding = 8;
+
+ $( '#radius-selector' ).attr( 'max', 16 );
+ }
+
+ if ( 'Medium' === bSize ) {
+ size = 40;
+ fontSize = 12;
+ padding = 10;
+
+ $( '#radius-selector' ).attr( 'max', 20 );
+ }
+
+ if ( 'Large' === bSize ) {
+ size = 48;
+ fontSize = 16;
+ padding = 12;
+
+ $( '#radius-selector' ).attr( 'max', 26 );
+ }
+
+ if ( extraSpacing ) {
+ spacing = 8;
+ }
+
+ // If submitted or turned on make sure enabled setting is set properly.
+ if ( undefined !== this.$config[ button ] && undefined !== this.$config[ button ]['enabled'] ) {
+ enabled = 'true' === this.$config[ button ]['enabled'] ||
+ true === this.$config[ button ]['enabled'] ||
+ true === this.$tempEnable[ buttonCode ];
+ } else {
+ enabled = false;
+ }
+
+ if ( 'inline' === buttonCode ) {
+ config = { alignment: bAlignment,
+ enabled: enabled,
+ color: bColor,
+ background_color: customColor,
+ text_color: customIconColor,
+ font_size: fontSize,
+ labels: bLabels,
+ min_count: bCount,
+ padding: padding,
+ radius: bRadius,
+ networks: networks,
+ show_total: showTotal,
+ show_mobile_buttons: true,
+ size: size,
+ spacing: spacing,
+ language: language,
+ };
+ }
+ if ( 'sticky' === buttonCode ) {
+ config = { alignment: sAlignment,
+ enabled: enabled,
+ labels: bLabels,
+ color: bColor,
+ background_color: customSColor,
+ text_color: customSIconColor,
+ min_count: bCount,
+ radius: bRadius,
+ networks: networks,
+ mobile_breakpoint: mobileBreak,
+ top: vertAlign,
+ show_mobile: showMobile,
+ show_total: showTotal,
+ show_desktop: showDesktop,
+ show_mobile_buttons: true,
+ language: language,
+ };
+ }
+
+ if ( !!smartShareButton ) {
+ config.is_ssb = true;
+ config.num_ssb_networks = smartShareCount;
+ }
+
+ if ('gdpr-compliance-tool-v2' === button) {
+ var publisherPurposes = [],
+ publisherRestrictions = {};
+
+ $('#publisher-purpose input:checked').each( function( index, value ) {
+ var theId = $(value).attr('data-id'),
+ legit = 'consent' !== $(value).val();
+
+ publisherPurposes.push({ 'id': theId, 'legitimate_interest' : legit });
+ });
+
+ $('.vendor-table-cell-wrapper label input:checked').each( function( index, value ) {
+ publisherRestrictions[$(value).attr('data-id')] = true;
+ });
+
+ config = {
+ enabled: enabled,
+ display: display,
+ publisher_name: name,
+ publisher_purposes: publisherPurposes,
+ publisher_restrictions: publisherRestrictions,
+ language: languageGDPR,
+ color: color,
+ scope: scope,
+ };
+ }
+
+ // Set config for initial post.
+ beforeConfig = config;
+
+ var types = ['submit', 'initial-platform', 'turnon', 'turnoff'];
+
+ if ( types.includes( type ) ) {
+
+ // If submitting WP keep platform timestamp if exists.
+ if ( 'submit' === type && undefined !== this.$config[ button ] && undefined !== this.$config[ button ]['updated_at'] ) {
+ config['updated_at'] = this.$config[ button ]['updated_at'];
+ }
+
+ // If platform different from WP.
+ if ( 'initial-platform' === type ) {
+ config = this.$config[ button ];
+
+ if ( undefined === this.data.buttonConfig || true === this.data.buttonConfig ) {
+ theFirst = 'upgrade';
+ }
+ }
+
+ // If first load ever.
+ if ( 'initial-platform' === type && undefined !== this.data.buttonConfig[ buttonCode ] && undefined === this.data.buttonConfig[ buttonCode ]['updated_at'] && undefined !== this.$config[ button ]['updated_at'] ) {
+ config = beforeConfig;
+ config['updated_at'] = this.$config[ button ]['updated_at'];
+ config['networks'] = this.data.buttonConfig[ buttonCode ]['networks'];
+ }
+
+ if ( 'turnon' === type ) {
+ config['enabled'] = true;
+ config['radius'] = 4;
+ config['show_total'] = true;
+ config['labels'] = 'cta';
+ config['min_count'] = 10;
+ config['networks'] = undefined !== typeof this.data.buttonConfig[buttonCode] ||
+ undefined === typeof this.data.buttonConfig[buttonCode]['networks']
+ ? ['facebook', 'twitter', 'pinterest', 'email', 'sms', 'sharethis'] :
+ this.data.buttonConfig[buttonCode]['networks'];
+
+ $.each( config['networks'], function( index, value ) {
+ $( '.' + buttonCode + '-network-list .share-button[data-network="' + value + '"]' ).attr( 'data-selected', 'true' );
+ } );
+
+ // Set temp enable to true.
+ this.$tempEnable[ buttonCode ] = true;
+ }
+
+ if ( 'turnoff' === type ) {
+ config['enabled'] = false;
+
+ // Set temp enable to false.
+ this.$tempEnable[ buttonCode ] = false;
+ }
+
+ if ( 'upgrade' === theFirst ) {
+ upConfig = {
+ inline: this.$config['inline-share-buttons'],
+ sticky: this.$config['sticky-share-buttons'],
+ gdpr: this.$config['gdpr-compliance-tool-v2'],
+ };
+
+ wp.ajax.post( 'set_button_config', {
+ button: 'platform',
+ config: upConfig,
+ first: theFirst,
+ type: 'login',
+ nonce: this.data.nonce
+ } ).always( function ( results ) {
+ location.reload();
+ }.bind( this ) );
+ } else {
+ wp.ajax.post( 'set_button_config', {
+ button: buttonCode,
+ config: config,
+ fresh: this.data.fresh,
+ nonce: this.data.nonce
+ } );
+
+ config['show_mobile_buttons'] = false;
+
+ if ( 'initial-platform' !== type || (
+ undefined !== this.data.buttonConfig[buttonCode] && undefined === this.data.buttonConfig[buttonCode]['updated_at']
+ ) ) {
+ config['enabled'] = ( 'true' === config['enabled'] || true === config['enabled'] );
+ delete config['container'];
+ delete config['id'];
+ delete config['has_spacing'];
+ delete config['show_mobile_buttons'];
+
+ config['radius'] = undefined !== config['radius'] ? parseInt( config['radius'].toString().replace( 'px', '' ) ) : '';
+ config['min_count'] = parseInt( config['min_count'] );
+
+ if ( 'sticky' === buttonCode ) {
+ config['mobile_breakpoint'] = parseInt( config['mobile_breakpoint'] );
+ config['top'] = parseInt( config['top'].toString().replace( 'px', '' ) );
+ }
+
+ theData = {
+ 'id': this.data.propertyid,
+ 'product': button,
+ 'config': config
+ };
+
+ if ( ( 'true' === this.data.fresh && false !== this.data.first ) || false !== this.data.first ) {
+ const firstProd = 'sticky' === this.data.first || 'inline' === this.data.first ? this.data.first + '-share-buttons' : this.data.first;
+
+ theData['onboarding_product'] = true === this.data.fresh ? button : firstProd;
+ }
+
+
+ if ( 'undefined' === this.data.secret || undefined === this.data.secret ) {
+ theData['token'] = this.data.token;
+ } else {
+ theData['secret'] = this.data.secret;
+ }
+
+ theData = JSON.stringify( theData );
+
+ // Send new button status value.
+ $.ajax( {
+ url: 'https://platform-api.sharethis.com/v1.0/property/product',
+ method: 'POST',
+ async: false,
+ contentType: 'application/json; charset=utf-8',
+ data: theData,
+ success: function () {
+ if ( 'turnon' === type || 'turnoff' === type ) {
+ location.reload();
+ }
+ }
+ } );
+ }
+ }
+ }
+
+ if ( '' !== type ) {
+ if ( 'inline' === buttonCode ) {
+
+ // Convert pieces to integers.
+ config['size'] = parseInt( config['size'] );
+ config['font_size'] = parseInt( config['font_size'] );
+ config['padding'] = parseInt( config['padding'] );
+ config['spacing'] = parseInt( config['spacing'] );
+ config['has_spacing'] = (
+ 0 === config['spacing']
+ );
+ }
+ }
+
+ if (config.is_ssb) {
+ networks = [ 'facebook', 'twitter', 'email', 'sms', 'sharethis', 'linkedin', 'messenger', 'pinterest', 'reddit', 'tumblr' ];
+ config.networks = networks.slice(0, config.num_ssb_networks);
+ }
+
+ delete config.is_ssb;
+
+ // Make sure mobile button override is set.
+ config['show_mobile_buttons'] = true;
+
+ $( '#' + buttonCode + '-8' ).html( '' );
+
+ config.container = buttonCode + '-8';
+
+ window.__sharethis__.href = 'https://www.sharethis.com/';
+
+ // Always enable for preview call.
+ config.enabled = true;
+
+ window.__sharethis__.load( button, config );
+
+ $( '#' + buttonCode + '-8 > div' ).sortable( {
+ stop: function( event, ui ) {
+ self.loadPreview( '', buttonCode );
+ }
+ } );
+ },
+
+ /**
+ * Set the settings fields for the button configurations.
+ *
+ * @param button
+ */
+ setConfigFields: function( button, config, type ) {
+ var size;
+
+ if ( '' === config ) {
+ config = this.data.buttonConfig[ button ];
+ }
+
+ if (button === 'gdpr' && undefined !== config) {
+ this.setGDPRConfig(config, type)
+ }
+
+ if ( undefined === config || undefined === config['radius'] ) {
+ return;
+ }
+
+ // Smart share buttons.
+ if ( undefined !== config['is_ssb'] ) {
+ const selectedType = document.querySelector( '.' + button + '-platform .network-type.engage' );
+ const manualSelects = document.querySelectorAll( '.' + button + '-platform .manual-select' );
+ const ssbSelects = document.querySelectorAll( '.' + button + '-platform .ssb-select' );
+ const smartButtons = document.querySelector( '.' + button + '-platform .smart-share.network-type' );
+
+ selectedType.classList.remove( 'engage' );
+ selectedType.querySelector( 'input' ).checked = false;
+ smartButtons.classList.add( 'engage' );
+ smartButtons.querySelector( 'input' ).checked = true;
+
+ manualSelects.forEach( manualSelect => {
+ manualSelect.classList.remove( 'engage' );
+ } );
+ ssbSelects.forEach( ssbSelect => {
+ ssbSelect.classList.add( 'engage' );
+ } );
+
+ const ssbCount = document.querySelector( '.' + button + '-platform #social-service-count' );
+
+ if ( ssbCount ) {
+ ssbCount.value = config['num_ssb_networks'];
+ }
+ }
+
+ $( '.' + button + '-network-list .share-button' ).each( function() {
+ $( this ).attr( 'data-selected', false );
+ } );
+
+ // Networks.
+ $.each( config['networks'], function( index, value ) {
+ $( '.' + button + '-network-list .share-button[data-network="' + value + '"]' ).attr( 'data-selected', 'true' );
+ } );
+
+ // Colors.
+ $( '#' + button + ' .button-color .item input' ).prop( 'checked', false );
+ $( '#' + button + ' .button-color #' + config['color'] ).siblings( 'input' ).prop( 'checked', true );
+
+ // Delay for wp color picker to initialize.
+ setTimeout( () => {
+ $( '.custom-button-color' ).wpColorPicker('color', config['background_color'] );
+ $( '.custom-icon-color' ).wpColorPicker('color', config['text_color'] );
+ $( '.custom-st-button-color' ).wpColorPicker('color', config['background_color'] );
+ $( '.custom-st-icon-color' ).wpColorPicker('color', config['text_color'] );
+ }, 1000 );
+
+ // Labels.
+ $( '#' + button + ' .button-labels .item input' ).prop( 'checked', false );
+ $( '#' + button + ' .button-labels #' + config['labels'] ).siblings( 'input' ).prop( 'checked', true );
+
+ // Counts.
+ $( '#' + button + ' input.minimum-count' ).val( config['min_count'] );
+ $( '#' + button + ' span.show-total-count' ).siblings( 'div.switch' ).find( 'input' ).prop( 'checked', ( undefined !== config['show_total'] && 'true' === config['show_total'].toString() ) );
+
+ // Corners.
+ if ( parseInt( config['radius'].toString().replace( 'px', '' ) ) > $( '#' + button + ' #radius-selector' ).attr( 'max' ) ) {
+ $( '#' + button + ' #radius-selector' ).attr( 'max', config['radius'].toString().replace( 'px', '' ) );
+ $( '#' + button + ' #radius-selector' ).val( config['radius'].toString().replace( 'px', '' ) );
+ } else {
+ $( '#' + button + ' #radius-selector' ).val( config['radius'].toString().replace( 'px', '' ) );
+ }
+
+ // Language.
+ $( '#st-language-inline option[value="' + config['language'] + '"]' ).prop( 'selected', true );
+ $( '#st-language-sticky option[value="' + config['language'] + '"]' ).prop( 'selected', true );
+
+ if ( 'inline' === button ) {
+
+ // Alignment.
+ $( '.button-alignment .alignment-button[data-selected="true"]' ).attr( 'data-selected', 'false' );
+ $( '.button-alignment .alignment-button[data-alignment="' + config['alignment'] + '"]' ).attr( 'data-selected', 'true' );
+
+ // Size.
+ $( '.button-size .item input' ).prop( 'checked', false );
+
+ if ( '32' === config['size'].toString() ) {
+ size = '#small';
+ }
+
+ if ( '40' === config['size'].toString() ) {
+ size = '#medium';
+ }
+
+ if ( '48' === config['size'].toString() ) {
+ size = '#large';
+ }
+
+ $( '.button-size ' + size ).siblings( 'input' ).prop( 'checked', true );
+
+ // Extra spacing.
+ $( 'div.extra-spacing' ).find( 'input' ).prop( 'checked', ( 0 !== config['spacing'] && '0' !== config['spacing'] ) );
+ }
+
+ if ( 'sticky' === button ) {
+
+ // Alignment.
+ if ( 'right' === config['alignment'] ) {
+ $( '.sticky-alignment' ).find( 'input' ).prop( 'checked', true );
+ }
+
+ // Vertical alignment.
+ $( '.vertical-alignment' ).val( config['top'].toString().replace( 'px', '' ) );
+
+ // Mobile breakpoint.
+ $( '.mobile-breakpoint' ).val( config['mobile_breakpoint'] );
+
+ // Show on mobile.
+ $( 'div.show-on-mobile' ).find( 'input' ).prop( 'checked', ( undefined !== config['show_mobile'] && 'true' === config['show_mobile'].toString() ) );
+
+ // Show on desktop.
+ $( 'div.show-on-desktop' ).find( 'input' ).prop( 'checked', ( undefined !== config['show_desktop'] && 'true' === config['show_desktop'].toString() ) );
+ }
+
+ if ( 'platform' === type ) {
+ this.loadPreview( 'initial-platform', button );
+ }
+ },
+
+ /**
+ * Returns gdpr onboarding config values.
+ */
+ setGDPRConfig: function(config, type) {
+ $('#sharethis-publisher-name').val(config['publisher_name']);
+ $(`#sharethis-user-type option[value="${config['display']}"]`).prop('selected', true);
+ $(`#sharethis-consent-type option[value="${config['scope']}"]`).prop('selected', true);
+ $(`#sharethis-form-color .color[data-value="${config['color']}"]`).addClass('selected');
+ $(`#st-language option[value="${config['language']}"]`).prop('selected', true);
+
+ $( "#publisher-purpose .purpose-item input" ).prop('checked', false);
+ $( ".vendor-table-cell-wrapper input" ).prop('checked', false);
+
+ if (undefined !== config['publisher_purposes'] && 0 < config['publisher_purposes'].length ) {
+ config['publisher_purposes'].map( ( purpVal ) => {
+ var legit = 'true' === purpVal['legitimate_interest'] || true === purpVal['legitimate_interest'];
+ var consent = 'false' === purpVal['legitimate_interest'] || false === purpVal['legitimate_interest'];
+
+ $( `#publisher-purpose .purpose-item input[name="purposes[${purpVal.id}]"][value="legitimate"]` ).prop( 'checked', legit );
+ $( `#publisher-purpose .purpose-item input[name="purposes[${purpVal.id}]"][value="consent"]` ).prop( 'checked', consent );
+ } );
+ }
+
+ if (undefined !== config['publisher_restrictions']) {
+ $.map(config['publisher_restrictions'], function (id, venVal ) {
+ if(id) {
+ $( `input[type="checkbox"][data-id="${venVal}"]` ).prop( 'checked', true );
+ }
+ } );
+ }
+
+ if ( 'platform' === type ) {
+ this.loadPreview( 'initial-platform', 'gdpr' );
+ }
+ },
+ /**
+ * Toggle the accordions.
+ *
+ * @param type
+ * @param arrow
+ */
+ updateAccors: function( type, arrow ) {
+ var closestButton = $( arrow ).parent( '.accor-tab' ).parent( '.accor-wrap' );
+
+ if ( '►' === type ) {
+
+ // Show the button configs.
+ closestButton.find( '.accor-content' ).slideDown();
+
+ // Change the icon next to title.
+ closestButton.find( '.accor-arrow' ).html( '▼' );
+ } else {
+
+ // Show the button configs.
+ closestButton.find( '.accor-content' ).slideUp();
+
+ // Change the icon next to title.
+ closestButton.find( '.accor-arrow' ).html( '►' );
+ }
+ },
+ scrollToAnchor: function(aid) {
+ var aTag = $("a[name='"+ aid.toLowerCase() +"']");
+
+ $('.vendor-table-body').animate({
+ scrollTop: 0
+ }, 0).animate({
+ scrollTop: aTag.offset().top - 3000
+ }, 0);
+ },
+ };
+} )( window.jQuery, window.wp );
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/js/blocks.js b/wp/wp-content/plugins/sharethis-share-buttons/js/blocks.js
new file mode 100755
index 00000000..5ddcaf29
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/js/blocks.js
@@ -0,0 +1,43 @@
+// phpcs:ignoreFile
+/* global wp:wp */
+
+/**
+ * This section of code registers the sharethis share buttons blocks.
+ */
+
+const shareregisterBlockType = wp.blocks.registerBlockType;
+const sharecreateElement = wp.element.createElement;
+const shareicon = sharecreateElement('div', { style: {
+ background: `url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0NC4xICg0MTQ1NSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+RmlsbCAzPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtSEQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC4wMDAwMDAsIC00MzguMDAwMDAwKSIgZmlsbD0iI0ZFRkVGRSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xNTE2NDMyLDQ0OS4xMDMwMTEgQzIyLjcyNjg4NzcsNDQ5LjEwMzAxMSAyMi4zMzM1MDYyLDQ0OS4yMjg5OSAyMS45OTcwODA2LDQ0OS40Mzc5ODkgQzIxLjk5NTE0OTksNDQ5LjQzNTA5MyAyMS45OTcwODA2LDQ0OS40Mzc5ODkgMjEuOTk3MDgwNiw0NDkuNDM3OTg5IEMyMS44ODA3NTU1LDQ0OS41MDg5NDMgMjEuNzM1NDY5OCw0NDkuNTQ1NjI2IDIxLjU4OTIxODgsNDQ5LjU0NTYyNiBDMjEuNDUzMTA0LDQ0OS41NDU2MjYgMjEuMzE5ODg1Miw0NDkuNTA3NDk0IDIxLjIwODg2OTYsNDQ5LjQ0NTIyOSBMMTQuODczNzM4Myw0NDYuMDM4OTggQzE0Ljc2NDE3MDcsNDQ1Ljk5MDIzIDE0LjY4NzkwNzgsNDQ1Ljg3ODczMSAxNC42ODc5MDc4LDQ0NS43NTEzMDUgQzE0LjY4NzkwNzgsNDQ1LjYyMzM5NSAxNC43NjUxMzYsNDQ1LjUxMTg5NyAxNC44NzQ3MDM2LDQ0NS40NjI2NjQgTDIxLjIwODg2OTYsNDQyLjA1Njg5NyBDMjEuMzE5ODg1Miw0NDEuOTk1MTE1IDIxLjQ1MzEwNCw0NDEuOTU2NTAxIDIxLjU4OTIxODgsNDQxLjk1NjUwMSBDMjEuNzM1NDY5OCw0NDEuOTU2NTAxIDIxLjg4MDc1NTUsNDQxLjk5MzY2NyAyMS45OTcwODA2LDQ0Mi4wNjQ2MiBDMjEuOTk3MDgwNiw0NDIuMDY0NjIgMjEuOTk1MTQ5OSw0NDIuMDY3MDM0IDIxLjk5NzA4MDYsNDQyLjA2NDYyIEMyMi4zMzM1MDYyLDQ0Mi4yNzMxMzcgMjIuNzI2ODg3Nyw0NDIuMzk5MTE1IDIzLjE1MTY0MzIsNDQyLjM5OTExNSBDMjQuMzY2NTQwMyw0NDIuMzk5MTE1IDI1LjM1MTY4MzQsNDQxLjQxNDQ1NSAyNS4zNTE2ODM0LDQ0MC4xOTk1NTggQzI1LjM1MTY4MzQsNDM4Ljk4NDY2IDI0LjM2NjU0MDMsNDM4IDIzLjE1MTY0MzIsNDM4IEMyMi4wMTYzODc2LDQzOCAyMS4wOTMwMjcyLDQzOC44NjMwMjYgMjAuOTc1MjU0MSw0MzkuOTY3MzkgQzIwLjk3MTM5MjYsNDM5Ljk2MzA0NiAyMC45NzUyNTQxLDQzOS45NjczOSAyMC45NzUyNTQxLDQzOS45NjczOSBDMjAuOTUwNjM3NSw0NDAuMjM5MTM3IDIwLjc2OTE1MTEsNDQwLjQ2NzkyNiAyMC41MzYwMTgzLDQ0MC41ODQyNTEgTDE0LjI3OTU2MzMsNDQzLjk0NzU0MiBDMTQuMTY0MjAzNiw0NDQuMDE3MDQ3IDE0LjAyNDIyNzMsNDQ0LjA1NjE0NCAxMy44Nzk0MjQzLDQ0NC4wNTYxNDQgQzEzLjcwODU1NjgsNDQ0LjA1NjE0NCAxMy41NDgzMDgxLDQ0NC4wMDQ0OTggMTMuNDIwODgxNSw0NDMuOTEwMzc2IEMxMy4wNzUyODUsNDQzLjY4NDk2NiAxMi42NjUwMDk4LDQ0My41NTEyNjQgMTIuMjIxOTEyNiw0NDMuNTUxMjY0IEMxMS4wMDcwMTU1LDQ0My41NTEyNjQgMTAuMDIyMzU1MSw0NDQuNTM2NDA3IDEwLjAyMjM1NTEsNDQ1Ljc1MTMwNSBDMTAuMDIyMzU1MSw0NDYuOTY2MjAyIDExLjAwNzAxNTUsNDQ3Ljk1MDg2MiAxMi4yMjE5MTI2LDQ0Ny45NTA4NjIgQzEyLjY2NTAwOTgsNDQ3Ljk1MDg2MiAxMy4wNzUyODUsNDQ3LjgxNzY0MyAxMy40MjA4ODE1LDQ0Ny41OTIyMzMgQzEzLjU0ODMwODEsNDQ3LjQ5NzYyOSAxMy43MDg1NTY4LDQ0Ny40NDY0NjUgMTMuODc5NDI0Myw0NDcuNDQ2NDY1IEMxNC4wMjQyMjczLDQ0Ny40NDY0NjUgMTQuMTY0MjAzNiw0NDcuNDg1MDc5IDE0LjI3OTU2MzMsNDQ3LjU1NDU4NSBMMjAuNTM2MDE4Myw0NTAuOTE4MzU4IEMyMC43Njg2Njg0LDQ1MS4wMzQyMDEgMjAuOTUwNjM3NSw0NTEuMjYzNDcyIDIwLjk3NTI1NDEsNDUxLjUzNTIxOSBDMjAuOTc1MjU0MSw0NTEuNTM1MjE5IDIwLjk3MTM5MjYsNDUxLjUzOTU2MyAyMC45NzUyNTQxLDQ1MS41MzUyMTkgQzIxLjA5MzAyNzIsNDUyLjYzOTEwMSAyMi4wMTYzODc2LDQ1My41MDI2MDkgMjMuMTUxNjQzMiw0NTMuNTAyNjA5IEMyNC4zNjY1NDAzLDQ1My41MDI2MDkgMjUuMzUxNjgzNCw0NTIuNTE3NDY2IDI1LjM1MTY4MzQsNDUxLjMwMjU2OSBDMjUuMzUxNjgzNCw0NTAuMDg3NjcyIDI0LjM2NjU0MDMsNDQ5LjEwMzAxMSAyMy4xNTE2NDMyLDQ0OS4xMDMwMTEiIGlkPSJGaWxsLTMiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")`,
+ width: '24px',
+ height: '24px',
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center',
+ backgroundColor: '#93d227'
+} } );
+/**
+ * Share Buttons Block
+ */
+shareregisterBlockType('st/sharebuttons', {
+ title: 'Inline Share Buttons',
+ icon: shareicon,
+ category: 'st-blocks',
+ edit() {
+ return (
+ sharecreateElement(
+ 'div',
+ {className:'inline-share-button-block'},
+ sharecreateElement(
+ 'img',
+ {src:'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0NC4xICg0MTQ1NSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+RmlsbCAzPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtSEQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC4wMDAwMDAsIC00MzguMDAwMDAwKSIgZmlsbD0iI0ZFRkVGRSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xNTE2NDMyLDQ0OS4xMDMwMTEgQzIyLjcyNjg4NzcsNDQ5LjEwMzAxMSAyMi4zMzM1MDYyLDQ0OS4yMjg5OSAyMS45OTcwODA2LDQ0OS40Mzc5ODkgQzIxLjk5NTE0OTksNDQ5LjQzNTA5MyAyMS45OTcwODA2LDQ0OS40Mzc5ODkgMjEuOTk3MDgwNiw0NDkuNDM3OTg5IEMyMS44ODA3NTU1LDQ0OS41MDg5NDMgMjEuNzM1NDY5OCw0NDkuNTQ1NjI2IDIxLjU4OTIxODgsNDQ5LjU0NTYyNiBDMjEuNDUzMTA0LDQ0OS41NDU2MjYgMjEuMzE5ODg1Miw0NDkuNTA3NDk0IDIxLjIwODg2OTYsNDQ5LjQ0NTIyOSBMMTQuODczNzM4Myw0NDYuMDM4OTggQzE0Ljc2NDE3MDcsNDQ1Ljk5MDIzIDE0LjY4NzkwNzgsNDQ1Ljg3ODczMSAxNC42ODc5MDc4LDQ0NS43NTEzMDUgQzE0LjY4NzkwNzgsNDQ1LjYyMzM5NSAxNC43NjUxMzYsNDQ1LjUxMTg5NyAxNC44NzQ3MDM2LDQ0NS40NjI2NjQgTDIxLjIwODg2OTYsNDQyLjA1Njg5NyBDMjEuMzE5ODg1Miw0NDEuOTk1MTE1IDIxLjQ1MzEwNCw0NDEuOTU2NTAxIDIxLjU4OTIxODgsNDQxLjk1NjUwMSBDMjEuNzM1NDY5OCw0NDEuOTU2NTAxIDIxLjg4MDc1NTUsNDQxLjk5MzY2NyAyMS45OTcwODA2LDQ0Mi4wNjQ2MiBDMjEuOTk3MDgwNiw0NDIuMDY0NjIgMjEuOTk1MTQ5OSw0NDIuMDY3MDM0IDIxLjk5NzA4MDYsNDQyLjA2NDYyIEMyMi4zMzM1MDYyLDQ0Mi4yNzMxMzcgMjIuNzI2ODg3Nyw0NDIuMzk5MTE1IDIzLjE1MTY0MzIsNDQyLjM5OTExNSBDMjQuMzY2NTQwMyw0NDIuMzk5MTE1IDI1LjM1MTY4MzQsNDQxLjQxNDQ1NSAyNS4zNTE2ODM0LDQ0MC4xOTk1NTggQzI1LjM1MTY4MzQsNDM4Ljk4NDY2IDI0LjM2NjU0MDMsNDM4IDIzLjE1MTY0MzIsNDM4IEMyMi4wMTYzODc2LDQzOCAyMS4wOTMwMjcyLDQzOC44NjMwMjYgMjAuOTc1MjU0MSw0MzkuOTY3MzkgQzIwLjk3MTM5MjYsNDM5Ljk2MzA0NiAyMC45NzUyNTQxLDQzOS45NjczOSAyMC45NzUyNTQxLDQzOS45NjczOSBDMjAuOTUwNjM3NSw0NDAuMjM5MTM3IDIwLjc2OTE1MTEsNDQwLjQ2NzkyNiAyMC41MzYwMTgzLDQ0MC41ODQyNTEgTDE0LjI3OTU2MzMsNDQzLjk0NzU0MiBDMTQuMTY0MjAzNiw0NDQuMDE3MDQ3IDE0LjAyNDIyNzMsNDQ0LjA1NjE0NCAxMy44Nzk0MjQzLDQ0NC4wNTYxNDQgQzEzLjcwODU1NjgsNDQ0LjA1NjE0NCAxMy41NDgzMDgxLDQ0NC4wMDQ0OTggMTMuNDIwODgxNSw0NDMuOTEwMzc2IEMxMy4wNzUyODUsNDQzLjY4NDk2NiAxMi42NjUwMDk4LDQ0My41NTEyNjQgMTIuMjIxOTEyNiw0NDMuNTUxMjY0IEMxMS4wMDcwMTU1LDQ0My41NTEyNjQgMTAuMDIyMzU1MSw0NDQuNTM2NDA3IDEwLjAyMjM1NTEsNDQ1Ljc1MTMwNSBDMTAuMDIyMzU1MSw0NDYuOTY2MjAyIDExLjAwNzAxNTUsNDQ3Ljk1MDg2MiAxMi4yMjE5MTI2LDQ0Ny45NTA4NjIgQzEyLjY2NTAwOTgsNDQ3Ljk1MDg2MiAxMy4wNzUyODUsNDQ3LjgxNzY0MyAxMy40MjA4ODE1LDQ0Ny41OTIyMzMgQzEzLjU0ODMwODEsNDQ3LjQ5NzYyOSAxMy43MDg1NTY4LDQ0Ny40NDY0NjUgMTMuODc5NDI0Myw0NDcuNDQ2NDY1IEMxNC4wMjQyMjczLDQ0Ny40NDY0NjUgMTQuMTY0MjAzNiw0NDcuNDg1MDc5IDE0LjI3OTU2MzMsNDQ3LjU1NDU4NSBMMjAuNTM2MDE4Myw0NTAuOTE4MzU4IEMyMC43Njg2Njg0LDQ1MS4wMzQyMDEgMjAuOTUwNjM3NSw0NTEuMjYzNDcyIDIwLjk3NTI1NDEsNDUxLjUzNTIxOSBDMjAuOTc1MjU0MSw0NTEuNTM1MjE5IDIwLjk3MTM5MjYsNDUxLjUzOTU2MyAyMC45NzUyNTQxLDQ1MS41MzUyMTkgQzIxLjA5MzAyNzIsNDUyLjYzOTEwMSAyMi4wMTYzODc2LDQ1My41MDI2MDkgMjMuMTUxNjQzMiw0NTMuNTAyNjA5IEMyNC4zNjY1NDAzLDQ1My41MDI2MDkgMjUuMzUxNjgzNCw0NTIuNTE3NDY2IDI1LjM1MTY4MzQsNDUxLjMwMjU2OSBDMjUuMzUxNjgzNCw0NTAuMDg3NjcyIDI0LjM2NjU0MDMsNDQ5LjEwMzAxMSAyMy4xNTE2NDMyLDQ0OS4xMDMwMTEiIGlkPSJGaWxsLTMiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=='}
+ ),
+ 'Share Buttons Display Here'
+ )
+ );
+ },
+ save() {
+ return (
+ '[sharethis-inline-buttons]'
+ );
+ }
+});
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/js/meta-box.js b/wp/wp-content/plugins/sharethis-share-buttons/js/meta-box.js
new file mode 100644
index 00000000..ffdf1bfb
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/js/meta-box.js
@@ -0,0 +1,86 @@
+/**
+ * Minute Control.
+ *
+ * @package ShareThisShareButtons
+ */
+
+/* exported MinuteControl */
+var MinuteControl = ( function( $, wp ) {
+ 'use strict';
+
+ return {
+ /**
+ * Holds data.
+ */
+ data: {},
+
+ /**
+ * Boot plugin.
+ *
+ * @param data
+ */
+ boot: function( data ) {
+ this.data = data;
+
+ $( document ).ready(
+ function() {
+ this.init();
+ }.bind( this )
+ );
+ },
+
+ /**
+ * Initialize plugin.
+ */
+ init: function() {
+ this.$container = $( '#sharethis-meta-box' );
+
+ this.listen();
+ },
+
+ /**
+ * Initiate listeners.
+ */
+ listen: function() {
+ var self = this;
+
+ // When checking an option in the meta box.
+ this.$container.on(
+ 'click',
+ '#sharethis-bottom-post, #sharethis-top-post, #sharethis-sticky-show',
+ function() {
+ var checked = $( this ).prop( 'checked' ),
+ type = $( this ).closest( '.button-setting-wrap' ).attr( 'id' ),
+ placement = $( this ).attr( 'class' );
+
+ self.updateList( type, checked, placement );
+ }
+ );
+ },
+
+ /**
+ * Add / remove post to list.
+ *
+ * @param type
+ * @param checked
+ * @param placement
+ */
+ updateList: function( type, checked, placement ) {
+
+ // Update specifide list per checked.
+ wp.ajax.post(
+ 'update_list',
+ {
+ postid: this.data.postid,
+ type: type,
+ checked: checked,
+ placement: placement,
+ nonce: this.data.nonce
+ }
+ ).always(
+ function() {
+ }
+ );
+ }
+ };
+} )( window.jQuery, window.wp );
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/js/set-credentials.js b/wp/wp-content/plugins/sharethis-share-buttons/js/set-credentials.js
new file mode 100644
index 00000000..f7075dc2
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/js/set-credentials.js
@@ -0,0 +1,312 @@
+/**
+ * Credentials
+ *
+ * @package ShareThisShareButtons
+ */
+
+/* exported Credentials */
+var Credentials = ( function( $, wp ) {
+ 'use strict';
+
+ return {
+ /**
+ * Holds data.
+ */
+ data: {},
+
+ /**
+ * Boot plugin.
+ *
+ * @param data
+ */
+ boot: function( data ) {
+ this.data = data;
+
+ $( document ).ready(
+ function() {
+ this.init();
+ }.bind( this )
+ );
+ },
+
+ /**
+ * Initialize plugin.
+ */
+ init: function() {
+ const self = this;
+
+ // Set default WP config.
+ wp.ajax.post(
+ 'set_default_settings',
+ {
+ type: 'both',
+ nonce: self.data.nonce
+ }
+ ).always(
+ function( link ) {
+ self.registerAccount( self.data.email, Math.random() + '1_stsb_PW!' );
+ }.bind( self )
+ );
+ },
+
+ /**
+ * Send hash data to credential setting.
+ *
+ * @param secret
+ * @param propertyid
+ * @param token
+ * @param type
+ */
+
+ setCredentials: function( secret, propertyid, token, type ) {
+ var propSecret = propertyid + '-' + secret;
+ const self = this;
+
+ // If hash exists send it to credential setting.
+ wp.ajax.post(
+ 'set_credentials',
+ {
+ data: propSecret,
+ token: token,
+ nonce: this.data.nonce
+ }
+ ).always(
+ function( link ) {
+ // Set default product configs.
+ const iconfig = {
+ alignment: 'center',
+ color: 'social',
+ enabled: false,
+ font_size: 11,
+ labels: 'cta',
+ min_count: 10,
+ padding: 8,
+ radius: 4,
+ networks: ['facebook', 'twitter', 'email', 'sms', 'sharethis'],
+ show_total: true,
+ size: 32,
+ spacing: 8,
+ language: 'en',
+ };
+
+ const sconfig = {
+ alignment: 'left',
+ color: 'social',
+ enabled: false,
+ labels: 'cta',
+ min_count: 10,
+ radius: 4,
+ networks: ['facebook', 'twitter', 'email', 'sms', 'sharethis'],
+ top: 200,
+ show_mobile: true,
+ show_total: true,
+ show_desktop: true,
+ show_mobile_buttons: true,
+ mobile_breakpoint: 1024,
+ spacing: 0,
+ language: 'en'
+ }
+
+ const gconfig = {
+ color: '#2e7d32',
+ display: 'always',
+ enabled: false,
+ language: 'en',
+ publisher_name: '',
+ publisher_purposes: [],
+ scope: 'global'
+ }
+
+ let theiData = {
+ 'token' : token,
+ 'id': propertyid,
+ 'product': 'inline-share-buttons',
+ 'config': iconfig
+ };
+
+ theiData = JSON.stringify( theiData );
+
+ // Send new button status value.
+ $.ajax(
+ {
+ url: 'https://platform-api.sharethis.com/v1.0/property/product',
+ method: 'POST',
+ async: false,
+ contentType: 'application/json; charset=utf-8',
+ data: theiData,
+ success: function () {
+ wp.ajax.post(
+ 'set_button_config',
+ {
+ button: 'inline',
+ config: iconfig,
+ first: true,
+ nonce: self.data.nonce
+ }
+ ).always(
+ function ( results ) {
+ let thesData = {
+ 'token' : token,
+ 'id': propertyid,
+ 'product': 'sticky-share-buttons',
+ 'config': sconfig
+ };
+
+ thesData = JSON.stringify( thesData );
+
+ // Send new button status value.
+ $.ajax(
+ {
+ url: 'https://platform-api.sharethis.com/v1.0/property/product',
+ method: 'POST',
+ async: false,
+ contentType: 'application/json; charset=utf-8',
+ data: thesData,
+ success: function () {
+ wp.ajax.post(
+ 'set_button_config',
+ {
+ button: 'sticky',
+ config: sconfig,
+ nonce: self.data.nonce
+ }
+ ).always(
+ function ( results ) {
+ let thegData = {
+ 'token' : token,
+ 'id': propertyid,
+ 'product': 'gdpr-compliance-tool-v2',
+ 'config': gconfig
+ };
+
+ thegData = JSON.stringify( thegData );
+
+ // Send new button status value.
+ $.ajax(
+ {
+ url: 'https://platform-api.sharethis.com/v1.0/property/product',
+ method: 'POST',
+ async: false,
+ contentType: 'application/json; charset=utf-8',
+ data: thegData,
+ success: function () {
+ wp.ajax.post(
+ 'set_button_config',
+ {
+ button: 'gdpr',
+ config: gconfig,
+ nonce: self.data.nonce
+ }
+ ).always(
+ function ( results ) {
+ window.location.reload();
+ }
+ );
+ }
+ }
+ );
+ }
+ );
+ }
+ }
+ );
+ }
+ );
+ }
+ }
+ );
+ }.bind( this )
+ );
+ },
+
+ /**
+ * Register new account.
+ *
+ * @param email
+ * @param pw
+ */
+ registerAccount: function( email, pw ) {
+ var result = null,
+ self = this,
+ url = this.data.url,
+ randomNumber = Math.floor(
+ (
+ Math.random() * 10000000000000000
+ ) + 1
+ ),
+ randomNumber2 = Math.floor(
+ (
+ Math.random() * 10000000000000000
+ ) + 1
+ ),
+ theData = JSON.stringify(
+ {
+ email: randomNumber + '@' + randomNumber2 + '.com',
+ password: pw,
+ custom: {
+ onboarding_product: 'inline-share-buttons',
+ onboarding_domain: url,
+ is_wordpress: true,
+ wordpress_email: email,
+ }
+ }
+ );
+
+ $.ajax(
+ {
+ url: 'https://sso.sharethis.com/register',
+ method: 'POST',
+ async: false,
+ contentType: 'application/json; charset=utf-8',
+ data: theData,
+ success: function( results ) {
+ result = results;
+
+ // Create property.
+ self.createProperty( result, url, '' );
+ },
+ }
+ );
+ },
+
+ /**
+ * Create property for new account.
+ *
+ * @param accountInfo
+ * @param url
+ */
+ createProperty: function( accountInfo, url, type ) {
+ var result = null,
+ self = this,
+ token = accountInfo.token,
+ theData;
+
+ if ( 'string' === typeof accountInfo ) {
+ token = accountInfo;
+ }
+
+ theData = JSON.stringify(
+ {
+ token: token,
+ product: 'inline-share-buttons',
+ domain: url,
+ is_wordpress: true
+ }
+ );
+
+ $.ajax(
+ {
+ url: 'https://platform-api.sharethis.com/v1.0/property',
+ method: 'POST',
+ async: false,
+ contentType: 'application/json; charset=utf-8',
+ data: theData,
+ success: function( results ) {
+ result = results;
+ self.setCredentials( result.secret, result._id, token, type );
+ }
+ }
+ );
+ }
+ };
+} )( window.jQuery, window.wp );
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/php/class-button-widget.php b/wp/wp-content/plugins/sharethis-share-buttons/php/class-button-widget.php
new file mode 100644
index 00000000..45bf2726
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/php/class-button-widget.php
@@ -0,0 +1,87 @@
+plugin = $plugin;
+
+ $widget_options = array(
+ 'classname' => 'st_button_widget',
+ 'description' => esc_html__( 'Add ShareThis share buttons to your sidebar.', 'sharethis-share-buttons' ),
+ );
+ parent::__construct(
+ 'st_button_widget',
+ 'ShareThis Buttons',
+ $widget_options
+ );
+ }
+
+ /**
+ * Create the widget output.
+ *
+ * @param array $args Widget output arguments.
+ * @param array $instance The widget instance.
+ */
+ public function widget( $args, $instance ) {
+ global $post;
+
+ $data_url = '';
+
+ if ( is_archive() || is_front_page() || is_tag() ) {
+ $data_url = 'data-url=' . get_permalink( $post->ID );
+ }
+
+ // Add buttons.
+ ?>
+ >
+ plugin = $plugin;
+ }
+
+ /**
+ * Register the new share buttons metabox.
+ *
+ * @action add_meta_boxes
+ */
+ public function share_buttons_metabox() {
+ // Get all post types available.
+ $post_types = array( 'post', 'page' );
+
+ // Add the Share Buttons meta box to editor pages.
+ add_meta_box( 'sharethis_share_buttons', esc_html__( 'Share Buttons', 'sharethis-share-buttons' ), array( $this, 'share_buttons_custom_box' ), $post_types, 'side', 'high' );
+ }
+
+ /**
+ * Enqueue admin assets.
+ *
+ * @action admin_enqueue_scripts
+ * @param string $hook The page hook name.
+ */
+ public function enqueue_admin_assets( $hook ) {
+ global $post;
+
+ // Enqueue the assets on editor pages.
+ if ( in_array( $hook, array( 'post.php', 'post-new.php' ), true ) ) {
+ wp_enqueue_style( "{$this->plugin->assets_prefix}-meta-box" );
+ wp_enqueue_script( "{$this->plugin->assets_prefix}-meta-box" );
+ wp_add_inline_script(
+ "{$this->plugin->assets_prefix}-meta-box",
+ sprintf(
+ 'MinuteControl.boot( %s );',
+ wp_json_encode(
+ array(
+ 'postid' => $post->ID,
+ 'nonce' => wp_create_nonce( $this->plugin->meta_prefix ),
+ )
+ )
+ )
+ );
+ }
+ }
+
+ /**
+ * Call back function for the share buttons metabox.
+ */
+ public function share_buttons_custom_box() {
+ global $post_type;
+
+ switch ( $post_type ) {
+ case 'post':
+ $iptype = 'post_';
+ $sptype = 'posts';
+ break;
+ case 'page':
+ $iptype = 'page_';
+ $sptype = 'pages';
+ break;
+ default:
+ $iptype = 'post_';
+ $sptype = 'posts';
+ break;
+ }
+
+ // Get all needed options for meta boxes.
+ $inline_options = get_option( 'sharethis_inline_settings' );
+ $sticky_options = get_option( 'sharethis_sticky_settings' );
+ $inline_enable = get_option( 'sharethis_inline' );
+ $sticky_enable = get_option( 'sharethis_sticky' );
+
+ // Include the meta box template.
+ include_once "{$this->plugin->dir_path}/templates/minute-control/meta-box.php";
+ }
+
+ /**
+ * AJAX Call back function to add a post / page to ommit / show list.
+ *
+ * @action wp_ajax_update_list
+ */
+ public function update_list() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ if ( ! isset( $_POST['type'], $_POST['checked'], $_POST['placement'], $_POST['postid'] ) || '' === $_POST['type'] ) { // WPCS: input var okay.
+ wp_send_json_error( 'Add to list failed.' );
+ }
+
+ // Set and sanitize post values.
+ $type = sanitize_text_field( wp_unslash( $_POST['type'] ) ); // WPCS: input var okay.
+ $onoff = 'true' === sanitize_text_field( wp_unslash( $_POST['checked'] ) ) ? 'on' : 'off'; // WPCS: input var okay.
+ $opposite = 'true' === sanitize_text_field( wp_unslash( $_POST['checked'] ) ) ? 'off' : 'on'; // WPCS: input var okay.
+ $placement = '' !== sanitize_text_field( wp_unslash( $_POST['placement'] ) ) ? '_' . sanitize_text_field( wp_unslash( $_POST['placement'] ) ) : ''; // WPCS: input var okay.
+ $postid = intval( wp_unslash( $_POST['postid'] ) ); // WPCS: input var okay.
+
+ // Create remaining variables needed for list placement.
+ $post_info = get_post( $postid );
+ $post_type = $post_info->post_type;
+ $option = 'sharethis_' . $type . '_' . $post_type . $placement . '_' . $onoff;
+ $oppose = 'sharethis_' . $type . '_' . $post_type . $placement . '_' . $opposite;
+ $title = $post_info->post_title;
+
+ // Get current list and opposing list options.
+ $current_list = get_option( $option );
+ $current_oppose = get_option( $oppose );
+ $current_list = isset( $current_list ) && null !== $current_list && false !== $current_list ? $current_list : '';
+ $current_oppose = isset( $current_oppose ) && null !== $current_oppose && false !== $current_oppose ? $current_oppose : '';
+
+ // Add post id and title to current list.
+ if ( is_array( $current_list ) && array() !== $current_list ) {
+ $current_list[ $title ] = (int) $postid;
+ } else {
+ $current_list = array(
+ $title => (int) $postid,
+ );
+ }
+
+ // Remove item from opposing list.
+ if ( is_array( $current_oppose ) && array() !== $current_oppose && in_array( (int) $postid, array_map( 'intval', $current_oppose ), true ) ) {
+ unset( $current_oppose[ $title ] );
+ delete_option( $oppose );
+ }
+
+ // Update both list options.
+ update_option( $option, $current_list );
+ update_option( $oppose, $current_oppose );
+ }
+
+ /**
+ * Helper function to determine whether to check box or not.
+ *
+ * @param string $type The type of button.
+ * @param string $placement The position of the button in question.
+ */
+ private function is_box_checked( $type, $placement = '' ) {
+ global $post, $post_type;
+
+ $options = array(
+ 'true' => 'sharethis_' . $type . '_' . $post_type . $placement . '_on',
+ 'false' => 'sharethis_' . $type . '_' . $post_type . $placement . '_off',
+ );
+
+ $default_option = get_option( 'sharethis_' . $type . '_settings' );
+ $default_option = isset( $default_option ) && null !== $default_option && false !== $default_option ? $default_option : '';
+ $default = $default_option[ "sharethis_{$type}_{$post_type}{$placement}" ];
+
+ foreach ( $options as $answer => $option ) {
+ $current_list = get_option( $option );
+ $current_list = isset( $current_list ) && null !== $current_list && false !== $current_list ? $current_list : '';
+ $answer_minute = (
+ is_array( $current_list )
+ &&
+ in_array( (int) $post->ID, array_map( 'intval', $current_list ), true )
+ );
+
+ if ( $answer_minute ) {
+ return $answer;
+ }
+ }
+
+ return $default;
+ }
+
+ /**
+ * Register the inline share button shortcode
+ *
+ * @shortcode sharethis-inline-buttons
+ * @param array $atts The shortcode attributes.
+ *
+ * @return string
+ */
+ public function inline_shortcode( $atts ) {
+ global $post;
+
+ $data_url = isset( $atts['url'] ) ? esc_attr( 'data-url="' . $atts['url'] . '"' ) : '';
+
+ if ( is_archive() || is_front_page() || is_tag() ) {
+ $data_url = esc_attr( 'data-url=' . get_permalink( $post->ID ) );
+ }
+
+ // Build container.
+ return '';
+ }
+
+ /**
+ * Set inline container based on plugin config.
+ *
+ * @param string $content The post's content.
+ *
+ * @filter the_content
+ *
+ * @return string
+ */
+ public function set_inline_content( $content ) {
+ global $post;
+
+ // Get inline settings.
+ $inline_settings = get_option( 'sharethis_inline_settings' );
+ $excerpt = null !== $inline_settings && false !== $inline_settings && 'true' === $inline_settings['sharethis_excerpt'] ? true : false;
+
+ if ( $excerpt && is_archive() || $excerpt && is_home() ) {
+ return $content . $this->get_inline_container( $inline_settings, 'sharethis_excerpt', $post );
+ }
+
+ if ( null !== $inline_settings && false !== $inline_settings && is_array( $inline_settings ) ) {
+ foreach ( $inline_settings as $type => $value ) {
+ $position = $this->get_position( $type, $value );
+ $container = $this->get_inline_container( $inline_settings, $type );
+
+ if ( '' !== $position ) {
+ switch ( $position ) {
+ case 'top':
+ $content = $container . $content;
+ break;
+ case 'bottom':
+ $content = $content . $container;
+ break;
+ }
+ }
+ }
+ }
+
+ return $content;
+ }
+
+ /**
+ * Helper function to determine the inline button container.
+ *
+ * @param array $settings The current inline settings.
+ * @param string $type The type of button setting.
+ * @param object $post The current post object.
+ *
+ * @return string
+ */
+ private function get_inline_container( $settings, $type, $post = '' ) {
+ $data_url = 'sharethis_excerpt' === $type && '' !== $post ? esc_attr( 'data-url=' . get_permalink( $post->ID ) ) : '';
+ $margin_t = isset( $settings[ "{$type}_margin_top" ] ) ? $settings[ "{$type}_margin_top" ] . 'px' : '';
+ $margin_b = isset( $settings[ "{$type}_margin_bottom" ] ) ? $settings[ "{$type}_margin_bottom" ] . 'px' : '';
+ $margin = '';
+
+ if ( ! in_array( '', array( $margin_t, $margin_b ), true ) ) {
+ $margin = 'margin-top: ' . $margin_t . '; margin-bottom: ' . $margin_b . ';';
+ }
+
+ return '';
+ }
+
+ /**
+ * Hide sticky if configured.
+ *
+ * @action wp_enqueue_scripts
+ */
+ public function set_sticky_visibility() {
+ // Enqueue the blank style sheet.
+ wp_enqueue_style( "{$this->plugin->assets_prefix}-sticky" );
+
+ // Get sticky settings.
+ $settings = get_option( 'sharethis_sticky_settings' );
+ $settings = null !== $settings && false !== $settings && is_array( $settings ) ? $settings : array();
+ $hide_sticky = '.st-sticky-share-buttons{ display: none!important; }';
+
+ // Get hide status.
+ foreach ( $settings as $type => $value ) {
+ $hide = $this->get_hide_status( $type, $value );
+
+ if ( $hide ) {
+ wp_add_inline_style( "{$this->plugin->assets_prefix}-sticky", $hide_sticky );
+ }
+ }
+ }
+
+ /**
+ * Helper function to get the hide status for sticky buttons.
+ *
+ * @param string $type The button setting.
+ * @param string $value The setting value.
+ *
+ * @return bool
+ */
+ private function get_hide_status( $type, $value ) {
+ global $post;
+
+ if ( ! isset( $post->ID ) ) {
+ return false;
+ }
+
+ // The non post id dependant types.
+ $alternate_types = array( 'sharethis_sticky_home', 'sharethis_sticky_category', 'sharethis_sticky_tags', 'sharethis_sticky_author', 'sharethis_sticky_custom_posts' );
+ $alternate_pages = (
+ ! is_front_page()
+ &&
+ ! is_archive()
+ &&
+ ! is_author()
+ &&
+ ! is_tag()
+ );
+
+ if ( in_array( $type, $alternate_types, true ) ) {
+ return $this->get_alternate_hide( $type, $value );
+ }
+
+ $page_option_on = get_option( $type . '_on' );
+ $page_option_off = get_option( $type . '_off' );
+
+ if ( ! is_array( $page_option_off ) &&
+ ! is_array( $page_option_on ) &&
+ 'false' === $value &&
+ $alternate_pages &&
+ in_array( $post->post_type, explode( '_', $type ), true )
+ ) {
+ $hide = true;
+ } elseif ( isset( $post->ID ) ) {
+ $hide = (
+ is_array( $page_option_on )
+ &&
+ 'false' === $value
+ &&
+ ! in_array( (int) $post->ID, array_map( 'intval', $page_option_on ), true )
+ &&
+ $alternate_pages
+ &&
+ in_array( $post->post_type, explode( '_', $type ), true )
+ ||
+ is_array( $page_option_off )
+ &&
+ in_array( (int) $post->ID, array_map( 'intval', $page_option_off ), true )
+ &&
+ $alternate_pages
+ &&
+ in_array( $post->post_type, explode( '_', $type ), true )
+ );
+ }
+
+ return $hide;
+ }
+
+ /**
+ * Get the hide values for the non post or page types.
+ *
+ * @param string $type The setting type.
+ * @param string $value The value of the option.
+ *
+ * @return bool
+ */
+ private function get_alternate_hide( $type, $value ) {
+ $value = 'true' === $value ? false : true;
+
+ switch ( $type ) {
+ case 'sharethis_sticky_home':
+ if ( is_front_page() ) {
+ return $value;
+ }
+ break;
+ case 'sharethis_sticky_category':
+ $current_cats = get_option( 'sharethis_sticky_category_off' );
+ $current_cats = is_array( $current_cats ) ? $current_cats : array();
+ $queried_object = get_queried_object();
+
+ if ( true === is_archive()
+ && true === is_object( $queried_object )
+ && true === property_exists( $queried_object, 'term_id' )
+ ) {
+ if ( false === in_array( (string) $queried_object->term_id, array_values( $current_cats ), true ) ) {
+ return $value;
+ } else {
+ return true;
+ }
+ }
+ break;
+ case 'sharethis_sticky_author':
+ if ( is_author() ) {
+ return $value;
+ }
+ break;
+ case 'sharethis_sticky_tags':
+ if ( is_tag() ) {
+ return $value;
+ }
+ break;
+ case 'sharethis_sticky_custom_posts':
+ if ( ! is_singular( array( 'post', 'page' ) ) ) {
+ return $value;
+ }
+ break;
+ }
+ return false;
+ }
+ /**
+ * Set inline container based on plugin config.
+ *
+ * @param string $excerpt The excerpt of the post.
+ *
+ * @filter get_the_excerpt
+ *
+ * @return string
+ */
+ public function set_inline_excerpt( $excerpt ) {
+ global $post;
+
+ if ( is_admin() && ! wp_doing_ajax() ) {
+ return;
+ }
+
+ // Get inline settings.
+ $inline_settings = get_option( 'sharethis_inline_settings' );
+ $container = $this->get_inline_container( $inline_settings, 'sharethis_excerpt', $post );
+
+ if ( null === $inline_settings || false === $inline_settings || ! is_array( $inline_settings ) ) {
+ return $excerpt;
+ }
+
+ $excerpt = isset( $inline_settings['sharethis_excerpt'] ) && 'true' === $inline_settings['sharethis_excerpt'] ? $excerpt . $container : $excerpt;
+
+ return $excerpt;
+ }
+
+
+ /**
+ * Determine the position of the inline buttons.
+ *
+ * @param string $type The button type.
+ * @param string $value The value of the button.
+ *
+ * @return string
+ */
+ private function get_position( $type, $value ) {
+ global $post;
+
+ if ( ! isset( $post->ID ) ) {
+ return;
+ }
+
+ $page_option_on = get_option( $type . '_on' );
+ $page_option_off = get_option( $type . '_off' );
+ $page_option_on = is_array( $page_option_on ) ? array_values( $page_option_on ) : array();
+ $page_option_off = is_array( $page_option_off ) ? array_values( $page_option_off ) : array();
+ $type_array = explode( '_', $type );
+ $position = '';
+
+ $show = (
+ 'true' === $value
+ &&
+ ! in_array( (int) $post->ID, $page_option_off, true )
+ ||
+ in_array( (int) $post->ID, $page_option_on, true ) );
+
+ if ( in_array( 'top', $type_array, true ) && in_array( $post->post_type, $type_array, true ) ) {
+ $position = 'top';
+ } elseif ( in_array( 'bottom', explode( '_', $type ), true ) && in_array( $post->post_type, $type_array, true ) ) {
+ $position = 'bottom';
+ }
+
+ if ( $show ) {
+ return $position;
+ }
+
+ return '';
+ }
+
+ /**
+ * Enqueue the custom gutenberg block script.
+ *
+ * @action enqueue_block_editor_assets
+ */
+ public function enqueue_custom_blocks() {
+ wp_enqueue_script( "{$this->plugin->assets_prefix}-blocks", "{$this->plugin->dir_url}js/blocks.js", array( 'wp-blocks', 'wp-editor', 'wp-element', 'wp-components' ), time(), true );
+ }
+
+ /**
+ * Register new block category for share buttons.
+ *
+ * @param array $categories The current block categories.
+ * @param \WP_Post $post Post object.
+ *
+ * @filter block_categories_all
+ */
+ public function st_block_category( $categories, $post ) {
+ return array_merge(
+ $categories,
+ array(
+ array(
+ 'slug' => 'st-blocks',
+ 'title' => __( 'ShareThis Blocks', 'sharethis-share-buttons' ),
+ ),
+ )
+ );
+ }
+}
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/php/class-plugin-base.php b/wp/wp-content/plugins/sharethis-share-buttons/php/class-plugin-base.php
new file mode 100644
index 00000000..edaeefa7
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/php/class-plugin-base.php
@@ -0,0 +1,288 @@
+locate_plugin();
+ $this->slug = $location['dir_basename'];
+ $this->dir_path = $location['dir_path'];
+ $this->dir_url = $location['dir_url'];
+
+ spl_autoload_register( array( $this, 'autoload' ) );
+ $this->add_doc_hooks();
+ }
+
+ /**
+ * Plugin_Base destructor.
+ */
+ public function __destruct() {
+ $this->remove_doc_hooks();
+ }
+
+ /**
+ * Get reflection object for this class.
+ *
+ * @return \ReflectionObject
+ */
+ public function get_object_reflection() {
+ static $reflection;
+
+ if ( empty( $reflection ) ) {
+ $reflection = new \ReflectionObject( $this );
+ }
+
+ return $reflection;
+ }
+
+ /**
+ * Autoload for classes that are in the same namespace as $this.
+ *
+ * @param string $class Class name.
+ * @return void
+ */
+ public function autoload( $class ) {
+ if ( ! isset( $this->autoload_matches_cache[ $class ] ) ) {
+ if ( ! preg_match( '/^(?P.+)\\\\(?P[^\\\\]+)$/', $class, $matches ) ) {
+ $matches = false;
+ }
+
+ $this->autoload_matches_cache[ $class ] = $matches;
+ } else {
+ $matches = $this->autoload_matches_cache[ $class ];
+ }
+
+ if ( empty( $matches ) ) {
+ return;
+ }
+
+ if ( $this->get_object_reflection()->getNamespaceName() !== $matches['namespace'] ) {
+ return;
+ }
+
+ $class_name = $matches['class'];
+ $class_path = \trailingslashit( $this->dir_path );
+
+ if ( $this->autoload_class_dir ) {
+ $class_path .= \trailingslashit( $this->autoload_class_dir );
+ }
+
+ $class_path .= sprintf( 'class-%s.php', strtolower( str_replace( '_', '-', $class_name ) ) );
+
+ if ( is_readable( $class_path ) ) {
+ require_once $class_path;
+ }
+ }
+
+ /**
+ * Version of plugin_dir_url() which works for plugins installed in the plugins directory,
+ * and for plugins bundled with themes.
+ *
+ * @return array
+ */
+ public function locate_plugin() {
+ $dir_url = trailingslashit( substr( plugins_url( '', __FILE__ ), 0, - 4 ) );
+ $dir_path = trailingslashit( substr( __DIR__, 0, - 4 ) );
+ $dir_basename = basename( $dir_path );
+
+ return compact( 'dir_url', 'dir_path', 'dir_basename' );
+ }
+
+ /**
+ * Hooks a function on to a specific filter.
+ *
+ * @param string $name The hook name.
+ * @param array $callback The class object and method.
+ * @param array $args An array with priority and arg_count.
+ *
+ * @return mixed
+ */
+ public function add_filter( $name, $callback, $args = array() ) {
+ // Merge defaults.
+ $args = array_merge(
+ array(
+ 'priority' => 10,
+ 'arg_count' => PHP_INT_MAX,
+ ),
+ $args
+ );
+
+ return $this->add_hook( 'filter', $name, $callback, $args );
+ }
+
+ /**
+ * Hooks a function on to a specific action.
+ *
+ * @param string $name The hook name.
+ * @param array $callback The class object and method.
+ * @param array $args An array with priority and arg_count.
+ *
+ * @return mixed
+ */
+ public function add_action( $name, $callback, $args = array() ) {
+ // Merge defaults.
+ $args = array_merge(
+ array(
+ 'priority' => 1,
+ 'arg_count' => PHP_INT_MAX,
+ ),
+ $args
+ );
+
+ return $this->add_hook( 'action', $name, $callback, $args );
+ }
+
+ /**
+ * Hooks a function on to a specific shortcode.
+ *
+ * @param string $name The shortcode name.
+ * @param array $callback The class object and method.
+ *
+ * @return mixed
+ */
+ public function add_shortcode( $name, $callback ) {
+ return $this->add_hook( 'shortcode', $name, $callback );
+ }
+
+ /**
+ * Hooks a function on to a specific action/filter.
+ *
+ * @param string $type The hook type. Options are action/filter.
+ * @param string $name The hook name.
+ * @param array $callback The class object and method.
+ * @param array $args An array with priority and arg_count.
+ *
+ * @return mixed
+ */
+ protected function add_hook( $type, $name, $callback, $args = array() ) {
+ $priority = isset( $args['priority'] ) ? $args['priority'] : 10;
+ $arg_count = isset( $args['arg_count'] ) ? $args['arg_count'] : PHP_INT_MAX;
+ $fn = sprintf( '\add_%s', $type );
+ $retval = \call_user_func( $fn, $name, $callback, $priority, $arg_count );
+ return $retval;
+ }
+
+ /**
+ * Add actions/filters/shortcodes from the methods of a class based on DocBlocks.
+ *
+ * @param object $object The class object.
+ */
+ public function add_doc_hooks( $object = null ) {
+ if ( is_null( $object ) ) {
+ $object = $this;
+ }
+ $class_name = get_class( $object );
+ if ( isset( $this->called_doc_hooks[ $class_name ] ) ) {
+ $notice = sprintf( 'The add_doc_hooks method was already called on %s. Note that the Plugin_Base constructor automatically calls this method.', $class_name );
+ // @codingStandardsIgnoreStart
+ trigger_error( esc_html( $notice ), \E_USER_NOTICE );
+ // @codingStandardsIgnoreEnd
+ return;
+ }
+ $this->called_doc_hooks[ $class_name ] = true;
+ $reflector = new \ReflectionObject( $object );
+ foreach ( $reflector->getMethods() as $method ) {
+ $doc = $method->getDocComment();
+ $arg_count = $method->getNumberOfParameters();
+ if ( preg_match_all( '#\* @(?Pfilter|action|shortcode)\s+(?P[a-z0-9\-\._]+)(?:,\s+(?P\d+))?#', $doc, $matches, PREG_SET_ORDER ) ) {
+ foreach ( $matches as $match ) {
+ $type = $match['type'];
+ $name = $match['name'];
+ $priority = empty( $match['priority'] ) ? 10 : intval( $match['priority'] );
+ $callback = array( $object, $method->getName() );
+ call_user_func( array( $this, "add_{$type}" ), $name, $callback, compact( 'priority', 'arg_count' ) );
+ }
+ }
+ }
+ }
+
+ /**
+ * Removes the added DocBlock hooks.
+ *
+ * @param object $object The class object.
+ */
+ public function remove_doc_hooks( $object = null ) {
+ if ( is_null( $object ) ) {
+ $object = $this;
+ }
+ $class_name = get_class( $object );
+ $reflector = new \ReflectionObject( $object );
+ foreach ( $reflector->getMethods() as $method ) {
+ $doc = $method->getDocComment();
+ if ( preg_match_all( '#\* @(?Pfilter|action|shortcode)\s+(?P[a-z0-9\-\._]+)(?:,\s+(?P\d+))?#', $doc, $matches, PREG_SET_ORDER ) ) {
+ foreach ( $matches as $match ) {
+ $type = $match['type'];
+ $name = $match['name'];
+ $priority = empty( $match['priority'] ) ? 10 : intval( $match['priority'] );
+ $callback = array( $object, $method->getName() );
+ call_user_func( "remove_{$type}", $name, $callback, $priority );
+ }
+ }
+ }
+ unset( $this->called_doc_hooks[ $class_name ] );
+ }
+}
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/php/class-plugin.php b/wp/wp-content/plugins/sharethis-share-buttons/php/class-plugin.php
new file mode 100644
index 00000000..989cf27c
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/php/class-plugin.php
@@ -0,0 +1,168 @@
+add_doc_hooks( $instance );
+ }
+
+ // Define some prefixes to use througout the plugin.
+ $this->assets_prefix = strtolower( preg_replace( '/\B([A-Z])/', '-$1', __NAMESPACE__ ) );
+ $this->meta_prefix = strtolower( preg_replace( '/\B([A-Z])/', '_$1', __NAMESPACE__ ) );
+ }
+
+ /**
+ * Register MU Script
+ *
+ * @action wp_enqueue_scripts
+ */
+ public function register_assets() {
+ $propertyid = get_option( 'sharethis_property_id' );
+ $propertyid = false !== $propertyid && null !== $propertyid ? explode( '-', $propertyid, 2 ) : array();
+ $first_prod = get_option( 'sharethis_first_product' );
+ $first_prod = false !== $first_prod && null !== $first_prod ? $first_prod : '';
+
+ if ( is_array( $propertyid ) && array() !== $propertyid ) {
+ wp_register_script(
+ "{$this->assets_prefix}-mu",
+ "//platform-api.sharethis.com/js/sharethis.js#property={$propertyid[0]}&product={$first_prod}-buttons&source=sharethis-share-buttons-wordpress",
+ array(),
+ SHARETHIS_SHARE_BUTTONS_VERSION,
+ false
+ );
+ }
+
+ // Register style sheet for sticky hiding.
+ wp_register_style(
+ "{$this->assets_prefix}-sticky",
+ "{$this->dir_url}css/mu-style.css",
+ array(),
+ filemtime( "{$this->dir_path}css/mu-style.css" )
+ );
+ }
+
+ /**
+ * Register admin scripts/styles.
+ *
+ * @action admin_enqueue_scripts
+ */
+ public function register_admin_assets() {
+ wp_register_script(
+ "{$this->assets_prefix}-mua",
+ '//platform-api.sharethis.com/js/sharethis.js?product=inline-share-buttons',
+ array(),
+ SHARETHIS_SHARE_BUTTONS_VERSION,
+ false
+ );
+ wp_register_script(
+ "{$this->assets_prefix}-admin",
+ "{$this->dir_url}js/admin.js",
+ array( 'jquery', 'jquery-ui-sortable', 'wp-util', 'wp-color-picker' ),
+ filemtime( "{$this->dir_path}js/admin.js" ),
+ false
+ );
+ wp_register_script(
+ "{$this->assets_prefix}-meta-box",
+ "{$this->dir_url}js/meta-box.js",
+ array( 'jquery', 'wp-util' ),
+ filemtime( "{$this->dir_path}js/meta-box.js" ),
+ false
+ );
+ wp_register_style(
+ "{$this->assets_prefix}-admin",
+ "{$this->dir_url}css/admin.css",
+ array( 'wp-color-picker' ),
+ filemtime( "{$this->dir_path}css/admin.css" )
+ );
+ wp_register_style(
+ "{$this->assets_prefix}-meta-box",
+ "{$this->dir_url}css/meta-box.css",
+ array(),
+ filemtime( "{$this->dir_path}css/meta-box.css" )
+ );
+ }
+
+ /**
+ * Helper to get the formated network image.
+ *
+ * @param string $title The netwokr title.
+ *
+ * @return string
+ */
+ public static function getFormattedNetworkImage( $title ) {
+ return 'https://platform-cdn.sharethis.com/img/' . self::getPlatformName( $title ) . '.svg';
+ }
+
+ /**
+ * Helper to format network title for image retrieval.
+ *
+ * @param string $title The network title.
+ *
+ * @return string
+ */
+ public static function getFormattedNetworkTitle( $title ) {
+ return sanitize_title(
+ str_replace(
+ array( ' Share Button', 'Google Bookmarks', 'Yahoo Mail' ),
+ array( '', 'Bookmarks', 'YahooMail' ),
+ $title
+ )
+ );
+ }
+
+ /**
+ *
+ * Strips name to look like platform name.
+ *
+ * @param string $title Title string.
+ *
+ * @return string Modified title string.
+ */
+ public static function getPlatformName( $title ) {
+ return str_replace(
+ array( '-pin', 'facebook-messenger', 'sina-', '-ru', 'yahoo-mail', 'okru' ),
+ array( '', 'messenger', '', 'ru', 'yahoomail', 'odnoklassniki' ),
+ $title
+ );
+ }
+}
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/php/class-share-buttons.php b/wp/wp-content/plugins/sharethis-share-buttons/php/class-share-buttons.php
new file mode 100644
index 00000000..8feea916
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/php/class-share-buttons.php
@@ -0,0 +1,1663 @@
+button_widget = $button_widget;
+ $this->plugin = $plugin;
+ $this->menu_slug = 'sharethis-inline-sticky';
+ $this->set_settings();
+ $this->set_networks();
+ $this->set_languages();
+
+ // Configure your buttons notice on activation.
+ register_activation_hook(
+ "{$this->plugin->dir_path}/sharethis-share-buttons.php",
+ array( $this, 'st_activation_hook' )
+ );
+
+ // Clean up plugin information on deactivation.
+ register_deactivation_hook(
+ "{$this->plugin->dir_path}/sharethis-share-buttons.php",
+ array( $this, 'st_deactivation_hook' )
+ );
+ }
+
+ /**
+ * Set the settings sections and fields.
+ *
+ * @access private
+ */
+ private function set_settings() {
+ // Sections config.
+ $this->setting_sections = array(
+ '►' .
+ esc_html__(
+ 'Inline Share Buttons',
+ 'sharethis-share-buttons'
+ ),
+ '►' .
+ esc_html__(
+ 'Sticky Share Buttons',
+ 'sharethis-share-buttons'
+ ),
+ '►' .
+ esc_html__(
+ 'GDPR Compliance Tool',
+ 'sharethis-share-buttons'
+ ),
+ );
+
+ // Setting configs.
+ $this->setting_fields = array(
+ array(
+ 'id_suffix' => 'inline_settings',
+ 'description' => $this->get_descriptions( 'Inline' ),
+ 'callback' => 'config_settings',
+ 'section' => 'share_button_section_1',
+ 'arg' => 'inline',
+ ),
+ array(
+ 'id_suffix' => 'sticky_settings',
+ 'description' => $this->get_descriptions( 'Sticky' ),
+ 'callback' => 'config_settings',
+ 'section' => 'share_button_section_2',
+ 'arg' => 'sticky',
+ ),
+ array(
+ 'id_suffix' => 'shortcode',
+ 'description' => $this->get_descriptions( '', 'shortcode' ),
+ 'callback' => 'shortcode_template',
+ 'section' => 'share_button_section_1',
+ 'arg' => array(
+ 'type' => 'shortcode',
+ 'value' => '[sharethis-inline-buttons]',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'template',
+ 'description' => $this->get_descriptions( '', 'template' ),
+ 'callback' => 'shortcode_template',
+ 'section' => 'share_button_section_1',
+ 'arg' => array(
+ 'type' => 'template',
+ 'value' => '',
+ ),
+ ),
+ );
+
+ // Inline setting array.
+ $this->inline_setting_fields = array(
+ array(
+ 'id_suffix' => 'inline_post_top',
+ 'title' => esc_html__( 'Top of post body', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ 'margin' => true,
+ ),
+ ),
+ array(
+ 'id_suffix' => 'inline_post_bottom',
+ 'title' => esc_html__( 'Bottom of post body', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => '',
+ 'false' => 'checked="checked"',
+ 'margin' => true,
+ ),
+ ),
+ array(
+ 'id_suffix' => 'inline_page_top',
+ 'title' => esc_html__( 'Top of page body', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => '',
+ 'false' => 'checked="checked"',
+ 'margin' => true,
+ ),
+ ),
+ array(
+ 'id_suffix' => 'inline_page_bottom',
+ 'title' => esc_html__( 'Bottom of page body', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => '',
+ 'false' => 'checked="checked"',
+ 'margin' => true,
+ ),
+ ),
+ array(
+ 'id_suffix' => 'excerpt',
+ 'title' => esc_html__( 'Include in excerpts', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => '',
+ 'false' => 'checked="checked"',
+ 'margin' => true,
+ ),
+ ),
+ );
+
+ // Sticky setting array.
+ $this->sticky_setting_fields = array(
+ array(
+ 'id_suffix' => 'sticky_home',
+ 'title' => esc_html__( 'Home Page', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_post',
+ 'title' => esc_html__( 'Posts', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_custom_posts',
+ 'title' => esc_html__( 'Custom Post Types', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_page',
+ 'title' => esc_html__( 'Pages', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_page_off',
+ 'title' => esc_html__( 'Exclude specific pages:', 'sharethis-share-buttons' ),
+ 'callback' => 'list_cb',
+ 'type' => array(
+ 'single' => 'page',
+ 'multi' => 'pages',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_category',
+ 'title' => esc_html__( 'Category archive pages', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_category_off',
+ 'title' => esc_html__( 'Exclude specific category archives:', 'sharethis-share-buttons' ),
+ 'callback' => 'list_cb',
+ 'type' => array(
+ 'single' => 'category',
+ 'multi' => 'categories',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_tags',
+ 'title' => esc_html__( 'Tags Archives', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ ),
+ ),
+ array(
+ 'id_suffix' => 'sticky_author',
+ 'title' => esc_html__( 'Author pages', 'sharethis-share-buttons' ),
+ 'callback' => 'onoff_cb',
+ 'type' => '',
+ 'default' => array(
+ 'true' => 'checked="checked"',
+ 'false' => '',
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Add in ShareThis menu option.
+ *
+ * @action admin_menu
+ */
+ public function define_sharethis_menus() {
+ $propertyid = get_option( 'sharethis_property_id' );
+
+ // Menu base64 Encoded icon.
+ $icon = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0NC4xICg0MTQ1NSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+RmlsbCAzPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtSEQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC4wMDAwMDAsIC00MzguMDAwMDAwKSIgZmlsbD0iI0ZFRkVGRSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xNTE2NDMyLDQ0OS4xMDMwMTEgQzIyLjcyNjg4NzcsNDQ5LjEwMzAxMSAyMi4zMzM1MDYyLDQ0OS4yMjg5OSAyMS45OTcwODA2LDQ0OS40Mzc5ODkgQzIxLjk5NTE0OTksNDQ5LjQzNTA5MyAyMS45OTcwODA2LDQ0OS40Mzc5ODkgMjEuOTk3MDgwNiw0NDkuNDM3OTg5IEMyMS44ODA3NTU1LDQ0OS41MDg5NDMgMjEuNzM1NDY5OCw0NDkuNTQ1NjI2IDIxLjU4OTIxODgsNDQ5LjU0NTYyNiBDMjEuNDUzMTA0LDQ0OS41NDU2MjYgMjEuMzE5ODg1Miw0NDkuNTA3NDk0IDIxLjIwODg2OTYsNDQ5LjQ0NTIyOSBMMTQuODczNzM4Myw0NDYuMDM4OTggQzE0Ljc2NDE3MDcsNDQ1Ljk5MDIzIDE0LjY4NzkwNzgsNDQ1Ljg3ODczMSAxNC42ODc5MDc4LDQ0NS43NTEzMDUgQzE0LjY4NzkwNzgsNDQ1LjYyMzM5NSAxNC43NjUxMzYsNDQ1LjUxMTg5NyAxNC44NzQ3MDM2LDQ0NS40NjI2NjQgTDIxLjIwODg2OTYsNDQyLjA1Njg5NyBDMjEuMzE5ODg1Miw0NDEuOTk1MTE1IDIxLjQ1MzEwNCw0NDEuOTU2NTAxIDIxLjU4OTIxODgsNDQxLjk1NjUwMSBDMjEuNzM1NDY5OCw0NDEuOTU2NTAxIDIxLjg4MDc1NTUsNDQxLjk5MzY2NyAyMS45OTcwODA2LDQ0Mi4wNjQ2MiBDMjEuOTk3MDgwNiw0NDIuMDY0NjIgMjEuOTk1MTQ5OSw0NDIuMDY3MDM0IDIxLjk5NzA4MDYsNDQyLjA2NDYyIEMyMi4zMzM1MDYyLDQ0Mi4yNzMxMzcgMjIuNzI2ODg3Nyw0NDIuMzk5MTE1IDIzLjE1MTY0MzIsNDQyLjM5OTExNSBDMjQuMzY2NTQwMyw0NDIuMzk5MTE1IDI1LjM1MTY4MzQsNDQxLjQxNDQ1NSAyNS4zNTE2ODM0LDQ0MC4xOTk1NTggQzI1LjM1MTY4MzQsNDM4Ljk4NDY2IDI0LjM2NjU0MDMsNDM4IDIzLjE1MTY0MzIsNDM4IEMyMi4wMTYzODc2LDQzOCAyMS4wOTMwMjcyLDQzOC44NjMwMjYgMjAuOTc1MjU0MSw0MzkuOTY3MzkgQzIwLjk3MTM5MjYsNDM5Ljk2MzA0NiAyMC45NzUyNTQxLDQzOS45NjczOSAyMC45NzUyNTQxLDQzOS45NjczOSBDMjAuOTUwNjM3NSw0NDAuMjM5MTM3IDIwLjc2OTE1MTEsNDQwLjQ2NzkyNiAyMC41MzYwMTgzLDQ0MC41ODQyNTEgTDE0LjI3OTU2MzMsNDQzLjk0NzU0MiBDMTQuMTY0MjAzNiw0NDQuMDE3MDQ3IDE0LjAyNDIyNzMsNDQ0LjA1NjE0NCAxMy44Nzk0MjQzLDQ0NC4wNTYxNDQgQzEzLjcwODU1NjgsNDQ0LjA1NjE0NCAxMy41NDgzMDgxLDQ0NC4wMDQ0OTggMTMuNDIwODgxNSw0NDMuOTEwMzc2IEMxMy4wNzUyODUsNDQzLjY4NDk2NiAxMi42NjUwMDk4LDQ0My41NTEyNjQgMTIuMjIxOTEyNiw0NDMuNTUxMjY0IEMxMS4wMDcwMTU1LDQ0My41NTEyNjQgMTAuMDIyMzU1MSw0NDQuNTM2NDA3IDEwLjAyMjM1NTEsNDQ1Ljc1MTMwNSBDMTAuMDIyMzU1MSw0NDYuOTY2MjAyIDExLjAwNzAxNTUsNDQ3Ljk1MDg2MiAxMi4yMjE5MTI2LDQ0Ny45NTA4NjIgQzEyLjY2NTAwOTgsNDQ3Ljk1MDg2MiAxMy4wNzUyODUsNDQ3LjgxNzY0MyAxMy40MjA4ODE1LDQ0Ny41OTIyMzMgQzEzLjU0ODMwODEsNDQ3LjQ5NzYyOSAxMy43MDg1NTY4LDQ0Ny40NDY0NjUgMTMuODc5NDI0Myw0NDcuNDQ2NDY1IEMxNC4wMjQyMjczLDQ0Ny40NDY0NjUgMTQuMTY0MjAzNiw0NDcuNDg1MDc5IDE0LjI3OTU2MzMsNDQ3LjU1NDU4NSBMMjAuNTM2MDE4Myw0NTAuOTE4MzU4IEMyMC43Njg2Njg0LDQ1MS4wMzQyMDEgMjAuOTUwNjM3NSw0NTEuMjYzNDcyIDIwLjk3NTI1NDEsNDUxLjUzNTIxOSBDMjAuOTc1MjU0MSw0NTEuNTM1MjE5IDIwLjk3MTM5MjYsNDUxLjUzOTU2MyAyMC45NzUyNTQxLDQ1MS41MzUyMTkgQzIxLjA5MzAyNzIsNDUyLjYzOTEwMSAyMi4wMTYzODc2LDQ1My41MDI2MDkgMjMuMTUxNjQzMiw0NTMuNTAyNjA5IEMyNC4zNjY1NDAzLDQ1My41MDI2MDkgMjUuMzUxNjgzNCw0NTIuNTE3NDY2IDI1LjM1MTY4MzQsNDUxLjMwMjU2OSBDMjUuMzUxNjgzNCw0NTAuMDg3NjcyIDI0LjM2NjU0MDMsNDQ5LjEwMzAxMSAyMy4xNTE2NDMyLDQ0OS4xMDMwMTEiIGlkPSJGaWxsLTMiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==';
+
+ // Main sharethis menu.
+ add_menu_page(
+ $this->get_descriptions( '', 'share_buttons' ),
+ __( 'ShareThis Share Buttons', 'sharethis-share-buttons' ),
+ 'manage_options',
+ $this->menu_slug . '-share-buttons',
+ array( $this, 'share_button_display' ),
+ $icon,
+ 26
+ );
+ }
+
+ /**
+ * Enqueue main MU script.
+ *
+ * @action wp_enqueue_scripts
+ */
+ public function enqueue_mu() {
+ wp_enqueue_script( "{$this->plugin->assets_prefix}-mu" );
+ }
+
+ /**
+ * Enqueue admin assets.
+ *
+ * @action admin_enqueue_scripts
+ *
+ * @param string $hook_suffix The current admin page.
+ */
+ public function enqueue_admin_assets( $hook_suffix ) {
+ // Are sticky and inline buttons enabled.
+ $inline = 'true' === get_option( 'sharethis_inline' ) || true === get_option( 'sharethis_inline' ) ?
+ true :
+ false;
+ $sticky = 'true' === get_option( 'sharethis_sticky' ) || true === get_option( 'sharethis_sticky' ) ?
+ true :
+ false;
+ $gdpr = 'true' === get_option( 'sharethis_gdpr' ) || true === get_option( 'sharethis_gdpr' ) ?
+ true :
+ false;
+ $first_exists = get_option( 'sharethis_first_product' );
+ $first_button = false !== $first_exists && null !== $first_exists ? $first_exists : '';
+ $first_exists = false === $first_exists || null === $first_exists || '' === $first_exists ? true : false;
+ $propertyid = explode( '-', get_option( 'sharethis_property_id' ), 2 );
+ $token = get_option( 'sharethis_token' );
+ $property_id = isset( $propertyid[0] ) ? $propertyid[0] : '';
+ $secret = isset( $propertyid[1] ) ? $propertyid[1] : '';
+ $button_config = get_option( 'sharethis_button_config', true );
+ $button_config = false !== $button_config && null !== $button_config ? $button_config : '';
+
+ if ( '' === $property_id ) {
+ wp_register_script(
+ "{$this->plugin->assets_prefix}-credentials",
+ $this->plugin->dir_url . 'js/set-credentials.js',
+ array( 'jquery', 'wp-util' ),
+ filemtime( "{$this->plugin->dir_path}js/set-credentials.js" ),
+ false
+ );
+
+ // Only enqueue this script on the general settings page for credentials.
+ wp_enqueue_script( "{$this->plugin->assets_prefix}-credentials" );
+ wp_add_inline_script(
+ "{$this->plugin->assets_prefix}-credentials",
+ sprintf(
+ 'Credentials.boot( %s );',
+ wp_json_encode(
+ array(
+ 'nonce' => wp_create_nonce( $this->plugin->meta_prefix ),
+ 'email' => get_bloginfo( 'admin_email' ),
+ 'url' => str_replace( 'http://', '', str_replace( 'https://', '', site_url() ) ),
+ 'buttonConfig' => $button_config,
+ )
+ )
+ )
+ );
+ }
+
+ // Only enqueue assets on this plugin admin menu.
+ if ( 'toplevel_page_sharethis-inline-sticky-share-buttons' !== $hook_suffix ) {
+ return;
+ }
+
+ // Enqueue the styles globally throughout the ShareThis menus.
+ wp_enqueue_style( "{$this->plugin->assets_prefix}-admin" );
+ wp_enqueue_script( "{$this->plugin->assets_prefix}-mua" );
+
+ if ( $first_exists && ( $inline || $sticky ) ) {
+ $first = $inline ? 'inline' : 'sticky';
+
+ update_option( 'sharethis_first_product', $first );
+ }
+
+ wp_enqueue_script( "{$this->plugin->assets_prefix}-admin" );
+ wp_add_inline_script(
+ "{$this->plugin->assets_prefix}-admin",
+ sprintf(
+ 'ShareButtons.boot( %s );',
+ wp_json_encode(
+ array(
+ 'inlineEnabled' => $inline,
+ 'stickyEnabled' => $sticky,
+ 'gdprEnabled' => $gdpr,
+ 'propertyid' => $property_id,
+ 'token' => $token,
+ 'secret' => $secret,
+ 'buttonConfig' => $button_config,
+ 'nonce' => wp_create_nonce( $this->plugin->meta_prefix ),
+ 'fresh' => get_option( 'sharethis_fract' ),
+ 'first' => get_option( 'sharethis_first_product', false ),
+ )
+ )
+ )
+ );
+ }
+
+ /**
+ * Call back for displaying Share Buttons settings page.
+ */
+ public function share_button_display() {
+ // Check user capabilities.
+ if ( ! current_user_can( 'manage_options' ) ) {
+ return;
+ }
+
+ $description = $this->get_descriptions( '', 'share_buttons' );
+ $enabled = array(
+ 'inline' => 'true' === get_option( 'sharethis_inline' ) ? 'Enabled' : 'Disabled',
+ 'sticky' => 'true' === get_option( 'sharethis_sticky' ) ? 'Enabled' : 'Disabled',
+ 'gdpr' => 'true' === get_option( 'sharethis_gdpr' ) ? 'Enabled' : 'Disabled',
+ );
+
+ include_once "{$this->plugin->dir_path}/templates/share-buttons/share-button-settings.php";
+ }
+
+ /**
+ * Define share button setting sections and fields.
+ *
+ * @action admin_init
+ */
+ public function settings_api_init() {
+ // Register sections.
+ foreach ( $this->setting_sections as $index => $title ) {
+ // Since the index starts at 0, let's increment it by 1.
+ $i = $index + 1;
+ $section = "share_button_section_{$i}";
+
+ switch ( $i ) {
+ case 1:
+ $arg = 'inline';
+ break;
+ case 2:
+ $arg = 'sticky';
+ break;
+ case 3:
+ $arg = 'gdpr';
+ break;
+ }
+
+ // Add setting section.
+ add_settings_section(
+ $section,
+ '',
+ array( $this, 'social_button_link' ),
+ $this->menu_slug . '-share-buttons',
+ array( $arg )
+ );
+ }
+
+ // Register setting fields.
+ foreach ( $this->setting_fields as $setting_field ) {
+ register_setting( $this->menu_slug . '-share-buttons', $this->menu_slug . '_' . $setting_field['id_suffix'] );
+ add_settings_field(
+ $this->menu_slug . '_' . $setting_field['id_suffix'],
+ $setting_field['description'],
+ array( $this, $setting_field['callback'] ),
+ $this->menu_slug . '-share-buttons',
+ $setting_field['section'],
+ $setting_field['arg']
+ );
+ }
+
+ // Register omit settings.
+ register_setting( $this->menu_slug . '-share-buttons', $this->menu_slug . '_sticky_page_off' );
+ register_setting( $this->menu_slug . '-share-buttons', $this->menu_slug . '_sticky_category_off' );
+ }
+
+ /**
+ * Call back function for on / off buttons.
+ *
+ * @param string $type The setting type.
+ */
+ public function config_settings( $type ) {
+ $config_array = 'inline' === $type ? $this->inline_setting_fields : $this->sticky_setting_fields;
+
+ // Display on off template for inline settings.
+ foreach ( $config_array as $setting ) {
+ $option = 'sharethis_' . $setting['id_suffix'];
+ $title = isset( $setting['title'] ) ? $setting['title'] : '';
+ $option_value = get_option( 'sharethis_' . $type . '_settings' );
+ $default = isset( $setting['default'] ) ? $setting['default'] : '';
+ $allowed = array(
+ 'li' => array(
+ 'class' => array(),
+ ),
+ 'span' => array(
+ 'id' => array(),
+ 'class' => array(),
+ ),
+ 'input' => array(
+ 'id' => array(),
+ 'name' => array(),
+ 'type' => array(),
+ 'value' => array(),
+ ),
+ );
+
+ // Margin control variables.
+ $margin = isset( $setting['default']['margin'] ) ? $setting['default']['margin'] : false;
+ $mclass = isset( $option_value[ $option . '_margin_top' ] ) &&
+ 0 !== (int) $option_value[ $option . '_margin_top' ] ||
+ isset( $option_value[ $option . '_margin_bottom' ] ) &&
+ 0 !== (int) $option_value[ $option . '_margin_bottom' ] ?
+ 'active-margin' : '';
+ $onoff = '' !== $mclass ? __( 'On', 'sharethis-share-buttons' ) : __( 'Off', 'sharethis-share-buttons' );
+ $active = array(
+ 'class' => $mclass,
+ 'onoff' => esc_html( $onoff ),
+ );
+
+ if ( isset( $option_value[ $option ] ) && false !== $option_value[ $option ] && null !== $option_value[ $option ] ) {
+ $default = array(
+ 'true' => '',
+ 'false' => '',
+ );
+ }
+
+ // Display the list call back if specified.
+ if ( 'onoff_cb' === $setting['callback'] ) {
+ include "{$this->plugin->dir_path}/templates/share-buttons/onoff-buttons.php";
+ } else {
+ $current_omit = $this->get_omit( $setting['type'] );
+
+ $this->list_cb( $setting['type'], $current_omit, $allowed );
+ }
+ }
+ }
+
+ /**
+ * Helper function to build the omit list html
+ *
+ * @access private
+ *
+ * @param array $setting the omit type.
+ *
+ * @return string The html for omit list.
+ */
+ private function get_omit( $setting ) {
+ $current_omit = get_option( 'sharethis_sticky_' . $setting['single'] . '_off' );
+ $current_omit = isset( $current_omit ) ? $current_omit : '';
+ $html = '';
+
+ if ( is_array( $current_omit ) ) {
+ foreach ( $current_omit as $title => $id ) {
+ $html .= '';
+ $html .= $title;
+ $html .= 'X';
+ $html .= "";
+ $html .= '';
+ }
+ }
+
+ // Add ommit ids to meta box option.
+ $this->update_metabox_list( $current_omit );
+
+ return $html;
+ }
+
+ /**
+ * Helper function to update metabox list to sync with omit.
+ *
+ * @param array $current_omit The omit list.
+ */
+ private function update_metabox_list( $current_omit ) {
+ $current_on = get_option( 'sharethis_sticky_page_on' );
+
+ if ( true === isset( $current_on, $current_omit )
+ && true === is_array( $current_on )
+ && true === is_array( $current_omit )
+ ) {
+ $new_on = array_diff( $current_on, $current_omit );
+
+ if ( true === is_array( $new_on ) ) {
+ delete_option( 'sharethis_sticky_page_on' );
+ delete_option( 'sharethis_sticky_page_off' );
+
+ update_option( 'sharethis_sticky_page_off', $current_omit );
+ update_option( 'sharethis_sticky_page_on', $new_on );
+ }
+ }
+ }
+
+ /**
+ * Callback function for on/off buttons
+ *
+ * @param array $id The setting type.
+ */
+ public function enable_cb( $id ) {
+ include "{$this->plugin->dir_path}/templates/share-buttons/enable-buttons.php";
+ }
+
+ /**
+ * Callback function for omitting fields.
+ *
+ * @param array $type The type of list to return for exlusion.
+ * @param array $current_omit The currently omited items.
+ * @param array $allowed The allowed html that an omit item can echo.
+ */
+ public function list_cb( $type, $current_omit, $allowed ) {
+ include "{$this->plugin->dir_path}/templates/share-buttons/list.php";
+ }
+
+ /**
+ * Callback function for the shortcode and template code fields.
+ *
+ * @param string $type The type of template to pull.
+ */
+ public function shortcode_template( $type ) {
+ include "{$this->plugin->dir_path}/templates/share-buttons/shortcode-templatecode.php";
+ }
+
+ /**
+ * Callback function for the login buttons.
+ *
+ * @param string $button The specific product to link to.
+ */
+ public function social_button_link( $button ) {
+ $networks = $this->networks;
+ $languages = $this->languages;
+
+ if ( isset( $button['id'] ) && 'share_button_section_3' === $button['id'] ) {
+ // User type options.
+ $user_types = array(
+ 'eu' => esc_html__( 'Only visitors in the EU', 'sharethis-custom' ),
+ 'always' => esc_html__( 'All visitors globally', 'sharethis-custom' ),
+ );
+
+ $vendor_data = $this->get_vendors();
+
+ if ( $vendor_data ) {
+ $vendors = $vendor_data['vendors'];
+ $purposes = array_column( $vendor_data['purposes'], 'name', 'id' );
+ }
+
+ $enabled = array(
+ 'gdpr' => 'true' === get_option( 'sharethis_gdpr' ) ? 'Enabled' : 'Disabled',
+ );
+
+ // Template vars.
+ $colors = array(
+ '#e31010',
+ '#000000',
+ '#ffffff',
+ '#09cd18',
+ '#ff6900',
+ '#fcb900',
+ '#7bdcb5',
+ '#00d084',
+ '#8ed1fc',
+ '#0693e3',
+ '#abb8c3',
+ '#eb144c',
+ '#f78da7',
+ '#9900ef',
+ '#b80000',
+ '#db3e00',
+ '#fccb00',
+ '#008b02',
+ '#006b76',
+ '#1273de',
+ '#004dcf',
+ '#5300eb',
+ '#eb9694',
+ '#fad0c3',
+ '#fef3bd',
+ '#c1e1c5',
+ '#bedadc',
+ '#c4def6',
+ '#bed3f3',
+ '#d4c4fb',
+ );
+
+ include "{$this->plugin->dir_path}/templates/general/gdpr/gdpr-config.php";
+ } else {
+ $enabled = array(
+ 'inline' => 'true' === get_option( 'sharethis_inline' ) ? 'Enabled' : 'Disabled',
+ 'sticky' => 'true' === get_option( 'sharethis_sticky' ) ? 'Enabled' : 'Disabled',
+ 'gdpr' => 'true' === get_option( 'sharethis_gdpr' ) ? 'Enabled' : 'Disabled',
+ );
+
+ include "{$this->plugin->dir_path}/templates/share-buttons/button-config.php";
+ }
+ }
+
+ /**
+ * Define setting descriptions.
+ *
+ * @param string $type Type of button.
+ * @param string $subtype Setting type.
+ *
+ * @access private
+ * @return string|void
+ */
+ private function get_descriptions( $type = '', $subtype = '' ) {
+ global $current_user;
+
+ switch ( $subtype ) {
+ case '':
+ $description = esc_html__( 'WordPress Display Settings', 'sharethis-share-buttons' );
+ $description .= '';
+ $description .= esc_html__(
+ 'Use these settings to automatically include or restrict the display of ',
+ 'sharethis-share-buttons'
+ ) . esc_html( $type ) . esc_html__(
+ ' Share Buttons on specific pages of your site.',
+ 'sharethis-share-buttons'
+ );
+ $description .= '';
+ break;
+ case 'shortcode':
+ $description = esc_html__( 'Shortcode', 'sharethis-share-buttons' );
+ $description .= '';
+ $description .= esc_html__(
+ 'Use this shortcode to deploy your inline share buttons in a widget, or WYSIWYG editor.',
+ 'sharethis-share-buttons'
+ );
+ $description .= '';
+ break;
+ case 'template':
+ $description = esc_html__( 'PHP', 'sharethis-share-buttons' );
+ $description .= '';
+ $description .= esc_html__(
+ 'Use this PHP snippet to include your inline share buttons anywhere else in your template.',
+ 'sharethis-share-buttons'
+ );
+ $description .= '';
+ break;
+ case 'social':
+ $description = esc_html__( 'Social networks and button styles', 'sharethis-share-buttons' );
+ $description .= '';
+ $description .= esc_html__(
+ 'Login to ShareThis Platform to add, remove or re-order social networks in your ',
+ 'sharethis-share-buttons'
+ ) . esc_html( $type ) . esc_html__(
+ ' Share buttons. You may also update the alignment, size, labels and count settings.',
+ 'sharethis-share-buttons'
+ );
+ $description .= '';
+ break;
+ case 'property':
+ $description = esc_html__( 'Property ID', 'sharethis-share-buttons' );
+ $description .= '';
+ $description .= esc_html__(
+ 'We use this unique ID to identify your property. Copy it from your ',
+ 'sharethis-share-buttons'
+ );
+ $description .= '';
+ $description .= esc_html__( 'ShareThis platform settings', 'sharethis-share-buttons' );
+ $description .= '';
+ break;
+ case 'share_buttons':
+ $description = '';
+ break;
+ }
+
+ return wp_kses_post( $description );
+ }
+
+ /**
+ * Set the property id and secret key for the user's platform account if query params are present.
+ *
+ * @action wp_ajax_set_credentials
+ */
+ public function set_credentials() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ if ( ! isset( $_POST['data'], $_POST['token'] ) || '' === $_POST['data'] ) { // WPCS: input var ok.
+ wp_send_json_error( 'Set credentials failed.' );
+ }
+
+ $data = sanitize_text_field( wp_unslash( $_POST['data'] ) ); // WPCS: input var ok.
+ $token = sanitize_text_field( wp_unslash( $_POST['token'] ) ); // WPCS: input var ok.
+
+ // If both variables exist add them to a database option.
+ if ( false === get_option( 'sharethis_property_id' ) ) {
+ update_option( 'sharethis_property_id', $data );
+ update_option( 'sharethis_token', $token );
+ }
+ }
+
+ /**
+ * Helper function to determine if property ID is set.
+ *
+ * @param string $type Should empty count as false.
+ *
+ * @access private
+ * @return bool
+ */
+ private function is_property_id_set( $type = '' ) {
+ $property_id = get_option( 'sharethis_property_id' );
+
+ // If the property id is set then show the general settings template.
+ if ( false !== $property_id && null !== $property_id ) {
+ if ( 'empty' === $type && '' === $property_id ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * AJAX Call back to update status of buttons
+ *
+ * @action wp_ajax_update_buttons
+ */
+ public function update_buttons() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ if ( ! isset( $_POST['type'], $_POST['onoff'] ) ) { // phpcs:ignore input var ok.
+ wp_send_json_error( 'Update buttons failed.' );
+ }
+
+ // Set option type and button value.
+ $type = 'sharethis_' . sanitize_text_field( wp_unslash( $_POST['type'] ) ); // WPCS: input var ok.
+ $onoff = sanitize_text_field( wp_unslash( $_POST['onoff'] ) ); // WPCS: input var ok.
+
+ if ( 'On' === $onoff ) {
+ update_option( $type, 'true' );
+ } elseif ( 'Off' === $onoff ) {
+ update_option( $type, 'false' );
+ }
+ }
+
+ /**
+ * AJAX Call back to update buttons show/hide settings.
+ *
+ * @action wp_ajax_update_st_settings
+ */
+ public function update_st_settings() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ if ( ! isset( $_POST['formData'], $_POST['button'] ) ) { // phpcs:ignore input var ok.
+ wp_send_json_error( 'Update settings failed.' );
+ }
+
+ $button = sanitize_text_field( wp_unslash( filter_input( INPUT_POST, 'button', FILTER_UNSAFE_RAW ) ) );
+ $form_data = sanitize_text_field( wp_unslash( filter_input( INPUT_POST, 'formData', FILTER_UNSAFE_RAW ) ) );
+ $new_form_data = array();
+
+ if ( false === empty( $form_data ) ) {
+ foreach ( json_decode( $form_data, true ) as $form_data_item_name => $form_data_value ) {
+ $new_name = str_replace( array( 'sharethis_' . $button . '_settings[', ']' ), array( '', '' ), $form_data_item_name );
+ $new_form_data[ $new_name ] = $form_data_value;
+ }
+
+ update_option( 'sharethis_' . $button . '_settings', $new_form_data );
+ wp_send_json_success( 'Settings saved' );
+ }
+
+ wp_send_json_error( 'Update settings failed.' );
+ }
+
+ /**
+ * AJAX Call back to set defaults when reset button is clicked.
+ *
+ * @action wp_ajax_set_default_settings
+ */
+ public function set_default_settings() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ if ( ! isset( $_POST['type'] ) ) { // WPCS: CRSF ok. input var ok.
+ wp_send_json_error( 'Update buttons failed.' );
+ }
+
+ // Set option type and button value.
+ $type = strtolower( sanitize_text_field( wp_unslash( $_POST['type'] ) ) ); // WPCS: input var ok.
+
+ // Note the new install.
+ update_option( 'sharethis_fract', 'true' );
+
+ $this->set_the_defaults( $type );
+ }
+
+ /**
+ * Helper function to set the default button options.
+ *
+ * @param string $type The type of default to set.
+ */
+ private function set_the_defaults( $type ) {
+ $default = array(
+ 'inline_settings' => array(
+ 'sharethis_inline_post_top' => 'true',
+ 'sharethis_inline_post_bottom' => 'false',
+ 'sharethis_inline_page_top' => 'false',
+ 'sharethis_inline_page_bottom' => 'false',
+ 'sharethis_excerpt' => 'false',
+ 'sharethis_inline_post_top_margin_top' => 0,
+ 'sharethis_inline_post_top_margin_bottom' => 0,
+ 'sharethis_inline_post_bottom_margin_top' => 0,
+ 'sharethis_inline_post_bottom_margin_bottom' => 0,
+ 'sharethis_inline_page_top_margin_top' => 0,
+ 'sharethis_inline_page_top_margin_bottom' => 0,
+ 'sharethis_inline_page_bottom_margin_top' => 0,
+ 'sharethis_inline_page_bottom_margin_bottom' => 0,
+ 'sharethis_excerpt_margin_top' => 0,
+ 'sharethis_excerpt_margin_bottom' => 0,
+ ),
+ 'sticky_settings' => array(
+ 'sharethis_sticky_home' => 'true',
+ 'sharethis_sticky_post' => 'true',
+ 'sharethis_sticky_custom_posts' => 'true',
+ 'sharethis_sticky_page' => 'true',
+ 'sharethis_sticky_category' => 'true',
+ 'sharethis_sticky_tags' => 'true',
+ 'sharethis_sticky_author' => 'true',
+ ),
+ 'sticky_page_off' => '',
+ 'sticky_category_off' => '',
+ );
+
+ if ( 'both' !== $type ) {
+ update_option( 'sharethis_' . $type . '_settings', $default[ $type . '_settings' ] );
+
+ if ( 'sticky' === $type ) {
+ update_option( 'sharethis_sticky_page_off', '' );
+ update_option( 'sharethis_sticky_category_off', '' );
+ }
+ } else {
+ foreach ( $default as $types => $settings ) {
+ update_option( 'sharethis_' . $types, $settings );
+ }
+ }
+ }
+
+ /**
+ * Ajax Call back to return categories or pages based on input.
+ *
+ * @action wp_ajax_return_omit
+ */
+ public function return_omit() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ $post = filter_input_array(
+ INPUT_POST,
+ array(
+ 'key' => FILTER_UNSAFE_RAW,
+ 'type' => FILTER_UNSAFE_RAW,
+ )
+ );
+
+ if ( true === empty( $post['key'] ) || true === empty( $post['type'] ) ) {
+ wp_send_json_error( '' );
+ }
+
+ $sharethis_sticky_category_off = get_option( 'sharethis_sticky_category_off', array() );
+
+ if ( false === is_array( $sharethis_sticky_category_off ) ) {
+ $sharethis_sticky_category_off = array();
+ }
+
+ $current_cat = array_values( $sharethis_sticky_category_off );
+
+ if ( 'category' === $post['type'] ) {
+ // Search category names LIKE $key_input.
+ $categories = get_categories(
+ array(
+ 'name__like' => htmlspecialchars( $post['key'] ),
+ 'exclude' => $current_cat,
+ 'hide_empty' => false,
+ )
+ );
+
+ foreach ( $categories as $cats ) {
+ $related[] = array(
+ 'id' => $cats->term_id,
+ 'title' => $cats->name,
+ );
+ }
+ } else {
+ global $wpdb;
+
+ // @codingStandardsIgnoreStart
+ $pages = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT ID, post_title
+ FROM $wpdb->posts
+ WHERE post_title LIKE '%%s%'
+ AND post_type = 'page'",
+ htmlspecialchars( $post['key'] )
+ )
+ );
+ // @codingStandardsIgnoreEnd
+
+ foreach ( $pages as $page ) {
+ if ( true === $this->not_in_list( $page->ID ) ) {
+ $related[] = array(
+ 'id' => $page->ID,
+ 'title' => $page->post_title,
+ );
+ }
+ }
+ }
+
+ // Create output list if any results exist.
+ if ( count( $related ) > 0 ) {
+ foreach ( $related as $items ) {
+ $item_option[] = sprintf(
+ '
%2$s',
+ (int) $items['id'],
+ esc_html( $items['title'] )
+ );
+ }
+
+ wp_send_json_success( $item_option );
+ } else {
+ wp_send_json_error( 'no results' );
+ }
+ }
+
+ /**
+ * Helper function to determine if page is in the list already.
+ *
+ * @param integer $id The page id.
+ *
+ * @return bool
+ */
+ private function not_in_list( $id ) {
+ $sharethis_sticky_page_off = get_option( 'sharethis_sticky_page_off', array() );
+
+ if ( false === is_array( $sharethis_sticky_page_off ) ) {
+ $sharethis_sticky_page_off = array();
+ }
+
+ $current_pages = array_values( $sharethis_sticky_page_off );
+
+ return true === empty( $current_pages ) || false === in_array( $id, $current_pages, true );
+ }
+
+ /**
+ * Display custom admin notice.
+ *
+ * @action admin_notices
+ */
+ public function connection_made_admin_notice() {
+ $screen = get_current_screen();
+ if ( 'sharethis_page_sharethis-share-buttons' === $screen->base ) {
+ settings_errors();
+
+ $reset = filter_input( INPUT_GET, 'reset', FILTER_UNSAFE_RAW );
+
+ if ( false === empty( $reset ) ) {
+ ?>
+
+ set_the_defaults( 'both' );
+ }
+
+ /**
+ * Admin Notice on Activation.
+ *
+ * @action admin_notices
+ */
+ public function activation_inform_notice() {
+ $screen = get_current_screen();
+ $product = get_option( 'sharethis_first_product' );
+ $product = null !== $product && false !== $product ? ucfirst( $product ) : 'your';
+ $gen_url = '
+ configuration
+ ';
+
+ if ( ! $this->is_property_id_set() ) {
+ $gen_url = 'configuration';
+ }
+
+ // Check transient, if available display notice.
+ if ( get_transient( 'st-activation' ) ) {
+ ?>
+
+ base &&
+ get_transient( 'st-connection' ) &&
+ true === empty( $nft )
+ ) {
+ ?>
+
+ $value ) {
+ if ( strpos( $option, 'sharethis_' ) === 0 ) {
+ delete_option( $option );
+ }
+ }
+ }
+
+ /**
+ * Register the button widget.
+ *
+ * @action widgets_init
+ */
+ public function register_widgets() {
+ register_widget( $this->button_widget );
+ }
+
+ /**
+ * Set the languages array.
+ */
+ private function set_languages() {
+ $this->languages = array(
+ 'English' => 'en',
+ 'German' => 'de',
+ 'Spanish' => 'es',
+ 'French' => 'fr',
+ 'Italian' => 'it',
+ 'Japanese' => 'ja',
+ 'Korean' => 'ko',
+ 'Portuguese' => 'pt',
+ 'Russian' => 'ru',
+ 'Chinese' => 'zh',
+ );
+ }
+
+
+ /**
+ * Set network array with info.
+ */
+ private function set_networks() {
+ $this->networks = array(
+ 'facebook' => array(
+ 'color' => '#3B5998',
+ 'selected' => 'true',
+ ),
+ 'twitter' => array(
+ 'color' => '#000000',
+ 'selected' => 'true',
+ ),
+ 'pinterest' => array(
+ 'color' => '#CB2027',
+ 'selected' => 'true',
+ ),
+ 'email' => array(
+ 'color' => '#7d7d7d',
+ 'selected' => 'true',
+ ),
+ 'sms' => array(
+ 'color' => '#ffbd00',
+ 'selected' => 'true',
+ ),
+ 'messenger' => array(
+ 'color' => '#448AFF',
+ 'selected' => 'false',
+ 'url' => 'messenger.com/',
+ ),
+ 'sharethis' => array(
+ 'color' => '#95D03A',
+ 'selected' => 'true',
+ ),
+ 'linkedin' => array(
+ 'color' => '#0077b5',
+ 'selected' => 'false',
+ ),
+ 'reddit' => array(
+ 'color' => '#ff4500',
+ 'selected' => 'false',
+ ),
+ 'tumblr' => array(
+ 'color' => '#32506d',
+ 'selected' => 'false',
+ ),
+ 'digg' => array(
+ 'color' => '#262626',
+ 'selected' => 'false',
+ ),
+ 'iorbix' => array(
+ 'color' => '#364447',
+ 'selected' => 'false',
+ ),
+ 'kakao' => array(
+ 'color' => '#F9DD4A',
+ 'selected' => 'false',
+ ),
+ 'kindleit' => array(
+ 'color' => '#363C3D',
+ 'selected' => 'false',
+ ),
+ 'kooapp' => array(
+ 'color' => '#FACB05',
+ 'selected' => 'false',
+ ),
+ 'outlook' => array(
+ 'color' => '#3070CB',
+ 'selected' => 'false',
+ ),
+ 'tencentqq' => array(
+ 'color' => '#5790F7',
+ 'selected' => 'false',
+ ),
+ 'trello' => array(
+ 'color' => '#0D63DE',
+ 'selected' => 'false',
+ ),
+ 'viber' => array(
+ 'color' => '#645EA4',
+ 'selected' => 'false',
+ ),
+ 'yummly' => array(
+ 'color' => '#E16120',
+ 'selected' => 'false',
+ ),
+ 'stumbleupon' => array(
+ 'color' => '#eb4924',
+ 'selected' => 'false',
+ ),
+ 'whatsapp' => array(
+ 'color' => '#25d366',
+ 'selected' => 'false',
+ ),
+ 'vk' => array(
+ 'color' => '#4c6c91',
+ 'selected' => 'false',
+ ),
+ 'weibo' => array(
+ 'color' => '#ff9933',
+ 'selected' => 'false',
+ ),
+ 'odnoklassniki' => array(
+ 'color' => '#d7772d',
+ 'selected' => 'false',
+ ),
+ 'xing' => array(
+ 'color' => '#1a7576',
+ 'selected' => 'false',
+ ),
+ 'print' => array(
+ 'color' => '#222222',
+ 'selected' => 'false',
+ ),
+ 'blogger' => array(
+ 'color' => '#ff8000',
+ 'selected' => 'false',
+ ),
+ 'flipboard' => array(
+ 'color' => '#e12828',
+ 'selected' => 'false',
+ ),
+ 'meneame' => array(
+ 'color' => '#ff6400',
+ 'selected' => 'false',
+ ),
+ 'mailru' => array(
+ 'color' => '#168de2',
+ 'selected' => 'false',
+ ),
+ 'delicious' => array(
+ 'color' => '#205cc0',
+ 'selected' => 'false',
+ ),
+ 'buffer' => array(
+ 'color' => '#323b43',
+ 'selected' => 'false',
+ ),
+ 'diigo' => array(
+ 'color' => '#5285c4',
+ 'selected' => 'false',
+ ),
+ 'diaspora' => array(
+ 'color' => '#000000',
+ 'selected' => 'false',
+ ),
+ 'douban' => array(
+ 'color' => '#2e963d',
+ 'selected' => 'false',
+ ),
+ 'evernote' => array(
+ 'color' => '#5ba525',
+ 'selected' => 'false',
+ ),
+ 'fark' => array(
+ 'color' => '#6a6a9c',
+ 'selected' => 'false',
+ ),
+ 'googlebookmarks' => array(
+ 'color' => '#4285F4',
+ 'selected' => 'false',
+ ),
+ 'gmail' => array(
+ 'color' => '#D44638',
+ 'selected' => 'false',
+ ),
+ 'hackernews' => array(
+ 'color' => '#ff4000',
+ 'selected' => 'false',
+ ),
+ 'houzz' => array(
+ 'color' => '#4DBC15',
+ 'selected' => 'false',
+ ),
+ 'instapaper' => array(
+ 'color' => '#000000',
+ 'selected' => 'false',
+ ),
+ 'line' => array(
+ 'color' => '#00c300',
+ 'selected' => 'false',
+ ),
+ 'microsoftteams' => array(
+ 'color' => '#515bc1',
+ 'selected' => 'false',
+ ),
+ 'naver' => array(
+ 'color' => '#07bc5e',
+ 'selected' => 'false',
+ ),
+ 'nextdoor' => array(
+ 'color' => '#8ed500',
+ 'selected' => 'false',
+ ),
+ 'pinboard' => array(
+ 'color' => '#1f36f2',
+ 'selected' => 'false',
+ ),
+ 'plurk' => array(
+ 'color' => '#FF574D',
+ 'selected' => 'false',
+ ),
+ 'pocket' => array(
+ 'color' => '#ef4056',
+ 'selected' => 'false',
+ ),
+ 'qzone' => array(
+ 'color' => '#F1C40F',
+ 'selected' => 'false',
+ ),
+ 'refind' => array(
+ 'color' => '#4286f4',
+ 'selected' => 'false',
+ ),
+ 'renren' => array(
+ 'color' => '#005baa',
+ 'selected' => 'false',
+ ),
+ 'surfingbird' => array(
+ 'color' => '#6dd3ff',
+ 'selected' => 'false',
+ ),
+ 'skype' => array(
+ 'color' => '#00aff0',
+ 'selected' => 'false',
+ ),
+ 'telegram' => array(
+ 'color' => '#37AEE2',
+ 'selected' => 'false',
+ ),
+ 'threema' => array(
+ 'color' => '#000000',
+ 'selected' => 'false',
+ ),
+ 'yahoomail' => array(
+ 'color' => '#720e9e',
+ 'selected' => 'false',
+ ),
+ 'wordpress' => array(
+ 'color' => '#21759b',
+ 'selected' => 'false',
+ ),
+ 'wechat' => array(
+ 'color' => '#4EC034',
+ 'selected' => 'false',
+ 'url' => 'wechat.com/',
+ ),
+ 'blm' => array(
+ 'color' => '#000000',
+ 'selected' => 'false',
+ ),
+ 'livejournal' => array(
+ 'color' => '#00b0ea',
+ 'selected' => 'false',
+ ),
+ 'snapchat' => array(
+ 'color' => '#FFFC00',
+ 'selected' => 'false',
+ ),
+ );
+ }
+
+ /**
+ * AJAX Call back to save the set up button config for setup.
+ *
+ * @action wp_ajax_set_button_config
+ */
+ public function set_button_config() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ $post = filter_input_array(
+ INPUT_POST,
+ array(
+ 'button' => FILTER_UNSAFE_RAW,
+ 'config' => array(
+ 'filter' => FILTER_DEFAULT,
+ 'flags' => FILTER_REQUIRE_ARRAY,
+ ),
+ 'first' => FILTER_UNSAFE_RAW,
+ 'nonce' => FILTER_UNSAFE_RAW,
+ 'fresh' => FILTER_UNSAFE_RAW,
+ 'type' => FILTER_UNSAFE_RAW,
+ )
+ );
+
+ if ( 'true' === htmlspecialchars( $post['fresh'] ) ) {
+ update_option( 'sharethis_fract', 'false' );
+ }
+
+ if ( true === empty( $post['button'] ) || true === empty( $post['config'] ) ) {
+ wp_send_json_error( 'Button Config Set Failed' );
+ }
+
+ $networks = true === isset( $post['config']['networks'] ) ?
+ array_map( 'sanitize_text_field', wp_unslash( $post['config']['networks'] ) ) :
+ '';
+
+ // Set Purposes.
+ $purposes = isset( $post['config']['publisher_purposes'] ) ? $post['config']['publisher_purposes'] : '';
+
+ $first = ( true === isset( $post['first'] ) && 'upgrade' !== $post['first'] );
+ $type = ( false === empty( $post['type'] ) );
+ $button = sanitize_text_field( wp_unslash( $post['button'] ) );
+ $config = $post['config'];
+
+ // If user doesn't have a sharethis account already.
+ if ( false === $type ) {
+ $newconfig[ strtolower( $button ) ] = $config;
+ $config = $newconfig;
+ } else {
+ $config = 'platform' !== $button ? json_decode( str_replace( '\\', '', $config ), true ) : $config;
+ }
+
+ $restrictions = isset( $config[ $button ]['publisher_restrictions'] ) ? $config[ $button ]['publisher_restrictions'] : '';
+
+ if ( false === $first ) {
+ $current_config = get_option( 'sharethis_button_config', array() );
+ $current_config = true === is_array( $current_config ) ? $current_config : array();
+ $current_config[ $button ] = $post['config'];
+ $current_config[ $button ]['networks'] = $networks;
+
+ if ( 'gdpr' === $button ) {
+ $current_config[ $button ]['publisher_purposes'] = $purposes;
+ }
+
+ $config = $current_config;
+
+ if ( 'gdpr' === $button ) {
+ $config['gdpr']['publisher_restrictions'] = $restrictions;
+ }
+ }
+ // Make sure bool is "true" or "false".
+ if ( isset( $config['inline'] ) ) {
+ $config['inline']['enabled'] = ( true === $config['inline']['enabled'] ||
+ '1' === $config['inline']['enabled'] ||
+ 'true' === $config['inline']['enabled'] );
+ }
+
+ if ( isset( $config['sticky'] ) ) {
+ $config['sticky']['enabled'] = ( true === $config['sticky']['enabled'] ||
+ '1' === $config['sticky']['enabled'] ||
+ 'true' === $config['sticky']['enabled'] );
+ }
+
+ if ( isset( $config['gdpr'] ) ) {
+ $config['gdpr']['enabled'] = ( true === $config['gdpr']['enabled'] ||
+ '1' === $config['gdpr']['enabled'] ||
+ 'true' === $config['gdpr']['enabled'] );
+
+ // Remove network.
+ unset( $config['gdpr']['networks'] );
+ }
+
+ $enable_tool = true === $config[ strtolower( $button ) ]['enabled'] ? 'true' : 'false';
+
+ update_option( 'sharethis_button_config', $config );
+
+ if ( 'upgrade' === $first && 'platform' !== $button ) {
+ update_option( 'sharethis_first_product', strtolower( $button ) );
+ update_option( 'sharethis_' . strtolower( $button ), 'false' );
+ }
+
+ if ( 'platform' !== $button ) {
+ update_option( 'sharethis_' . strtolower( $button ), $enable_tool );
+ }
+ }
+
+ /**
+ * AJAX Call back to save the set up gdpr config for setup.
+ *
+ * @action wp_ajax_set_gdpr_config
+ */
+ public function set_gdpr_config() {
+ check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
+
+ $post = filter_input_array(
+ INPUT_POST,
+ array(
+ 'button' => FILTER_UNSAFE_RAW,
+ 'config' => array(
+ 'filter' => FILTER_DEFAULT,
+ 'flags' => FILTER_REQUIRE_ARRAY,
+ ),
+ 'first' => FILTER_UNSAFE_RAW,
+ 'nonce' => FILTER_UNSAFE_RAW,
+ 'type' => FILTER_UNSAFE_RAW,
+ )
+ );
+
+ if ( true === empty( $post['config'] ) ) {
+ wp_send_json_error( 'GDPR Config Set Failed' );
+ }
+
+ $first = false === empty( $post['first'] );
+ $current_config = get_option( 'sharethis_button_config', true );
+ $config = false !== $current_config && null !== $current_config ? $current_config : array();
+ $config['gdpr'] = $post['config'];
+
+ // Make sure bool is "true" or "false".
+ $config['gdpr']['enabled'] = ( true === $config['gdpr']['enabled'] ||
+ '1' === $config['gdpr']['enabled'] ||
+ 'true' === $config['gdpr']['enabled'] );
+
+ // Add purposes back.
+ $config['gdpr']['publisher_purposes'] = $purposes;
+
+ update_option( 'sharethis_button_config', $config );
+
+ if ( $first ) {
+ update_option( 'sharethis_gdpr', 'true' );
+ }
+ }
+
+ /**
+ * Helper function get vendors.
+ *
+ * @return array
+ */
+ private function get_vendors() {
+ $response = wp_remote_get( 'https://vendorlist.consensu.org/v2/vendor-list.json' );
+
+ return json_decode( wp_remote_retrieve_body( $response ), true );
+ }
+}
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/readme.txt b/wp/wp-content/plugins/sharethis-share-buttons/readme.txt
new file mode 100644
index 00000000..0e714af6
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/readme.txt
@@ -0,0 +1,210 @@
+=== ShareThis Share Buttons ===
+Plugin Name: ShareThis Share Buttons
+Contributors: sharethis, scottstorebloom, scottmweaver
+Tags: social buttons, sharethis, share this, social sharing, share buttons, social media buttons, sharing tools
+Author URI: https://sharethis.com/
+Author: ShareThis
+Requires at least: 5.5
+Tested up to: 6.4.1
+Stable tag: 2.2.0
+Version: 2.2.0
+
+License: GPLv2 or later
+
+Grow your website traffic and engagement by enabling one-click sharing with the free ShareThis Share Buttons plugin. The plugin is free (no upgrades available) and there is no registration is required!
+
+== Description ==
+
+Make it easy for your audience to share your content across 40+ of the most popular social channels including Facebook, WhatsApp, Twitter, and Pinterest.
+
+The free plugin includes the following features:
+
+* Configure your buttons to stay anchored on the sidebar as visitors scroll or inline near your headline or product on the page for ideal visibility
+* Customize the design including the alignment, size, and color (unlimited options) to match your brand
+* Increase social shares with our responsive, lightweight, code which loads asynchronously and won’t slow down your site.
+* Select your preferred language from over 15 options (English, German, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Chinese, Dutch, Arabic, Bengali, Hindi, Turkish, and Vietnamese).
+* Page and post editor controls which give you the power to enable or disable your buttons on specific posts and pages regardless of your default settings.
+
+Start expanding the reach of your content organically and grow the audience of your WordPress website with the ShareThis Share Buttons plugin.
+
+== WordPress Features ==
+
+**Inline Share Buttons**
+
+* Enable or disable inline share buttons at the top and bottom of post and page bodies.
+* Pixel perfect placement with top and bottom margin controls.
+* Shortcode and PHP snippets.
+* Page and post editor controls let you enable or disable inline share buttons on specific posts and pages regardless of your default settings.
+
+**Sticky Share Buttons**
+
+* Enable or disable sticky share buttons on the home page, all pages, all posts, custom posts, author pages, as well as tag and category archives.
+* Exclude sticky share buttons on specific pages and category archives with a searchable page exception.
+* Page and post editor controls let you enable or disable sticky share buttons on specific posts and pages regardless of your default settings.
+
+== Screenshots ==
+
+1. Inline share button design options.
+2. Inline share button settings.
+3. Example of Inline share buttons.
+4. Sticky share button design options.
+5. Sticky share button settings.
+6. Example of Sticky share buttons.
+7. Share button controls included on post and page editors.
+8. Consent management platforom settings.
+
+== Installation ==
+
+Install ShareThis Share Buttons just like any other plugin. Simply download the file directly from this page or search for us in the WordPress directory and click "Install". After you install and activate the plugin, simply configure your buttons and create an account.
+
+If you’re already using the new ShareThis buttons, and want to migrate to our WordPress plugin, we’ve got your back. Install the plugin, then from the first configuration screen click, connect to an existing property. Login, and select your property from the list. We’ll sync your settings from our platform. Don’t forget to remove the hard coded JS, and any hard coded inline share button divs!
+
+== Privacy ==
+
+By creating an account with ShareThis, you agree to our [terms of use](https://sharethis.com/publisher-terms-of-use/) which includes the ability to keep track of user interactions with our buttons. You can read our privacy policy here: [https://www.sharethis.com/privacy/](https://sharethis.com/privacy/)
+
+Questions? Submit an inquiry through our support forum and our team will be happy to assist.
+
+== Frequently Asked Questions ==
+
+**I reconfigured my buttons on the ShareThis platform, but nothing happened on my site. What’s going on here?**
+
+We cache your ShareThis platform button configurations (social networks, button size, labels etc.) to optimize their performance. Sometimes changes you make on the ShareThis platform take a couple minutes to update on your site. Also, if you activate a new button type from the settings page you may experience a similar lag.
+
+== Changelog ==
+
+= 2.2.0 =
+* Add new social networks.
+
+= 2.1.11 =
+* Remove leading commas for backwards compatibility
+
+= 2.1.10 =
+* Remove restapi action.
+
+= 2.1.9 =
+* Fix position option saves.
+* Fix random enable on update.
+
+= 2.1.8 =
+* Fix missing update/reset buttons.
+* Fix conflict with other share this menus.
+
+= 2.1.7 =
+* Add check for first product use.
+
+= 2.1.6 =
+* Test with WordPress 6.1.1.
+
+= 2.1.5 =
+* Add source.
+
+= 2.1.4 =
+* Add disable/enable tool buttons to gdpr.
+* Fix reset if tool is turned off and on.
+
+= 2.1.2 =
+* Add disable tool button.s
+
+= 2.1.1 =
+* Fix issue with PHP 5.X compatibility.
+
+= 2.1.0 =
+* Add smart share buttons.
+* Add new social networks options.
+
+= 2.0.0 =
+* Remove account registration.
+* Add custom share button color options.
+* Change UI to tabs.
+
+= 1.5.8 =
+* Test with WordPress 6.0.1 and PHP8.
+
+= 1.5.7 =
+* Fix critical error.
+* Test with WordPress 5.9.2.
+* Remove random gif.
+
+= 1.5.6 =
+* Sanitize inputs/outputs and improve code quality.
+* Test with WordPress 5.9.1.
+
+= 1.5.5 =
+* Fix Ajax
+* Test with WordPress 5.9.
+
+= 1.5.4 =
+* Fix markup for data-url output.
+
+= 1.5.3 =
+* Fix jquery attr call and php warning.
+* Remove GDPR global scope.
+
+= 1.5.2 =
+* Add Snapchat, BLM and Live Journal network options.
+
+= 1.5.1 =
+* Fix position config update save.
+
+= 1.5.0 =
+* Fix missing update in stick config.
+* Fix language selector.
+
+= 1.4.1 =
+* Fix GDPR compliance on/off.
+
+= 1.4.0 =
+* Added GDPR compliance tool option and config.
+
+= 1.3.0 =
+* Fix registration sticky configurations.
+* Add DB data removal on deactivate.
+* Add new companies to network list.
+* Add notice for ad blockers.
+
+= 1.2.10 =
+* Fix endpoint update.
+
+= 1.2.9 =
+* Add German to language list.
+* Remove Native counts.
+* Replace api endpoints.
+
+= 1.2.8 =
+* Made WordPress 5+ compatible.
+* Added new Gutenberg block category and block for adding inline buttons.
+* Fixed backwards compatibility for accounts without secrets.
+
+= 1.1.8 =
+* Added multi-language options for translating share buttons.
+
+= 1.1.7 =
+* Added loading gifs to registration to avoid user double clicks.
+* Added new Messenger button to network list.
+
+= 1.1.6 =
+* Menu logic for use by future ShareThis plugins.
+* Fix button size selector.
+
+= 1.1.5 =
+* Create an account and design your share buttons without leaving the plugin!
+* Link the plugin and sync buttons settings with an existing property on our Platform.
+
+= 1.0.5 =
+* Add a widget for sidebars to include buttons.
+
+= 1.0.4 =
+* Added data-url attribute to non the-excerpt filter excerpts.
+
+= 1.0.3 =
+* Fixed random share buttons on homepage base issue.
+
+= 1.0.2 =
+* Changed first product set function to add if doesn't exist instead of looking at transient.
+
+= 1.0.1 =
+* Fixed excerpt filter solving excerpt display issue.
+
+= 1.0.0 =
+* Brand new plugin submission.
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/sharethis-share-buttons.php b/wp/wp-content/plugins/sharethis-share-buttons/sharethis-share-buttons.php
new file mode 100644
index 00000000..0615d658
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/sharethis-share-buttons.php
@@ -0,0 +1,86 @@
+=' ) ) {
+ require_once __DIR__ . '/instance.php';
+} else {
+ if ( defined( 'WP_CLI' ) ) {
+ WP_CLI::warning( _sharethis_share_buttons_php_version_text() );
+ } else {
+ add_action( 'admin_notices', '_sharethis_share_buttons_php_version_error' );
+ }
+}
+
+/**
+ * Admin notice for incompatible versions of PHP.
+ */
+function _sharethis_share_buttons_php_version_error() {
+ printf( '', esc_html( _sharethis_share_buttons_php_version_text() ) );
+}
+
+/**
+ * String describing the minimum PHP version.
+ *
+ * @return string
+ */
+function _sharethis_share_buttons_php_version_text() {
+ return __(
+ 'ShareThis Share Buttons plugin error: Your version of PHP is too old to run this plugin. You must be running PHP 5.3 or higher.',
+ 'sharethis-share-buttons'
+ );
+}
+
+/**
+ * The helper function to insert the proper inline button container.
+ *
+ * @return string
+ */
+function sharethis_inline_buttons() {
+ return '';
+}
+
+add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), '_sharethis_share_buttons_add_action_links' );
+
+/**
+ * Add a link to the settings page.
+ *
+ * @param string $links The links shown in the plugin page.
+ *
+ * @return array
+ */
+function _sharethis_share_buttons_add_action_links( $links ) {
+ $mylinks = array(
+ 'Settings',
+ );
+
+ return array_merge( $links, $mylinks );
+}
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/exclusions.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/exclusions.php
new file mode 100644
index 00000000..02d6aff8
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/exclusions.php
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ' .
+ esc_html( $vendor['policyUrl'] ) . '';
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/gdpr-config.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/gdpr-config.php
new file mode 100644
index 00000000..b0d9dc7f
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/gdpr-config.php
@@ -0,0 +1,117 @@
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/purposes.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/purposes.php
new file mode 100644
index 00000000..07f647ae
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/general/gdpr/purposes.php
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/minute-control/meta-box.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/minute-control/meta-box.php
new file mode 100644
index 00000000..aca05163
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/minute-control/meta-box.php
@@ -0,0 +1,58 @@
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/button-config.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/button-config.php
new file mode 100644
index 00000000..6a535dbf
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/button-config.php
@@ -0,0 +1,321 @@
+
+
+
+
+
+
+
+
+
+
+ ⇧ ⇧
+
+
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/enable-buttons.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/enable-buttons.php
new file mode 100644
index 00000000..678eccbf
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/enable-buttons.php
@@ -0,0 +1,21 @@
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/list.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/list.php
new file mode 100644
index 00000000..b17e86fd
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/list.php
@@ -0,0 +1,28 @@
+
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/onoff-buttons.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/onoff-buttons.php
new file mode 100644
index 00000000..2af0cd7a
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/onoff-buttons.php
@@ -0,0 +1,35 @@
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/share-button-settings.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/share-button-settings.php
new file mode 100644
index 00000000..be2fdbf7
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/share-button-settings.php
@@ -0,0 +1,25 @@
+
+
+
+
+
+ plugin->dir_path . '/templates/share-buttons/tabs.php'; ?>
+
+
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/shortcode-templatecode.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/shortcode-templatecode.php
new file mode 100644
index 00000000..01e0bce5
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/shortcode-templatecode.php
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/ssb.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/ssb.php
new file mode 100644
index 00000000..b7f23632
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/ssb.php
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/tabs.php b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/tabs.php
new file mode 100644
index 00000000..e58a6912
--- /dev/null
+++ b/wp/wp-content/plugins/sharethis-share-buttons/templates/share-buttons/tabs.php
@@ -0,0 +1,23 @@
+
+
+
+
diff --git a/wp/wp-content/themes/thbusiness/content-single.php b/wp/wp-content/themes/thbusiness/content-single.php
index 620ead11..51c90c32 100644
--- a/wp/wp-content/themes/thbusiness/content-single.php
+++ b/wp/wp-content/themes/thbusiness/content-single.php
@@ -16,10 +16,14 @@
+
+
+
+
'
' . __( 'Pages:', 'thbusiness' ),
diff --git a/wp/wp-content/themes/thbusiness/single.php b/wp/wp-content/themes/thbusiness/single.php
index baaf0dba..b9ce233e 100644
--- a/wp/wp-content/themes/thbusiness/single.php
+++ b/wp/wp-content/themes/thbusiness/single.php
@@ -30,6 +30,7 @@ get_header(); ?>
+