# GMR merit point sub routine # ver 0.683(08/12/21) # 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=; 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/"/"/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<241;$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]="$mpointword[0]$mpointword[1]$mpointword[2]"; for($i=0;$i<45;$i++){ #基本 if($FORM{"mp$i"}>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]
"; } } $prod[12]=$prod[12].""; for($i=45;$i<141;$i++){ #ジョブカテゴリ1 if($FORM{"mp$i"}>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]
"; } } for($i=223;$i<231;$i++){ #ジョブカテゴリ1(踊り子・学者223-230) if($FORM{"mp$i"}>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]
"; } } $prod[12]=$prod[12].""; for($i=141;$i<223;$i++){ #ジョブカテゴリ2 if($FORM{"mp$i"}>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]
"; } } for($i=231;$i<241;$i++){ #ジョブカテゴリ2(踊り子・学者231-240) if($FORM{"mp$i"}>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]]($mpointword[4]$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$FORM{"mp$i"}."/$m_max[$i]
"; } } $prod[12]=$prod[12].""; if($mptotal>0){ $prod[12]=$prod[12]."$mpointword[3]$mptotal"; } @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 "
メリットポイント情報の更新をしました。
"; print "MemberList Top
"; print "自動的にトップページに戻ります
"; } else { print "
Merit point data modified.
"; print "Automatically back to top
"; } #メリポ修正ここまで } else { #リスト表示部分 @mp=split(/,/,$prod[13]); &header; if($language ne "English"){ print "
メリットポイント修正
"; print "MemberList Top
"; print "No. $no : '$name' さんのメリットポイントを修正します。
\n"; } else { print "
Modifying Merit point
"; print "MemberList Top
"; print "No. $no : modifying '$name' merit point
\n"; } print "
"; print "
"; print ""; print "
"; #カテゴリ0-4(0-44/無条件表示) for($i=0;$i<28;$i++){ print ""; } print "
$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
\n"; for($i=28;$i<45;$i++){ print ""; } print "
$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
\n"; #カテゴリ5-(45-140,223-230&141-222/ジョブ条件判定) for($i=45;$i<141;$i++){ if($lev[$m_jobcode[$i]] == 75){ print ""; } } for($i=223;$i<231;$i++){ if($lev[$m_jobcode[$i]] == 75){ print ""; } } print "
$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
\n"; for($i=141;$i<223;$i++){ if($lev[$m_jobcode[$i]] == 75){ print ""; } } for($i=231;$i<241;$i++){ if($lev[$m_jobcode[$i]] == 75){ print ""; } } print "
$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
"; print "
\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','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10',); if($language ne "English"){ #カテゴリリスト @m_categoryname=('HP/MP','ステータス','戦闘スキル','魔法スキル','その他の能力','戦士1','モンク1','白魔道士1','黒魔道士1','赤魔道士1','シーフ1','ナイト1','暗黒騎士1','獣使い1','吟遊詩人1','狩人1','侍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','踊り子1','学者1','踊り子2','学者2'); #各項目名称 @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.インスティンクト','ビーストアフニティ','ビーストヒーラー','ナイチンゲール','トルバドゥール','魔物のシルベント','冒険者のダージュ','ステルスショット','フラッシーショット','スナップショット','リサイクル','士気高揚','峰打ち','意気衝天','正正堂堂','散華','忍具の知識','火遁の術:参','氷遁の術:参','風遁の術:参','土遁の術:参','雷遁の術:参','水遁の術:参','ディープブリージング','アンゴン','エンパシー','ストレイフ','メテオストライク','ヘヴンリーストライク','ウィンドブレード','ジオクラッシュ','サンダーストーム','グランドフォール','コンバージェンス','ディフュージョン','エンチェーンメント','アシミレーション','スネークアイ','フォールド','ウィニングストリーク','ローデッドデッキ','黒衣チェンジ','腹話術','微調整','最適化','ステップ命中率','ヘイストサンバ効果','R.フラリッシュ効果','B.フラリッシュ効果','グリモア使用間隔','以逸待労の計効果時間','計略魔法命中率、魔法攻撃力','机上演習上限','剣の舞い','扇の舞い','ノーフットライズ','C・ポジション','不惜身命の章','一心精進の章','天衣無縫の章','無憂無風の章','大悟徹底','陣頭指揮', ); } 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','Dancer1','Scholar1','Dancer2','Scholar2'); @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 ','Step Accuracy','Haste Samba Effect','Reverse Flourish Effect','Building Flourish Effect','Grimoire Recast','Modus Veritas Duration','Helix Magic Acc./Atk.','Max Sublimation','Saber Dance','Fan Dance','No Foot Rise','Closed Position','Altruism','Focalization','Tranquility','Equanimity','Enlightenment','Stormsurge',); } #各項目のカテゴリコード @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','41','41','41','41','42','42','42','42','43','43','43','43','44','44','44','44','44','44',); #各項目の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','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','5','5','5','5',); #各カテゴリの必要ポイント @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','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555','34555', '12345','12345','12345','12345','12345','12345','12345','12345', '34555','34555','34555','34555','34555','34555','34555','34555','34555','34555'); #表示制限ジョブコード @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','18','18','18','18','19','19','19','19','18','18','18','18','19','19','19','19','19','19'); } 1;