# GMR merit point sub routine
# ver 0.65c(07/07/03)
#

sub main_mpoint{

#配列
#m_categoryname カテゴリ名称
#m_categorynmax カテゴリ上弦
#m_name 項目名
#m_categorycode 各項目の属するカテゴリコード
#m_max 各項目の上限
#m_needpoint 各項目の引き上げに必要ポイント
#m_jobcode 各項目とジョブコード関連


if(!open(IN,"$datafile")){&header; &error_message('datafile error/system','data file access failed.');}
@all=<IN>;
close IN;

$match="";
foreach $i(@all){
	 ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i);
	if($r_name eq $name && $pass eq $r_pass){
		$match=$i;
	}
}
if($match eq ""){&header; &error_message('id/pass error','access failed.');}
$match =~ s/"/&quot;/g;

 ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match);

#prod12,13を使います。
&list_mpoint;

#ぬるぽ入力
if($mode eq "modify"){

	#layout style1
	$prod[13]="";
	$mptotal=0;
	for($i=0;$i<223;$i++){
		$prod[13]=$prod[13].$FORM{"mp$i"}.",";
		if($FORM{"mp$i"}>0){
			for($j=0;$j<$FORM{"mp$i"};$j++){
				$mptotal= $mptotal + substr($m_needpoint[$i],$j,1);
			}
		}
	}

	#layout style2
	$j=99; #現在カテゴリ
	$prod[12]="<TR><TD bgcolor=$indexcolor width=30% align=center>$mpointword[0]</TD><TD bgcolor=$indexcolor width=35% align=center>$mpointword[1]</TD><TD bgcolor=$indexcolor width=35% align=center>$mpointword[2]</TD></TR><TR><TD bgcolor=$profcolor width=30% valign=top>";
	for($i=0;$i<45;$i++){ #基本
		if($FORM{"mp$i"}>0){
			if($j !=$m_categorycode[$i]){
				$prod[12]=$prod[12]."<div style=\"background-color : $indexcolor; text-align : center\">$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])</div>";
				$j=$m_categorycode[$i];
			}
			$prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]<BR>";
		}
	}
	$prod[12]=$prod[12]."</TD><TD bgcolor=$profcolor width=35% valign=top>";
	for($i=45;$i<141;$i++){ #ジョブカテゴリ１
		if($FORM{"mp$i"}>0){
			if($j !=$m_categorycode[$i]){
				$prod[12]=$prod[12]."<div style=\"background-color : $indexcolor; text-align : center\">$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])</div>";
				$j=$m_categorycode[$i];
			}
			$prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]<BR>";
		}
	}
	$prod[12]=$prod[12]."</TD><TD bgcolor=$profcolor width=35% valign=top>";
	for($i=141;$i<223;$i++){ #ジョブカテゴリ２
		if($FORM{"mp$i"}>0){
			if($j !=$m_categorycode[$i]){
				$prod[12]=$prod[12]."<div style=\"background-color : $indexcolor; text-align : center\">$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])</div>";
				$j=$m_categorycode[$i];
			}
			$prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]<BR>";
		}
	}
	$prod[12]=$prod[12]."</TD></TR>";

	if($mptotal>0){
		$prod[12]=$prod[12]."<TR><TD colspan=2 bgcolor=$indexcolor width=40%>$mpointword[3]</TD><TD bgcolor=$profcolor>$mptotal</TD></TR>";
	}


	@out=();
	foreach $i(@all){
		 ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i);
		if($r_name eq $name && $pass eq $r_pass){
			$pastdat=$i;
			$newdat="$r_no\t$name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t$lev[16]\t$lev[17]\t$lev[18]\t$lev[19]\t\n";
			push(@out,$newdat);
		} else {
			push(@out,$i);
		}
	}

	if(!open(OUT,">$datafile")){&header; &error_message('datafile error2048','data file access failed.');}
	print OUT @out;
	close OUT;

	&compare_history;

	$historybase="MERIED\t$name\t$name merit point modify\t$rsstime\t$no\t$message\t$rh\t$addr\t\n";
	&add_history;

	&reload_header;

if($language ne "English"){
	print "<table width=100%><TR bgcolor=$indexcolor><TD>メリットポイント情報の更新をしました。</TD></TR></table>";
	print "<a href=$script>MemberList Top</a><BR>";
	print "自動的にトップページに戻ります<BR>";
} else {
	print "<table width=100%><TR bgcolor=$indexcolor><TD>Merit point data modified.</TD></TR></table>";
	print "Automatically back to top<BR>";
}

#メリポ修正ここまで

} else {
#リスト表示部分

@mp=split(/,/,$prod[13]);

&header;


if($language ne "English"){

print "<table width=100%><TR bgcolor=$indexcolor><TD>メリットポイント修正</TD></TR></table>";
print "<a href=$script>MemberList Top</a><BR>";
print "No. $no : '$name' さんのメリットポイントを修正します。<BR>\n";
} else {
print "<table width=100%><TR bgcolor=$indexcolor><TD>Modifying Merit point</TD></TR></table>";
print "<a href=$script>MemberList Top</a><BR>";
print "No. $no : modifying '$name' merit point<BR>\n";
}

print "<form method=$method action=$script><input type=hidden name=name value=$name><input type=hidden name=pass value=$pass><input type=hidden name=function value='$button[0]'><input type=submit name=mode value='back'></form>";
print "<form method=post enctype='multipart/form-data'  action=$script><input type=hidden name=name value=$name><input type=hidden name=pass value=$pass>";
print "<input type=hidden name=function value=\"meritpoint\"><input type=hidden name=mode value=modify>";
print "<table><TR><TD valign=top><table>";

#カテゴリ0-4(0-44/無条件表示)
	for($i=0;$i<28;$i++){
		print "<TR><TD bgcolor=$indexcolor>$m_name[$i]</TD><TD>($m_categoryname[$m_categorycode[$i]])</TD><TD>";
		print "<select name=mp$i>";
		for($j=0;$j<$m_max[$i]+1;$j++){
			if($mp[$i] == $j){
				print "<option value=$j selected>$j</option>";
			} else {
				print "<option value=$j>$j</option>";
			}
		}
		print "</select></TD></TR>";
	}
print "</table></TD><TD valign=top>\n<table>";
	for($i=28;$i<45;$i++){
		print "<TR><TD bgcolor=$indexcolor>$m_name[$i]</TD><TD>($m_categoryname[$m_categorycode[$i]])</TD><TD>";
		print "<select name=mp$i>";
		for($j=0;$j<$m_max[$i]+1;$j++){
			if($mp[$i] == $j){
				print "<option value=$j selected>$j</option>";
			} else {
				print "<option value=$j>$j</option>";
			}
		}
		print "</select></TD></TR>";
	}
print "</table></TD><TD valign=top>\n<table>";
#カテゴリ5-(45-140&141-222/ジョブ条件判定)

	for($i=45;$i<141;$i++){
		if($lev[$m_jobcode[$i]] == 75){
			print "<TR><TD bgcolor=$indexcolor>$m_name[$i]</TD><TD>($m_categoryname[$m_categorycode[$i]])</TD><TD>";
			print "<select name=mp$i>";
			for($j=0;$j<$m_max[$i]+1;$j++){
				if($mp[$i] == $j){
					print "<option value=$j selected>$j</option>";
				} else {
					print "<option value=$j>$j</option>";
				}
			}
			print "</select></TD></TR>";
		}
	}
print "</table></TD><TD valign=top>\n<table>";
	for($i=141;$i<223;$i++){
		if($lev[$m_jobcode[$i]] == 75){
			print "<TR><TD bgcolor=$indexcolor>$m_name[$i]</TD><TD>($m_categoryname[$m_categorycode[$i]])</TD><TD>";
			print "<select name=mp$i>";
			for($j=0;$j<$m_max[$i]+1;$j++){
				if($mp[$i] == $j){
					print "<option value=$j selected>$j</option>";
				} else {
					print "<option value=$j>$j</option>";
				}
			}
			print "</select></TD></TR>";
		}
	}
print "</table></TD></TR></table>";


print "<input type=submit value='meritpoint'></form>\n";

#入力リスト表示ここまで
}


}

sub list_mpoint{


#各カテゴリのmax
@m_categorymax=(
'8','5','20','16','8','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','6','6','6','6','6','6','6','6','6','6','6','6','6','6','6','6','6','6',);


if($language ne "English"){

#カテゴリリスト
@m_categoryname=('HP/MP','ステータス','戦闘スキル','魔法スキル','その他の能力','戦士１','モンク１','白魔道士１','黒魔道士１','赤魔道士１','シーフ１','ナイト１','暗黒騎士１','獣使い１','吟遊詩人１','狩人１','侍１','忍者１','竜騎士１','召喚士１','青魔道士１','コルセア１','からくり士１','戦士２','モンク２','白魔道士２','黒魔道士２','赤魔道士２','シーフ２','ナイト２','暗黒騎士２','獣使い２','吟遊詩人２','狩人２','侍２','忍者２','竜騎士２','召喚士２','青魔道士２','コルセア２','からくり士２',);

#各項目名称
@m_name=(
'HP','MP','STR','DEX','VIT','AGI','INT','MND','CHR','格闘','短剣','片手剣','両手剣','片手斧','両手斧','両手鎌','両手槍','片手刀','両手刀','片手棍','両手棍','弓術','射撃','投てき','ガード','回避','盾','受け流し','神聖魔法','回復魔法','強化魔法','弱体魔法','精霊魔法','暗黒魔法','歌唱','弦楽器','管楽器','忍術','召喚魔法','青魔法','敵対心＋','敵対心－','クリティカルヒット率','被クリティカルヒット率','詠唱中断率','バーサク使用間隔','ディフェンダー使用間隔','ウォークライ使用間隔','アグレッサー使用間隔','ダブルアタック確率','集中使用間隔','回避使用間隔','チャクラ使用間隔','カウンター確率','蹴撃確率','女神の印使用間隔','ケアル詠唱時間','属性耐性魔法効果','バニシュ効果','リジェネ効果','精霊の印使用間隔','火属性魔法攻撃力','氷属性魔法攻撃力','風属性魔法攻撃力','土属性魔法攻撃力','雷属性魔法攻撃力','水属性魔法攻撃力','コンバート使用間隔','火属性魔法命中率','氷属性魔法命中率','風属性魔法命中率','土属性魔法命中率','雷属性魔法命中率','水属性魔法命中率','とんずら使用間隔','かくれる使用間隔','不意打ち使用間隔','だまし討ち使用間隔','トリプルアタック確率','シールドバッシュ使用間隔','ホーリーサークル使用間隔','センチネル使用間隔','かばう効果時間','ランパート使用間隔','暗黒使用間隔','アルケインサークル使用間隔','ラストリゾート使用間隔','ラストリゾート効果','ウェポンバッシュ使用間隔','キラー確率','いたわる使用間隔','よびだす使用間隔','ほんきだせ使用間隔','なだめる使用間隔','ララバイ使用間隔','フィナーレ使用間隔','ミンネ効果','メヌエット効果','マドリガル効果','スカベンジ使用間隔','カモフラージュ使用間隔','狙い撃ち使用間隔','エンドレスショット使用間隔','ラピッドショット確率','心眼使用間隔','護摩の守護円使用間隔','ストアTP効果','黙想使用間隔','残心確率','モクシャ効果','火遁の術効果','氷遁の術効果','風遁の術効果','土遁の術効果','雷遁の術効果','水遁の術効果','エンシェントサークル使用間隔','ジャンプ使用間隔','ハイジャンプ使用間隔','スーパージャンプ使用間隔','スピリットリンク使用間隔','召喚獣物理命中率','召喚獣物理攻撃力','召喚獣魔法命中率','召喚獣魔法攻撃力','精霊維持費－','ブルーチェーン使用間隔','ブルーバースト使用間隔','モンスター相関関係効果','物理系青魔法攻撃力','魔法系青魔法命中率','ファントムロール使用間隔','クイックドロー使用間隔','クイックドロー命中率','ランダムディール使用間隔','Bust時間短縮','オートマトン白兵戦スキル','オートマトン射撃戦スキル','オートマトン魔法戦スキル','アクティベート使用間隔','リペアー使用間隔','ウォリアーチャージ','トマホーク','サベッジリ','アグレシブエイム','マントラ','無想無念','錬気','発剄','マーター','デヴォーション','プロテアV','シェルラV','フレアII','フリーズII','トルネドII','クエイクII','バーストII','フラッドII','ディアIII','スロウII','パライズII','ファランクスII','バイオIII','ブラインII','アサシンチャージ','フェイント','オーラスティール','アンブッシュ','フィールティ','シバルリー','アイアンウィル','ガーディアン','ダークシール','ディアボリクアイ','ミューテッドソウル','デスペレートブロー','フェラルハウル','K.インスティンクト','ビーストアフニティ','ビーストヒーラー','ナイチンゲール','トルバドゥール','魔物のシルベント','冒険者のダージュ','ステルスショット','フラッシーショット','スナップショット','リサイクル','士気高揚','峰打ち','意気衝天','正正堂堂','散華','忍具の知識','火遁の術:参','氷遁の術:参','風遁の術:参','土遁の術:参','雷遁の術:参','水遁の術:参','ディープブリージング','アンゴン','エンパシー','ストレイフ','メテオストライク','ヘヴンリーストライク','ウィンドブレード','ジオクラッシュ','サンダーストーム','グランドフォール','コンバージェンス','ディフュージョン','エンチェーンメント','アシミレーション','スネークアイ','フォールド','ウィニングストリーク','ローデッドデッキ','黒衣チェンジ','腹話術','微調整','最適化');
} else {

@m_categoryname=('HP/MP','Attributes','CombatSkills','MagicSkills','OtherSkills','Warrior1','Monk1','WhiteMage1','BlackMage1','RedMage1','Thief1','Paladin1','DarkKnight1','Beastmaster1','Bard1','Ranger1','Samurai1','Ninja1','Dragoon1','Summoner1','BlueMage1','Corsair1','Puppetmaster1','Warrior2','Monk2','WhiteMage2','BlackMage2','RedMage2','Thief2','Paladin2','DarkKnight2','BeastMaster2','Bard2','Ranger2','Samurai2','Ninja2','Dragoon2','Summoner2','BlueMage2','Corsair2','Puppetmaster2',);

@m_name=('HP','MP','STR','DEX','VIT','AGI','INT','MND','CHR','Hand-to-Hand','Dagger','Sword','GreatSword','Axe','GreatAxe','Scythe','Polearm','Katana','GreatKatana','Club','Staff','Archery','Marksmanship','Throwing','Guarding','Evasion','Shield','Parrying','DivineMagic','HealingMagic','EnhancingMagic','EnfeeblingMagic','ElementalMagic','DarkMagic','Singing','StringInstrument','WindInstrument','Ninjutsu','Summoning','BlueMagic','EnmityIncrease','EnmitiyDecrease','CriticalHitRate','EnemyCriticalHitRate','SpellInterruptionRate','Berserk Recast','Defender Recast','Warcry Recast','Aggressor Recast','Double Attack Rate','Focus Recast','Dodge Recast','Chakra Recast','Counter Rate','Kick Attack Rate ','Divine Seal Recast','Cure Cast Time','Bar Spell Effect','Banish Effect','Regen Effect','Elemental Seal Recast','Fire Magic Potency','Ice Magic Potency','Wind Magic Potency','Earth Magic Potency','Lightning Magic Potency','Water Magic Potency ','Convert Recast','Fire Magic Accuracy','Ice Magic Accuracy','Wind Magic Accuracy','Earth Magic Accuracy','Lightning Magic Accuracy','Water Magic Accuracy','Flee Recast','Hide Recast','Sneak Attack Recast','Trick Attack Recast','Triple Attack Rate ','Shield Bash Recast','Holy Circle Recast','Sentinel Recast','Cover Effect Length','Rampart Recast','Souleater Recast','Arcane Circle Recast','Last Resort Recast','Last Resort Effect','Weapon Bash Recast ','Killer Effects','Reward Recast','Call Beast Recast','Sic Recast','Tame Recast','Lullaby Recast','Finale Recast','Minne Effect','Minuet Effect','Madrigal Effect ','Scavenge Recast','Camouflage Recast','Sharpshot Recast','Unlimited Shot Recast','Rapid Shot Rate','Third Eye Recast','Warding Circle Recast','Store TP Effect','Meditate Recast','Zanshin Attack Rate ','Subtle Blow Effect','Katon Effect','Hyoton Effect','Huton Effect','Doton Effect','Raiton Effect','Suiton Effect','Ancient Circle Recast','Jump Recast','High Jump Recast','Super Jump Recast','Spirit Link Recast ','Avatar Physical Accuracy','Avatar Physical Attack','Avatar Magical Accuracy','Avatar Magical Attack','Elemental MP Cost ','Chain Affinity Recast','Burst Affinity Recast','Monster Correlation','Physical Potency','Magical Accuracy','Phantom Roll Recast','Quick Draw Recast','Quick Draw Accuracy','Random Deal Recast','Bust Duration','Automaton Melee Skill','Automaton Ranged Skill','Automaton Magic Skill','Activate Recast','Repair Recast',"Warriors Charge",'Tomahawk','Savagery','Aggressive Aim','Mantra','Formless Strikes','Invigorate','Penance ','Martyr','Devotion','Protectra V','Shellra V','Flare II','Freeze II','Tornado II','Quake II','Burst II ','Flood II ','Dia III','Slow II','Paralyze II','Phalanx II','Bio III','Blind II',"Assassins Charge",'Feint','Aura Steal','Ambush','Fealty','Chivalry','Iron Will','Guardian','Dark Seal','Diabolic Eye','Muted Soul','Desperate Blows','Feral Howl','Killer Instinct','Beast Affinity ','Beast Healer','Nightingale','Troubadour','Foe Sirvente',"Adventurers Dirge",'Stealth Shot','Flashy Shot','Snapshot','Recycle','Shikikoyo','Blade Bash','Ikishoten','Overwhelm','Katon: San','Hyoton: San','Huton: San','Doton: San','Raiton: San','Suiton: San','Sange','Ninja Tool Expertise','Deep Breathing','Angon','Empathy','Strafe','Meteor Strike','Heavenly Strike','Wind Blade','Geocrush','Thunderstorm','Grand Fall','Convergence','Diffusion','Enchainment','Assimilation','Snake Eye','Fold','Winning Streak','Loaded Deck','Role Reversal','Ventriloquy','Fine-Tuning','Optimization ');
}




#各項目のカテゴリコード
@m_categorycode=(
'0','0','1','1','1','1','1','1','1','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','3','3','3','3','3','3','3','3','3','3','3','3','4','4','4','4','4','5','5','5','5','5','6','6','6','6','6','7','7','7','7','7','8','8','8','8','8','8','8','9','9','9','9','9','9','9','10','10','10','10','10','11','11','11','11','11','12','12','12','12','12','13','13','13','13','13','14','14','14','14','14','15','15','15','15','15','16','16','16','16','16','17','17','17','17','17','17','17','18','18','18','18','18','19','19','19','19','19','20','20','20','20','20','21','21','21','21','21','22','22','22','22','22','23','23','23','23','24','24','24','24','25','25','25','25','26','26','26','26','26','26','27','27','27','27','27','27','28','28','28','28','29','29','29','29','30','30','30','30','31','31','31','31','32','32','32','32','33','33','33','33','34','34','34','34','35','35','35','35','35','35','35','35','36','36','36','36','37','37','37','37','37','37','38','38','38','38','39','39','39','39','40','40','40','40',);

#各項目のMAX値
@m_max=(
'8','8','5','5','5','5','5','5','5','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','4','4','4','4','8','8','8','8','8','8','8','8','8','8','8','8','4','4','4','4','4','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3',);


#各カテゴリの必要ポイント
@m_needpoint=(
'12345555','12345555','36999','36999','36999','36999','36999','36999','36999','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','1233','1233','1233','1233','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','1234','1234','1234','1234','1234','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345');

#表示制限ジョブコード
@m_jobcode=(
'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','1','1','1','1','1','2','2','2','2','2','3','3','3','3','3','3','3','4','4','4','4','4','4','4','5','5','5','5','5','6','6','6','6','6','7','7','7','7','7','10','10','10','10','10','9','9','9','9','9','8','8','8','8','8','14','14','14','14','14','13','13','13','13','13','13','13','11','11','11','11','11','12','12','12','12','12','15','15','15','15','15','16','16','16','16','16','17','17','17','17','17','0','0','0','0','1','1','1','1','2','2','2','2','3','3','3','3','3','3','4','4','4','4','4','4','5','5','5','5','6','6','6','6','7','7','7','7','10','10','10','10','9','9','9','9','8','8','8','8','14','14','14','14','13','13','13','13','13','13','13','13','11','11','11','11','12','12','12','12','12','12','15','15','15','15','16','16','16','16','17','17','17','17');

}

1;
