PageSourceSearch

https://thechinaproject.com/my-account/

html thechinaproject.com collected 2026-09-24 08:52:08 UTC 150,346 bytes, 2,384 lines download raw bytes

1<!DOCTYPE html>
2<html class="no-js" lang="en-US">
3<head>
4
5	<meta charset="UTF-8">	<meta name="viewport" content="width=device-width, initial-scale=1">
6	<link rel="profile" href="https://gmpg.org/xfn/11">	<meta http-equiv="x-ua-compatible" content="ie=edge">
7	<!-- SpeedCurve RUM -->
8<script>
9LUX=(function(){var a=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMarks)?LUX.gaMarks:[]);var d=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMeasures)?LUX.gaMeasures:[]);var j="LUX_start";var k=window.performance;var l=("undefined"!==typeof(LUX)&&LUX.ns?LUX.ns:(Date.now?Date.now():+(new Date())));if(k&&k.timing&&k.timing.navigationStart){l=k.timing.navigationStart}function f(){if(k&&k.now){return k.now()}var o=Date.now?Date.now():+(new Date());return o-l}function b(n){if(k){if(k.mark){return k.mark(n)}else{if(k.webkitMark){return k.webkitMark(n)}}}a.push({name:n,entryType:"mark",startTime:f(),duration:0});return}function m(p,t,n){if("undefined"===typeof(t)&&h(j)){t=j}if(k){if(k.measure){if(t){if(n){return k.measure(p,t,n)}else{return k.measure(p,t)}}else{return k.measure(p)}}else{if(k.webkitMeasure){return k.webkitMeasure(p,t,n)}}}var r=0,o=f();if(t){var s=h(t);if(s){r=s.startTime}else{if(k&&k.timing&&k.timing[t]){r=k.timing[t]-k.timing.navigationStart}else{return}}}if(n){var q=h(n);if(q){o=q.startTime}else{if(k&&k.timing&&k.timing[n]){o=k.timing[n]-k.timing.navigationStart}else{return}}}d.push({name:p,entryType:"measure",startTime:r,duration:(o-r)});return}function h(n){return c(n,g())}function c(p,o){for(i=o.length-1;i>=0;i--){var n=o[i];if(p===n.name){return n}}return undefined}function g(){if(k){if(k.getEntriesByType){return k.getEntriesByType("mark")}else{if(k.webkitGetEntriesByType){return k.webkitGetEntriesByType("mark")}}}return a}return{mark:b,measure:m,gaMarks:a,gaMeasures:d}})();LUX.ns=(Date.now?Date.now():+(new Date()));LUX.ac=[];LUX.cmd=function(a){LUX.ac.push(a)};LUX.init=function(){LUX.cmd(["init"])};LUX.send=function(){LUX.cmd(["send"])};LUX.addData=function(a,b){LUX.cmd(["addData",a,b])};LUX_ae=[];window.addEventListener("error",function(a){LUX_ae.push(a)});LUX_al=[];if("function"===typeof(PerformanceObserver)&&"function"===typeof(PerformanceLongTaskTiming)){var LongTaskObserver=new PerformanceObserver(function(c){var b=c.getEntries();for(var a=0;a<b.length;a++){var d=b[a];LUX_al.push(d)}});try{LongTaskObserver.observe({type:["longtask"]})}catch(e){}};
10
11LUX.label = JSON.parse( decodeURIComponent( '%5B%22Page%22%5D' ) );
12
13if ( typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent === 'test' ) {
14	LUX.samplerate = 0;
15}
16</script>
vendor: 1 bytes, line 16
16
17<script src="https://cdn.speedcurve.com/js/lux.js?id=510586868" async defer crossorigin="anonymous"></script>
17
18<!-- End Speedcurve RUM -->
19<meta name='robots' content='noindex, follow' />
20
21<!-- Google Tag Manager for WordPress by gtm4wp.com -->
22<script data-cfasync="false" data-pagespeed-no-defer>
23	var gtm4wp_datalayer_name = "dataLayer";
24	var dataLayer = dataLayer || [];
25</script>
25
26<!-- End Google Tag Manager for WordPress by gtm4wp.com -->
26<script id="pianojs-detect" type="text/javascript">
27;(function(){
28	document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
29	var setNptTechAdblockerCookie = function(adblocker) {
30		var d = new Date();
31		d.setTime(d.getTime() + 60 * 5 * 1000);
32		document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/";
33	};
34	var script = document.createElement("script");
35	script.setAttribute("async", true);
36	script.setAttribute("src", "//www.npttech.com/advertising.js");
37	script.setAttribute("onerror", "setNptTechAdblockerCookie(true);");
38	document.getElementsByTagName("head")[0].appendChild(script);
39})();
40</script>
40
41	
42	<!-- This site is optimized with the Yoast SEO plugin v26.9 - https://yoast.com/product/yoast-seo-wordpress/ -->
43	<title>My Account &#8211; The China Project</title>
44	<meta property="og:locale" content="en_US" />
45	<meta property="og:type" content="article" />
46	<meta property="og:title" content="My Account &#8211; The China Project" />
47	<meta property="og:url" content="https://thechinaproject.com/my-account/" />
48	<meta property="og:site_name" content="The China Project" />
49	<meta property="article:publisher" content="https://www.facebook.com/thechinaprojectnews/" />
50	<meta property="article:modified_time" content="2022-02-11T17:17:50+00:00" />
51	<meta property="og:image" content="https://thechinaproject.com/wp-content/uploads/2022/09/the-china-project-website-social-share-image.jpg" />
52	<meta property="og:image:width" content="1920" />
53	<meta property="og:image:height" content="1080" />
54	<meta property="og:image:type" content="image/jpeg" />
55	<meta name="twitter:card" content="summary_large_image" />
56	<meta name="twitter:site" content="@thechinaproj" />
57	<meta name="twitter:label1" content="Written by" />
58	<meta name="twitter:data1" content="The editors" />
59	
59<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://thechinaproject.com/my-account/","url":"https://thechinaproject.com/my-account/","name":"My Account &#8211; The China Project","isPartOf":{"@id":"https://thechinaproject.com/#website"},"datePublished":"2021-10-22T15:29:52+00:00","dateModified":"2022-02-11T17:17:50+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://thechinaproject.com/my-account/"]}]},{"@type":"WebSite","@id":"https://thechinaproject.com/#website","url":"https://thechinaproject.com/","name":"The China Project","description":"All things China.","publisher":{"@id":"https://thechinaproject.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://thechinaproject.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://thechinaproject.com/#organization","name":"The China Project","url":"https://thechinaproject.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://thechinaproject.com/#/schema/logo/image/","url":"https://thechinaproject.com/wp-content/uploads/2022/09/the-china-project-website-social-share-image.jpg","contentUrl":"https://thechinaproject.com/wp-content/uploads/2022/09/the-china-project-website-social-share-image.jpg","width":1920,"height":1080,"caption":"The China Project"},"image":{"@id":"https://thechinaproject.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/thechinaprojectnews/","https://x.com/thechinaproj","https://www.instagram.com/thechinaproj/","https://www.linkedin.com/company/thechinaproject/","https://www.youtube.com/c/TheChinaProject"]}]}</script>
59
60	<!-- / Yoast SEO plugin. -->
61
62
63<link rel='dns-prefetch' href='//use.typekit.net' />
64<link rel="alternate" type="application/rss+xml" title="The China Project &raquo; Feed" href="https://thechinaproject.com/feed/" />
65<link rel="alternate" type="application/rss+xml" title="The China Project &raquo; Comments Feed" href="https://thechinaproject.com/comments/feed/" />
66<!-- Google Tag Manager -->
67<script>
68if ( !(typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent === 'test') ) {
vendor: 333 bytes, lines 68-73
68
69	(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
70	new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
71	j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
72	'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
73	})(window,document,'script','dataLayer','
73GTM-PZRP993
vendor: 4 bytes, line 73
73');
74}
75</script>
75
76<!-- End Google Tag Manager -->
77	<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://thechinaproject.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fthechinaproject.com%2Fmy-account%2F" />
78<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://thechinaproject.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fthechinaproject.com%2Fmy-account%2F&#038;format=xml" />
79<link rel="preconnect" crossorigin href="https://use.typekit.com">
80<link rel="preload" as="font" crossorigin type="font/woff2" href="https://thechinaproject.com/wp-content/themes/supchina/fonts/founders-grotesk-web-bold.woff2">
81<link rel="preload" as="font" crossorigin type="font/woff2" href="https://thechinaproject.com/wp-content/themes/supchina/fonts/tiempos-text-web-regular.woff2">
82<link rel="preload" as="font" crossorigin type="font/woff2" href="https://thechinaproject.com/wp-content/themes/supchina/fonts/tiempos-text-web-regular-italic.woff2">
83<link rel="preload" as="font" crossorigin type="font/woff2" href="https://thechinaproject.com/wp-content/themes/supchina/fonts/tiempos-text-web-bold.woff2">
84<style id="wp-img-auto-sizes-contain-inline-css">
85img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
86/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
87</style>
88<link rel='stylesheet' id='typekit-aktiv-css' href='https://use.typekit.net/ogo8sxt.css?ver=7.0.6' media='all' />
89<link rel='stylesheet' id='select2-css' href='https://thechinaproject.com/wp-content/themes/supchina/modules/links-archive/vendor/select2/select2.min.css?ver=4.1.0-rc.0' media='all' />
90<link rel='stylesheet' id='slick-css' href='https://thechinaproject.com/wp-content/themes/supchina/modules/links-archive/vendor/slick/slick.css?ver=1.8.1' media='all' />
91<link rel='stylesheet' id='slick-theme-css' href='https://thechinaproject.com/wp-content/themes/supchina/modules/links-archive/vendor/slick/slick-theme.css?ver=1.8.1' media='all' />
92<link rel='stylesheet' id='flickity-css' href='https://thechinaproject.com/wp-content/themes/supchina/assets/vendor/flickity.min.css?ver=2.2.1' media='all' />
93<style id="classic-theme-styles-inline-css">
94/*! This file is auto-generated */
95.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
96/*# sourceURL=/wp-includes/css/classic-themes.min.css */
97</style>
98
99<style id="global-styles-inline-css">
100:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
100--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
100.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
101/*# sourceURL=global-styles-inline-css */
102</style>
103
104<link rel='stylesheet' id='cookie-law-info-css' href='https://thechinaproject.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/css/cookie-law-info-public.css?ver=2.3.4' media='all' />
105<link rel='stylesheet' id='cookie-law-info-gdpr-css' href='https://thechinaproject.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/css/cookie-law-info-gdpr.css?ver=2.3.4' media='all' />
106<style id="cookie-law-info-gdpr-inline-css">
107.cli-modal-content, .cli-tab-content { background-color: #ffffff; }.cli-privacy-content-text, .cli-modal .cli-modal-dialog, .cli-tab-container p, a.cli-privacy-readmore { color: #000000; }.cli-tab-header { background-color: #f2f2f2; }.cli-tab-header, .cli-tab-header a.cli-nav-link,span.cli-necessary-caption,.cli-switch .cli-slider:after { color: #000000; }.cli-switch .cli-slider:before { background-color: #ffffff; }.cli-switch input:checked + .cli-slider:before { background-color: #ffffff; }.cli-switch .cli-slider { background-color: #e3e1e8; }.cli-switch input:checked + .cli-slider { background-color: #28a745; }.cli-modal-close svg { fill: #000000; }.cli-tab-footer .wt-cli-privacy-accept-all-btn { background-color: #00acad; color: #ffffff}.cli-tab-footer .wt-cli-privacy-accept-btn { background-color: #00acad; color: #ffffff}.cli-tab-header a:before{ border-right: 1px solid #000000; border-bottom: 1px solid #000000; }
108/*# sourceURL=cookie-law-info-gdpr-inline-css */
109</style>
110<link rel='stylesheet' id='base-main-css' href='https://thechinaproject.com/wp-content/themes/supchina/assets/main.css?ver=096210' media='all' />
111<link rel='stylesheet' id='base-company-profiles-css' href='https://thechinaproject.com/wp-content/themes/supchina/modules/company-profiles/company-profiles.css?ver=096210' media='all' />
112<link rel='stylesheet' id='jquery-ui-datepicker-css' href='https://thechinaproject.com/wp-content/themes/supchina/modules/links-archive/vendor/jquery-ui/jquery-ui.css?ver=1.12.0' media='all' />
113<link rel='stylesheet' id='piano-user-nav-css' href='https://thechinaproject.com/wp-content/themes/supchina/modules/piano-watchlist/piano-user-nav.css?ver=939740' media='all' />
114<link rel='stylesheet' id='piano-watchlist-css' href='https://thechinaproject.com/wp-content/themes/supchina/modules/piano-watchlist/piano-watchlist.css?ver=939740' media='all' />
115<script id="jquery-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/vendor/jquery-2.2.4.min.js"></script>
vendor: 1 bytes, line 115
115
116<script id="cookie-law-info-js-extra">
117var Cli_Data = {"nn_cookie_ids":["test_cookie","__cfduid","_omappvp","_omappvs","lang","lidc","_fbp","fr","_ga","_gid","test_cookie","bcookie","personalization_id","__gads","VISITOR_INFO1_LIVE","YSC","GPS","IDE","TDID","PugT","PUBMDCID","uid","TDCPM","everest_g_v2","uuid","uuidc","_gat","_pxvid","mc","__qca"],"non_necessary_cookies":{"performance":["YSC","_gat"],"preferences":["lang","lidc","bcookie","PugT"],"analytics":["_omappvp","_omappvs","_ga","_gid","__gads","GPS"],"advertisement":["_fbp","fr","test_cookie","personalization_id","VISITOR_INFO1_LIVE","IDE","TDID","PUBMDCID","uid","TDCPM","everest_g_v2","uuid","uuidc","mc","__qca"],"necessary":["__cfduid","_pxvid"]},"cookielist":{"necessary":{"id":21,"status":true,"title":"Necessary","strict":true,"default_state":false,"ccpa_optout":false,"loadonstart":false},"performance":{"id":15719,"status":true,"title":"Performance","strict":false,"default_state":true,"ccpa_optout":false,"loadonstart":false},"preferences":{"id":15717,"status":true,"title":"Preferences","strict":false,"default_state":true,"ccpa_optout":false,"loadonstart":false},"analytics":{"id":15716,"status":true,"title":"Analytics","strict":false,"default_state":true,"ccpa_optout":false,"loadonstart":false},"advertisement":{"id":15718,"status":true,"title":"Advertisement","strict":false,"default_state":true,"ccpa_optout":false,"loadonstart":false}},"ajax_url":"https://thechinaproject.com/wp-admin/admin-ajax.php","current_lang":"en","security":"4667ac7bf0","eu_countries":["GB"],"geoIP":"enabled","use_custom_geolocation_api":"","custom_geolocation_api":"https://geoip.cookieyes.com/geoip/checker/result.php","consentVersion":"1","strictlyEnabled":["necessary","obligatoire"],"cookieDomain":"","privacy_length":"250","ccpaEnabled":"","ccpaRegionBased":"","ccpaBarEnabled":"","ccpaType":"gdpr","triggerDomRefresh":""};
118var log_object = {"ajax_url":"https://thechinaproject.com/wp-admin/admin-ajax.php"};
119//# sourceURL=cookie-law-info-js-extra
120</script>
vendor: 1 bytes, line 120
120
121<script id="cookie-law-info-js" src="https://thechinaproject.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/js/cookie-law-info-public.js?ver=2.3.4"></script>
vendor: 1 bytes, line 121
121
122<script id="jquery-debouncedresize-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/vendor/jquery.debouncedresize.js"></script>
vendor: 1 bytes, line 122
122
123<script id="base-modal-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/modal.min.js?ver=096210" defer></script>
vendor: 1 bytes, line 123
123
124<script id="jquery-ba-throttle-debounce-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/vendor/jquery.ba-throttle-debounce.min.js?ver=1.1"></script>
vendor: 1 bytes, line 124
124
125<script id="gtm-scripts-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/gtm.min.js?ver=096210"></script>
vendor: 1 bytes, line 125
125
126<script id="gtm-scripts-js-after">
127var postId = 211945;var contentType = "My Account";
128//# sourceURL=gtm-scripts-js-after
129</script>
vendor: 1 bytes, line 129
129
130<script id="tcpr_single_profile-js-extra">
131var tcpr_single_obj = {"ajax_url":"https://thechinaproject.com/wp-admin/admin-ajax.php","nonce":"47a2a19efe"};
132//# sourceURL=tcpr_single_profile-js-extra
133</script>
vendor: 1 bytes, line 133
133
134<script id="tcpr_single_profile-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/company-profiles/single-profile.min.js?ver=096210"></script>
vendor: 1 bytes, line 134
134
135<script id="select2-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/links-archive/vendor/select2/select2.min.js?ver=4.1.0-rc.0"></script>
vendor: 1 bytes, line 135
135
136<script id="piano-js" src="https://cdn.tinypass.com/api/tinypass.min.js?ver=7.0.6" async></script>
vendor: 1 bytes, line 136
136
137<script id="piano-js-after">
138tp = window.tp || [];
139;(function(){
140	var spchAID = decodeURIComponent( 'gukdowMUpu' );
141	tp.push(['setAid', spchAID]);
142	var spchEndpoint = "https:\/\/buy.tinypass.com\/api\/v3";
143	tp.push(['setEndpoint', spchEndpoint]);
144})();
145tp.push(['setUseTinypassAccounts', false]);
146tp.push(['setUsePianoIdUserProvider', true]);
147
148//# sourceURL=piano-js-after
149</script>
149
150<link rel="https://api.w.org/" href="https://thechinaproject.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://thechinaproject.com/wp-json/wp/v2/pages/211945" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://thechinaproject.com/xmlrpc.php?rsd" />
151<meta name="generator" content="WordPress 7.0.6" />
152<meta name="generator" content="Seriously Simple Podcasting 3.14.0" />
153<link rel='shortlink' href='https://thechinaproject.com/?p=211945' />
154
155<link rel="alternate" type="application/rss+xml" title="Podcast RSS feed" href="https://thechinaproject.com/feed/podcast" />
156
157
158<!-- Google Tag Manager for WordPress by gtm4wp.com -->
159<!-- GTM Container placement set to off -->
160<script data-cfasync="false" data-pagespeed-no-defer>
161	var dataLayer_content = {"visitorIP":"181.215.65.68","pagePostType":"page","pagePostType2":"single-page","pagePostAuthor":"The editors","postFormat":"standard"};
162	dataLayer.push( dataLayer_content );
163</script>
vendor: 1 bytes, line 163
163
164<script data-cfasync="false" data-pagespeed-no-defer>
165	console.warn && console.warn("[GTM4WP] Google Tag Manager container code placement set to OFF !!!");
166	console.warn && console.warn("[GTM4WP] Data layer codes are active but GTM container must be loaded using custom coding !!!");
167</script>
167
168<!-- End Google Tag Manager for WordPress by gtm4wp.com -->
168<script id="spchLog" type="text/javascript">
169function spchLog(title, data) {
170}
171</script>
171
172		
172<script>
173		!function(){window.flywheel=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"].reduce((function(e,t){return e[t]=function(){for(var e,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];(e=window.flywheel.preLibInitBuffer)[t]||(e[t]=[]),window.flywheel.preLibInitBuffer[t].push(n)},e}),{writeKey:"2352a4db-16fd-40ed-85a6-d0c6ccbdfef0",apiHost:"theflywheel.app",snippetVersion:"0.0.0",preLibInitBuffer:{}});var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://cdn.theflywheel.app/flywheel.min.js";var t=document.getElementsByTagName("script")[0];t.parentNode&&t.parentNode.insertBefore(e,t),window.flywheel.page()}();
174	</script>
174
175		
175<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
175
176	<link rel="apple-touch-icon" sizes="180x180" href="https://thechinaproject.com/apple-touch-icon.png?ver=7" />
177<link rel="icon" type="image/png" href="https://thechinaproject.com/favicon-32x32.png?ver=7" sizes="32x32" />
178<link rel="icon" type="image/png" href="https://thechinaproject.com/favicon-16x16.png?ver=7" sizes="16x16" />
179<link rel="manifest" href="https://thechinaproject.com/site.webmanifest">
180<link rel="mask-icon" href="https://thechinaproject.com/safari-pinned-tab.svg?ver=7" color="#F73044">
181<meta name="msapplication-TileColor" content="#3A13F3" />
182<meta name="theme-color" content="#3A13F3" />
183
184<link rel='stylesheet' id='cookie-law-info-table-css' href='https://thechinaproject.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/css/cookie-law-info-table.css?ver=2.3.4' media='all' />
185
186</head>
187<body class="wp-singular page-template page-template-template-account-preferences page-template-template-account-preferences-php page page-id-211945 wp-theme-supchina has-ticker">
188
189		<a class="skip-to-content skip-link screen-reader-text"
190	   href="#site-content">Skip to the content</a>
191	<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 191-192
191
192<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
192GTM-PZRP993
vendor: 83 bytes, lines 192-193
192"
193height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
194<!-- End Google Tag Manager (noscript) -->
195		
195<script>
196		(function ($) {
197
198			var prevClientHeight;
199
200			function setVH100(doc) {
201				function handleResize() {
202					var clientHeight = doc.clientHeight;
203					if (clientHeight === prevClientHeight) return;
204					// console.log('Prev --vh100 value:', clientHeight, prevClientHeight);
205					// console.log(clientHeight);
206					requestAnimationFrame(function updateViewportHeight() {
207						doc.style.setProperty('--vh100', (clientHeight) + 'px');
208						prevClientHeight = clientHeight;
209						// console.log('--vh100 CHANGED. Update:', clientHeight);
210					});
211				}
212
213				handleResize();
214				return handleResize;
215			}
216
217			setVH100(document.documentElement);
218
219			window.addEventListener('load', function () {
220
221				$(window)
222					.on('debouncedresize', function () {
223						setVH100(document.documentElement);
224					});
225			});
226
227		})(jQuery);
228	</script>
228
229	
230	<!-- site-container -->
231	<div class="site-container">
232
233		<div class="site-wrap">
234
235			<div id="js-non-footer" class="non-footer">
236
237				<div class="pre-site-header"></div>
238
239								<div class="site-top">
240
241						<div id="js-ticker--mobile"  class="js-ticker ticker ticker--mobile hidden@lg">
242		<div id="js-ticker--mobile__holder" class="ticker__holder">
243			<div class="ticker__inner js-ticker--mobile__inner">
244				<h2 class="ticker__title iblock">Trending</h2><nav class="nav nav--horizontal nav--ticker iblock"><ul class="listless"><li id="menu-item-229881" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-229881 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/taiwan/" class="menu-target menu-link menu-target--loc-ticker">#taiwan</a></li><li id="menu-item-274814" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-274814 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/espionage/" class="menu-target menu-link menu-target--loc-ticker">#espionage</a></li><li id="menu-item-227376" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-227376 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/lgbtq/" class="menu-target menu-link menu-target--loc-ticker">#lgbtq</a></li><li id="menu-item-274815" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-274815 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/artificial-intelligence/" class="menu-target menu-link menu-target--loc-ticker">#artificialintelligence</a></li><li id="menu-item-226310" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-226310 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/xinjiang/" class="menu-target menu-link menu-target--loc-ticker">#xinjiang</a></li></ul></nav>			</div>
245		</div>
246	</div>
247	
248										<div id="js-site-header-posholder"></div>
249
250					<div class="site-header-placeholder"></div>
251
252					<header id="js-site-header" class="site-header" role="banner">
253
254						<div class="search-form__wrap search-form--header__wrap visible@lg clearfix">
255
256							<button id="js-search-toggle" type="button" class="search-form__toggle unbtn" aria-expanded="false" data-modal-open="#js-search-form" data-sctrack="searchBtn">
257																								<svg xmlns="http://www.w3.org/2000/svg" width="34.036" height="34.036" viewBox="0 0 34.036 34.036"><g transform="translate(2.5 2.5)"><circle cx="9.5" cy="9.5" r="9.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="5"/><line x2="11.383" y2="11.383" transform="translate(16.617 16.617)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="5"/></g></svg>
258							</button>
259
260						</div>
261
262						<div class="site-logo site-logo--header">
263							<a href="https://thechinaproject.com/" rel="home">
264								<span class="screen-reader-text">The China Project</span>
265																<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 251.46 76.61">
266									<defs><style>.cls-1{fill:#ef4453;}</style></defs>
267									<g id="Layer_1-2"><g>
268										<path class="cls-1" d="M153.54,12.88h0c3.75,0,52.02,.08,53.97,.08,2.12,0,15.16,2.29,15.16,14.99s-11.27,15.59-16.26,15.59c0,0-4.24,.08-5.85,0,2.12,4.49,3.47,7.79,5.85,12.37,15.42,0,27.95-12.54,27.95-27.95S221.83,0,206.41,0h-61.16l7.05,12.88h1.24Z"/><path class="cls-1" d="M244.39,63.36h-1.27s-38.71-.09-40.74-.09-15.08-2.29-15.08-14.99,11.27-15.59,16.26-15.59c0,0,4.15-.09,5.84,0-2.2-4.49-3.56-7.79-5.84-12.37-15.5,0-27.95,12.54-27.95,27.95s12.45,27.95,27.95,27.95h47.89l-7.07-12.87Z"/><polygon class="cls-1" points="6.12 4.5 0 4.5 0 0 18.11 0 18.11 4.5 11.87 4.5 11.87 20.23 6.12 20.23 6.12 4.5"/><polygon class="cls-1" points="43.46 0 43.46 20.23 37.84 20.23 37.84 12.37 29.98 12.37 29.98 20.23 24.23 20.23 24.23 0 29.98 0 29.98 7.62 37.84 7.62 37.84 0 43.46 0"/><polygon class="cls-1" points="67.82 15.86 67.82 20.23 51.58 20.23 51.58 0 67.44 0 67.44 4.37 57.2 4.37 57.2 7.74 66.2 7.74 66.2 12.12 57.2 12.12 57.2 15.86 67.82 15.86"/><path class="cls-1" d="M5.37,47.05c-1.62-.87-3-2.12-4-3.75C.5,41.8,0,39.93,0,37.93s.5-3.87,1.37-5.5c1-1.62,2.37-2.87,4-3.75,1.75-.87,3.62-1.37,5.75-1.37,1.87,0,3.5,.37,5,1,1.5,.62,2.75,1.62,3.75,2.87l-3.62,3.25c-1.37-1.5-3-2.37-4.87-2.37-1,0-2,.25-2.87,.75-.87,.5-1.5,1.25-2,2.12-.5,.87-.75,1.87-.75,3s.25,2.12,.75,3c.5,.87,1.12,1.62,2,2,.87,.5,1.87,.75,2.87,.75,1.87,0,3.5-.75,4.87-2.37l3.62,3.37c-1,1.25-2.25,2.12-3.75,2.75-1.5,.75-3.12,1-5,1-2.12,0-4-.37-5.75-1.37"/><polygon class="cls-1" points="45.71 27.81 45.71 48.05 39.97 48.05 39.97 40.18 32.1 40.18 32.1 48.05 26.35 48.05 26.35 27.81 32.1 27.81 32.1 35.43 39.97 35.43 39.97 27.81 45.71 27.81"/><rect class="cls-1" x="53.71" y="27.81" width="5.75" height="20.23"/><polygon class="cls-1" points="86.8 27.81 86.8 48.05 82.06 48.05 73.06 37.18 73.06 48.05 67.44 48.05 67.44 27.81 72.19 27.81 81.18 38.55 81.18 27.81 86.8 27.81"/><path class="cls-1" d="M108.41,44.05h-8.62l-1.62,4h-5.74l8.87-20.23h5.75l8.87,20.23h-5.87l-1.62-4Zm-1.75-4.12l-2.5-6.49-2.62,6.49h5.12Z"/><path class="cls-1" d="M13.99,56.88c1.37,.62,2.37,1.5,3.12,2.62s1.12,2.37,1.12,4c0,1.5-.37,2.87-1.12,3.87-.75,1.12-1.75,2-3.12,2.62-1.37,.62-2.87,1-4.75,1h-3.5v5.25H0v-20.23H9.24c1.87,0,3.37,.25,4.75,.87m-2.37,8.74c.5-.5,.87-1.25,.87-2.12,0-1-.37-1.75-.87-2.25-.62-.5-1.5-.75-2.75-.75h-3.12v5.87h3.12c1.25,0,2.12-.25,2.75-.75"/><path class="cls-1" d="M33.85,70.87h-3.12v5.37h-5.75v-20.23h9.24c1.87,0,3.5,.25,4.87,.87,1.37,.62,2.37,1.5,3.12,2.62,.75,1.12,1.12,2.37,1.12,4,0,1.37-.37,2.75-1.12,3.75-.62,1.12-1.62,2-2.87,2.62l4.37,6.37h-6.12l-3.75-5.37Zm2.7
2685-9.62c-.62-.5-1.5-.75-2.62-.75h-3.25v5.87h3.25c1.12,0,2-.25,2.62-.75s.87-1.25,.87-2.12c0-1-.25-1.75-.87-2.25"/><path class="cls-1" d="M54.83,75.24c-1.62-.87-3-2.12-4-3.75-1-1.62-1.5-3.37-1.5-5.37s.5-3.87,1.5-5.5c1-1.5,2.37-2.75,4-3.75,1.75-.87,3.62-1.37,5.87-1.37,2.12,0,4,.5,5.75,1.37,1.75,1,3,2.25,4,3.75,1,1.62,1.5,3.5,1.5,5.5s-.5,3.75-1.5,5.37c-1,1.62-2.25,2.87-4,3.75-1.75,1-3.62,1.37-5.75,1.37-2.25,0-4.12-.37-5.87-1.37m8.62-4.12c.75-.37,1.5-1.12,2-2,.37-.87,.62-1.87,.62-3s-.25-2.12-.62-3c-.5-.87-1.25-1.62-2-2.12-.87-.5-1.75-.75-2.75-.75-1.12,0-2,.25-2.87,.75-.75,.5-1.5,1.25-2,2.12-.37,.87-.62,1.87-.62,3s.25,2.12,.62,3c.5,.87,1.25,1.62,2,2,.87,.5,1.75,.75,2.87,.75,1,0,1.87-.25,2.75-.75"/><path class="cls-1" d="M78.81,75.86c-1.25-.5-2.12-1.25-3-2.25l3.12-3.62c1.12,1.37,2.25,2.12,3.5,2.12,.87,0,1.5-.25,2-.75,.37-.5,.62-1.25,.62-2.25v-8.74h-6.99v-4.37h12.61v12.74c0,2.62-.62,4.62-2,5.87-1.25,1.37-3.25,2-5.74,2-1.5,0-2.87-.25-4.12-.75"/><polygon class="cls-1" points="114.91 71.86 114.91 76.24 98.54 76.24 98.54 56 114.53 56 114.53 60.37 104.29 60.37 104.29 63.75 113.28 63.75 113.28 68.12 104.29 68.12 104.29 71.86 114.91 71.86"/><path class="cls-1" d="M126.4,75.24c-1.75-.87-3-2.12-4-3.75-1-1.5-1.5-3.37-1.5-5.37s.5-3.87,1.5-5.5c1-1.62,2.25-2.87,4-3.75,1.62-.87,3.62-1.37,5.75-1.37,1.75,0,3.5,.37,5,1,1.5,.62,2.75,1.62,3.62,2.87l-3.62,3.25c-1.25-1.5-2.87-2.37-4.75-2.37-1.12,0-2.12,.25-3,.75-.75,.5-1.5,1.25-2,2.12-.37,.87-.62,1.87-.62,3s.25,2.12,.62,3c.5,.87,1.25,1.62,2,2,.87,.5,1.87,.75,3,.75,1.87,0,3.5-.75,4.75-2.37l3.62,3.37c-.87,1.25-2.12,2.12-3.62,2.75-1.5,.75-3.25,1-5,1-2.12,0-4.12-.37-5.75-1.37"/><polygon class="cls-1" points="151.5 60.5 145.25 60.5 145.25 56 163.36 56 163.36 60.5 157.25 60.5 157.25 76.24 151.5 76.24 151.5 60.5"/>
269									</g></g>
270								</svg>
271							</a>
272						</div>
273
274						<div class="newsletter-icon">
275							<a href="https://thechinaproject.com/newsletters/" rel="newsletter">
276								<span class="screen-reader-text">Newsletter</span>
277								<svg xmlns="http://www.w3.org/2000/svg" width="31.214" height="26.125" viewBox="0 0 31.214 26.125">
278									<g transform="translate(-0.015 -4.438)">
279										<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="2" d="M12,27.4v9.059l4.964-4.406" transform="translate(-3.795 -8.121)"/>
280										<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="2" d="M17.823,28.338,29.3,6,2,13.446Z"/>
281										<line fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="2" x1="21.097" y2="13.279" transform="translate(8.205 6)"/>
282									</g>
283								</svg>
284							</a>
285						</div>
286						<div class="site-header__row site-header__row--main">
287
288							<div class="site-header__row-inner clearfix">
289
290								<div class="site-header__left visible@lg">
291
292																		<nav id="js-nav-main" class="nav nav--horizontal nav--main" role="navigation" data-sctrack="mainNav">
293										<ul class="menu">
294										<li id="menu-item-202814" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-202814 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/newsletters/" class="menu-target menu-link menu-target--loc-header-main">Newsletters</a></li><li id="menu-item-195013" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-195013 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/podcasts/" class="menu-target menu-link menu-target--loc-header-main">Podcasts</a></li><li id="menu-item-260288" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-260288 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/section/politics-and-current-affairs/" class="menu-target menu-link menu-target--loc-header-main">Politics</a></li><li id="menu-item-192235" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-192235 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/section/business-and-technology/" class="menu-target menu-link menu-target--loc-header-main">Business &#038; Tech</a></li><li id="menu-item-189262" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-189262 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/section/society-and-culture/" class="menu-target menu-link menu-target--loc-header-main">Society</a></li><li id="menu-item-192419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-192419 menu-item-depth-0 no-children visible@xxl"><a target="_blank" rel="noopener noreferrer" href="https://events.supchina.com" class="menu-target menu-link menu-target--loc-header-main">Events</a></li><li id="menu-item-239341" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-239341 menu-item-depth-0 no-children visible@xxl"><a href="https://thechinaproject.com/section/video/" class="menu-target menu-link menu-target--loc-header-main">Video</a></li><li class="menu-item menu-item-depth-0 no-children menu-item-fixed hidden@xxl">
295				<button id="js-tray__expand" class="menu-target tray__expand unbtn" type="button" aria-expanded="false" data-modal-close="#js-members-modal">
296					<span class="tray__expand-inner">
297						<span class="screen-reader-text">
297Toggle mobile menu</span>
298						<span class="visible-text">...</span>
299					</span>
300				</button>
301			</li>										</ul>
302									</nav>
303									
304																		<nav id="js-nav-main-2" class="nav nav--horizontal nav--main-2" role="navigation" data-sctrack="mainNav">
305										<ul class="menu">
306										<li id="menu-item-219112" class="red-links menu-item menu-item-type-post_type menu-item-object-page menu-item-219112 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/subscribe/" class="menu-target menu-link menu-target--loc-header-the-china-project-pro">Research tools:</a></li><li id="menu-item-221476" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-221476 menu-item-depth-0 no-children"><a target="_blank" rel="noopener noreferrer" href="https://thechinaproject.com/meetchinaedge" class="menu-target menu-link menu-target--loc-header-the-china-project-pro">ChinaEdge</a></li><li id="menu-item-219114" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-219114 menu-item-depth-0 no-children"><a target="_blank" rel="noopener noreferrer" href="https://thechinaproject.com/china-newsbase/" class="menu-target menu-link menu-target--loc-header-the-china-project-pro">China Newsbase</a></li>										</ul>
307									</nav>
308									
309								</div>
310
311								<div class="site-header__right">
312
313									<nav id="js-nav--util" class="nav nav--horizontal nav--util" role="navigation" data-sctrack="utilNav">
314										<ul class="menu">
315
316											<li>
317													<a href="/subscribe/" class="unbtn menu-target util-btn util-btn--subscribe" data-sctrack="subscribeBtn">
318														<strong>Subscribe</strong>
319													</a>
320												</li>											<li>
321												<a href="/log-in/" id="js-login-button" class="unbtn menu-target util-btn util-btn--log-in" data-sctrack="loginBtn">
322													<strong>Log In</strong>
323												</a>
324											</li>
325
326											<li id="js-nav--acct__wrap" class="nav--acct__wrap show-if-piano-user">
327
328												<button id="js-nav--acct__trigger" class="unbtn menu-target util-btn util-btn--see-account nav--acct__trigger" data-sctrack="acctNavBtn" type="button">
329													<span class="nav--acct__trigger-inner">
330														<strong>My Account</strong>
331														<span class="icon-arrow-bottom"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"></path></svg></span>
332													</span>
333												</button>
334
335												<div id="js-nav--acct" class="nav nav--acct light-area light-area--white" data-render="user_nav" data-sctrack="pianoSubNav">
336													<ul class="menu">
337
338	<li class="nav--acct__user">
339		<span class="nav--acct__user-type"></span>	</li>
340
341		<li id="menu-item-218383" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-218383"><a href="https://thechinaproject.com/saved-articles/" class=" menu-target--loc-header-piano-account">Saved Articles</a></li><li id="menu-item-218382" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-218382"><a href="https://thechinaproject.com/watchlist/" class=" menu-target--loc-header-piano-account">Watchlist</a></li><li id="menu-item-218384" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-211945 current_page_item menu-item-218384"><a href="https://thechinaproject.com/my-account/" aria-current="page" class=" menu-target--loc-header-piano-account">My Account</a></li><li id="menu-item-218385" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-218385"><a href="https://thechinaproject.com/contact/" class=" menu-target--loc-header-piano-account">Help</a></li>
342		
343		<li class="nav--acct__log-out">
344		<button id="js-logout" class="util-btn util-btn--logout" type="button">
345			Log Out		</button>
346	</li>
347
348</ul>
349													</div>
350
351											</li>
352
353																																	
354										</ul>
355									</nav>
356
357								</div>
358
359							</div>
360
361						</div>
362
363												<button id="js-tray__toggle" class="tray__toggle unbtn" type="button" aria-expanded="false" data-modal-close="#js-members-modal" data-sctrack="trayToggle">
364							<div class="tray__toggle-inner">
365								<span class="screen-reader-text">
365Toggle mobile menu</span>
366																								<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="32" height="24" viewBox="0 0 32 24">
367									<g transform="translate(2 2)">
368										<line class="tray__toggle-line tray__toggle-line--a" x2="28" fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="4"/>
369										<line class="tray__toggle-line tray__toggle-line--b" x2="28" fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="4"/>
370										<line class="tray__toggle-line tray__toggle-line--c" x2="28" fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="4"/>
371										<line class="tray__toggle-line tray__toggle-line--d" x2="28" fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="4"/>
372									</g>
373								</svg>
374							</div>
375						</button>
376
377					</header>
378
379										<div id="js-header-sticky-point" class="js-header-sticky-point"></div>
380
381					<div id="js-tray__wrap" class="tray__wrap">
382
383						<div id="js-tray" class="tray dark-area dark-area--black text-align-left text-align-inherit@sm">
384							<div class="tray__inner">
385								<div class="tray-section tray-section--top">
386
387	<div class="container container--xl tray-container tray-container--top">
388
389		<div class="row gutters tray-row tray-row--search">
390
391			<h2 class="screen-reader-text">Extended Navigation</h2>
392
393			<div class="col-12 col-6@md col-4@lg col-5@xl tray-search">
394				<form class="search-form" method="get" action="https://thechinaproject.com/" role="search">
395	<label>
396		<span class="spch-label screen-reader-text">Search</span>
397		<input class="search-form__input btn-height js-focus-on-modal-open fancy-cancel" type="search" name="s" autocomplete="off"></label><button class="search-form__submit btn" type="submit" role="submit">
398		Search	</button>
399</form>
400			</div>
401
402		</div>
403
404		<div class="row gutters tray-row tray-row--top">
405
406			<div class="col-12 col-6@md col-3@lg tray-col tray-col--top tray-col--a">
407
408								<nav class="nav nav--vertical nav--tray nav--tray-main" role="navigation">
409					<li id="menu-item-219117" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-219117 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/newsletters/" class="menu-target menu-link menu-target--loc-mega-jumbo-links">Newsletters</a></li><li id="menu-item-219118" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-219118 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/video/" class="menu-target menu-link menu-target--loc-mega-jumbo-links">Video</a></li><li id="menu-item-219119" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-219119 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/podcasts/" class="menu-target menu-link menu-target--loc-mega-jumbo-links">Podcasts</a></li><li id="menu-item-219120" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-219120 menu-item-depth-0 no-children"><a href="https://events.supchina.com" class="menu-target menu-link menu-target--loc-mega-jumbo-links">Events</a></li>				</nav>
410				
411				<div id="menu-research-tools" class="col-12 col-12@sm hidden">
412
413											<nav class="nav nav--vertical nav--tray nav--tray-main" role="navigation">
414							<h3 class="tray-nav__title iblock tray-nav__title--main text">Research Tools</h3><ul class="menu menu--tray menu--main-menu-2-mobile"><li id="menu-item-281117" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-281117 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="/meetchinaedge" class="menu-target menu-link menu-target--loc-mega-research-tools">ChinaEdge</a></li><li id="menu-item-281118" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-281118 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="/china-newsbase/" class="menu-target menu-link menu-target--loc-mega-research-tools">China Newsbase</a></li></ul>						</nav>
415					
416				</div>
417			</div>
418
419			<div class="col-12 col-6@md col-3@lg tray-col tray-col--top tray-col--b">
420
421								<nav class="nav nav--vertical nav--tray nav--tray-main" role="navigation">
422					<h3 class="tray-nav__title iblock tray-nav__title--main text">Sections</h3><ul class="menu menu--tray menu--tray-main-col-1"><li id="menu-item-260256" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-260256 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="https://thechinaproject.com/section/politics-and-current-affairs/" class="menu-target menu-link menu-target--loc-mega-sections">Politics &amp; Current Affairs</a></li><li id="menu-item-192601" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-192601 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="https://thechinaproject.com/section/business-and-technology/" class="menu-target menu-link menu-target--loc-mega-sections">Business &amp; Technology</a></li><li id="menu-item-190258" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-190258 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="https://thechinaproject.com/section/society-and-culture/" class="menu-target menu-link menu-target--loc-mega-sections">Society &amp; Culture</a></li><li id="menu-item-192602" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-192602 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="https://thechinaproject.com/section/science-and-health/" class="menu-target menu-link menu-target--loc-mega-sections">Science &amp; Health</a></li><li id="menu-item-193345" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-193345 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="https://thechinaproject.com/section/opinion/" class="menu-target menu-link menu-target--loc-mega-sections">Opinion</a></li></ul>				</nav>
423				
424			</div>
425
426			<div class="col-12 col-6@md col-3@lg tray-col tray-col--top tray-col--c">
427
428								<nav class="nav nav--vertical nav--tray nav--tray-main" role="navigation">
429					<h3 class="tray-nav__title iblock tray-nav__title--main text">Columns</h3><ul class="menu menu--tray menu--tray-main-col-2"><li id="menu-item-183235" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-183235 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/this-week-in-chinas-history/" class="menu-target menu-link menu-target--loc-mega-columns">This Week in China’s History<div class="tray-nav__column-author">by <span class="author-name">James Carter</span></div></a></li><li id="menu-item-253459" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-253459 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/ultimate-china-books
429helf/" class="menu-target menu-link menu-target--loc-mega-columns">Paul French&#8217;s Ultimate China Bookshelf<div class="tray-nav__column-author">by <span class="author-name">Paul French</span></div></a></li><li id="menu-item-275422" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-275422 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/china-ties/" class="menu-target menu-link menu-target--loc-mega-columns">China Ties<div class="tray-nav__column-author">by <span class="author-name">Alex Colville</span></div></a></li><li id="menu-item-226309" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-226309 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/invited-to-tea/" class="menu-target menu-link menu-target--loc-mega-columns">Invited to Tea<div class="tray-nav__column-author">by <span class="author-name">Jeremy Goldkorn</span></div></a></li><li id="menu-item-277522" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-277522 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/chinas-world/" class="menu-target menu-link menu-target--loc-mega-columns">China&#8217;s World<div class="tray-nav__column-author">by <span class="author-name">Duncan Bartlett</span></div></a></li><li id="menu-item-229883" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-229883 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/queer-china/" class="menu-target menu-link menu-target--loc-mega-columns">Queer China<div class="tray-nav__column-author">by <span class="author-name">Nathan Wei</span></div></a></li><li id="menu-item-280671" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-280671 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/southern-view/" class="menu-target menu-link menu-target--loc-mega-columns">Southern View<div class="tray-nav__column-author">by <span class="author-name">Cobus van Staden</span></div></a></li><li id="menu-item-224297" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-224297 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/phrase-of-the-week/" class="menu-target menu-link menu-target--loc-mega-columns">Phrase of the Week<div class="tray-nav__column-author">by <span class="author-name">Andrew Methven</span></div></a></li><li id="menu-item-280670" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-280670 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/china-book-chats/" class="menu-target menu-link menu-target--loc-mega-columns">China Book Chats<div class="tray-nav__column-author">by <span class="author-name">Christopher Marquis</span></div></a></li><li id="menu-item-272123" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-272123 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/china-and-the-town/" class="menu-target menu-link menu-target--loc-mega-columns">China and the Town<div class="tray-nav__column-author">by <span class="author-name">Laurel Schwartz</span></div></a></li><li id="menu-item-183236" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-183236 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/window-on-xinjiang/" class="menu-target menu-link menu-target--loc-mega-columns">Window on Xinjiang<div class="tray-nav__column-author">by <span class="author-name">Darren Byler</span></div></a></li><li id="menu-item-253730" class="menu-item menu-item-type-taxonomy menu-item-object-column menu-item-253730 menu-item-depth-0 no-children vmarg vmarg-mini@lg"><a href="https://thechinaproject.com/column/uyghur-bulletin/" class="menu-target menu-link menu-target--loc-mega-columns">Uyghur Bulletin<div class="tray-nav__column-author">by <span class="author-name">Ruth Ingram</span></div></a></li></ul>				</nav>
430				
431			</div>
432
433			<div class="col-12 col-6@md col-3@lg tray-col tray-col--top tray-col--d">
434
435								<nav class="nav nav--vertical nav--tray nav--tray-main" role="navigation">
436					<h3 class="tray-nav__title iblock tray-nav__title--main text">Business Services</h3><ul class="menu menu--tray menu--tray-btm-col-2"><li id="menu-item-199905" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-199905 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="https://thechinaproject.com/china-consulting/" class="menu-target menu-link menu-target--loc-mega-business-services">China Consulting Marketplace</a></li><li id="menu-item-191118" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-191118 menu-item-depth-0 no-children vmarg vmarg-mini@lg vmarg@xl tray-nav__h-link"><a href="https://thechinaproject.com/advertising/" class="menu-target menu-link menu-target--loc-mega-business-services">Advertising</a></li></ul>				</nav>
437				
438			</div>
439
440		</div>
441	</div>
442
443</div>
444
445<div class="tray-section tray-section--btm">
446
447	<div class="container container--xl tray-container tray-container--btm">
448
449		<div class="row gutters tray-row tray-row--btm">
450
451			<div class="col-12 tray-col tray-col--btm vmarg vmarg-none@md">
452				<nav class="nav nav--horizontal nav--connect">
453
454	<ul class="connect-icons listless">
455
456		
457									<li class="connect-icon connect-icon--linkedin">
458				<a href="https://www.linkedin.com/company/thechinaproject/" target="_blank" rel="noopener">
459					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none" stroke="currentColor" stroke-width="2"><circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15" fill="none"/></g><g transform="translate(-28.995 -20.796)"><path d="M38.729,43.931h2.937V33.651H38.729Zm11.212-9.694a4.576,4.576,0,0,0-3.87-.135v-.451H43.135v10.28h2.937V37.356a1.561,1.561,0,0,1,.535-.557,1.277,1.277,0,0,1,.808-.23,1.82,1.82,0,0,1,1.09.23.923.923,0,0,1,.5.891v6.241h2.937V37.69A4.173,4.173,0,0,0,49.941,34.237ZM40.2,28.878a1.836,1.836,0,1,0,1.836,1.836A1.835,1.835,0,0,0,40.2,28.878Z" transform="translate(0 0)" fill="currentColor"/></g></svg>				</a>
460			</li>
461			
462		
463									<li class="connect-icon connect-icon--facebook">
464				<a href="https://www.facebook.com/thechinaprojectnews" target="_blank" rel="noopener">
465					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><g fill="none" stroke="currentColor" stroke-width="2"><circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15"/></g><path d="M17.37 10.901h2.3V7.688h-2.3c-1.9 0-3.452 1.892-3.452 4.217v1.622h-2.3v3.224h2.3v7.8h2.877v-7.8h2.877v-3.225h-2.877v-1.653c0-.556.305-.972.575-.972z" fill="currentColor"/></svg>				</a>
466			</li>
467			
468		
469									<li class="connect-icon connect-icon--instagram">
470				<a href="https://www.instagram.com/thechinaproj/" target="_blank" rel="noopener">
471					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none" stroke="currentColor" stroke-width="2"><circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15" fill="none"/></g><g transform="translate(-24.567 -26.568)"><path d="M45.515,35.635H35.7A1.7,1.7,0,0,0,34,37.328v9.823a1.7,1.7,0,0,0,1.7,1.692h9.819a1.7,1.7,0,0,0,1.7-1.692V37.328A1.7,1.7,0,0,0,45.515,35.635Zm-2.076,2.073a.5.5,0,0,1,.5-.5h1.2a.5.5,0,0,1,.5.5v1.2a.5.5,0,0,1-.5.5h-1.2a.5.5,0,0,1-.5-.5v-1.2Zm-2.833,1.7a2.827,2.827,0,1,1-2.831,2.827A2.829,2.829,0,0,1,40.606,39.409Zm5.358,7.65a.525.525,0,0,1-.525.523H35.788a.525.525,0,0,1-.525-.523V41.291h1.361a4.1,4.1,0,1,0,7.968,0h1.371v5.768Z" fill="currentColor"/></g></svg>				</a>
472			</li>
473			
474		
475									<li class="connect-icon connect-icon--spotify">
476				<a href="https://open.spotify.com/show/1QlGMoMsAncoBdH9Uz5u4N?si=F5M0J5ilSOKdn5ekonAiMA" target="_blank" rel="noopener">
477					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g id="Ellipse_1" data-name="Ellipse 1"  fill="none" stroke="currentColor" stroke-width="2">
478			<circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15" fill="none"/></g><path id="Spotify-Icon-White-Logo.wine" d="M14.324,7.979C11.423,6.256,6.637,6.1,3.868,6.938a.842.842,0,0,1-.489-1.611c3.179-.965,8.464-.779,11.8,1.2a.842.842,0,0,1-.859,1.448m-.095,2.552a.7.7,0,0,1-.965.231A11.813,11.813,0,0,0,4.3,9.713.7.7,0,1,1,3.888,8.37,13.129,13.129,0,0,1,14,9.566a.7.7,0,0,1,.231.965m-1.1,2.451a.561.561,0,0,1-.771.187c-2.113-1.292-4.774-1.583-7.906-.868a.561.561,0,1,1-.25-1.093c3.428-.784,6.369-.446,8.741,1a.561.561,0,0,1,.186.771M9,0a9,9,0,1,0,9,9A9,9,0,0,0,9,0" transform="translate(7 7)" fill="currentColor" /></svg>				</a>
479			</li>
480			
481		
482	</ul>
483
484</nav>
485			</div>
486
487		</div>
488
489		<div class="row gutters tray-row tray-row--btm tray-row--b">
490
491						<div class="col-12 tray-col tray-col--btm vmarg vmarg-none@md">
492
493				<nav class="nav nav--vertical nav--tray nav--tray-btm-col nav--tray-btm-col-1" role="navigation">
494					<h3 class="tray-nav__title iblock h3">About The China Project</h3><ul class="menu menu--tray menu--tray-btm-col-1"><li id="menu-item-189587" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189587 menu-item-depth-0 no-children vmarg-mini vmarg-none@lg"><a href="https://thechinaproject.com/about-2/" class="menu-target menu-link menu-target--loc-mega-about">About The China Project</a></li><li id="menu-item-191032" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-191032 menu-item-depth-0 no-children vmarg-mini vmarg-none@lg"><a href="https://thechinaproject.com/the-china-project-manifesto/" class="menu-target menu-link menu-target--loc-mega-about">Manifesto</a></li><li id="menu-item-192303" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-192303 menu-item-depth-0 no-children vmarg-mini vmarg-none@lg"><a href="https://thechinaproject.com/contact/" class="menu-target menu-link menu-target--loc-mega-about">Contact</a></li></ul>				</nav>
495
496			</div>
497			
498		</div>
499
500	</div>
501
502</div>
503							</div>
504						</div>
505
506						<button id="js-tray__bg" class="tray__bg" type="button">
507							<span class="screen-reader-text">Close expanded menu</span>
508						</button>
509
510					</div>
511
512						<div  class="js-ticker ticker ticker--desktop visible@lg">
513		<div" class="ticker__holder">
514			<div class="ticker__inner">
515				<h2 class="ticker__title iblock">Trending</h2><nav class="nav nav--horizontal nav--ticker iblock"><ul class="listless"><li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-229881 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/taiwan/" class="menu-target menu-link menu-target--loc-ticker">#taiwan</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-274814 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/espionage/" class="menu-target menu-link menu-target--loc-ticker">#espionage</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-227376 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/lgbtq/" class="menu-target menu-link menu-target--loc-ticker">#lgbtq</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-274815 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/artificial-intelligence/" class="menu-target menu-link menu-target--loc-ticker">#artificialintelligence</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-226310 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/tag/xinjiang/" class="menu-target menu-link menu-target--loc-ticker">#xinjiang</a></li></ul></nav>			</div>
516		</div>
517	</div>
518	
519					<div class="site-content-wrap">
520						<div id="site-content" class="site-content" tabindex="-1">
521<main id="main" class="main js-piano-watchlist piano-watchlist piano-watchlist--prefs" role="main">
522
523	<section class="section section--my-acct light-area light-area--white">
524		<header class="loop-header red-links">
525			<div class="container container--xxl">
526
527								<div class="row show-if-piano-user">
528					<div class="col-12 col-9@xl">
529
530						<div class="card__meta">
531							<div class="card__cat card--loop__cat meta2">My Account</div>
532						</div>
533
534						<h1 class="h1">My Account</h1>
535						
536						<div id="js-account__frame" class="inline-frame inline-frame--account"></div>
537
538					</div>
539				</div>
540
541								<div class="row flex-center-top show-if-not-piano-user">
542					<div class="col-12 col-6@lg text-align-center">
543
544						
545						<h1 class="h1 screen-reader-text">Log In</h1>
546
547						<div id="js-login__frame" class="inline-frame inline-frame--login"></div>
548
549					</div>
550				</div>
551
552			</div>
553		</header>
554	</section>
555
556</main>
557
558						</div>
559					</div>
560				</div>
561			</div>
562
563			<div id="js-site-footer__wrap" class="site-footer__wrap">
564				<footer id="js-site-footer" class="site-footer clearfix">
565					<div class="footer-row-1 footer-row light-area light-area--offwhite clearfix">
566						<div class="footer-row-1__inner footer-row__inner container container--full-width">
567							<div class="row gutters">
568
569																<div class="footer-top-left col-12 col-6@md col-4@xl">
570
571									<div class="site-logo site-logo--footer">
572										<a href="https://thechinaproject.com/" rel="home">
573											<span class="screen-reader-text">The China Project</span>
574											<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.64 100.64">
575												<path class="cls-1" style="fill:#ef4453;" d="M49.42,45.87c-4.1,0-13.35,2.36-13.35,12.79s10.71,12.3,12.37,12.3c1,0,12.77,.03,22.06,.04h25.68c3.32-7.35,4.92-15.6,4.32-24.21C98.57,19.08,74.52-1.82,46.8,.13,32.14,1.15,19.39,8.37,10.91,19.03H51.37c12.65,0,22.94,10.29,22.94,22.94s-10.29,22.94-22.94,22.94c-1.95-3.75-3.06-6.47-4.8-10.15,1.32,.07,4.8,0,4.8,0,4.1,0,13.35-2.36,13.35-12.79s-10.71-12.3-12.44-12.3c-1.29,0-27.11-.04-38.81-.06H4.46C1.13,36.96-.48,45.22,.12,53.83c1.94,27.72,25.99,48.62,53.71,46.68,14.66-1.03,27.41-8.24,35.89-18.91H49.42c-12.72,0-22.94-10.29-22.94-22.94s10.22-22.94,22.94-22.94c1.88,3.75,2.99,6.47,4.8,10.15-1.39-.07-4.8,0-4.8,0"/>
576											</svg>
577										</a>
578									</div>
579
580																			<div class="quote__wrap">
581											<blockquote><strong>"A jewel in the crown of China reporting.</strong> I look to it daily... It adds so much insight into the real China."</blockquote>																						<footer>
582																								<p class="quote__name">Max Baucus</p>
583																																				<p class="quote__position">Former U.S. Ambassador to China</p>
584																							</footer>
585																					</div>
586										
587																			<div class="site-footer__cta has-btns has-btns--wire"><p><a href="https://thechinaproject.com/subscribe/">Get Premium Access</a></p>
588</div>
589										
590									<nav class="nav nav--horizontal nav--connect">
591
592	<ul class="connect-icons listless">
593
594		
595									<li class="connect-icon connect-icon--linkedin">
596				<a href="https://www.linkedin.com/company/thechinaproject/" target="_blank" rel="noopener">
597					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none" stroke="currentColor" stroke-width="2"><circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15" fill="none"/></g><g transform="translate(-28.995 -20.796)"><path d="M38.729,43.931h2.937V33.651H38.729Zm11.212-9.694a4.576,4.576,0,0,0-3.87-.135v-.451H43.135v10.28h2.937V37.356a1.561,1.561,0,0,1,.535-.557,1.277,1.277,0,0,1,.808-.23,1.82,1.82,0,0,1,1.09.23.923.923,0,0,1,.5.891v6.241h2.937V37.69A4.173,4.173,0,0,0,49.941,34.237ZM40.2,28.878a1.836,1.836,0,1,0,1.836,1.836A1.835,1.835,0,0,0,40.2,28.878Z" transform="translate(0 0)" fill="currentColor"/></g></svg>				</a>
598			</li>
599			
600		
601									<li class="connect-icon connect-icon--facebook">
602				<a href="https://www.facebook.com/thechinaprojectnews" target="_blank" rel="noopener">
603					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><g fill="none" stroke="currentColor" stroke-width="2"><circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15"/></g><path d="M17.37 10.901h2.3V7.688h-2.3c-1.9 0-3.452 1.892-3.452 4.217v1.622h-2.3v3.224h2.3v7.8h2.877v-7.8h2.877v-3.225h-2.877v-1.653c0-.556.305-.972.575-.972z" fill="currentColor"/></svg>				</a>
604			</li>
605			
606		
607									<li class="connect-icon connect-icon--instagram">
608				<a href="https://www.instagram.com/thechinaproj/" target="_blank" rel="noopener">
609					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none" stroke="currentColor" stroke-width="2"><circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15" fill="none"/></g><g transform="translate(-24.567 -26.568)"><path d="M45.515,35.635H35.7A1.7,1.7,0,0,0,34,37.328v9.823a1.7,1.7,0,0,0,1.7,1.692h9.819a1.7,1.7,0,0,0,1.7-1.692V37.328A1.7,1.7,0,0,0,45.515,35.635Zm-2.076,2.073a.5.5,0,0,1,.5-.5h1.2a.5.5,0,0,1,.5.5v1.2a.5.5,0,0,1-.5.5h-1.2a.5.5,0,0,1-.5-.5v-1.2Zm-2.833,1.7a2.827,2.827,0,1,1-2.831,2.827A2.829,2.829,0,0,1,40.606,39.409Zm5.358,7.65a.525.525,0,0,1-.525.523H35.788a.525.525,0,0,1-.525-.523V41.291h1.361a4.1,4.1,0,1,0,7.968,0h1.371v5.768Z" fill="currentColor"/></g></svg>				</a>
610			</li>
611			
612		
613									<li class="connect-icon connect-icon--spotify">
614				<a href="https://open.spotify.com/show/1QlGMoMsAncoBdH9Uz5u4N?si=F5M0J5ilSOKdn5ekonAiMA" target="_blank" rel="noopener">
615					<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g id="Ellipse_1" data-name="Ellipse 1"  fill="none" stroke="currentColor" stroke-width="2">
616			<circle cx="16" cy="16" r="16" stroke="none"/><circle cx="16" cy="16" r="15" fill="none"/></g><path id="Spotify-Icon-White-Logo.wine" d="M14.324,7.979C11.423,6.256,6.637,6.1,3.868,6.938a.842.842,0,0,1-.489-1.611c3.179-.965,8.464-.779,11.8,1.2a.842.842,0,0,1-.859,1.448m-.095,2.552a.7.7,0,0,1-.965.231A11.813,11.813,0,0,0,4.3,9.713.7.7,0,1,1,3.888,8.37,13.129,13.129,0,0,1,14,9.566a.7.7,0,0,1,.231.965m-1.1,2.451a.561.561,0,0,1-.771.187c-2.113-1.292-4.774-1.583-7.906-.868a.561.561,0,1,1-.25-1.093c3.428-.784,6.369-.446,8.741,1a.561.561,0,0,1,.186.771M9,0a9,9,0,1,0,9,9A9,9,0,0,0,9,0" transform="translate(7 7)" fill="currentColor" /></svg>				</a>
617			</li>
618			
619		
620	</ul>
621
622</nav>
623
624								</div>
625
626																<div class="footer-top-right col-12 col-6@md col-8@xl red-links">
627									<div class="row">
628										<div class="footer-nav-col col-6 col-3@xl">
629											<h3 class="footer-nav-col__title h4">Subscribe</h3><nav class="footer-nav-col__nav nav nav--vertical"><ul class="menu"><li id="menu-item-190735" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-190735 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/subscribe/" class="menu-target menu-link menu-target--loc-footer-subscribe">Premium Subscription</a></li><li id="menu-item-203782" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-203782 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/newsletters/" class="menu-target menu-link menu-target--loc-footer-subscribe">Newsletters</a></li><li id="menu-item-177830" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-177830 menu-item-depth-0 no-children"><a target="_blank" rel="noopener noreferrer" href="https://thechinaproject.com/podcasts/" class="menu-target menu-link menu-target--loc-footer-subscribe">Podcasts</a></li><li id="menu-item-177836" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-177836 menu-item-depth-0 no-children"><a href="https://www.youtube.com/channel/UCqgLGmwFAy6XQtvT5oVBeCw/" class="menu-target menu-link menu-target--loc-footer-subscribe">Video</a></li></ul></nav>										</div>
630										<div class="footer-nav-col col-6 col-3@xl">
631											<h3 class="footer-nav-col__title h4">About</h3><nav class="footer-nav-col__nav nav nav--vertical"><ul class="menu"><li id="menu-item-189297" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189297 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/about-2/" class="menu-target menu-link menu-target--loc-footer-about">About The China Project</a></li><li id="menu-item-191031" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-191031 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/the-china-project-manifesto/" class="menu-target menu-link menu-target--loc-footer-about">The China Project Manifesto</a></li><li id="menu-item-201470" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-201470 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/serica-initiative/" class="menu-target menu-link menu-target--loc-footer-about">Nonprofit  |  The Serica Initiative</a></li><li id="menu-item-281465" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-281465 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/student-ambassadors/" class="menu-target menu-link menu-target--loc-footer-about">Student Ambassador Program</a></li><li id="menu-item-189420" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189420 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/contact/" class="menu-target menu-link menu-target--loc-footer-about">Contact Us (including pitch guidelines)</a></li></ul></nav>										</div>
632										<div class="footer-nav-col col-6 col-3@xl">
633											<h3 class="footer-nav-col__title h4">Business Services</h3><nav class="footer-nav-col__nav nav nav--vertical"><ul class="menu"><li id="menu-item-202011" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-202011 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/china-consulting/" class="menu-target menu-link menu-target--loc-footer-business-services">China Consulting Marketplace</a></li><li id="menu-item-190708" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-190708 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/corporate-subscriptions/" class="menu-target menu-link menu-target--loc-footer-business-services">Corporate Subscriptions</a></li></ul></nav>										</div>
634										<div class="footer-nav-col col-6 col-3@xl">
635											<h3 class="footer-nav-col__title h4">Advertise</h3><nav class="footer-nav-col__nav nav nav--vertical"><ul class="menu"><li id="menu-item-189421" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189421 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/advertising/" class="menu-target menu-link menu-target--loc-footer-advertise">Advertise with Us</a></li><li id="menu-item-189425" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189425 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/event-sponsorship/" class="menu-target menu-link menu-target--loc-footer-advertise">Event Sponsorship</a></li></ul></nav>										</div>
636									</div>
637								</div>
638
639							</div>
640						</div>
641					</div>
642
643					<div class="footer-row-2 footer-row dark-area dark-area--black clearfix">
644						<div class="footer-row-2__inner footer-row__inner container container--full-width">
645							<div class="row">
646
647								<div class="site-footer__copyright">
648									&copy; 2026 TheChinaProject.com. All Rights Reserved.								</div>
649
650								<nav class="nav-footer-utility nav nav--horizontal nav--with-pipes">
651									<ul class="menu">
652										<li id="menu-item-192335" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-192335 menu-item-depth-0 no-children"><a href="https://thechinaproject.com/privacy-policy/" class="menu-target menu-link menu-target--loc-footer-utility-menu">Privacy</a></li>									</ul>
653								</nav>
654
655							</div>
656						</div>
657					</div>
658
659				</footer>
660
661			</div>
662
663		</div>
664
665	</div>
666
667	<div class="piano-frame__wrap piano-frame__wrap--fixed piano-frame__wrap--bar">
668	<div id="js-piano-bar" class="piano-frame piano-frame--fixed piano-frame--bar"></div>
669</div>
670		
670<script id="pianojs-init" type="text/javascript">
671;(function($){
672
673	// ----------------------------------
674	// Piano state
675	// ----------------------------------
676
677		window.PianoESPConfig = {
678		id: 199	};
679	
680	tp = window.tp || [];
681
682	// ----------------------------------
683	// SPCH state
684	// ----------------------------------
685
686	var loginFrameLoadStarted = false;
687	var acctFrameLoadStarted = false;
688	var paywallEngaged = false;
689
690
691	// ----------------------------------
692	// Selectors
693	// ----------------------------------
694
695	// Outermost container
696	var customPianoModalSel = '#js-members-modal';
697
698	var accountAreaSel = '#js-account__frame';
699	var accountLoginSel = '#js-login__frame';
700
701
702	// ----------------------------------
703	// Subscribe to mailing list
704	// ----------------------------------
705
706		function subscribeComplete(iframeId, success, feedbackStr, object) {
707
708		spchLog('subscribeComplete');
709
710		if ( typeof object !== 'object' ) {
711			var object = {};
712		}
713
714		object.success = success;
715
716		if ( typeof feedbackStr !== 'string' ) {
717			var feedbackStr = '';
718		}
719
720		// Success!
721		if ( success ) {
722
723			var message = (feedbackStr) ? feedbackStr : 'Subscribed!';
724
725			spchLog(message);
726
727			if ( iframeId ) {
728				sendPostMessageToPiano(iframeId, true, message, object);
729			} else {
730				alert(message);
731				console.error('subscribeComplete success, but iframe missing.');
732			}
733
734		// Failed!
735		} else {
736
737			var message = 'Sorry, something went wrong while subscribing. Please leave this page open and contact [email protected]. ' + feedbackStr;
738
739			console.error(message);
740
741			if ( iframeId ) {
742				sendPostMessageToPiano(iframeId, false, message, object);
743			} else {
744				alert(message);
745				console.error('subscribeComplete failed, but iframe missing.');
746			}
747
748		}
749
750
751	}
752
753	function subscribeToLists(iframeId, email, listIDs) {
754
755		spchLog('subscribeToLists');
756		spchLog(iframeId, email, listIDs);
757
758		if ( window.PianoESPConfig && typeof window.PianoESPConfig === 'object' ) {
759			window.PianoESPConfig.email = window.PianoESPConfig.email || email;
760		} else {
761			console.error('window.PianoESPConfig not found.');
762			subscribeComplete(iframeId, false, '(Error code 0.)', {});
763			return;
764		}
765
766		if ( window.PianoESP && typeof window.PianoESP.handleUserDataPromise === 'function' ) {
767
768			var subscribePromise = window.PianoESP.handleUserDataPromise({
769				email: email,
770				squads: listIDs
771			});
772
773			spchLog('subscribePromise initiated', subscribePromise);
774
775						subscribePromise
776			.then(function(success) {
777
778				if ( success ) {
779					spchLog('subscribePromise success!', success);
780					subscribeComplete(iframeId, true, 'Success!', { promiseResponse: success });
781					LUX.addData('subscription.complete', 1);
782				} else {
783					console.error('subscribePromise error :(', success);
784					subscribeComplete(iframeId, false, '(Error code STL1.)', { promiseResponse: success });
785				}
786
787			}, function(error) {
788
789				// @todo: Figure out how it responds to errors
790				console.error('subscribePromise error :(', error);
791				subscribeComplete(iframeId, false, '(Error code STL2.)', { promiseResponse: error });
792
793			});
794
795		} else {
796
797			console.error('PianoESP.handleUserDataPromise not found.');
798			subscribeComplete(iframeId, false, '(Error code STL3.)', {});
799
800		}
801
802	}
803
804	function isValidEmail(email) {
805		const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
806		return re.test(String(email).toLowerCase());
807	}
808
809	function startsWith(haystack, needle) {
810
811		if ( typeof haystack === 'string' && haystack && typeof needle === 'string' && needle ) {
812			return haystack.lastIndexOf(needle, 0) === 0;
813		} else {
814			return false;
815		}
816
817	}
818
819	/**
820	* Function to send data upstream to Piano template
821	* @param iframeId - Element id of the Piano iframe
822	* @param success - true/false. Status of the message
823	* @param message - Error message text
824	* @param object - Additional data, like the the field that triggered the error
825	*/
826	function sendPostMessageToPiano(iframeId, success, message, object) {
827
828		spchLog('sendPostMessageToPiano -- ' + iframeId);
829
830		var iframe = jQuery('#' + iframeId);
831
832		if (iframe.length) {
833			iframe[0].contentWindow.postMessage({
834				piano: {
835					success: success,
836					message: message,
837					object: object
838				}
839			}, '*');
840		}
841
842	}
843
844	/**
845	* Sets cookie for later use in custom variables
846	* @param name - Custom variable's name
847	* @param value - Custom variable's value
848	*/
849	function pianoSetCustomVariableCookie(name, value) {
850
851		// Get all existing values from the cookie
852		var cookieValue = pianoReadCustomVariableCookie();
853
854		// Set the value
855		cookieValue[name] = value;
856
857		// Get cookie expiration date in 3 years
858		var d = new Date(); d.setTime(d.getTime() + (94608000000)); var expires = "expires=" + d.toUTCString();
859
860		// Write the cookie value
861		document.cookie = "__pcvc=" + JSON.stringify(cookieValue) + ";" + expires + ";path=/";
862
863	}
864
865	/**
866	* Read values from cookie and convert them from JSON
867	* @param specificName (optional) Name specific value from the set
868	* @returns {*} If specificName is specified - returns a single value, otherwise returns a JSON object with all values
869	*/
870	function pianoReadCustomVariableCookie(specificName) {
871
872		var cookieValue;
873
874		try {
875
876			// Try to get the cookie value with regexp
877			var match = document.cookie.match(new RegExp('(^| )__pcvc=([^;]+)'));
878
879			if (match) {
880
881				// If cookie with this name was found - try to parse the JSON value
882				cookieValue = JSON.parse(match[2]);
883
884			}
885
886		} catch (e) {
887
888			// By default - set value as empty object
889			cookieValue = {};
890
891		}
892
893		if ( ! cookieValue ) {
894
895			// By default - set value as empty object
896			cookieValue = {};
897
898		}
899
900		if (typeof specificName != "undefined") {
901
902			// Get the specific value from the set
903			if (typeof cookieValue[specificName] != "undefined") {
904				return cookieValue[specificName];
905			}
906
907			return null;
908
909		}
910
911		return cookieValue;
912
913	}
914
915		(function() {
916
917		// Read all values from cookie
918		var pianoCustomVariableCookie = pianoReadCustomVariableCookie();
919
920		// Set custom variables from cookie on each page load
921		for (var i in pianoCustomVariableCookie) {
922			tp.push(['setCustomVariable', i, pianoCustomVariableCookie[i]]);
923		}
924
925	})();
926
927
928	// ----------------------------------
929	// Methods
930	// ----------------------------------
931
932	function logout() {
933
934		spchLog('logout --');
935
936		// if ( typeof closeModal === 'function' ) {
937
938			// var $modal = $(customPianoModalSel);
939
940			// closeModal($modal, function(){
941
942				spchLog('closeModal (should be) complete (in response to logout).');
943
944				if ( typeof tp === 'object' && typeof tp.pianoId === 'object' && typeof tp.pianoId.logout === 'function' ) {
945					tp.pianoId.logout(function(){
946						spchLog('logout -- logged out.');
947						acctFrameLoadStarted = false;
948						loginFrameLoadStarted = false;
949						eraseCookie('spch_visitor_uuid');
950						eraseCookie('spch_visitor_name');
951						eraseCookie('spch_visitor_email');
952						eraseCookie('__utp');
953						eraseCookie('__idr');
954						eraseCookie('tcprUserType');
955						location.reload();
956					});
957				} else {
958					console.error('tp.pianoId.logout() not found.');
959				}
960
961
962			// });
963
964		// }
965
966	}
967
968	function openPianoIDModal() {
969
970		spchLog('openPianoIDModal --');
971
972				var $modalOpenBtn = $('button[data-modal-open="#js-members-modal"]');
973		var expanded = $modalOpenBtn.attr('aria-expanded');
974		    expanded = ( expanded === true || expanded === 'true' );
975
976		if ( ! expanded ) {
977						$modalOpenBtn.click();
978		}
979
980	}
981
982	// @todo: UPDATE TO newer global method
983	function closePianoIDModal() {
984
985		spchLog('closePianoIDModal --');
986
987				var $modalCloseBtn = $('button[data-modal-close="#js-members-modal"]');
988		var expanded = $modalCloseBtn.attr('aria-expanded');
989		    expanded = ( expanded === true || expanded === 'true' );
990
991		if ( expanded ) {
992						$modalCloseBtn.click();
993		}
994
995	}
996
997	function startLogin() {
998
999		spchLog('startLogin -- loginFrameLoadStarted?', loginFrameLoadStarted);
1000
1001		$(window).trigger('loginRevealStart');
1002
1003		if ( ! loginFrameLoadStarted ) {
1004
1005			loginFrameLoadStarted = true;
1006
1007			spchLog('Setting loginFrameLoadStarted = true, then tp.pianoId.show()', loginFrameLoadStarted);
1008
1009												tp.pianoId.show();
1010			
1011		}
1012
1013	}
1014
1015	// Loads Piano account iframe
1016	// (previously preloaded in a hidden modal, now loaded in the body of a designated page)
1017	function loadAcct() {
1018
1019		spchLog('loadAcct() -- acctFrameLoadStarted?', acctFrameLoadStarted);
1020
1021		if ( ! acctFrameLoadStarted ) {
1022
1023			acctFrameLoadStarted = true;
1024
1025						tp.myaccount.show({
1026				containerSelector: accountAreaSel,
1027				displayMode: 'inline',
1028				loginRequired: function() {
1029
1030					spchLog('loadAcct -- myacct show login required');
1031
1032				}
1033			});
1034
1035		}
1036
1037	}
1038
1039	var $regArea;
1040	var $restOfArticle;
1041
1042	function enablePaywall() {
1043
1044		if ( tp.pianoId.isUserValid() ) {
1045			return;
1046		}
1047
1048		spchLog('enablePaywall --');
1049
1050		// Remove ESP signup
1051		$('.piano-frame__wrap--esp').remove();
1052
1053				$regArea = $('#js-reg-wrap');
1054
1055		if ( typeof $restOfArticle !== 'object' ) {
1056
1057			// Remove from DOM and store to var
1058						$restOfArticle = $regArea.nextAll().not('.post-recs').detach();
1059			$("#js-reg-wrap").parent().css('position','static');
1060			// paywallSpace();
1061
1062		}
1063
1064		paywallEngaged = true;
1065
1066	}
1067
1068	function paywallSpace() {
1069		$("#js-reg-wrap").next().css('margin-top', $("#js-reg-wrap").outerHeight(true));
1070	}
1071
1072	function disablePaywall() {
1073
1074		spchLog('disablePaywall -- paywallEngaged?', paywallEngaged);
1075
1076		if ( paywallEngaged ) {
1077
1078			if ( typeof $regArea === 'object' && $regArea.length && typeof $restOfArticle === 'object' && $restOfArticle.length ) {
1079				$restOfArticle.insertAfter($regArea);
1080				$restOfArticle = null;
1081			} else {
1082				console.warn('Disable failed.');
1083			}
1084
1085			paywallEngaged = false;
1086
1087		}
1088
1089	}
1090
1091	function addToMailingLists() {
1092
1093		spchLog('addToMailingLists --');
1094
1095					
1096			var email = tp.pianoId.getUser().email;
1097			var API_URL = "\/\/api-esp.piano.io";
1098			var SITE_ID = decodeURIComponent( 'gukdowMUpu' );
1099			var MAILING_LISTS = JSON.parse( decodeURIComponent( '%5B%5D' ) );
1100
1101			var body = {email: email, sqids: MAILING_LISTS};
1102			var xhr = new XMLHttpRequest();
1103			xhr.open('POST', API_URL + '/tracker/lucid/sub/' + SITE_ID, true);
1104			xhr.setRequestHeader('Content-type', 'application/json');
1105			xhr.send(JSON.stringify(body));
1106		
1107	}
1108
1109	function hideBottomBar() {
1110		spchLog('hideBottomBar --');
1111		$('#js-piano-bar').hide();
1112	}
1113
1114	function hideAllFrames() {
1115		spchLog('hideAllFrames --');
1116		var $customPianoModal = $(customPianoModalSel);
1117		$customPianoModal.find('.modal-frame').removeClass('active');
1118		$customPianoModal.removeClass('login-frame-active account-frame-active');
1119	}
1120
1121	// Must be run within a Piano JS hook (e.g. 'init')
1122	function userHasResource(resourceID, callback) {
1123
1124		spchLog('userHasResource - Checking access for "' + resourceID + '"');
1125
1126		var params = {
1127			rid: resourceID
1128		};
1129
1130		var tpCallback = function(response) {
1131
1132			var hasAccess = (response.access && response.access.granted);
1133
1134			spchLog('Has access to "' + resourceID + '"? ' + (hasAccess ? 'YES' : 'NO'));
1135
1136			// Before uncommenting: ensure compatibility with paid-newsletters.js
1137			//	if ( hasAccess ) {
1138			//
1139			//		// Add html.piano-access-WHATEVER
1140			//		var thisClass = 'piano-access-' + resourceID;
1141			//
1142			//		// Remove spaces
1143			//		thisClass = thisClass.replace(' ', '');
1144			//
1145			//		$('html').addClass(thisClass);
1146			//
1147			//	}
1148
1149			callback(hasAccess, resourceID);
1150
1151		}
1152
1153		// https://docs.piano.io/checking-access/
1154		tp.api.callApi('/access/check', params, tpCallback);
1155
1156	}
1157
1158	// Check if user has access to any of a set of Piano resources
1159	// Must be run within a Piano JS hook (e.g. 'init')
1160	function userHasResources(resourceIDs, callback) {
1161
1162		spchLog('userHasResources');
1163
1164		// tp.pianoId.isUserValid() Might check this first.
1165		if ( ! tp.pianoId.isUserValid() ) {
1166			spchLog('userHasResources - Not a valid user!');
1167			callback([]);
1168		}
1169
1170		var leftToCheck     = resourceIDs.length;
1171		var userResourceIDs = [];
1172
1173		$.each(resourceIDs, function(i, resourceID) {
1174
1175			userHasResource(resourceID, function(hasAccess, thisRID) {
1176
1177				if ( hasAccess ) {
1178					userResourceIDs.push(thisRID);
1179				}
1180
1181				leftToCheck--;
1182
1183				// Done checking all?
1184				if ( leftToCheck === 0 ) {
1185
1186					// Before uncommenting: ensure compatibility with paid-newsletters.js
1187					// $('html').addClass('accesses-retrieved');
1188
1189					callback(userResourceIDs);
1190
1191					return;
1192
1193				}
1194
1195			});
1196
1197		});
1198
1199	}
1200
1201	var freeResources = ['BASIC1'];
1202	var paidResources = ['ACCESS1', 'BR4PSQ09', 'BRJ0JBSX', 'R2O59EE', 'GROUP', 'R090PZA'];
1203	var isMidCheckout = false;
1204
1205	/*
1206	// Note: Free access is a legacy feature. We don't prioritize them anymore; they should not get Pro features.
1207	function userHasFreeAccess(callback) {
1208		userHasResources(freeResources, function(resourceIDs) {
1209			var hasFreeResource = resourceIDs.length > 0;
1210			callback(hasFreeResource);
1211		});
1212	}
1213
1214	function userHasPaidAccess(callback) {
1215		userHasResources(paidResources, function(resourceIDs) {
1216			var hasPaidResource = resourceIDs.length > 0;
1217			callback(hasPaidResource);
1218		});
1219	}
1220	*/
1221
1222	function getUserType(callback, forceRecheck) {
1223
1224		spchLog('getUserType');
1225
1226		var userType     = '';
1227		// var forceRecheck = (typeof forceRecheck ==='boolean') ? forceRecheck : false;
1228		var forceRecheck = true;
1229
1230		if ( ! forceRecheck ) {
1231
1232			// Check cookie first if we can (to save time/API calls)
1233			userType = getCookie('spch_visitor_type');
1234
1235			if ( userType && ( userType === 'paid' || userType === 'free' ) ) {
1236				callback(userType);
1237				return;
1238			}
1239
1240		}
1241
1242				userHasResources(paidResources, function(resourceIDs) {
1243
1244			var hasAnyPaidResources = (resourceIDs.length);
1245
1246			if ( hasAnyPaidResources ) {
1247				userType = 'paid';
1248			} else {
1249				userType = 'free';
1250			}
1251
1252			callback(userType);
1253
1254		});
1255
1256	}
1257
1258	//@TODO find a better place to group newsletters code
1259	function initTcprNewsletters() {
1260		$('#js-multinews-email').val( tp.pianoId.getUser().email );
1261		$('#js-multinews-email').prop('readonly', true);
1262		$('.spch-layout--multinews #js-multinews-submit t').text('Update');
1263		// single/mid articles
1264		$('#spch-email').val( tp.pianoId.getUser().email );
1265		$('#spch-email').prop('readonly', true);
1266
1267		const user = tp.pianoId.getUser();
1268
1269		tcprGetUserType(user, (userType) => {
1270			if(userType !== 'loggedIn' && userType !== 'TCP Basic') {
1271				$("#js-piano-newsletter-hero").removeClass("non-interactive");
1272				$('.hide-for-premium').hide();
1273			}
1274		});
1275
1276	}
1277
1278	function flagAsUser(forceRecheck, callback) {
1279
1280		getUserType(function(userType) {
1281			initTcprNewsletters();
1282
1283			if ( userType === 'paid' ) {
1284
1285				$('html')
1286					.addClass('is-piano-user is-piano-user--paid not-piano-user--free')
1287					.removeClass('not-piano-user not-piano-user--paid is-piano-user--free')
1288					;
1289
1290				setCookie('spch_visitor_type', userType, 1);
1291
1292			} else {
1293
1294				$('html')
1295					.addClass('is-piano-user is-piano-user--free not-piano-user--paid')
1296					.removeClass('not-piano-user not-piano-user--free is-piano-user--paid')
1297					;
1298
1299				setCookie('spch_visitor_type', userType, 1);
1300
1301			}
1302
1303			if ( typeof callback === 'function' ) {
1304				callback(userType);
1305			}
1306
1307		}, forceRecheck);
1308
1309		LUX.addData('loggedIn', 'Yes');
1310
1311				var $landingPageForm = $('.js-landing-page-form');
1312		if( $landingPageForm.length && $('.js-hidden-piano-field').length === 0 ){
1313			let inputEl = document.createElement("input");
1314			inputEl.setAttribute('class', 'js-hidden-piano-field');
1315			inputEl.setAttribute('type', 'hidden');
1316			inputEl.setAttribute('name', 'MEMBERSHIP');
1317			inputEl.setAttribute('tabindex', '-1');
1318			inputEl.setAttribute('value', 'Paid Piano');
1319			$landingPageForm.append(inputEl);
1320		}
1321
1322	}
1323
1324	function unflagAsUser() {
1325
1326		$('html')
1327			.addClass('not-piano-user not-piano-user--free not-piano-user--paid')
1328			.removeClass('is-piano-user is-piano-user--free is-piano-user--paid')
1329			;
1330
1331		eraseCookie('spch_visitor_type');
1332		eraseCookie('loginFired');
1333		eraseCookie('tcprUserType');
1334
1335		LUX.addData('loggedIn', 'No');
1336
1337	}
1338
1339	function getCookie(name) {
1340		var nameEQ = name + "=";
1341		var ca = document.cookie.split(';');
1342		for(var i=0;i < ca.length;i++) {
1343			var c = ca[i];
1344			while (c.charAt(0)==' ') c = c.substring(1,c.length);
1345			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
1346		}
1347		return null;
1348	}
1349
1350	function setCookie(cName, cValue, expDays) {
1351		let date = new Date();
1352		date.setTime(date.getTime() + (expDays * 24 * 60 * 60 * 1000));
1353		const expires = "expires=" + date.toUTCString();
1354		document.cookie = cName + "=" + cValue + "; " + expires + "; path=/";
1355	}
1356
1357	function eraseCookie(name) {
1358		document.cookie = name+'=; Max-Age=-99999999; path=/';
1359	}
1360
1361	
1362	// ----------------------------------
1363	// Callback handlers
1364	// ----------------------------------
1365
1366	tp.push(["addHandler", "registrationSuccess", function (data){
1367
1368		spchLog('registrationSuccess -- Turning off maybeRedirectBack() until checkout.', data);
1369		isMidCheckout = true;
1370		LUX.addData('registration.complete', 1);
1371
1372		window.dataLayer = window.dataLayer || [];
1373		window.dataLayer.push({
1374			'event': 'sign_up', //Sent when a new user account is created, whether free or paid
1375		});
1376	}]);
1377
1378	// triggers gtm purchase event when subscription is purchased
1379	tp.push(["addHandler", "checkoutComplete", function(data){
1380
1381				if( data.type === "registration" && data.rid === "BASIC1" ) {
1382			setCookie('spch_visitor_pre_login_url', '', 1);
1383		}
1384
1385		getResourceAndTermNames(data.rid, data.termId, function(resourceName, termName) {
1386			// Push the data to Google Tag Manager dataLayer
1387			window.dataLayer = window.dataLayer || [];
1388			let pianoResource = resourceName || data.rid;
1389			let pianoTerm = termName || data.term_id;
1390			window.dataLayer.push({
1391				'event': 'purchase',
1392				'ecommerce': {
1393					'currency': data.chargeCurrency,
1394					'value': data.chargeAmount,
1395					'transaction_id': data.paymentId,
1396					'coupon': data.promotionId || 'no_coupon', // Use 'no_coupon' if no promotionId is available
1397					'items': [{
1398						'item_name': pianoResource,
1399						'variant': pianoTerm,
1400						'price': data.chargeAmount,
1401					}]
1402				}
1403			});
1404		});
1405
1406		if(data && data.rid) {
1407			var baseUrl = window.location.protocol + "//" + window.location.host;
1408			// Check if an edge subscriber
1409			if(tcprIsEdgeSubscriber(data.rid)) {
1410				window.location.href = baseUrl + "/chinaedge/";
1411			}
1412		}
1413	}]);
1414
1415	function onCompleteUpgradePurchase(params) {
1416		// params = { termConversionId: 'term conversion id'}
1417
1418		const user = tp.pianoId.getUser();
1419
1420		let oldTcprUserType = getCookie("tcprUserType");
1421		tcprGetUserType(user, (userType) => {
1422			if(userType !== oldTcprUserType) {
1423				//maybe need to update the meter cookie here
1424			}
1425		}, true);
1426	}
1427	tp.push(["addHandler", "completeUpgradePurchase", onCompleteUpgradePurchase]);
1428
1429	/**
1430	 * Makes an AJAX request to retrieve resource and term names from Piano API.
1431	 *
1432	 * @param {string} rid - The resource ID.
1433	 * @param {string} termId - The term ID.
1434	 * @param {function} callback - The function to call when the AJAX request is complete.
1435	 * @returns {void}
1436	 */
1437	function getResourceAndTermNames(rid, termId, callback) {
1438		jQuery.ajax({
1439			url:  'https://thechinaproject.com/wp-admin/admin-ajax.php', // Replace this with your WordPress AJAX URL
1440			type: 'POST',
1441			data: {
1442				action: 'get_piano_resource_and_term_name',
1443				rid: rid,
1444				term_id: termId,
1445				nonce: 'a64cf5cbe7', // Replace this with your actual nonce value
1446			},
1447			success: function(response) {
1448				if (response.success) {
1449					callback(response.data.resource_name, response.data.term_name);
1450				} else {
1451					callback(null, null);
1452				}
1453			},
1454			error: function() {
1455				callback(null, null);
1456			},
1457		});
1458	}
1459
1460	/**
1461	 * This function identifies the user and sends their information to the Flywheel identify method.
1462	 * If the user is logged in, it sends the user details.
1463	 * If the user is not logged in, it generates a unique identifier for the visitor and sends it.
1464	 */
1465	function sendUserIdentityToFlywheel() {
1466		if (tp.pianoId.isUserValid()) {
1467			// Get user info when logged in
1468			const user = tp.pianoId.getUser();
1469
1470			tcprGetUserType(user, (userType) => {
1471				if (!userType) {
1472					userType = 'loggedIn';
1473				}
1474
1475				flywheel.identify(
1476					user.uid,
1477					{
1478						userId: user.uid,
1479						firstName: user.firstName,
1480						lastName: user.lastName,
1481						email: user.email,
1482						username: user.given_name,
1483						userType: userType,
1484					}
1485				);
1486			});
1487		} else {
1488			// Generate a unique identifier for the visitor
1489			const visitorId = 'visitor-' + Date.now() + '-' + Math.random().toString(36).substr(2, 9);
1490
1491			// Fill in the Flywheel identify method with visitor info
1492			flywheel.identify(
1493				visitorId,
1494				{
1495					userId: visitorId,
1496					userType: 'visitor',
1497				}
1498			);
1499		}
1500	}
1501
1502	/**
1503	 * Pushes a user login event to Google Tag Manager (GTM) only once by using a 'loginFired' cookie.
1504	 * The cookie is set on the first event fire and lasts for 1 day.
1505	 *
1506	 * @function
1507	 * @name pushUserLoginToGTM
1508	 * @returns {void}
1509	 */
1510	function pushUserLoginToGTM() {
1511		// Cookie name
1512		const cookieName = 'loginFired';
1513
1514		// If the function has been fired before, simply return
1515		if (getCookie(cookieName)) {
1516			return;
1517		}
1518
1519		// Add the Google Tag Manager login event
1520		window.dataLayer = window.dataLayer || [];
1521		if (!tp.pianoId.isUserValid()) {
1522			return;
1523		}
1524
1525		const user = tp.pianoId.getUser();
1526
1527		tcprGetUserType(user, (userType) => {
1528			if (!userType) {
1529				userType = 'loggedIn';
1530			}
1531
1532			window.dataLayer.push({
1533				'event': 'login', // Sent when a user logs in
1534				userType: userType,
1535				userId: user.uid,
1536			});
1537
1538			// Set the cookie after firing the event
1539			setCookie(cookieName, 'true', 1);
1540		});
1541	}
1542
1543	/**
1544	 * Pushes a user login event to Google Tag Manager (GTM) on every page load.
1545	 *
1546	 * @function
1547	 * @name pushUserAndTypeToGTMonLoad
1548	 * @returns {void}
1549	 */
1550	function pushUserAndTypeToGTMonLoad() {
1551		// Add the Google Tag Manager login event
1552		window.dataLayer = window.dataLayer || [];
1553		if (!tp.pianoId.isUserValid()) {
1554			return;
1555		}
1556
1557		const user = tp.pianoId.getUser();
1558
1559		tcprGetUserType(user, (userType) => {
1560			if (!userType) {
1561				userType = 'loggedIn';
1562			}
1563
1564			window.dataLayer.push({
1565				userType: userType,
1566				userId: user.uid,
1567			});
1568		});
1569	}
1570
1571	/**
1572	 * This function is particularly used to add user type in My Account dropdown menu when it is initially empty.
1573	 *
1574	 * @function addUsertypeInDropdown
1575	 */
1576	function addUsertypeInDropdown() {
1577		// Check if the container exists
1578		if($('#js-nav--acct .nav--acct__user').length > 0) {
1579			// Check if the span inside the container is empty
1580			if($('#js-nav--acct .nav--acct__user .nav--acct__user-type').text().trim() === "") {
1581				// Add a value to the container
1582				const user = tp.pianoId.getUser();
1583
1584				tcprGetUserType(user, (userType) => {
1585					if(userType !== 'loggedIn') {
1586						$('#js-nav--acct .nav--acct__user .nav--acct__user-type').text(userType);
1587					}
1588				});
1589			}
1590		}
1591	}
1592
1593	/**
1594	 * Returns a Promise that resolves with the user type based on the user's access to paid resources.
1595	 * The function checks each resource in the paidResourceIds array and sets the userType to the corresponding resource name if access is granted.
1596	 *
1597	 * @param {Object} user - The user object containing user information from tp.pianoId.getUser()
1598	 * @returns {Promise<string>} A Promise that resolves with the user type (either 'loggedIn' or the corresponding resource name)
1599	 */
1600	function tcprGetUserType(user, callback, hardUpdate = false) {
1601		const paidResourceIds = [
1602				{ id: 'GROUP', name: 'TCP Group Subscription' },
1603				{ id: 'R090PZA', name: 'TCP Support Contribution' },
1604				{ id: 'BASIC1', name: 'TCP Basic' },
1605				{ id: 'ACCESS1', name: 'ChinaAccess' },
1606				{ id: 'R2O59EE', name: 'ChinaEdge' },
1607				{ id: 'BRJ0JBSX', name: 'Institutional' },
1608				{ id: 'BR4PSQ09', name: 'ChinaPro' },
1609				{ id: 'CHINAEDGE_FREE', name: 'ChinaEdge Free Trial' },
1610				{ id: 'CHINAEDGE1_OTP', name: 'ChinaEdge Tier 1' },
1611				{ id: 'CHINAEDGE2_OTP', name: 'ChinaEdge Tier 2' },
1612				{ id: 'CHINAEDGE3_OTP', name: 'ChinaEdge Tier 3' },
1613				{ id: 'CHINAEDGE4_OTP', name: 'ChinaEdge Tier 4' },
1614				{ id: 'CHINAEDGE5_OTP', name: 'ChinaEdge Tier 5' },
1615				{ id: 'CHINAEDGE1', name: 'ChinaEdge Tier 1' },
1616				{ id: 'CHINAEDGE2', name: 'ChinaEdge Tier 2' },
1617				{ id: 'CHINAEDGE3', name: 'ChinaEdge Tier 3' },
1618				{ id: 'CHINAEDGE4', name: 'ChinaEdge Tier 4' },
1619				{ id: 'CHINAEDGE5', name: 'ChinaEdge Tier 5' }
1620		]
1621
1622		if (hardUpdate) {
1623			removeCookie("tcprUserType"); // Remove the existing cookie
1624		}
1625
1626		// Check if user type is already stored in a cookie
1627		let tcprUserType = getCookie("tcprUserType");
1628
1629		if(tcprUserType && tcprUserType !== 'loggedIn') {
1630			callback(tcprUserType);
1631		} else {
1632			tcprUserType = 'loggedIn';
1633
1634			const checkResourceAccess = (index) => {
1635				if (index < paidResourceIds.length) {
1636					userHasResource(paidResourceIds[index].id, (hasAccess) => {
1637						if (hasAccess) {
1638							tcprUserType = paidResourceIds[index].name;
1639						}
1640						checkResourceAccess(index + 1);
1641					});
1642				} else {
1643					// Set tcprUserType in cookie when all resources are checked
1644					setCookie("tcprUserType", tcprUserType, 1); // Expires in 1 day
1645					callback(tcprUserType);
1646				}
1647			};
1648
1649			checkResourceAccess(0);
1650		}
1651	}
1652
1653	tp.push(["addHandler", "checkoutClose", function (data){
1654
1655		spchLog('Closed checkout modal. -- ', data);
1656
1657		if ( data.state && ( data.state === 'checkoutCompleted' || data.state === 'alreadyHasAccess' ) ) {
1658
1659			spchLog('checkoutClose - Signed up or already had access.');
1660
1661			disablePaywall();
1662
1663						addToMailingLists();
1664
1665			closePianoIDModal();
1666
1667			if ( data.state === 'checkoutCompleted' ) {
1668
1669				spchLog('checkoutClose - checkoutCompleted');
1670
1671				isMidCheckout = false;
1672
1673				var forceRecheck = true;
1674
1675				flagAsUser(forceRecheck, function(){
1676					if(data && data.rid) {
1677
1678						var baseUrl = window.location.protocol + "//" + window.location.host;
1679						// Check if an edge subscriber
1680						if(tcprIsEdgeSubscriber(data.rid)) {
1681							window.location.href = baseUrl + "/chinaedge/";
1682						}
1683					}
1684
1685					maybeRedirectBack();
1686				});
1687
1688				LUX.addData('checkout.complete', 1);
1689
1690			} else {
1691
1692				spchLog('checkoutClose - alreadyHasAccess');
1693
1694				maybeRedirectBack();
1695
1696			}
1697
1698		} else {
1699
1700			spchLog('checkoutClose: Decided not to sign up? (State is neither checkoutCompleted nor alreadyHasAccess.)');
1701
1702		}
1703
1704	}]);
1705
1706	tp.push(["addHandler", "externalCheckoutComplete", function (data){
1707
1708		spchLog('externalCheckoutComplete -- ', data);
1709
1710		disablePaywall();
1711		LUX.addData('externalCheckout.complete', 1);
1712
1713		var forceRecheck = true;
1714		flagAsUser(forceRecheck, function(){
1715			var elseReload = true;
1716			maybeRedirectBack(elseReload);
1717		});
1718
1719	}]);
1720
1721	function loginRequiredCallback(data) {
1722
1723		spchLog('loginRequiredCallback', data);
1724
1725		hideBottomBar();
1726
1727		var wasWPLoginClick = ( typeof data.startScreen === 'string' && data.startScreen === 'login' );
1728
1729		var wasMeterRegClick = ( typeof data.startScreen === 'string' && data.startScreen === 'register' );
1730
1731				// Clicked external-event="login-needed"
1732		var wasPianoLoginClick = ( typeof data.eventName === 'string' && data.eventName === 'login-needed' );
1733
1734		if ( ! wasWPLoginClick && ! wasMeterRegClick && ! wasPianoLoginClick ) {
1735			console.warn('loginRequiredCallback - Not initiated by a login request.');
1736			return;
1737		}
1738
1739		// openPianoIDModal();
1740		startLogin();
1741
1742	}
1743
1744	/**
1745	 * checks if logged-in user is a chinaEDGE user
1746	 * */
1747	function tcprIsEdgeSubscriber( userType ) {
1748		const chinaEdgeUserTypes = [
1749			'CHINAEDGE1',
1750			'CHINAEDGE2',
1751			'CHINAEDGE3',
1752			'CHINAEDGE4',
1753			'CHINAEDGE5'
1754		];
1755
1756		// Check if the tcprUserType value is in the chinaEdgeUserTypes array
1757		return chinaEdgeUserTypes.includes(userType);
1758	}
1759
1760	tp.push(["addHandler", "startCheckout", function(data){
1761
1762		spchLog('startCheckout', data);
1763		LUX.addData('checkout.started', 1);
1764
1765	}]);
1766
1767		tp.push(["addHandler", "loginRequired", function(data){
1768
1769		spchLog('loginRequired', data);
1770
1771		loginRequiredCallback(data);
1772
1773				return false;
1774
1775	}]);
1776
1777	// Logged in without refreshing the page. Does NOT run on every page load.
1778	tp.push(["addHandler", "loginSuccess", function(params){
1779		spchLog('loginSuccess', params);
1780		var forceRecheck = true;
1781		flagAsUser(forceRecheck);
1782		disablePaywall();
1783		if ( typeof params.source === 'string' && params.source === 'OFFER' ) {
1784			closePianoIDModal();
1785		}
1786
1787		//fly wheel signed in
1788		if (typeof flywheel !== "undefined") {
1789			flywheel.track("Signed In");
1790		} else {
1791			console.error("Flywheel is not defined.");
1792		}
1793	}]);
1794
1795	tp.push(["addHandler", "meterActive", function(meterData){
1796		spchLog('meterActive -- meterData', meterData);
1797		LUX.addData('meter.seen', 1);
1798		// spchLog("You've seen " + meterData.views + " out of " + meterData.maxViews + " free articles. You have" + meterData.viewsLeft + " articles left.");
1799	}]);
1800
1801	tp.push(["addHandler", "meterExpired", function(meterData){
1802		spchLog('meterExpired -- meterData', meterData);
1803		enablePaywall();
1804		LUX.addData('meter.expired', 1);
1805	}]);
1806
1807	tp.push(["addHandler", "beforeBrowserEvent", function(eventParams) {
1808		spchLog('beforeBrowserEvent -- eventParams', eventParams);
1809		return true;
1810	}]);
1811
1812	tp.push(["addHandler", "customEvent", function(event, iframeId) {
1813
1814		spchLog('customEvent - ' + event.eventName, event, iframeId);
1815
1816		switch (event.eventName) {
1817
1818						case 'login-needed':
1819
1820				loginRequiredCallback(event);
1821
1822				break;
1823
1824						case 'multinews-submit':
1825
1826				// event.params.params = more detailed params object than passed to event
1827				if ( typeof event.params.details === 'string' ) {
1828					var paramsDetailed = JSON.parse(event.params.details);
1829					spchLog('paramsDetailed', paramsDetailed);
1830				}
1831
1832				// Basic params sent via external-event-* attributes
1833				var params = event.params;
1834				var iframeId = ( typeof iframeId === 'undefined' ) ? params.iframeId : iframeId;
1835				var email = '';
1836
1837				if ( typeof params.email !== 'undefined' && params.email.length > 0 ) {
1838					email = params.email;
1839				}
1840
1841				spchLog('multinews-submit - iframeId', iframeId);
1842				spchLog('multinews-submit - email', email);
1843				spchLog('multinews-submit - params', params);
1844
1845				var listIDs = [];
1846
1847				// Assume all params which are not empty, not 'email', and evaluate to a number, are valid. Push to list ID array
1848				for (var key in event.params) {
1849					if ( event.params.hasOwnProperty(key) && key !== 'email' && key !== 'details' && event.params[key] !== '' && typeof event.params[key] === 'string' ) {
1850
1851						var listIDStr = event.params[key];
1852						var listIDLength = listIDStr.length;
1853
1854						if ( listIDLength > 0 && listIDLength < 11 ) {
1855
1856							if ( ! isNaN( parseInt(listIDStr) ) ) {
1857
1858								// Push string version
1859								listIDs.push(listIDStr);
1860
1861							} else {
1862
1863								// Will be "false" if checked then unchecked
1864								console.error('List ID is not a valid number:', listIDStr);
1865
1866							}
1867
1868						} else {
1869
1870							console.error('Invalid list ID length:', listIDStr);
1871
1872						}
1873
1874					}
1875				}
1876
1877				spchLog('listIDs', listIDs);
1878
1879				if ( typeof email === 'string' && email && isValidEmail(email) ) {
1880
1881					if ( listIDs.length > 0 ) {
1882
1883						subscribeToLists(iframeId, email, listIDs);
1884
1885						
1886					} else {
1887
1888						sendPostMessageToPiano(iframeId, false, 'Please select at least 1 newsletter.', {type: 'validation'});
1889
1890					}
1891
1892				} else {
1893
1894					sendPostMessageToPiano(iframeId, false, 'Please enter a valid email.', {type: 'validation'});
1895
1896				}
1897
1898				break;
1899
1900		}
1901
1902	}]);
1903
1904	// ----------------------------------
1905	// Init
1906	// ----------------------------------
1907
1908		function maybeRememberCurrentURL() {
1909
1910		spchLog('maybeRememberCurrentURL()? No, this is an account or log in page.');
1911
1912	}
1913
1914	function maybeRedirectBack(elseReload) {
1915		pushUserLoginToGTM();
1916
1917		spchLog('maybeRedirectBack()? No. Disabled for this page.');
1918
1919		if ( typeof elseReload === 'boolean' && elseReload ) {
1920			if ( isMidCheckout ) {
1921				spchLog('maybeRedirectBack() - elseReload: Not reloading because visitor is mid-checkout.');
1922			} else {
1923				location.reload();
1924			}
1925		}
1926
1927	}
1928
1929	function clearExpiredLogin() {
1930		eraseCookie('spch_visitor_uuid');
1931		eraseCookie('spch_visitor_name');
1932		eraseCookie('spch_visitor_email');
1933		eraseCookie('__utp');
1934		eraseCookie('__idr');
1935		eraseCookie('tcprUserType');
1936	}
1937
1938	tp.push(["init", function() {
1939
1940				// EZproxy domain?
1941		if ( startsWith(document.location.hostname, 'thechinaproject-com.') ) {
1942
1943			var composerHost = document.location.hostname.replace('thechinaproject-com.', 'c2-piano-io.');
1944			    composerHost = 'https://' + composerHost;
1945
1946			spchLog('EZproxy hostname detected: ' + document.location.hostname + '. Setting Piano composerHost: ' + composerHost);
1947
1948			tp.push(['setComposerHost', composerHost]);
1949
1950		}
1951
1952		pushUserAndTypeToGTMonLoad();
1953
1954		// Already logged in as a Piano subscriber?
1955		if ( tp.pianoId.isUserValid() ) {
1956
1957			spchLog('Already logged in as a Piano subscriber.');
1958
1959			flagAsUser();
1960			// Not logged in as a Piano subscriber?
1961		} else {
1962
1963			spchLog('Not logged in as a Piano subscriber.');
1964
1965			unflagAsUser();
1966
1967			maybeRememberCurrentURL();
1968
1969			// Clear personalization cookies if they exist, since their Piano session must've expired too.
1970			clearExpiredLogin();
1971		}
1972
1973		// user tracking
1974		sendUserIdentityToFlywheel();
1975
1976		tp.experience.init();
1977
1978		
1979				loadAcct();
1980
1981		tp.pianoId.init({
1982
1983			// Runs on EVERY page load if logged into Piano.
1984			loggedIn: function(data) {
1985
1986				spchLog('Piano ID init -- loggedIn callback', data);
1987
1988				if ( typeof data.source === 'string' && data.source === 'PIANOID' ) {
1989					loadAcct();
1990				}
1991
1992				flagAsUser();
1993
1994				// -------------------------
1995				// Watchlist cookies
1996				// -------------------------
1997				var pianoUser = tp.pianoId.getUser();
1998
1999				spchLog('pianoUser', pianoUser);
2000
2001								if ( typeof pianoUser.uid !== 'undefined' && pianoUser.uid ) {
2002					spchLog('Setting spch_visitor_uuid cookie: pianoUser.uid', pianoUser.uid);
2003					setCookie('spch_visitor_uuid', pianoUser.uid, 1);
2004				} else {
2005					console.error('Invalid pianoUser.uid.');
2006				}
2007
2008				if ( typeof pianoUser.firstName === 'string' && pianoUser.firstName ) {
2009					spchLog('Setting spch_visitor_name cookie: pianoUser.firstName', pianoUser.firstName);
2010					setCookie('spch_visitor_name', pianoUser.firstName, 1);
2011				} else {
2012					console.warn('Invalid pianoUser.firstName. This field is optional.');
2013				}
2014
2015				if ( typeof pianoUser.email === 'string' && pianoUser.email ) {
2016					setCookie('spch_visitor_email', pianoUser.email, 1);
2017				} else {
2018					console.error('Invalid pianoUser.email.');
2019				}
2020
2021								addUsertypeInDropdown();
2022								maybeRedirectBack();
2023
2024			},
2025
2026			// Fires in 2 scenarios: 1) When you load a page while logged out of Piano. 2) When you log out of Piano (though it also refreshes the page near-immediately after)
2027			loggedOut: function(data) {
2028
2029				spchLog('Piano ID init -- loggedOut callback', data);
2030				unflagAsUser();
2031				clearExpiredLogin();
2032
2033			},
2034
2035			screen: 'login',
2036			containerSelector: accountLoginSel,
2037
2038			// We have used Piano's displayMode: 'inline' both for our own "inline" login/account page as well as our modal version of that (which has since been retired)
2039			displayMode: 'inline'
2040
2041		});
2042
2043		
2044		tp.enableGACrossDomainLinking('UA-65056602-1');
2045
2046		// set excluded events here
2047		tp.setExcludedGAEvents({
2048			experienceExecute: true,
2049			loginDisplayed: true,
2050			meterActive: true,
2051			meterExpired: true,
2052			termSelected: true,
2053			checkoutStateChange: true,
2054			receiptDisplayed: true,
2055			submitPayment: true
2056		});
2057
2058		tp.setGA4Config({
2059			measurementId: 'G-W6ZK45SEMX',
2060			eventParameters: {
2061				send_page_view: false,
2062				page_location: 'https://thechinaproject.com/my-account/',
2063				page_title: 'My Account &#8211; The China Project',
2064			}
2065		});
2066
2067		$(document).trigger('tcprInitSingleProfile');
2068	}]);
2069
2070	$(document).on('click', '#js-logout', logout);
2071
2072	// $(window).load(paywallSpace);
2073	// $(window).on('resize', paywallSpace);
2074
2075})(jQuery);
2076</script>
2076
2077		<div id="js-search-companies-form" class="modal modal--search" role="dialog"
2078		 aria-label="Dialog window (Press escape to close)"
2079		 data-modal="#js-search-companies-form">
2080		<button class="modal__bg" aria-hidden="true" tabindex="-1"
2081				data-modal-close="#js-search-companies-form"></button>
2082				<div class="modal__inner" role="document">
2083				<div class="search-container">
2084		<form action="#" method="post" id="search-companies-modal">
2085
2086			<input type="text" placeholder="Search for any China-based company" class="company-search-box">
2087			<input type="hidden" name="country" id="jurisdiction-hidden" required>
2088
2089			<!-- Jurisdiction Dropdown -->
2090			<div class="jurisdiction-dropdown">
2091				<span id="selectDisplay">Jurisdiction</span>
2092				<div class="country-list" id="countryList">
2093					<div class="country" data-value="CHN">🇨🇳 China</div>
2094					<div class="country" data-value="TWN">🇹🇼 Taiwan</div>
2095					<!--<div class="country" data-value="HKG">🇭🇰 Hong Kong</div>-->
2096				</div>
2097			</div>
2098
2099			<button type="submit" class="search-button" disabled>
2100				<svg xmlns="http://www.w3.org/2000/svg" width="34.036" height="34.036"
2101					 viewBox="0 0 34.036 34.036">
2102					<g transform="translate(2.5 2.5)">
2103						<circle cx="9.5" cy="9.5" r="9.5" fill="none" stroke="#ffffff"
2104								stroke-linecap="round" stroke-miterlimit="10" stroke-width="5"/>
2105						<line x2="11.383" y2="11.383" transform="translate(16.617 16.617)"
2106							  fill="none" stroke="#ffffff" stroke-linecap="round"
2107							  stroke-miterlimit="10" stroke-width="5"/>
2108					</g>
2109				</svg>
2110			</button>
2111		</form>
2112	</div>
2113			</div>
2114		<button class="modal__close" type="button" data-modal-close="#js-search-companies-form">
2115			<span class="screen-reader-text">Close dialog window</span>
2116						<svg xmlns="http://www.w3.org/2000/svg" width="26.87" height="26.87" viewBox="0 0 26.87 26.87" role="img"
2117				 aria-hidden="true">
2118				<g transform="translate(2.828 2.828)">
2119					<line x2="30" transform="translate(0 0) rotate(45)" fill="none" stroke="currentColor"
2120						  stroke-linecap="round" stroke-width="4"/>
2121					<line x2="30" transform="translate(21.213 0) rotate(135)" fill="none" stroke="currentColor"
2122						  stroke-linecap="round" stroke-width="4"/>
2123				</g>
2124			</svg>
2125		</button>
2126	</div>
2127		<div id="js-members-modal" class="modal modal--members" role="dialog"
2128		 aria-label="Account dialog window (Press escape to close)"
2129		 data-modal="#js-members-modal">
2130		<button class="modal__bg" aria-hidden="true" tabindex="-1" data-modal-close="#js-members-modal"></button>
2131		<div class="modal__inner modal__inner--members js-focus-on-modal-open" role="document" tabindex="-1">
2132			<div id="js-login-loader" class="loader loader--login">
2133
2134				<div class="spinner-dots">
2135					<div class="spinner-dot"></div>
2136					<div class="spinner-dot"></div>
2137					<div class="spinner-dot"></div>
2138					<div class="spinner-dot"></div>
2139				</div>
2140
2141				<div class="loader__content loader__content--css loader__content--css-b">
2142					<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0"
2143						 viewBox="0 0 113.9 89.3" xml:space="preserve"><style>.sc-loader-1 {
2144								fill: #F73044
2145							}</style>
2146						<path fill="#000000"
2147							  d="M49.6 35.3l-16.2-2.9c-5.3-1-8.6-2.5-8.6-6.4 0-3.4 2.3-6 6.4-7.1 4.3-7.7 10.9-13.7 18.9-17.4C46.2.6 41.8.1 37 .1 15.7.1 2 10.6 2 28c0 15 9.8 22.9 23.9 25.5l15.7 2.7c6.5 1.2 11.6 2 11.6 7.1C53.2 68.1 48 71 40 71c-9.5 0-17.9-3.7-18.7-14.5L0 57.2c0 20.7 16.6 32 40 32 20 0 35.9-9.1 35.9-27.4-.1-14-8.3-23.4-26.3-26.5z"/>
2148						<path class="sc-loader-1" fill="#F73044"
2149							  d="M30.5 28.5c1 .3 2.2.6 3.5.8l16.2 2.9c1.2.2 2.4.4 3.5.7 3-7.7 9.2-12.3 18-12.3 13.4 0 18.5 8.9 19.9 18.4l22.2-.8C112.3 16.8 98.2 0 71.9 0 52.3 0 36.5 11 30.5 28.5z"/>
2150						<path class="sc-loader-1" fill="#000000"
2151							  d="M78.4 67.7c-1.5 9.9-8.3 16.6-17.8 20.1 3.6.9 7.4 1.3 11.4 1.3 26.3 0 40.4-16.6 42-38l-22.2-1c-1.2 7.9-4.9 15.2-13.4 17.6z"/>
2152						<path fill="#ce0000"
2153							  d="M80.2 22c-2.5-1-5.9-1.5-8.4-1.5-8.8 0-15.1 4.6-18 12.3-1.1-.3-2.3-.5-3.5-.7L34 29.3c-1.3-.2-2.5-.5-3.5-.8C42.7 14.8 52.2 15 58.4 15c13.3-.1 21.8 7 21.8 7z"/>
2154						<path fill="#202023"
2155							  d="M62.6 48.9c-10.1-2-24.3-5.3-40.4-8.4-19.6-4.8-20-14.6-20-15.6-.1 1-.2 2.1-.2 3.1 0 15 9.8 22.9 23.9 25.5l15.7 2.7c6.5 1.2 11.6 2 11.6 7.1C53.2 68.1 48 71 40 71c-9.5 0-17.9-3.7-18.7-14.5L0 57.2c0 20.7 16.6 32 40 32 20 0 35.9-9.1 35.9-27.4 0-1.8-.1-3.6-.4-5.3-1.2-3.3-6.5-6.3-12.9-7.6z"/></svg>
2156				</div>
2157
2158			</div>
2159
2160			
2161			<div id="js-account__frame" class="modal-frame modal-frame--account active"></div>
2162
2163			<div id="js-login__frame" class="modal-frame modal-frame--login"></div>
2164
2165			<div class="modal__ctrls modal__ctrls--btm">
2166				<button id="js-logout" class="btn2 btn2--logout fade-in"
2167						type="button">Log Out</button>
2168			</div>
2169
2170		</div>
2171		<button class="modal__close" type="button" data-modal-close="#js-members-modal">
2172			<span class="screen-reader-text">Close account dialog window</span>
2173						<svg xmlns="http://www.w3.org/2000/svg" width="26.87" height="26.87" viewBox="0 0 26.87 26.87" role="img"
2174				 aria-hidden="true">
2175				<g transform="translate(2.828 2.828)">
2176					<line x2="30" transform="translate(0 0) rotate(45)" fill="none" stroke="currentColor"
2177						  stroke-linecap="round" stroke-width="4"/>
2178					<line x2="30" transform="translate(21.213 0) rotate(135)" fill="none" stroke="currentColor"
2179						  stroke-linecap="round" stroke-width="4"/>
2180				</g>
2181			</svg>
2182		</button>
2183	</div>
2184		<div id="js-search-form" class="modal modal--search" role="dialog"
2185		 aria-label="Dialog window (Press escape to close)"
2186		 data-modal="#js-search-form">
2187		<button class="modal__bg" aria-hidden="true" tabindex="-1" data-modal-close="#js-search-form"></button>
2188				<div class="modal__inner" role="document">
2189			<form class="search-form" method="get" action="https://thechinaproject.com/" role="search">
2190	<label>
2191		<span class="spch-label screen-reader-text">Search</span>
2192		<input class="search-form__input btn-height js-focus-on-modal-open fancy-cancel" type="search" name="s" autocomplete="off"></label><button class="search-form__submit btn" type="submit" role="submit">
2193		Search	</button>
2194</form>
2195		</div>
2196		<button class="modal__close" type="button" data-modal-close="#js-search-form">
2197			<span class="screen-reader-text">Close dialog window</span>
2198						<svg xmlns="http://www.w3.org/2000/svg" width="26.87" height="26.87" viewBox="0 0 26.87 26.87" role="img"
2199				 aria-hidden="true">
2200				<g transform="translate(2.828 2.828)">
2201					<line x2="30" transform="translate(0 0) rotate(45)" fill="none" stroke="currentColor"
2202						  stroke-linecap="round" stroke-width="4"/>
2203					<line x2="30" transform="translate(21.213 0) rotate(135)" fill="none" stroke="currentColor"
2204						  stroke-linecap="round" stroke-width="4"/>
2205				</g>
2206			</svg>
2207		</button>
2208	</div>
2209	
2209<script type="speculationrules">
2210{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/supchina/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
2211</script>
2211
2212<div class="wt-cli-cookie-bar-container" data-nosnippet="true"><!--googleoff: all--><div id="cookie-law-info-bar" role="dialog" aria-live="polite" aria-label="cookieconsent" aria-describedby="wt-cli-cookie-banner" data-cli-geo-loc="0" style="padding:20px; box-sizing:border-box; float:left; border:0px solid rgb(255, 255, 255); font-size:16px; font-weight:300;" class="wt-cli-cookie-bar"><div class="cli-wrapper"><span id="wt-cli-cookie-banner">This web site uses cookies to deliver a modern, enjoyable web site experience.<br />
2213<a id="wt-cli-settings-btn" tabindex="0" role='button' style="margin:5px 20px; border-color:rgb(238, 69, 66); font-size:16px; font-weight:300;" class="wt-cli-element medium cli-plugin-button cli-plugin-main-button cli_settings_button" >Cookie Settings</a> <a id="wt-cli-accept-btn" tabindex="0" role='button' style="margin:5px; border-color:rgb(255, 255, 255); font-size:15px; font-weight:500; ;" data-cli_action="accept"  class="wt-cli-element medium cli-plugin-button cli-plugin-main-button cookie_action_close_header cli_action_button" >Accept</a></span></div></div><div tabindex="0" id="cookie-law-info-again" style="display:none;"><span id="cookie_hdr_showagain">Cookie Settings</span></div><div class="cli-modal" id="cliSettingsPopup" role="dialog" aria-labelledby="wt-cli-privacy-title" tabindex="-1" aria-hidden="true">
2214  <div class="cli-modal-dialog" role="document">
2215    <div class="cli-modal-content cli-bar-popup">
2216      <button aria-label="Close" type="button" class="cli-modal-close" id="cliModalClose">
2217      <svg class="" viewBox="0 0 24 24"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"></path><path d="M0 0h24v24h-24z" fill="none"></path></svg>
2218      <span class="wt-cli-sr-only">Close</span>
2219      </button>
2220        <div class="cli-modal-body">
2221
2222    <div class="wt-cli-element cli-container-fluid cli-tab-container">
2223        <div class="cli-row">
2224                            <div class="cli-col-12 cli-align-items-stretch cli-px-0">
2225                    <div class="cli-privacy-overview">
2226                        <h4 id='wt-cli-privacy-title'>Privacy Overview</h4>                        <div class="cli-privacy-content">
2227                            <div class="cli-privacy-content-text">This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.</div>
2228                        </div>
2229                        <a id="wt-cli-privacy-readmore"  tabindex="0" role="button" class="cli-privacy-readmore" data-readmore-text="Show more" data-readless-text="Show less"></a>                    </div>
2230                </div>
2231                        <div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container">
2232
2233                
2234                                    <div class="cli-tab-section">
2235                        <div class="cli-tab-header">
2236                            <a id="wt-cli-tab-link-necessary" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-necessary" aria-controls="wt-cli-tab-necessary" class="cli-nav-link cli-settings-mobile" data-target="necessary" data-toggle="cli-toggle-tab">
2237                                Necessary                            </a>
2238                                                                                        <div class="wt-cli-necessary-checkbox">
2239                                    <input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-necessary" aria-label="Necessary" data-id="checkbox-necessary" checked="checked" />
2240                                    <label class="form-check-label" for="wt-cli-checkbox-necessary"> Necessary </label>
2241                                </div>
2242                                <span class="cli-necessary-caption">
2243                                    Always Enabled                                </span>
2244                                                    </div>
2245                        <div class="cli-tab-content">
2246                            <div id="wt-cli-tab-necessary" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-necessary" class="cli-tab-pane cli-fade" data-id="necessary">
2247                                <p>Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.</p>
2248                            </div>
2249                        </div>
2250                    </div>
2251                                    <div class="cli-tab-section">
2252                        <div class="cli-tab-header">
2253                            <a id="wt-cli-tab-link-performance" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-performance" aria-controls="wt-cli-tab-performance" class="cli-nav-link cli-settings-mobile" data-target="performance" data-toggle="cli-toggle-tab">
2254                                Performance                            </a>
2255                                                                                        <div class="cli-switch">
2256                                    <input type="checkbox" class="cli-user-preference-checkbox"  id="wt-cli-checkbox-performance" aria-label="performance" data-id="checkbox-performance" role="switch" aria-controls="wt-cli-tab-link-performance" aria-labelledby="wt-cli-tab-link-performance"  checked='checked' />
2257                                    <label for="wt-cli-checkbox-performance" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">performance</span></label>
2258                                </div>
2259                                                    </div>
2260                        <div class="cli-tab-content">
2261                            <div id="wt-cli-tab-performance" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-performance" class="cli-tab-pane cli-fade" data-id="performance">
2262                                <p>Performance cookies are key in allowing web site screens and content to load quickly on all types of devices.<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-rounded"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gat</td><td class="cookielawinfo-column-4">This cookies is installed by Google Universal Analytics to throttle the request rate to limit the colllection of data on high traffic sites.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">YSC</td><td class="cookielawinfo-column-4">This cookies is set by Youtube and is used to track the views of embedded videos.</td></tr></tbody></table></p>
2263                            </div>
2264                        </div>
2265                    </div>
2266                                    <div class="cli-tab-section">
2267                        <div class="cli-tab-header">
2268                            <a id="wt-cli-tab-link-preferences" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-preferences" aria-controls="wt-cli-tab-preferences" class="cli-nav-link cli-settings-mobile" data-target="preferences" data-toggle="cli-toggle-tab">
2269                                Preferences                            </a>
2270                                                                                        <div class="cli-switch">
2271                                    <input type="checkbox" class="cli-user-preference-checkbox"  id="wt-cli-checkbox-preferences" aria-label="preferences" data-id="checkbox-preferences" role="switch" aria-controls="wt-cli-tab-link-preferences" aria-labelledby="wt-cli-tab-link-preferences"  checked='checked' />
2272                                    <label for="wt-cli-checkbox-preferences" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">preferences</span></label>
2273                                </div>
2274                                                    </div>
2275                        <div class="cli-tab-content">
2276                            <div id="wt-cli-tab-preferences" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-preferences" class="cli-tab-pane cli-fade" data-id="preferences">
2277                                <p>Preference cookies are used to store user preferences to provide them with content that is customized accordingly. These cookies also allow for the viewing of embedded content, such as videos.<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-rounded"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">bcookie</td><td class="cookielawinfo-column-4">This cookie is set by linkedIn. The purpose of the cookie is to enable LinkedIn functionalities on the page.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">lang</td><td class="cookielawinfo-column-4">This cookie is used to store the language preferences of a user to serve up content in that stored language the next time user visit the website.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">lidc</td><td class="cookielawinfo-column-4">This cookie is set by LinkedIn and used for routing.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">PugT</td><td class="cookielawinfo-column-4">
2277This cookie is set by pubmatic.com. The purpose of the cookie is to check when the cookies were last updated on the browser in order to limit the number of calls to the server-side cookie store.</td></tr></tbody></table></p>
2278                            </div>
2279                        </div>
2280                    </div>
2281                                    <div class="cli-tab-section">
2282                        <div class="cli-tab-header">
2283                            <a id="wt-cli-tab-link-analytics" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-analytics" aria-controls="wt-cli-tab-analytics" class="cli-nav-link cli-settings-mobile" data-target="analytics" data-toggle="cli-toggle-tab">
2284                                Analytics                            </a>
2285                                                                                        <div class="cli-switch">
2286                                    <input type="checkbox" class="cli-user-preference-checkbox"  id="wt-cli-checkbox-analytics" aria-label="analytics" data-id="checkbox-analytics" role="switch" aria-controls="wt-cli-tab-link-analytics" aria-labelledby="wt-cli-tab-link-analytics"  checked='checked' />
2287                                    <label for="wt-cli-checkbox-analytics" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">analytics</span></label>
2288                                </div>
2289                                                    </div>
2290                        <div class="cli-tab-content">
2291                            <div id="wt-cli-tab-analytics" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-analytics" class="cli-tab-pane cli-fade" data-id="analytics">
2292                                <p>Analytics cookies help us understand how our visitors interact with the website. It helps us understand the number of visitors, where the visitors are coming from, and the pages they navigate. The cookies collect this data and report it anonymously.<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-rounded"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__gads</td><td class="cookielawinfo-column-4">This cookie is set by Google and stored under the name dounleclick.com. This cookie is used to track how many times users see a particular advert which helps in measuring the success of the campaign and calculate the revenue generated by the campaign. These cookies can only be read from the domain that it is set on so it will not track any data while browsing through another sites.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_ga</td><td class="cookielawinfo-column-4">This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assigns a randomly generated number to identify unique visitors.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gid</td><td class="cookielawinfo-column-4">This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the wbsite is doing. The data collected including the number visitors, the source where they have come from, and the pages viisted in an anonymous form.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_omappvp</td><td class="cookielawinfo-column-4">The cookie is set to identify new vs returning users. The cookie is used in conjunction with _omappvs cookie to determine whether a user is new or returning.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_omappvs</td><td class="cookielawinfo-column-4">The cookie is used to in conjunction with the _omappvp cookies. If the cookies are set, the user is a returning user. If neither of the cookies are set, the user is a 
2292new user.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">GPS</td><td class="cookielawinfo-column-4">This cookie is set by Youtube and registers a unique ID for tracking users based on their geographical location</td></tr></tbody></table></p>
2293                            </div>
2294                        </div>
2295                    </div>
2296                                    <div class="cli-tab-section">
2297                        <div class="cli-tab-header">
2298                            <a id="wt-cli-tab-link-advertisement" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-advertisement" aria-controls="wt-cli-tab-advertisement" class="cli-nav-link cli-settings-mobile" data-target="advertisement" data-toggle="cli-toggle-tab">
2299                                Advertisement                            </a>
2300                                                                                        <div class="cli-switch">
2301                                    <input type="checkbox" class="cli-user-preference-checkbox"  id="wt-cli-checkbox-advertisement" aria-label="advertisement" data-id="checkbox-advertisement" role="switch" aria-controls="wt-cli-tab-link-advertisement" aria-labelledby="wt-cli-tab-link-advertisement"  checked='checked' />
2302                                    <label for="wt-cli-checkbox-advertisement" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">advertisement</span></label>
2303                                </div>
2304                                                    </div>
2305                        <div class="cli-tab-content">
2306                            <div id="wt-cli-tab-advertisement" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-advertisement" class="cli-tab-pane cli-fade" data-id="advertisement">
2307                                <p>Advertisement cookies help us provide our visitors with the most relevant ads and marketing campaigns.<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-rounded"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__qca</td><td class="cookielawinfo-column-4">This cookie is associated with Quantcast and is used for collecting anonymized data to analyze log data from different websites to create reports that enables the website owners and advertisers provide ads for the appropriate audience segments.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_fbp</td><td class="cookielawinfo-column-4">This cookie is set by Facebook to deliver advertisement when they are on Facebook or a digital platform powered by Facebook advertising after visiting this website.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">everest_g_v2</td><td class="cookielawinfo-column-4">The cookie is set under eversttech.net domain. The purpose of the cookie is to map clicks to other events on the client's website.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">fr</td><td class="cookielawinfo-column-4">The cookie is set by Facebook to show relevant advertisments to the users and measure and improve the advertisements. The cookie also tracks the behavior of the user across the web on sites that have Facebook pixel or Facebook social plugin.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">IDE</td><td class="cookielawinfo-column-4">Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">mc</td><td class="cookielawinfo-column-4">This cookie is associated with Quantserve to track anonymously how a user interact with the website.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">personalization_id</td><td class="cookielawinfo-column-4">This cookie is set by twitter.com. It is used integrate the sharing features of this social media. It also stores information about how the user uses the website for tracking and targeting.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">PUBMDCID</td><td class="cookielawinfo-column-4">
2307This cookie is set by pubmatic.com. The cookie stores an ID that is used to display ads on the users' browser.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">TDCPM</td><td class="cookielawinfo-column-4">The cookie is set by CloudFare service to store a unique ID to identify a returning users device which then is used for targeted advertising.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">TDID</td><td class="cookielawinfo-column-4">The cookie is set by CloudFare service to store a unique ID to identify a returning users device which then is used for targeted advertising.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">test_cookie</td><td class="cookielawinfo-column-4">This cookie is set by doubleclick.net. The purpose of the cookie is to determine if the users' browser supports cookies.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">uid</td><td class="cookielawinfo-column-4">This cookie is used to measure the number and behavior of the visitors to the website anonymously. The data includes the number of visits, average duration of the visit on the website, pages visited, etc. for the purpose of better understanding user preferences for targeted advertisments.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">uuid</td><td class="cookielawinfo-column-4">To optimize ad relevance by collecting visitor data from multiple websites such as what pages have been loaded.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">uuidc</td><td class="cookielawinfo-column-4">This cookie is used to stores information about how the user uses the website such as what pages have been loaded and any other advertisement before visiting the website. This data is used to provide users with relevant ads.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">VISITOR_INFO1_LIVE</td><td class="cookielawinfo-column-4">This cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website.</td></tr></tbody></table></p>
2308                            </div>
2309                        </div>
2310                    </div>
2311                
2312            </div>
2313        </div>
2314    </div>
2315</div>
2316<div class="cli-modal-footer">
2317    <div class="wt-cli-element cli-container-fluid cli-tab-container">
2318        <div class="cli-row">
2319            <div class="cli-col-12 cli-align-items-stretch cli-px-0">
2320                <div class="cli-tab-footer wt-cli-privacy-overview-actions">
2321                    
2322                        
2323                                                    <a id="wt-cli-privacy-save-btn" role="button" tabindex="0" data-cli-action="accept" class="wt-cli-privacy-btn cli_setting_save_button wt-cli-privacy-accept-btn cli-btn">Save & Accept</a>
2324                                                                    
2325                </div>
2326                            </div>
2327        </div>
2328    </div>
2329</div>
2330    </div>
2331  </div>
2332</div>
2333<div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div>
2334<div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div>
2335<!--googleon: all--></div>
2336<script type="text/javascript">
2337  /* <![CDATA[ */
2338    cli_cookiebar_settings='{"animate_speed_hide":"500","animate_speed_show":"500","background":"rgb(255, 255, 255)","border":"#b1a6a6c2","border_on":false,"button_1_button_colour":"rgb(247, 48, 68)","button_1_button_hover":"rgb(247, 48, 68)","button_1_link_colour":"rgb(255, 255, 255)","button_1_as_button":true,"button_1_new_win":false,"button_2_button_colour":"rgb(255, 255, 255)","button_2_button_hover":"rgb(255, 255, 255)","button_2_link_colour":"#ec0000","button_2_as_button":true,"button_2_hidebar":false,"button_2_nofollow":false,"button_3_button_colour":"rgb(236, 0, 0)","button_3_button_hover":"rgb(236, 0, 0)","button_3_link_colour":"#fff","button_3_as_button":true,"button_3_new_win":false,"button_4_button_colour":"rgb(255, 255, 255)","button_4_button_hover":"rgb(255, 255, 255)","button_4_link_colour":"rgb(247, 48, 68)","button_4_as_button":true,"button_7_button_colour":"rgb(97, 162, 41)","button_7_button_hover":"rgb(97, 162, 41)","button_7_link_colour":"#fff","button_7_as_button":true,"button_7_new_win":false,"font_family":"inherit","header_fix":false,"notify_animate_hide":false,"notify_animate_show":false,"notify_div_id":"#cookie-law-info-bar","notify_position_horizontal":"right","notify_position_vertical":"bottom","scroll_close":false,"scroll_close_reload":false,"accept_close_reload":false,"reject_close_reload":false,"showagain_tab":false,"showagain_background":"#fff","showagain_border":"#000","showagain_div_id":"#cookie-law-info-again","showagain_x_position":"10px","text":"rgb(0, 0, 0)","show_once_yn":false,"show_once":"10000","logging_on":false,"as_popup":false,"popup_overlay":true,"bar_heading_text":"","cookie_bar_as":"widget","cookie_setting_popup":true,"accept_all":true,"js_script_blocker":false,"popup_showagain_position":"bottom-right","widget_position":"left","button_1_style":[["margin","5px"],["border-color","rgb(255, 255, 255)"],["font-size","15px"],["font-weight","500"],[""]],"button_2_style":[["display","inline-block"],["text-align","center"],["font-size","12px"],["padding","8px 16px 8px"],["border","solid 0px #fff"]],"button_3_style":[["display","inline-block"],["padding","8px 16px 8px"],["border-radius","4px"],["text-align","center"],["font-size","12px"],["border","solid 0px #fff"]],"button_4_style":[["margin","5px 20px"],["border-color","rgb(238, 69, 66)"],["font-size","16px"],["font-weight","300"]],"button_5_style":{"0":["display","inline-block"],"1":["background","none"],"2":["border-radius","20px"],"3":["border","solid 1px #ccc"],"4":["color","#ccc"],"5":["text-align","center"],"6":["font-size","12px"],"7":["width","22px"],"8":["height","22px"],"9":["line-height","22px"],"10":["margin-right","-22px"],"11":["margin-top","-24px"],"12":["float","right"],"13":["position","relative"],"14":["cursor","pointer"],"15":[""],"16":["background-color","rgba(0, 0, 0, 0)"],"19":["background-color","rgba(0, 0, 0, 0)"]},"button_7_style":[["margin","5px 5px 5px 30px"],["border-radius","0"],["padding","8px 25px 8px 25px"]],"accept_close_page_navigation":false}';
2339  /* ]]> */
2340</script>
vendor: 1 bytes, line 2340
2340
2341<script id="base-nav-tray-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/nav-tray.min.js?ver=096210" defer></script>
vendor: 1 bytes, line 2341
2341
2342<script id="base-main-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/main.min.js?ver=096210" defer></script>
vendor: 1 bytes, line 2342
2342
2343<script id="base-click-area-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/click-area.min.js?ver=096210" defer></script>
vendor: 1 bytes, line 2343
2343
2344<script id="scrollmonitor-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/vendor/scrollMonitor.min.js?ver=20191209" defer></script>
vendor: 1 bytes, line 2344
2344
2345<script id="gsap-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/vendor/gsap/gsap.min.js?ver=3.2.4" defer></script>
vendor: 1 bytes, line 2345
2345
2346<script id="base-scroll-events-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/scroll-events.min.js?ver=096210" defer></script>
vendor: 1 bytes, line 2346
2346
2347<script id="page-links-to-js" src="https://thechinaproject.com/wp-content/plugins/page-links-to/dist/new-tab.js?ver=3.3.6"></script>
vendor: 1 bytes, line 2347
2347
2348<script id="focus-visible-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/vendor/focus-visible.min.js?ver=5.0.2" defer></script>
vendor: 1 bytes, line 2348
2348
2349<script id="ticker-js" src="https://thechinaproject.com/wp-content/themes/supchina/assets/ticker.min.js?ver=096210" defer></script>
vendor: 1 bytes, line 2349
2349
2350<script id="base-company-profile-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/company-profiles/company-profiles.min.js?ver=096210"></script>
vendor: 1 bytes, line 2350
2350
2351<script id="jquery-ui-core-js" src="https://thechinaproject.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3"></script>
vendor: 1 bytes, line 2351
2351
2352<script id="jquery-ui-datepicker-js" src="https://thechinaproject.com/wp-includes/js/jquery/ui/datepicker.min.js?ver=1.13.3"></script>
vendor: 1 bytes, line 2352
2352
2353<script id="jquery-ui-datepicker-js-after">
2354jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","currentText":"Today","monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"nextText":"Next","prevText":"Previous","dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dayNamesMin":["S","M","T","W","T","F","S"],"dateFormat":"MM d, yy","firstDay":0,"isRTL":false});});
2355//# sourceURL=jquery-ui-datepicker-js-after
2356</script>
vendor: 1 bytes, line 2356
2356
2357<script id="base-company-profiles-news-table-actions-js-extra">
2358var nt_actions = {"ajaxURL":"https://thechinaproject.com/wp-admin/admin-ajax.php","ntMessage":"We\u2019re still gathering news for this profile. Add it to your \u003Ca href=\"/watchlist\"\u003EWatchlist\u003C/a\u003E to get all the latest updates, or research 60,000+ other articles in the \u003Ca href=\"/china-newsbase/\"\u003ENewsbase\u003C/a\u003E."};
2359//# sourceURL=base-company-profiles-news-table-actions-js-extra
2360</script>
vendor: 1 bytes, line 2360
2360
2361<script id="base-company-profiles-news-table-actions-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/company-profiles/news-table.min.js?ver=096210"></script>
vendor: 1 bytes, line 2361
2361
2362<script id="base-company-profiles-search-js-extra">
2363var edgeSearch = {"add_company_url":"http://44juny3pece.typeform.com/ChinaEDGE1","ajaxURL":"https://thechinaproject.com/wp-admin/admin-ajax.php"};
2364//# sourceURL=base-company-profiles-search-js-extra
2365</script>
vendor: 1 bytes, line 2365
2365
2366<script id="base-company-profiles-search-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/company-profiles/company-profiles-search.min.js?ver=096210"></script>
vendor: 1 bytes, line 2366
2366
2367<script id="piano-render-js-extra">
2368var pianoRender = {"ajax_url":"https://thechinaproject.com/wp-admin/admin-ajax.php"};
2369//# sourceURL=piano-render-js-extra
2370</script>
vendor: 1 bytes, line 2370
2370
2371<script id="piano-render-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/piano-watchlist/piano-render.min.js?ver=939740"></script>
vendor: 1 bytes, line 2371
2371
2372<script id="piano-user-nav-js-extra">
2373var pianoUserNav = {"ajax_url":"https://thechinaproject.com/wp-admin/admin-ajax.php"};
2374//# sourceURL=piano-user-nav-js-extra
2375</script>
vendor: 1 bytes, line 2375
2375
2376<script id="piano-user-nav-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/piano-watchlist/piano-user-nav.min.js?ver=939740"></script>
vendor: 1 bytes, line 2376
2376
2377<script id="piano-filter-watchlist-js-extra">
2378var pianoWatchlist = {"ajax_url":"https://thechinaproject.com/wp-admin/admin-ajax.php"};
2379//# sourceURL=piano-filter-watchlist-js-extra
2380</script>
vendor: 1 bytes, line 2380
2380
2381<script id="piano-filter-watchlist-js" src="https://thechinaproject.com/wp-content/themes/supchina/modules/piano-watchlist/piano-filter-watchlist.min.js?ver=939740"></script>
2381
2382
2383</body>
2384</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.