//#include <stdio.h>
//int main()
//{
// int a=10;
// int b=20;
// printf("%d\n",a+b);
// printf("%d\n",a*b);
// printf("%d\n",a/b);//最近一次将一切都该回原始int b=20以及%d后面报出的是0,是因为int是整型10/20为0.5因此它只取前面的0
//前一次运算的时候“int b=20”而不是20.0。改成20.0还是不行。无论我d改为f,还是改回来都不行以及a=10.0我也试过了不行
//int b改为float b也不行,其他都不改变将b改为b.0会报错
// printf("%d\n",b/a);
// printf("%d\n",4+234);
// printf("%d\n",678-345);
// printf("%d\n",34/17);
// printf("%.8f\n",10/3.0);
//这里前一次在%后面输的是“8”而不是".8"导致最后输出的数为3.333333是小数点后6位而不是我设定的后8位。
// return 0;
//}
//求模运算符% /得商 %得余(仅用于整数间)
//int main()
//{
// printf("%d\n",123%10);// 123/10=12.3 最后输出3
// printf("%d\n",123%100);// 123/100=1.23 最后输出23
// printf("%d\n",1234%100);// 1234//100=12.34 最后输出34
// return 0;
//}
//负数求余:结果的正负号由第一个操作符决定
//int main()
//{
// printf("%d\n",11%-5);//输出1
// printf("%d\n",-11%5);//输出-1
// printf("%d\n",11%5);//输出1
// printf("%d\n",-11%-5);//输出-1
// return 0;
//}
//赋值操作符
//number 1.简单的操作符
//int main()
//{
// int a=10;//(这叫初始化不叫赋值)
// printf("%d\n",a=20);//这叫赋值 最后输出20
// printf("%d\n",a=4+5);//这是将右边的值赋给左边 最后输出9
// return 0;
//}
//复合连赋
//int main()
//{
// int a=10;
// a=a+3;//或者写a+=3(这里表示一个意思:a自增三)
// printf("%d\n",a);//结果为13
// return 0;
//}
//第二种
//int main()
//{
// int a=30;
// a+=23;//(a原本的值为30,自增23后输出53)
// printf("%d\n",a);
// return 0;
//}
//第三种
//int main()
//{
// int a=10;
// a = a%3;
// printf("%.3f",a);//因为前面的a是int类型的,而这里的用了float类型,所以输出的是0.000。可以用一下强行转型的方法
// return 0;
//}
//{
// int a=10;
// a = a%3;
// printf("%.3f\n",(double)a);//因为10/3的余数为1,所以输出1(%输出余数)接下来用/试试
// return 0;
//}
// #include <stdio.h>
// int main()
// {
// int a=10;
// a%=3;
// printf("%d\n",a);//结果余一,因为%仅输出整数相除的余数
// return 0;
// }
//强制转型符
// int main()
// {
// int a=(int)3.14;
// printf("%d\n",a);
// return 0;
// }
//{
// int a=10;
// a =a/3;
// printf("%d\n",a);//输出整数3
// return 0;
//}
//number 2.连续赋值
//int main()
//{
// int a=3;
// int b=5;
// int c=0;
// printf("%d\n",c=b=a+3);//这里是向右赋值,即:a+3=6,那么b=6,然后c=b,即c=6
// return 0;
//}
//第二种写法,会比第一种更方便看,但不为连赋
//int main()
//{
// int a=3;
// int b=5;
// int c=0;
// printf("%d\n",b=a+3);
// printf("%d\n",c=b);//此次及上面65行均不为连赋
// return 0;
//}
//sizeof操作符
// int main()
// {
// printf("%zu\n",sizeof(char));//输出1
// printf("%zu\n",sizeof(_Bool));//输出1
// printf("%zu\n",sizeof(float));//输出4
// printf("%zu\n",sizeof(short));//输出2
// printf("%zu\n",sizeof(int));//输出4
// printf("%zu\n",sizeof(long));//输出8
// printf("%zu\n",sizeof(long long));//输出8
// printf("%zu\n",sizeof(double));//输出8
// printf("%zu\n",sizeof(long double));//输出16
// return 0;
// }
//全局编译e.g int num1
//局部编译e.g int num2
// #include <stdio.h>
// int num1 =20;
// int main()
// {
// int num2 =10;
// printf("%d\n",num1);
// printf("%d\n",num2);
// return 0;
// }
//printf占位符
// #include <stdio.h>//头文件
// int main()
// { char Zhangsan[] = "Zhangsan.";
// printf("there are %d apples.\n",3);
// printf("Zhangsan will come back tonight.\n");
// printf("%s will come back tonight.\n",Zhangsan);//这里之前报错过,因为没带有声明“char Zhangsan[] = "Zhangsan";”
// printf("Zhangsan said:It's 9 o'clock now.\n");
// printf("%s said:It's %d o'clock now.",Zhangsan,9);
// return 0;
// }
//赋值忽略符
//正常时用户输入的格式必须符合格式,如下
// int main()
// {
// int a=0;
// int b=0;
// scanf("%d%d",&a,&b);
// printf("a =%d\nb =%d\n",a,b);//此时输入10 20格式的内容时,系统会输出a=10
// //b=20
// //但是当我输入10,20时系统识别不到b,而输出b=0
// //是因为格式不正确
// return 0;
// }
//第二种格式
// int main()
// {
// int a=0;
// int b=0;
// scanf("%d,%d",&a,&b);
// printf("a=%d\nb=%d\n",a,b);//此时必须输入“10,20”的格式才可以输出a=10和b=20
// return 0;
// }
//第三种
// #include <stdio.h>
// int main()
// {
// int year=0;
// int month=0;
// int day=0;
// scanf("%d-%d-%d",&year,&month,&day);//这里只能用1999-02-11的格式,像1999/02/11这种的或者其他格式都不行
// printf("%d %d %d\n",year,month,day);//输入正确格式后其会输出:1999 02 11
// return 0;
// }
//如果想要输入任意格式都可执行,需要运用到赋值忽略符
// #include <stdio.h>
// int main()
// {
// int year=0;
// int month=0;
// int day=0;
// scanf("%d%*c%d%*c%d",&year,&month,&day);//这种格式的必须在1999和12和11之间输入分隔符e.g-和/
// printf("%d %d %d",year,month,day);
// return 0;
// }
//不用分隔符时,也不能用赋值忽略符
// int main()
// {
// int year=0;
// int month=0;
// int day=0;
// scanf("%4d%2d%2d",&year,&month,&day);//这里的4,2,2是指要%d只读4个字符,2字符,2个字符
// printf("%d %d %d",year,month,day);//这时直接输入19991211即可不用输分隔符
// return 0;
// }
// int main()
// { char Zhangsan[] = "Zhangsan";//字符数组用来存放名字,这里不能用int
// printf("%s says,it's %d o'clock\n",Zhangsan,10);
// return 0;
// }
//输出格式
// int main()
// {
// printf("%d\n",123);//输出为123
// printf("%5d\n",123);//输出为 123,在一之前有两个空格,以及默认为右对齐
// printf("%-5d\n",123);//输出为123 ,再三后有两个空格,以及加了负号后为左对齐
// printf("%f\n",123.456);//这里输出123.456000因为%f默认输出小数点后6位
// printf("%12f\n",123.456);//这里输出 123.456000加上小数点和前面的空格为12个字符,即右对齐
// return 0;
// }
//总显正号,正在默认情况下printf函数不显正号显负号,而在%后面加个+即可总显正号
// int main()
// {
// printf("%d\n",12);//==12
// printf("%+d\n",12);//==+12
// printf("%d\n",-12);//==-12
// printf("%+d\n",-12);//==-12,则由以上在使用printf函数的前提下可知在%后面加+可以使原本为正数的数字显正号
// return 0; //而对原本为负号的数字无用
// }
//限定小数位数:前面已经知道了%f默认小数的后六位,而在%后面加上“.数字“就可以限制其在小数点后面的位数
// int main()
// {
// printf("%f\n",1.2374);//==1.237400
// printf("%.3f\n",1.2374);//==1.237小数点后3位
// printf("%.2f\n",1.2374);//==1.24小数点后2位,而且会四舍五入
// //同时与前面的知识结合
// printf("%10.3f\n",1.2374);//== 1.237,前面有5个空格,且10表示的是向右对齐并一共有10个字符,3是指小数点后三位
// printf("%5.2f\n",1.2374);//== 1.24,前面有一个空格
// return 0;
// }
//输出部分字符串:在%s的%后面加上“.数字”,如下,
// int main()
// {
// printf("%s\n",abcdef);
// printf("%.3f\n"abcdef);
// return 0;
// }
// #include <stdio.h>
// int main()
// {
// int a=0;
// int b=0;
// while(scanf("%d %d",&a,&b)==2);
// {
// int c=a+b;
// printf("%d\n",c);
// }
// return 0;
// }
//scanf中的double必须用%lf,而printf中的double既可以用%f也可以用%lf
//以及在scang中%【】可以指定一组匹配字符(e.g【0~9】),当其遇到不在范围内的字符时会停止
// int main()
// {
// char str1[100];
// scanf("%[a-z,A-Z]",str1);
// printf("%s\n",str1);
// return 0;
// }
//
//多组输入
// #include <stdio.h>
// int main()
// {
// int a=0;
// int b=0;
// while(scanf("%d %d",&a,&b)==2)//可以同时输入12 34
// //45 12234
// //67 5690
// //123456 153735
// {
// int c=a+b;
// printf("%d\n",c);
// }
// return 0;
// }
// #include <stdio.h>
// int main()
// {
// int num=0;
// char c=0;
// scanf("%d",&num);
// printf("%d\n",num);
// scanf("%c",&c);
// printf("%---c---\n",c);//在%c前加上一个空格可以防止123 abc时导致后面的abc读取不到
// return 0;
// }
// int main()
// {
// int num=0;
// char c=0;
// scanf("%d",&num);
// printf("%d\n",num);//这时输入123 a就可以输出123
// //a
// scanf(" %c",&c);
// printf("%c\n",c);
// return 0;
// }
//输出年龄若>=18则输出成年,否则输出:未成年
#include <stdio.h>
// int main()
// {
// int num=0;
// scanf("%d\n",&num);
// if(num >= 18==1)
// printf("成年\n");//我成功了!!!!!!
// else
// printf("未成年\n");
// return 0;
// }
int main()
{
int num = 0;
if(num % 2 ==1)
else
return 0;
}
Ly8jaW5jbHVkZSA8c3RkaW8uaD4KLy9pbnQgbWFpbigpCi8vewovLwlpbnQgYT0xMDsKLy8JaW50IGI9MjA7Ci8vICAgIHByaW50ZigiJWRcbiIsYStiKTsKLy8gICAgcHJpbnRmKCIlZFxuIixhKmIpOwovLyAgICBwcmludGYoIiVkXG4iLGEvYik7Ly/mnIDov5HkuIDmrKHlsIbkuIDliIfpg73or6Xlm57ljp/lp4tpbnQgYj0yMOS7peWPiiVk5ZCO6Z2i5oql5Ye655qE5pivMO+8jOaYr+WboOS4umludOaYr+aVtOWeizEwLzIw5Li6MC415Zug5q2k5a6D5Y+q5Y+W5YmN6Z2i55qEMAogICAgLy/liY3kuIDmrKHov5DnrpfnmoTml7blgJnigJxpbnQgYj0yMOKAneiAjOS4jeaYrzIwLjDjgILmlLnmiJAyMC4w6L+Y5piv5LiN6KGM44CC5peg6K665oiRZOaUueS4umbvvIzov5jmmK/mlLnlm57mnaXpg73kuI3ooYzku6Xlj4phPTEwLjDmiJHkuZ/or5Xov4fkuobkuI3ooYwKICAgIC8vaW50IGLmlLnkuLpmbG9hdCBi5Lmf5LiN6KGMLOWFtuS7lumDveS4jeaUueWPmOWwhmLmlLnkuLpiLjDkvJrmiqXplJkKLy8gICAgcHJpbnRmKCIlZFxuIixiL2EpOwovLyAgICBwcmludGYoIiVkXG4iLDQrMjM0KTsKLy8gICAgcHJpbnRmKCIlZFxuIiw2NzgtMzQ1KTsKLy8gICAgcHJpbnRmKCIlZFxuIiwzNC8xNyk7Ci8vICAgIHByaW50ZigiJS44ZlxuIiwxMC8zLjApOwogICAgLy/ov5nph4zliY3kuIDmrKHlnKgl5ZCO6Z2i6L6T55qE5piv4oCcOOKAneiAjOS4jeaYryIuOCLlr7zoh7TmnIDlkI7ovpPlh7rnmoTmlbDkuLozLjMzMzMzM+aYr+Wwj+aVsOeCueWQjjbkvY3ogIzkuI3mmK/miJHorr7lrprnmoTlkI445L2N44CCCi8vICAgIHJldHVybiAwOwogICAgCi8vfQoKLy/msYLmqKHov5DnrpfnrKYlICAgICAv5b6X5ZWGICAgICXlvpfkvZnvvIjku4XnlKjkuo7mlbTmlbDpl7TvvIkKLy9pbnQgbWFpbigpCi8vewovLwlwcmludGYoIiVkXG4iLDEyMyUxMCk7Ly8gICAxMjMvMTA9MTIuMyDmnIDlkI7ovpPlh7ozCi8vCXByaW50ZigiJWRcbiIsMTIzJTEwMCk7Ly8gICAxMjMvMTAwPTEuMjMg5pyA5ZCO6L6T5Ye6MjMKLy8JcHJpbnRmKCIlZFxuIiwxMjM0JTEwMCk7Ly8gICAxMjM0Ly8xMDA9MTIuMzQg5pyA5ZCO6L6T5Ye6MzQKLy8JcmV0dXJuIDA7Ci8vfQoKLy/otJ/mlbDmsYLkvZnvvJrnu5PmnpznmoTmraPotJ/lj7fnlLHnrKzkuIDkuKrmk43kvZznrKblhrPlrpoKLy9pbnQgbWFpbigpCi8vewovLwlwcmludGYoIiVkXG4iLDExJS01KTsvL+i+k+WHujEKLy8JcHJpbnRmKCIlZFxuIiwtMTElNSk7Ly/ovpPlh7otMQovLwlwcmludGYoIiVkXG4iLDExJTUpOy8v6L6T5Ye6MQovLwlwcmludGYoIiVkXG4iLC0xMSUtNSk7Ly/ovpPlh7otMQovLwlyZXR1cm4gMDsKLy99CgovL+i1i+WAvOaTjeS9nOespgovL251bWJlciAxLueugOWNleeahOaTjeS9nOespgovL2ludCBtYWluKCkKLy97Ci8vCWludCBhPTEwOy8vKOi/meWPq+WIneWni+WMluS4jeWPq+i1i+WAvCkKLy8JcHJpbnRmKCIlZFxuIixhPTIwKTsvL+i/meWPq+i1i+WAvCAgICDmnIDlkI7ovpPlh7oyMAovLwlwcmludGYoIiVkXG4iLGE9NCs1KTsvL+i/meaYr+WwhuWPs+i+ueeahOWAvOi1i+e7meW3pui+uSAgIOacgOWQjui+k+WHujkKLy8JcmV0dXJuIDA7Ci8vfQoKLy/lpI3lkIjov57otYsKLy9pbnQgbWFpbigpCi8vewovLwlpbnQgYT0xMDsKLy8JYT1hKzM7Ly/miJbogIXlhplhKz0z77yI6L+Z6YeM6KGo56S65LiA5Liq5oSP5oCd77yaYeiHquWinuS4ie+8iQovLwlwcmludGYoIiVkXG4iLGEpOy8v57uT5p6c5Li6MTMKLy8JcmV0dXJuIDA7Ci8vfQovL+esrOS6jOenjQovL2ludCBtYWluKCkKLy97Ci8vICAgIGludCBhPTMwOwovLwlhKz0yMzsvLyhh5Y6f5pys55qE5YC85Li6MzDvvIzoh6rlop4yM+WQjui+k+WHujUzKQovLwlwcmludGYoIiVkXG4iLGEpOwovLwlyZXR1cm4gMDsKLy99Ci8v56ys5LiJ56eNCi8vaW50IG1haW4oKQovL3sKLy8JaW50IGE9MTA7Ci8vCWEgPSBhJTM7Ci8vCXByaW50ZigiJS4zZiIsYSk7Ly/lm6DkuLrliY3pnaLnmoRh5pivaW5057G75Z6L55qE77yM6ICM6L+Z6YeM55qE55So5LqGZmxvYXTnsbvlnovvvIzmiYDku6XovpPlh7rnmoTmmK8wLjAwMOOAguWPr+S7peeUqOS4gOS4i+W8uuihjOi9rOWei+eahOaWueazlQovLwlyZXR1cm4gMDsKLy99Ci8vewovLwlpbnQgYT0xMDsKLy8JYSA9IGElMzsKLy8JcHJpbnRmKCIlLjNmXG4iLChkb3VibGUpYSk7Ly/lm6DkuLoxMC8z55qE5L2Z5pWw5Li6Me+8jOaJgOS7pei+k+WHujHvvIgl6L6T5Ye65L2Z5pWw77yJ5o6l5LiL5p2l55SoL+ivleivlQovLwlyZXR1cm4gMDsKLy99CgovLyAjaW5jbHVkZSA8c3RkaW8uaD4KLy8gaW50IG1haW4oKQovLyB7Ci8vIAlpbnQgYT0xMDsKLy8gCWElPTM7Ci8vIAlwcmludGYoIiVkXG4iLGEpOy8v57uT5p6c5L2Z5LiA77yM5Zug5Li6JeS7hei+k+WHuuaVtOaVsOebuOmZpOeahOS9meaVsAovLyAJcmV0dXJuIDA7Ci8vIH0KCi8v5by65Yi26L2s5Z6L56ymCi8vIGludCBtYWluKCkKLy8gewovLyAJaW50IGE9KGludCkzLjE0OwovLyAJcHJpbnRmKCIlZFxuIixhKTsKLy8gCXJldHVybiAwOwovLyB9CiAKCgovL3sKLy8JaW50IGE9MTA7Ci8vCWEgPWEvMzsKLy8JcHJpbnRmKCIlZFxuIixhKTsvL+i+k+WHuuaVtOaVsDMKLy8JcmV0dXJuIDA7Ci8vfQoKCgoKCgoKLy9udW1iZXIgMi7ov57nu63otYvlgLwKLy9pbnQgbWFpbigpCi8vewovLwlpbnQgYT0zOwovLwlpbnQgYj01OwovLwlpbnQgYz0wOwovLwlwcmludGYoIiVkXG4iLGM9Yj1hKzMpOy8v6L+Z6YeM5piv5ZCR5Y+z6LWL5YC877yM5Y2z77yaYSszPTbvvIzpgqPkuYhiPTbvvIznhLblkI5jPWLvvIzljbNjPTYKLy8JcmV0dXJuIDA7Ci8vfQovL+esrOS6jOenjeWGmeazle+8jOS8muavlOesrOS4gOenjeabtOaWueS+v+eci++8jOS9huS4jeS4uui/nui1iwovL2ludCBtYWluKCkKLy97Ci8vCWludCBhPTM7Ci8vCWludCBiPTU7Ci8vCWludCBjPTA7Ci8vCXByaW50ZigiJWRcbiIsYj1hKzMpOwovLwlwcmludGYoIiVkXG4iLGM9Yik7Ly/mraTmrKHlj4rkuIrpnaI2NeihjOWdh+S4jeS4uui/nui1iwovLwlyZXR1cm4gMDsKLy99CgovL3NpemVvZuaTjeS9nOespgovLyBpbnQgbWFpbigpCi8vIHsKLy8gCXByaW50ZigiJXp1XG4iLHNpemVvZihjaGFyKSk7Ly/ovpPlh7oxCi8vIAlwcmludGYoIiV6dVxuIixzaXplb2YoX0Jvb2wpKTsvL+i+k+WHujEKLy8gCXByaW50ZigiJXp1XG4iLHNpemVvZihmbG9hdCkpOy8v6L6T5Ye6NAovLyAJcHJpbnRmKCIlenVcbiIsc2l6ZW9mKHNob3J0KSk7Ly/ovpPlh7oyCi8vIAlwcmludGYoIiV6dVxuIixzaXplb2YoaW50KSk7Ly/ovpPlh7o0Ci8vIAlwcmludGYoIiV6dVxuIixzaXplb2YobG9uZykpOy8v6L6T5Ye6OAovLyAJcHJpbnRmKCIlenVcbiIsc2l6ZW9mKGxvbmcgbG9uZykpOy8v6L6T5Ye6OAovLyAJcHJpbnRmKCIlenVcbiIsc2l6ZW9mKGRvdWJsZSkpOy8v6L6T5Ye6OAovLyAJcHJpbnRmKCIlenVcbiIsc2l6ZW9mKGxvbmcgZG91YmxlKSk7Ly/ovpPlh7oxNgovLyAJcmV0dXJuIDA7Ci8vIH0KCi8v5YWo5bGA57yW6K+RZS5nIGludCBudW0xCi8v5bGA6YOo57yW6K+RZS5nIGludCBudW0yCi8vICNpbmNsdWRlIDxzdGRpby5oPgovLyBpbnQgbnVtMSA9MjA7Ci8vIGludCBtYWluKCkKLy8gewovLyAJaW50IG51bTIgPTEwOwovLyAJcHJpbnRmKCIlZFxuIixudW0xKTsKLy8gCXByaW50ZigiJWRcbiIsbnVtMik7Ci8vIAlyZXR1cm4gMDsKLy8gfQoKLy9wcmludGbljaDkvY3nrKYKLy8gI2luY2x1ZGUgPHN0ZGlvLmg+Ly/lpLTmlofku7YKLy8gaW50IG1haW4oKQovLyB7ICAgY2hhciBaaGFuZ3NhbltdID0gIlpoYW5nc2FuLiI7Ci8vIAlwcmludGYoInRoZXJlIGFyZSAlZCBhcHBsZXMuXG4iLDMpOwovLyAJcHJpbnRmKCJaaGFuZ3NhbiB3aWxsIGNvbWUgYmFjayB0b25pZ2h0LlxuIik7Ci8vICAgICBwcmludGYoIiVzIHdpbGwgY29tZSBiYWNrIHRvbmlnaHQuXG4iLFpoYW5nc2FuKTsvL+i/memHjOS5i+WJjeaKpemUmei/h++8jOWboOS4uuayoeW4puacieWjsOaYjuKAnGNoYXIgWmhhbmdzYW5bXSA9ICJaaGFuZ3NhbiI74oCdCi8vIAlwcmludGYoIlpoYW5nc2FuIHNhaWQ6SXQncyA5IG8nY2xvY2sgbm93LlxuIik7Ci8vIAlwcmludGYoIiVzIHNhaWQ6SXQncyAlZCBvJ2Nsb2NrIG5vdy4iLFpoYW5nc2FuLDkpOwovLyAJcmV0dXJuIDA7Ci8vIH0KCi8v6LWL5YC85b+955Wl56ymCi8v5q2j5bi45pe255So5oi36L6T5YWl55qE5qC85byP5b+F6aG756ym5ZCI5qC85byP77yM5aaC5LiLCi8vIGludCBtYWluKCkKLy8gewovLyAJaW50IGE9MDsKLy8gCWludCBiPTA7Ci8vIAlzY2FuZigiJWQlZCIsJmEsJmIpOwovLyAJcHJpbnRmKCJhID0lZFxuYiA9JWRcbiIsYSxiKTsvL+atpOaXtui+k+WFpTEwIDIw5qC85byP55qE5YaF5a655pe277yM57O757uf5Lya6L6T5Ye6YT0xMAovLyAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iPTIwCi8vIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+S9huaYr+W9k+aIkei+k+WFpTEw77yMMjDml7bns7vnu5/or4bliKvkuI3liLBi77yM6ICM6L6T5Ye6Yj0wCi8vIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+aYr+WboOS4uuagvOW8j+S4jeato+ehrgovLyAJcmV0dXJuIDA7Ci8vIH0KCi8v56ys5LqM56eN5qC85byPCi8vIGludCBtYWluKCkKLy8gewovLyAJaW50IGE9MDsKLy8gCWludCBiPTA7Ci8vICAgICBzY2FuZigiJWQsJWQiLCZhLCZiKTsJCi8vIAlwcmludGYoImE9JWRcbmI9JWRcbiIsYSxiKTsvL+atpOaXtuW/hemhu+i+k+WFpeKAnDEw77yMMjDigJ3nmoTmoLzlvI/miY3lj6/ku6XovpPlh7phPTEw5ZKMYj0yMAovLyAJcmV0dXJuIDA7Ci8vIH0KLy/nrKzkuInnp40KLy8gI2luY2x1ZGUgPHN0ZGlvLmg+Ci8vIGludCBtYWluKCkKLy8gewovLyAJaW50IHllYXI9MDsKLy8gCWludCBtb250aD0wOwovLyAJaW50IGRheT0wOwovLyAJc2NhbmYoIiVkLSVkLSVkIiwmeWVhciwmbW9udGgsJmRheSk7Ly/ov5nph4zlj6rog73nlKgxOTk5LTAyLTEx55qE5qC85byP77yM5YOPMTk5OS8wMi8xMei/meenjeeahOaIluiAheWFtuS7luagvOW8j+mDveS4jeihjAovLyAJcHJpbnRmKCIlZCAlZCAlZFxuIix5ZWFyLG1vbnRoLGRheSk7Ly/ovpPlhaXmraPnoa7moLzlvI/lkI7lhbbkvJrovpPlh7rvvJoxOTk5IDAyIDExCi8vIAlyZXR1cm4gMDsKLy8gfQovL+WmguaenOaDs+imgei+k+WFpeS7u+aEj+agvOW8j+mDveWPr+aJp+ihjO+8jOmcgOimgei/kOeUqOWIsOi1i+WAvOW/veeVpeespgoKLy8gI2luY2x1ZGUgPHN0ZGlvLmg+Ci8vIGludCBtYWluKCkKLy8gewovLyAJaW50IHllYXI9MDsKLy8gCWludCBtb250aD0wOwovLyAJaW50IGRheT0wOwovLyAJc2NhbmYoIiVkJSpjJWQlKmMlZCIsJnllYXIsJm1vbnRoLCZkYXkpOy8v6L+Z56eN5qC85byP55qE5b+F6aG75ZyoMTk5OeWSjDEy5ZKMMTHkuYvpl7TovpPlhaXliIbpmpTnrKZlLmct5ZKMLwovLyAJcHJpbnRmKCIlZCAlZCAlZCIseWVhcixtb250aCxkYXkpOwovLyAJcmV0dXJuIDA7Ci8vIH0KCi8v5LiN55So5YiG6ZqU56ym5pe277yM5Lmf5LiN6IO955So6LWL5YC85b+955Wl56ymCi8vIGludCBtYWluKCkKLy8gewovLyAJaW50IHllYXI9MDsKLy8gCWludCBtb250aD0wOwovLyAJaW50IGRheT0wOwovLyAJc2NhbmYoIiU0ZCUyZCUyZCIsJnllYXIsJm1vbnRoLCZkYXkpOy8v6L+Z6YeM55qENO+8jDLvvIwy5piv5oyH6KaBJWTlj6ror7s05Liq5a2X56ym77yMMuWtl+espu+8jDLkuKrlrZfnrKYKLy8gCXByaW50ZigiJWQgJWQgJWQiLHllYXIsbW9udGgsZGF5KTsvL+i/meaXtuebtOaOpei+k+WFpTE5OTkxMjEx5Y2z5Y+v5LiN55So6L6T5YiG6ZqU56ymCi8vIAlyZXR1cm4gMDsKLy8gfQovLyBpbnQgbWFpbigpCi8vIHsgICBjaGFyIFpoYW5nc2FuW10gPSAiWmhhbmdzYW4iOy8v5a2X56ym5pWw57uE55So5p2l5a2Y5pS+5ZCN5a2X77yM6L+Z6YeM5LiN6IO955SoaW50Ci8vIAlwcmludGYoIiVzIHNheXMsaXQncyAlZCBvJ2Nsb2NrXG4iLFpoYW5nc2FuLDEwKTsKLy8gCXJldHVybiAwOwovLyB9CgovL+i+k+WHuuagvOW8jwovLyBpbnQgbWFpbigpCi8vIHsKLy8gCXByaW50ZigiJWRcbiIsMTIzKTsvL+i+k+WHuuS4ujEyMwovLyAJcHJpbnRmKCIlNWRcbiIsMTIzKTsvL+i+k+WHuuS4uiAgMTIz77yM5Zyo5LiA5LmL5YmN5pyJ5Lik5Liq56m65qC877yM5Lul5Y+K6buY6K6k5Li65Y+z5a+56b2QCi8vIAlwcmludGYoIiUtNWRcbiIsMTIzKTsvL+i+k+WHuuS4ujEyMyAg77yM5YaN5LiJ5ZCO5pyJ5Lik5Liq56m65qC877yM5Lul5Y+K5Yqg5LqG6LSf5Y+35ZCO5Li65bem5a+56b2QCi8vIAlwcmludGYoIiVmXG4iLDEyMy40NTYpOy8v6L+Z6YeM6L6T5Ye6MTIzLjQ1NjAwMOWboOS4uiVm6buY6K6k6L6T5Ye65bCP5pWw54K55ZCONuS9jQovLyAJcHJpbnRmKCIlMTJmXG4iLDEyMy40NTYpOy8v6L+Z6YeM6L6T5Ye6ICAxMjMuNDU2MDAw5Yqg5LiK5bCP5pWw54K55ZKM5YmN6Z2i55qE56m65qC85Li6MTLkuKrlrZfnrKbvvIzljbPlj7Plr7npvZAKLy8gCXJldHVybiAwOwovLyB9CgovL+aAu+aYvuato+WPt++8jOato+WcqOm7mOiupOaDheWGteS4i3ByaW50ZuWHveaVsOS4jeaYvuato+WPt+aYvui0n+WPt++8jOiAjOWcqCXlkI7pnaLliqDkuKor5Y2z5Y+v5oC75pi+5q2j5Y+3Ci8vIGludCBtYWluKCkKLy8gewovLyAJcHJpbnRmKCIlZFxuIiwxMik7Ly89PTEyCi8vIAlwcmludGYoIiUrZFxuIiwxMik7Ly89PSsxMgovLyAJcHJpbnRmKCIlZFxuIiwtMTIpOy8vPT0tMTIKLy8gCXByaW50ZigiJStkXG4iLC0xMik7Ly89PS0xMu+8jOWImeeUseS7peS4iuWcqOS9v+eUqHByaW50ZuWHveaVsOeahOWJjeaPkOS4i+WPr+efpeWcqCXlkI7pnaLliqAr5Y+v5Lul5L2/5Y6f5pys5Li65q2j5pWw55qE5pWw5a2X5pi+5q2j5Y+3Ci8vIAlyZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6ICM5a+55Y6f5pys5Li66LSf5Y+355qE5pWw5a2X5peg55SoCi8vIH0KCi8v6ZmQ5a6a5bCP5pWw5L2N5pWw77ya5YmN6Z2i5bey57uP55+l6YGT5LqGJWbpu5jorqTlsI/mlbDnmoTlkI7lha3kvY0s6ICM5ZyoJeWQjumdouWKoOS4iuKAnC7mlbDlrZfigJzlsLHlj6/ku6XpmZDliLblhbblnKjlsI/mlbDngrnlkI7pnaLnmoTkvY3mlbAKLy8gaW50IG1haW4oKQovLyB7Ci8vIAlwcmludGYoIiVmXG4iLDEuMjM3NCk7Ly89PTEuMjM3NDAwCi8vIAlwcmludGYoIiUuM2ZcbiIsMS4yMzc0KTsvLz09MS4yMzflsI/mlbDngrnlkI4z5L2NCi8vIAlwcmludGYoIiUuMmZcbiIsMS4yMzc0KTsvLz09MS4yNOWwj+aVsOeCueWQjjLkvY3vvIzogIzkuJTkvJrlm5voiI3kupTlhaUKLy8gCS8v5ZCM5pe25LiO5YmN6Z2i55qE55+l6K+G57uT5ZCICi8vIAlwcmludGYoIiUxMC4zZlxuIiwxLjIzNzQpOy8vPT0gICAgIDEuMjM3LOWJjemdouaciTXkuKrnqbrmoLzvvIzkuJQxMOihqOekuueahOaYr+WQkeWPs+Wvuem9kOW5tuS4gOWFseaciTEw5Liq5a2X56ym77yMM+aYr+aMh+Wwj+aVsOeCueWQjuS4ieS9jQovLyAJcHJpbnRmKCIlNS4yZlxuIiwxLjIzNzQpOy8vPT0gMS4yNCzliY3pnaLmnInkuIDkuKrnqbrmoLwKLy8gCXJldHVybiAwOwovLyB9CgoKLy/ovpPlh7rpg6jliIblrZfnrKbkuLLvvJrlnKglc+eahCXlkI7pnaLliqDkuIrigJwu5pWw5a2X4oCd77yM5aaC5LiL77yMCi8vIGludCBtYWluKCkKLy8gewovLyAJcHJpbnRmKCIlc1xuIixhYmNkZWYpOwovLyAJcHJpbnRmKCIlLjNmXG4iYWJjZGVmKTsKLy8gCXJldHVybiAwOwovLyB9CgoKLy8gI2luY2x1ZGUgPHN0ZGlvLmg+Ci8vIGludCBtYWluKCkKLy8gewovLyAJaW50IGE9MDsKLy8gCWludCBiPTA7Ci8vIAl3aGlsZShzY2FuZigiJWQgJWQiLCZhLCZiKT09Mik7Ci8vIAl7Ci8vIAkJaW50IGM9YStiOwovLyAJCXByaW50ZigiJWRcbiIsYyk7Ci8vIAl9Ci8vIAlyZXR1cm4gMDsKLy8gfQovL3NjYW5m5Lit55qEZG91Ymxl5b+F6aG755SoJWxm77yM6ICMcHJpbnRm5Lit55qEZG91Ymxl5pei5Y+v5Lul55SoJWbkuZ/lj6/ku6XnlKglbGYKLy/ku6Xlj4rlnKhzY2FuZ+S4rSXjgJDjgJHlj6/ku6XmjIflrprkuIDnu4TljLnphY3lrZfnrKbvvIhlLmfjgJAwfjnjgJHvvInvvIzlvZPlhbbpgYfliLDkuI3lnKjojIPlm7TlhoXnmoTlrZfnrKbml7bkvJrlgZzmraIKLy8gaW50IG1haW4oKQovLyB7Ci8vIAljaGFyIHN0cjFbMTAwXTsKLy8gCXNjYW5mKCIlW2EteixBLVpdIixzdHIxKTsKLy8gCXByaW50ZigiJXNcbiIsc3RyMSk7Ci8vIAlyZXR1cm4gMDsKLy8gfQovLyAKLy/lpJrnu4TovpPlhaUKLy8gI2luY2x1ZGUgPHN0ZGlvLmg+Ci8vIGludCBtYWluKCkKLy8gewovLyAJaW50IGE9MDsKLy8gCWludCBiPTA7Ci8vIAl3aGlsZShzY2FuZigiJWQgJWQiLCZhLCZiKT09MikvL+WPr+S7peWQjOaXtui+k+WFpTEyIDM0Ci8vIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLzQ1IDEyMjM0Ci8vIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLzY3IDU2OTAKLy8gCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vMTIzNDU2IDE1MzczNQovLyAJewovLyAJCWludCBjPWErYjsKLy8gCQlwcmludGYoIiVkXG4iLGMpOwovLyAJfQovLyAJcmV0dXJuIDA7Ci8vIH0KCi8vICNpbmNsdWRlIDxzdGRpby5oPgovLyBpbnQgbWFpbigpCi8vIHsKLy8gCWludCBudW09MDsKLy8gCWNoYXIgYz0wOwovLyAJc2NhbmYoIiVkIiwmbnVtKTsKLy8gCXByaW50ZigiJWRcbiIsbnVtKTsKLy8gCXNjYW5mKCIlYyIsJmMpOwovLyAJcHJpbnRmKCIlLS0tYy0tLVxuIixjKTsvL+WcqCVj5YmN5Yqg5LiK5LiA5Liq56m65qC85Y+v5Lul6Ziy5q2iMTIzIGFiY+aXtuWvvOiHtOWQjumdoueahGFiY+ivu+WPluS4jeWIsAovLyAJcmV0dXJuIDA7Ci8vIH0KCi8vIGludCBtYWluKCkKLy8gewovLyAJaW50IG51bT0wOwovLyAJY2hhciBjPTA7Ci8vIAlzY2FuZigiJWQiLCZudW0pOwovLyAJcHJpbnRmKCIlZFxuIixudW0pOy8v6L+Z5pe26L6T5YWlMTIzIGHlsLHlj6/ku6XovpPlh7oxMjMKLy8gCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYQovLyAJc2NhbmYoIiAlYyIsJmMpOwovLyAJcHJpbnRmKCIlY1xuIixjKTsKLy8gCXJldHVybiAwOwovLyB9CgoKLy/ovpPlh7rlubTpvoToi6U+PTE45YiZ6L6T5Ye65oiQ5bm077yM5ZCm5YiZ6L6T5Ye677ya5pyq5oiQ5bm0CiNpbmNsdWRlIDxzdGRpby5oPgovLyBpbnQgbWFpbigpCi8vIHsKLy8gCWludCBudW09MDsKLy8gCXNjYW5mKCIlZFxuIiwmbnVtKTsKLy8gCWlmKG51bSA+PSAxOD09MSkKLy8gCSAgcHJpbnRmKCLmiJDlubRcbiIpOy8v5oiR5oiQ5Yqf5LqG77yB77yB77yB77yB77yB77yBCi8vIAllbHNlCi8vIAkgIHByaW50Zigi5pyq5oiQ5bm0XG4iKTsKLy8gCXJldHVybiAwOwovLyB9CgppbnQgbWFpbigpCnsKCWludCBudW0gPSAwOwoJc2NhbmYoIiVkIiwmbnVtKTsKICAgIGlmKG51bSAlIDIgPT0xKQoJICBwcmludGYoIuWlh+aVsFxuIik7CgllbHNlCgkgIHByaW50Zigi5YG25pWwXG4iKTsKICAgIHJldHVybiAwOwp9CgoKCg==