From 982e2624cf3ba6113b9912303be14783d77b91ee Mon Sep 17 00:00:00 2001 From: voderl Date: Sat, 26 Oct 2019 14:36:28 +0800 Subject: [PATCH] setText FontInterval --- _server/.antlr/MotaAction.interp | 703 ++ _server/.antlr/MotaAction.tokens | 510 ++ _server/.antlr/MotaActionLexer.interp | 841 ++ _server/.antlr/MotaActionLexer.java | 1943 ++++ _server/.antlr/MotaActionLexer.tokens | 510 ++ _server/.antlr/MotaActionParser.java | 11399 ++++++++++++++++++++++++ _server/MotaAction.g4 | 12 +- libs/events.js | 2 +- libs/ui.js | 3 +- project/floors/sample0.js | 402 +- 10 files changed, 16132 insertions(+), 193 deletions(-) create mode 100644 _server/.antlr/MotaAction.interp create mode 100644 _server/.antlr/MotaAction.tokens create mode 100644 _server/.antlr/MotaActionLexer.interp create mode 100644 _server/.antlr/MotaActionLexer.java create mode 100644 _server/.antlr/MotaActionLexer.tokens create mode 100644 _server/.antlr/MotaActionParser.java diff --git a/_server/.antlr/MotaAction.interp b/_server/.antlr/MotaAction.interp new file mode 100644 index 00000000..e172cce8 --- /dev/null +++ b/_server/.antlr/MotaAction.interp @@ -0,0 +1,703 @@ +token literal names: +null +'事件' +'覆盖触发?' +'启用' +'通行状??' +'显伤' +'等级提升' +'??' +'称号' +'是否扣除经验' +'全局商店列表' +'商店 id' +'快捷商店栏中名称' +'未开启状态则不显示在列表?' +'执行的公共事? id' +'参数列表' +'标题' +'图标' +'共用times' +'使用' +'消??' +'显示文字' +'商店选项' +'+=' +'战斗结束?' +'获取道具?' +'打开门后' +'首次到达楼层' +'每次到达楼层' +'楼梯, 传?门' +'x' +',' +'y' +'朝向' +'动画时间' +'允许穿??' +'公共事件' +'显示文章' +':' +'图像' +'对话框效?' +'添加注释' +'自动剧情文本: 标题' +'时间' +'滚动剧情文本:' +'行距' +'不等待执行完?' +'设置剧情文本的属?' +'位置' +'偏移像素' +'对齐' +'标题颜色' +'正文颜色' +'背景?' +'粗体' +'标题字体大小' +'正文字体大小' +'打字间隔' +'字符间距' +'显示提示' +'图标ID' +'数?操?' +'名称' +'?' +'数?增?' +'设置楼层属??' +'楼层?' +'设置全局属??' +'设置全局数??' +'设置系统??' +'显示事件' +'楼层' +'隐藏事件' +'触发事件' +'不结束当前事?' +'插入公共事件' +'插入事件' +'重启当前事件' +'立刻结束当前事件' +'转变图块?' +'显示贴图' +'隐藏贴图' +'显示图层?' +'隐藏图层?' +'转变图层?' +'?' +'更改角色行走?' +'更新状?栏和地图显?' +'显示状?栏' +'隐藏状?栏' +'不隐藏竖屏工具栏' +'显示勇士' +'隐藏勇士' +'更新怪物数据' +'等待' +'毫秒' +'不可被Ctrl跳过' +'强制战斗' +'??' +'?要钥?' +'关门' +'ID' +'楼层切换' +'位置切换' +'勇士转向' +'使用道具' +'打开全局商店' +'禁用全局商店' +'跟随勇士' +'行走?' +'取消跟随' +'画面震动' +'显示动画' +'设置视角' +'左上角坐?' +'移动视角' +'显示图片' +'图片编号' +'图片' +'绘制的起点像?' +'不?明?' +'裁剪的起点像?' +'?' +'?' +'显示图片化文?' +'文本内容' +'起点像素' +'清除图片' +'显示动图' +'起点像素位置' +'清除?有动?' +'图片移动' +'终点像素位置' +'移动时间' +'更改画面色调' +'恢复画面色调' +'画面闪烁' +'单次时间' +'执行次数' +'更改天气' +'强度' +'移动事件' +'不消?' +'移动勇士' +'跳跃事件' +'起始 x' +'终止 x' +'跳跃勇士' +'播放背景音乐' +'持续到下个本事件' +'暂停背景音乐' +'恢复背景音乐' +'预加载背景音?' +'释放背景音乐的缓?' +'播放音效' +'停止之前音效' +'停止?有音?' +'设置音量' +'渐变时间' +'游戏胜利,结局' +'不计入榜?' +'游戏失败,结局' +'直接回到标题界面' +'接受用户输入数字,提示' +'接受用户输入文本,提示' +'如果' +'否则' +'多重分歧 条件判定' +'如果?' +'的场?' +'不跳?' +'选项' +'子?项' +'颜色' +'出现条件' +'显示确认?' +'确定的场?' +'(默认?中' +'?' +'取消的场?' +'前置条件循环' +'?' +'?' +'后置条件循环' +'跳出当前循环或公共事?' +'继续当前循环' +'等待用户操作并获得按键或点击信息' +'等待?有异步事件执行完?' +'呼出怪物手册' +'呼出存档页面' +'自动存档' +'不提?' +'呼出读档页面' +'ui绘制并预?' +'(双击此项可进行预览?' +'清除画布' +'清空画布' +'设置画布属??' +'字体' +'填充样式' +'边框样式' +'线宽?' +'基准?' +'z?' +'绘制文本' +'样式' +'?大宽?' +'绘制描边文本' +'绘制多行文本' +'字体大小' +'绘制矩形' +'绘制矩形边框' +'线宽' +'绘制线段' +'终点像素' +'绘制箭头' +'绘制多边?' +'顶点像素列表' +'绘制多边形边?' +'绘制?' +'圆心' +'半径' +'绘制圆边?' +'绘制图片' +'绘制图标' +'绘制背景?' +'绘制闪烁光标' +'清除闪烁光标' +'自定义事?' +'自定义JS脚本' +'不自动执行下?个事?' +'=== statement ^ === expression v ===' +'?' +'独立??' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'BGNLaergayergfuybgv' +'=== meaningful ^ ===' +'??' +'结束' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +IdText +RawEvalString +PosString +Floor_List +Stair_List +SetTextPosition_List +TextAlign_List +TextBaseline_List +ShopUse_List +Arithmetic_List +Weather_List +B_0_List +B_1_List +Bg_Fg_List +Event_List +Floor_Meta_List +Global_Attribute_List +Global_Value_List +Global_Flag_List +Colour +Angle +Bool +Int +Letter_List +Number +Direction_List +DirectionEx_List +StepString +IdString +FixedId_List +Id_List +EvalString +BGNL +MeaningfulSplit +BSTART +BEND +Newline +WhiteSpace +BlockComment +LineComment + +rule names: +event_m +level_m +levelCase +shop_m +shoplist +emptyshop +shopcommonevent +shopsub +shopChoices +shopEffect +afterBattle_m +afterGetItem_m +afterOpenDoor_m +firstArrive_m +eachArrive_m +changeFloor_m +commonEvent_m +action +text_0_s +text_1_s +comment_s +autoText_s +scrollText_s +setText_s +tip_s +setValue_s +addValue_s +setFloor_s +setGlobalAttribute_s +setGlobalValue_s +setGlobalFlag_s +show_s +hide_s +trigger_s +insert_1_s +insert_2_s +revisit_s +exit_s +setBlock_s +showFloorImg_s +hideFloorImg_s +showBgFgMap_s +hideBgFgMap_s +setBgFgBlock_s +setHeroIcon_s +update_s +showStatusBar_s +hideStatusBar_s +showHero_s +hideHero_s +updateEnemys_s +sleep_s +battle_s +battle_1_s +openDoor_s +closeDoor_s +changeFloor_s +changePos_0_s +changePos_1_s +useItem_s +openShop_s +disableShop_s +follow_s +unfollow_s +vibrate_s +animate_s +setViewport_s +moveViewport_s +showImage_s +showImage_1_s +showTextImage_s +hideImage_s +showGif_0_s +showGif_1_s +moveImage_s +setCurtain_0_s +setCurtain_1_s +screenFlash_s +setWeather_s +move_s +moveHero_s +jump_s +jumpHero_s +playBgm_s +pauseBgm_s +resumeBgm_s +loadBgm_s +freeBgm_s +playSound_s +stopSound_s +setVolume_s +win_s +lose_s +restart_s +input_s +input2_s +if_s +if_1_s +switch_s +switchCase +choices_s +choicesContext +confirm_s +while_s +dowhile_s +break_s +continue_s +wait_s +waitAsync_s +callBook_s +callSave_s +autoSave_s +callLoad_s +previewUI_s +clearMap_s +clearMap_1_s +setAttribute_s +fillText_s +fillBoldText_s +drawTextContent_s +fillRect_s +strokeRect_s +drawLine_s +drawArrow_s +fillPolygon_s +strokePolygon_s +fillCircle_s +strokeCircle_s +drawImage_s +drawImage_1_s +drawIcon_s +drawBackground_s +drawSelector_s +drawSelector_1_s +unknown_s +function_s +pass_s +statExprSplit +expression +negate_e +bool_e +idString_e +idString_1_e +idString_2_e +evFlag_e +evalString_e + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 275, 2191, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 3, 2, 3, 2, 5, 2, 297, 10, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 2, 309, 10, 2, 3, 2, 3, 2, 6, 2, 313, 10, 2, 13, 2, 14, 2, 314, 3, 2, 3, 2, 3, 3, 3, 3, 5, 3, 321, 10, 3, 3, 3, 3, 3, 6, 3, 325, 10, 3, 13, 3, 14, 3, 326, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 335, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 340, 10, 4, 3, 4, 3, 4, 6, 4, 344, 10, 4, 13, 4, 14, 4, 345, 3, 5, 3, 5, 5, 5, 350, 10, 5, 3, 5, 3, 5, 6, 5, 354, 10, 5, 13, 5, 14, 5, 355, 3, 6, 3, 6, 3, 6, 5, 6, 361, 10, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 370, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 375, 10, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 381, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 390, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 398, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 404, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 412, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 418, 10, 9, 3, 9, 3, 9, 6, 9, 422, 10, 9, 13, 9, 14, 9, 423, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 432, 10, 10, 3, 10, 5, 10, 435, 10, 10, 3, 10, 3, 10, 6, 10, 439, 10, 10, 13, 10, 14, 10, 440, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 5, 12, 449, 10, 12, 3, 12, 3, 12, 6, 12, 453, 10, 12, 13, 12, 14, 12, 454, 3, 12, 3, 12, 3, 13, 3, 13, 5, 13, 461, 10, 13, 3, 13, 3, 13, 6, 13, 465, 10, 13, 13, 13, 14, 13, 466, 3, 13, 3, 13, 3, 14, 3, 14, 5, 14, 473, 10, 14, 3, 14, 3, 14, 6, 14, 477, 10, 14, 13, 14, 14, 14, 478, 3, 14, 3, 14, 3, 15, 3, 15, 5, 15, 485, 10, 15, 3, 15, 3, 15, 6, 15, 489, 10, 15, 13, 15, 14, 15, 490, 3, 15, 3, 15, 3, 16, 3, 16, 5, 16, 497, 10, 16, 3, 16, 3, 16, 6, 16, 501, 10, 16, 13, 16, 14, 16, 502, 3, 16, 3, 16, 3, 17, 3, 17, 5, 17, 509, 10, 17, 3, 17, 3, 17, 3, 17, 5, 17, 514, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 526, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 5, 18, 534, 10, 18, 3, 18, 3, 18, 6, 18, 538, 10, 18, 13, 18, 14, 18, 539, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 661, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 5, 21, 670, 10, 21, 3, 21, 3, 21, 5, 21, 674, 10, 21, 3, 21, 3, 21, 5, 21, 678, 10, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 5, 23, 691, 10, 23, 3, 23, 3, 23, 5, 23, 695, 10, 23, 3, 23, 3, 23, 5, 23, 699, 10, 23, 3, 23, 3, 23, 3, 23, 5, 23, 704, 10, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 5, 24, 716, 10, 24, 3, 24, 5, 24, 719, 10, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 5, 25, 729, 10, 25, 3, 25, 3, 25, 5, 25, 733, 10, 25, 3, 25, 5, 25, 736, 10, 25, 3, 25, 3, 25, 5, 25, 740, 10, 25, 3, 25, 3, 25, 3, 25, 5, 25, 745, 10, 25, 3, 25, 3, 25, 3, 25, 5, 25, 750, 10, 25, 3, 25, 3, 25, 5, 25, 754, 10, 25, 3, 25, 3, 25, 3, 25, 3, 25, 5, 25, 760, 10, 25, 3, 25, 3, 25, 5, 25, 764, 10, 25, 3, 25, 3, 25, 5, 25, 768, 10, 25, 3, 25, 3, 25, 5, 25, 772, 10, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 781, 10, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 806, 10, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 5, 33, 835, 10, 33, 3, 33, 3, 33, 3, 33, 5, 33, 840, 10, 33, 3, 33, 3, 33, 5, 33, 844, 10, 33, 3, 33, 3, 33, 5, 33, 848, 10, 33, 3, 33, 3, 33, 5, 33, 852, 10, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 5, 34, 859, 10, 34, 3, 34, 3, 34, 3, 34, 5, 34, 864, 10, 34, 3, 34, 3, 34, 5, 34, 868, 10, 34, 3, 34, 3, 34, 5, 34, 872, 10, 34, 3, 34, 3, 34, 5, 34, 876, 10, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 894, 10, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 905, 10, 37, 3, 37, 3, 37, 5, 37, 909, 10, 37, 3, 37, 3, 37, 5, 37, 913, 10, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 927, 10, 40, 3, 40, 3, 40, 3, 40, 5, 40, 932, 10, 40, 3, 40, 3, 40, 5, 40, 936, 10, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 5, 41, 943, 10, 41, 3, 41, 3, 41, 3, 41, 5, 41, 948, 10, 41, 3, 41, 3, 41, 5, 41, 952, 10, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 5, 42, 959, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 964, 10, 42, 3, 42, 3, 42, 5, 42, 968, 10, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 976, 10, 43, 3, 43, 3, 43, 3, 43, 5, 43, 981, 10, 43, 3, 43, 3, 43, 5, 43, 985, 10, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 5, 44, 993, 10, 44, 3, 44, 3, 44, 3, 44, 5, 44, 998, 10, 44, 3, 44, 3, 44, 5, 44, 1002, 10, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 5, 45, 1012, 10, 45, 3, 45, 3, 45, 3, 45, 5, 45, 1017, 10, 45, 3, 45, 3, 45, 5, 45, 1021, 10, 45, 3, 45, 3, 45, 3, 46, 3, 46, 5, 46, 1027, 10, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 5, 55, 1065, 10, 55, 3, 55, 3, 55, 3, 55, 5, 55, 1070, 10, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 5, 56, 1077, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1082, 10, 56, 3, 56, 3, 56, 5, 56, 1086, 10, 56, 3, 56, 3, 56, 5, 56, 1090, 10, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 5, 57, 1099, 10, 57, 3, 57, 3, 57, 3, 57, 5, 57, 1104, 10, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 5, 58, 1114, 10, 58, 3, 58, 3, 58, 5, 58, 1118, 10, 58, 3, 58, 3, 58, 3, 58, 5, 58, 1123, 10, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 1129, 10, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 5, 65, 1167, 10, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1182, 10, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 5, 68, 1192, 10, 68, 3, 68, 3, 68, 3, 68, 5, 68, 1197, 10, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 5, 69, 1204, 10, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1209, 10, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 1220, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1241, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1250, 10, 71, 3, 71, 3, 71, 5, 71, 1254, 10, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1259, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1268, 10, 71, 3, 71, 3, 71, 5, 71, 1272, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1284, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 5, 76, 1330, 10, 76, 3, 76, 3, 76, 5, 76, 1334, 10, 76, 3, 76, 5, 76, 1337, 10, 76, 3, 76, 3, 76, 5, 76, 1341, 10, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1354, 10, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 5, 78, 1363, 10, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1376, 10, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 5, 81, 1391, 10, 81, 3, 81, 3, 81, 3, 81, 5, 81, 1396, 10, 81, 3, 81, 3, 81, 5, 81, 1400, 10, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 5, 81, 1407, 10, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 5, 82, 1415, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1420, 10, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 5, 83, 1428, 10, 83, 3, 83, 3, 83, 3, 83, 5, 83, 1433, 10, 83, 3, 83, 3, 83, 5, 83, 1437, 10, 83, 3, 83, 3, 83, 3, 83, 5, 83, 1442, 10, 83, 3, 83, 3, 83, 5, 83, 1446, 10, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 5, 84, 1457, 10, 84, 3, 84, 3, 84, 3, 84, 5, 84, 1462, 10, 84, 3, 84, 3, 84, 5, 84, 1466, 10, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 1496, 10, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 5, 92, 1507, 10, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 5, 93, 1516, 10, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 5, 94, 1525, 10, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 5, 98, 1546, 10, 98, 3, 98, 3, 98, 6, 98, 1550, 10, 98, 13, 98, 14, 98, 1551, 3, 98, 3, 98, 3, 98, 5, 98, 1557, 10, 98, 3, 98, 3, 98, 6, 98, 1561, 10, 98, 13, 98, 14, 98, 1562, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1572, 10, 99, 3, 99, 3, 99, 6, 99, 1576, 10, 99, 13, 99, 14, 99, 1577, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 5, 100, 1587, 10, 100, 3, 100, 3, 100, 6, 100, 1591, 10, 100, 13, 100, 14, 100, 1592, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 5, 101, 1604, 10, 101, 3, 101, 3, 101, 6, 101, 1608, 10, 101, 13, 101, 14, 101, 1609, 3, 102, 3, 102, 3, 102, 5, 102, 1615, 10, 102, 3, 102, 5, 102, 1618, 10, 102, 3, 102, 3, 102, 5, 102, 1622, 10, 102, 3, 102, 3, 102, 5, 102, 1626, 10, 102, 3, 102, 5, 102, 1629, 10, 102, 3, 102, 3, 102, 6, 102, 1633, 10, 102, 13, 102, 14, 102, 1634, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1644, 10, 103, 3, 103, 3, 103, 5, 103, 1648, 10, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1653, 10, 103, 3, 103, 5, 103, 1656, 10, 103, 3, 103, 3, 103, 6, 103, 1660, 10, 103, 13, 103, 14, 103, 1661, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1668, 10, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1676, 10, 104, 3, 104, 3, 104, 6, 104, 1680, 10, 104, 13, 104, 14, 104, 1681, 3, 104, 3, 104, 3, 104, 5, 104, 1687, 10, 104, 3, 104, 3, 104, 6, 104, 1691, 10, 104, 13, 104, 14, 104, 1692, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 5, 105, 1704, 10, 105, 3, 105, 3, 105, 6, 105, 1708, 10, 105, 13, 105, 14, 105, 1709, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 5, 106, 1718, 10, 106, 3, 106, 3, 106, 6, 106, 1722, 10, 106, 13, 106, 14, 106, 1723, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 110, 3, 110, 3, 111, 3, 111, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 5, 115, 1757, 10, 115, 3, 115, 3, 115, 6, 115, 1761, 10, 115, 13, 115, 14, 115, 1762, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 5, 118, 1786, 10, 118, 3, 118, 3, 118, 5, 118, 1790, 10, 118, 3, 118, 3, 118, 3, 118, 5, 118, 1795, 10, 118, 3, 118, 3, 118, 5, 118, 1799, 10, 118, 3, 118, 3, 118, 5, 118, 1803, 10, 118, 3, 118, 3, 118, 5, 118, 1807, 10, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 5, 118, 1815, 10, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 1826, 10, 119, 3, 119, 3, 119, 3, 119, 5, 119, 1831, 10, 119, 3, 119, 3, 119, 5, 119, 1835, 10, 119, 3, 119, 5, 119, 1838, 10, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 5, 120, 1850, 10, 120, 3, 120, 3, 120, 3, 120, 5, 120, 1855, 10, 120, 3, 120, 5, 120, 1858, 10, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 5, 121, 1866, 10, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 5, 121, 1875, 10, 121, 3, 121, 3, 121, 5, 121, 1879, 10, 121, 3, 121, 3, 121, 5, 121, 1883, 10, 121, 3, 121, 3, 121, 3, 121, 3, 121, 5, 121, 1889, 10, 121, 3, 121, 3, 121, 5, 121, 1893, 10, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 1911, 10, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 5, 123, 1928, 10, 123, 3, 123, 3, 123, 3, 123, 5, 123, 1933, 10, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 5, 124, 1950, 10, 124, 3, 124, 3, 124, 3, 124, 5, 124, 1955, 10, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 1972, 10, 125, 3, 125, 3, 125, 3, 125, 5, 125, 1977, 10, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 5, 126, 1989, 10, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 5, 127, 2002, 10, 127, 3, 127, 3, 127, 3, 127, 5, 127, 2007, 10, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 5, 128, 2021, 10, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 5, 129, 2036, 10, 129, 3, 129, 3, 129, 3, 129, 5, 129, 2041, 10, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 5, 130, 2054, 10, 130, 3, 130, 3, 130, 5, 130, 2058, 10, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 5, 131, 2074, 10, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 5, 132, 2097, 10, 132, 3, 132, 3, 132, 5, 132, 2101, 10, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 5, 136, 2137, 10, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 5, 137, 2145, 10, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 2163, 10, 140, 3, 140, 3, 140, 3, 140, 7, 140, 2168, 10, 140, 12, 140, 14, 140, 2171, 11, 140, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 2, 3, 278, 148, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 2, 2, 2, 2382, 2, 294, 3, 2, 2, 2, 4, 318, 3, 2, 2, 2, 6, 330, 3, 2, 2, 2, 8, 347, 3, 2, 2, 2, 10, 360, 3, 2, 2, 2, 12, 362, 3, 2, 2, 2, 14, 364, 3, 2, 2, 2, 16, 382, 3, 2, 2, 2, 18, 427, 3, 2, 2, 2, 20, 442, 3, 2, 2, 2, 22, 446, 3, 2, 2, 2, 24, 458, 3, 2, 2, 2, 26, 470, 3, 2, 2, 2, 28, 482, 3, 2, 2, 2, 30, 494, 3, 2, 2, 2, 32, 506, 3, 2, 2, 2, 34, 531, 3, 2, 2, 2, 36, 660, 3, 2, 2, 2, 38, 662, 3, 2, 2, 2, 40, 667, 3, 2, 2, 2, 42, 683, 3, 2, 2, 2, 44, 688, 3, 2, 2, 2, 46, 708, 3, 2, 2, 2, 48, 723, 3, 2, 2, 2, 50, 775, 3, 2, 2, 2, 52, 784, 3, 2, 2, 2, 54, 792, 3, 2, 2, 2, 56, 800, 3, 2, 2, 2, 58, 811, 3, 2, 2, 2, 60, 818, 3, 2, 2, 2, 62, 825, 3, 2, 2, 2, 64, 831, 3, 2, 2, 2, 66, 855, 3, 2, 2, 2, 68, 879, 3, 2, 2, 2, 70, 889, 3, 2, 2, 2, 72, 897, 3, 2, 2, 2, 74, 916, 3, 2, 2, 2, 76, 919, 3, 2, 2, 2, 78, 922, 3, 2, 2, 2, 80, 939, 3, 2, 2, 2, 82, 955, 3, 2, 2, 2, 84, 971, 3, 2, 2, 2, 86, 988, 3, 2, 2, 2, 88, 1005, 3, 2, 2, 2, 90, 1024, 3, 2, 2, 2, 92, 1030, 3, 2, 2, 2, 94, 1033, 3, 2, 2, 2, 96, 1036, 3, 2, 2, 2, 98, 1041, 3, 2, 2, 2, 100, 1044, 3, 2, 2, 2, 102, 1047, 3, 2, 2, 2, 104, 1050, 3, 2, 2, 2, 106, 1057, 3, 2, 2, 2, 108, 1061, 3, 2, 2, 2, 110, 1073, 3, 2, 2, 2, 112, 1095, 3, 2, 2, 2, 114, 1111, 3, 2, 2, 2, 116, 1132, 3, 2, 2, 2, 118, 1142, 3, 2, 2, 2, 120, 1146, 3, 2, 2, 2, 122, 1150, 3, 2, 2, 2, 124, 1154, 3, 2, 2, 2, 126, 1158, 3, 2, 2, 2, 128, 1163, 3, 2, 2, 2, 130, 1170, 3, 2, 2, 2, 132, 1177, 3, 2, 2, 2, 134, 1187, 3, 2, 2, 2, 136, 1200, 3, 2, 2, 2, 138, 1213, 3, 2, 2, 2, 140, 1234, 3, 2, 2, 2, 142, 1279, 3, 2, 2, 2, 144, 1302, 3, 2, 2, 2, 146, 1311, 3, 2, 2, 2, 148, 1320, 3, 2, 2, 2, 150, 1323, 3, 2, 2, 2, 152, 1348, 3, 2, 2, 2, 154, 1359, 3, 2, 2, 2, 156, 1368, 3, 2, 2, 2, 158, 1381, 3, 2, 2, 2, 160, 1387, 3, 2, 2, 2, 162, 1411, 3, 2, 2, 2, 164, 1424, 3, 2, 2, 2, 166, 1453, 3, 2, 2, 2, 168, 1471, 3, 2, 2, 2, 170, 1477, 3, 2, 2, 2, 172, 1480, 3, 2, 2, 2, 174, 1483, 3, 2, 2, 2, 176, 1487, 3, 2, 2, 2, 178, 1491, 3, 2, 2, 2, 180, 1499, 3, 2, 2, 2, 182, 1502, 3, 2, 2, 2, 184, 1512, 3, 2, 2, 2, 186, 1521, 3, 2, 2, 2, 188, 1528, 3, 2, 2, 2, 190, 1531, 3, 2, 2, 2, 192, 1536, 3, 2, 2, 2, 194, 1541, 3, 2, 2, 2, 196, 1567, 3, 2, 2, 2, 198, 1582, 3, 2, 2, 2, 200, 1597, 3, 2, 2, 2, 202, 1611, 3, 2, 2, 2, 204, 1639, 3, 2, 2, 2, 206, 1663, 3, 2, 2, 2, 208, 1697, 3, 2, 2, 2, 210, 1714, 3, 2, 2, 2, 212, 1731, 3, 2, 2, 2, 214, 1734, 3, 2, 2, 2, 216, 1737, 3, 2, 2, 2, 218, 1739, 3, 2, 2, 2, 220, 1741, 3, 2, 2, 2, 222, 1743, 3, 2, 2, 2, 224, 1745, 3, 2, 2, 2, 226, 1750, 3, 2, 2, 2, 228, 1753, 3, 2, 2, 2, 230, 1767, 3, 2, 2, 2, 232, 1779, 3, 2, 2, 2, 234, 1782, 3, 2, 2, 2, 236, 1818, 3, 2, 2, 2, 238, 1842, 3, 2, 2, 2, 240, 1862, 3, 2, 2, 2, 242, 1898, 3, 2, 2, 2, 244, 1915, 3, 2, 2, 2, 246, 1936, 3, 2, 2, 2, 248, 1958, 3, 2, 2, 2, 250, 1980, 3, 2, 2, 2, 252, 1993, 3, 2, 2, 2, 254, 2010, 3, 2, 2, 2, 256, 2025, 3, 2, 2, 2, 258, 2044, 3, 2, 2, 2, 260, 2061, 3, 2, 2, 2, 262, 2086, 3, 2, 2, 2, 264, 2104, 3, 2, 2, 2, 266, 2118, 3, 2, 2, 2, 268, 2131, 3, 2, 2, 2, 270, 2134, 3, 2, 2, 2, 272, 2140, 3, 2, 2, 2, 274, 2152, 3, 2, 2, 2, 276, 2154, 3, 2, 2, 2, 278, 2162, 3, 2, 2, 2, 280, 2172, 3, 2, 2, 2, 282, 2175, 3, 2, 2, 2, 284, 2177, 3, 2, 2, 2, 286, 2179, 3, 2, 2, 2, 288, 2183, 3, 2, 2, 2, 290, 2185, 3, 2, 2, 2, 292, 2188, 3, 2, 2, 2, 294, 296, 7, 3, 2, 2, 295, 297, 7, 268, 2, 2, 296, 295, 3, 2, 2, 2, 296, 297, 3, 2, 2, 2, 297, 298, 3, 2, 2, 2, 298, 299, 7, 272, 2, 2, 299, 300, 7, 4, 2, 2, 300, 301, 7, 257, 2, 2, 301, 302, 7, 5, 2, 2, 302, 303, 7, 257, 2, 2, 303, 304, 7, 6, 2, 2, 304, 305, 7, 247, 2, 2, 305, 306, 7, 7, 2, 2, 306, 308, 7, 257, 2, 2, 307, 309, 7, 268, 2, 2, 308, 307, 3, 2, 2, 2, 308, 309, 3, 2, 2, 2, 309, 310, 3, 2, 2, 2, 310, 312, 7, 272, 2, 2, 311, 313, 5, 36, 19, 2, 312, 311, 3, 2, 2, 2, 313, 314, 3, 2, 2, 2, 314, 312, 3, 2, 2, 2, 314, 315, 3, 2, 2, 2, 315, 316, 3, 2, 2, 2, 316, 317, 7, 271, 2, 2, 317, 3, 3, 2, 2, 2, 318, 320, 7, 8, 2, 2, 319, 321, 7, 268, 2, 2, 320, 319, 3, 2, 2, 2, 320, 321, 3, 2, 2, 2, 321, 322, 3, 2, 2, 2, 322, 324, 7, 272, 2, 2, 323, 325, 5, 6, 4, 2, 324, 323, 3, 2, 2, 2, 325, 326, 3, 2, 2, 2, 326, 324, 3, 2, 2, 2, 326, 327, 3, 2, 2, 2, 327, 328, 3, 2, 2, 2, 328, 329, 7, 271, 2, 2, 329, 5, 3, 2, 2, 2, 330, 331, 7, 9, 2, 2, 331, 332, 5, 278, 140, 2, 332, 334, 7, 10, 2, 2, 333, 335, 7, 267, 2, 2, 334, 333, 3, 2, 2, 2, 334, 335, 3, 2, 2, 2, 335, 336, 3, 2, 2, 2, 336, 337, 7, 11, 2, 2, 337, 339, 7, 257, 2, 2, 338, 340, 7, 268, 2, 2, 339, 338, 3, 2, 2, 2, 339, 340, 3, 2, 2, 2, 340, 341, 3, 2, 2, 2, 341, 343, 7, 272, 2, 2, 342, 344, 5, 36, 19, 2, 343, 342, 3, 2, 2, 2, 344, 345, 3, 2, 2, 2, 345, 343, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 7, 3, 2, 2, 2, 347, 349, 7, 12, 2, 2, 348, 350, 7, 268, 2, 2, 349, 348, 3, 2, 2, 2, 349, 350, 3, 2, 2, 2, 350, 351, 3, 2, 2, 2, 351, 353, 7, 272, 2, 2, 352, 354, 5, 10, 6, 2, 353, 352, 3, 2, 2, 2, 354, 355, 3, 2, 2, 2, 355, 353, 3, 2, 2, 2, 355, 356, 3, 2, 2, 2, 356, 9, 3, 2, 2, 2, 357, 361, 5, 16, 9, 2, 358, 361, 5, 14, 8, 2, 359, 361, 5, 12, 7, 2, 360, 357, 3, 2, 2, 2, 360, 358, 3, 2, 2, 2, 360, 359, 3, 2, 2, 2, 361, 11, 3, 2, 2, 2, 362, 363, 7, 272, 2, 2, 363, 13, 3, 2, 2, 2, 364, 365, 7, 13, 2, 2, 365, 366, 7, 264, 2, 2, 366, 367, 7, 14, 2, 2, 367, 369, 7, 267, 2, 2, 368, 370, 7, 268, 2, 2, 369, 368, 3, 2, 2, 2, 369, 370, 3, 2, 2, 2, 370, 371, 3, 2, 2, 2, 371, 372, 7, 15, 2, 2, 372, 374, 7, 257, 2, 2, 373, 375, 7, 268, 2, 2, 374, 373, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 376, 3, 2, 2, 2, 376, 377, 7, 16, 2, 2, 377, 378, 7, 267, 2, 2, 378, 380, 7, 17, 2, 2, 379, 381, 7, 267, 2, 2, 380, 379, 3, 2, 2, 2, 380, 381, 3, 2, 2, 2, 381, 15, 3, 2, 2, 2, 382, 383, 7, 13, 2, 2, 383, 384, 7, 264, 2, 2, 384, 385, 7, 18, 2, 2, 385, 386, 7, 267, 2, 2, 386, 387, 7, 19, 2, 2, 387, 389, 7, 264, 2, 2, 388, 390, 7, 268, 2, 2, 389, 388, 3, 2, 2, 2, 389, 390, 3, 2, 2, 2, 390, 391, 3, 2, 2, 2, 391, 392, 7, 272, 2, 2, 392, 393, 7, 14, 2, 2, 393, 394, 7, 267, 2, 2, 394, 395, 7, 20, 2, 2, 395, 397, 7, 257, 2, 2, 396, 398, 7, 268, 2, 2, 397, 396, 3, 2, 2, 2, 397, 398, 3, 2, 2, 2, 398, 399, 3, 2, 2, 2, 399, 400, 7, 272, 2, 2, 400, 401, 7, 15, 2, 2, 401, 403, 7, 257, 2, 2, 402, 404, 7, 268, 2, 2, 403, 402, 3, 2, 2, 2, 403, 404, 3, 2, 2, 2, 404, 405, 3, 2, 2, 2, 405, 406, 7, 272, 2, 2, 406, 407, 7, 21, 2, 2, 407, 408, 7, 244, 2, 2, 408, 409, 7, 22, 2, 2, 409, 411, 7, 267, 2, 2, 410, 412, 7, 268, 2, 2, 411, 410, 3, 2, 2, 2, 411, 412, 3, 2, 2, 2, 412, 413, 3, 2, 2, 2, 413, 414, 7, 272, 2, 2, 414, 415, 7, 23, 2, 2, 415, 417, 7, 267, 2, 2, 416, 418, 7, 268, 2, 2, 417, 416, 3, 2, 2, 2, 417, 418, 3, 2, 2, 2, 418, 419, 3, 2, 2, 2, 419, 421, 7, 272, 2, 2, 420, 422, 5, 18, 10, 2, 421, 420, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 421, 3, 2, 2, 2, 423, 424, 3, 2, 2, 2, 424, 425, 3, 2, 2, 2, 425, 426, 7, 271, 2, 2, 426, 17, 3, 2, 2, 2, 427, 428, 7, 24, 2, 2, 428, 429, 7, 267, 2, 2, 429, 431, 7, 22, 2, 2, 430, 432, 7, 267, 2, 2, 431, 430, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 434, 3, 2, 2, 2, 433, 435, 7, 268, 2, 2, 434, 433, 3, 2, 2, 2, 434, 435, 3, 2, 2, 2, 435, 436, 3, 2, 2, 2, 436, 438, 7, 272, 2, 2, 437, 439, 5, 20, 11, 2, 438, 437, 3, 2, 2, 2, 439, 440, 3, 2, 2, 2, 440, 438, 3, 2, 2, 2, 440, 441, 3, 2, 2, 2, 441, 19, 3, 2, 2, 2, 442, 443, 5, 284, 143, 2, 443, 444, 7, 25, 2, 2, 444, 445, 5, 278, 140, 2, 445, 21, 3, 2, 2, 2, 446, 448, 7, 26, 2, 2, 447, 449, 7, 268, 2, 2, 448, 447, 3, 2, 2, 2, 448, 449, 3, 2, 2, 2, 449, 450, 3, 2, 2, 2, 450, 452, 7, 272, 2, 2, 451, 453, 5, 36, 19, 2, 452, 451, 3, 2, 2, 2, 453, 454, 3, 2, 2, 2, 454, 452, 3, 2, 2, 2, 454, 455, 3, 2, 2, 2, 455, 456, 3, 2, 2, 2, 456, 457, 7, 271, 2, 2, 457, 23, 3, 2, 2, 2, 458, 460, 7, 27, 2, 2, 459, 461, 7, 268, 2, 2, 460, 459, 3, 2, 2, 2, 460, 461, 3, 2, 2, 2, 461, 462, 3, 2, 2, 2, 462, 464, 7, 272, 2, 2, 463, 465, 5, 36, 19, 2, 464, 463, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 464, 3, 2, 2, 2, 466, 467, 3, 2, 2, 2, 467, 468, 3, 2, 2, 2, 468, 469, 7, 271, 2, 2, 469, 25, 3, 2, 2, 2, 470, 472, 7, 28, 2, 2, 471, 473, 7, 268, 2, 2, 472, 471, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 474, 3, 2, 2, 2, 474, 476, 7, 272, 2, 2, 475, 477, 5, 36, 19, 2, 476, 475, 3, 2, 2, 2, 477, 478, 3, 2, 2, 2, 478, 476, 3, 2, 2, 2, 478, 479, 3, 2, 2, 2, 479, 480, 3, 2, 2, 2, 480, 481, 7, 271, 2, 2, 481, 27, 3, 2, 2, 2, 482, 484, 7, 29, 2, 2, 483, 485, 7, 268, 2, 2, 484, 483, 3, 2, 2, 2, 484, 485, 3, 2, 2, 2, 485, 486, 3, 2, 2, 2, 486, 488, 7, 272, 2, 2, 487, 489, 5, 36, 19, 2, 488, 487, 3, 2, 2, 2, 489, 490, 3, 2, 2, 2, 490, 488, 3, 2, 2, 2, 490, 491, 3, 2, 2, 2, 491, 492, 3, 2, 2, 2, 492, 493, 7, 271, 2, 2, 493, 29, 3, 2, 2, 2, 494, 496, 7, 30, 2, 2, 495, 497, 7, 268, 2, 2, 496, 495, 3, 2, 2, 2, 496, 497, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 500, 7, 272, 2, 2, 499, 501, 5, 36, 19, 2, 500, 499, 3, 2, 2, 2, 501, 502, 3, 2, 2, 2, 502, 500, 3, 2, 2, 2, 502, 503, 3, 2, 2, 2, 503, 504, 3, 2, 2, 2, 504, 505, 7, 271, 2, 2, 505, 31, 3, 2, 2, 2, 506, 508, 7, 31, 2, 2, 507, 509, 7, 268, 2, 2, 508, 507, 3, 2, 2, 2, 508, 509, 3, 2, 2, 2, 509, 510, 3, 2, 2, 2, 510, 511, 7, 272, 2, 2, 511, 513, 7, 239, 2, 2, 512, 514, 7, 264, 2, 2, 513, 512, 3, 2, 2, 2, 513, 514, 3, 2, 2, 2, 514, 515, 3, 2, 2, 2, 515, 516, 7, 240, 2, 2, 516, 517, 7, 32, 2, 2, 517, 518, 7, 260, 2, 2, 518, 519, 7, 33, 2, 2, 519, 520, 7, 34, 2, 2, 520, 521, 7, 260, 2, 2, 521, 522, 7, 35, 2, 2, 522, 523, 7, 262, 2, 2, 523, 525, 7, 36, 2, 2, 524, 526, 7, 258, 2, 2, 525, 524, 3, 2, 2, 2, 525, 526, 3, 2, 2, 2, 526, 527, 3, 2, 2, 2, 527, 528, 7, 37, 2, 2, 528, 529, 7, 257, 2, 2, 529, 530, 7, 271, 2, 2, 530, 33, 3, 2, 2, 2, 531, 533, 7, 38, 2, 2, 532, 534, 7, 268, 2, 2, 533, 532, 3, 2, 2, 2, 533, 534, 3, 2, 2, 2, 534, 535, 3, 2, 2, 2, 535, 537, 7, 272, 2, 2, 536, 538, 5, 36, 19, 2, 537, 536, 3, 2, 2, 2, 538, 539, 3, 2, 2, 2, 539, 537, 3, 2, 2, 2, 539, 540, 3, 2, 2, 2, 540, 541, 3, 2, 2, 2, 541, 542, 7, 271, 2, 2, 542, 35, 3, 2, 2, 2, 543, 661, 5, 38, 20, 2, 544, 661, 5, 40, 21, 2, 545, 661, 5, 42, 22, 2, 546, 661, 5, 44, 23, 2, 547, 661, 5, 46, 24, 2, 548, 661, 5, 48, 25, 2, 549, 661, 5, 50, 26, 2, 550, 661, 5, 52, 27, 2, 551, 661, 5, 54, 28, 2, 552, 661, 5, 56, 29, 2, 553, 661, 5, 58, 30, 2, 554, 661, 5, 60, 31, 2, 555, 661, 5, 62, 32, 2, 556, 661, 5, 64, 33, 2, 557, 661, 5, 66, 34, 2, 558, 661, 5, 68, 35, 2, 559, 661, 5, 70, 36, 2, 560, 661, 5, 72, 37, 2, 561, 661, 5, 74, 38, 2, 562, 661, 5, 76, 39, 2, 563, 661, 5, 78, 40, 2, 564, 661, 5, 80, 41, 2, 565, 661, 5, 82, 42, 2, 566, 661, 5, 84, 43, 2, 567, 661, 5, 86, 44, 2, 568, 661, 5, 88, 45, 2, 569, 661, 5, 90, 46, 2, 570, 661, 5, 92, 47, 2, 571, 661, 5, 94, 48, 2, 572, 661, 5, 96, 49, 2, 573, 661, 5, 98, 50, 2, 574, 661, 5, 100, 51, 2, 575, 661, 5, 102, 52, 2, 576, 661, 5, 104, 53, 2, 577, 661, 5, 216, 109, 2, 578, 661, 5, 218, 110, 2, 579, 661, 5, 106, 54, 2, 580, 661, 5, 108, 55, 2, 581, 661, 5, 110, 56, 2, 582, 661, 5, 112, 57, 2, 583, 661, 5, 114, 58, 2, 584, 661, 5, 116, 59, 2, 585, 661, 5, 118, 60, 2, 586, 661, 5, 134, 68, 2, 587, 661, 5, 136, 69, 2, 588, 661, 5, 120, 61, 2, 589, 661, 5, 122, 62, 2, 590, 661, 5, 124, 63, 2, 591, 661, 5, 126, 64, 2, 592, 661, 5, 128, 65, 2, 593, 661, 5, 132, 67, 2, 594, 661, 5, 130, 66, 2, 595, 661, 5, 138, 70, 2, 596, 661, 5, 140, 71, 2, 597, 661, 5, 144, 73, 2, 598, 661, 5, 142, 72, 2, 599, 661, 5, 150, 76, 2, 600, 661, 5, 146, 74, 2, 601, 661, 5, 148, 75, 2, 602, 661, 5, 152, 77, 2, 603, 661, 5, 154, 78, 2, 604, 661, 5, 156, 79, 2, 605, 661, 5, 158, 80, 2, 606, 661, 5, 160, 81, 2, 607, 661, 5, 162, 82, 2, 608, 661, 5, 164, 83, 2, 609, 661, 5, 166, 84, 2, 610, 661, 5, 168, 85, 2, 611, 661, 5, 170, 86, 2, 612, 661, 5, 172, 87, 2, 613, 661, 5, 174, 88, 2, 614, 661, 5, 176, 89, 2, 615, 661, 5, 178, 90, 2, 616, 661, 5, 180, 91, 2, 617, 661, 5, 182, 92, 2, 618, 661, 5, 184, 93, 2, 619, 661, 5, 186, 94, 2, 620, 661, 5, 188, 95, 2, 621, 661, 5, 194, 98, 2, 622, 661, 5, 196, 99, 2, 623, 661, 5, 198, 100, 2, 624, 661, 5, 208, 105, 2, 625, 661, 5, 210, 106, 2, 626, 661, 5, 212, 107, 2, 627, 661, 5, 214, 108, 2, 628, 661, 5, 190, 96, 2, 629, 661, 5, 192, 97, 2, 630, 661, 5, 202, 102, 2, 631, 661, 5, 206, 104, 2, 632, 661, 5, 220, 111, 2, 633, 661, 5, 222, 112, 2, 634, 661, 5, 224, 113, 2, 635, 661, 5, 226, 114, 2, 636, 661, 5, 228, 115, 2, 637, 661, 5, 230, 116, 2, 638, 661, 5, 232, 117, 2, 639, 661, 5, 234, 118, 2, 640, 661, 5, 236, 119, 2, 641, 661, 5, 238, 120, 2, 642, 661, 5, 240, 121, 2, 643, 661, 5, 242, 122, 2, 644, 661, 5, 244, 123, 2, 645, 661, 5, 246, 124, 2, 646, 661, 5, 248, 125, 2, 647, 661, 5, 250, 126, 2, 648, 661, 5, 252, 127, 2, 649, 661, 5, 254, 128, 2, 650, 661, 5, 256, 129, 2, 651, 661, 5, 258, 130, 2, 652, 661, 5, 260, 131, 2, 653, 661, 5, 262, 132, 2, 654, 661, 5, 264, 133, 2, 655, 661, 5, 266, 134, 2, 656, 661, 5, 268, 135, 2, 657, 661, 5, 270, 136, 2, 658, 661, 5, 272, 137, 2, 659, 661, 5, 274, 138, 2, 660, 543, 3, 2, 2, 2, 660, 544, 3, 2, 2, 2, 660, 545, 3, 2, 2, 2, 660, 546, 3, 2, 2, 2, 660, 547, 3, 2, 2, 2, 660, 548, 3, 2, 2, 2, 660, 549, 3, 2, 2, 2, 660, 550, 3, 2, 2, 2, 660, 551, 3, 2, 2, 2, 660, 552, 3, 2, 2, 2, 660, 553, 3, 2, 2, 2, 660, 554, 3, 2, 2, 2, 660, 555, 3, 2, 2, 2, 660, 556, 3, 2, 2, 2, 660, 557, 3, 2, 2, 2, 660, 558, 3, 2, 2, 2, 660, 559, 3, 2, 2, 2, 660, 560, 3, 2, 2, 2, 660, 561, 3, 2, 2, 2, 660, 562, 3, 2, 2, 2, 660, 563, 3, 2, 2, 2, 660, 564, 3, 2, 2, 2, 660, 565, 3, 2, 2, 2, 660, 566, 3, 2, 2, 2, 660, 567, 3, 2, 2, 2, 660, 568, 3, 2, 2, 2, 660, 569, 3, 2, 2, 2, 660, 570, 3, 2, 2, 2, 660, 571, 3, 2, 2, 2, 660, 572, 3, 2, 2, 2, 660, 573, 3, 2, 2, 2, 660, 574, 3, 2, 2, 2, 660, 575, 3, 2, 2, 2, 660, 576, 3, 2, 2, 2, 660, 577, 3, 2, 2, 2, 660, 578, 3, 2, 2, 2, 660, 579, 3, 2, 2, 2, 660, 580, 3, 2, 2, 2, 660, 581, 3, 2, 2, 2, 660, 582, 3, 2, 2, 2, 660, 583, 3, 2, 2, 2, 660, 584, 3, 2, 2, 2, 660, 585, 3, 2, 2, 2, 660, 586, 3, 2, 2, 2, 660, 587, 3, 2, 2, 2, 660, 588, 3, 2, 2, 2, 660, 589, 3, 2, 2, 2, 660, 590, 3, 2, 2, 2, 660, 591, 3, 2, 2, 2, 660, 592, 3, 2, 2, 2, 660, 593, 3, 2, 2, 2, 660, 594, 3, 2, 2, 2, 660, 595, 3, 2, 2, 2, 660, 596, 3, 2, 2, 2, 660, 597, 3, 2, 2, 2, 660, 598, 3, 2, 2, 2, 660, 599, 3, 2, 2, 2, 660, 600, 3, 2, 2, 2, 660, 601, 3, 2, 2, 2, 660, 602, 3, 2, 2, 2, 660, 603, 3, 2, 2, 2, 660, 604, 3, 2, 2, 2, 660, 605, 3, 2, 2, 2, 660, 606, 3, 2, 2, 2, 660, 607, 3, 2, 2, 2, 660, 608, 3, 2, 2, 2, 660, 609, 3, 2, 2, 2, 660, 610, 3, 2, 2, 2, 660, 611, 3, 2, 2, 2, 660, 612, 3, 2, 2, 2, 660, 613, 3, 2, 2, 2, 660, 614, 3, 2, 2, 2, 660, 615, 3, 2, 2, 2, 660, 616, 3, 2, 2, 2, 660, 617, 3, 2, 2, 2, 660, 618, 3, 2, 2, 2, 660, 619, 3, 2, 2, 2, 660, 620, 3, 2, 2, 2, 660, 621, 3, 2, 2, 2, 660, 622, 3, 2, 2, 2, 660, 623, 3, 2, 2, 2, 660, 624, 3, 2, 2, 2, 660, 625, 3, 2, 2, 2, 660, 626, 3, 2, 2, 2, 660, 627, 3, 2, 2, 2, 660, 628, 3, 2, 2, 2, 660, 629, 3, 2, 2, 2, 660, 630, 3, 2, 2, 2, 660, 631, 3, 2, 2, 2, 660, 632, 3, 2, 2, 2, 660, 633, 3, 2, 2, 2, 660, 634, 3, 2, 2, 2, 660, 635, 3, 2, 2, 2, 660, 636, 3, 2, 2, 2, 660, 637, 3, 2, 2, 2, 660, 638, 3, 2, 2, 2, 660, 639, 3, 2, 2, 2, 660, 640, 3, 2, 2, 2, 660, 641, 3, 2, 2, 2, 660, 642, 3, 2, 2, 2, 660, 643, 3, 2, 2, 2, 660, 644, 3, 2, 2, 2, 660, 645, 3, 2, 2, 2, 660, 646, 3, 2, 2, 2, 660, 647, 3, 2, 2, 2, 660, 648, 3, 2, 2, 2, 660, 649, 3, 2, 2, 2, 660, 650, 3, 2, 2, 2, 660, 651, 3, 2, 2, 2, 660, 652, 3, 2, 2, 2, 660, 653, 3, 2, 2, 2, 660, 654, 3, 2, 2, 2, 660, 655, 3, 2, 2, 2, 660, 656, 3, 2, 2, 2, 660, 657, 3, 2, 2, 2, 660, 658, 3, 2, 2, 2, 660, 659, 3, 2, 2, 2, 661, 37, 3, 2, 2, 2, 662, 663, 7, 39, 2, 2, 663, 664, 7, 40, 2, 2, 664, 665, 7, 267, 2, 2, 665, 666, 7, 272, 2, 2, 666, 39, 3, 2, 2, 2, 667, 669, 7, 18, 2, 2, 668, 670, 7, 267, 2, 2, 669, 668, 3, 2, 2, 2, 669, 670, 3, 2, 2, 2, 670, 671, 3, 2, 2, 2, 671, 673, 7, 41, 2, 2, 672, 674, 7, 264, 2, 2, 673, 672, 3, 2, 2, 2, 673, 674, 3, 2, 2, 2, 674, 675, 3, 2, 2, 2, 675, 677, 7, 42, 2, 2, 676, 678, 7, 267, 2, 2, 677, 676, 3, 2, 2, 2, 677, 678, 3, 2, 2, 2, 678, 679, 3, 2, 2, 2, 679, 680, 7, 40, 2, 2, 680, 681, 7, 267, 2, 2, 681, 682, 7, 272, 2, 2, 682, 41, 3, 2, 2, 2, 683, 684, 7, 43, 2, 2, 684, 685, 7, 40, 2, 2, 685, 686, 7, 267, 2, 2, 686, 687, 7, 272, 2, 2, 687, 43, 3, 2, 2, 2, 688, 690, 7, 44, 2, 2, 689, 691, 7, 267, 2, 2, 690, 689, 3, 2, 2, 2, 690, 691, 3, 2, 2, 2, 691, 692, 3, 2, 2, 2, 692, 694, 7, 41, 2, 2, 693, 695, 7, 264, 2, 2, 694, 693, 3, 2, 2, 2, 694, 695, 3, 2, 2, 2, 695, 696, 3, 2, 2, 2, 696, 698, 7, 42, 2, 2, 697, 699, 7, 267, 2, 2, 698, 697, 3, 2, 2, 2, 698, 699, 3, 2, 2, 2, 699, 700, 3, 2, 2, 2, 700, 701, 7, 45, 2, 2, 701, 703, 7, 258, 2, 2, 702, 704, 7, 268, 2, 2, 703, 702, 3, 2, 2, 2, 703, 704, 3, 2, 2, 2, 704, 705, 3, 2, 2, 2, 705, 706, 7, 267, 2, 2, 706, 707, 7, 272, 2, 2, 707, 45, 3, 2, 2, 2, 708, 709, 7, 46, 2, 2, 709, 710, 7, 45, 2, 2, 710, 711, 7, 258, 2, 2, 711, 712, 7, 47, 2, 2, 712, 713, 7, 260, 2, 2, 713, 715, 7, 48, 2, 2, 714, 716, 7, 257, 2, 2, 715, 714, 3, 2, 2, 2, 715, 716, 3, 2, 2, 2, 716, 718, 3, 2, 2, 2, 717, 719, 7, 268, 2, 2, 718, 717, 3, 2, 2, 2, 718, 719, 3, 2, 2, 2, 719, 720, 3, 2, 2, 2, 720, 721, 7, 267, 2, 2, 721, 722, 7, 272, 2, 2, 722, 47, 3, 2, 2, 2, 723, 724, 7, 49, 2, 2, 724, 725, 7, 50, 2, 2, 725, 726, 7, 241, 2, 2, 726, 728, 7, 51, 2, 2, 727, 729, 7, 267, 2, 2, 728, 727, 3, 2, 2, 2, 728, 729, 3, 2, 2, 2, 729, 730, 3, 2, 2, 2, 730, 732, 7, 52, 2, 2, 731, 733, 7, 242, 2, 2, 732, 731, 3, 2, 2, 2, 732, 733, 3, 2, 2, 2, 733, 735, 3, 2, 2, 2, 734, 736, 7, 268, 2, 2, 735, 734, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 737, 3, 2, 2, 2, 737, 739, 7, 53, 2, 2, 738, 740, 7, 267, 2, 2, 739, 738, 3, 2, 2, 2, 739, 740, 3, 2, 2, 2, 740, 741, 3, 2, 2, 2, 741, 742, 7, 255, 2, 2, 742, 744, 7, 54, 2, 2, 743, 745, 7, 267, 2, 2, 744, 743, 3, 2, 2, 2, 744, 745, 3, 2, 2, 2, 745, 746, 3, 2, 2, 2, 746, 747, 7, 255, 2, 2, 747, 749, 7, 55, 2, 2, 748, 750, 7, 267, 2, 2, 749, 748, 3, 2, 2, 2, 749, 750, 3, 2, 2, 2, 750, 751, 3, 2, 2, 2, 751, 753, 7, 255, 2, 2, 752, 754, 7, 268, 2, 2, 753, 752, 3, 2, 2, 2, 753, 754, 3, 2, 2, 2, 754, 755, 3, 2, 2, 2, 755, 756, 7, 56, 2, 2, 756, 757, 7, 248, 2, 2, 757, 759, 7, 57, 2, 2, 758, 760, 7, 267, 2, 2, 759, 758, 3, 2, 2, 2, 759, 760, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 763, 7, 58, 2, 2, 762, 764, 7, 267, 2, 2, 763, 762, 3, 2, 2, 2, 763, 764, 3, 2, 2, 2, 764, 765, 3, 2, 2, 2, 765, 767, 7, 59, 2, 2, 766, 768, 7, 267, 2, 2, 767, 766, 3, 2, 2, 2, 767, 768, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 771, 7, 60, 2, 2, 770, 772, 7, 267, 2, 2, 771, 770, 3, 2, 2, 2, 771, 772, 3, 2, 2, 2, 772, 773, 3, 2, 2, 2, 773, 774, 7, 272, 2, 2, 774, 49, 3, 2, 2, 2, 775, 776, 7, 61, 2, 2, 776, 777, 7, 40, 2, 2, 777, 778, 7, 267, 2, 2, 778, 780, 7, 62, 2, 2, 779, 781, 7, 264, 2, 2, 780, 779, 3, 2, 2, 2, 780, 781, 3, 2, 2, 2, 781, 782, 3, 2, 2, 2, 782, 783, 7, 272, 2, 2, 783, 51, 3, 2, 2, 2, 784, 785, 7, 63, 2, 2, 785, 786, 7, 40, 2, 2, 786, 787, 7, 64, 2, 2, 787, 788, 5, 284, 143, 2, 788, 789, 7, 65, 2, 2, 789, 790, 5, 278, 140, 2, 790, 791, 7, 272, 2, 2, 791, 53, 3, 2, 2, 2, 792, 793, 7, 66, 2, 2, 793, 794, 7, 40, 2, 2, 794, 795, 7, 64, 2, 2, 795, 796, 5, 284, 143, 2, 796, 797, 7, 25, 2, 2, 797, 798, 5, 278, 140, 2, 798, 799, 7, 272, 2, 2, 799, 55, 3, 2, 2, 2, 800, 801, 7, 67, 2, 2, 801, 802, 7, 40, 2, 2, 802, 803, 7, 251, 2, 2, 803, 805, 7, 68, 2, 2, 804, 806, 7, 264, 2, 2, 805, 804, 3, 2, 2, 2, 805, 806, 3, 2, 2, 2, 806, 807, 3, 2, 2, 2, 807, 808, 7, 65, 2, 2, 808, 809, 7, 267, 2, 2, 809, 810, 7, 272, 2, 2, 810, 57, 3, 2, 2, 2, 811, 812, 7, 69, 2, 2, 812, 813, 7, 40, 2, 2, 813, 814, 7, 252, 2, 2, 814, 815, 7, 65, 2, 2, 815, 816, 7, 267, 2, 2, 816, 817, 7, 272, 2, 2, 817, 59, 3, 2, 2, 2, 818, 819, 7, 70, 2, 2, 819, 820, 7, 40, 2, 2, 820, 821, 7, 253, 2, 2, 821, 822, 7, 65, 2, 2, 822, 823, 7, 267, 2, 2, 823, 824, 7, 272, 2, 2, 824, 61, 3, 2, 2, 2, 825, 826, 7, 71, 2, 2, 826, 827, 7, 40, 2, 2, 827, 828, 7, 254, 2, 2, 828, 829, 7, 257, 2, 2, 829, 830, 7, 272, 2, 2, 830, 63, 3, 2, 2, 2, 831, 832, 7, 72, 2, 2, 832, 834, 7, 32, 2, 2, 833, 835, 7, 267, 2, 2, 834, 833, 3, 2, 2, 2, 834, 835, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 837, 7, 33, 2, 2, 837, 839, 7, 34, 2, 2, 838, 840, 7, 267, 2, 2, 839, 838, 3, 2, 2, 2, 839, 840, 3, 2, 2, 2, 840, 841, 3, 2, 2, 2, 841, 843, 7, 73, 2, 2, 842, 844, 7, 264, 2, 2, 843, 842, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 847, 7, 36, 2, 2, 846, 848, 7, 258, 2, 2, 847, 846, 3, 2, 2, 2, 847, 848, 3, 2, 2, 2, 848, 849, 3, 2, 2, 2, 849, 851, 7, 48, 2, 2, 850, 852, 7, 257, 2, 2, 851, 850, 3, 2, 2, 2, 851, 852, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 854, 7, 272, 2, 2, 854, 65, 3, 2, 2, 2, 855, 856, 7, 74, 2, 2, 856, 858, 7, 32, 2, 2, 857, 859, 7, 267, 2, 2, 858, 857, 3, 2, 2, 2, 858, 859, 3, 2, 2, 2, 859, 860, 3, 2, 2, 2, 860, 861, 7, 33, 2, 2, 861, 863, 7, 34, 2, 2, 862, 864, 7, 267, 2, 2, 863, 862, 3, 2, 2, 2, 863, 864, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 867, 7, 73, 2, 2, 866, 868, 7, 264, 2, 2, 867, 866, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 869, 3, 2, 2, 2, 869, 871, 7, 36, 2, 2, 870, 872, 7, 258, 2, 2, 871, 870, 3, 2, 2, 2, 871, 872, 3, 2, 2, 2, 872, 873, 3, 2, 2, 2, 873, 875, 7, 48, 2, 2, 874, 876, 7, 257, 2, 2, 875, 874, 3, 2, 2, 2, 875, 876, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 878, 7, 272, 2, 2, 878, 67, 3, 2, 2, 2, 879, 880, 7, 75, 2, 2, 880, 881, 7, 32, 2, 2, 881, 882, 7, 238, 2, 2, 882, 883, 7, 33, 2, 2, 883, 884, 7, 34, 2, 2, 884, 885, 7, 238, 2, 2, 885, 886, 7, 76, 2, 2, 886, 887, 7, 257, 2, 2, 887, 888, 7, 272, 2, 2, 888, 69, 3, 2, 2, 2, 889, 890, 7, 77, 2, 2, 890, 891, 7, 267, 2, 2, 891, 893, 7, 17, 2, 2, 892, 894, 7, 267, 2, 2, 893, 892, 3, 2, 2, 2, 893, 894, 3, 2, 2, 2, 894, 895, 3, 2, 2, 2, 895, 896, 7, 272, 2, 2, 896, 71, 3, 2, 2, 2, 897, 898, 7, 78, 2, 2, 898, 899, 7, 32, 2, 2, 899, 900, 7, 238, 2, 2, 900, 901, 7, 33, 2, 2, 901, 902, 7, 34, 2, 2, 902, 904, 7, 238, 2, 2, 903, 905, 7, 250, 2, 2, 904, 903, 3, 2, 2, 2, 904, 905, 3, 2, 2, 2, 905, 906, 3, 2, 2, 2, 906, 908, 7, 73, 2, 2, 907, 909, 7, 264, 2, 2, 908, 907, 3, 2, 2, 2, 908, 909, 3, 2, 2, 2, 909, 910, 3, 2, 2, 2, 910, 912, 7, 17, 2, 2, 911, 913, 7, 267, 2, 2, 912, 911, 3, 2, 2, 2, 912, 913, 3, 2, 2, 2, 913, 914, 3, 2, 2, 2, 914, 915, 7, 272, 2, 2, 915, 73, 3, 2, 2, 2, 916, 917, 7, 79, 2, 2, 917, 918, 7, 272, 2, 2, 918, 75, 3, 2, 2, 2, 919, 920, 7, 80, 2, 2, 920, 921, 7, 272, 2, 2, 921, 77, 3, 2, 2, 2, 922, 923, 7, 81, 2, 2, 923, 924, 7, 267, 2, 2, 924, 926, 7, 32, 2, 2, 925, 927, 7, 267, 2, 2, 926, 925, 3, 2, 2, 2, 926, 927, 3, 2, 2, 2, 927, 928, 3, 2, 2, 2, 928, 929, 7, 33, 2, 2, 929, 931, 7, 34, 2, 2, 930, 932, 7, 267, 2, 2, 931, 930, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 933, 3, 2, 2, 2, 933, 935, 7, 73, 2, 2, 934, 936, 7, 264, 2, 2, 935, 934, 3, 2, 2, 2, 935, 936, 3, 2, 2, 2, 936, 937, 3, 2, 2, 2, 937, 938, 7, 272, 2, 2, 938, 79, 3, 2, 2, 2, 939, 940, 7, 82, 2, 2, 940, 942, 7, 32, 2, 2, 941, 943, 7, 267, 2, 2, 942, 941, 3, 2, 2, 2, 942, 943, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 945, 7, 33, 2, 2, 945, 947, 7, 34, 2, 2, 946, 948, 7, 267, 2, 2, 947, 946, 3, 2, 2, 2, 947, 948, 3, 2, 2, 2, 948, 949, 3, 2, 2, 2, 949, 951, 7, 73, 2, 2, 950, 952, 7, 264, 2, 2, 951, 950, 3, 2, 2, 2, 951, 952, 3, 2, 2, 2, 952, 953, 3, 2, 2, 2, 953, 954, 7, 272, 2, 2, 954, 81, 3, 2, 2, 2, 955, 956, 7, 83, 2, 2, 956, 958, 7, 32, 2, 2, 957, 959, 7, 267, 2, 2, 958, 957, 3, 2, 2, 2, 958, 959, 3, 2, 2, 2, 959, 960, 3, 2, 2, 2, 960, 961, 7, 33, 2, 2, 961, 963, 7, 34, 2, 2, 962, 964, 7, 267, 2, 2, 963, 962, 3, 2, 2, 2, 963, 964, 3, 2, 2, 2, 964, 965, 3, 2, 2, 2, 965, 967, 7, 73, 2, 2, 966, 968, 7, 264, 2, 2, 967, 966, 3, 2, 2, 2, 967, 968, 3, 2, 2, 2, 968, 969, 3, 2, 2, 2, 969, 970, 7, 272, 2, 2, 970, 83, 3, 2, 2, 2, 971, 972, 7, 84, 2, 2, 972, 973, 7, 249, 2, 2, 973, 975, 7, 32, 2, 2, 974, 976, 7, 267, 2, 2, 975, 974, 3, 2, 2, 2, 975, 976, 3, 2, 2, 2, 976, 977, 3, 2, 2, 2, 977, 978, 7, 33, 2, 2, 978, 980, 7, 34, 2, 2, 979, 981, 7, 267, 2, 2, 980, 979, 3, 2, 2, 2, 980, 981, 3, 2, 2, 2, 981, 982, 3, 2, 2, 2, 982, 984, 7, 73, 2, 2, 983, 985, 7, 264, 2, 2, 984, 983, 3, 2, 2, 2, 984, 985, 3, 2, 2, 2, 985, 986, 3, 2, 2, 2, 986, 987, 7, 272, 2, 2, 987, 85, 3, 2, 2, 2, 988, 989, 7, 85, 2, 2, 989, 990, 7, 249, 2, 2, 990, 992, 7, 32, 2, 2, 991, 993, 7, 267, 2, 2, 992, 991, 3, 2, 2, 2, 992, 993, 3, 2, 2, 2, 993, 994, 3, 2, 2, 2, 994, 995, 7, 33, 2, 2, 995, 997, 7, 34, 2, 2, 996, 998, 7, 267, 2, 2, 997, 996, 3, 2, 2, 2, 997, 998, 3, 2, 2, 2, 998, 999, 3, 2, 2, 2, 999, 1001, 7, 73, 2, 2, 1000, 1002, 7, 264, 2, 2, 1001, 1000, 3, 2, 2, 2, 1001, 1002, 3, 2, 2, 2, 1002, 1003, 3, 2, 2, 2, 1003, 1004, 7, 272, 2, 2, 1004, 87, 3, 2, 2, 2, 1005, 1006, 7, 86, 2, 2, 1006, 1007, 7, 249, 2, 2, 1007, 1008, 7, 87, 2, 2, 1008, 1009, 7, 267, 2, 2, 1009, 1011, 7, 32, 2, 2, 1010, 1012, 7, 267, 2, 2, 1011, 1010, 3, 2, 2, 2, 1011, 1012, 3, 2, 2, 2, 1012, 1013, 3, 2, 2, 2, 1013, 1014, 7, 33, 2, 2, 1014, 1016, 7, 34, 2, 2, 1015, 1017, 7, 267, 2, 2, 1016, 1015, 3, 2, 2, 2, 1016, 1017, 3, 2, 2, 2, 1017, 1018, 3, 2, 2, 2, 1018, 1020, 7, 73, 2, 2, 1019, 1021, 7, 264, 2, 2, 1020, 1019, 3, 2, 2, 2, 1020, 1021, 3, 2, 2, 2, 1021, 1022, 3, 2, 2, 2, 1022, 1023, 7, 272, 2, 2, 1023, 89, 3, 2, 2, 2, 1024, 1026, 7, 88, 2, 2, 1025, 1027, 7, 267, 2, 2, 1026, 1025, 3, 2, 2, 2, 1026, 1027, 3, 2, 2, 2, 1027, 1028, 3, 2, 2, 2, 1028, 1029, 7, 272, 2, 2, 1029, 91, 3, 2, 2, 2, 1030, 1031, 7, 89, 2, 2, 1031, 1032, 7, 272, 2, 2, 1032, 93, 3, 2, 2, 2, 1033, 1034, 7, 90, 2, 2, 1034, 1035, 7, 272, 2, 2, 1035, 95, 3, 2, 2, 2, 1036, 1037, 7, 91, 2, 2, 1037, 1038, 7, 92, 2, 2, 1038, 1039, 7, 257, 2, 2, 1039, 1040, 7, 272, 2, 2, 1040, 97, 3, 2, 2, 2, 1041, 1042, 7, 93, 2, 2, 1042, 1043, 7, 272, 2, 2, 1043, 99, 3, 2, 2, 2, 1044, 1045, 7, 94, 2, 2, 1045, 1046, 7, 272, 2, 2, 1046, 101, 3, 2, 2, 2, 1047, 1048, 7, 95, 2, 2, 1048, 1049, 7, 272, 2, 2, 1049, 103, 3, 2, 2, 2, 1050, 1051, 7, 96, 2, 2, 1051, 1052, 7, 258, 2, 2, 1052, 1053, 7, 97, 2, 2, 1053, 1054, 7, 98, 2, 2, 1054, 1055, 7, 257, 2, 2, 1055, 1056, 7, 272, 2, 2, 1056, 105, 3, 2, 2, 2, 1057, 1058, 7, 99, 2, 2, 1058, 1059, 7, 264, 2, 2, 1059, 1060, 7, 272, 2, 2, 1060, 107, 3, 2, 2, 2, 1061, 1062, 7, 99, 2, 2, 1062, 1064, 7, 32, 2, 2, 1063, 1065, 7, 238, 2, 2, 1064, 1063, 3, 2, 2, 2, 1064, 1065, 3, 2, 2, 2, 1065, 1066, 3, 2, 2, 2, 1066, 1067, 7, 33, 2, 2, 1067, 1069, 7, 34, 2, 2, 1068, 1070, 7, 238, 2, 2, 1069, 1068, 3, 2, 2, 2, 1069, 1070, 3, 2, 2, 2, 1070, 1071, 3, 2, 2, 2, 1071, 1072, 7, 272, 2, 2, 1072, 109, 3, 2, 2, 2, 1073, 1074, 7, 100, 2, 2, 1074, 1076, 7, 32, 2, 2, 1075, 1077, 7, 238, 2, 2, 1076, 1075, 3, 2, 2, 2, 1076, 1077, 3, 2, 2, 2, 1077, 1078, 3, 2, 2, 2, 1078, 1079, 7, 33, 2, 2, 1079, 1081, 7, 34, 2, 2, 1080, 1082, 7, 238, 2, 2, 1081, 1080, 3, 2, 2, 2, 1081, 1082, 3, 2, 2, 2, 1082, 1083, 3, 2, 2, 2, 1083, 1085, 7, 73, 2, 2, 1084, 1086, 7, 264, 2, 2, 1085, 1084, 3, 2, 2, 2, 1085, 1086, 3, 2, 2, 2, 1086, 1087, 3, 2, 2, 2, 1087, 1089, 7, 101, 2, 2, 1088, 1090, 7, 257, 2, 2, 1089, 1088, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 3, 2, 2, 2, 1091, 1092, 7, 48, 2, 2, 1092, 1093, 7, 257, 2, 2, 1093, 1094, 7, 272, 2, 2, 1094, 111, 3, 2, 2, 2, 1095, 1096, 7, 102, 2, 2, 1096, 1098, 7, 32, 2, 2, 1097, 1099, 7, 238, 2, 2, 1098, 1097, 3, 2, 2, 2, 1098, 1099, 3, 2, 2, 2, 1099, 1100, 3, 2, 2, 2, 1100, 1101, 7, 33, 2, 2, 1101, 1103, 7, 34, 2, 2, 1102, 1104, 7, 238, 2, 2, 1103, 1102, 3, 2, 2, 2, 1103, 1104, 3, 2, 2, 2, 1104, 1105, 3, 2, 2, 2, 1105, 1106, 7, 103, 2, 2, 1106, 1107, 7, 264, 2, 2, 1107, 1108, 7, 48, 2, 2, 1108, 1109, 7, 257, 2, 2, 1109, 1110, 7, 272, 2, 2, 1110, 113, 3, 2, 2, 2, 1111, 1113, 7, 104, 2, 2, 1112, 1114, 7, 264, 2, 2, 1113, 1112, 3, 2, 2, 2, 1113, 1114, 3, 2, 2, 2, 1114, 1115, 3, 2, 2, 2, 1115, 1117, 7, 32, 2, 2, 1116, 1118, 7, 238, 2, 2, 1117, 1116, 3, 2, 2, 2, 1117, 1118, 3, 2, 2, 2, 1118, 1119, 3, 2, 2, 2, 1119, 1120, 7, 33, 2, 2, 1120, 1122, 7, 34, 2, 2, 1121, 1123, 7, 238, 2, 2, 1122, 1121, 3, 2, 2, 2, 1122, 1123, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 1125, 7, 35, 2, 2, 1125, 1126, 7, 262, 2, 2, 1126, 1128, 7, 36, 2, 2, 1127, 1129, 7, 258, 2, 2, 1128, 1127, 3, 2, 2, 2, 1128, 1129, 3, 2, 2, 2, 1129, 1130, 3, 2, 2, 2, 1130, 1131, 7, 272, 2, 2, 1131, 115, 3, 2, 2, 2, 1132, 1133, 7, 105, 2, 2, 1133, 1134, 7, 32, 2, 2, 1134, 1135, 7, 238, 2, 2, 1135, 1136, 7, 33, 2, 2, 1136, 1137, 7, 34, 2, 2, 1137, 1138, 7, 238, 2, 2, 1138, 1139, 7, 35, 2, 2, 1139, 1140, 7, 262, 2, 2, 1140, 1141, 7, 272, 2, 2, 1141, 117, 3, 2, 2, 2, 1142, 1143, 7, 106, 2, 2, 1143, 1144, 7, 261, 2, 2, 1144, 1145, 7, 272, 2, 2, 1145, 119, 3, 2, 2, 2, 1146, 1147, 7, 107, 2, 2, 1147, 1148, 7, 264, 2, 2, 1148, 1149, 7, 272, 2, 2, 1149, 121, 3, 2, 2, 2, 1150, 1151, 7, 108, 2, 2, 1151, 1152, 7, 264, 2, 2, 1152, 1153, 7, 272, 2, 2, 1153, 123, 3, 2, 2, 2, 1154, 1155, 7, 109, 2, 2, 1155, 1156, 7, 264, 2, 2, 1156, 1157, 7, 272, 2, 2, 1157, 125, 3, 2, 2, 2, 1158, 1159, 7, 110, 2, 2, 1159, 1160, 7, 111, 2, 2, 1160, 1161, 7, 267, 2, 2, 1161, 1162, 7, 272, 2, 2, 1162, 127, 3, 2, 2, 2, 1163, 1164, 7, 112, 2, 2, 1164, 1166, 7, 111, 2, 2, 1165, 1167, 7, 267, 2, 2, 1166, 1165, 3, 2, 2, 2, 1166, 1167, 3, 2, 2, 2, 1167, 1168, 3, 2, 2, 2, 1168, 1169, 7, 272, 2, 2, 1169, 129, 3, 2, 2, 2, 1170, 1171, 7, 113, 2, 2, 1171, 1172, 7, 45, 2, 2, 1172, 1173, 7, 258, 2, 2, 1173, 1174, 7, 48, 2, 2, 1174, 1175, 7, 257, 2, 2, 1175, 1176, 7, 272, 2, 2, 1176, 131, 3, 2, 2, 2, 1177, 1178, 7, 114, 2, 2, 1178, 1179, 7, 264, 2, 2, 1179, 1181, 7, 50, 2, 2, 1180, 1182, 7, 267, 2, 2, 1181, 1180, 3, 2, 2, 2, 1181, 1182, 3, 2, 2, 2, 1182, 1183, 3, 2, 2, 2, 1183, 1184, 7, 48, 2, 2, 1184, 1185, 7, 257, 2, 2, 1185, 1186, 7, 272, 2, 2, 1186, 133, 3, 2, 2, 2, 1187, 1188, 7, 115, 2, 2, 1188, 1189, 7, 116, 2, 2, 1189, 1191, 7, 32, 2, 2, 1190, 1192, 7, 238, 2, 2, 1191, 1190, 3, 2, 2, 2, 1191, 1192, 3, 2, 2, 2, 1192, 1193, 3, 2, 2, 2, 1193, 1194, 7, 33, 2, 2, 1194, 1196, 7, 34, 2, 2, 1195, 1197, 7, 238, 2, 2, 1196, 1195, 3, 2, 2, 2, 1196, 1197, 3, 2, 2, 2, 1197, 1198, 3, 2, 2, 2, 1198, 1199, 7, 272, 2, 2, 1199, 135, 3, 2, 2, 2, 1200, 1201, 7, 117, 2, 2, 1201, 1203, 7, 36, 2, 2, 1202, 1204, 7, 258, 2, 2, 1203, 1202, 3, 2, 2, 2, 1203, 1204, 3, 2, 2, 2, 1204, 1205, 3, 2, 2, 2, 1205, 1206, 7, 48, 2, 2, 1206, 1208, 7, 257, 2, 2, 1207, 1209, 7, 268, 2, 2, 1208, 1207, 3, 2, 2, 2, 1208, 1209, 3, 2, 2, 2, 1209, 1210, 3, 2, 2, 2, 1210, 1211, 7, 263, 2, 2, 1211, 1212, 7, 272, 2, 2, 1212, 137, 3, 2, 2, 2, 1213, 1214, 7, 118, 2, 2, 1214, 1215, 7, 119, 2, 2, 1215, 1216, 7, 258, 2, 2, 1216, 1217, 7, 120, 2, 2, 1217, 1219, 7, 267, 2, 2, 1218, 1220, 7, 268, 2, 2, 1219, 1218, 3, 2, 2, 2, 1219, 1220, 3, 2, 2, 2, 1220, 1221, 3, 2, 2, 2, 1221, 1222, 7, 121, 2, 2, 1222, 1223, 7, 32, 2, 2, 1223, 1224, 7, 238, 2, 2, 1224, 1225, 7, 34, 2, 2, 1225, 1226, 7, 238, 2, 2, 1226, 1227, 7, 122, 2, 2, 1227, 1228, 7, 260, 2, 2, 1228, 1229, 7, 45, 2, 2, 1229, 1230, 7, 258, 2, 2, 1230, 1231, 7, 48, 2, 2, 1231, 1232, 7, 257, 2, 2, 1232, 1233, 7, 272, 2, 2, 1233, 139, 3, 2, 2, 2, 1234, 1235, 7, 118, 2, 2, 1235, 1236, 7, 119, 2, 2, 1236, 1237, 7, 258, 2, 2, 1237, 1238, 7, 120, 2, 2, 1238, 1240, 7, 267, 2, 2, 1239, 1241, 7, 268, 2, 2, 1240, 1239, 3, 2, 2, 2, 1240, 1241, 3, 2, 2, 2, 1241, 1242, 3, 2, 2, 2, 1242, 1243, 7, 123, 2, 2, 1243, 1244, 7, 32, 2, 2, 1244, 1245, 7, 238, 2, 2, 1245, 1246, 7, 34, 2, 2, 1246, 1247, 7, 238, 2, 2, 1247, 1249, 7, 124, 2, 2, 1248, 1250, 7, 238, 2, 2, 1249, 1248, 3, 2, 2, 2, 1249, 1250, 3, 2, 2, 2, 1250, 1251, 3, 2, 2, 2, 1251, 1253, 7, 125, 2, 2, 1252, 1254, 7, 238, 2, 2, 1253, 1252, 3, 2, 2, 2, 1253, 1254, 3, 2, 2, 2, 1254, 1255, 3, 2, 2, 2, 1255, 1256, 7, 122, 2, 2, 1256, 1258, 7, 260, 2, 2, 1257, 1259, 7, 268, 2, 2, 1258, 1257, 3, 2, 2, 2, 1258, 1259, 3, 2, 2, 2, 1259, 1260, 3, 2, 2, 2, 1260, 1261, 7, 121, 2, 2, 1261, 1262, 7, 32, 2, 2, 1262, 1263, 7, 238, 2, 2, 1263, 1264, 7, 34, 2, 2, 1264, 1265, 7, 238, 2, 2, 1265, 1267, 7, 124, 2, 2, 1266, 1268, 7, 238, 2, 2, 1267, 1266, 3, 2, 2, 2, 1267, 1268, 3, 2, 2, 2, 1268, 1269, 3, 2, 2, 2, 1269, 1271, 7, 125, 2, 2, 1270, 1272, 7, 238, 2, 2, 1271, 1270, 3, 2, 2, 2, 1271, 1272, 3, 2, 2, 2, 1272, 1273, 3, 2, 2, 2, 1273, 1274, 7, 45, 2, 2, 1274, 1275, 7, 258, 2, 2, 1275, 1276, 7, 48, 2, 2, 1276, 1277, 7, 257, 2, 2, 1277, 1278, 7, 272, 2, 2, 1278, 141, 3, 2, 2, 2, 1279, 1280, 7, 126, 2, 2, 1280, 1281, 7, 127, 2, 2, 1281, 1283, 7, 267, 2, 2, 1282, 1284, 7, 268, 2, 2, 1283, 1282, 3, 2, 2, 2, 1283, 1284, 3, 2, 2, 2, 1284, 1285, 3, 2, 2, 2, 1285, 1286, 7, 119, 2, 2, 1286, 1287, 7, 258, 2, 2, 1287, 1288, 7, 128, 2, 2, 1288, 1289, 7, 32, 2, 2, 1289, 1290, 7, 238, 2, 2, 1290, 1291, 7, 34, 2, 2, 1291, 1292, 7, 238, 2, 2, 1292, 1293, 7, 47, 2, 2, 1293, 1294, 7, 260, 2, 2, 1294, 1295, 7, 122, 2, 2, 1295, 1296, 7, 260, 2, 2, 1296, 1297, 7, 45, 2, 2, 1297, 1298, 7, 258, 2, 2, 1298, 1299, 7, 48, 2, 2, 1299, 1300, 7, 257, 2, 2, 1300, 1301, 7, 272, 2, 2, 1301, 143, 3, 2, 2, 2, 1302, 1303, 7, 129, 2, 2, 1303, 1304, 7, 119, 2, 2, 1304, 1305, 7, 258, 2, 2, 1305, 1306, 7, 45, 2, 2, 1306, 1307, 7, 258, 2, 2, 1307, 1308, 7, 48, 2, 2, 1308, 1309, 7, 257, 2, 2, 1309, 1310, 7, 272, 2, 2, 1310, 145, 3, 2, 2, 2, 1311, 1312, 7, 130, 2, 2, 1312, 1313, 7, 267, 2, 2, 1313, 1314, 7, 131, 2, 2, 1314, 1315, 7, 32, 2, 2, 1315, 1316, 7, 238, 2, 2, 1316, 1317, 7, 34, 2, 2, 1317, 1318, 7, 238, 2, 2, 1318, 1319, 7, 272, 2, 2, 1319, 147, 3, 2, 2, 2, 1320, 1321, 7, 132, 2, 2, 1321, 1322, 7, 272, 2, 2, 1322, 149, 3, 2, 2, 2, 1323, 1324, 7, 133, 2, 2, 1324, 1325, 7, 119, 2, 2, 1325, 1326, 7, 258, 2, 2, 1326, 1327, 7, 134, 2, 2, 1327, 1329, 7, 32, 2, 2, 1328, 1330, 7, 238, 2, 2, 1329, 1328, 3, 2, 2, 2, 1329, 1330, 3, 2, 2, 2, 1330, 1331, 3, 2, 2, 2, 1331, 1333, 7, 34, 2, 2, 1332, 1334, 7, 238, 2, 2, 1333, 1332, 3, 2, 2, 2, 1333, 1334, 3, 2, 2, 2, 1334, 1336, 3, 2, 2, 2, 1335, 1337, 7, 268, 2, 2, 1336, 1335, 3, 2, 2, 2, 1336, 1337, 3, 2, 2, 2, 1337, 1338, 3, 2, 2, 2, 1338, 1340, 7, 122, 2, 2, 1339, 1341, 7, 267, 2, 2, 1340, 1339, 3, 2, 2, 2, 1340, 1341, 3, 2, 2, 2, 1341, 1342, 3, 2, 2, 2, 1342, 1343, 7, 135, 2, 2, 1343, 1344, 7, 258, 2, 2, 1344, 1345, 7, 48, 2, 2, 1345, 1346, 7, 257, 2, 2, 1346, 1347, 7, 272, 2, 2, 1347, 151, 3, 2, 2, 2, 1348, 1349, 7, 136, 2, 2, 1349, 1350, 7, 267, 2, 2, 1350, 1351, 7, 255, 2, 2, 1351, 1353, 7, 36, 2, 2, 1352, 1354, 7, 258, 2, 2, 1353, 1352, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1355, 3, 2, 2, 2, 1355, 1356, 7, 48, 2, 2, 1356, 1357, 7, 257, 2, 2, 1357, 1358, 7, 272, 2, 2, 1358, 153, 3, 2, 2, 2, 1359, 1360, 7, 137, 2, 2, 1360, 1362, 7, 36, 2, 2, 1361, 1363, 7, 258, 2, 2, 1362, 1361, 3, 2, 2, 2, 1362, 1363, 3, 2, 2, 2, 1363, 1364, 3, 2, 2, 2, 1364, 1365, 7, 48, 2, 2, 1365, 1366, 7, 257, 2, 2, 1366, 1367, 7, 272, 2, 2, 1367, 155, 3, 2, 2, 2, 1368, 1369, 7, 138, 2, 2, 1369, 1370, 7, 267, 2, 2, 1370, 1371, 7, 255, 2, 2, 1371, 1372, 7, 139, 2, 2, 1372, 1373, 7, 258, 2, 2, 1373, 1375, 7, 140, 2, 2, 1374, 1376, 7, 258, 2, 2, 1375, 1374, 3, 2, 2, 2, 1375, 1376, 3, 2, 2, 2, 1376, 1377, 3, 2, 2, 2, 1377, 1378, 7, 48, 2, 2, 1378, 1379, 7, 257, 2, 2, 1379, 1380, 7, 272, 2, 2, 1380, 157, 3, 2, 2, 2, 1381, 1382, 7, 141, 2, 2, 1382, 1383, 7, 246, 2, 2, 1383, 1384, 7, 142, 2, 2, 1384, 1385, 7, 258, 2, 2, 1385, 1386, 7, 272, 2, 2, 1386, 159, 3, 2, 2, 2, 1387, 1388, 7, 143, 2, 2, 1388, 1390, 7, 32, 2, 2, 1389, 1391, 7, 238, 2, 2, 1390, 1389, 3, 2, 2, 2, 1390, 1391, 3, 2, 2, 2, 1391, 1392, 3, 2, 2, 2, 1392, 1393, 7, 33, 2, 2, 1393, 1395, 7, 34, 2, 2, 1394, 1396, 7, 238, 2, 2, 1395, 1394, 3, 2, 2, 2, 1395, 1396, 3, 2, 2, 2, 1396, 1397, 3, 2, 2, 2, 1397, 1399, 7, 36, 2, 2, 1398, 1400, 7, 258, 2, 2, 1399, 1398, 3, 2, 2, 2, 1399, 1400, 3, 2, 2, 2, 1400, 1401, 3, 2, 2, 2, 1401, 1402, 7, 144, 2, 2, 1402, 1403, 7, 257, 2, 2, 1403, 1404, 7, 48, 2, 2, 1404, 1406, 7, 257, 2, 2, 1405, 1407, 7, 268, 2, 2, 1406, 1405, 3, 2, 2, 2, 1406, 1407, 3, 2, 2, 2, 1407, 1408, 3, 2, 2, 2, 1408, 1409, 7, 263, 2, 2, 1409, 1410, 7, 272, 2, 2, 1410, 161, 3, 2, 2, 2, 1411, 1412, 7, 145, 2, 2, 1412, 1414, 7, 36, 2, 2, 1413, 1415, 7, 258, 2, 2, 1414, 1413, 3, 2, 2, 2, 1414, 1415, 3, 2, 2, 2, 1415, 1416, 3, 2, 2, 2, 1416, 1417, 7, 48, 2, 2, 1417, 1419, 7, 257, 2, 2, 1418, 1420, 7, 268, 2, 2, 1419, 1418, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1421, 3, 2, 2, 2, 1421, 1422, 7, 263, 2, 2, 1422, 1423, 7, 272, 2, 2, 1423, 163, 3, 2, 2, 2, 1424, 1425, 7, 146, 2, 2, 1425, 1427, 7, 147, 2, 2, 1426, 1428, 7, 238, 2, 2, 1427, 1426, 3, 2, 2, 2, 1427, 1428, 3, 2, 2, 2, 1428, 1429, 3, 2, 2, 2, 1429, 1430, 7, 33, 2, 2, 1430, 1432, 7, 34, 2, 2, 1431, 1433, 7, 238, 2, 2, 1432, 1431, 3, 2, 2, 2, 1432, 1433, 3, 2, 2, 2, 1433, 1434, 3, 2, 2, 2, 1434, 1436, 7, 148, 2, 2, 1435, 1437, 7, 238, 2, 2, 1436, 1435, 3, 2, 2, 2, 1436, 1437, 3, 2, 2, 2, 1437, 1438, 3, 2, 2, 2, 1438, 1439, 7, 33, 2, 2, 1439, 1441, 7, 34, 2, 2, 1440, 1442, 7, 238, 2, 2, 1441, 1440, 3, 2, 2, 2, 1441, 1442, 3, 2, 2, 2, 1442, 1443, 3, 2, 2, 2, 1443, 1445, 7, 36, 2, 2, 1444, 1446, 7, 258, 2, 2, 1445, 1444, 3, 2, 2, 2, 1445, 1446, 3, 2, 2, 2, 1446, 1447, 3, 2, 2, 2, 1447, 1448, 7, 144, 2, 2, 1448, 1449, 7, 257, 2, 2, 1449, 1450, 7, 48, 2, 2, 1450, 1451, 7, 257, 2, 2, 1451, 1452, 7, 272, 2, 2, 1452, 165, 3, 2, 2, 2, 1453, 1454, 7, 149, 2, 2, 1454, 1456, 7, 32, 2, 2, 1455, 1457, 7, 238, 2, 2, 1456, 1455, 3, 2, 2, 2, 1456, 1457, 3, 2, 2, 2, 1457, 1458, 3, 2, 2, 2, 1458, 1459, 7, 33, 2, 2, 1459, 1461, 7, 34, 2, 2, 1460, 1462, 7, 238, 2, 2, 1461, 1460, 3, 2, 2, 2, 1461, 1462, 3, 2, 2, 2, 1462, 1463, 3, 2, 2, 2, 1463, 1465, 7, 36, 2, 2, 1464, 1466, 7, 258, 2, 2, 1465, 1464, 3, 2, 2, 2, 1465, 1466, 3, 2, 2, 2, 1466, 1467, 3, 2, 2, 2, 1467, 1468, 7, 48, 2, 2, 1468, 1469, 7, 257, 2, 2, 1469, 1470, 7, 272, 2, 2, 1470, 167, 3, 2, 2, 2, 1471, 1472, 7, 150, 2, 2, 1472, 1473, 7, 267, 2, 2, 1473, 1474, 7, 151, 2, 2, 1474, 1475, 7, 257, 2, 2, 1475, 1476, 7, 272, 2, 2, 1476, 169, 3, 2, 2, 2, 1477, 1478, 7, 152, 2, 2, 1478, 1479, 7, 272, 2, 2, 1479, 171, 3, 2, 2, 2, 1480, 1481, 7, 153, 2, 2, 1481, 1482, 7, 272, 2, 2, 1482, 173, 3, 2, 2, 2, 1483, 1484, 7, 154, 2, 2, 1484, 1485, 7, 267, 2, 2, 1485, 1486, 7, 272, 2, 2, 1486, 175, 3, 2, 2, 2, 1487, 1488, 7, 155, 2, 2, 1488, 1489, 7, 267, 2, 2, 1489, 1490, 7, 272, 2, 2, 1490, 177, 3, 2, 2, 2, 1491, 1492, 7, 156, 2, 2, 1492, 1493, 7, 267, 2, 2, 1493, 1495, 7, 157, 2, 2, 1494, 1496, 7, 257, 2, 2, 1495, 1494, 3, 2, 2, 2, 1495, 1496, 3, 2, 2, 2, 1496, 1497, 3, 2, 2, 2, 1497, 1498, 7, 272, 2, 2, 1498, 179, 3, 2, 2, 2, 1499, 1500, 7, 158, 2, 2, 1500, 1501, 7, 272, 2, 2, 1501, 181, 3, 2, 2, 2, 1502, 1503, 7, 159, 2, 2, 1503, 1504, 7, 258, 2, 2, 1504, 1506, 7, 160, 2, 2, 1505, 1507, 7, 258, 2, 2, 1506, 1505, 3, 2, 2, 2, 1506, 1507, 3, 2, 2, 2, 1507, 1508, 3, 2, 2, 2, 1508, 1509, 7, 48, 2, 2, 1509, 1510, 7, 257, 2, 2, 1510, 1511, 7, 272, 2, 2, 1511, 183, 3, 2, 2, 2, 1512, 1513, 7, 161, 2, 2, 1513, 1515, 7, 40, 2, 2, 1514, 1516, 7, 267, 2, 2, 1515, 1514, 3, 2, 2, 2, 1515, 1516, 3, 2, 2, 2, 1516, 1517, 3, 2, 2, 2, 1517, 1518, 7, 162, 2, 2, 1518, 1519, 7, 257, 2, 2, 1519, 1520, 7, 272, 2, 2, 1520, 185, 3, 2, 2, 2, 1521, 1522, 7, 163, 2, 2, 1522, 1524, 7, 40, 2, 2, 1523, 1525, 7, 267, 2, 2, 1524, 1523, 3, 2, 2, 2, 1524, 1525, 3, 2, 2, 2, 1525, 1526, 3, 2, 2, 2, 1526, 1527, 7, 272, 2, 2, 1527, 187, 3, 2, 2, 2, 1528, 1529, 7, 164, 2, 2, 1529, 1530, 7, 272, 2, 2, 1530, 189, 3, 2, 2, 2, 1531, 1532, 7, 165, 2, 2, 1532, 1533, 7, 40, 2, 2, 1533, 1534, 7, 267, 2, 2, 1534, 1535, 7, 272, 2, 2, 1535, 191, 3, 2, 2, 2, 1536, 1537, 7, 166, 2, 2, 1537, 1538, 7, 40, 2, 2, 1538, 1539, 7, 267, 2, 2, 1539, 1540, 7, 272, 2, 2, 1540, 193, 3, 2, 2, 2, 1541, 1542, 7, 167, 2, 2, 1542, 1543, 7, 40, 2, 2, 1543, 1545, 5, 278, 140, 2, 1544, 1546, 7, 268, 2, 2, 1545, 1544, 3, 2, 2, 2, 1545, 1546, 3, 2, 2, 2, 1546, 1547, 3, 2, 2, 2, 1547, 1549, 7, 272, 2, 2, 1548, 1550, 5, 36, 19, 2, 1549, 1548, 3, 2, 2, 2, 1550, 1551, 3, 2, 2, 2, 1551, 1549, 3, 2, 2, 2, 1551, 1552, 3, 2, 2, 2, 1552, 1553, 3, 2, 2, 2, 1553, 1554, 7, 168, 2, 2, 1554, 1556, 7, 40, 2, 2, 1555, 1557, 7, 268, 2, 2, 1556, 1555, 3, 2, 2, 2, 1556, 1557, 3, 2, 2, 2, 1557, 1558, 3, 2, 2, 2, 1558, 1560, 7, 272, 2, 2, 1559, 1561, 5, 36, 19, 2, 1560, 1559, 3, 2, 2, 2, 1561, 1562, 3, 2, 2, 2, 1562, 1560, 3, 2, 2, 2, 1562, 1563, 3, 2, 2, 2, 1563, 1564, 3, 2, 2, 2, 1564, 1565, 7, 271, 2, 2, 1565, 1566, 7, 272, 2, 2, 1566, 195, 3, 2, 2, 2, 1567, 1568, 7, 167, 2, 2, 1568, 1569, 7, 40, 2, 2, 1569, 1571, 5, 278, 140, 2, 1570, 1572, 7, 268, 2, 2, 1571, 1570, 3, 2, 2, 2, 1571, 1572, 3, 2, 2, 2, 1572, 1573, 3, 2, 2, 2, 1573, 1575, 7, 272, 2, 2, 1574, 1576, 5, 36, 19, 2, 1575, 1574, 3, 2, 2, 2, 1576, 1577, 3, 2, 2, 2, 1577, 1575, 3, 2, 2, 2, 1577, 1578, 3, 2, 2, 2, 1578, 1579, 3, 2, 2, 2, 1579, 1580, 7, 271, 2, 2, 1580, 1581, 7, 272, 2, 2, 1581, 197, 3, 2, 2, 2, 1582, 1583, 7, 169, 2, 2, 1583, 1584, 7, 40, 2, 2, 1584, 1586, 5, 278, 140, 2, 1585, 1587, 7, 268, 2, 2, 1586, 1585, 3, 2, 2, 2, 1586, 1587, 3, 2, 2, 2, 1587, 1588, 3, 2, 2, 2, 1588, 1590, 7, 272, 2, 2, 1589, 1591, 5, 200, 101, 2, 1590, 1589, 3, 2, 2, 2, 1591, 1592, 3, 2, 2, 2, 1592, 1590, 3, 2, 2, 2, 1592, 1593, 3, 2, 2, 2, 1593, 1594, 3, 2, 2, 2, 1594, 1595, 7, 271, 2, 2, 1595, 1596, 7, 272, 2, 2, 1596, 199, 3, 2, 2, 2, 1597, 1598, 7, 170, 2, 2, 1598, 1599, 5, 278, 140, 2, 1599, 1600, 7, 171, 2, 2, 1600, 1601, 7, 172, 2, 2, 1601, 1603, 7, 257, 2, 2, 1602, 1604, 7, 268, 2, 2, 1603, 1602, 3, 2, 2, 2, 1603, 1604, 3, 2, 2, 2, 1604, 1605, 3, 2, 2, 2, 1605, 1607, 7, 272, 2, 2, 1606, 1608, 5, 36, 19, 2, 1607, 1606, 3, 2, 2, 2, 1608, 1609, 3, 2, 2, 2, 1609, 1607, 3, 2, 2, 2, 1609, 1610, 3, 2, 2, 2, 1610, 201, 3, 2, 2, 2, 1611, 1612, 7, 173, 2, 2, 1612, 1614, 7, 40, 2, 2, 1613, 1615, 7, 267, 2, 2, 1614, 1613, 3, 2, 2, 2, 1614, 1615, 3, 2, 2, 2, 1615, 1617, 3, 2, 2, 2, 1616, 1618, 7, 268, 2, 2, 1617, 1616, 3, 2, 2, 2, 1617, 1618, 3, 2, 2, 2, 1618, 1619, 3, 2, 2, 2, 1619, 1621, 7, 18, 2, 2, 1620, 1622, 7, 267, 2, 2, 1621, 1620, 3, 2, 2, 2, 1621, 1622, 3, 2, 2, 2, 1622, 1623, 3, 2, 2, 2, 1623, 1625, 7, 41, 2, 2, 1624, 1626, 7, 264, 2, 2, 1625, 1624, 3, 2, 2, 2, 1625, 1626, 3, 2, 2, 2, 1626, 1628, 3, 2, 2, 2, 1627, 1629, 7, 268, 2, 2, 1628, 1627, 3, 2, 2, 2, 1628, 1629, 3, 2, 2, 2, 1629, 1630, 3, 2, 2, 2, 1630, 1632, 7, 272, 2, 2, 1631, 1633, 5, 204, 103, 2, 1632, 1631, 3, 2, 2, 2, 1633, 1634, 3, 2, 2, 2, 1634, 1632, 3, 2, 2, 2, 1634, 1635, 3, 2, 2, 2, 1635, 1636, 3, 2, 2, 2, 1636, 1637, 7, 271, 2, 2, 1637, 1638, 7, 272, 2, 2, 1638, 203, 3, 2, 2, 2, 1639, 1640, 7, 174, 2, 2, 1640, 1641, 7, 267, 2, 2, 1641, 1643, 7, 19, 2, 2, 1642, 1644, 7, 264, 2, 2, 1643, 1642, 3, 2, 2, 2, 1643, 1644, 3, 2, 2, 2, 1644, 1645, 3, 2, 2, 2, 1645, 1647, 7, 175, 2, 2, 1646, 1648, 7, 267, 2, 2, 1647, 1646, 3, 2, 2, 2, 1647, 1648, 3, 2, 2, 2, 1648, 1649, 3, 2, 2, 2, 1649, 1650, 7, 255, 2, 2, 1650, 1652, 7, 176, 2, 2, 1651, 1653, 7, 267, 2, 2, 1652, 1651, 3, 2, 2, 2, 1652, 1653, 3, 2, 2, 2, 1653, 1655, 3, 2, 2, 2, 1654, 1656, 7, 268, 2, 2, 1655, 1654, 3, 2, 2, 2, 1655, 1656, 3, 2, 2, 2, 1656, 1657, 3, 2, 2, 2, 1657, 1659, 7, 272, 2, 2, 1658, 1660, 5, 36, 19, 2, 1659, 1658, 3, 2, 2, 2, 1660, 1661, 3, 2, 2, 2, 1661, 1659, 3, 2, 2, 2, 1661, 1662, 3, 2, 2, 2, 1662, 205, 3, 2, 2, 2, 1663, 1664, 7, 177, 2, 2, 1664, 1665, 7, 40, 2, 2, 1665, 1667, 7, 267, 2, 2, 1666, 1668, 7, 268, 2, 2, 1667, 1666, 3, 2, 2, 2, 1667, 1668, 3, 2, 2, 2, 1668, 1669, 3, 2, 2, 2, 1669, 1670, 7, 178, 2, 2, 1670, 1671, 7, 40, 2, 2, 1671, 1672, 7, 179, 2, 2, 1672, 1673, 7, 257, 2, 2, 1673, 1675, 7, 180, 2, 2, 1674, 1676, 7, 268, 2, 2, 1675, 1674, 3, 2, 2, 2, 1675, 1676, 3, 2, 2, 2, 1676, 1677, 3, 2, 2, 2, 1677, 1679, 7, 272, 2, 2, 1678, 1680, 5, 36, 19, 2, 1679, 1678, 3, 2, 2, 2, 1680, 1681, 3, 2, 2, 2, 1681, 1679, 3, 2, 2, 2, 1681, 1682, 3, 2, 2, 2, 1682, 1683, 3, 2, 2, 2, 1683, 1684, 7, 181, 2, 2, 1684, 1686, 7, 40, 2, 2, 1685, 1687, 7, 268, 2, 2, 1686, 1685, 3, 2, 2, 2, 1686, 1687, 3, 2, 2, 2, 1687, 1688, 3, 2, 2, 2, 1688, 1690, 7, 272, 2, 2, 1689, 1691, 5, 36, 19, 2, 1690, 1689, 3, 2, 2, 2, 1691, 1692, 3, 2, 2, 2, 1692, 1690, 3, 2, 2, 2, 1692, 1693, 3, 2, 2, 2, 1693, 1694, 3, 2, 2, 2, 1694, 1695, 7, 271, 2, 2, 1695, 1696, 7, 272, 2, 2, 1696, 207, 3, 2, 2, 2, 1697, 1698, 7, 182, 2, 2, 1698, 1699, 7, 180, 2, 2, 1699, 1700, 7, 183, 2, 2, 1700, 1701, 5, 278, 140, 2, 1701, 1703, 7, 184, 2, 2, 1702, 1704, 7, 268, 2, 2, 1703, 1702, 3, 2, 2, 2, 1703, 1704, 3, 2, 2, 2, 1704, 1705, 3, 2, 2, 2, 1705, 1707, 7, 272, 2, 2, 1706, 1708, 5, 36, 19, 2, 1707, 1706, 3, 2, 2, 2, 1708, 1709, 3, 2, 2, 2, 1709, 1707, 3, 2, 2, 2, 1709, 1710, 3, 2, 2, 2, 1710, 1711, 3, 2, 2, 2, 1711, 1712, 7, 271, 2, 2, 1712, 1713, 7, 272, 2, 2, 1713, 209, 3, 2, 2, 2, 1714, 1715, 7, 185, 2, 2, 1715, 1717, 7, 180, 2, 2, 1716, 1718, 7, 268, 2, 2, 1717, 1716, 3, 2, 2, 2, 1717, 1718, 3, 2, 2, 2, 1718, 1719, 3, 2, 2, 2, 1719, 1721, 7, 272, 2, 2, 1720, 1722, 5, 36, 19, 2, 1721, 1720, 3, 2, 2, 2, 1722, 1723, 3, 2, 2, 2, 1723, 1721, 3, 2, 2, 2, 1723, 1724, 3, 2, 2, 2, 1724, 1725, 3, 2, 2, 2, 1725, 1726, 7, 271, 2, 2, 1726, 1727, 7, 183, 2, 2, 1727, 1728, 5, 278, 140, 2, 1728, 1729, 7, 184, 2, 2, 1729, 1730, 7, 272, 2, 2, 1730, 211, 3, 2, 2, 2, 1731, 1732, 7, 186, 2, 2, 1732, 1733, 7, 272, 2, 2, 1733, 213, 3, 2, 2, 2, 1734, 1735, 7, 187, 2, 2, 1735, 1736, 7, 272, 2, 2, 1736, 215, 3, 2, 2, 2, 1737, 1738, 7, 188, 2, 2, 1738, 217, 3, 2, 2, 2, 1739, 1740, 7, 189, 2, 2, 1740, 219, 3, 2, 2, 2, 1741, 1742, 7, 190, 2, 2, 1742, 221, 3, 2, 2, 2, 1743, 1744, 7, 191, 2, 2, 1744, 223, 3, 2, 2, 2, 1745, 1746, 7, 192, 2, 2, 1746, 1747, 7, 193, 2, 2, 1747, 1748, 7, 257, 2, 2, 1748, 1749, 7, 272, 2, 2, 1749, 225, 3, 2, 2, 2, 1750, 1751, 7, 194, 2, 2, 1751, 1752, 7, 272, 2, 2, 1752, 227, 3, 2, 2, 2, 1753, 1754, 7, 195, 2, 2, 1754, 1756, 7, 196, 2, 2, 1755, 1757, 7, 268, 2, 2, 1756, 1755, 3, 2, 2, 2, 1756, 1757, 3, 2, 2, 2, 1757, 1758, 3, 2, 2, 2, 1758, 1760, 7, 272, 2, 2, 1759, 1761, 5, 36, 19, 2, 1760, 1759, 3, 2, 2, 2, 1761, 1762, 3, 2, 2, 2, 1762, 1760, 3, 2, 2, 2, 1762, 1763, 3, 2, 2, 2, 1763, 1764, 3, 2, 2, 2, 1764, 1765, 7, 271, 2, 2, 1765, 1766, 7, 272, 2, 2, 1766, 229, 3, 2, 2, 2, 1767, 1768, 7, 197, 2, 2, 1768, 1769, 7, 128, 2, 2, 1769, 1770, 7, 32, 2, 2, 1770, 1771, 7, 238, 2, 2, 1771, 1772, 7, 34, 2, 2, 1772, 1773, 7, 238, 2, 2, 1773, 1774, 7, 124, 2, 2, 1774, 1775, 7, 238, 2, 2, 1775, 1776, 7, 125, 2, 2, 1776, 1777, 7, 238, 2, 2, 1777, 1778, 7, 272, 2, 2, 1778, 231, 3, 2, 2, 2, 1779, 1780, 7, 198, 2, 2, 1780, 1781, 7, 272, 2, 2, 1781, 233, 3, 2, 2, 2, 1782, 1783, 7, 199, 2, 2, 1783, 1785, 7, 200, 2, 2, 1784, 1786, 7, 267, 2, 2, 1785, 1784, 3, 2, 2, 2, 1785, 1786, 3, 2, 2, 2, 1786, 1787, 3, 2, 2, 2, 1787, 1789, 7, 201, 2, 2, 1788, 1790, 7, 267, 2, 2, 1789, 1788, 3, 2, 2, 2, 1789, 1790, 3, 2, 2, 2, 1790, 1791, 3, 2, 2, 2, 1791, 1792, 7, 255, 2, 2, 1792, 1794, 7, 202, 2, 2, 1793, 1795, 7, 267, 2, 2, 1794, 1793, 3, 2, 2, 2, 1794, 1795, 3, 2, 2, 2, 1795, 1796, 3, 2, 2, 2, 1796, 1798, 7, 255, 2, 2, 1797, 1799, 7, 268, 2, 2, 1798, 1797, 3, 2, 2, 2, 1798, 1799, 3, 2, 2, 2, 1799, 1800, 3, 2, 2, 2, 1800, 1802, 7, 203, 2, 2, 1801, 1803, 7, 267, 2, 2, 1802, 1801, 3, 2, 2, 2, 1802, 1803, 3, 2, 2, 2, 1803, 1804, 3, 2, 2, 2, 1804, 1806, 7, 122, 2, 2, 1805, 1807, 7, 267, 2, 2, 1806, 1805, 3, 2, 2, 2, 1806, 1807, 3, 2, 2, 2, 1807, 1808, 3, 2, 2, 2, 1808, 1809, 7, 52, 2, 2, 1809, 1810, 7, 242, 2, 2, 1810, 1811, 7, 204, 2, 2, 1811, 1812, 7, 243, 2, 2, 1812, 1814, 7, 205, 2, 2, 1813, 1815, 7, 267, 2, 2, 1814, 1813, 3, 2, 2, 2, 1814, 1815, 3, 2, 2, 2, 1815, 1816, 3, 2, 2, 2, 1816, 1817, 7, 272, 2, 2, 1817, 235, 3, 2, 2, 2, 1818, 1819, 7, 206, 2, 2, 1819, 1820, 7, 32, 2, 2, 1820, 1821, 7, 238, 2, 2, 1821, 1822, 7, 34, 2, 2, 1822, 1823, 7, 238, 2, 2, 1823, 1825, 7, 207, 2, 2, 1824, 1826, 7, 267, 2, 2, 1825, 1824, 3, 2, 2, 2, 1825, 1826, 3, 2, 2, 2, 1826, 1827, 3, 2, 2, 2, 1827, 1828, 7, 255, 2, 2, 1828, 1830, 7, 200, 2, 2, 1829, 1831, 7, 267, 2, 2, 1830, 1829, 3, 2, 2, 2, 1830, 1831, 3, 2, 2, 2, 1831, 1832, 3, 2, 2, 2, 1832, 1834, 7, 208, 2, 2, 1833, 1835, 7, 267, 2, 2, 1834, 1833, 3, 2, 2, 2, 1834, 1835, 3, 2, 2, 2, 1835, 1837, 3, 2, 2, 2, 1836, 1838, 7, 268, 2, 2, 1837, 1836, 3, 2, 2, 2, 1837, 1838, 3, 2, 2, 2, 1838, 1839, 3, 2, 2, 2, 1839, 1840, 7, 267, 2, 2, 1840, 1841, 7, 272, 2, 2, 1841, 237, 3, 2, 2, 2, 1842, 1843, 7, 209, 2, 2, 1843, 1844, 7, 32, 2, 2, 1844, 1845, 7, 238, 2, 2, 1845, 1846, 7, 34, 2, 2, 1846, 1847, 7, 238, 2, 2, 1847, 1849, 7, 207, 2, 2, 1848, 1850, 7, 267, 2, 2, 1849, 1848, 3, 2, 2, 2, 1849, 1850, 3, 2, 2, 2, 1850, 1851, 3, 2, 2, 2, 1851, 1852, 7, 255, 2, 2, 1852, 1854, 7, 200, 2, 2, 1853, 1855, 7, 267, 2, 2, 1854, 1853, 3, 2, 2, 2, 1854, 1855, 3, 2, 2, 2, 1855, 1857, 3, 2, 2, 2, 1856, 1858, 7, 268, 2, 2, 1857, 1856, 3, 2, 2, 2, 1857, 1858, 3, 2, 2, 2, 1858, 1859, 3, 2, 2, 2, 1859, 1860, 7, 267, 2, 2, 1860, 1861, 7, 272, 2, 2, 1861, 239, 3, 2, 2, 2, 1862, 1863, 7, 210, 2, 2, 1863, 1865, 7, 267, 2, 2, 1864, 1866, 7, 268, 2, 2, 1865, 1864, 3, 2, 2, 2, 1865, 1866, 3, 2, 2, 2, 1866, 1867, 3, 2, 2, 2, 1867, 1868, 7, 128, 2, 2, 1868, 1869, 7, 32, 2, 2, 1869, 1870, 7, 238, 2, 2, 1870, 1871, 7, 34, 2, 2, 1871, 1872, 7, 238, 2, 2, 1872, 1874, 7, 208, 2, 2, 1873, 1875, 7, 267, 2, 2, 1874, 1873, 3, 2, 2, 2, 1874, 1875, 3, 2, 2, 2, 1875, 1876, 3, 2, 2, 2, 1876, 1878, 7, 175, 2, 2, 1877, 1879, 7, 267, 2, 2, 1878, 1877, 3, 2, 2, 2, 1878, 1879, 3, 2, 2, 2, 1879, 1880, 3, 2, 2, 2, 1880, 1882, 7, 255, 2, 2, 1881, 1883, 7, 268, 2, 2, 1882, 1881, 3, 2, 2, 2, 1882, 1883, 3, 2, 2, 2, 1883, 1884, 3, 2, 2, 2, 1884, 1885, 7, 52, 2, 2, 1885, 1886, 7, 242, 2, 2, 1886, 1888, 7, 211, 2, 2, 1887, 1889, 7, 267, 2, 2, 1888, 1887, 3, 2, 2, 2, 1888, 1889, 3, 2, 2, 2, 1889, 1890, 3, 2, 2, 2, 1890, 1892, 7, 47, 2, 2, 1891, 1893, 7, 267, 2, 2, 1892, 1891, 3, 2, 2, 2, 1892, 1893, 3, 2, 2, 2, 1893, 1894, 3, 2, 2, 2, 1894, 1895, 7, 56, 2, 2, 1895, 1896, 7, 257, 2, 2, 1896, 1897, 7, 272, 2, 2, 1897, 241, 3, 2, 2, 2, 1898, 1899, 7, 212, 2, 2, 1899, 1900, 7, 128, 2, 2, 1900, 1901, 7, 32, 2, 2, 1901, 1902, 7, 238, 2, 2, 1902, 1903, 7, 34, 2, 2, 1903, 1904, 7, 238, 2, 2, 1904, 1905, 7, 124, 2, 2, 1905, 1906, 7, 238, 2, 2, 1906, 1907, 7, 125, 2, 2, 1907, 1908, 7, 238, 2, 2, 1908, 1910, 7, 175, 2, 2, 1909, 1911, 7, 267, 2, 2, 1910, 1909, 3, 2, 2, 2, 1910, 1911, 3, 2, 2, 2, 1911, 1912, 3, 2, 2, 2, 1912, 1913, 7, 255, 2, 2, 1913, 1914, 7, 272, 2, 2, 1914, 243, 3, 2, 2, 2, 1915, 1916, 7, 213, 2, 2, 1916, 1917, 7, 128, 2, 2, 1917, 1918, 7, 32, 2, 2, 1918, 1919, 7, 238, 2, 2, 1919, 1920, 7, 34, 2, 2, 1920, 1921, 7, 238, 2, 2, 1921, 1922, 7, 124, 2, 2, 1922, 1923, 7, 238, 2, 2, 1923, 1924, 7, 125, 2, 2, 1924, 1925, 7, 238, 2, 2, 1925, 1927, 7, 175, 2, 2, 1926, 1928, 7, 267, 2, 2, 1927, 1926, 3, 2, 2, 2, 1927, 1928, 3, 2, 2, 2, 1928, 1929, 3, 2, 2, 2, 1929, 1930, 7, 255, 2, 2, 1930, 1932, 7, 214, 2, 2, 1931, 1933, 7, 267, 2, 2, 1932, 1931, 3, 2, 2, 2, 1932, 1933, 3, 2, 2, 2, 1933, 1934, 3, 2, 2, 2, 1934, 1935, 7, 272, 2, 2, 1935, 245, 3, 2, 2, 2, 1936, 1937, 7, 215, 2, 2, 1937, 1938, 7, 128, 2, 2, 1938, 1939, 7, 32, 2, 2, 1939, 1940, 7, 238, 2, 2, 1940, 1941, 7, 34, 2, 2, 1941, 1942, 7, 238, 2, 2, 1942, 1943, 7, 216, 2, 2, 1943, 1944, 7, 32, 2, 2, 1944, 1945, 7, 238, 2, 2, 1945, 1946, 7, 34, 2, 2, 1946, 1947, 7, 238, 2, 2, 1947, 1949, 7, 175, 2, 2, 1948, 1950, 7, 267, 2, 2, 1949, 1948, 3, 2, 2, 2, 1949, 1950, 3, 2, 2, 2, 1950, 1951, 3, 2, 2, 2, 1951, 1952, 7, 255, 2, 2, 1952, 1954, 7, 214, 2, 2, 1953, 1955, 7, 267, 2, 2, 1954, 1953, 3, 2, 2, 2, 1954, 1955, 3, 2, 2, 2, 1955, 1956, 3, 2, 2, 2, 1956, 1957, 7, 272, 2, 2, 1957, 247, 3, 2, 2, 2, 1958, 1959, 7, 217, 2, 2, 1959, 1960, 7, 128, 2, 2, 1960, 1961, 7, 32, 2, 2, 1961, 1962, 7, 238, 2, 2, 1962, 1963, 7, 34, 2, 2, 1963, 1964, 7, 238, 2, 2, 1964, 1965, 7, 216, 2, 2, 1965, 1966, 7, 32, 2, 2, 1966, 1967, 7, 238, 2, 2, 1967, 1968, 7, 34, 2, 2, 1968, 1969, 7, 238, 2, 2, 1969, 1971, 7, 175, 2, 2, 1970, 1972, 7, 267, 2, 2, 1971, 1970, 3, 2, 2, 2, 1971, 1972, 3, 2, 2, 2, 1972, 1973, 3, 2, 2, 2, 1973, 1974, 7, 255, 2, 2, 1974, 1976, 7, 214, 2, 2, 1975, 1977, 7, 267, 2, 2, 1976, 1975, 3, 2, 2, 2, 1976, 1977, 3, 2, 2, 2, 1977, 1978, 3, 2, 2, 2, 1978, 1979, 7, 272, 2, 2, 1979, 249, 3, 2, 2, 2, 1980, 1981, 7, 218, 2, 2, 1981, 1982, 7, 219, 2, 2, 1982, 1983, 7, 32, 2, 2, 1983, 1984, 7, 267, 2, 2, 1984, 1985, 7, 34, 2, 2, 1985, 1986, 7, 267, 2, 2, 1986, 1988, 7, 175, 2, 2, 1987, 1989, 7, 267, 2, 2, 1988, 1987, 3, 2, 2, 2, 1988, 1989, 3, 2, 2, 2, 1989, 1990, 3, 2, 2, 2, 1990, 1991, 7, 255, 2, 2, 1991, 1992, 7, 272, 2, 2, 1992, 251, 3, 2, 2, 2, 1993, 1994, 7, 220, 2, 2, 1994, 1995, 7, 219, 2, 2, 1995, 1996, 7, 32, 2, 2, 1996, 1997, 7, 267, 2, 2, 1997, 1998, 7, 34, 2, 2, 1998, 1999, 7, 267, 2, 2, 1999, 2001, 7, 175, 2, 2, 2000, 2002, 7, 267, 2, 2, 2001, 2000, 3, 2, 2, 2, 2001, 2002, 3, 2, 2, 2, 2002, 2003, 3, 2, 2, 2, 2003, 2004, 7, 255, 2, 2, 2004, 2006, 7, 214, 2, 2, 2005, 2007, 7, 267, 2, 2, 2006, 2005, 3, 2, 2, 2, 2006, 2007, 3, 2, 2, 2, 2007, 2008, 3, 2, 2, 2, 2008, 2009, 7, 272, 2, 2, 2009, 253, 3, 2, 2, 2, 2010, 2011, 7, 221, 2, 2, 2011, 2012, 7, 222, 2, 2, 2012, 2013, 7, 32, 2, 2, 2013, 2014, 7, 238, 2, 2, 2014, 2015, 7, 34, 2, 2, 2015, 2016, 7, 238, 2, 2, 2016, 2017, 7, 223, 2, 2, 2017, 2018, 7, 238, 2, 2, 2018, 2020, 7, 175, 2, 2, 2019, 2021, 7, 267, 2, 2, 2020, 2019, 3, 2, 2, 2, 2020, 2021, 3, 2, 2, 2, 2021, 2022, 3, 2, 2, 2, 2022, 2023, 7, 255, 2, 2, 2023, 2024, 7, 272, 2, 2, 2024, 255, 3, 2, 2, 2, 2025, 2026, 7, 224, 2, 2, 2026, 2027, 7, 222, 2, 2, 2027, 2028, 7, 32, 2, 2, 2028, 2029, 7, 238, 2, 2, 2029, 2030, 7, 34, 2, 2, 2030, 2031, 7, 238, 2, 2, 2031, 2032, 7, 223, 2, 2, 2032, 2033, 7, 238, 2, 2, 2033, 2035, 7, 175, 2, 2, 2034, 2036, 7, 267, 2, 2, 2035, 2034, 3, 2, 2, 2, 2035, 2036, 3, 2, 2, 2, 2036, 2037, 3, 2, 2, 2, 2037, 2038, 7, 255, 2, 2, 2038, 2040, 7, 214, 2, 2, 2039, 2041, 7, 267, 2, 2, 2040, 2039, 3, 2, 2, 2, 2040, 2041, 3, 2, 2, 2, 2041, 2042, 3, 2, 2, 2, 2042, 2043, 7, 272, 2, 2, 2043, 257, 3, 2, 2, 2, 2044, 2045, 7, 225, 2, 2, 2045, 2046, 7, 267, 2, 2, 2046, 2047, 7, 128, 2, 2, 2047, 2048, 7, 32, 2, 2, 2048, 2049, 7, 238, 2, 2, 2049, 2050, 7, 34, 2, 2, 2050, 2051, 7, 238, 2, 2, 2051, 2053, 7, 124, 2, 2, 2052, 2054, 7, 238, 2, 2, 2053, 2052, 3, 2, 2, 2, 2053, 2054, 3, 2, 2, 2, 2054, 2055, 3, 2, 2, 2, 2055, 2057, 7, 125, 2, 2, 2056, 2058, 7, 238, 2, 2, 2057, 2056, 3, 2, 2, 2, 2057, 2058, 3, 2, 2, 2, 2058, 2059, 3, 2, 2, 2, 2059, 2060, 7, 272, 2, 2, 2060, 259, 3, 2, 2, 2, 2061, 2062, 7, 225, 2, 2, 2062, 2063, 7, 267, 2, 2, 2063, 2064, 7, 123, 2, 2, 2064, 2065, 7, 32, 2, 2, 2065, 2066, 7, 238, 2, 2, 2066, 2067, 7, 34, 2, 2, 2067, 2068, 7, 238, 2, 2, 2068, 2069, 7, 124, 2, 2, 2069, 2070, 7, 238, 2, 2, 2070, 2071, 7, 125, 2, 2, 2071, 2073, 7, 238, 2, 2, 2072, 2074, 7, 268, 2, 2, 2073, 2072, 3, 2, 2, 2, 2073, 2074, 3, 2, 2, 2, 2074, 2075, 3, 2, 2, 2, 2075, 2076, 7, 121, 2, 2, 2076, 2077, 7, 32, 2, 2, 2077, 2078, 7, 238, 2, 2, 2078, 2079, 7, 34, 2, 2, 2079, 2080, 7, 238, 2, 2, 2080, 2081, 7, 124, 2, 2, 2081, 2082, 7, 238, 2, 2, 2082, 2083, 7, 125, 2, 2, 2083, 2084, 7, 238, 2, 2, 2084, 2085, 7, 272, 2, 2, 2085, 261, 3, 2, 2, 2, 2086, 2087, 7, 226, 2, 2, 2087, 2088, 7, 103, 2, 2, 2088, 2089, 7, 264, 2, 2, 2089, 2090, 7, 128, 2, 2, 2090, 2091, 7, 32, 2, 2, 2091, 2092, 7, 238, 2, 2, 2092, 2093, 7, 34, 2, 2, 2093, 2094, 7, 238, 2, 2, 2094, 2096, 7, 124, 2, 2, 2095, 2097, 7, 238, 2, 2, 2096, 2095, 3, 2, 2, 2, 2096, 2097, 3, 2, 2, 2, 2097, 2098, 3, 2, 2, 2, 2098, 2100, 7, 125, 2, 2, 2099, 2101, 7, 238, 2, 2, 2100, 2099, 3, 2, 2, 2, 2100, 2101, 3, 2, 2, 2, 2101, 2102, 3, 2, 2, 2, 2102, 2103, 7, 272, 2, 2, 2103, 263, 3, 2, 2, 2, 2104, 2105, 7, 227, 2, 2, 2105, 2106, 7, 267, 2, 2, 2106, 2107, 7, 255, 2, 2, 2107, 2108, 7, 128, 2, 2, 2108, 2109, 7, 32, 2, 2, 2109, 2110, 7, 238, 2, 2, 2110, 2111, 7, 34, 2, 2, 2111, 2112, 7, 238, 2, 2, 2112, 2113, 7, 124, 2, 2, 2113, 2114, 7, 238, 2, 2, 2114, 2115, 7, 125, 2, 2, 2115, 2116, 7, 238, 2, 2, 2116, 2117, 7, 272, 2, 2, 2117, 265, 3, 2, 2, 2, 2118, 2119, 7, 228, 2, 2, 2119, 2120, 7, 267, 2, 2, 2120, 2121, 7, 128, 2, 2, 2121, 2122, 7, 32, 2, 2, 2122, 2123, 7, 238, 2, 2, 2123, 2124, 7, 34, 2, 2, 2124, 2125, 7, 238, 2, 2, 2125, 2126, 7, 124, 2, 2, 2126, 2127, 7, 238, 2, 2, 2127, 2128, 7, 125, 2, 2, 2128, 2129, 7, 238, 2, 2, 2129, 2130, 7, 272, 2, 2, 2130, 267, 3, 2, 2, 2, 2131, 2132, 7, 229, 2, 2, 2132, 2133, 7, 272, 2, 2, 2133, 269, 3, 2, 2, 2, 2134, 2136, 7, 230, 2, 2, 2135, 2137, 7, 268, 2, 2, 2136, 2135, 3, 2, 2, 2, 2136, 2137, 3, 2, 2, 2, 2137, 2138, 3, 2, 2, 2, 2138, 2139, 7, 237, 2, 2, 2139, 271, 3, 2, 2, 2, 2140, 2141, 7, 231, 2, 2, 2141, 2142, 7, 232, 2, 2, 2142, 2144, 7, 257, 2, 2, 2143, 2145, 7, 268, 2, 2, 2144, 2143, 3, 2, 2, 2, 2144, 2145, 3, 2, 2, 2, 2145, 2146, 3, 2, 2, 2, 2146, 2147, 7, 272, 2, 2, 2147, 2148, 7, 237, 2, 2, 2148, 2149, 7, 272, 2, 2, 2149, 2150, 7, 271, 2, 2, 2150, 2151, 7, 272, 2, 2, 2151, 273, 3, 2, 2, 2, 2152, 2153, 7, 272, 2, 2, 2153, 275, 3, 2, 2, 2, 2154, 2155, 7, 233, 2, 2, 2155, 277, 3, 2, 2, 2, 2156, 2157, 8, 140, 1, 2, 2157, 2163, 5, 280, 141, 2, 2158, 2163, 5, 282, 142, 2, 2159, 2163, 5, 284, 143, 2, 2160, 2163, 5, 290, 146, 2, 2161, 2163, 5, 292, 147, 2, 2162, 2156, 3, 2, 2, 2, 2162, 2158, 3, 2, 2, 2, 2162, 2159, 3, 2, 2, 2, 2162, 2160, 3, 2, 2, 2, 2162, 2161, 3, 2, 2, 2, 2163, 2169, 3, 2, 2, 2, 2164, 2165, 12, 8, 2, 2, 2165, 2166, 7, 245, 2, 2, 2166, 2168, 5, 278, 140, 9, 2167, 2164, 3, 2, 2, 2, 2168, 2171, 3, 2, 2, 2, 2169, 2167, 3, 2, 2, 2, 2169, 2170, 3, 2, 2, 2, 2170, 279, 3, 2, 2, 2, 2171, 2169, 3, 2, 2, 2, 2172, 2173, 7, 234, 2, 2, 2173, 2174, 5, 278, 140, 2, 2174, 281, 3, 2, 2, 2, 2175, 2176, 7, 257, 2, 2, 2176, 283, 3, 2, 2, 2, 2177, 2178, 7, 264, 2, 2, 2178, 285, 3, 2, 2, 2, 2179, 2180, 7, 266, 2, 2, 2180, 2181, 7, 40, 2, 2, 2181, 2182, 7, 236, 2, 2, 2182, 287, 3, 2, 2, 2, 2183, 2184, 7, 265, 2, 2, 2184, 289, 3, 2, 2, 2, 2185, 2186, 7, 235, 2, 2, 2186, 2187, 7, 259, 2, 2, 2187, 291, 3, 2, 2, 2, 2188, 2189, 7, 267, 2, 2, 2189, 293, 3, 2, 2, 2, 221, 296, 308, 314, 320, 326, 334, 339, 345, 349, 355, 360, 369, 374, 380, 389, 397, 403, 411, 417, 423, 431, 434, 440, 448, 454, 460, 466, 472, 478, 484, 490, 496, 502, 508, 513, 525, 533, 539, 660, 669, 673, 677, 690, 694, 698, 703, 715, 718, 728, 732, 735, 739, 744, 749, 753, 759, 763, 767, 771, 780, 805, 834, 839, 843, 847, 851, 858, 863, 867, 871, 875, 893, 904, 908, 912, 926, 931, 935, 942, 947, 951, 958, 963, 967, 975, 980, 984, 992, 997, 1001, 1011, 1016, 1020, 1026, 1064, 1069, 1076, 1081, 1085, 1089, 1098, 1103, 1113, 1117, 1122, 1128, 1166, 1181, 1191, 1196, 1203, 1208, 1219, 1240, 1249, 1253, 1258, 1267, 1271, 1283, 1329, 1333, 1336, 1340, 1353, 1362, 1375, 1390, 1395, 1399, 1406, 1414, 1419, 1427, 1432, 1436, 1441, 1445, 1456, 1461, 1465, 1495, 1506, 1515, 1524, 1545, 1551, 1556, 1562, 1571, 1577, 1586, 1592, 1603, 1609, 1614, 1617, 1621, 1625, 1628, 1634, 1643, 1647, 1652, 1655, 1661, 1667, 1675, 1681, 1686, 1692, 1703, 1709, 1717, 1723, 1756, 1762, 1785, 1789, 1794, 1798, 1802, 1806, 1814, 1825, 1830, 1834, 1837, 1849, 1854, 1857, 1865, 1874, 1878, 1882, 1888, 1892, 1910, 1927, 1932, 1949, 1954, 1971, 1976, 1988, 2001, 2006, 2020, 2035, 2040, 2053, 2057, 2073, 2096, 2100, 2136, 2144, 2162, 2169] \ No newline at end of file diff --git a/_server/.antlr/MotaAction.tokens b/_server/.antlr/MotaAction.tokens new file mode 100644 index 00000000..cf6d7b0f --- /dev/null +++ b/_server/.antlr/MotaAction.tokens @@ -0,0 +1,510 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +T__22=23 +T__23=24 +T__24=25 +T__25=26 +T__26=27 +T__27=28 +T__28=29 +T__29=30 +T__30=31 +T__31=32 +T__32=33 +T__33=34 +T__34=35 +T__35=36 +T__36=37 +T__37=38 +T__38=39 +T__39=40 +T__40=41 +T__41=42 +T__42=43 +T__43=44 +T__44=45 +T__45=46 +T__46=47 +T__47=48 +T__48=49 +T__49=50 +T__50=51 +T__51=52 +T__52=53 +T__53=54 +T__54=55 +T__55=56 +T__56=57 +T__57=58 +T__58=59 +T__59=60 +T__60=61 +T__61=62 +T__62=63 +T__63=64 +T__64=65 +T__65=66 +T__66=67 +T__67=68 +T__68=69 +T__69=70 +T__70=71 +T__71=72 +T__72=73 +T__73=74 +T__74=75 +T__75=76 +T__76=77 +T__77=78 +T__78=79 +T__79=80 +T__80=81 +T__81=82 +T__82=83 +T__83=84 +T__84=85 +T__85=86 +T__86=87 +T__87=88 +T__88=89 +T__89=90 +T__90=91 +T__91=92 +T__92=93 +T__93=94 +T__94=95 +T__95=96 +T__96=97 +T__97=98 +T__98=99 +T__99=100 +T__100=101 +T__101=102 +T__102=103 +T__103=104 +T__104=105 +T__105=106 +T__106=107 +T__107=108 +T__108=109 +T__109=110 +T__110=111 +T__111=112 +T__112=113 +T__113=114 +T__114=115 +T__115=116 +T__116=117 +T__117=118 +T__118=119 +T__119=120 +T__120=121 +T__121=122 +T__122=123 +T__123=124 +T__124=125 +T__125=126 +T__126=127 +T__127=128 +T__128=129 +T__129=130 +T__130=131 +T__131=132 +T__132=133 +T__133=134 +T__134=135 +T__135=136 +T__136=137 +T__137=138 +T__138=139 +T__139=140 +T__140=141 +T__141=142 +T__142=143 +T__143=144 +T__144=145 +T__145=146 +T__146=147 +T__147=148 +T__148=149 +T__149=150 +T__150=151 +T__151=152 +T__152=153 +T__153=154 +T__154=155 +T__155=156 +T__156=157 +T__157=158 +T__158=159 +T__159=160 +T__160=161 +T__161=162 +T__162=163 +T__163=164 +T__164=165 +T__165=166 +T__166=167 +T__167=168 +T__168=169 +T__169=170 +T__170=171 +T__171=172 +T__172=173 +T__173=174 +T__174=175 +T__175=176 +T__176=177 +T__177=178 +T__178=179 +T__179=180 +T__180=181 +T__181=182 +T__182=183 +T__183=184 +T__184=185 +T__185=186 +T__186=187 +T__187=188 +T__188=189 +T__189=190 +T__190=191 +T__191=192 +T__192=193 +T__193=194 +T__194=195 +T__195=196 +T__196=197 +T__197=198 +T__198=199 +T__199=200 +T__200=201 +T__201=202 +T__202=203 +T__203=204 +T__204=205 +T__205=206 +T__206=207 +T__207=208 +T__208=209 +T__209=210 +T__210=211 +T__211=212 +T__212=213 +T__213=214 +T__214=215 +T__215=216 +T__216=217 +T__217=218 +T__218=219 +T__219=220 +T__220=221 +T__221=222 +T__222=223 +T__223=224 +T__224=225 +T__225=226 +T__226=227 +T__227=228 +T__228=229 +T__229=230 +T__230=231 +T__231=232 +T__232=233 +IdText=234 +RawEvalString=235 +PosString=236 +Floor_List=237 +Stair_List=238 +SetTextPosition_List=239 +TextAlign_List=240 +TextBaseline_List=241 +ShopUse_List=242 +Arithmetic_List=243 +Weather_List=244 +B_0_List=245 +B_1_List=246 +Bg_Fg_List=247 +Event_List=248 +Floor_Meta_List=249 +Global_Attribute_List=250 +Global_Value_List=251 +Global_Flag_List=252 +Colour=253 +Angle=254 +Bool=255 +Int=256 +Letter_List=257 +Number=258 +Direction_List=259 +DirectionEx_List=260 +StepString=261 +IdString=262 +FixedId_List=263 +Id_List=264 +EvalString=265 +BGNL=266 +MeaningfulSplit=267 +BSTART=268 +BEND=269 +Newline=270 +WhiteSpace=271 +BlockComment=272 +LineComment=273 +'事件'=1 +'覆盖触发?'=2 +'启用'=3 +'通行状??'=4 +'显伤'=5 +'等级提升'=6 +'??'=7 +'称号'=8 +'是否扣除经验'=9 +'全局商店列表'=10 +'商店 id'=11 +'快捷商店栏中名称'=12 +'未开启状态则不显示在列表?'=13 +'执行的公共事? id'=14 +'参数列表'=15 +'标题'=16 +'图标'=17 +'共用times'=18 +'使用'=19 +'消??'=20 +'显示文字'=21 +'商店选项'=22 +'+='=23 +'战斗结束?'=24 +'获取道具?'=25 +'打开门后'=26 +'首次到达楼层'=27 +'每次到达楼层'=28 +'楼梯, 传?门'=29 +'x'=30 +','=31 +'y'=32 +'朝向'=33 +'动画时间'=34 +'允许穿??'=35 +'公共事件'=36 +'显示文章'=37 +':'=38 +'图像'=39 +'对话框效?'=40 +'添加注释'=41 +'自动剧情文本: 标题'=42 +'时间'=43 +'滚动剧情文本:'=44 +'行距'=45 +'不等待执行完?'=46 +'设置剧情文本的属?'=47 +'位置'=48 +'偏移像素'=49 +'对齐'=50 +'标题颜色'=51 +'正文颜色'=52 +'背景?'=53 +'粗体'=54 +'标题字体大小'=55 +'正文字体大小'=56 +'打字间隔'=57 +'字符间距'=58 +'显示提示'=59 +'图标ID'=60 +'数?操?'=61 +'名称'=62 +'?'=63 +'数?增?'=64 +'设置楼层属??'=65 +'楼层?'=66 +'设置全局属??'=67 +'设置全局数??'=68 +'设置系统??'=69 +'显示事件'=70 +'楼层'=71 +'隐藏事件'=72 +'触发事件'=73 +'不结束当前事?'=74 +'插入公共事件'=75 +'插入事件'=76 +'重启当前事件'=77 +'立刻结束当前事件'=78 +'转变图块?'=79 +'显示贴图'=80 +'隐藏贴图'=81 +'显示图层?'=82 +'隐藏图层?'=83 +'转变图层?'=84 +'?'=85 +'更改角色行走?'=86 +'更新状?栏和地图显?'=87 +'显示状?栏'=88 +'隐藏状?栏'=89 +'不隐藏竖屏工具栏'=90 +'显示勇士'=91 +'隐藏勇士'=92 +'更新怪物数据'=93 +'等待'=94 +'毫秒'=95 +'不可被Ctrl跳过'=96 +'强制战斗'=97 +'??'=98 +'?要钥?'=99 +'关门'=100 +'ID'=101 +'楼层切换'=102 +'位置切换'=103 +'勇士转向'=104 +'使用道具'=105 +'打开全局商店'=106 +'禁用全局商店'=107 +'跟随勇士'=108 +'行走?'=109 +'取消跟随'=110 +'画面震动'=111 +'显示动画'=112 +'设置视角'=113 +'左上角坐?'=114 +'移动视角'=115 +'显示图片'=116 +'图片编号'=117 +'图片'=118 +'绘制的起点像?'=119 +'不?明?'=120 +'裁剪的起点像?'=121 +'?'=122 +'?'=123 +'显示图片化文?'=124 +'文本内容'=125 +'起点像素'=126 +'清除图片'=127 +'显示动图'=128 +'起点像素位置'=129 +'清除?有动?'=130 +'图片移动'=131 +'终点像素位置'=132 +'移动时间'=133 +'更改画面色调'=134 +'恢复画面色调'=135 +'画面闪烁'=136 +'单次时间'=137 +'执行次数'=138 +'更改天气'=139 +'强度'=140 +'移动事件'=141 +'不消?'=142 +'移动勇士'=143 +'跳跃事件'=144 +'起始 x'=145 +'终止 x'=146 +'跳跃勇士'=147 +'播放背景音乐'=148 +'持续到下个本事件'=149 +'暂停背景音乐'=150 +'恢复背景音乐'=151 +'预加载背景音?'=152 +'释放背景音乐的缓?'=153 +'播放音效'=154 +'停止之前音效'=155 +'停止?有音?'=156 +'设置音量'=157 +'渐变时间'=158 +'游戏胜利,结局'=159 +'不计入榜?'=160 +'游戏失败,结局'=161 +'直接回到标题界面'=162 +'接受用户输入数字,提示'=163 +'接受用户输入文本,提示'=164 +'如果'=165 +'否则'=166 +'多重分歧 条件判定'=167 +'如果?'=168 +'的场?'=169 +'不跳?'=170 +'选项'=171 +'子?项'=172 +'颜色'=173 +'出现条件'=174 +'显示确认?'=175 +'确定的场?'=176 +'(默认?中'=177 +'?'=178 +'取消的场?'=179 +'前置条件循环'=180 +'?'=181 +'?'=182 +'后置条件循环'=183 +'跳出当前循环或公共事?'=184 +'继续当前循环'=185 +'等待用户操作并获得按键或点击信息'=186 +'等待?有异步事件执行完?'=187 +'呼出怪物手册'=188 +'呼出存档页面'=189 +'自动存档'=190 +'不提?'=191 +'呼出读档页面'=192 +'ui绘制并预?'=193 +'(双击此项可进行预览?'=194 +'清除画布'=195 +'清空画布'=196 +'设置画布属??'=197 +'字体'=198 +'填充样式'=199 +'边框样式'=200 +'线宽?'=201 +'基准?'=202 +'z?'=203 +'绘制文本'=204 +'样式'=205 +'?大宽?'=206 +'绘制描边文本'=207 +'绘制多行文本'=208 +'字体大小'=209 +'绘制矩形'=210 +'绘制矩形边框'=211 +'线宽'=212 +'绘制线段'=213 +'终点像素'=214 +'绘制箭头'=215 +'绘制多边?'=216 +'顶点像素列表'=217 +'绘制多边形边?'=218 +'绘制?'=219 +'圆心'=220 +'半径'=221 +'绘制圆边?'=222 +'绘制图片'=223 +'绘制图标'=224 +'绘制背景?'=225 +'绘制闪烁光标'=226 +'清除闪烁光标'=227 +'自定义事?'=228 +'自定义JS脚本'=229 +'不自动执行下?个事?'=230 +'=== statement ^ === expression v ==='=231 +'?'=232 +'独立??'=233 +'BGNLaergayergfuybgv'=266 +'=== meaningful ^ ==='=267 +'??'=268 +'结束'=269 diff --git a/_server/.antlr/MotaActionLexer.interp b/_server/.antlr/MotaActionLexer.interp new file mode 100644 index 00000000..849092d0 --- /dev/null +++ b/_server/.antlr/MotaActionLexer.interp @@ -0,0 +1,841 @@ +token literal names: +null +'事件' +'覆盖触发?' +'启用' +'通行状??' +'显伤' +'等级提升' +'??' +'称号' +'是否扣除经验' +'全局商店列表' +'商店 id' +'快捷商店栏中名称' +'未开启状态则不显示在列表?' +'执行的公共事? id' +'参数列表' +'标题' +'图标' +'共用times' +'使用' +'消??' +'显示文字' +'商店选项' +'+=' +'战斗结束?' +'获取道具?' +'打开门后' +'首次到达楼层' +'每次到达楼层' +'楼梯, 传?门' +'x' +',' +'y' +'朝向' +'动画时间' +'允许穿??' +'公共事件' +'显示文章' +':' +'图像' +'对话框效?' +'添加注释' +'自动剧情文本: 标题' +'时间' +'滚动剧情文本:' +'行距' +'不等待执行完?' +'设置剧情文本的属?' +'位置' +'偏移像素' +'对齐' +'标题颜色' +'正文颜色' +'背景?' +'粗体' +'标题字体大小' +'正文字体大小' +'打字间隔' +'字符间距' +'显示提示' +'图标ID' +'数?操?' +'名称' +'?' +'数?增?' +'设置楼层属??' +'楼层?' +'设置全局属??' +'设置全局数??' +'设置系统??' +'显示事件' +'楼层' +'隐藏事件' +'触发事件' +'不结束当前事?' +'插入公共事件' +'插入事件' +'重启当前事件' +'立刻结束当前事件' +'转变图块?' +'显示贴图' +'隐藏贴图' +'显示图层?' +'隐藏图层?' +'转变图层?' +'?' +'更改角色行走?' +'更新状?栏和地图显?' +'显示状?栏' +'隐藏状?栏' +'不隐藏竖屏工具栏' +'显示勇士' +'隐藏勇士' +'更新怪物数据' +'等待' +'毫秒' +'不可被Ctrl跳过' +'强制战斗' +'??' +'?要钥?' +'关门' +'ID' +'楼层切换' +'位置切换' +'勇士转向' +'使用道具' +'打开全局商店' +'禁用全局商店' +'跟随勇士' +'行走?' +'取消跟随' +'画面震动' +'显示动画' +'设置视角' +'左上角坐?' +'移动视角' +'显示图片' +'图片编号' +'图片' +'绘制的起点像?' +'不?明?' +'裁剪的起点像?' +'?' +'?' +'显示图片化文?' +'文本内容' +'起点像素' +'清除图片' +'显示动图' +'起点像素位置' +'清除?有动?' +'图片移动' +'终点像素位置' +'移动时间' +'更改画面色调' +'恢复画面色调' +'画面闪烁' +'单次时间' +'执行次数' +'更改天气' +'强度' +'移动事件' +'不消?' +'移动勇士' +'跳跃事件' +'起始 x' +'终止 x' +'跳跃勇士' +'播放背景音乐' +'持续到下个本事件' +'暂停背景音乐' +'恢复背景音乐' +'预加载背景音?' +'释放背景音乐的缓?' +'播放音效' +'停止之前音效' +'停止?有音?' +'设置音量' +'渐变时间' +'游戏胜利,结局' +'不计入榜?' +'游戏失败,结局' +'直接回到标题界面' +'接受用户输入数字,提示' +'接受用户输入文本,提示' +'如果' +'否则' +'多重分歧 条件判定' +'如果?' +'的场?' +'不跳?' +'选项' +'子?项' +'颜色' +'出现条件' +'显示确认?' +'确定的场?' +'(默认?中' +'?' +'取消的场?' +'前置条件循环' +'?' +'?' +'后置条件循环' +'跳出当前循环或公共事?' +'继续当前循环' +'等待用户操作并获得按键或点击信息' +'等待?有异步事件执行完?' +'呼出怪物手册' +'呼出存档页面' +'自动存档' +'不提?' +'呼出读档页面' +'ui绘制并预?' +'(双击此项可进行预览?' +'清除画布' +'清空画布' +'设置画布属??' +'字体' +'填充样式' +'边框样式' +'线宽?' +'基准?' +'z?' +'绘制文本' +'样式' +'?大宽?' +'绘制描边文本' +'绘制多行文本' +'字体大小' +'绘制矩形' +'绘制矩形边框' +'线宽' +'绘制线段' +'终点像素' +'绘制箭头' +'绘制多边?' +'顶点像素列表' +'绘制多边形边?' +'绘制?' +'圆心' +'半径' +'绘制圆边?' +'绘制图片' +'绘制图标' +'绘制背景?' +'绘制闪烁光标' +'清除闪烁光标' +'自定义事?' +'自定义JS脚本' +'不自动执行下?个事?' +'=== statement ^ === expression v ===' +'?' +'独立??' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'BGNLaergayergfuybgv' +'=== meaningful ^ ===' +'??' +'结束' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +IdText +RawEvalString +PosString +Floor_List +Stair_List +SetTextPosition_List +TextAlign_List +TextBaseline_List +ShopUse_List +Arithmetic_List +Weather_List +B_0_List +B_1_List +Bg_Fg_List +Event_List +Floor_Meta_List +Global_Attribute_List +Global_Value_List +Global_Flag_List +Colour +Angle +Bool +Int +Letter_List +Number +Direction_List +DirectionEx_List +StepString +IdString +FixedId_List +Id_List +EvalString +BGNL +MeaningfulSplit +BSTART +BEND +Newline +WhiteSpace +BlockComment +LineComment + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +T__9 +T__10 +T__11 +T__12 +T__13 +T__14 +T__15 +T__16 +T__17 +T__18 +T__19 +T__20 +T__21 +T__22 +T__23 +T__24 +T__25 +T__26 +T__27 +T__28 +T__29 +T__30 +T__31 +T__32 +T__33 +T__34 +T__35 +T__36 +T__37 +T__38 +T__39 +T__40 +T__41 +T__42 +T__43 +T__44 +T__45 +T__46 +T__47 +T__48 +T__49 +T__50 +T__51 +T__52 +T__53 +T__54 +T__55 +T__56 +T__57 +T__58 +T__59 +T__60 +T__61 +T__62 +T__63 +T__64 +T__65 +T__66 +T__67 +T__68 +T__69 +T__70 +T__71 +T__72 +T__73 +T__74 +T__75 +T__76 +T__77 +T__78 +T__79 +T__80 +T__81 +T__82 +T__83 +T__84 +T__85 +T__86 +T__87 +T__88 +T__89 +T__90 +T__91 +T__92 +T__93 +T__94 +T__95 +T__96 +T__97 +T__98 +T__99 +T__100 +T__101 +T__102 +T__103 +T__104 +T__105 +T__106 +T__107 +T__108 +T__109 +T__110 +T__111 +T__112 +T__113 +T__114 +T__115 +T__116 +T__117 +T__118 +T__119 +T__120 +T__121 +T__122 +T__123 +T__124 +T__125 +T__126 +T__127 +T__128 +T__129 +T__130 +T__131 +T__132 +T__133 +T__134 +T__135 +T__136 +T__137 +T__138 +T__139 +T__140 +T__141 +T__142 +T__143 +T__144 +T__145 +T__146 +T__147 +T__148 +T__149 +T__150 +T__151 +T__152 +T__153 +T__154 +T__155 +T__156 +T__157 +T__158 +T__159 +T__160 +T__161 +T__162 +T__163 +T__164 +T__165 +T__166 +T__167 +T__168 +T__169 +T__170 +T__171 +T__172 +T__173 +T__174 +T__175 +T__176 +T__177 +T__178 +T__179 +T__180 +T__181 +T__182 +T__183 +T__184 +T__185 +T__186 +T__187 +T__188 +T__189 +T__190 +T__191 +T__192 +T__193 +T__194 +T__195 +T__196 +T__197 +T__198 +T__199 +T__200 +T__201 +T__202 +T__203 +T__204 +T__205 +T__206 +T__207 +T__208 +T__209 +T__210 +T__211 +T__212 +T__213 +T__214 +T__215 +T__216 +T__217 +T__218 +T__219 +T__220 +T__221 +T__222 +T__223 +T__224 +T__225 +T__226 +T__227 +T__228 +T__229 +T__230 +T__231 +T__232 +IdText +RawEvalString +PosString +Floor_List +Stair_List +SetTextPosition_List +TextAlign_List +TextBaseline_List +ShopUse_List +Arithmetic_List +Weather_List +B_0_List +B_1_List +Bg_Fg_List +Event_List +Floor_Meta_List +Global_Attribute_List +Global_Value_List +Global_Flag_List +Colour +Angle +Bool +Int +Letter_List +Number +EXP +Direction_List +DirectionEx_List +StepString +IdString +FixedId_List +Id_List +EvalString +ESC_double +UNICODE +HEX +BGNL +MeaningfulSplit +Equote_double +BSTART +BEND +Newline +WhiteSpace +BlockComment +LineComment + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 275, 3748, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 182, 3, 182, 3, 182, 3, 183, 3, 183, 3, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 233, 3, 233, 3, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 6, 235, 2479, 10, 235, 13, 235, 14, 235, 2480, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 6, 236, 2500, 10, 236, 13, 236, 14, 236, 2501, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 6, 237, 2521, 10, 237, 13, 237, 14, 237, 2522, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 5, 238, 2540, 10, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 5, 239, 2581, 10, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 5, 240, 2603, 10, 240, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 5, 241, 2626, 10, 241, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 5, 242, 2647, 10, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 5, 243, 2655, 10, 243, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 5, 244, 2671, 10, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 5, 245, 2681, 10, 245, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 5, 246, 2700, 10, 246, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 5, 247, 2719, 10, 247, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 5, 248, 2731, 10, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 5, 249, 2758, 10, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 5, 250, 2889, 10, 250, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 5, 251, 2992, 10, 251, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 5, 252, 3117, 10, 252, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 5, 253, 3443, 10, 253, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 6, 254, 3462, 10, 254, 13, 254, 14, 254, 3463, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 6, 255, 3483, 10, 255, 13, 255, 14, 255, 3484, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 5, 256, 3496, 10, 256, 3, 257, 3, 257, 3, 257, 7, 257, 3501, 10, 257, 12, 257, 14, 257, 3504, 11, 257, 5, 257, 3506, 10, 257, 3, 258, 3, 258, 3, 259, 5, 259, 3511, 10, 259, 3, 259, 3, 259, 3, 259, 3, 259, 5, 259, 3517, 10, 259, 3, 259, 5, 259, 3520, 10, 259, 3, 259, 3, 259, 3, 259, 3, 259, 5, 259, 3526, 10, 259, 3, 259, 5, 259, 3529, 10, 259, 3, 260, 3, 260, 5, 260, 3533, 10, 260, 3, 260, 3, 260, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 5, 261, 3545, 10, 261, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 5, 262, 3558, 10, 262, 3, 263, 3, 263, 5, 263, 3562, 10, 263, 6, 263, 3564, 10, 263, 13, 263, 14, 263, 3565, 3, 264, 3, 264, 7, 264, 3570, 10, 264, 12, 264, 14, 264, 3573, 11, 264, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 5, 265, 3608, 10, 265, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 5, 266, 3633, 10, 266, 3, 267, 3, 267, 3, 267, 7, 267, 3638, 10, 267, 12, 267, 14, 267, 3641, 11, 267, 3, 267, 3, 267, 3, 268, 3, 268, 3, 268, 5, 268, 3648, 10, 268, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 273, 3, 273, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 275, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 5, 276, 3712, 10, 276, 3, 276, 5, 276, 3715, 10, 276, 3, 277, 6, 277, 3718, 10, 277, 13, 277, 14, 277, 3719, 3, 277, 3, 277, 3, 278, 3, 278, 3, 278, 3, 278, 7, 278, 3728, 10, 278, 12, 278, 14, 278, 3731, 11, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 7, 279, 3742, 10, 279, 12, 279, 14, 279, 3745, 11, 279, 3, 279, 3, 279, 3, 3729, 2, 280, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 114, 227, 115, 229, 116, 231, 117, 233, 118, 235, 119, 237, 120, 239, 121, 241, 122, 243, 123, 245, 124, 247, 125, 249, 126, 251, 127, 253, 128, 255, 129, 257, 130, 259, 131, 261, 132, 263, 133, 265, 134, 267, 135, 269, 136, 271, 137, 273, 138, 275, 139, 277, 140, 279, 141, 281, 142, 283, 143, 285, 144, 287, 145, 289, 146, 291, 147, 293, 148, 295, 149, 297, 150, 299, 151, 301, 152, 303, 153, 305, 154, 307, 155, 309, 156, 311, 157, 313, 158, 315, 159, 317, 160, 319, 161, 321, 162, 323, 163, 325, 164, 327, 165, 329, 166, 331, 167, 333, 168, 335, 169, 337, 170, 339, 171, 341, 172, 343, 173, 345, 174, 347, 175, 349, 176, 351, 177, 353, 178, 355, 179, 357, 180, 359, 181, 361, 182, 363, 183, 365, 184, 367, 185, 369, 186, 371, 187, 373, 188, 375, 189, 377, 190, 379, 191, 381, 192, 383, 193, 385, 194, 387, 195, 389, 196, 391, 197, 393, 198, 395, 199, 397, 200, 399, 201, 401, 202, 403, 203, 405, 204, 407, 205, 409, 206, 411, 207, 413, 208, 415, 209, 417, 210, 419, 211, 421, 212, 423, 213, 425, 214, 427, 215, 429, 216, 431, 217, 433, 218, 435, 219, 437, 220, 439, 221, 441, 222, 443, 223, 445, 224, 447, 225, 449, 226, 451, 227, 453, 228, 455, 229, 457, 230, 459, 231, 461, 232, 463, 233, 465, 234, 467, 235, 469, 236, 471, 237, 473, 238, 475, 239, 477, 240, 479, 241, 481, 242, 483, 243, 485, 244, 487, 245, 489, 246, 491, 247, 493, 248, 495, 249, 497, 250, 499, 251, 501, 252, 503, 253, 505, 254, 507, 255, 509, 256, 511, 257, 513, 258, 515, 259, 517, 260, 519, 2, 521, 261, 523, 262, 525, 263, 527, 264, 529, 265, 531, 266, 533, 267, 535, 2, 537, 2, 539, 2, 541, 268, 543, 269, 545, 2, 547, 270, 549, 271, 551, 272, 553, 273, 555, 274, 557, 275, 3, 2, 15, 6, 2, 44, 45, 47, 47, 49, 49, 96, 96, 4, 2, 62, 62, 64, 64, 3, 2, 51, 59, 3, 2, 50, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 6, 2, 50, 60, 67, 92, 97, 97, 99, 124, 4, 2, 36, 36, 94, 94, 10, 2, 36, 36, 49, 49, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 5, 2, 50, 59, 67, 72, 99, 104, 4, 2, 11, 11, 34, 34, 4, 2, 12, 12, 15, 15, 2, 3896, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 2, 463, 3, 2, 2, 2, 2, 465, 3, 2, 2, 2, 2, 467, 3, 2, 2, 2, 2, 469, 3, 2, 2, 2, 2, 471, 3, 2, 2, 2, 2, 473, 3, 2, 2, 2, 2, 475, 3, 2, 2, 2, 2, 477, 3, 2, 2, 2, 2, 479, 3, 2, 2, 2, 2, 481, 3, 2, 2, 2, 2, 483, 3, 2, 2, 2, 2, 485, 3, 2, 2, 2, 2, 487, 3, 2, 2, 2, 2, 489, 3, 2, 2, 2, 2, 491, 3, 2, 2, 2, 2, 493, 3, 2, 2, 2, 2, 495, 3, 2, 2, 2, 2, 497, 3, 2, 2, 2, 2, 499, 3, 2, 2, 2, 2, 501, 3, 2, 2, 2, 2, 503, 3, 2, 2, 2, 2, 505, 3, 2, 2, 2, 2, 507, 3, 2, 2, 2, 2, 509, 3, 2, 2, 2, 2, 511, 3, 2, 2, 2, 2, 513, 3, 2, 2, 2, 2, 515, 3, 2, 2, 2, 2, 517, 3, 2, 2, 2, 2, 521, 3, 2, 2, 2, 2, 523, 3, 2, 2, 2, 2, 525, 3, 2, 2, 2, 2, 527, 3, 2, 2, 2, 2, 529, 3, 2, 2, 2, 2, 531, 3, 2, 2, 2, 2, 533, 3, 2, 2, 2, 2, 541, 3, 2, 2, 2, 2, 543, 3, 2, 2, 2, 2, 547, 3, 2, 2, 2, 2, 549, 3, 2, 2, 2, 2, 551, 3, 2, 2, 2, 2, 553, 3, 2, 2, 2, 2, 555, 3, 2, 2, 2, 2, 557, 3, 2, 2, 2, 3, 559, 3, 2, 2, 2, 5, 563, 3, 2, 2, 2, 7, 572, 3, 2, 2, 2, 9, 576, 3, 2, 2, 2, 11, 584, 3, 2, 2, 2, 13, 588, 3, 2, 2, 2, 15, 595, 3, 2, 2, 2, 17, 600, 3, 2, 2, 2, 19, 604, 3, 2, 2, 2, 21, 614, 3, 2, 2, 2, 23, 624, 3, 2, 2, 2, 25, 631, 3, 2, 2, 2, 27, 644, 3, 2, 2, 2, 29, 665, 3, 2, 2, 2, 31, 680, 3, 2, 2, 2, 33, 687, 3, 2, 2, 2, 35, 691, 3, 2, 2, 2, 37, 695, 3, 2, 2, 2, 39, 704, 3, 2, 2, 2, 41, 708, 3, 2, 2, 2, 43, 713, 3, 2, 2, 2, 45, 720, 3, 2, 2, 2, 47, 727, 3, 2, 2, 2, 49, 730, 3, 2, 2, 2, 51, 739, 3, 2, 2, 2, 53, 748, 3, 2, 2, 2, 55, 755, 3, 2, 2, 2, 57, 765, 3, 2, 2, 2, 59, 775, 3, 2, 2, 2, 61, 786, 3, 2, 2, 2, 63, 788, 3, 2, 2, 2, 65, 790, 3, 2, 2, 2, 67, 792, 3, 2, 2, 2, 69, 796, 3, 2, 2, 2, 71, 803, 3, 2, 2, 2, 73, 811, 3, 2, 2, 2, 75, 818, 3, 2, 2, 2, 77, 825, 3, 2, 2, 2, 79, 827, 3, 2, 2, 2, 81, 831, 3, 2, 2, 2, 83, 840, 3, 2, 2, 2, 85, 847, 3, 2, 2, 2, 87, 862, 3, 2, 2, 2, 89, 866, 3, 2, 2, 2, 91, 877, 3, 2, 2, 2, 93, 881, 3, 2, 2, 2, 95, 893, 3, 2, 2, 2, 97, 908, 3, 2, 2, 2, 99, 912, 3, 2, 2, 2, 101, 919, 3, 2, 2, 2, 103, 923, 3, 2, 2, 2, 105, 930, 3, 2, 2, 2, 107, 937, 3, 2, 2, 2, 109, 943, 3, 2, 2, 2, 111, 947, 3, 2, 2, 2, 113, 957, 3, 2, 2, 2, 115, 967, 3, 2, 2, 2, 117, 974, 3, 2, 2, 2, 119, 981, 3, 2, 2, 2, 121, 988, 3, 2, 2, 2, 123, 994, 3, 2, 2, 2, 125, 1002, 3, 2, 2, 2, 127, 1006, 3, 2, 2, 2, 129, 1009, 3, 2, 2, 2, 131, 1017, 3, 2, 2, 2, 133, 1028, 3, 2, 2, 2, 135, 1034, 3, 2, 2, 2, 137, 1045, 3, 2, 2, 2, 139, 1056, 3, 2, 2, 2, 141, 1067, 3, 2, 2, 2, 143, 1074, 3, 2, 2, 2, 145, 1078, 3, 2, 2, 2, 147, 1085, 3, 2, 2, 2, 149, 1092, 3, 2, 2, 2, 151, 1104, 3, 2, 2, 2, 153, 1114, 3, 2, 2, 2, 155, 1121, 3, 2, 2, 2, 157, 1131, 3, 2, 2, 2, 159, 1144, 3, 2, 2, 2, 161, 1153, 3, 2, 2, 2, 163, 1160, 3, 2, 2, 2, 165, 1167, 3, 2, 2, 2, 167, 1176, 3, 2, 2, 2, 169, 1185, 3, 2, 2, 2, 171, 1194, 3, 2, 2, 2, 173, 1197, 3, 2, 2, 2, 175, 1209, 3, 2, 2, 2, 177, 1226, 3, 2, 2, 2, 179, 1235, 3, 2, 2, 2, 181, 1244, 3, 2, 2, 2, 183, 1257, 3, 2, 2, 2, 185, 1264, 3, 2, 2, 2, 187, 1271, 3, 2, 2, 2, 189, 1281, 3, 2, 2, 2, 191, 1285, 3, 2, 2, 2, 193, 1289, 3, 2, 2, 2, 195, 1301, 3, 2, 2, 2, 197, 1308, 3, 2, 2, 2, 199, 1313, 3, 2, 2, 2, 201, 1321, 3, 2, 2, 2, 203, 1325, 3, 2, 2, 2, 205, 1328, 3, 2, 2, 2, 207, 1335, 3, 2, 2, 2, 209, 1342, 3, 2, 2, 2, 211, 1349, 3, 2, 2, 2, 213, 1356, 3, 2, 2, 2, 215, 1366, 3, 2, 2, 2, 217, 1376, 3, 2, 2, 2, 219, 1383, 3, 2, 2, 2, 221, 1389, 3, 2, 2, 2, 223, 1396, 3, 2, 2, 2, 225, 1403, 3, 2, 2, 2, 227, 1410, 3, 2, 2, 2, 229, 1417, 3, 2, 2, 2, 231, 1426, 3, 2, 2, 2, 233, 1433, 3, 2, 2, 2, 235, 1440, 3, 2, 2, 2, 237, 1447, 3, 2, 2, 2, 239, 1451, 3, 2, 2, 2, 241, 1463, 3, 2, 2, 2, 243, 1471, 3, 2, 2, 2, 245, 1483, 3, 2, 2, 2, 247, 1486, 3, 2, 2, 2, 249, 1489, 3, 2, 2, 2, 251, 1501, 3, 2, 2, 2, 253, 1508, 3, 2, 2, 2, 255, 1515, 3, 2, 2, 2, 257, 1522, 3, 2, 2, 2, 259, 1529, 3, 2, 2, 2, 261, 1539, 3, 2, 2, 2, 263, 1550, 3, 2, 2, 2, 265, 1557, 3, 2, 2, 2, 267, 1567, 3, 2, 2, 2, 269, 1574, 3, 2, 2, 2, 271, 1584, 3, 2, 2, 2, 273, 1594, 3, 2, 2, 2, 275, 1601, 3, 2, 2, 2, 277, 1608, 3, 2, 2, 2, 279, 1615, 3, 2, 2, 2, 281, 1622, 3, 2, 2, 2, 283, 1626, 3, 2, 2, 2, 285, 1633, 3, 2, 2, 2, 287, 1639, 3, 2, 2, 2, 289, 1646, 3, 2, 2, 2, 291, 1653, 3, 2, 2, 2, 293, 1659, 3, 2, 2, 2, 295, 1665, 3, 2, 2, 2, 297, 1672, 3, 2, 2, 2, 299, 1682, 3, 2, 2, 2, 301, 1695, 3, 2, 2, 2, 303, 1705, 3, 2, 2, 2, 305, 1715, 3, 2, 2, 2, 307, 1727, 3, 2, 2, 2, 309, 1742, 3, 2, 2, 2, 311, 1749, 3, 2, 2, 2, 313, 1759, 3, 2, 2, 2, 315, 1770, 3, 2, 2, 2, 317, 1777, 3, 2, 2, 2, 319, 1784, 3, 2, 2, 2, 321, 1795, 3, 2, 2, 2, 323, 1804, 3, 2, 2, 2, 325, 1815, 3, 2, 2, 2, 327, 1828, 3, 2, 2, 2, 329, 1845, 3, 2, 2, 2, 331, 1862, 3, 2, 2, 2, 333, 1866, 3, 2, 2, 2, 335, 1870, 3, 2, 2, 2, 337, 1884, 3, 2, 2, 2, 339, 1890, 3, 2, 2, 2, 341, 1896, 3, 2, 2, 2, 343, 1902, 3, 2, 2, 2, 345, 1906, 3, 2, 2, 2, 347, 1912, 3, 2, 2, 2, 349, 1916, 3, 2, 2, 2, 351, 1923, 3, 2, 2, 2, 353, 1932, 3, 2, 2, 2, 355, 1941, 3, 2, 2, 2, 357, 1950, 3, 2, 2, 2, 359, 1953, 3, 2, 2, 2, 361, 1962, 3, 2, 2, 2, 363, 1972, 3, 2, 2, 2, 365, 1975, 3, 2, 2, 2, 367, 1978, 3, 2, 2, 2, 369, 1988, 3, 2, 2, 2, 371, 2006, 3, 2, 2, 2, 373, 2016, 3, 2, 2, 2, 375, 2041, 3, 2, 2, 2, 377, 2061, 3, 2, 2, 2, 379, 2071, 3, 2, 2, 2, 381, 2081, 3, 2, 2, 2, 383, 2088, 3, 2, 2, 2, 385, 2094, 3, 2, 2, 2, 387, 2104, 3, 2, 2, 2, 389, 2115, 3, 2, 2, 2, 391, 2133, 3, 2, 2, 2, 393, 2140, 3, 2, 2, 2, 395, 2147, 3, 2, 2, 2, 397, 2158, 3, 2, 2, 2, 399, 2162, 3, 2, 2, 2, 401, 2169, 3, 2, 2, 2, 403, 2176, 3, 2, 2, 2, 405, 2182, 3, 2, 2, 2, 407, 2188, 3, 2, 2, 2, 409, 2192, 3, 2, 2, 2, 411, 2199, 3, 2, 2, 2, 413, 2203, 3, 2, 2, 2, 415, 2211, 3, 2, 2, 2, 417, 2221, 3, 2, 2, 2, 419, 2231, 3, 2, 2, 2, 421, 2238, 3, 2, 2, 2, 423, 2245, 3, 2, 2, 2, 425, 2255, 3, 2, 2, 2, 427, 2259, 3, 2, 2, 2, 429, 2266, 3, 2, 2, 2, 431, 2273, 3, 2, 2, 2, 433, 2280, 3, 2, 2, 2, 435, 2289, 3, 2, 2, 2, 437, 2299, 3, 2, 2, 2, 439, 2311, 3, 2, 2, 2, 441, 2317, 3, 2, 2, 2, 443, 2321, 3, 2, 2, 2, 445, 2325, 3, 2, 2, 2, 447, 2334, 3, 2, 2, 2, 449, 2341, 3, 2, 2, 2, 451, 2348, 3, 2, 2, 2, 453, 2357, 3, 2, 2, 2, 455, 2367, 3, 2, 2, 2, 457, 2377, 3, 2, 2, 2, 459, 2386, 3, 2, 2, 2, 461, 2396, 3, 2, 2, 2, 463, 2413, 3, 2, 2, 2, 465, 2450, 3, 2, 2, 2, 467, 2453, 3, 2, 2, 2, 469, 2478, 3, 2, 2, 2, 471, 2499, 3, 2, 2, 2, 473, 2520, 3, 2, 2, 2, 475, 2539, 3, 2, 2, 2, 477, 2580, 3, 2, 2, 2, 479, 2602, 3, 2, 2, 2, 481, 2625, 3, 2, 2, 2, 483, 2646, 3, 2, 2, 2, 485, 2654, 3, 2, 2, 2, 487, 2670, 3, 2, 2, 2, 489, 2680, 3, 2, 2, 2, 491, 2699, 3, 2, 2, 2, 493, 2718, 3, 2, 2, 2, 495, 2730, 3, 2, 2, 2, 497, 2757, 3, 2, 2, 2, 499, 2888, 3, 2, 2, 2, 501, 2991, 3, 2, 2, 2, 503, 3116, 3, 2, 2, 2, 505, 3442, 3, 2, 2, 2, 507, 3461, 3, 2, 2, 2, 509, 3482, 3, 2, 2, 2, 511, 3495, 3, 2, 2, 2, 513, 3505, 3, 2, 2, 2, 515, 3507, 3, 2, 2, 2, 517, 3528, 3, 2, 2, 2, 519, 3530, 3, 2, 2, 2, 521, 3544, 3, 2, 2, 2, 523, 3557, 3, 2, 2, 2, 525, 3563, 3, 2, 2, 2, 527, 3567, 3, 2, 2, 2, 529, 3607, 3, 2, 2, 2, 531, 3632, 3, 2, 2, 2, 533, 3634, 3, 2, 2, 2, 535, 3644, 3, 2, 2, 2, 537, 3649, 3, 2, 2, 2, 539, 3655, 3, 2, 2, 2, 541, 3657, 3, 2, 2, 2, 543, 3677, 3, 2, 2, 2, 545, 3698, 3, 2, 2, 2, 547, 3700, 3, 2, 2, 2, 549, 3705, 3, 2, 2, 2, 551, 3714, 3, 2, 2, 2, 553, 3717, 3, 2, 2, 2, 555, 3723, 3, 2, 2, 2, 557, 3737, 3, 2, 2, 2, 559, 560, 7, 27998, 2, 2, 560, 561, 7, 23339, 2, 2, 561, 562, 7, 27428, 2, 2, 562, 4, 3, 2, 2, 2, 563, 564, 7, 29783, 2, 2, 564, 565, 7, 21979, 2, 2, 565, 566, 7, 27916, 2, 2, 566, 567, 7, 29787, 2, 2, 567, 568, 7, 65090, 2, 2, 568, 569, 7, 24388, 2, 2, 569, 570, 7, 37733, 2, 2, 570, 571, 7, 65535, 2, 2, 571, 6, 3, 2, 2, 2, 572, 573, 7, 37724, 2, 2, 573, 574, 7, 57886, 2, 2, 574, 575, 7, 25958, 2, 2, 575, 8, 3, 2, 2, 2, 576, 577, 7, 38317, 2, 2, 577, 578, 7, 27701, 2, 2, 578, 579, 7, 58643, 2, 2, 579, 580, 7, 37914, 2, 2, 580, 581, 7, 33335, 2, 2, 581, 582, 7, 65535, 2, 2, 582, 583, 7, 65535, 2, 2, 583, 10, 3, 2, 2, 2, 584, 585, 7, 37830, 2, 2, 585, 586, 7, 21479, 2, 2, 586, 587, 7, 28610, 2, 2, 587, 12, 3, 2, 2, 2, 588, 589, 7, 32477, 2, 2, 589, 590, 7, 22798, 2, 2, 590, 591, 7, 39561, 2, 2, 591, 592, 7, 37821, 2, 2, 592, 593, 7, 24878, 2, 2, 593, 594, 7, 23822, 2, 2, 594, 14, 3, 2, 2, 2, 595, 596, 7, 38345, 2, 2, 596, 597, 7, 65535, 2, 2, 597, 598, 7, 23035, 2, 2, 598, 599, 7, 65535, 2, 2, 599, 16, 3, 2, 2, 2, 600, 601, 7, 32459, 2, 2, 601, 602, 7, 26497, 2, 2, 602, 603, 7, 24449, 2, 2, 603, 18, 3, 2, 2, 2, 604, 605, 7, 37830, 2, 2, 605, 606, 7, 57884, 2, 2, 606, 607, 7, 24771, 2, 2, 607, 608, 7, 37815, 2, 2, 608, 609, 7, 65355, 2, 2, 609, 610, 7, 27344, 2, 2, 610, 611, 7, 32515, 2, 2, 611, 612, 7, 24541, 2, 2, 612, 613, 7, 29531, 2, 2, 613, 20, 3, 2, 2, 2, 614, 615, 7, 37713, 2, 2, 615, 616, 7, 12583, 2, 2, 616, 617, 7, 30510, 2, 2, 617, 618, 7, 37729, 2, 2, 618, 619, 7, 21977, 2, 2, 619, 620, 7, 31799, 2, 2, 620, 621, 7, 37716, 2, 2, 621, 622, 7, 26950, 2, 2, 622, 623, 7, 12293, 2, 2, 623, 22, 3, 2, 2, 2, 624, 625, 7, 37729, 2, 2, 625, 626, 7, 21977, 2, 2, 626, 627, 7, 31799, 2, 2, 627, 628, 7, 34, 2, 2, 628, 629, 7, 107, 2, 2, 629, 630, 7, 102, 2, 2, 630, 24, 3, 2, 2, 2, 631, 632, 7, 36425, 2, 2, 632, 633, 7, 57509, 2, 2, 633, 634, 7, 23888, 2, 2, 634, 635, 7, 37729, 2, 2, 635, 636, 7, 21977, 2, 2, 636, 637, 7, 31799, 2, 2, 637, 638, 7, 37839, 2, 2, 638, 639, 7, 24528, 2, 2, 639, 640, 7, 33107, 2, 2, 640, 641, 7, 37724, 2, 2, 641, 642, 7, 23945, 2, 2, 642, 643, 7, 1056, 2, 2, 643, 26, 3, 2, 2, 2, 644, 645, 7, 37834, 2, 2, 645, 646, 7, 57414, 2, 2, 646, 647, 7, 32019, 2, 2, 647, 648, 7, 37724, 2, 2, 648, 649, 7, 57886, 2, 2, 649, 650, 7, 23034, 2, 2, 650, 651, 7, 37806, 2, 2, 651, 652, 7, 20346, 2, 2, 652, 653, 7, 22449, 2, 2, 653, 654, 7, 28053, 2, 2, 654, 655, 7, 23944, 2, 2, 655, 656, 7, 27147, 2, 2, 656, 657, 7, 32450, 2, 2, 657, 658, 7, 21702, 2, 2, 658, 659, 7, 28268, 2, 2, 659, 660, 7, 37716, 2, 2, 660, 661, 7, 26950, 2, 2, 661, 662, 7, 12293, 2, 2, 662, 663, 7, 28053, 2, 2, 663, 664, 7, 65535, 2, 2, 664, 28, 3, 2, 2, 2, 665, 666, 7, 37815, 2, 2, 666, 667, 7, 1096, 2, 2, 667, 668, 7, 58643, 2, 2, 668, 669, 7, 37930, 2, 2, 669, 670, 7, 21229, 2, 2, 670, 671, 7, 21463, 2, 2, 671, 672, 7, 37713, 2, 2, 672, 673, 7, 21466, 2, 2, 673, 674, 7, 31786, 2, 2, 674, 675, 7, 28002, 2, 2, 675, 676, 7, 65535, 2, 2, 676, 677, 7, 34, 2, 2, 677, 678, 7, 107, 2, 2, 678, 679, 7, 102, 2, 2, 679, 30, 3, 2, 2, 2, 680, 681, 7, 37723, 2, 2, 681, 682, 7, 20637, 2, 2, 682, 683, 7, 26273, 2, 2, 683, 684, 7, 37716, 2, 2, 684, 685, 7, 26950, 2, 2, 685, 686, 7, 12293, 2, 2, 686, 32, 3, 2, 2, 2, 687, 688, 7, 37839, 2, 2, 688, 689, 7, 22254, 2, 2, 689, 690, 7, 58751, 2, 2, 690, 34, 3, 2, 2, 2, 691, 692, 7, 37735, 2, 2, 692, 693, 7, 28846, 2, 2, 693, 694, 7, 29221, 2, 2, 694, 36, 3, 2, 2, 2, 695, 696, 7, 37713, 2, 2, 696, 697, 7, 36779, 2, 2, 697, 698, 7, 25958, 2, 2, 698, 699, 7, 118, 2, 2, 699, 700, 7, 107, 2, 2, 700, 701, 7, 111, 2, 2, 701, 702, 7, 103, 2, 2, 702, 703, 7, 117, 2, 2, 703, 38, 3, 2, 2, 2, 704, 705, 7, 28005, 2, 2, 705, 706, 7, 36330, 2, 2, 706, 707, 7, 25958, 2, 2, 707, 40, 3, 2, 2, 2, 708, 709, 7, 23059, 2, 2, 709, 710, 7, 22565, 2, 2, 710, 711, 7, 65535, 2, 2, 711, 712, 7, 65535, 2, 2, 712, 42, 3, 2, 2, 2, 713, 714, 7, 37830, 2, 2, 714, 715, 7, 21097, 2, 2, 715, 716, 7, 12380, 2, 2, 716, 717, 7, 37828, 2, 2, 717, 718, 7, 22249, 2, 2, 718, 719, 7, 29929, 2, 2, 719, 44, 3, 2, 2, 2, 720, 721, 7, 37729, 2, 2, 721, 722, 7, 21977, 2, 2, 722, 723, 7, 31799, 2, 2, 723, 724, 7, 38317, 2, 2, 724, 725, 7, 22802, 2, 2, 725, 726, 7, 12303, 2, 2, 726, 46, 3, 2, 2, 2, 727, 728, 7, 45, 2, 2, 728, 729, 7, 63, 2, 2, 729, 48, 3, 2, 2, 2, 730, 731, 7, 37814, 2, 2, 731, 732, 7, 27197, 2, 2, 732, 733, 7, 26529, 2, 2, 733, 734, 7, 32515, 2, 2, 734, 735, 7, 25782, 2, 2, 735, 736, 7, 28525, 2, 2, 736, 737, 7, 37724, 2, 2, 737, 738, 7, 65535, 2, 2, 738, 50, 3, 2, 2, 2, 739, 740, 7, 38016, 2, 2, 740, 741, 7, 23794, 2, 2, 741, 742, 7, 24393, 2, 2, 742, 743, 7, 38318, 2, 2, 743, 744, 7, 25781, 2, 2, 744, 745, 7, 21505, 2, 2, 745, 746, 7, 37724, 2, 2, 746, 747, 7, 65535, 2, 2, 747, 52, 3, 2, 2, 2, 748, 749, 7, 37815, 2, 2, 749, 750, 7, 25781, 2, 2, 750, 751, 7, 32019, 2, 2, 751, 752, 7, 38340, 2, 2, 752, 753, 7, 12583, 2, 2, 753, 754, 7, 24729, 2, 2, 754, 54, 3, 2, 2, 2, 755, 756, 7, 26853, 2, 2, 756, 757, 7, 26666, 2, 2, 757, 758, 7, 57534, 2, 2, 758, 759, 7, 37716, 2, 2, 759, 760, 7, 25294, 2, 2, 760, 761, 7, 25580, 2, 2, 761, 762, 7, 22950, 2, 2, 762, 763, 7, 29008, 2, 2, 763, 764, 7, 30514, 2, 2, 764, 56, 3, 2, 2, 2, 765, 766, 7, 23013, 2, 2, 766, 767, 7, 24534, 2, 2, 767, 768, 7, 57534, 2, 2, 768, 769, 7, 37716, 2, 2, 769, 770, 7, 25294, 2, 2, 770, 771, 7, 25580, 2, 2, 771, 772, 7, 22950, 2, 2, 772, 773, 7, 29008, 2, 2, 773, 774, 7, 30514, 2, 2, 774, 58, 3, 2, 2, 2, 775, 776, 7, 22950, 2, 2, 776, 777, 7, 20862, 2, 2, 777, 778, 7, 59244, 2, 2, 778, 779, 7, 46, 2, 2, 779, 780, 7, 34, 2, 2, 780, 781, 7, 28030, 2, 2, 781, 782, 7, 29373, 2, 2, 782, 783, 7, 65535, 2, 2, 783, 784, 7, 20354, 2, 2, 784, 785, 7, 26862, 2, 2, 785, 60, 3, 2, 2, 2, 786, 787, 7, 122, 2, 2, 787, 62, 3, 2, 2, 2, 788, 789, 7, 46, 2, 2, 789, 64, 3, 2, 2, 2, 790, 791, 7, 123, 2, 2, 791, 66, 3, 2, 2, 2, 792, 793, 7, 37834, 2, 2, 793, 794, 7, 28616, 2, 2, 794, 795, 7, 24734, 2, 2, 795, 68, 3, 2, 2, 2, 796, 797, 7, 37718, 2, 2, 797, 798, 7, 12585, 2, 2, 798, 799, 7, 25984, 2, 2, 799, 800, 7, 37829, 2, 2, 800, 801, 7, 22551, 2, 2, 801, 802, 7, 26881, 2, 2, 802, 70, 3, 2, 2, 2, 803, 804, 7, 37713, 2, 2, 804, 805, 7, 20351, 2, 2, 805, 806, 7, 57745, 2, 2, 806, 807, 7, 32462, 2, 2, 807, 808, 7, 22361, 2, 2, 808, 809, 7, 65535, 2, 2, 809, 810, 7, 65535, 2, 2, 810, 72, 3, 2, 2, 2, 811, 812, 7, 37713, 2, 2, 812, 813, 7, 57602, 2, 2, 813, 814, 7, 21475, 2, 2, 814, 815, 7, 27998, 2, 2, 815, 816, 7, 23339, 2, 2, 816, 817, 7, 27428, 2, 2, 817, 74, 3, 2, 2, 2, 818, 819, 7, 37830, 2, 2, 819, 820, 7, 21097, 2, 2, 820, 821, 7, 12380, 2, 2, 821, 822, 7, 37828, 2, 2, 822, 823, 7, 22251, 2, 2, 823, 824, 7, 29689, 2, 2, 824, 76, 3, 2, 2, 2, 825, 826, 7, 60, 2, 2, 826, 78, 3, 2, 2, 2, 827, 828, 7, 37735, 2, 2, 828, 829, 7, 24809, 2, 2, 829, 830, 7, 20764, 2, 2, 830, 80, 3, 2, 2, 2, 831, 832, 7, 28727, 2, 2, 832, 833, 7, 30791, 2, 2, 833, 834, 7, 30271, 2, 2, 834, 835, 7, 22937, 2, 2, 835, 836, 7, 21978, 2, 2, 836, 837, 7, 26215, 2, 2, 837, 838, 7, 37837, 2, 2, 838, 839, 7, 65535, 2, 2, 839, 82, 3, 2, 2, 2, 840, 841, 7, 23077, 2, 2, 841, 842, 7, 35828, 2, 2, 842, 843, 7, 23008, 2, 2, 843, 844, 7, 23051, 2, 2, 844, 845, 7, 12587, 2, 2, 845, 846, 7, 22134, 2, 2, 846, 84, 3, 2, 2, 2, 847, 848, 7, 38009, 2, 2, 848, 849, 7, 57414, 2, 2, 849, 850, 7, 23019, 2, 2, 850, 851, 7, 37717, 2, 2, 851, 852, 7, 1094, 2, 2, 852, 853, 7, 20753, 2, 2, 853, 854, 7, 37828, 2, 2, 854, 855, 7, 22250, 2, 2, 855, 856, 7, 28274, 2, 2, 856, 857, 7, 60, 2, 2, 857, 858, 7, 34, 2, 2, 858, 859, 7, 37839, 2, 2, 859, 860, 7, 22254, 2, 2, 860, 861, 7, 58751, 2, 2, 861, 86, 3, 2, 2, 2, 862, 863, 7, 37829, 2, 2, 863, 864, 7, 22551, 2, 2, 864, 865, 7, 26881, 2, 2, 865, 88, 3, 2, 2, 2, 866, 867, 7, 23116, 2, 2, 867, 868, 7, 27694, 2, 2, 868, 869, 7, 23019, 2, 2, 869, 870, 7, 37717, 2, 2, 870, 871, 7, 1094, 2, 2, 871, 872, 7, 20753, 2, 2, 872, 873, 7, 37828, 2, 2, 873, 874, 7, 22250, 2, 2, 874, 875, 7, 28274, 2, 2, 875, 876, 7, 60, 2, 2, 876, 90, 3, 2, 2, 2, 877, 878, 7, 29725, 2, 2, 878, 879, 7, 23685, 2, 2, 879, 880, 7, 31389, 2, 2, 880, 92, 3, 2, 2, 2, 881, 882, 7, 28053, 2, 2, 882, 883, 7, 23945, 2, 2, 883, 884, 7, 29907, 2, 2, 884, 885, 7, 23538, 2, 2, 885, 886, 7, 21616, 2, 2, 886, 887, 7, 22719, 2, 2, 887, 888, 7, 29725, 2, 2, 888, 889, 7, 23679, 2, 2, 889, 890, 7, 30062, 2, 2, 890, 891, 7, 23013, 2, 2, 891, 892, 7, 65535, 2, 2, 892, 94, 3, 2, 2, 2, 893, 894, 7, 29827, 2, 2, 894, 895, 7, 21097, 2, 2, 895, 896, 7, 30088, 2, 2, 896, 897, 7, 37717, 2, 2, 897, 898, 7, 1094, 2, 2, 898, 899, 7, 20753, 2, 2, 899, 900, 7, 37828, 2, 2, 900, 901, 7, 22250, 2, 2, 901, 902, 7, 28274, 2, 2, 902, 903, 7, 37930, 2, 2, 903, 904, 7, 21229, 2, 2, 904, 905, 7, 30554, 2, 2, 905, 906, 7, 37806, 2, 2, 906, 907, 7, 65535, 2, 2, 907, 96, 3, 2, 2, 2, 908, 909, 7, 28005, 2, 2, 909, 910, 7, 23945, 2, 2, 910, 911, 7, 30088, 2, 2, 911, 98, 3, 2, 2, 2, 912, 913, 7, 37709, 2, 2, 913, 914, 7, 24535, 2, 2, 914, 915, 7, 1067, 2, 2, 915, 916, 7, 37711, 2, 2, 916, 917, 7, 24535, 2, 2, 917, 918, 7, 30990, 2, 2, 918, 100, 3, 2, 2, 2, 919, 920, 7, 28727, 2, 2, 920, 921, 7, 24404, 2, 2, 921, 922, 7, 32138, 2, 2, 922, 102, 3, 2, 2, 2, 923, 924, 7, 37839, 2, 2, 924, 925, 7, 22254, 2, 2, 925, 926, 7, 58751, 2, 2, 926, 927, 7, 26866, 2, 2, 927, 928, 7, 28360, 2, 2, 928, 929, 7, 22732, 2, 2, 929, 104, 3, 2, 2, 2, 930, 931, 7, 23007, 2, 2, 931, 932, 7, 65352, 2, 2, 932, 933, 7, 26501, 2, 2, 933, 934, 7, 26866, 2, 2, 934, 935, 7, 28360, 2, 2, 935, 936, 7, 22732, 2, 2, 936, 106, 3, 2, 2, 2, 937, 938, 7, 38005, 2, 2, 938, 939, 7, 23680, 2, 2, 939, 940, 7, 27355, 2, 2, 940, 941, 7, 38011, 2, 2, 941, 942, 7, 65535, 2, 2, 942, 108, 3, 2, 2, 2, 943, 944, 7, 32496, 2, 2, 944, 945, 7, 26944, 2, 2, 945, 946, 7, 32141, 2, 2, 946, 110, 3, 2, 2, 2, 947, 948, 7, 37839, 2, 2, 948, 949, 7, 22254, 2, 2, 949, 950, 7, 58751, 2, 2, 950, 951, 7, 28701, 2, 2, 951, 952, 7, 26944, 2, 2, 952, 953, 7, 32141, 2, 2, 953, 954, 7, 28600, 2, 2, 954, 955, 7, 1093, 2, 2, 955, 956, 7, 30382, 2, 2, 956, 112, 3, 2, 2, 2, 957, 958, 7, 23007, 2, 2, 958, 959, 7, 65352, 2, 2, 959, 960, 7, 26501, 2, 2, 960, 961, 7, 28701, 2, 2, 961, 962, 7, 26944, 2, 2, 962, 963, 7, 32141, 2, 2, 963, 964, 7, 28600, 2, 2, 964, 965, 7, 1093, 2, 2, 965, 966, 7, 30382, 2, 2, 966, 114, 3, 2, 2, 2, 967, 968, 7, 37815, 2, 2, 968, 969, 7, 25781, 2, 2, 969, 970, 7, 29929, 2, 2, 970, 971, 7, 38340, 2, 2, 971, 972, 7, 25776, 2, 2, 972, 973, 7, 27561, 2, 2, 973, 116, 3, 2, 2, 2, 974, 975, 7, 28701, 2, 2, 975, 976, 7, 26949, 2, 2, 976, 977, 7, 57539, 2, 2, 977, 978, 7, 38340, 2, 2, 978, 979, 7, 30925, 2, 2, 979, 980, 7, 31389, 2, 2, 980, 118, 3, 2, 2, 2, 981, 982, 7, 37830, 2, 2, 982, 983, 7, 21097, 2, 2, 983, 984, 7, 12380, 2, 2, 984, 985, 7, 37821, 2, 2, 985, 986, 7, 24880, 2, 2, 986, 987, 7, 12380, 2, 2, 987, 120, 3, 2, 2, 2, 988, 989, 7, 37735, 2, 2, 989, 990, 7, 28846, 2, 2, 990, 991, 7, 29221, 2, 2, 991, 992, 7, 75, 2, 2, 992, 993, 7, 70, 2, 2, 993, 122, 3, 2, 2, 2, 994, 995, 7, 37827, 2, 2, 995, 996, 7, 26497, 2, 2, 996, 997, 7, 65535, 2, 2, 997, 998, 7, 20862, 2, 2, 998, 999, 7, 25657, 2, 2, 999, 1000, 7, 28005, 2, 2, 1000, 1001, 7, 65535, 2, 2, 1001, 124, 3, 2, 2, 2, 1002, 1003, 7, 37724, 2, 2, 1003, 1004, 7, 23945, 2, 2, 1004, 1005, 7, 1056, 2, 2, 1005, 126, 3, 2, 2, 2, 1006, 1007, 7, 37708, 2, 2, 1007, 1008, 7, 65535, 2, 2, 1008, 128, 3, 2, 2, 2, 1009, 1010, 7, 37827, 2, 2, 1010, 1011, 7, 26497, 2, 2, 1011, 1012, 7, 65535, 2, 2, 1012, 1013, 7, 29008, 2, 2, 1013, 1014, 7, 58757, 2, 2, 1014, 1015, 7, 37715, 2, 2, 1015, 1016, 7, 65535, 2, 2, 1016, 130, 3, 2, 2, 2, 1017, 1018, 7, 29827, 2, 2, 1018, 1019, 7, 21097, 2, 2, 1019, 1020, 7, 30088, 2, 2, 1020, 1021, 7, 22950, 2, 2, 1021, 1022, 7, 29008, 2, 2, 1022, 1023, 7, 30514, 2, 2, 1023, 1024, 7, 28768, 2, 2, 1024, 1025, 7, 28854, 2, 2, 1025, 1026, 7, 65535, 2, 2, 1026, 1027, 7, 65535, 2, 2, 1027, 132, 3, 2, 2, 2, 1028, 1029, 7, 22950, 2, 2, 1029, 1030, 7, 29008, 2, 2, 1030, 1031, 7, 30514, 2, 2, 1031, 1032, 7, 37724, 2, 2, 1032, 1033, 7, 65535, 2, 2, 1033, 134, 3, 2, 2, 2, 1034, 1035, 7, 29827, 2, 2, 1035, 1036, 7, 21097, 2, 2, 1036, 1037, 7, 30088, 2, 2, 1037, 1038, 7, 37713, 2, 2, 1038, 1039, 7, 12583, 2, 2, 1039, 1040, 7, 30510, 2, 2, 1040, 1041, 7, 28768, 2, 2, 1041, 1042, 7, 28854, 2, 2, 1042, 1043, 7, 65535, 2, 2, 1043, 1044, 7, 65535, 2, 2, 1044, 136, 3, 2, 2, 2, 1045, 1046, 7, 29827, 2, 2, 1046, 1047, 7, 21097, 2, 2, 1047, 1048, 7, 30088, 2, 2, 1048, 1049, 7, 37713, 2, 2, 1049, 1050, 7, 12583, 2, 2, 1050, 1051, 7, 30510, 2, 2, 1051, 1052, 7, 37827, 2, 2, 1052, 1053, 7, 26497, 2, 2, 1053, 1054, 7, 65535, 2, 2, 1054, 1055, 7, 65535, 2, 2, 1055, 138, 3, 2, 2, 2, 1056, 1057, 7, 29827, 2, 2, 1057, 1058, 7, 21097, 2, 2, 1058, 1059, 7, 30088, 2, 2, 1059, 1060, 7, 32497, 2, 2, 1060, 1061, 7, 33638, 2, 2, 1061, 1062, 7, 31932, 2, 2, 1062, 1063, 7, 23536, 2, 2, 1063, 1064, 7, 65535, 2, 2, 1064, 1065, 7, 37713, 2, 2, 1065, 1066, 7, 65535, 2, 2, 1066, 140, 3, 2, 2, 2, 1067, 1068, 7, 37830, 2, 2, 1068, 1069, 7, 21097, 2, 2, 1069, 1070, 7, 12380, 2, 2, 1070, 1071, 7, 27998, 2, 2, 1071, 1072, 7, 23339, 2, 2, 1072, 1073, 7, 27428, 2, 2, 1073, 142, 3, 2, 2, 2, 1074, 1075, 7, 22950, 2, 2, 1075, 1076, 7, 29008, 2, 2, 1076, 1077, 7, 30514, 2, 2, 1077, 144, 3, 2, 2, 2, 1078, 1079, 7, 38343, 2, 2, 1079, 1080, 7, 24881, 2, 2, 1080, 1081, 7, 26830, 2, 2, 1081, 1082, 7, 27998, 2, 2, 1082, 1083, 7, 23339, 2, 2, 1083, 1084, 7, 27428, 2, 2, 1084, 146, 3, 2, 2, 2, 1085, 1086, 7, 29787, 2, 2, 1086, 1087, 7, 65090, 2, 2, 1087, 1088, 7, 24388, 2, 2, 1088, 1089, 7, 27998, 2, 2, 1089, 1090, 7, 23339, 2, 2, 1090, 1091, 7, 27428, 2, 2, 1091, 148, 3, 2, 2, 2, 1092, 1093, 7, 28053, 2, 2, 1093, 1094, 7, 23945, 2, 2, 1094, 1095, 7, 31914, 2, 2, 1095, 1096, 7, 37835, 2, 2, 1096, 1097, 7, 29113, 2, 2, 1097, 1098, 7, 32141, 2, 2, 1098, 1099, 7, 37717, 2, 2, 1099, 1100, 7, 23942, 2, 2, 1100, 1101, 7, 31786, 2, 2, 1101, 1102, 7, 28002, 2, 2, 1102, 1103, 7, 65535, 2, 2, 1103, 150, 3, 2, 2, 2, 1104, 1105, 7, 37821, 2, 2, 1105, 1106, 7, 25491, 2, 2, 1106, 1107, 7, 21448, 2, 2, 1107, 1108, 7, 37713, 2, 2, 1108, 1109, 7, 57602, 2, 2, 1109, 1110, 7, 21475, 2, 2, 1110, 1111, 7, 27998, 2, 2, 1111, 1112, 7, 23339, 2, 2, 1112, 1113, 7, 27428, 2, 2, 1113, 152, 3, 2, 2, 2, 1114, 1115, 7, 37821, 2, 2, 1115, 1116, 7, 25491, 2, 2, 1116, 1117, 7, 21448, 2, 2, 1117, 1118, 7, 27998, 2, 2, 1118, 1119, 7, 23339, 2, 2, 1119, 1120, 7, 27428, 2, 2, 1120, 154, 3, 2, 2, 2, 1121, 1122, 7, 38324, 2, 2, 1122, 1123, 7, 23943, 2, 2, 1123, 1124, 7, 24784, 2, 2, 1124, 1125, 7, 35122, 2, 2, 1125, 1126, 7, 25781, 2, 2, 1126, 1127, 7, 22690, 2, 2, 1127, 1128, 7, 27998, 2, 2, 1128, 1129, 7, 23339, 2, 2, 1129, 1130, 7, 27428, 2, 2, 1130, 156, 3, 2, 2, 2, 1131, 1132, 7, 32470, 2, 2, 1132, 1133, 7, 23340, 2, 2, 1133, 1134, 7, 22500, 2, 2, 1134, 1135, 7, 32515, 2, 2, 1135, 1136, 7, 25782, 2, 2, 1136, 1137, 7, 28525, 2, 2, 1137, 1138, 7, 35122, 2, 2, 1138, 1139, 7, 25781, 2, 2, 1139, 1140, 7, 22690, 2, 2, 1140, 1141, 7, 27998, 2, 2, 1141, 1142, 7, 23339, 2, 2, 1142, 1143, 7, 27428, 2, 2, 1143, 158, 3, 2, 2, 2, 1144, 1145, 7, 26464, 2, 2, 1145, 1146, 7, 57602, 2, 2, 1146, 1147, 7, 24395, 2, 2, 1147, 1148, 7, 37735, 2, 2, 1148, 1149, 7, 24809, 2, 2, 1149, 1150, 7, 28515, 2, 2, 1150, 1151, 7, 28053, 2, 2, 1151, 1152, 7, 65535, 2, 2, 1152, 160, 3, 2, 2, 2, 1153, 1154, 7, 37830, 2, 2, 1154, 1155, 7, 21097, 2, 2, 1155, 1156, 7, 12380, 2, 2, 1156, 1157, 7, 29842, 2, 2, 1157, 1158, 7, 26451, 2, 2, 1158, 1159, 7, 27994, 2, 2, 1159, 162, 3, 2, 2, 2, 1160, 1161, 7, 38343, 2, 2, 1161, 1162, 7, 24881, 2, 2, 1162, 1163, 7, 26830, 2, 2, 1163, 1164, 7, 29842, 2, 2, 1164, 1165, 7, 26451, 2, 2, 1165, 1166, 7, 27994, 2, 2, 1166, 164, 3, 2, 2, 2, 1167, 1168, 7, 37830, 2, 2, 1168, 1169, 7, 21097, 2, 2, 1169, 1170, 7, 12380, 2, 2, 1170, 1171, 7, 37735, 2, 2, 1171, 1172, 7, 24809, 2, 2, 1172, 1173, 7, 30514, 2, 2, 1173, 1174, 7, 37737, 2, 2, 1174, 1175, 7, 65535, 2, 2, 1175, 166, 3, 2, 2, 2, 1176, 1177, 7, 38343, 2, 2, 1177, 1178, 7, 24881, 2, 2, 1178, 1179, 7, 26830, 2, 2, 1179, 1180, 7, 37735, 2, 2, 1180, 1181, 7, 24809, 2, 2, 1181, 1182, 7, 30514, 2, 2, 1182, 1183, 7, 37737, 2, 2, 1183, 1184, 7, 65535, 2, 2, 1184, 168, 3, 2, 2, 2, 1185, 1186, 7, 26464, 2, 2, 1186, 1187, 7, 57602, 2, 2, 1187, 1188, 7, 24395, 2, 2, 1188, 1189, 7, 37735, 2, 2, 1189, 1190, 7, 24809, 2, 2, 1190, 1191, 7, 30514, 2, 2, 1191, 1192, 7, 37737, 2, 2, 1192, 1193, 7, 65535, 2, 2, 1193, 170, 3, 2, 2, 2, 1194, 1195, 7, 28053, 2, 2, 1195, 1196, 7, 65535, 2, 2, 1196, 172, 3, 2, 2, 2, 1197, 1198, 7, 37833, 2, 2, 1198, 1199, 7, 23386, 2, 2, 1199, 1200, 7, 25982, 2, 2, 1200, 1201, 7, 29787, 2, 2, 1201, 1202, 7, 25495, 2, 2, 1202, 1203, 7, 22732, 2, 2, 1203, 1204, 7, 29725, 2, 2, 1204, 1205, 7, 23685, 2, 2, 1205, 1206, 7, 34509, 2, 2, 1206, 1207, 7, 37735, 2, 2, 1207, 1208, 7, 65535, 2, 2, 1208, 174, 3, 2, 2, 2, 1209, 1210, 7, 37833, 2, 2, 1210, 1211, 7, 23386, 2, 2, 1211, 1212, 7, 26572, 2, 2, 1212, 1213, 7, 37914, 2, 2, 1213, 1214, 7, 33335, 2, 2, 1214, 1215, 7, 65535, 2, 2, 1215, 1216, 7, 20347, 2, 2, 1216, 1217, 7, 29232, 2, 2, 1217, 1218, 7, 37726, 2, 2, 1218, 1219, 7, 23679, 2, 2, 1219, 1220, 7, 28278, 2, 2, 1220, 1221, 7, 37735, 2, 2, 1221, 1222, 7, 28846, 2, 2, 1222, 1223, 7, 27147, 2, 2, 1223, 1224, 7, 28030, 2, 2, 1224, 1225, 7, 65535, 2, 2, 1225, 176, 3, 2, 2, 2, 1226, 1227, 7, 37830, 2, 2, 1227, 1228, 7, 21097, 2, 2, 1228, 1229, 7, 12380, 2, 2, 1229, 1230, 7, 37914, 2, 2, 1230, 1231, 7, 33335, 2, 2, 1231, 1232, 7, 65535, 2, 2, 1232, 1233, 7, 20347, 2, 2, 1233, 1234, 7, 29232, 2, 2, 1234, 178, 3, 2, 2, 2, 1235, 1236, 7, 38343, 2, 2, 1236, 1237, 7, 24881, 2, 2, 1237, 1238, 7, 26830, 2, 2, 1238, 1239, 7, 37914, 2, 2, 1239, 1240, 7, 33335, 2, 2, 1240, 1241, 7, 65535, 2, 2, 1241, 1242, 7, 20347, 2, 2, 1242, 1243, 7, 29232, 2, 2, 1243, 180, 3, 2, 2, 2, 1244, 1245, 7, 28053, 2, 2, 1245, 1246, 7, 23947, 2, 2, 1246, 1247, 7, 27557, 2, 2, 1247, 1248, 7, 38042, 2, 2, 1248, 1249, 7, 24535, 2, 2, 1249, 1250, 7, 29677, 2, 2, 1250, 1251, 7, 28768, 2, 2, 1251, 1252, 7, 24533, 2, 2, 1252, 1253, 7, 20242, 2, 2, 1253, 1254, 7, 37713, 2, 2, 1254, 1255, 7, 38157, 2, 2, 1255, 1256, 7, 29232, 2, 2, 1256, 182, 3, 2, 2, 2, 1257, 1258, 7, 37830, 2, 2, 1258, 1259, 7, 21097, 2, 2, 1259, 1260, 7, 12380, 2, 2, 1260, 1261, 7, 37719, 2, 2, 1261, 1262, 7, 22249, 2, 2, 1262, 1263, 7, 65293, 2, 2, 1263, 184, 3, 2, 2, 2, 1264, 1265, 7, 38343, 2, 2, 1265, 1266, 7, 24881, 2, 2, 1266, 1267, 7, 26830, 2, 2, 1267, 1268, 7, 37719, 2, 2, 1268, 1269, 7, 22249, 2, 2, 1269, 1270, 7, 65293, 2, 2, 1270, 186, 3, 2, 2, 2, 1271, 1272, 7, 37833, 2, 2, 1272, 1273, 7, 23386, 2, 2, 1273, 1274, 7, 26572, 2, 2, 1274, 1275, 7, 37806, 2, 2, 1275, 1276, 7, 57416, 2, 2, 1276, 1277, 7, 22721, 2, 2, 1277, 1278, 7, 37827, 2, 2, 1278, 1279, 7, 29258, 2, 2, 1279, 1280, 7, 23875, 2, 2, 1280, 188, 3, 2, 2, 2, 1281, 1282, 7, 32477, 2, 2, 1282, 1283, 7, 22796, 2, 2, 1283, 1284, 7, 32225, 2, 2, 1284, 190, 3, 2, 2, 2, 1285, 1286, 7, 23013, 2, 2, 1286, 1287, 7, 57510, 2, 2, 1287, 1288, 7, 59225, 2, 2, 1288, 192, 3, 2, 2, 2, 1289, 1290, 7, 28053, 2, 2, 1290, 1291, 7, 23943, 2, 2, 1291, 1292, 7, 24436, 2, 2, 1292, 1293, 7, 29724, 2, 2, 1293, 1294, 7, 29559, 2, 2, 1294, 1295, 7, 118, 2, 2, 1295, 1296, 7, 116, 2, 2, 1296, 1297, 7, 110, 2, 2, 1297, 1298, 7, 29884, 2, 2, 1298, 1299, 7, 23458, 2, 2, 1299, 1300, 7, 32325, 2, 2, 1300, 194, 3, 2, 2, 2, 1301, 1302, 7, 23536, 2, 2, 1302, 1303, 7, 21702, 2, 2, 1303, 1304, 7, 22489, 2, 2, 1304, 1305, 7, 37814, 2, 2, 1305, 1306, 7, 27197, 2, 2, 1306, 1307, 7, 26529, 2, 2, 1307, 196, 3, 2, 2, 2, 1308, 1309, 7, 23536, 2, 2, 1309, 1310, 7, 65535, 2, 2, 1310, 1311, 7, 38340, 2, 2, 1311, 1312, 7, 65535, 2, 2, 1312, 198, 3, 2, 2, 2, 1313, 1314, 7, 38345, 2, 2, 1314, 1315, 7, 65535, 2, 2, 1315, 1316, 7, 29783, 2, 2, 1316, 1317, 7, 20354, 2, 2, 1317, 1318, 7, 25374, 2, 2, 1318, 1319, 7, 37720, 2, 2, 1319, 1320, 7, 65535, 2, 2, 1320, 200, 3, 2, 2, 2, 1321, 1322, 7, 37713, 2, 2, 1322, 1323, 7, 25279, 2, 2, 1323, 1324, 7, 26862, 2, 2, 1324, 202, 3, 2, 2, 2, 1325, 1326, 7, 75, 2, 2, 1326, 1327, 7, 70, 2, 2, 1327, 204, 3, 2, 2, 2, 1328, 1329, 7, 22950, 2, 2, 1329, 1330, 7, 29008, 2, 2, 1330, 1331, 7, 30514, 2, 2, 1331, 1332, 7, 37716, 2, 2, 1332, 1333, 7, 22250, 2, 2, 1333, 1334, 7, 23860, 2, 2, 1334, 206, 3, 2, 2, 2, 1335, 1336, 7, 28005, 2, 2, 1336, 1337, 7, 23945, 2, 2, 1337, 1338, 7, 30088, 2, 2, 1338, 1339, 7, 37716, 2, 2, 1339, 1340, 7, 22250, 2, 2, 1340, 1341, 7, 23860, 2, 2, 1341, 208, 3, 2, 2, 2, 1342, 1343, 7, 37719, 2, 2, 1343, 1344, 7, 22249, 2, 2, 1344, 1345, 7, 65293, 2, 2, 1345, 1346, 7, 26464, 2, 2, 1346, 1347, 7, 57602, 2, 2, 1347, 1348, 7, 24734, 2, 2, 1348, 210, 3, 2, 2, 2, 1349, 1350, 7, 28005, 2, 2, 1350, 1351, 7, 36330, 2, 2, 1351, 1352, 7, 25958, 2, 2, 1352, 1353, 7, 38318, 2, 2, 1353, 1354, 7, 25781, 2, 2, 1354, 1355, 7, 21505, 2, 2, 1355, 212, 3, 2, 2, 2, 1356, 1357, 7, 37815, 2, 2, 1357, 1358, 7, 25781, 2, 2, 1358, 1359, 7, 32019, 2, 2, 1359, 1360, 7, 37713, 2, 2, 1360, 1361, 7, 12583, 2, 2, 1361, 1362, 7, 30510, 2, 2, 1362, 1363, 7, 37729, 2, 2, 1363, 1364, 7, 21977, 2, 2, 1364, 1365, 7, 31799, 2, 2, 1365, 214, 3, 2, 2, 2, 1366, 1367, 7, 32452, 2, 2, 1367, 1368, 7, 20348, 2, 2, 1368, 1369, 7, 25958, 2, 2, 1369, 1370, 7, 37713, 2, 2, 1370, 1371, 7, 12583, 2, 2, 1371, 1372, 7, 30510, 2, 2, 1372, 1373, 7, 37729, 2, 2, 1373, 1374, 7, 21977, 2, 2, 1374, 1375, 7, 31799, 2, 2, 1375, 216, 3, 2, 2, 2, 1376, 1377, 7, 29884, 2, 2, 1377, 1378, 7, 29118, 2, 2, 1378, 1379, 7, 27556, 2, 2, 1379, 1380, 7, 37719, 2, 2, 1380, 1381, 7, 22249, 2, 2, 1381, 1382, 7, 65293, 2, 2, 1382, 218, 3, 2, 2, 2, 1383, 1384, 7, 29725, 2, 2, 1384, 1385, 7, 23685, 2, 2, 1385, 1386, 7, 34509, 2, 2, 1386, 1387, 7, 37735, 2, 2, 1387, 1388, 7, 65535, 2, 2, 1388, 220, 3, 2, 2, 2, 1389, 1390, 7, 37723, 2, 2, 1390, 1391, 7, 26666, 2, 2, 1391, 1392, 7, 31225, 2, 2, 1392, 1393, 7, 29884, 2, 2, 1393, 1394, 7, 29118, 2, 2, 1394, 1395, 7, 27556, 2, 2, 1395, 222, 3, 2, 2, 2, 1396, 1397, 7, 37924, 2, 2, 1397, 1398, 7, 23132, 2, 2, 1398, 1399, 7, 28530, 2, 2, 1399, 1400, 7, 38345, 2, 2, 1400, 1401, 7, 22249, 2, 2, 1401, 1402, 7, 23019, 2, 2, 1402, 224, 3, 2, 2, 2, 1403, 1404, 7, 37830, 2, 2, 1404, 1405, 7, 21097, 2, 2, 1405, 1406, 7, 12380, 2, 2, 1406, 1407, 7, 37718, 2, 2, 1407, 1408, 7, 12585, 2, 2, 1408, 1409, 7, 25984, 2, 2, 1409, 226, 3, 2, 2, 2, 1410, 1411, 7, 29827, 2, 2, 1411, 1412, 7, 21097, 2, 2, 1412, 1413, 7, 30088, 2, 2, 1413, 1414, 7, 29787, 2, 2, 1414, 1415, 7, 21980, 2, 2, 1415, 1416, 7, 59225, 2, 2, 1416, 228, 3, 2, 2, 2, 1417, 1418, 7, 23482, 2, 2, 1418, 1419, 7, 65089, 2, 2, 1419, 1420, 7, 31492, 2, 2, 1420, 1421, 7, 29787, 2, 2, 1421, 1422, 7, 25491, 2, 2, 1422, 1423, 7, 28505, 2, 2, 1423, 1424, 7, 37839, 2, 2, 1424, 1425, 7, 65535, 2, 2, 1425, 230, 3, 2, 2, 2, 1426, 1427, 7, 32459, 2, 2, 1427, 1428, 7, 35828, 2, 2, 1428, 1429, 7, 23019, 2, 2, 1429, 1430, 7, 29787, 2, 2, 1430, 1431, 7, 21980, 2, 2, 1431, 1432, 7, 59225, 2, 2, 1432, 232, 3, 2, 2, 2, 1433, 1434, 7, 37830, 2, 2, 1434, 1435, 7, 21097, 2, 2, 1435, 1436, 7, 12380, 2, 2, 1436, 1437, 7, 37735, 2, 2, 1437, 1438, 7, 21097, 2, 2, 1438, 1439, 7, 22680, 2, 2, 1439, 234, 3, 2, 2, 2, 1440, 1441, 7, 37735, 2, 2, 1441, 1442, 7, 21097, 2, 2, 1442, 1443, 7, 22680, 2, 2, 1443, 1444, 7, 32516, 2, 2, 1444, 1445, 7, 26665, 2, 2, 1445, 1446, 7, 24449, 2, 2, 1446, 236, 3, 2, 2, 2, 1447, 1448, 7, 37735, 2, 2, 1448, 1449, 7, 21097, 2, 2, 1449, 1450, 7, 22680, 2, 2, 1450, 238, 3, 2, 2, 2, 1451, 1452, 7, 32515, 2, 2, 1452, 1453, 7, 27196, 2, 2, 1453, 1454, 7, 22489, 2, 2, 1454, 1455, 7, 37930, 2, 2, 1455, 1456, 7, 21232, 2, 2, 1456, 1457, 7, 25445, 2, 2, 1457, 1458, 7, 37906, 2, 2, 1458, 1459, 7, 29810, 2, 2, 1459, 1460, 7, 20764, 2, 2, 1460, 1461, 7, 32499, 2, 2, 1461, 1462, 7, 65535, 2, 2, 1462, 240, 3, 2, 2, 2, 1463, 1464, 7, 28053, 2, 2, 1464, 1465, 7, 23947, 2, 2, 1465, 1466, 7, 65535, 2, 2, 1466, 1467, 7, 24534, 2, 2, 1467, 1468, 7, 27091, 2, 2, 1468, 1469, 7, 25654, 2, 2, 1469, 1470, 7, 65535, 2, 2, 1470, 242, 3, 2, 2, 2, 1471, 1472, 7, 29763, 2, 2, 1472, 1473, 7, 20346, 2, 2, 1473, 1474, 7, 22722, 2, 2, 1474, 1475, 7, 37930, 2, 2, 1475, 1476, 7, 21232, 2, 2, 1476, 1477, 7, 25445, 2, 2, 1477, 1478, 7, 37906, 2, 2, 1478, 1479, 7, 29810, 2, 2, 1479, 1480, 7, 20764, 2, 2, 1480, 1481, 7, 32499, 2, 2, 1481, 1482, 7, 65535, 2, 2, 1482, 244, 3, 2, 2, 2, 1483, 1484, 7, 28731, 2, 2, 1484, 1485, 7, 65535, 2, 2, 1485, 246, 3, 2, 2, 2, 1486, 1487, 7, 26948, 2, 2, 1487, 1488, 7, 65535, 2, 2, 1488, 248, 3, 2, 2, 2, 1489, 1490, 7, 37830, 2, 2, 1490, 1491, 7, 21097, 2, 2, 1491, 1492, 7, 12380, 2, 2, 1492, 1493, 7, 37735, 2, 2, 1493, 1494, 7, 21097, 2, 2, 1494, 1495, 7, 22680, 2, 2, 1495, 1496, 7, 37720, 2, 2, 1496, 1497, 7, 26666, 2, 2, 1497, 1498, 7, 26501, 2, 2, 1498, 1499, 7, 37834, 2, 2, 1499, 1500, 7, 65535, 2, 2, 1500, 250, 3, 2, 2, 2, 1501, 1502, 7, 37828, 2, 2, 1502, 1503, 7, 22250, 2, 2, 1503, 1504, 7, 28274, 2, 2, 1504, 1505, 7, 37714, 2, 2, 1505, 1506, 7, 21615, 2, 2, 1506, 1507, 7, 57746, 2, 2, 1507, 252, 3, 2, 2, 2, 1508, 1509, 7, 29865, 2, 2, 1509, 1510, 7, 39120, 2, 2, 1510, 1511, 7, 20581, 2, 2, 1511, 1512, 7, 37711, 2, 2, 1512, 1513, 7, 24535, 2, 2, 1513, 1514, 7, 30990, 2, 2, 1514, 254, 3, 2, 2, 2, 1515, 1516, 7, 23061, 2, 2, 1516, 1517, 7, 21622, 2, 2, 1517, 1518, 7, 27344, 2, 2, 1518, 1519, 7, 37735, 2, 2, 1519, 1520, 7, 21097, 2, 2, 1520, 1521, 7, 22680, 2, 2, 1521, 256, 3, 2, 2, 2, 1522, 1523, 7, 37830, 2, 2, 1523, 1524, 7, 21097, 2, 2, 1524, 1525, 7, 12380, 2, 2, 1525, 1526, 7, 37718, 2, 2, 1526, 1527, 7, 12583, 2, 2, 1527, 1528, 7, 27994, 2, 2, 1528, 258, 3, 2, 2, 2, 1529, 1530, 7, 29865, 2, 2, 1530, 1531, 7, 39120, 2, 2, 1531, 1532, 7, 20581, 2, 2, 1532, 1533, 7, 37711, 2, 2, 1533, 1534, 7, 24535, 2, 2, 1534, 1535, 7, 30990, 2, 2, 1535, 1536, 7, 28005, 2, 2, 1536, 1537, 7, 23945, 2, 2, 1537, 1538, 7, 30088, 2, 2, 1538, 260, 3, 2, 2, 2, 1539, 1540, 7, 23061, 2, 2, 1540, 1541, 7, 21622, 2, 2, 1541, 1542, 7, 27344, 2, 2, 1542, 1543, 7, 37815, 2, 2, 1543, 1544, 7, 65535, 2, 2, 1544, 1545, 7, 37834, 2, 2, 1545, 1546, 7, 22796, 2, 2, 1546, 1547, 7, 23019, 2, 2, 1547, 1548, 7, 37735, 2, 2, 1548, 1549, 7, 65535, 2, 2, 1549, 262, 3, 2, 2, 2, 1550, 1551, 7, 37735, 2, 2, 1551, 1552, 7, 21097, 2, 2, 1552, 1553, 7, 22680, 2, 2, 1553, 1554, 7, 32459, 2, 2, 1554, 1555, 7, 35828, 2, 2, 1555, 1556, 7, 23019, 2, 2, 1556, 264, 3, 2, 2, 2, 1557, 1558, 7, 32515, 2, 2, 1558, 1559, 7, 22564, 2, 2, 1559, 1560, 7, 20581, 2, 2, 1560, 1561, 7, 37711, 2, 2, 1561, 1562, 7, 24535, 2, 2, 1562, 1563, 7, 30990, 2, 2, 1563, 1564, 7, 28005, 2, 2, 1564, 1565, 7, 23945, 2, 2, 1565, 1566, 7, 30088, 2, 2, 1566, 266, 3, 2, 2, 2, 1567, 1568, 7, 32459, 2, 2, 1568, 1569, 7, 35828, 2, 2, 1569, 1570, 7, 23019, 2, 2, 1570, 1571, 7, 37829, 2, 2, 1571, 1572, 7, 22551, 2, 2, 1572, 1573, 7, 26881, 2, 2, 1573, 268, 3, 2, 2, 2, 1574, 1575, 7, 37833, 2, 2, 1575, 1576, 7, 23386, 2, 2, 1576, 1577, 7, 25982, 2, 2, 1577, 1578, 7, 37924, 2, 2, 1578, 1579, 7, 23132, 2, 2, 1579, 1580, 7, 28530, 2, 2, 1580, 1581, 7, 38011, 2, 2, 1581, 1582, 7, 33592, 2, 2, 1582, 1583, 7, 30369, 2, 2, 1583, 270, 3, 2, 2, 2, 1584, 1585, 7, 37807, 2, 2, 1585, 1586, 7, 12834, 2, 2, 1586, 1587, 7, 58932, 2, 2, 1587, 1588, 7, 37924, 2, 2, 1588, 1589, 7, 23132, 2, 2, 1589, 1590, 7, 28530, 2, 2, 1590, 1591, 7, 38011, 2, 2, 1591, 1592, 7, 33592, 2, 2, 1592, 1593, 7, 30369, 2, 2, 1593, 272, 3, 2, 2, 2, 1594, 1595, 7, 37924, 2, 2, 1595, 1596, 7, 23132, 2, 2, 1596, 1597, 7, 28530, 2, 2, 1597, 1598, 7, 38340, 2, 2, 1598, 1599, 7, 57416, 2, 2, 1599, 1600, 7, 20748, 2, 2, 1600, 274, 3, 2, 2, 2, 1601, 1602, 7, 37721, 2, 2, 1602, 1603, 7, 26337, 2, 2, 1603, 1604, 7, 57534, 2, 2, 1604, 1605, 7, 37829, 2, 2, 1605, 1606, 7, 22551, 2, 2, 1606, 1607, 7, 26881, 2, 2, 1607, 276, 3, 2, 2, 2, 1608, 1609, 7, 37815, 2, 2, 1609, 1610, 7, 1096, 2, 2, 1610, 1611, 7, 58643, 2, 2, 1611, 1612, 7, 23048, 2, 2, 1612, 1613, 7, 8453, 2, 2, 1613, 1614, 7, 26273, 2, 2, 1614, 278, 3, 2, 2, 2, 1615, 1616, 7, 37833, 2, 2, 1616, 1617, 7, 23386, 2, 2, 1617, 1618, 7, 25982, 2, 2, 1618, 1619, 7, 28600, 2, 2, 1619, 1620, 7, 9540, 2, 2, 1620, 1621, 7, 30391, 2, 2, 1621, 280, 3, 2, 2, 2, 1622, 1623, 7, 23536, 2, 2, 1623, 1624, 7, 21702, 2, 2, 1624, 1625, 7, 23477, 2, 2, 1625, 282, 3, 2, 2, 2, 1626, 1627, 7, 32459, 2, 2, 1627, 1628, 7, 35828, 2, 2, 1628, 1629, 7, 23019, 2, 2, 1629, 1630, 7, 27998, 2, 2, 1630, 1631, 7, 23339, 2, 2, 1631, 1632, 7, 27428, 2, 2, 1632, 284, 3, 2, 2, 2, 1633, 1634, 7, 28053, 2, 2, 1634, 1635, 7, 23944, 2, 2, 1635, 1636, 7, 31225, 2, 2, 1636, 1637, 7, 28600, 2, 2, 1637, 1638, 7, 65535, 2, 2, 1638, 286, 3, 2, 2, 2, 1639, 1640, 7, 32459, 2, 2, 1640, 1641, 7, 35828, 2, 2, 1641, 1642, 7, 23019, 2, 2, 1642, 1643, 7, 37719, 2, 2, 1643, 1644, 7, 22249, 2, 2, 1644, 1645, 7, 65293, 2, 2, 1645, 288, 3, 2, 2, 2, 1646, 1647, 7, 29884, 2, 2, 1647, 1648, 7, 23458, 2, 2, 1648, 1649, 7, 31342, 2, 2, 1649, 1650, 7, 27998, 2, 2, 1650, 1651, 7, 23339, 2, 2, 1651, 1652, 7, 27428, 2, 2, 1652, 290, 3, 2, 2, 2, 1653, 1654, 7, 29865, 2, 2, 1654, 1655, 7, 23794, 2, 2, 1655, 1656, 7, 59218, 2, 2, 1656, 1657, 7, 34, 2, 2, 1657, 1658, 7, 122, 2, 2, 1658, 292, 3, 2, 2, 2, 1659, 1660, 7, 32515, 2, 2, 1660, 1661, 7, 22561, 2, 2, 1661, 1662, 7, 57629, 2, 2, 1662, 1663, 7, 34, 2, 2, 1663, 1664, 7, 122, 2, 2, 1664, 294, 3, 2, 2, 2, 1665, 1666, 7, 29884, 2, 2, 1666, 1667, 7, 23458, 2, 2, 1667, 1668, 7, 31342, 2, 2, 1668, 1669, 7, 37719, 2, 2, 1669, 1670, 7, 22249, 2, 2, 1670, 1671, 7, 65293, 2, 2, 1671, 296, 3, 2, 2, 2, 1672, 1673, 7, 37824, 2, 2, 1673, 1674, 7, 57697, 2, 2, 1674, 1675, 7, 25987, 2, 2, 1675, 1676, 7, 38005, 2, 2, 1676, 1677, 7, 23680, 2, 2, 1677, 1678, 7, 27355, 2, 2, 1678, 1679, 7, 38348, 2, 2, 1679, 1680, 7, 20807, 2, 2, 1680, 1681, 7, 31666, 2, 2, 1681, 298, 3, 2, 2, 2, 1682, 1683, 7, 37818, 2, 2, 1683, 1684, 7, 20348, 2, 2, 1684, 1685, 7, 30013, 2, 2, 1685, 1686, 7, 37716, 2, 2, 1686, 1687, 7, 39043, 2, 2, 1687, 1688, 7, 31495, 2, 2, 1688, 1689, 7, 28053, 2, 2, 1689, 1690, 7, 57415, 2, 2, 1690, 1691, 7, 28274, 2, 2, 1691, 1692, 7, 27998, 2, 2, 1692, 1693, 7, 23339, 2, 2, 1693, 1694, 7, 27428, 2, 2, 1694, 300, 3, 2, 2, 2, 1695, 1696, 7, 37832, 2, 2, 1696, 1697, 7, 20636, 2, 2, 1697, 1698, 7, 20194, 2, 2, 1698, 1699, 7, 38005, 2, 2, 1699, 1700, 7, 23680, 2, 2, 1700, 1701, 7, 27355, 2, 2, 1701, 1702, 7, 38348, 2, 2, 1702, 1703, 7, 20807, 2, 2, 1703, 1704, 7, 31666, 2, 2, 1704, 302, 3, 2, 2, 2, 1705, 1706, 7, 37807, 2, 2, 1706, 1707, 7, 12834, 2, 2, 1707, 1708, 7, 58932, 2, 2, 1708, 1709, 7, 38005, 2, 2, 1709, 1710, 7, 23680, 2, 2, 1710, 1711, 7, 27355, 2, 2, 1711, 1712, 7, 38348, 2, 2, 1712, 1713, 7, 20807, 2, 2, 1713, 1714, 7, 31666, 2, 2, 1714, 304, 3, 2, 2, 2, 1715, 1716, 7, 26866, 2, 2, 1716, 1717, 7, 21229, 2, 2, 1717, 1718, 7, 23008, 2, 2, 1718, 1719, 7, 26464, 2, 2, 1719, 1720, 7, 20513, 2, 2, 1720, 1721, 7, 20761, 2, 2, 1721, 1722, 7, 37831, 2, 2, 1722, 1723, 7, 57888, 2, 2, 1723, 1724, 7, 29048, 2, 2, 1724, 1725, 7, 28054, 2, 2, 1725, 1726, 7, 65535, 2, 2, 1726, 306, 3, 2, 2, 2, 1727, 1728, 7, 38324, 2, 2, 1728, 1729, 7, 23109, 2, 2, 1729, 1730, 7, 25987, 2, 2, 1730, 1731, 7, 38005, 2, 2, 1731, 1732, 7, 23680, 2, 2, 1732, 1733, 7, 27355, 2, 2, 1733, 1734, 7, 38348, 2, 2, 1734, 1735, 7, 20807, 2, 2, 1735, 1736, 7, 31666, 2, 2, 1736, 1737, 7, 37930, 2, 2, 1737, 1738, 7, 21231, 2, 2, 1738, 1739, 7, 32040, 2, 2, 1739, 1740, 7, 28701, 2, 2, 1740, 1741, 7, 65535, 2, 2, 1741, 308, 3, 2, 2, 2, 1742, 1743, 7, 37824, 2, 2, 1743, 1744, 7, 57697, 2, 2, 1744, 1745, 7, 25987, 2, 2, 1745, 1746, 7, 38348, 2, 2, 1746, 1747, 7, 34413, 2, 2, 1747, 1748, 7, 26215, 2, 2, 1748, 310, 3, 2, 2, 2, 1749, 1750, 7, 37709, 2, 2, 1750, 1751, 7, 28358, 2, 2, 1751, 1752, 7, 57629, 2, 2, 1752, 1753, 7, 28054, 2, 2, 1753, 1754, 7, 23340, 2, 2, 1754, 1755, 7, 22690, 2, 2, 1755, 1756, 7, 38348, 2, 2, 1756, 1757, 7, 34413, 2, 2, 1757, 1758, 7, 26215, 2, 2, 1758, 312, 3, 2, 2, 2, 1759, 1760, 7, 37709, 2, 2, 1760, 1761, 7, 28358, 2, 2, 1761, 1762, 7, 57629, 2, 2, 1762, 1763, 7, 37815, 2, 2, 1763, 1764, 7, 65535, 2, 2, 1764, 1765, 7, 37834, 2, 2, 1765, 1766, 7, 22802, 2, 2, 1766, 1767, 7, 29048, 2, 2, 1767, 1768, 7, 37827, 2, 2, 1768, 1769, 7, 65535, 2, 2, 1769, 314, 3, 2, 2, 2, 1770, 1771, 7, 29827, 2, 2, 1771, 1772, 7, 21097, 2, 2, 1772, 1773, 7, 30088, 2, 2, 1773, 1774, 7, 38348, 2, 2, 1774, 1775, 7, 25279, 2, 2, 1775, 1776, 7, 22140, 2, 2, 1776, 316, 3, 2, 2, 2, 1777, 1778, 7, 23061, 2, 2, 1778, 1779, 7, 24878, 2, 2, 1779, 1780, 7, 24395, 2, 2, 1780, 1781, 7, 37829, 2, 2, 1781, 1782, 7, 22551, 2, 2, 1782, 1783, 7, 26881, 2, 2, 1783, 318, 3, 2, 2, 2, 1784, 1785, 7, 23061, 2, 2, 1785, 1786, 7, 21580, 2, 2, 1786, 1787, 7, 22427, 2, 2, 1787, 1788, 7, 38005, 2, 2, 1788, 1789, 7, 28357, 2, 2, 1789, 1790, 7, 22470, 2, 2, 1790, 1791, 7, 46, 2, 2, 1791, 1792, 7, 32515, 2, 2, 1792, 1793, 7, 25781, 2, 2, 1793, 1794, 7, 30510, 2, 2, 1794, 320, 3, 2, 2, 2, 1795, 1796, 7, 28053, 2, 2, 1796, 1797, 7, 23946, 2, 2, 1797, 1798, 7, 57722, 2, 2, 1798, 1799, 7, 37713, 2, 2, 1799, 1800, 7, 12520, 2, 2, 1800, 1801, 7, 59139, 2, 2, 1801, 1802, 7, 37721, 2, 2, 1802, 1803, 7, 65535, 2, 2, 1803, 322, 3, 2, 2, 2, 1804, 1805, 7, 23061, 2, 2, 1805, 1806, 7, 21580, 2, 2, 1806, 1807, 7, 22427, 2, 2, 1807, 1808, 7, 28600, 2, 2, 1808, 1809, 7, 36781, 2, 2, 1809, 1810, 7, 35304, 2, 2, 1810, 1811, 7, 46, 2, 2, 1811, 1812, 7, 32515, 2, 2, 1812, 1813, 7, 25781, 2, 2, 1813, 1814, 7, 30510, 2, 2, 1814, 324, 3, 2, 2, 2, 1815, 1816, 7, 37931, 2, 2, 1816, 1817, 7, 23386, 2, 2, 1817, 1818, 7, 24118, 2, 2, 1818, 1819, 7, 37735, 2, 2, 1819, 1820, 7, 28852, 2, 2, 1820, 1821, 7, 22478, 2, 2, 1821, 1822, 7, 37839, 2, 2, 1822, 1823, 7, 22254, 2, 2, 1823, 1824, 7, 58751, 2, 2, 1824, 1825, 7, 37925, 2, 2, 1825, 1826, 7, 23686, 2, 2, 1826, 1827, 7, 28530, 2, 2, 1827, 326, 3, 2, 2, 2, 1828, 1829, 7, 37820, 2, 2, 1829, 1830, 7, 12519, 2, 2, 1830, 1831, 7, 24394, 2, 2, 1831, 1832, 7, 37924, 2, 2, 1832, 1833, 7, 12584, 2, 2, 1833, 1834, 7, 22493, 2, 2, 1834, 1835, 7, 26442, 2, 2, 1835, 1836, 7, 25781, 2, 2, 1836, 1837, 7, 21448, 2, 2, 1837, 1838, 7, 37827, 2, 2, 1838, 1839, 7, 26497, 2, 2, 1839, 1840, 7, 29929, 2, 2, 1840, 1841, 7, 46, 2, 2, 1841, 1842, 7, 37821, 2, 2, 1842, 1843, 7, 24880, 2, 2, 1843, 1844, 7, 12380, 2, 2, 1844, 328, 3, 2, 2, 2, 1845, 1846, 7, 37820, 2, 2, 1846, 1847, 7, 12519, 2, 2, 1847, 1848, 7, 24394, 2, 2, 1848, 1849, 7, 37924, 2, 2, 1849, 1850, 7, 12584, 2, 2, 1850, 1851, 7, 22493, 2, 2, 1851, 1852, 7, 26442, 2, 2, 1852, 1853, 7, 25781, 2, 2, 1853, 1854, 7, 21448, 2, 2, 1854, 1855, 7, 37828, 2, 2, 1855, 1856, 7, 22250, 2, 2, 1856, 1857, 7, 28274, 2, 2, 1857, 1858, 7, 46, 2, 2, 1858, 1859, 7, 37821, 2, 2, 1859, 1860, 7, 24880, 2, 2, 1860, 1861, 7, 12380, 2, 2, 1861, 330, 3, 2, 2, 2, 1862, 1863, 7, 28643, 2, 2, 1863, 1864, 7, 20637, 2, 2, 1864, 1865, 7, 28747, 2, 2, 1865, 332, 3, 2, 2, 2, 1866, 1867, 7, 37724, 2, 2, 1867, 1868, 7, 65090, 2, 2, 1868, 1869, 7, 22449, 2, 2, 1869, 334, 3, 2, 2, 2, 1870, 1871, 7, 28600, 2, 2, 1871, 1872, 7, 27704, 2, 2, 1872, 1873, 7, 22138, 2, 2, 1873, 1874, 7, 37716, 2, 2, 1874, 1875, 7, 21978, 2, 2, 1875, 1876, 7, 57634, 2, 2, 1876, 1877, 7, 34, 2, 2, 1877, 1878, 7, 37835, 2, 2, 1878, 1879, 7, 8244, 2, 2, 1879, 1880, 7, 27428, 2, 2, 1880, 1881, 7, 37716, 2, 2, 1881, 1882, 7, 12423, 2, 2, 1882, 1883, 7, 30080, 2, 2, 1883, 336, 3, 2, 2, 2, 1884, 1885, 7, 28643, 2, 2, 1885, 1886, 7, 20637, 2, 2, 1886, 1887, 7, 28747, 2, 2, 1887, 1888, 7, 37830, 2, 2, 1888, 1889, 7, 65535, 2, 2, 1889, 338, 3, 2, 2, 2, 1890, 1891, 7, 37930, 2, 2, 1891, 1892, 7, 21229, 2, 2, 1892, 1893, 7, 28290, 2, 2, 1893, 1894, 7, 37724, 2, 2, 1894, 1895, 7, 65535, 2, 2, 1895, 340, 3, 2, 2, 2, 1896, 1897, 7, 28053, 2, 2, 1897, 1898, 7, 23946, 2, 2, 1898, 1899, 7, 28904, 2, 2, 1899, 1900, 7, 37715, 2, 2, 1900, 1901, 7, 65535, 2, 2, 1901, 342, 3, 2, 2, 2, 1902, 1903, 7, 38317, 2, 2, 1903, 1904, 7, 22802, 2, 2, 1904, 1905, 7, 12303, 2, 2, 1905, 344, 3, 2, 2, 2, 1906, 1907, 7, 28701, 2, 2, 1907, 1908, 7, 24882, 2, 2, 1908, 1909, 7, 65535, 2, 2, 1909, 1910, 7, 22802, 2, 2, 1910, 1911, 7, 12303, 2, 2, 1911, 346, 3, 2, 2, 2, 1912, 1913, 7, 26866, 2, 2, 1913, 1914, 7, 28360, 2, 2, 1914, 1915, 7, 22732, 2, 2, 1915, 348, 3, 2, 2, 2, 1916, 1917, 7, 37715, 2, 2, 1917, 1918, 7, 34427, 2, 2, 1918, 1919, 7, 24137, 2, 2, 1919, 1920, 7, 37835, 2, 2, 1920, 1921, 7, 8244, 2, 2, 1921, 1922, 7, 27428, 2, 2, 1922, 350, 3, 2, 2, 2, 1923, 1924, 7, 37830, 2, 2, 1924, 1925, 7, 21097, 2, 2, 1925, 1926, 7, 12380, 2, 2, 1926, 1927, 7, 32431, 2, 2, 1927, 1928, 7, 57793, 2, 2, 1928, 1929, 7, 57725, 2, 2, 1929, 1930, 7, 22937, 2, 2, 1930, 1931, 7, 65535, 2, 2, 1931, 352, 3, 2, 2, 2, 1932, 1933, 7, 32431, 2, 2, 1933, 1934, 7, 57790, 2, 2, 1934, 1935, 7, 30080, 2, 2, 1935, 1936, 7, 37930, 2, 2, 1936, 1937, 7, 21229, 2, 2, 1937, 1938, 7, 28290, 2, 2, 1938, 1939, 7, 37724, 2, 2, 1939, 1940, 7, 65535, 2, 2, 1940, 354, 3, 2, 2, 2, 1941, 1942, 7, 38173, 2, 2, 1942, 1943, 7, 22567, 2, 2, 1943, 1944, 7, 31921, 2, 2, 1944, 1945, 7, 29827, 2, 2, 1945, 1946, 7, 12427, 2, 2, 1946, 1947, 7, 65535, 2, 2, 1947, 1948, 7, 22795, 2, 2, 1948, 1949, 7, 33107, 2, 2, 1949, 356, 3, 2, 2, 2, 1950, 1951, 7, 38173, 2, 2, 1951, 1952, 7, 65535, 2, 2, 1952, 358, 3, 2, 2, 2, 1953, 1954, 7, 37723, 2, 2, 1954, 1955, 7, 26666, 2, 2, 1955, 1956, 7, 31225, 2, 2, 1956, 1957, 7, 37930, 2, 2, 1957, 1958, 7, 21229, 2, 2, 1958, 1959, 7, 28290, 2, 2, 1959, 1960, 7, 37724, 2, 2, 1960, 1961, 7, 65535, 2, 2, 1961, 360, 3, 2, 2, 2, 1962, 1963, 7, 37717, 2, 2, 1963, 1964, 7, 23945, 2, 2, 1964, 1965, 7, 30088, 2, 2, 1965, 1966, 7, 37835, 2, 2, 1966, 1967, 7, 8244, 2, 2, 1967, 1968, 7, 27428, 2, 2, 1968, 1969, 7, 23538, 2, 2, 1969, 1970, 7, 57416, 2, 2, 1970, 1971, 7, 24136, 2, 2, 1971, 362, 3, 2, 2, 2, 1972, 1973, 7, 35122, 2, 2, 1973, 1974, 7, 65535, 2, 2, 1974, 364, 3, 2, 2, 2, 1975, 1976, 7, 37829, 2, 2, 1976, 1977, 7, 65535, 2, 2, 1977, 366, 3, 2, 2, 2, 1978, 1979, 7, 37724, 2, 2, 1979, 1980, 7, 24229, 2, 2, 1980, 1981, 7, 30088, 2, 2, 1981, 1982, 7, 37835, 2, 2, 1982, 1983, 7, 8244, 2, 2, 1983, 1984, 7, 27428, 2, 2, 1984, 1985, 7, 23538, 2, 2, 1985, 1986, 7, 57416, 2, 2, 1986, 1987, 7, 24136, 2, 2, 1987, 368, 3, 2, 2, 2, 1988, 1989, 7, 29884, 2, 2, 1989, 1990, 7, 20916, 2, 2, 1990, 1991, 7, 22191, 2, 2, 1991, 1992, 7, 35122, 2, 2, 1992, 1993, 7, 25781, 2, 2, 1993, 1994, 7, 22690, 2, 2, 1994, 1995, 7, 23538, 2, 2, 1995, 1996, 7, 57416, 2, 2, 1996, 1997, 7, 24136, 2, 2, 1997, 1998, 7, 37814, 2, 2, 1998, 1999, 7, 26665, 2, 2, 1999, 2000, 7, 21463, 2, 2, 2000, 2001, 7, 37713, 2, 2, 2001, 2002, 7, 21466, 2, 2, 2002, 2003, 7, 31786, 2, 2, 2003, 2004, 7, 28002, 2, 2, 2004, 2005, 7, 65535, 2, 2, 2005, 370, 3, 2, 2, 2, 2006, 2007, 7, 32515, 2, 2, 2007, 2008, 7, 1095, 2, 2, 2008, 2009, 7, 30013, 2, 2, 2009, 2010, 7, 35122, 2, 2, 2010, 2011, 7, 25781, 2, 2, 2011, 2012, 7, 22690, 2, 2, 2012, 2013, 7, 23538, 2, 2, 2013, 2014, 7, 57416, 2, 2, 2014, 2015, 7, 24136, 2, 2, 2015, 372, 3, 2, 2, 2, 2016, 2017, 7, 32477, 2, 2, 2017, 2018, 7, 22796, 2, 2, 2018, 2019, 7, 32225, 2, 2, 2019, 2020, 7, 37924, 2, 2, 2020, 2021, 7, 12584, 2, 2, 2021, 2022, 7, 22493, 2, 2, 2022, 2023, 7, 37825, 2, 2, 2023, 2024, 7, 23942, 2, 2, 2024, 2025, 7, 32150, 2, 2, 2025, 2026, 7, 39584, 2, 2, 2026, 2027, 7, 24818, 2, 2, 2027, 2028, 7, 24145, 2, 2, 2028, 2029, 7, 23538, 2, 2, 2029, 2030, 7, 26947, 2, 2, 2030, 2031, 7, 23518, 2, 2, 2031, 2032, 7, 38337, 2, 2, 2032, 2033, 7, 57791, 2, 2, 2033, 2034, 7, 22442, 2, 2, 2034, 2035, 7, 37906, 2, 2, 2035, 2036, 7, 29810, 2, 2, 2036, 2037, 7, 22192, 2, 2, 2037, 2038, 7, 28105, 2, 2, 2038, 2039, 7, 8453, 2, 2, 2039, 2040, 7, 20231, 2, 2, 2040, 374, 3, 2, 2, 2, 2041, 2042, 7, 32477, 2, 2, 2042, 2043, 7, 22796, 2, 2, 2043, 2044, 7, 32225, 2, 2, 2044, 2045, 7, 37815, 2, 2, 2045, 2046, 7, 65535, 2, 2, 2046, 2047, 7, 37834, 2, 2, 2047, 2048, 7, 22796, 2, 2, 2048, 2049, 7, 32021, 2, 2, 2049, 2050, 7, 23007, 2, 2, 2050, 2051, 7, 12518, 2, 2, 2051, 2052, 7, 31786, 2, 2, 2052, 2053, 7, 28002, 2, 2, 2053, 2054, 7, 33335, 2, 2, 2054, 2055, 7, 22719, 2, 2, 2055, 2056, 7, 29725, 2, 2, 2056, 2057, 7, 23679, 2, 2, 2057, 2058, 7, 30062, 2, 2, 2058, 2059, 7, 23013, 2, 2, 2059, 2060, 7, 65535, 2, 2, 2060, 376, 3, 2, 2, 2, 2061, 2062, 7, 37725, 2, 2, 2062, 2063, 7, 29008, 2, 2, 2063, 2064, 7, 22191, 2, 2, 2064, 2065, 7, 37806, 2, 2, 2065, 2066, 7, 57416, 2, 2, 2066, 2067, 7, 22721, 2, 2, 2067, 2068, 7, 37815, 2, 2, 2068, 2069, 7, 23340, 2, 2, 2069, 2070, 7, 21823, 2, 2, 2070, 378, 3, 2, 2, 2, 2071, 2072, 7, 37725, 2, 2, 2072, 2073, 7, 29008, 2, 2, 2073, 2074, 7, 22191, 2, 2, 2074, 2075, 7, 28701, 2, 2, 2075, 2076, 7, 27197, 2, 2, 2076, 2077, 7, 12292, 2, 2, 2077, 2078, 7, 26918, 2, 2, 2078, 2079, 7, 30010, 2, 2, 2079, 2080, 7, 28530, 2, 2, 2080, 380, 3, 2, 2, 2, 2081, 2082, 7, 38009, 2, 2, 2082, 2083, 7, 57414, 2, 2, 2083, 2084, 7, 23019, 2, 2, 2084, 2085, 7, 28701, 2, 2, 2085, 2086, 7, 27197, 2, 2, 2086, 2087, 7, 12292, 2, 2, 2087, 382, 3, 2, 2, 2, 2088, 2089, 7, 28053, 2, 2, 2089, 2090, 7, 23944, 2, 2, 2090, 2091, 7, 24387, 2, 2, 2091, 2092, 7, 32450, 2, 2, 2092, 2093, 7, 65535, 2, 2, 2093, 384, 3, 2, 2, 2, 2094, 2095, 7, 37725, 2, 2, 2095, 2096, 7, 29008, 2, 2, 2096, 2097, 7, 22191, 2, 2, 2097, 2098, 7, 29833, 2, 2, 2098, 2099, 7, 32474, 2, 2, 2099, 2100, 7, 12292, 2, 2, 2100, 2101, 7, 26918, 2, 2, 2101, 2102, 7, 30010, 2, 2, 2102, 2103, 7, 28530, 2, 2, 2103, 386, 3, 2, 2, 2, 2104, 2105, 7, 119, 2, 2, 2105, 2106, 7, 107, 2, 2, 2106, 2107, 7, 32515, 2, 2, 2107, 2108, 7, 27196, 2, 2, 2108, 2109, 7, 22489, 2, 2, 2109, 2110, 7, 39584, 2, 2, 2110, 2111, 7, 22551, 2, 2, 2111, 2112, 7, 58731, 2, 2, 2112, 2113, 7, 29787, 2, 2, 2113, 2114, 7, 65535, 2, 2, 2114, 388, 3, 2, 2, 2, 2115, 2116, 7, 38173, 2, 2, 2116, 2117, 7, 22559, 2, 2, 2117, 2118, 7, 24381, 2, 2, 2118, 2119, 7, 37715, 2, 2, 2119, 2120, 7, 32474, 2, 2, 2120, 2121, 7, 57631, 2, 2, 2121, 2122, 7, 26918, 2, 2, 2122, 2123, 7, 29810, 2, 2, 2123, 2124, 7, 24436, 2, 2, 2124, 2125, 7, 26475, 2, 2, 2125, 2126, 7, 28062, 2, 2, 2126, 2127, 7, 58643, 2, 2, 2127, 2128, 7, 26866, 2, 2, 2128, 2129, 7, 21232, 2, 2, 2129, 2130, 7, 59215, 2, 2, 2130, 2131, 7, 38173, 2, 2, 2131, 2132, 7, 65535, 2, 2, 2132, 390, 3, 2, 2, 2, 2133, 2134, 7, 23061, 2, 2, 2134, 2135, 7, 21622, 2, 2, 2135, 2136, 7, 27344, 2, 2, 2136, 2137, 7, 37924, 2, 2, 2137, 2138, 7, 35828, 2, 2, 2138, 2139, 7, 31481, 2, 2, 2139, 392, 3, 2, 2, 2, 2140, 2141, 7, 23061, 2, 2, 2141, 2142, 7, 21617, 2, 2, 2142, 2143, 7, 9496, 2, 2, 2143, 2144, 7, 37924, 2, 2, 2144, 2145, 7, 35828, 2, 2, 2145, 2146, 7, 31481, 2, 2, 2146, 394, 3, 2, 2, 2, 2147, 2148, 7, 29827, 2, 2, 2148, 2149, 7, 21097, 2, 2, 2149, 2150, 7, 30088, 2, 2, 2150, 2151, 7, 37924, 2, 2, 2151, 2152, 7, 35828, 2, 2, 2152, 2153, 7, 31481, 2, 2, 2153, 2154, 7, 28768, 2, 2, 2154, 2155, 7, 28854, 2, 2, 2155, 2156, 7, 65535, 2, 2, 2156, 2157, 7, 65535, 2, 2, 2157, 396, 3, 2, 2, 2, 2158, 2159, 7, 28701, 2, 2, 2159, 2160, 7, 26944, 2, 2, 2160, 2161, 7, 32141, 2, 2, 2161, 398, 3, 2, 2, 2, 2162, 2163, 7, 28619, 2, 2, 2163, 2164, 7, 57508, 2, 2, 2164, 2165, 7, 21400, 2, 2, 2165, 2166, 7, 37839, 2, 2, 2166, 2167, 7, 23794, 2, 2, 2167, 2168, 7, 32035, 2, 2, 2168, 400, 3, 2, 2, 2, 2169, 2170, 7, 26442, 2, 2, 2170, 2171, 7, 35270, 2, 2, 2171, 2172, 7, 58637, 2, 2, 2172, 2173, 7, 37839, 2, 2, 2173, 2174, 7, 23794, 2, 2, 2174, 2175, 7, 32035, 2, 2, 2175, 402, 3, 2, 2, 2, 2176, 2177, 7, 32512, 2, 2, 2177, 2178, 7, 22448, 2, 2, 2178, 2179, 7, 57750, 2, 2, 2179, 2180, 7, 25654, 2, 2, 2180, 2181, 7, 65535, 2, 2, 2181, 404, 3, 2, 2, 2, 2182, 2183, 7, 37739, 2, 2, 2183, 2184, 7, 21702, 2, 2, 2184, 2185, 7, 22129, 2, 2, 2185, 2186, 7, 32512, 2, 2, 2186, 2187, 7, 65535, 2, 2, 2187, 406, 3, 2, 2, 2, 2188, 2189, 7, 124, 2, 2, 2189, 2190, 7, 37708, 2, 2, 2190, 2191, 7, 65535, 2, 2, 2191, 408, 3, 2, 2, 2, 2192, 2193, 7, 32515, 2, 2, 2193, 2194, 7, 27196, 2, 2, 2194, 2195, 7, 22489, 2, 2, 2195, 2196, 7, 37828, 2, 2, 2196, 2197, 7, 22250, 2, 2, 2197, 2198, 7, 28274, 2, 2, 2198, 410, 3, 2, 2, 2, 2199, 2200, 7, 37839, 2, 2, 2200, 2201, 7, 23794, 2, 2, 2201, 2202, 7, 32035, 2, 2, 2202, 412, 3, 2, 2, 2, 2203, 2204, 7, 37834, 2, 2, 2204, 2205, 7, 65535, 2, 2, 2205, 2206, 7, 28600, 2, 2, 2206, 2207, 7, 1093, 2, 2, 2207, 2208, 7, 57750, 2, 2, 2208, 2209, 7, 25654, 2, 2, 2209, 2210, 7, 65535, 2, 2, 2210, 414, 3, 2, 2, 2, 2211, 2212, 7, 32515, 2, 2, 2212, 2213, 7, 27196, 2, 2, 2213, 2214, 7, 22489, 2, 2, 2214, 2215, 7, 37821, 2, 2, 2215, 2216, 7, 24540, 2, 2, 2216, 2217, 7, 31457, 2, 2, 2217, 2218, 7, 37828, 2, 2, 2218, 2219, 7, 22250, 2, 2, 2219, 2220, 7, 28274, 2, 2, 2220, 416, 3, 2, 2, 2, 2221, 2222, 7, 32515, 2, 2, 2222, 2223, 7, 27196, 2, 2, 2223, 2224, 7, 22489, 2, 2, 2224, 2225, 7, 28600, 2, 2, 2225, 2226, 7, 27701, 2, 2, 2226, 2227, 7, 58643, 2, 2, 2227, 2228, 7, 37828, 2, 2, 2228, 2229, 7, 22250, 2, 2, 2229, 2230, 7, 28274, 2, 2, 2230, 418, 3, 2, 2, 2, 2231, 2232, 7, 28701, 2, 2, 2232, 2233, 7, 26944, 2, 2, 2233, 2234, 7, 32141, 2, 2, 2234, 2235, 7, 28600, 2, 2, 2235, 2236, 7, 1093, 2, 2, 2236, 2237, 7, 30382, 2, 2, 2237, 420, 3, 2, 2, 2, 2238, 2239, 7, 32515, 2, 2, 2239, 2240, 7, 27196, 2, 2, 2240, 2241, 7, 22489, 2, 2, 2241, 2242, 7, 37935, 2, 2, 2242, 2243, 7, 9539, 2, 2, 2243, 2244, 7, 33330, 2, 2, 2244, 422, 3, 2, 2, 2, 2245, 2246, 7, 32515, 2, 2, 2246, 2247, 7, 27196, 2, 2, 2247, 2248, 7, 22489, 2, 2, 2248, 2249, 7, 37935, 2, 2, 2249, 2250, 7, 9539, 2, 2, 2250, 2251, 7, 33330, 2, 2, 2251, 2252, 7, 26442, 2, 2, 2252, 2253, 7, 35270, 2, 2, 2253, 2254, 7, 58637, 2, 2, 2254, 424, 3, 2, 2, 2, 2255, 2256, 7, 32512, 2, 2, 2256, 2257, 7, 22448, 2, 2, 2257, 2258, 7, 57750, 2, 2, 2258, 426, 3, 2, 2, 2, 2259, 2260, 7, 32515, 2, 2, 2260, 2261, 7, 27196, 2, 2, 2261, 2262, 7, 22489, 2, 2, 2262, 2263, 7, 32512, 2, 2, 2263, 2264, 7, 25360, 2, 2, 2264, 2265, 7, 57742, 2, 2, 2265, 428, 3, 2, 2, 2, 2266, 2267, 7, 32515, 2, 2, 2267, 2268, 7, 22564, 2, 2, 2268, 2269, 7, 20581, 2, 2, 2269, 2270, 7, 37711, 2, 2, 2270, 2271, 7, 24535, 2, 2, 2271, 2272, 7, 30990, 2, 2, 2272, 430, 3, 2, 2, 2, 2273, 2274, 7, 32515, 2, 2, 2274, 2275, 7, 27196, 2, 2, 2275, 2276, 7, 22489, 2, 2, 2276, 2277, 7, 32482, 2, 2, 2277, 2278, 7, 57696, 2, 2, 2278, 2279, 7, 12374, 2, 2, 2279, 432, 3, 2, 2, 2, 2280, 2281, 7, 32515, 2, 2, 2281, 2282, 7, 27196, 2, 2, 2282, 2283, 7, 22489, 2, 2, 2283, 2284, 7, 28600, 2, 2, 2284, 2285, 7, 27701, 2, 2, 2285, 2286, 7, 31457, 2, 2, 2286, 2287, 7, 35122, 2, 2, 2287, 2288, 7, 65535, 2, 2, 2288, 434, 3, 2, 2, 2, 2289, 2290, 7, 26918, 2, 2, 2290, 2291, 7, 21059, 2, 2, 2291, 2292, 7, 20581, 2, 2, 2292, 2293, 7, 37711, 2, 2, 2293, 2294, 7, 24535, 2, 2, 2294, 2295, 7, 30990, 2, 2, 2295, 2296, 7, 37716, 2, 2, 2296, 2297, 7, 26950, 2, 2, 2297, 2298, 7, 12293, 2, 2, 2298, 436, 3, 2, 2, 2, 2299, 2300, 7, 32515, 2, 2, 2300, 2301, 7, 27196, 2, 2, 2301, 2302, 7, 22489, 2, 2, 2302, 2303, 7, 28600, 2, 2, 2303, 2304, 7, 27701, 2, 2, 2304, 2305, 7, 31457, 2, 2, 2305, 2306, 7, 35122, 2, 2, 2306, 2307, 7, 12837, 2, 2, 2307, 2308, 7, 31457, 2, 2, 2308, 2309, 7, 22937, 2, 2, 2309, 2310, 7, 65535, 2, 2, 2310, 438, 3, 2, 2, 2, 2311, 2312, 7, 32515, 2, 2, 2312, 2313, 7, 27196, 2, 2, 2313, 2314, 7, 22489, 2, 2, 2314, 2315, 7, 37736, 2, 2, 2315, 2316, 7, 65535, 2, 2, 2316, 440, 3, 2, 2, 2, 2317, 2318, 7, 37736, 2, 2, 2318, 2319, 7, 21977, 2, 2, 2319, 2320, 7, 32320, 2, 2, 2320, 442, 3, 2, 2, 2, 2321, 2322, 7, 37721, 2, 2, 2322, 2323, 7, 23108, 2, 2, 2323, 2324, 7, 32224, 2, 2, 2324, 444, 3, 2, 2, 2, 2325, 2326, 7, 32515, 2, 2, 2326, 2327, 7, 27196, 2, 2, 2327, 2328, 7, 22489, 2, 2, 2328, 2329, 7, 37736, 2, 2, 2329, 2330, 7, 21980, 2, 2, 2330, 2331, 7, 31457, 2, 2, 2331, 2332, 7, 22937, 2, 2, 2332, 2333, 7, 65535, 2, 2, 2333, 446, 3, 2, 2, 2, 2334, 2335, 7, 32515, 2, 2, 2335, 2336, 7, 27196, 2, 2, 2336, 2337, 7, 22489, 2, 2, 2337, 2338, 7, 37735, 2, 2, 2338, 2339, 7, 21097, 2, 2, 2339, 2340, 7, 22680, 2, 2, 2340, 448, 3, 2, 2, 2, 2341, 2342, 7, 32515, 2, 2, 2342, 2343, 7, 27196, 2, 2, 2343, 2344, 7, 22489, 2, 2, 2344, 2345, 7, 37735, 2, 2, 2345, 2346, 7, 28846, 2, 2, 2346, 2347, 7, 29221, 2, 2, 2347, 450, 3, 2, 2, 2, 2348, 2349, 7, 32515, 2, 2, 2349, 2350, 7, 27196, 2, 2, 2350, 2351, 7, 22489, 2, 2, 2351, 2352, 7, 38005, 2, 2, 2352, 2353, 7, 23680, 2, 2, 2353, 2354, 7, 27355, 2, 2, 2354, 2355, 7, 37735, 2, 2, 2355, 2356, 7, 65535, 2, 2, 2356, 452, 3, 2, 2, 2, 2357, 2358, 7, 32515, 2, 2, 2358, 2359, 7, 27196, 2, 2, 2359, 2360, 7, 22489, 2, 2, 2360, 2361, 7, 38340, 2, 2, 2361, 2362, 7, 57416, 2, 2, 2362, 2363, 7, 20748, 2, 2, 2363, 2364, 7, 37713, 2, 2, 2364, 2365, 7, 22797, 2, 2, 2365, 2366, 7, 29221, 2, 2, 2366, 454, 3, 2, 2, 2, 2367, 2368, 7, 23061, 2, 2, 2368, 2369, 7, 21622, 2, 2, 2369, 2370, 7, 27344, 2, 2, 2370, 2371, 7, 38340, 2, 2, 2371, 2372, 7, 57416, 2, 2, 2372, 2373, 7, 20748, 2, 2, 2373, 2374, 7, 37713, 2, 2, 2374, 2375, 7, 22797, 2, 2, 2375, 2376, 7, 29221, 2, 2, 2376, 456, 3, 2, 2, 2, 2377, 2378, 7, 38009, 2, 2, 2378, 2379, 7, 57414, 2, 2, 2379, 2380, 7, 30080, 2, 2, 2380, 2381, 7, 28054, 2, 2, 2381, 2382, 7, 22795, 2, 2, 2382, 2383, 7, 31786, 2, 2, 2383, 2384, 7, 28002, 2, 2, 2384, 2385, 7, 65535, 2, 2, 2385, 458, 3, 2, 2, 2, 2386, 2387, 7, 38009, 2, 2, 2387, 2388, 7, 57414, 2, 2, 2388, 2389, 7, 30080, 2, 2, 2389, 2390, 7, 28054, 2, 2, 2390, 2391, 7, 22603, 2, 2, 2391, 2392, 7, 85, 2, 2, 2392, 2393, 7, 38006, 2, 2, 2393, 2394, 7, 27695, 2, 2, 2394, 2395, 7, 28274, 2, 2, 2395, 460, 3, 2, 2, 2, 2396, 2397, 7, 28053, 2, 2, 2397, 2398, 7, 23946, 2, 2, 2398, 2399, 7, 22174, 2, 2, 2399, 2400, 7, 37718, 2, 2, 2400, 2401, 7, 12584, 2, 2, 2401, 2402, 7, 22719, 2, 2, 2402, 2403, 7, 29725, 2, 2, 2403, 2404, 7, 23678, 2, 2, 2404, 2405, 7, 31495, 2, 2, 2405, 2406, 7, 28053, 2, 2, 2406, 2407, 7, 65535, 2, 2, 2407, 2408, 7, 28053, 2, 2, 2408, 2409, 7, 57413, 2, 2, 2409, 2410, 7, 31786, 2, 2, 2410, 2411, 7, 28002, 2, 2, 2411, 2412, 7, 65535, 2, 2, 2412, 462, 3, 2, 2, 2, 2413, 2414, 7, 63, 2, 2, 2414, 2415, 7, 63, 2, 2, 2415, 2416, 7, 63, 2, 2, 2416, 2417, 7, 34, 2, 2, 2417, 2418, 7, 117, 2, 2, 2418, 2419, 7, 118, 2, 2, 2419, 2420, 7, 99, 2, 2, 2420, 2421, 7, 118, 2, 2, 2421, 2422, 7, 103, 2, 2, 2422, 2423, 7, 111, 2, 2, 2423, 2424, 7, 103, 2, 2, 2424, 2425, 7, 112, 2, 2, 2425, 2426, 7, 118, 2, 2, 2426, 2427, 7, 34, 2, 2, 2427, 2428, 7, 96, 2, 2, 2428, 2429, 7, 34, 2, 2, 2429, 2430, 7, 63, 2, 2, 2430, 2431, 7, 63, 2, 2, 2431, 2432, 7, 63, 2, 2, 2432, 2433, 7, 34, 2, 2, 2433, 2434, 7, 103, 2, 2, 2434, 2435, 7, 122, 2, 2, 2435, 2436, 7, 114, 2, 2, 2436, 2437, 7, 116, 2, 2, 2437, 2438, 7, 103, 2, 2, 2438, 2439, 7, 117, 2, 2, 2439, 2440, 7, 117, 2, 2, 2440, 2441, 7, 107, 2, 2, 2441, 2442, 7, 113, 2, 2, 2442, 2443, 7, 112, 2, 2, 2443, 2444, 7, 34, 2, 2, 2444, 2445, 7, 120, 2, 2, 2445, 2446, 7, 34, 2, 2, 2446, 2447, 7, 63, 2, 2, 2447, 2448, 7, 63, 2, 2, 2448, 2449, 7, 63, 2, 2, 2449, 464, 3, 2, 2, 2, 2450, 2451, 7, 38346, 2, 2, 2451, 2452, 7, 65535, 2, 2, 2452, 466, 3, 2, 2, 2, 2453, 2454, 7, 37915, 2, 2, 2454, 2455, 7, 57604, 2, 2, 2455, 2456, 7, 29661, 2, 2, 2456, 2457, 7, 23536, 2, 2, 2457, 2458, 7, 65535, 2, 2, 2458, 2459, 7, 37713, 2, 2, 2459, 2460, 7, 65535, 2, 2, 2460, 468, 3, 2, 2, 2, 2461, 2462, 7, 117, 2, 2, 2462, 2463, 7, 102, 2, 2, 2463, 2464, 7, 103, 2, 2, 2464, 2465, 7, 107, 2, 2, 2465, 2466, 7, 116, 2, 2, 2466, 2467, 7, 119, 2, 2, 2467, 2468, 7, 105, 2, 2, 2468, 2469, 7, 106, 2, 2, 2469, 2470, 7, 120, 2, 2, 2470, 2471, 7, 119, 2, 2, 2471, 2472, 7, 107, 2, 2, 2472, 2473, 7, 123, 2, 2, 2473, 2474, 7, 99, 2, 2, 2474, 2475, 7, 117, 2, 2, 2475, 2476, 7, 102, 2, 2, 2476, 2477, 7, 103, 2, 2, 2477, 2479, 7, 100, 2, 2, 2478, 2461, 3, 2, 2, 2, 2479, 2480, 3, 2, 2, 2, 2480, 2478, 3, 2, 2, 2, 2480, 2481, 3, 2, 2, 2, 2481, 470, 3, 2, 2, 2, 2482, 2483, 7, 117, 2, 2, 2483, 2484, 7, 102, 2, 2, 2484, 2485, 7, 103, 2, 2, 2485, 2486, 7, 107, 2, 2, 2486, 2487, 7, 116, 2, 2, 2487, 2488, 7, 119, 2, 2, 2488, 2489, 7, 105, 2, 2, 2489, 2490, 7, 106, 2, 2, 2490, 2491, 7, 120, 2, 2, 2491, 2492, 7, 119, 2, 2, 2492, 2493, 7, 107, 2, 2, 2493, 2494, 7, 123, 2, 2, 2494, 2495, 7, 99, 2, 2, 2495, 2496, 7, 117, 2, 2, 2496, 2497, 7, 102, 2, 2, 2497, 2498, 7, 100, 2, 2, 2498, 2500, 7, 103, 2, 2, 2499, 2482, 3, 2, 2, 2, 2500, 2501, 3, 2, 2, 2, 2501, 2499, 3, 2, 2, 2, 2501, 2502, 3, 2, 2, 2, 2502, 472, 3, 2, 2, 2, 2503, 2504, 7, 117, 2, 2, 2504, 2505, 7, 102, 2, 2, 2505, 2506, 7, 103, 2, 2, 2506, 2507, 7, 107, 2, 2, 2507, 2508, 7, 116, 2, 2, 2508, 2509, 7, 119, 2, 2, 2509, 2510, 7, 105, 2, 2, 2510, 2511, 7, 106, 2, 2, 2511, 2512, 7, 120, 2, 2, 2512, 2513, 7, 119, 2, 2, 2513, 2514, 7, 107, 2, 2, 2514, 2515, 7, 123, 2, 2, 2515, 2516, 7, 99, 2, 2, 2516, 2517, 7, 117, 2, 2, 2517, 2518, 7, 100, 2, 2, 2518, 2519, 7, 102, 2, 2, 2519, 2521, 7, 103, 2, 2, 2520, 2503, 3, 2, 2, 2, 2521, 2522, 3, 2, 2, 2, 2522, 2520, 3, 2, 2, 2, 2522, 2523, 3, 2, 2, 2, 2523, 474, 3, 2, 2, 2, 2524, 2525, 7, 22950, 2, 2, 2525, 2526, 7, 29008, 2, 2, 2526, 2527, 7, 30514, 2, 2, 2527, 2528, 7, 75, 2, 2, 2528, 2540, 7, 70, 2, 2, 2529, 2530, 7, 37717, 2, 2, 2530, 2531, 7, 23942, 2, 2, 2531, 2532, 7, 31478, 2, 2, 2532, 2533, 7, 22950, 2, 2, 2533, 2540, 7, 65535, 2, 2, 2534, 2535, 7, 37724, 2, 2, 2535, 2536, 7, 24223, 2, 2, 2536, 2537, 7, 31478, 2, 2, 2537, 2538, 7, 22950, 2, 2, 2538, 2540, 7, 65535, 2, 2, 2539, 2524, 3, 2, 2, 2, 2539, 2529, 3, 2, 2, 2, 2539, 2534, 3, 2, 2, 2, 2540, 476, 3, 2, 2, 2, 2541, 2542, 7, 37737, 2, 2, 2542, 2543, 7, 24879, 2, 2, 2543, 2581, 7, 29221, 2, 2, 2544, 2545, 7, 28053, 2, 2, 2545, 2546, 7, 23109, 2, 2, 2546, 2547, 7, 12478, 2, 2, 2547, 2548, 7, 22988, 2, 2, 2548, 2581, 7, 65535, 2, 2, 2549, 2550, 7, 28053, 2, 2, 2550, 2551, 7, 23341, 2, 2, 2551, 2552, 7, 12478, 2, 2, 2552, 2553, 7, 22988, 2, 2, 2553, 2581, 7, 65535, 2, 2, 2554, 2555, 7, 28105, 2, 2, 2555, 2556, 7, 28617, 2, 2, 2556, 2557, 7, 23510, 2, 2, 2557, 2558, 7, 28053, 2, 2, 2558, 2559, 7, 23943, 2, 2, 2559, 2581, 7, 24395, 2, 2, 2560, 2561, 7, 28053, 2, 2, 2561, 2562, 7, 57696, 2, 2, 2562, 2563, 7, 32320, 2, 2, 2563, 2564, 7, 28727, 2, 2, 2564, 2565, 7, 22319, 2, 2, 2565, 2566, 7, 1056, 2, 2, 2566, 2567, 7, 37906, 2, 2, 2567, 2581, 7, 65535, 2, 2, 2568, 2569, 7, 122, 2, 2, 2569, 2570, 7, 28727, 2, 2, 2570, 2571, 7, 22319, 2, 2, 2571, 2572, 7, 1056, 2, 2, 2572, 2573, 7, 37906, 2, 2, 2573, 2581, 7, 65535, 2, 2, 2574, 2575, 7, 123, 2, 2, 2575, 2576, 7, 28727, 2, 2, 2576, 2577, 7, 22319, 2, 2, 2577, 2578, 7, 1056, 2, 2, 2578, 2579, 7, 37906, 2, 2, 2579, 2581, 7, 65535, 2, 2, 2580, 2541, 3, 2, 2, 2, 2580, 2544, 3, 2, 2, 2, 2580, 2549, 3, 2, 2, 2, 2580, 2554, 3, 2, 2, 2, 2580, 2560, 3, 2, 2, 2, 2580, 2568, 3, 2, 2, 2, 2580, 2574, 3, 2, 2, 2, 2581, 478, 3, 2, 2, 2, 2582, 2583, 7, 28053, 2, 2, 2583, 2584, 7, 23944, 2, 2, 2584, 2585, 7, 25982, 2, 2, 2585, 2586, 7, 37723, 2, 2, 2586, 2603, 7, 65535, 2, 2, 2587, 2588, 7, 29884, 2, 2, 2588, 2589, 7, 28618, 2, 2, 2589, 2590, 7, 59273, 2, 2, 2590, 2591, 7, 26918, 2, 2, 2591, 2592, 7, 22551, 2, 2, 2592, 2603, 7, 20790, 2, 2, 2593, 2594, 7, 28768, 2, 2, 2594, 2595, 7, 21614, 2, 2, 2595, 2603, 7, 33107, 2, 2, 2596, 2597, 7, 29884, 2, 2, 2597, 2598, 7, 28618, 2, 2, 2598, 2599, 7, 59273, 2, 2, 2599, 2600, 7, 25654, 2, 2, 2600, 2601, 7, 26340, 2, 2, 2601, 2603, 7, 20790, 2, 2, 2602, 2582, 3, 2, 2, 2, 2602, 2587, 3, 2, 2, 2, 2602, 2593, 3, 2, 2, 2, 2602, 2596, 3, 2, 2, 2, 2603, 480, 3, 2, 2, 2, 2604, 2605, 7, 28053, 2, 2, 2605, 2606, 7, 23944, 2, 2, 2606, 2607, 7, 25982, 2, 2, 2607, 2608, 7, 37723, 2, 2, 2608, 2626, 7, 65535, 2, 2, 2609, 2610, 7, 23482, 2, 2, 2610, 2611, 7, 65090, 2, 2, 2611, 2612, 7, 57840, 2, 2, 2612, 2613, 7, 27069, 2, 2, 2613, 2626, 7, 65535, 2, 2, 2614, 2615, 7, 23482, 2, 2, 2615, 2616, 7, 65090, 2, 2, 2616, 2617, 7, 24442, 2, 2, 2617, 2618, 7, 28768, 2, 2, 2618, 2619, 7, 21614, 2, 2, 2619, 2626, 7, 33107, 2, 2, 2620, 2621, 7, 37723, 2, 2, 2621, 2622, 7, 20916, 2, 2, 2622, 2623, 7, 57840, 2, 2, 2623, 2624, 7, 27069, 2, 2, 2624, 2626, 7, 65535, 2, 2, 2625, 2604, 3, 2, 2, 2, 2625, 2609, 3, 2, 2, 2, 2625, 2614, 3, 2, 2, 2, 2625, 2620, 3, 2, 2, 2, 2626, 482, 3, 2, 2, 2, 2627, 2628, 7, 28053, 2, 2, 2628, 2629, 7, 23944, 2, 2, 2629, 2630, 7, 25982, 2, 2, 2630, 2631, 7, 37723, 2, 2, 2631, 2647, 7, 65535, 2, 2, 2632, 2633, 7, 26918, 2, 2, 2633, 2634, 7, 22551, 2, 2, 2634, 2647, 7, 20790, 2, 2, 2635, 2636, 7, 28768, 2, 2, 2636, 2637, 7, 21614, 2, 2, 2637, 2647, 7, 33107, 2, 2, 2638, 2639, 7, 37839, 2, 2, 2639, 2640, 7, 22249, 2, 2, 2640, 2641, 7, 22129, 2, 2, 2641, 2642, 7, 37708, 2, 2, 2642, 2647, 7, 65535, 2, 2, 2643, 2644, 7, 25654, 2, 2, 2644, 2645, 7, 26340, 2, 2, 2645, 2647, 7, 20790, 2, 2, 2646, 2627, 3, 2, 2, 2, 2646, 2632, 3, 2, 2, 2, 2646, 2635, 3, 2, 2, 2, 2646, 2638, 3, 2, 2, 2, 2646, 2643, 3, 2, 2, 2, 2647, 484, 3, 2, 2, 2, 2648, 2649, 7, 38324, 2, 2, 2649, 2650, 7, 25119, 2, 2, 2650, 2655, 7, 31479, 2, 2, 2651, 2652, 7, 32515, 2, 2, 2652, 2653, 7, 24541, 2, 2, 2653, 2655, 7, 29531, 2, 2, 2654, 2648, 3, 2, 2, 2, 2654, 2651, 3, 2, 2, 2, 2655, 486, 3, 2, 2, 2, 2656, 2671, 9, 2, 2, 2, 2657, 2658, 7, 63, 2, 2, 2658, 2671, 7, 63, 2, 2, 2659, 2660, 7, 35, 2, 2, 2660, 2671, 7, 63, 2, 2, 2661, 2671, 9, 3, 2, 2, 2662, 2663, 7, 64, 2, 2, 2663, 2671, 7, 63, 2, 2, 2664, 2665, 7, 62, 2, 2, 2665, 2671, 7, 63, 2, 2, 2666, 2667, 7, 37726, 2, 2, 2667, 2671, 7, 65535, 2, 2, 2668, 2669, 7, 37814, 2, 2, 2669, 2671, 7, 65535, 2, 2, 2670, 2656, 3, 2, 2, 2, 2670, 2657, 3, 2, 2, 2, 2670, 2659, 3, 2, 2, 2, 2670, 2661, 3, 2, 2, 2, 2670, 2662, 3, 2, 2, 2, 2670, 2664, 3, 2, 2, 2, 2670, 2666, 3, 2, 2, 2, 2670, 2668, 3, 2, 2, 2, 2671, 488, 3, 2, 2, 2, 2672, 2673, 7, 37829, 2, 2, 2673, 2681, 7, 65535, 2, 2, 2674, 2675, 7, 38344, 2, 2, 2675, 2681, 7, 65535, 2, 2, 2676, 2677, 7, 38344, 2, 2, 2677, 2681, 7, 65535, 2, 2, 2678, 2679, 7, 38344, 2, 2, 2679, 2681, 7, 65535, 2, 2, 2680, 2672, 3, 2, 2, 2, 2680, 2674, 3, 2, 2, 2, 2680, 2676, 3, 2, 2, 2, 2680, 2678, 3, 2, 2, 2, 2681, 490, 3, 2, 2, 2, 2682, 2683, 7, 28053, 2, 2, 2683, 2684, 7, 23944, 2, 2, 2684, 2685, 7, 25982, 2, 2, 2685, 2686, 7, 37723, 2, 2, 2686, 2700, 7, 65535, 2, 2, 2687, 2688, 7, 28053, 2, 2, 2688, 2689, 7, 23943, 2, 2, 2689, 2690, 7, 24436, 2, 2, 2690, 2691, 7, 38317, 2, 2, 2691, 2692, 7, 27701, 2, 2, 2692, 2700, 7, 58643, 2, 2, 2693, 2694, 7, 37723, 2, 2, 2694, 2695, 7, 57883, 2, 2, 2695, 2696, 7, 20116, 2, 2, 2696, 2697, 7, 38317, 2, 2, 2697, 2698, 7, 27701, 2, 2, 2698, 2700, 7, 58643, 2, 2, 2699, 2682, 3, 2, 2, 2, 2699, 2687, 3, 2, 2, 2, 2699, 2693, 3, 2, 2, 2, 2700, 492, 3, 2, 2, 2, 2701, 2702, 7, 28053, 2, 2, 2702, 2703, 7, 23944, 2, 2, 2703, 2704, 7, 25982, 2, 2, 2704, 2705, 7, 37723, 2, 2, 2705, 2719, 7, 65535, 2, 2, 2706, 2707, 7, 29827, 2, 2, 2707, 2708, 7, 21479, 2, 2, 2708, 2709, 7, 36129, 2, 2, 2709, 2710, 7, 32496, 2, 2, 2710, 2711, 7, 26944, 2, 2, 2711, 2719, 7, 32141, 2, 2, 2712, 2713, 7, 37723, 2, 2, 2713, 2714, 7, 26666, 2, 2, 2714, 2715, 7, 31225, 2, 2, 2715, 2716, 7, 32496, 2, 2, 2716, 2717, 7, 26944, 2, 2, 2717, 2719, 7, 32141, 2, 2, 2718, 2701, 3, 2, 2, 2, 2718, 2706, 3, 2, 2, 2, 2718, 2712, 3, 2, 2, 2, 2719, 494, 3, 2, 2, 2, 2720, 2721, 7, 38005, 2, 2, 2721, 2722, 7, 23680, 2, 2, 2722, 2723, 7, 27355, 2, 2, 2723, 2724, 7, 28768, 2, 2, 2724, 2731, 7, 65535, 2, 2, 2725, 2726, 7, 37717, 2, 2, 2726, 2727, 7, 23944, 2, 2, 2727, 2728, 7, 27355, 2, 2, 2728, 2729, 7, 28768, 2, 2, 2729, 2731, 7, 65535, 2, 2, 2730, 2720, 3, 2, 2, 2, 2730, 2725, 3, 2, 2, 2, 2731, 496, 3, 2, 2, 2, 2732, 2733, 7, 27998, 2, 2, 2733, 2734, 7, 23339, 2, 2, 2734, 2758, 7, 27428, 2, 2, 2735, 2736, 7, 37814, 2, 2, 2736, 2737, 7, 27196, 2, 2, 2737, 2738, 7, 24729, 2, 2, 2738, 2739, 7, 27998, 2, 2, 2739, 2740, 7, 23339, 2, 2, 2740, 2758, 7, 27428, 2, 2, 2741, 2742, 7, 38318, 2, 2, 2742, 2743, 7, 25781, 2, 2, 2743, 2744, 7, 21505, 2, 2, 2744, 2745, 7, 37724, 2, 2, 2745, 2746, 7, 24223, 2, 2, 2746, 2747, 7, 31786, 2, 2, 2747, 2748, 7, 28002, 2, 2, 2748, 2758, 7, 65535, 2, 2, 2749, 2750, 7, 23536, 2, 2, 2750, 2751, 7, 65535, 2, 2, 2751, 2752, 7, 38340, 2, 2, 2752, 2753, 7, 12583, 2, 2, 2753, 2754, 7, 24729, 2, 2, 2754, 2755, 7, 27998, 2, 2, 2755, 2756, 7, 23339, 2, 2, 2756, 2758, 7, 27428, 2, 2, 2757, 2732, 3, 2, 2, 2, 2757, 2735, 3, 2, 2, 2, 2757, 2741, 3, 2, 2, 2, 2757, 2749, 3, 2, 2, 2, 2758, 498, 3, 2, 2, 2, 2759, 2760, 7, 22950, 2, 2, 2760, 2761, 7, 29008, 2, 2, 2761, 2762, 7, 30514, 2, 2, 2762, 2763, 7, 28053, 2, 2, 2763, 2764, 7, 57697, 2, 2, 2764, 2765, 7, 26501, 2, 2, 2765, 2766, 7, 37724, 2, 2, 2766, 2889, 7, 65535, 2, 2, 2767, 2768, 7, 37914, 2, 2, 2768, 2769, 7, 33335, 2, 2, 2769, 2770, 7, 65535, 2, 2, 2770, 2771, 7, 20347, 2, 2, 2771, 2772, 7, 29232, 2, 2, 2772, 2773, 7, 37724, 2, 2, 2773, 2774, 7, 23945, 2, 2, 2774, 2889, 7, 1056, 2, 2, 2775, 2776, 7, 38005, 2, 2, 2776, 2777, 7, 34251, 2, 2, 2777, 2778, 7, 24771, 2, 2, 2778, 2779, 7, 28005, 2, 2, 2779, 2780, 7, 36330, 2, 2, 2780, 2781, 7, 25958, 2, 2, 2781, 2782, 7, 22950, 2, 2, 2782, 2783, 7, 38390, 2, 2, 2783, 2889, 7, 32056, 2, 2, 2784, 2785, 7, 38005, 2, 2, 2785, 2786, 7, 34251, 2, 2, 2786, 2787, 7, 24771, 2, 2, 2787, 2788, 7, 37815, 2, 2, 2788, 2789, 7, 25781, 2, 2, 2789, 2790, 7, 32019, 2, 2, 2790, 2791, 7, 36425, 2, 2, 2791, 2792, 7, 57509, 2, 2, 2792, 2793, 7, 23888, 2, 2, 2793, 2794, 7, 37729, 2, 2, 2794, 2795, 7, 21977, 2, 2, 2795, 2889, 7, 31799, 2, 2, 2796, 2797, 7, 37830, 2, 2, 2797, 2798, 7, 57884, 2, 2, 2798, 2799, 7, 24771, 2, 2, 2799, 2800, 7, 28053, 2, 2, 2800, 2801, 7, 23943, 2, 2, 2801, 2802, 7, 24436, 2, 2, 2802, 2803, 7, 23094, 2, 2, 2803, 2804, 7, 24540, 2, 2, 2804, 2805, 7, 59215, 2, 2, 2805, 2806, 7, 37736, 2, 2, 2806, 2807, 7, 26497, 2, 2, 2807, 2889, 7, 27994, 2, 2, 2808, 2809, 7, 37830, 2, 2, 2809, 2810, 7, 57884, 2, 2, 2810, 2811, 7, 24771, 2, 2, 2811, 2812, 7, 28053, 2, 2, 2812, 2813, 7, 23943, 2, 2, 2813, 2814, 7, 24436, 2, 2, 2814, 2815, 7, 37934, 2, 2, 2815, 2816, 7, 57606, 2, 2, 2816, 2817, 7, 26881, 2, 2, 2817, 2818, 7, 32459, 2, 2, 2818, 2819, 7, 35828, 2, 2, 2819, 2889, 7, 23019, 2, 2, 2820, 2821, 7, 27037, 2, 2, 2821, 2822, 7, 27201, 2, 2, 2822, 2823, 7, 57725, 2, 2, 2823, 2824, 7, 37736, 2, 2, 2824, 2825, 7, 20278, 2, 2, 2825, 2826, 7, 28530, 2, 2, 2826, 2827, 7, 75, 2, 2, 2827, 2889, 7, 70, 2, 2, 2828, 2829, 7, 22950, 2, 2, 2829, 2830, 7, 29008, 2, 2, 2830, 2831, 7, 30514, 2, 2, 2831, 2832, 7, 29842, 2, 2, 2832, 2833, 7, 26451, 2, 2, 2833, 2889, 7, 27994, 2, 2, 2834, 2835, 7, 28731, 2, 2, 2835, 2836, 7, 28618, 2, 2, 2836, 2837, 7, 29048, 2, 2, 2837, 2838, 7, 29725, 2, 2, 2838, 2839, 7, 65535, 2, 2, 2839, 2840, 7, 37923, 2, 2, 2840, 2841, 7, 33335, 2, 2, 2841, 2842, 7, 26215, 2, 2, 2842, 2843, 7, 37837, 2, 2, 2843, 2889, 7, 65535, 2, 2, 2844, 2845, 7, 28053, 2, 2, 2845, 2846, 7, 23109, 2, 2, 2846, 2847, 7, 12478, 2, 2, 2847, 2848, 7, 37906, 2, 2, 2848, 2849, 7, 29810, 2, 2, 2849, 2850, 7, 28505, 2, 2, 2850, 2851, 7, 37839, 2, 2, 2851, 2889, 7, 65535, 2, 2, 2852, 2853, 7, 28053, 2, 2, 2853, 2854, 7, 23341, 2, 2, 2854, 2855, 7, 12478, 2, 2, 2855, 2856, 7, 37906, 2, 2, 2856, 2857, 7, 29810, 2, 2, 2857, 2858, 7, 28505, 2, 2, 2858, 2859, 7, 37839, 2, 2, 2859, 2889, 7, 65535, 2, 2, 2860, 2861, 7, 38005, 2, 2, 2861, 2862, 7, 23680, 2, 2, 2862, 2863, 7, 27355, 2, 2, 2863, 2864, 7, 38348, 2, 2, 2864, 2865, 7, 20807, 2, 2, 2865, 2889, 7, 31666, 2, 2, 2866, 2867, 7, 37924, 2, 2, 2867, 2868, 7, 23132, 2, 2, 2868, 2869, 7, 28530, 2, 2, 2869, 2870, 7, 38011, 2, 2, 2870, 2871, 7, 33592, 2, 2, 2871, 2889, 7, 30369, 2, 2, 2872, 2873, 7, 28600, 2, 2, 2873, 2874, 7, 9540, 2, 2, 2874, 2875, 7, 30391, 2, 2, 2875, 2876, 7, 37726, 2, 2, 2876, 2877, 7, 23679, 2, 2, 2877, 2878, 7, 24051, 2, 2, 2878, 2879, 7, 25654, 2, 2, 2879, 2889, 7, 65535, 2, 2, 2880, 2881, 7, 37830, 2, 2, 2881, 2882, 7, 57884, 2, 2, 2882, 2883, 7, 24771, 2, 2, 2883, 2884, 7, 37736, 2, 2, 2884, 2885, 7, 39043, 2, 2, 2885, 2886, 7, 31495, 2, 2, 2886, 2887, 7, 28768, 2, 2, 2887, 2889, 7, 65535, 2, 2, 2888, 2759, 3, 2, 2, 2, 2888, 2767, 3, 2, 2, 2, 2888, 2775, 3, 2, 2, 2, 2888, 2784, 3, 2, 2, 2, 2888, 2796, 3, 2, 2, 2, 2888, 2808, 3, 2, 2, 2, 2888, 2820, 3, 2, 2, 2, 2888, 2828, 3, 2, 2, 2, 2888, 2834, 3, 2, 2, 2, 2888, 2844, 3, 2, 2, 2, 2888, 2852, 3, 2, 2, 2, 2888, 2860, 3, 2, 2, 2, 2888, 2866, 3, 2, 2, 2, 2888, 2872, 3, 2, 2, 2, 2888, 2880, 3, 2, 2, 2, 2889, 500, 3, 2, 2, 2, 2890, 2891, 7, 37713, 2, 2, 2891, 2892, 7, 12583, 2, 2, 2892, 2893, 7, 30510, 2, 2, 2893, 2894, 7, 28701, 2, 2, 2894, 2895, 7, 26944, 2, 2, 2895, 2992, 7, 32141, 2, 2, 2896, 2897, 7, 22961, 2, 2, 2897, 2898, 7, 57414, 2, 2, 2898, 2899, 7, 30536, 2, 2, 2899, 2900, 7, 23482, 2, 2, 2900, 2901, 7, 65089, 2, 2, 2901, 2902, 7, 26232, 2, 2, 2902, 2903, 7, 37914, 2, 2, 2903, 2904, 7, 33335, 2, 2, 2904, 2905, 7, 65535, 2, 2, 2905, 2906, 7, 20347, 2, 2, 2906, 2907, 7, 29232, 2, 2, 2907, 2908, 7, 38005, 2, 2, 2908, 2909, 7, 23680, 2, 2, 2909, 2992, 7, 27355, 2, 2, 2910, 2911, 7, 32470, 2, 2, 2911, 2912, 7, 26665, 2, 2, 2912, 2913, 7, 30536, 2, 2, 2913, 2914, 7, 28053, 2, 2, 2914, 2915, 7, 23109, 2, 2, 2915, 2916, 7, 26593, 2, 2, 2916, 2917, 7, 37914, 2, 2, 2917, 2918, 7, 33335, 2, 2, 2918, 2919, 7, 65535, 2, 2, 2919, 2920, 7, 20347, 2, 2, 2920, 2921, 7, 29232, 2, 2, 2921, 2922, 7, 38005, 2, 2, 2922, 2923, 7, 23680, 2, 2, 2923, 2992, 7, 27355, 2, 2, 2924, 2925, 7, 32470, 2, 2, 2925, 2926, 7, 26665, 2, 2, 2926, 2927, 7, 30536, 2, 2, 2927, 2928, 7, 28053, 2, 2, 2928, 2929, 7, 23341, 2, 2, 2929, 2930, 7, 26593, 2, 2, 2930, 2931, 7, 38318, 2, 2, 2931, 2932, 7, 25781, 2, 2, 2932, 2933, 7, 21505, 2, 2, 2933, 2934, 7, 37839, 2, 2, 2934, 2935, 7, 24540, 2, 2, 2935, 2936, 7, 20761, 2, 2, 2936, 2937, 7, 37831, 2, 2, 2937, 2992, 7, 65535, 2, 2, 2938, 2939, 7, 26442, 2, 2, 2939, 2940, 7, 35270, 2, 2, 2940, 2941, 7, 58637, 2, 2, 2941, 2942, 7, 26866, 2, 2, 2942, 2943, 7, 28360, 2, 2, 2943, 2992, 7, 22732, 2, 2, 2944, 2945, 7, 37914, 2, 2, 2945, 2946, 7, 33335, 2, 2, 2946, 2947, 7, 65535, 2, 2, 2947, 2948, 7, 20347, 2, 2, 2948, 2949, 7, 29232, 2, 2, 2949, 2950, 7, 37828, 2, 2, 2950, 2951, 7, 22249, 2, 2, 2951, 2952, 7, 29929, 2, 2, 2952, 2953, 7, 38011, 2, 2, 2953, 2992, 7, 65535, 2, 2, 2954, 2955, 7, 38343, 2, 2, 2955, 2956, 7, 24809, 2, 2, 2956, 2957, 7, 23477, 2, 2, 2957, 2958, 7, 37830, 2, 2, 2958, 2959, 7, 21097, 2, 2, 2959, 2960, 7, 12380, 2, 2, 2960, 2961, 7, 37828, 2, 2, 2961, 2962, 7, 22249, 2, 2, 2962, 2963, 7, 29929, 2, 2, 2963, 2964, 7, 38011, 2, 2, 2964, 2992, 7, 65535, 2, 2, 2965, 2966, 7, 22950, 2, 2, 2966, 2967, 7, 29008, 2, 2, 2967, 2968, 7, 30514, 2, 2, 2968, 2969, 7, 26464, 2, 2, 2969, 2970, 7, 57603, 2, 2, 2970, 2971, 7, 23860, 2, 2, 2971, 2972, 7, 38005, 2, 2, 2972, 2973, 7, 23680, 2, 2, 2973, 2992, 7, 27355, 2, 2, 2974, 2975, 7, 22950, 2, 2, 2975, 2976, 7, 29008, 2, 2, 2976, 2977, 7, 30514, 2, 2, 2977, 2978, 7, 26464, 2, 2, 2978, 2979, 7, 57603, 2, 2, 2979, 2980, 7, 23860, 2, 2, 2980, 2981, 7, 37828, 2, 2, 2981, 2982, 7, 22249, 2, 2, 2982, 2983, 7, 29929, 2, 2, 2983, 2984, 7, 38011, 2, 2, 2984, 2992, 7, 65535, 2, 2, 2985, 2986, 7, 29763, 2, 2, 2986, 2987, 7, 21615, 2, 2, 2987, 2988, 7, 58926, 2, 2, 2988, 2989, 7, 37716, 2, 2, 2989, 2990, 7, 26950, 2, 2, 2990, 2992, 7, 12293, 2, 2, 2991, 2890, 3, 2, 2, 2, 2991, 2896, 3, 2, 2, 2, 2991, 2910, 3, 2, 2, 2, 2991, 2924, 3, 2, 2, 2, 2991, 2938, 3, 2, 2, 2, 2991, 2944, 3, 2, 2, 2, 2991, 2954, 3, 2, 2, 2, 2991, 2965, 3, 2, 2, 2, 2991, 2974, 3, 2, 2, 2, 2991, 2985, 3, 2, 2, 2, 2992, 502, 3, 2, 2, 2, 2993, 2994, 7, 29725, 2, 2, 2994, 2995, 7, 65535, 2, 2, 2995, 2996, 7, 32517, 2, 2, 2996, 2997, 7, 25118, 2, 2, 2997, 2998, 7, 28610, 2, 2, 2998, 2999, 7, 28731, 2, 2, 2999, 3117, 7, 65535, 2, 2, 3000, 3001, 7, 28053, 2, 2, 3001, 3002, 7, 57697, 2, 2, 3002, 3003, 7, 30250, 2, 2, 3003, 3004, 7, 28030, 2, 2, 3004, 3005, 7, 12423, 2, 2, 3005, 3117, 7, 57740, 2, 2, 3006, 3007, 7, 29725, 2, 2, 3007, 3008, 7, 26497, 2, 2, 3008, 3009, 7, 24615, 2, 2, 3009, 3010, 7, 37827, 2, 2, 3010, 3011, 7, 22561, 2, 2, 3011, 3117, 7, 28747, 2, 2, 3012, 3013, 7, 32512, 2, 2, 3013, 3014, 7, 12834, 2, 2, 3014, 3015, 7, 30084, 2, 2, 3015, 3016, 7, 37935, 2, 2, 3016, 3017, 7, 34413, 2, 2, 3017, 3018, 7, 26215, 2, 2, 3018, 3019, 7, 37837, 2, 2, 3019, 3117, 7, 65535, 2, 2, 3020, 3021, 7, 38021, 2, 2, 3021, 3022, 7, 28616, 2, 2, 3022, 3023, 7, 30084, 2, 2, 3023, 3024, 7, 37935, 2, 2, 3024, 3025, 7, 34413, 2, 2, 3025, 3026, 7, 26215, 2, 2, 3026, 3027, 7, 37837, 2, 2, 3027, 3117, 7, 65535, 2, 2, 3028, 3029, 7, 32515, 2, 2, 3029, 3030, 7, 22448, 2, 2, 3030, 3031, 7, 30084, 2, 2, 3031, 3032, 7, 37935, 2, 2, 3032, 3033, 7, 34413, 2, 2, 3033, 3034, 7, 26215, 2, 2, 3034, 3035, 7, 37837, 2, 2, 3035, 3117, 7, 65535, 2, 2, 3036, 3037, 7, 32512, 2, 2, 3037, 3038, 7, 12837, 2, 2, 3038, 3039, 7, 58631, 2, 2, 3039, 3040, 7, 37923, 2, 2, 3040, 3041, 7, 33335, 2, 2, 3041, 3042, 7, 26215, 2, 2, 3042, 3043, 7, 37837, 2, 2, 3043, 3117, 7, 65535, 2, 2, 3044, 3045, 7, 38021, 2, 2, 3045, 3046, 7, 28620, 2, 2, 3046, 3047, 7, 58631, 2, 2, 3047, 3048, 7, 37923, 2, 2, 3048, 3049, 7, 33335, 2, 2, 3049, 3050, 7, 26215, 2, 2, 3050, 3051, 7, 37837, 2, 2, 3051, 3117, 7, 65535, 2, 2, 3052, 3053, 7, 27037, 2, 2, 3053, 3054, 7, 21232, 2, 2, 3054, 3055, 7, 58631, 2, 2, 3055, 3056, 7, 37923, 2, 2, 3056, 3057, 7, 33335, 2, 2, 3057, 3058, 7, 26215, 2, 2, 3058, 3059, 7, 37837, 2, 2, 3059, 3117, 7, 65535, 2, 2, 3060, 3061, 7, 32515, 2, 2, 3061, 3062, 7, 33009, 2, 2, 3062, 3063, 7, 58631, 2, 2, 3063, 3064, 7, 37923, 2, 2, 3064, 3065, 7, 33335, 2, 2, 3065, 3066, 7, 26215, 2, 2, 3066, 3067, 7, 37837, 2, 2, 3067, 3117, 7, 65535, 2, 2, 3068, 3069, 7, 37936, 2, 2, 3069, 3070, 7, 23546, 2, 2, 3070, 3071, 7, 25973, 2, 2, 3071, 3072, 7, 23013, 2, 2, 3072, 3073, 7, 26048, 2, 2, 3073, 3117, 7, 32231, 2, 2, 3074, 3075, 7, 37723, 2, 2, 3075, 3076, 7, 23943, 2, 2, 3076, 3077, 7, 22192, 2, 2, 3077, 3078, 7, 23013, 2, 2, 3078, 3079, 7, 26048, 2, 2, 3079, 3117, 7, 32231, 2, 2, 3080, 3081, 7, 37715, 2, 2, 3081, 3082, 7, 65535, 2, 2, 3082, 3083, 7, 37720, 2, 2, 3083, 3084, 7, 26666, 2, 2, 3084, 3085, 7, 30256, 2, 2, 3085, 3086, 7, 28188, 2, 2, 3086, 3117, 7, 65535, 2, 2, 3087, 3088, 7, 28002, 2, 2, 3088, 3089, 7, 22250, 2, 2, 3089, 3090, 7, 20220, 2, 2, 3090, 3091, 7, 28585, 2, 2, 3091, 3092, 7, 28852, 2, 2, 3092, 3093, 7, 23008, 2, 2, 3093, 3094, 7, 37708, 2, 2, 3094, 3117, 7, 65535, 2, 2, 3095, 3096, 7, 29725, 2, 2, 3096, 3097, 7, 23685, 2, 2, 3097, 3098, 7, 34509, 2, 2, 3098, 3099, 7, 38317, 2, 2, 3099, 3100, 7, 29113, 2, 2, 3100, 3117, 7, 23477, 2, 2, 3101, 3102, 7, 37718, 2, 2, 3102, 3103, 7, 12585, 2, 2, 3103, 3104, 7, 25984, 2, 2, 3104, 3105, 7, 37829, 2, 2, 3105, 3106, 7, 22551, 2, 2, 3106, 3117, 7, 26881, 2, 2, 3107, 3108, 7, 22950, 2, 2, 3108, 3109, 7, 29008, 2, 2, 3109, 3110, 7, 30514, 2, 2, 3110, 3111, 7, 37716, 2, 2, 3111, 3112, 7, 22250, 2, 2, 3112, 3113, 7, 23860, 2, 2, 3113, 3114, 7, 37829, 2, 2, 3114, 3115, 7, 22551, 2, 2, 3115, 3117, 7, 26881, 2, 2, 3116, 2993, 3, 2, 2, 2, 3116, 3000, 3, 2, 2, 2, 3116, 3006, 3, 2, 2, 2, 3116, 3012, 3, 2, 2, 2, 3116, 3020, 3, 2, 2, 2, 3116, 3028, 3, 2, 2, 2, 3116, 3036, 3, 2, 2, 2, 3116, 3044, 3, 2, 2, 2, 3116, 3052, 3, 2, 2, 2, 3116, 3060, 3, 2, 2, 2, 3116, 3068, 3, 2, 2, 2, 3116, 3074, 3, 2, 2, 2, 3116, 3080, 3, 2, 2, 2, 3116, 3087, 3, 2, 2, 2, 3116, 3095, 3, 2, 2, 2, 3116, 3101, 3, 2, 2, 2, 3116, 3107, 3, 2, 2, 2, 3117, 504, 3, 2, 2, 2, 3118, 3119, 7, 37830, 2, 2, 3119, 3120, 7, 21097, 2, 2, 3120, 3121, 7, 12380, 2, 2, 3121, 3122, 7, 35122, 2, 2, 3122, 3123, 7, 25781, 2, 2, 3123, 3124, 7, 22690, 2, 2, 3124, 3125, 7, 22950, 2, 2, 3125, 3126, 7, 29008, 2, 2, 3126, 3443, 7, 30514, 2, 2, 3127, 3128, 7, 37830, 2, 2, 3128, 3129, 7, 21097, 2, 2, 3129, 3130, 7, 12380, 2, 2, 3130, 3131, 7, 37719, 2, 2, 3131, 3132, 7, 22249, 2, 2, 3132, 3133, 7, 65293, 2, 2, 3133, 3134, 7, 37735, 2, 2, 3134, 3135, 7, 28846, 2, 2, 3135, 3443, 7, 29221, 2, 2, 3136, 3137, 7, 37830, 2, 2, 3137, 3138, 7, 21097, 2, 2, 3138, 3139, 7, 12380, 2, 2, 3139, 3140, 7, 35122, 2, 2, 3140, 3141, 7, 25781, 2, 2, 3141, 3142, 7, 22690, 2, 2, 3142, 3143, 7, 32477, 2, 2, 3143, 3144, 7, 22798, 2, 2, 3144, 3443, 7, 39561, 2, 2, 3145, 3146, 7, 37724, 2, 2, 3146, 3147, 7, 57886, 2, 2, 3147, 3148, 7, 25958, 2, 2, 3148, 3149, 7, 37924, 2, 2, 3149, 3150, 7, 29113, 2, 2, 3150, 3151, 7, 25059, 2, 2, 3151, 3152, 7, 28053, 2, 2, 3152, 3153, 7, 23113, 2, 2, 3153, 3443, 7, 27324, 2, 2, 3154, 3155, 7, 37830, 2, 2, 3155, 3156, 7, 21097, 2, 2, 3156, 3157, 7, 12380, 2, 2, 3157, 3158, 7, 27014, 2, 2, 3158, 3159, 7, 26049, 2, 2, 3159, 3160, 7, 22993, 2, 2, 3160, 3161, 7, 37708, 2, 2, 3161, 3443, 7, 65535, 2, 2, 3162, 3163, 7, 37830, 2, 2, 3163, 3164, 7, 21097, 2, 2, 3164, 3165, 7, 12380, 2, 2, 3165, 3166, 7, 27014, 2, 2, 3166, 3167, 7, 26058, 2, 2, 3167, 3168, 7, 27133, 2, 2, 3168, 3169, 7, 37708, 2, 2, 3169, 3443, 7, 65535, 2, 2, 3170, 3171, 7, 37830, 2, 2, 3171, 3172, 7, 21097, 2, 2, 3172, 3173, 7, 12380, 2, 2, 3173, 3174, 7, 38324, 2, 2, 3174, 3175, 7, 25119, 2, 2, 3175, 3176, 7, 31479, 2, 2, 3176, 3177, 7, 37708, 2, 2, 3177, 3443, 7, 65535, 2, 2, 3178, 3179, 7, 37830, 2, 2, 3179, 3180, 7, 21097, 2, 2, 3180, 3181, 7, 12380, 2, 2, 3181, 3182, 7, 32515, 2, 2, 3182, 3183, 7, 24541, 2, 2, 3183, 3184, 7, 29531, 2, 2, 3184, 3185, 7, 37708, 2, 2, 3185, 3443, 7, 65535, 2, 2, 3186, 3187, 7, 37713, 2, 2, 3187, 3188, 7, 20351, 2, 2, 3188, 3189, 7, 57745, 2, 2, 3189, 3190, 7, 32477, 2, 2, 3190, 3191, 7, 22798, 2, 2, 3191, 3192, 7, 39561, 2, 2, 3192, 3193, 7, 37821, 2, 2, 3193, 3194, 7, 24878, 2, 2, 3194, 3443, 7, 23822, 2, 2, 3195, 3196, 7, 37721, 2, 2, 3196, 3197, 7, 22251, 2, 2, 3197, 3198, 7, 39561, 2, 2, 3198, 3199, 7, 37815, 2, 2, 3199, 3200, 7, 65355, 2, 2, 3200, 3201, 7, 27344, 2, 2, 3201, 3202, 7, 22961, 2, 2, 3202, 3203, 7, 8245, 2, 2, 3203, 3443, 7, 32035, 2, 2, 3204, 3205, 7, 37830, 2, 2, 3205, 3206, 7, 21097, 2, 2, 3206, 3207, 7, 12380, 2, 2, 3207, 3208, 7, 38335, 2, 2, 3208, 3209, 7, 12519, 2, 2, 3209, 3210, 7, 23543, 2, 2, 3210, 3211, 7, 37827, 2, 2, 3211, 3212, 7, 20278, 2, 2, 3212, 3443, 7, 22140, 2, 2, 3213, 3214, 7, 37830, 2, 2, 3214, 3215, 7, 21097, 2, 2, 3215, 3216, 7, 12380, 2, 2, 3216, 3217, 7, 37936, 2, 2, 3217, 3218, 7, 23546, 2, 2, 3218, 3219, 7, 20580, 2, 2, 3219, 3220, 7, 26893, 2, 2, 3220, 3443, 7, 65535, 2, 2, 3221, 3222, 7, 37830, 2, 2, 3222, 3223, 7, 21097, 2, 2, 3223, 3224, 7, 12380, 2, 2, 3224, 3225, 7, 23013, 2, 2, 3225, 3226, 7, 25495, 2, 2, 3226, 3227, 7, 8222, 2, 2, 3227, 3228, 7, 37726, 2, 2, 3228, 3443, 7, 65535, 2, 2, 3229, 3230, 7, 37830, 2, 2, 3230, 3231, 7, 21097, 2, 2, 3231, 3232, 7, 12380, 2, 2, 3232, 3233, 7, 35122, 2, 2, 3233, 3234, 7, 25781, 2, 2, 3234, 3235, 7, 22690, 2, 2, 3235, 3236, 7, 37816, 2, 2, 3236, 3237, 7, 65535, 2, 2, 3237, 3238, 7, 38005, 2, 2, 3238, 3443, 7, 65535, 2, 2, 3239, 3240, 7, 22950, 2, 2, 3240, 3241, 7, 20862, 2, 2, 3241, 3242, 7, 59244, 2, 2, 3242, 3243, 7, 26442, 2, 2, 3243, 3244, 7, 35270, 2, 2, 3244, 3245, 7, 22690, 2, 2, 3245, 3246, 7, 38005, 2, 2, 3246, 3247, 7, 33447, 2, 2, 3247, 3248, 7, 12478, 2, 2, 3248, 3249, 7, 28030, 2, 2, 3249, 3443, 7, 65535, 2, 2, 3250, 3251, 7, 22950, 2, 2, 3251, 3252, 7, 38390, 2, 2, 3252, 3253, 7, 32056, 2, 2, 3253, 3254, 7, 39584, 2, 2, 3254, 3255, 7, 25279, 2, 2, 3255, 3256, 7, 28530, 2, 2, 3256, 3257, 7, 28619, 2, 2, 3257, 3258, 7, 26050, 2, 2, 3258, 3259, 7, 259, 2, 2, 3259, 3260, 7, 23536, 2, 2, 3260, 3443, 7, 65535, 2, 2, 3261, 3262, 7, 37936, 2, 2, 3262, 3263, 7, 26451, 2, 2, 3263, 3264, 7, 58752, 2, 2, 3264, 3265, 7, 38338, 2, 2, 3265, 3266, 7, 24878, 2, 2, 3266, 3267, 7, 27925, 2, 2, 3267, 3268, 7, 37828, 2, 2, 3268, 3269, 7, 29810, 2, 2, 3269, 3443, 7, 24734, 2, 2, 3270, 3271, 7, 37906, 2, 2, 3271, 3272, 7, 31297, 2, 2, 3272, 3273, 7, 33036, 2, 2, 3273, 3274, 7, 37735, 2, 2, 3274, 3275, 7, 28059, 2, 2, 3275, 3276, 7, 26593, 2, 2, 3276, 3277, 7, 37724, 2, 2, 3277, 3443, 7, 65535, 2, 2, 3278, 3279, 7, 37714, 2, 2, 3279, 3280, 7, 26497, 2, 2, 3280, 3281, 7, 21911, 2, 2, 3281, 3282, 7, 23538, 2, 2, 3282, 3283, 7, 30030, 2, 2, 3283, 3284, 7, 29689, 2, 2, 3284, 3285, 7, 37735, 2, 2, 3285, 3286, 7, 28059, 2, 2, 3286, 3287, 7, 26593, 2, 2, 3287, 3288, 7, 37724, 2, 2, 3288, 3443, 7, 65535, 2, 2, 3289, 3290, 7, 38336, 2, 2, 3290, 3291, 7, 20354, 2, 2, 3291, 3292, 7, 26862, 2, 2, 3292, 3293, 7, 28053, 2, 2, 3293, 3294, 7, 23947, 2, 2, 3294, 3295, 7, 28216, 2, 2, 3295, 3296, 7, 29783, 2, 2, 3296, 3297, 7, 20354, 2, 2, 3297, 3298, 7, 25374, 2, 2, 3298, 3299, 7, 37720, 2, 2, 3299, 3443, 7, 65535, 2, 2, 3300, 3301, 7, 23536, 2, 2, 3301, 3302, 7, 65535, 2, 2, 3302, 3303, 7, 37724, 2, 2, 3303, 3304, 7, 57884, 2, 2, 3304, 3305, 7, 23008, 2, 2, 3305, 3306, 7, 37906, 2, 2, 3306, 3443, 7, 65535, 2, 2, 3307, 3308, 7, 23536, 2, 2, 3308, 3309, 7, 65535, 2, 2, 3309, 3310, 7, 37724, 2, 2, 3310, 3311, 7, 57887, 2, 2, 3311, 3312, 7, 30989, 2, 2, 3312, 3313, 7, 28030, 2, 2, 3313, 3443, 7, 65535, 2, 2, 3314, 3315, 7, 28002, 2, 2, 3315, 3316, 7, 22250, 2, 2, 3316, 3317, 7, 20220, 2, 2, 3317, 3318, 7, 37806, 2, 2, 3318, 3319, 7, 57415, 2, 2, 3319, 3320, 7, 22446, 2, 2, 3320, 3321, 7, 37724, 2, 2, 3321, 3322, 7, 24228, 2, 2, 3322, 3323, 7, 22714, 2, 2, 3323, 3324, 7, 37715, 2, 2, 3324, 3325, 7, 24528, 2, 2, 3325, 3326, 7, 31478, 2, 2, 3326, 3327, 7, 37721, 2, 2, 3327, 3443, 7, 65535, 2, 2, 3328, 3329, 7, 28600, 2, 2, 3329, 3330, 7, 29810, 2, 2, 3330, 3331, 7, 22192, 2, 2, 3331, 3332, 7, 37830, 2, 2, 3332, 3333, 7, 57884, 2, 2, 3333, 3334, 7, 24771, 2, 2, 3334, 3335, 7, 28053, 2, 2, 3335, 3336, 7, 23109, 2, 2, 3336, 3443, 7, 26277, 2, 2, 3337, 3338, 7, 28600, 2, 2, 3338, 3339, 7, 29810, 2, 2, 3339, 3340, 7, 22192, 2, 2, 3340, 3341, 7, 28053, 2, 2, 3341, 3342, 7, 23946, 2, 2, 3342, 3343, 7, 31222, 2, 2, 3343, 3344, 7, 28030, 2, 2, 3344, 3345, 7, 12423, 2, 2, 3345, 3346, 7, 57740, 2, 2, 3346, 3347, 7, 37708, 2, 2, 3347, 3443, 7, 65535, 2, 2, 3348, 3349, 7, 23538, 2, 2, 3349, 3350, 7, 57416, 2, 2, 3350, 3351, 7, 24136, 2, 2, 3351, 3352, 7, 29827, 2, 2, 3352, 3353, 7, 65286, 2, 2, 3353, 3354, 7, 30077, 2, 2, 3354, 3355, 7, 28053, 2, 2, 3355, 3356, 7, 23546, 2, 2, 3356, 3443, 7, 26221, 2, 2, 3357, 3358, 7, 37713, 2, 2, 3358, 3359, 7, 20351, 2, 2, 3359, 3360, 7, 57745, 2, 2, 3360, 3361, 7, 26464, 2, 2, 3361, 3362, 7, 32474, 2, 2, 3362, 3443, 7, 23518, 2, 2, 3363, 3364, 7, 28727, 2, 2, 3364, 3365, 7, 26129, 2, 2, 3365, 3366, 7, 30720, 2, 2, 3366, 3367, 7, 32482, 2, 2, 3367, 3368, 7, 26947, 2, 2, 3368, 3369, 7, 30840, 2, 2, 3369, 3370, 7, 28053, 2, 2, 3370, 3371, 7, 23945, 2, 2, 3371, 3372, 7, 31917, 2, 2, 3372, 3373, 7, 29725, 2, 2, 3373, 3374, 7, 65535, 2, 2, 3374, 3375, 7, 37923, 2, 2, 3375, 3443, 7, 65535, 2, 2, 3376, 3377, 7, 37713, 2, 2, 3377, 3378, 7, 20351, 2, 2, 3378, 3379, 7, 57745, 2, 2, 3379, 3380, 7, 29865, 2, 2, 3380, 3381, 7, 26497, 2, 2, 3381, 3382, 7, 22478, 2, 2, 3382, 3383, 7, 28753, 2, 2, 3383, 3384, 7, 21978, 2, 2, 3384, 3385, 7, 57654, 2, 2, 3385, 3386, 7, 26866, 2, 2, 3386, 3387, 7, 21977, 2, 2, 3387, 3443, 7, 29019, 2, 2, 3388, 3389, 7, 37713, 2, 2, 3389, 3390, 7, 20351, 2, 2, 3390, 3391, 7, 57745, 2, 2, 3391, 3392, 7, 37934, 2, 2, 3392, 3393, 7, 57606, 2, 2, 3393, 3394, 7, 26881, 2, 2, 3394, 3395, 7, 32459, 2, 2, 3395, 3396, 7, 35828, 2, 2, 3396, 3443, 7, 23019, 2, 2, 3397, 3398, 7, 37713, 2, 2, 3398, 3399, 7, 20351, 2, 2, 3399, 3400, 7, 57745, 2, 2, 3400, 3401, 7, 37838, 2, 2, 3401, 3402, 7, 12521, 2, 2, 3402, 3403, 7, 28231, 2, 2, 3403, 3404, 7, 32452, 2, 2, 3404, 3405, 7, 20348, 2, 2, 3405, 3406, 7, 25958, 2, 2, 3406, 3407, 7, 37729, 2, 2, 3407, 3408, 7, 21977, 2, 2, 3408, 3443, 7, 31799, 2, 2, 3409, 3410, 7, 38341, 2, 2, 3410, 3411, 7, 32474, 2, 2, 3411, 3412, 7, 32316, 2, 2, 3412, 3413, 7, 28600, 2, 2, 3413, 3414, 7, 29810, 2, 2, 3414, 3415, 7, 29019, 2, 2, 3415, 3416, 7, 37724, 2, 2, 3416, 3417, 7, 24229, 2, 2, 3417, 3418, 7, 59112, 2, 2, 3418, 3419, 7, 37924, 2, 2, 3419, 3420, 7, 12583, 2, 2, 3420, 3421, 7, 25579, 2, 2, 3421, 3422, 7, 37819, 2, 2, 3422, 3423, 7, 23794, 2, 2, 3423, 3424, 7, 26212, 2, 2, 3424, 3425, 7, 25654, 2, 2, 3425, 3443, 7, 65535, 2, 2, 3426, 3427, 7, 38097, 2, 2, 3427, 3428, 7, 27694, 2, 2, 3428, 3429, 7, 23540, 2, 2, 3429, 3430, 7, 37717, 2, 2, 3430, 3431, 7, 23944, 2, 2, 3431, 3432, 7, 27355, 2, 2, 3432, 3433, 7, 28768, 2, 2, 3433, 3443, 7, 65535, 2, 2, 3434, 3435, 7, 22957, 2, 2, 3435, 3436, 7, 65535, 2, 2, 3436, 3437, 7, 37838, 2, 2, 3437, 3438, 7, 12520, 2, 2, 3438, 3439, 7, 24120, 2, 2, 3439, 3440, 7, 37716, 2, 2, 3440, 3441, 7, 36348, 2, 2, 3441, 3443, 7, 24438, 2, 2, 3442, 3118, 3, 2, 2, 2, 3442, 3127, 3, 2, 2, 2, 3442, 3136, 3, 2, 2, 2, 3442, 3145, 3, 2, 2, 2, 3442, 3154, 3, 2, 2, 2, 3442, 3162, 3, 2, 2, 2, 3442, 3170, 3, 2, 2, 2, 3442, 3178, 3, 2, 2, 2, 3442, 3186, 3, 2, 2, 2, 3442, 3195, 3, 2, 2, 2, 3442, 3204, 3, 2, 2, 2, 3442, 3213, 3, 2, 2, 2, 3442, 3221, 3, 2, 2, 2, 3442, 3229, 3, 2, 2, 2, 3442, 3239, 3, 2, 2, 2, 3442, 3250, 3, 2, 2, 2, 3442, 3261, 3, 2, 2, 2, 3442, 3270, 3, 2, 2, 2, 3442, 3278, 3, 2, 2, 2, 3442, 3289, 3, 2, 2, 2, 3442, 3300, 3, 2, 2, 2, 3442, 3307, 3, 2, 2, 2, 3442, 3314, 3, 2, 2, 2, 3442, 3328, 3, 2, 2, 2, 3442, 3337, 3, 2, 2, 2, 3442, 3348, 3, 2, 2, 2, 3442, 3357, 3, 2, 2, 2, 3442, 3363, 3, 2, 2, 2, 3442, 3376, 3, 2, 2, 2, 3442, 3388, 3, 2, 2, 2, 3442, 3397, 3, 2, 2, 2, 3442, 3409, 3, 2, 2, 2, 3442, 3426, 3, 2, 2, 2, 3442, 3434, 3, 2, 2, 2, 3443, 506, 3, 2, 2, 2, 3444, 3445, 7, 117, 2, 2, 3445, 3446, 7, 102, 2, 2, 3446, 3447, 7, 103, 2, 2, 3447, 3448, 7, 107, 2, 2, 3448, 3449, 7, 116, 2, 2, 3449, 3450, 7, 119, 2, 2, 3450, 3451, 7, 105, 2, 2, 3451, 3452, 7, 106, 2, 2, 3452, 3453, 7, 120, 2, 2, 3453, 3454, 7, 119, 2, 2, 3454, 3455, 7, 107, 2, 2, 3455, 3456, 7, 123, 2, 2, 3456, 3457, 7, 99, 2, 2, 3457, 3458, 7, 117, 2, 2, 3458, 3459, 7, 102, 2, 2, 3459, 3460, 7, 103, 2, 2, 3460, 3462, 7, 100, 2, 2, 3461, 3444, 3, 2, 2, 2, 3462, 3463, 3, 2, 2, 2, 3463, 3461, 3, 2, 2, 2, 3463, 3464, 3, 2, 2, 2, 3464, 508, 3, 2, 2, 2, 3465, 3466, 7, 117, 2, 2, 3466, 3467, 7, 102, 2, 2, 3467, 3468, 7, 103, 2, 2, 3468, 3469, 7, 107, 2, 2, 3469, 3470, 7, 116, 2, 2, 3470, 3471, 7, 119, 2, 2, 3471, 3472, 7, 105, 2, 2, 3472, 3473, 7, 106, 2, 2, 3473, 3474, 7, 120, 2, 2, 3474, 3475, 7, 119, 2, 2, 3475, 3476, 7, 107, 2, 2, 3476, 3477, 7, 123, 2, 2, 3477, 3478, 7, 99, 2, 2, 3478, 3479, 7, 117, 2, 2, 3479, 3480, 7, 102, 2, 2, 3480, 3481, 7, 103, 2, 2, 3481, 3483, 7, 100, 2, 2, 3482, 3465, 3, 2, 2, 2, 3483, 3484, 3, 2, 2, 2, 3484, 3482, 3, 2, 2, 2, 3484, 3485, 3, 2, 2, 2, 3485, 510, 3, 2, 2, 2, 3486, 3487, 7, 86, 2, 2, 3487, 3488, 7, 84, 2, 2, 3488, 3489, 7, 87, 2, 2, 3489, 3496, 7, 71, 2, 2, 3490, 3491, 7, 72, 2, 2, 3491, 3492, 7, 67, 2, 2, 3492, 3493, 7, 78, 2, 2, 3493, 3494, 7, 85, 2, 2, 3494, 3496, 7, 71, 2, 2, 3495, 3486, 3, 2, 2, 2, 3495, 3490, 3, 2, 2, 2, 3496, 512, 3, 2, 2, 2, 3497, 3506, 7, 50, 2, 2, 3498, 3502, 9, 4, 2, 2, 3499, 3501, 9, 5, 2, 2, 3500, 3499, 3, 2, 2, 2, 3501, 3504, 3, 2, 2, 2, 3502, 3500, 3, 2, 2, 2, 3502, 3503, 3, 2, 2, 2, 3503, 3506, 3, 2, 2, 2, 3504, 3502, 3, 2, 2, 2, 3505, 3497, 3, 2, 2, 2, 3505, 3498, 3, 2, 2, 2, 3506, 514, 3, 2, 2, 2, 3507, 3508, 4, 67, 92, 2, 3508, 516, 3, 2, 2, 2, 3509, 3511, 7, 47, 2, 2, 3510, 3509, 3, 2, 2, 2, 3510, 3511, 3, 2, 2, 2, 3511, 3512, 3, 2, 2, 2, 3512, 3513, 5, 513, 257, 2, 3513, 3514, 7, 48, 2, 2, 3514, 3516, 5, 513, 257, 2, 3515, 3517, 5, 519, 260, 2, 3516, 3515, 3, 2, 2, 2, 3516, 3517, 3, 2, 2, 2, 3517, 3529, 3, 2, 2, 2, 3518, 3520, 7, 47, 2, 2, 3519, 3518, 3, 2, 2, 2, 3519, 3520, 3, 2, 2, 2, 3520, 3521, 3, 2, 2, 2, 3521, 3522, 5, 513, 257, 2, 3522, 3523, 5, 519, 260, 2, 3523, 3529, 3, 2, 2, 2, 3524, 3526, 7, 47, 2, 2, 3525, 3524, 3, 2, 2, 2, 3525, 3526, 3, 2, 2, 2, 3526, 3527, 3, 2, 2, 2, 3527, 3529, 5, 513, 257, 2, 3528, 3510, 3, 2, 2, 2, 3528, 3519, 3, 2, 2, 2, 3528, 3525, 3, 2, 2, 2, 3529, 518, 3, 2, 2, 2, 3530, 3532, 9, 6, 2, 2, 3531, 3533, 9, 7, 2, 2, 3532, 3531, 3, 2, 2, 2, 3532, 3533, 3, 2, 2, 2, 3533, 3534, 3, 2, 2, 2, 3534, 3535, 5, 513, 257, 2, 3535, 520, 3, 2, 2, 2, 3536, 3537, 7, 28053, 2, 2, 3537, 3545, 7, 65535, 2, 2, 3538, 3539, 7, 28053, 2, 2, 3539, 3545, 7, 65535, 2, 2, 3540, 3541, 7, 23482, 2, 2, 3541, 3545, 7, 65535, 2, 2, 3542, 3543, 7, 37723, 2, 2, 3543, 3545, 7, 65535, 2, 2, 3544, 3536, 3, 2, 2, 2, 3544, 3538, 3, 2, 2, 2, 3544, 3540, 3, 2, 2, 2, 3544, 3542, 3, 2, 2, 2, 3545, 522, 3, 2, 2, 2, 3546, 3547, 7, 28053, 2, 2, 3547, 3548, 7, 23943, 2, 2, 3548, 3558, 7, 24395, 2, 2, 3549, 3550, 7, 28053, 2, 2, 3550, 3558, 7, 65535, 2, 2, 3551, 3552, 7, 28053, 2, 2, 3552, 3558, 7, 65535, 2, 2, 3553, 3554, 7, 23482, 2, 2, 3554, 3558, 7, 65535, 2, 2, 3555, 3556, 7, 37723, 2, 2, 3556, 3558, 7, 65535, 2, 2, 3557, 3546, 3, 2, 2, 2, 3557, 3549, 3, 2, 2, 2, 3557, 3551, 3, 2, 2, 2, 3557, 3553, 3, 2, 2, 2, 3557, 3555, 3, 2, 2, 2, 3558, 524, 3, 2, 2, 2, 3559, 3561, 5, 521, 261, 2, 3560, 3562, 5, 513, 257, 2, 3561, 3560, 3, 2, 2, 2, 3561, 3562, 3, 2, 2, 2, 3562, 3564, 3, 2, 2, 2, 3563, 3559, 3, 2, 2, 2, 3564, 3565, 3, 2, 2, 2, 3565, 3563, 3, 2, 2, 2, 3565, 3566, 3, 2, 2, 2, 3566, 526, 3, 2, 2, 2, 3567, 3571, 9, 8, 2, 2, 3568, 3570, 9, 9, 2, 2, 3569, 3568, 3, 2, 2, 2, 3570, 3573, 3, 2, 2, 2, 3571, 3569, 3, 2, 2, 2, 3571, 3572, 3, 2, 2, 2, 3572, 528, 3, 2, 2, 2, 3573, 3571, 3, 2, 2, 2, 3574, 3575, 7, 37924, 2, 2, 3575, 3576, 7, 29113, 2, 2, 3576, 3608, 7, 25059, 2, 2, 3577, 3578, 7, 37826, 2, 2, 3578, 3579, 7, 35828, 2, 2, 3579, 3608, 7, 22192, 2, 2, 3580, 3581, 7, 38341, 2, 2, 3581, 3582, 7, 25556, 2, 2, 3582, 3608, 7, 23615, 2, 2, 3583, 3584, 7, 27014, 2, 2, 3584, 3585, 7, 26058, 2, 2, 3585, 3608, 7, 27133, 2, 2, 3586, 3587, 7, 27037, 2, 2, 3587, 3588, 7, 21233, 2, 2, 3588, 3589, 7, 25374, 2, 2, 3589, 3590, 7, 37720, 2, 2, 3590, 3608, 7, 65535, 2, 2, 3591, 3592, 7, 38021, 2, 2, 3592, 3593, 7, 28621, 2, 2, 3593, 3594, 7, 25374, 2, 2, 3594, 3595, 7, 37720, 2, 2, 3595, 3608, 7, 65535, 2, 2, 3596, 3597, 7, 32512, 2, 2, 3597, 3598, 7, 12838, 2, 2, 3598, 3599, 7, 25374, 2, 2, 3599, 3600, 7, 37720, 2, 2, 3600, 3608, 7, 65535, 2, 2, 3601, 3602, 7, 38324, 2, 2, 3602, 3603, 7, 25119, 2, 2, 3603, 3608, 7, 31479, 2, 2, 3604, 3605, 7, 32515, 2, 2, 3605, 3606, 7, 24541, 2, 2, 3606, 3608, 7, 29531, 2, 2, 3607, 3574, 3, 2, 2, 2, 3607, 3577, 3, 2, 2, 2, 3607, 3580, 3, 2, 2, 2, 3607, 3583, 3, 2, 2, 2, 3607, 3586, 3, 2, 2, 2, 3607, 3591, 3, 2, 2, 2, 3607, 3596, 3, 2, 2, 2, 3607, 3601, 3, 2, 2, 2, 3607, 3604, 3, 2, 2, 2, 3608, 530, 3, 2, 2, 2, 3609, 3610, 7, 37723, 2, 2, 3610, 3611, 7, 27202, 2, 2, 3611, 3633, 7, 22140, 2, 2, 3612, 3613, 7, 37914, 2, 2, 3613, 3614, 7, 33335, 2, 2, 3614, 3615, 7, 65535, 2, 2, 3615, 3633, 7, 65535, 2, 2, 3616, 3617, 7, 37913, 2, 2, 3617, 3618, 7, 9539, 2, 2, 3618, 3633, 7, 25641, 2, 2, 3619, 3620, 7, 37915, 2, 2, 3620, 3621, 7, 57604, 2, 2, 3621, 3622, 7, 29661, 2, 2, 3622, 3623, 7, 23536, 2, 2, 3623, 3624, 7, 65535, 2, 2, 3624, 3625, 7, 37713, 2, 2, 3625, 3633, 7, 65535, 2, 2, 3626, 3627, 7, 37713, 2, 2, 3627, 3628, 7, 12583, 2, 2, 3628, 3629, 7, 30510, 2, 2, 3629, 3630, 7, 28701, 2, 2, 3630, 3631, 7, 27196, 2, 2, 3631, 3633, 7, 20559, 2, 2, 3632, 3609, 3, 2, 2, 2, 3632, 3612, 3, 2, 2, 2, 3632, 3616, 3, 2, 2, 2, 3632, 3619, 3, 2, 2, 2, 3632, 3626, 3, 2, 2, 2, 3633, 532, 3, 2, 2, 2, 3634, 3639, 5, 545, 273, 2, 3635, 3638, 5, 535, 268, 2, 3636, 3638, 10, 10, 2, 2, 3637, 3635, 3, 2, 2, 2, 3637, 3636, 3, 2, 2, 2, 3638, 3641, 3, 2, 2, 2, 3639, 3637, 3, 2, 2, 2, 3639, 3640, 3, 2, 2, 2, 3640, 3642, 3, 2, 2, 2, 3641, 3639, 3, 2, 2, 2, 3642, 3643, 5, 545, 273, 2, 3643, 534, 3, 2, 2, 2, 3644, 3647, 7, 94, 2, 2, 3645, 3648, 9, 11, 2, 2, 3646, 3648, 5, 537, 269, 2, 3647, 3645, 3, 2, 2, 2, 3647, 3646, 3, 2, 2, 2, 3648, 536, 3, 2, 2, 2, 3649, 3650, 7, 119, 2, 2, 3650, 3651, 5, 539, 270, 2, 3651, 3652, 5, 539, 270, 2, 3652, 3653, 5, 539, 270, 2, 3653, 3654, 5, 539, 270, 2, 3654, 538, 3, 2, 2, 2, 3655, 3656, 9, 12, 2, 2, 3656, 540, 3, 2, 2, 2, 3657, 3658, 7, 68, 2, 2, 3658, 3659, 7, 73, 2, 2, 3659, 3660, 7, 80, 2, 2, 3660, 3661, 7, 78, 2, 2, 3661, 3662, 7, 99, 2, 2, 3662, 3663, 7, 103, 2, 2, 3663, 3664, 7, 116, 2, 2, 3664, 3665, 7, 105, 2, 2, 3665, 3666, 7, 99, 2, 2, 3666, 3667, 7, 123, 2, 2, 3667, 3668, 7, 103, 2, 2, 3668, 3669, 7, 116, 2, 2, 3669, 3670, 7, 105, 2, 2, 3670, 3671, 7, 104, 2, 2, 3671, 3672, 7, 119, 2, 2, 3672, 3673, 7, 123, 2, 2, 3673, 3674, 7, 100, 2, 2, 3674, 3675, 7, 105, 2, 2, 3675, 3676, 7, 120, 2, 2, 3676, 542, 3, 2, 2, 2, 3677, 3678, 7, 63, 2, 2, 3678, 3679, 7, 63, 2, 2, 3679, 3680, 7, 63, 2, 2, 3680, 3681, 7, 34, 2, 2, 3681, 3682, 7, 111, 2, 2, 3682, 3683, 7, 103, 2, 2, 3683, 3684, 7, 99, 2, 2, 3684, 3685, 7, 112, 2, 2, 3685, 3686, 7, 107, 2, 2, 3686, 3687, 7, 112, 2, 2, 3687, 3688, 7, 105, 2, 2, 3688, 3689, 7, 104, 2, 2, 3689, 3690, 7, 119, 2, 2, 3690, 3691, 7, 110, 2, 2, 3691, 3692, 7, 34, 2, 2, 3692, 3693, 7, 96, 2, 2, 3693, 3694, 7, 34, 2, 2, 3694, 3695, 7, 63, 2, 2, 3695, 3696, 7, 63, 2, 2, 3696, 3697, 7, 63, 2, 2, 3697, 544, 3, 2, 2, 2, 3698, 3699, 7, 36, 2, 2, 3699, 546, 3, 2, 2, 2, 3700, 3701, 7, 23536, 2, 2, 3701, 3702, 7, 65535, 2, 2, 3702, 3703, 7, 28656, 2, 2, 3703, 3704, 7, 65535, 2, 2, 3704, 548, 3, 2, 2, 2, 3705, 3706, 7, 32515, 2, 2, 3706, 3707, 7, 25782, 2, 2, 3707, 3708, 7, 28525, 2, 2, 3708, 550, 3, 2, 2, 2, 3709, 3711, 7, 15, 2, 2, 3710, 3712, 7, 12, 2, 2, 3711, 3710, 3, 2, 2, 2, 3711, 3712, 3, 2, 2, 2, 3712, 3715, 3, 2, 2, 2, 3713, 3715, 7, 12, 2, 2, 3714, 3709, 3, 2, 2, 2, 3714, 3713, 3, 2, 2, 2, 3715, 552, 3, 2, 2, 2, 3716, 3718, 9, 13, 2, 2, 3717, 3716, 3, 2, 2, 2, 3718, 3719, 3, 2, 2, 2, 3719, 3717, 3, 2, 2, 2, 3719, 3720, 3, 2, 2, 2, 3720, 3721, 3, 2, 2, 2, 3721, 3722, 8, 277, 2, 2, 3722, 554, 3, 2, 2, 2, 3723, 3724, 7, 49, 2, 2, 3724, 3725, 7, 44, 2, 2, 3725, 3729, 3, 2, 2, 2, 3726, 3728, 11, 2, 2, 2, 3727, 3726, 3, 2, 2, 2, 3728, 3731, 3, 2, 2, 2, 3729, 3730, 3, 2, 2, 2, 3729, 3727, 3, 2, 2, 2, 3730, 3732, 3, 2, 2, 2, 3731, 3729, 3, 2, 2, 2, 3732, 3733, 7, 44, 2, 2, 3733, 3734, 7, 49, 2, 2, 3734, 3735, 3, 2, 2, 2, 3735, 3736, 8, 278, 2, 2, 3736, 556, 3, 2, 2, 2, 3737, 3738, 7, 49, 2, 2, 3738, 3739, 7, 49, 2, 2, 3739, 3743, 3, 2, 2, 2, 3740, 3742, 10, 14, 2, 2, 3741, 3740, 3, 2, 2, 2, 3742, 3745, 3, 2, 2, 2, 3743, 3741, 3, 2, 2, 2, 3743, 3744, 3, 2, 2, 2, 3744, 3746, 3, 2, 2, 2, 3745, 3743, 3, 2, 2, 2, 3746, 3747, 8, 279, 2, 2, 3747, 558, 3, 2, 2, 2, 48, 2, 2480, 2501, 2522, 2539, 2580, 2602, 2625, 2646, 2654, 2670, 2680, 2699, 2718, 2730, 2757, 2888, 2991, 3116, 3442, 3463, 3484, 3495, 3502, 3505, 3510, 3516, 3519, 3525, 3528, 3532, 3544, 3557, 3561, 3565, 3571, 3607, 3632, 3637, 3639, 3647, 3711, 3714, 3719, 3729, 3743, 3, 8, 2, 2] \ No newline at end of file diff --git a/_server/.antlr/MotaActionLexer.java b/_server/.antlr/MotaActionLexer.java new file mode 100644 index 00000000..8275a019 --- /dev/null +++ b/_server/.antlr/MotaActionLexer.java @@ -0,0 +1,1943 @@ +// Generated from d:\mota\git\mota-js\_server\MotaAction.g4 by ANTLR 4.7.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class MotaActionLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, + T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, + T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, + T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, + T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, + T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, + T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, + T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, + T__80=81, T__81=82, T__82=83, T__83=84, T__84=85, T__85=86, T__86=87, + T__87=88, T__88=89, T__89=90, T__90=91, T__91=92, T__92=93, T__93=94, + T__94=95, T__95=96, T__96=97, T__97=98, T__98=99, T__99=100, T__100=101, + T__101=102, T__102=103, T__103=104, T__104=105, T__105=106, T__106=107, + T__107=108, T__108=109, T__109=110, T__110=111, T__111=112, T__112=113, + T__113=114, T__114=115, T__115=116, T__116=117, T__117=118, T__118=119, + T__119=120, T__120=121, T__121=122, T__122=123, T__123=124, T__124=125, + T__125=126, T__126=127, T__127=128, T__128=129, T__129=130, T__130=131, + T__131=132, T__132=133, T__133=134, T__134=135, T__135=136, T__136=137, + T__137=138, T__138=139, T__139=140, T__140=141, T__141=142, T__142=143, + T__143=144, T__144=145, T__145=146, T__146=147, T__147=148, T__148=149, + T__149=150, T__150=151, T__151=152, T__152=153, T__153=154, T__154=155, + T__155=156, T__156=157, T__157=158, T__158=159, T__159=160, T__160=161, + T__161=162, T__162=163, T__163=164, T__164=165, T__165=166, T__166=167, + T__167=168, T__168=169, T__169=170, T__170=171, T__171=172, T__172=173, + T__173=174, T__174=175, T__175=176, T__176=177, T__177=178, T__178=179, + T__179=180, T__180=181, T__181=182, T__182=183, T__183=184, T__184=185, + T__185=186, T__186=187, T__187=188, T__188=189, T__189=190, T__190=191, + T__191=192, T__192=193, T__193=194, T__194=195, T__195=196, T__196=197, + T__197=198, T__198=199, T__199=200, T__200=201, T__201=202, T__202=203, + T__203=204, T__204=205, T__205=206, T__206=207, T__207=208, T__208=209, + T__209=210, T__210=211, T__211=212, T__212=213, T__213=214, T__214=215, + T__215=216, T__216=217, T__217=218, T__218=219, T__219=220, T__220=221, + T__221=222, T__222=223, T__223=224, T__224=225, T__225=226, T__226=227, + T__227=228, T__228=229, T__229=230, T__230=231, T__231=232, T__232=233, + IdText=234, RawEvalString=235, PosString=236, Floor_List=237, Stair_List=238, + SetTextPosition_List=239, TextAlign_List=240, TextBaseline_List=241, ShopUse_List=242, + Arithmetic_List=243, Weather_List=244, B_0_List=245, B_1_List=246, Bg_Fg_List=247, + Event_List=248, Floor_Meta_List=249, Global_Attribute_List=250, Global_Value_List=251, + Global_Flag_List=252, Colour=253, Angle=254, Bool=255, Int=256, Letter_List=257, + Number=258, Direction_List=259, DirectionEx_List=260, StepString=261, + IdString=262, FixedId_List=263, Id_List=264, EvalString=265, BGNL=266, + MeaningfulSplit=267, BSTART=268, BEND=269, Newline=270, WhiteSpace=271, + BlockComment=272, LineComment=273; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", + "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", + "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32", + "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40", + "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48", + "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56", + "T__57", "T__58", "T__59", "T__60", "T__61", "T__62", "T__63", "T__64", + "T__65", "T__66", "T__67", "T__68", "T__69", "T__70", "T__71", "T__72", + "T__73", "T__74", "T__75", "T__76", "T__77", "T__78", "T__79", "T__80", + "T__81", "T__82", "T__83", "T__84", "T__85", "T__86", "T__87", "T__88", + "T__89", "T__90", "T__91", "T__92", "T__93", "T__94", "T__95", "T__96", + "T__97", "T__98", "T__99", "T__100", "T__101", "T__102", "T__103", "T__104", + "T__105", "T__106", "T__107", "T__108", "T__109", "T__110", "T__111", + "T__112", "T__113", "T__114", "T__115", "T__116", "T__117", "T__118", + "T__119", "T__120", "T__121", "T__122", "T__123", "T__124", "T__125", + "T__126", "T__127", "T__128", "T__129", "T__130", "T__131", "T__132", + "T__133", "T__134", "T__135", "T__136", "T__137", "T__138", "T__139", + "T__140", "T__141", "T__142", "T__143", "T__144", "T__145", "T__146", + "T__147", "T__148", "T__149", "T__150", "T__151", "T__152", "T__153", + "T__154", "T__155", "T__156", "T__157", "T__158", "T__159", "T__160", + "T__161", "T__162", "T__163", "T__164", "T__165", "T__166", "T__167", + "T__168", "T__169", "T__170", "T__171", "T__172", "T__173", "T__174", + "T__175", "T__176", "T__177", "T__178", "T__179", "T__180", "T__181", + "T__182", "T__183", "T__184", "T__185", "T__186", "T__187", "T__188", + "T__189", "T__190", "T__191", "T__192", "T__193", "T__194", "T__195", + "T__196", "T__197", "T__198", "T__199", "T__200", "T__201", "T__202", + "T__203", "T__204", "T__205", "T__206", "T__207", "T__208", "T__209", + "T__210", "T__211", "T__212", "T__213", "T__214", "T__215", "T__216", + "T__217", "T__218", "T__219", "T__220", "T__221", "T__222", "T__223", + "T__224", "T__225", "T__226", "T__227", "T__228", "T__229", "T__230", + "T__231", "T__232", "IdText", "RawEvalString", "PosString", "Floor_List", + "Stair_List", "SetTextPosition_List", "TextAlign_List", "TextBaseline_List", + "ShopUse_List", "Arithmetic_List", "Weather_List", "B_0_List", "B_1_List", + "Bg_Fg_List", "Event_List", "Floor_Meta_List", "Global_Attribute_List", + "Global_Value_List", "Global_Flag_List", "Colour", "Angle", "Bool", "Int", + "Letter_List", "Number", "EXP", "Direction_List", "DirectionEx_List", + "StepString", "IdString", "FixedId_List", "Id_List", "EvalString", "ESC_double", + "UNICODE", "HEX", "BGNL", "MeaningfulSplit", "Equote_double", "BSTART", + "BEND", "Newline", "WhiteSpace", "BlockComment", "LineComment" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'\u6D5C\u5B29\u6B22'", "'\u7455\u55D9\u6D0A\u7459\uFE40\u5F42\u9363\uFFFD'", + "'\u935A\uE21C\u6564'", "'\u95AB\u6C33\uE511\u9418\u8235\uFFFD\uFFFD'", + "'\u93C4\u53E5\u6FC0'", "'\u7EDB\u590C\u9A87\u93BB\u612C\u5D0C'", "'\u95C7\uFFFD\u59F9\uFFFD'", + "'\u7EC9\u677F\u5F7F'", "'\u93C4\uE21A\u60C1\u93B5\uFF49\u6ACE\u7F01\u5FDB\u7359'", + "'\u934F\u3125\u772C\u935F\u55D7\u7C35\u9352\u6944\u3003'", "'\u935F\u55D7\u7C35 id'", + "'\u8E47\uE0A3\u5D4E\u935F\u55D7\u7C35\u93CD\u5FCE\u8151\u935A\u5D87\u041E'", + "'\u93C8\uE044\u7D11\u935A\uE21C\u59F8\u93AC\u4F78\u57AF\u6D93\u5D86\u6A09\u7EC0\u54C4\u6E6A\u9352\u6944\u3003\u6D93\uFFFD'", + "'\u93B5\u0446\uE511\u9428\u52EB\u53D5\u934F\u53D8\u7C28\u6D60\uFFFD id'", + "'\u9359\u509B\u669F\u9352\u6944\u3003'", "'\u93CD\u56EC\uE57D'", "'\u9365\u70AC\u7223'", + "'\u934F\u8FA9\u6564times'", "'\u6D63\u8DE8\u6564'", "'\u5A11\u5823\uFFFD\uFFFD'", + "'\u93C4\u5267\u305A\u93C2\u56E7\u74E7'", "'\u935F\u55D7\u7C35\u95AB\u5910\u300D'", + "'+='", "'\u93B4\u6A3B\u679F\u7F01\u64B4\u6F6B\u935A\uFFFD'", "'\u947E\u5CF0\u5F47\u95AC\u64B3\u53FF\u935A\uFFFD'", + "'\u93B5\u64B3\u7D11\u95C2\u3125\u6097'", "'\u68E3\u6828\uE0BC\u9352\u62CC\u63EA\u59A4\u714E\u7730'", + "'\u59E3\u5FD4\uE0BC\u9352\u62CC\u63EA\u59A4\u714E\u7730'", "'\u59A4\u517C\uE76A, \u6D7C\u72BB\uFFFD\u4F80\u68EC'", + "'x'", "','", "'y'", "'\u93C8\u6FC6\u609C'", "'\u9354\u3127\u657E\u93C3\u5815\u68FF'", + "'\u934F\u4F7D\uE18F\u7ECC\u5757\uFFFD\uFFFD'", "'\u934F\uE100\u53E1\u6D5C\u5B29\u6B22'", + "'\u93C4\u5267\u305A\u93C2\u56E9\u73F7'", "':'", "'\u9365\u60E7\u511A'", + "'\u7035\u7845\u763D\u5997\u55D8\u6665\u93CB\uFFFD'", "'\u5A23\u8BF2\u59DE\u5A09\u3129\u5674'", + "'\u9477\uE044\u59E9\u9353\u0444\u510F\u93C2\u56E8\u6E70: \u93CD\u56EC\uE57D'", + "'\u93C3\u5815\u68FF'", "'\u5A4A\u6C2C\u59E9\u9353\u0444\u510F\u93C2\u56E8\u6E70:'", + "'\u741B\u5C83\u7A9B'", "'\u6D93\u5D87\u74D1\u5BF0\u546E\u58BD\u741B\u5C7D\u756C\u59E3\uFFFD'", + "'\u7481\u5267\u7586\u9353\u0444\u510F\u93C2\u56E8\u6E70\u9428\u52EB\u7758\u93AC\uFFFD'", + "'\u6D63\u5D87\u7586'", "'\u934B\u5FD5\u0429\u934D\u5FD5\u790C'", "'\u7035\u5F52\u7D88'", + "'\u93CD\u56EC\uE57D\u68F0\u6EC6\u58CA'", "'\u59DD\uFF46\u6783\u68F0\u6EC6\u58CA'", + "'\u9473\u5C7E\u6AD9\u9479\uFFFD'", "'\u7EEE\u693E\u7D8B'", "'\u93CD\u56EC\uE57D\u701B\u693E\u7D8B\u6FB6\u0443\u76AC'", + "'\u59DD\uFF46\u6783\u701B\u693E\u7D8B\u6FB6\u0443\u76AC'", "'\u93B5\u64B3\u74E7\u95C2\u64AE\u6BA7'", + "'\u701B\u6943\uE0C1\u95C2\u78CB\u7A9B'", "'\u93C4\u5267\u305A\u93BB\u612E\u305A'", + "'\u9365\u70AC\u7223ID'", "'\u93C1\u677F\uFFFD\u517C\u6437\u6D63\uFFFD'", + "'\u935A\u5D87\u041E'", "'\u934A\uFFFD'", "'\u93C1\u677F\uFFFD\u714E\uE583\u9351\uFFFD'", + "'\u7481\u5267\u7586\u59A4\u714E\u7730\u705E\u70B4\uFFFD\uFFFD'", "'\u59A4\u714E\u7730\u935A\uFFFD'", + "'\u7481\u5267\u7586\u934F\u3125\u772C\u705E\u70B4\uFFFD\uFFFD'", "'\u7481\u5267\u7586\u934F\u3125\u772C\u93C1\u677F\uFFFD\uFFFD'", + "'\u7481\u5267\u7586\u7EEF\u8364\u7CBA\u5BEE\uFFFD\u934F\uFFFD'", "'\u93C4\u5267\u305A\u6D5C\u5B29\u6B22'", + "'\u59A4\u714E\u7730'", "'\u95C5\u612F\u68CC\u6D5C\u5B29\u6B22'", "'\u7459\uFE40\u5F42\u6D5C\u5B29\u6B22'", + "'\u6D93\u5D87\u7CA8\u93C9\u71B7\u7D8B\u9353\u5D84\u7C28\u6D60\uFFFD'", + "'\u93BB\u6391\u53C6\u934F\uE100\u53E1\u6D5C\u5B29\u6B22'", "'\u93BB\u6391\u53C6\u6D5C\u5B29\u6B22'", + "'\u95B2\u5D85\u60CE\u8930\u64B3\u58A0\u6D5C\u5B29\u6B22'", "'\u7ED4\u5B2A\u57E2\u7F01\u64B4\u6F6B\u8930\u64B3\u58A0\u6D5C\u5B29\u6B22'", + "'\u675E\uE100\u5F49\u9365\u60E7\u6F61\u6D93\uFFFD'", "'\u93C4\u5267\u305A\u7490\u6751\u6D58'", + "'\u95C5\u612F\u68CC\u7490\u6751\u6D58'", "'\u93C4\u5267\u305A\u9365\u60E7\u7730\u9367\uFFFD'", + "'\u95C5\u612F\u68CC\u9365\u60E7\u7730\u9367\uFFFD'", "'\u675E\uE100\u5F49\u9365\u60E7\u7730\u9367\uFFFD'", + "'\u6D93\uFFFD'", "'\u93C7\u5B58\u657C\u7459\u6395\u58CA\u741B\u5C83\u86CB\u9365\uFFFD'", + "'\u93C7\u5B58\u67CA\u9418\u8235\uFFFD\u4F79\u722E\u935C\u5C7D\u6E74\u9365\u70AC\u6A09\u6D7C\uFFFD'", + "'\u93C4\u5267\u305A\u9418\u8235\uFFFD\u4F79\u722E'", "'\u95C5\u612F\u68CC\u9418\u8235\uFFFD\u4F79\u722E'", + "'\u6D93\u5D89\u6BA3\u9498\u5FD5\u73EB\u705E\u5FD3\u4F10\u934F\u950B\u722E'", + "'\u93C4\u5267\u305A\u9355\u56E7\uFF0B'", "'\u95C5\u612F\u68CC\u9355\u56E7\uFF0B'", + "'\u93C7\u5B58\u67CA\u93AC\uE046\u58BF\u93C1\u7248\u5D41'", "'\u7EDB\u590A\u7DDF'", + "'\u59E3\uE0A4\uE757'", "'\u6D93\u5D85\u5F72\u741A\u7375trl\u74BA\u5BA0\u7E43'", + "'\u5BEE\u54C4\u57D7\u93B4\u6A3B\u679F'", "'\u5BEE\uFFFD\u95C2\uFFFD'", + "'\u95C7\uFFFD\u7455\u4F80\u631C\u9356\uFFFD'", "'\u934F\u62BD\u68EC'", + "'ID'", "'\u59A4\u714E\u7730\u9352\u56E8\u5D32'", "'\u6D63\u5D87\u7586\u9352\u56E8\u5D32'", + "'\u9355\u56E7\uFF0B\u675E\uE100\u609C'", "'\u6D63\u8DE8\u6564\u95AC\u64B3\u53FF'", + "'\u93B5\u64B3\u7D11\u934F\u3125\u772C\u935F\u55D7\u7C35'", "'\u7EC2\u4F7A\u6564\u934F\u3125\u772C\u935F\u55D7\u7C35'", + "'\u74BA\u71BC\u6BA2\u9355\u56E7\uFF0B'", "'\u741B\u5C83\u86CB\u9365\uFFFD'", + "'\u9359\u6828\u79F7\u74BA\u71BC\u6BA2'", "'\u9422\u5A5A\u6F70\u95C7\u56E7\u59E9'", + "'\u93C4\u5267\u305A\u9354\u3127\u657E'", "'\u7481\u5267\u7586\u7459\u55DA\uE757'", + "'\u5BB8\uFE3F\u7B02\u7459\u6391\u6F57\u93CD\uFFFD'", "'\u7EC9\u8BF2\u59E9\u7459\u55DA\uE757'", + "'\u93C4\u5267\u305A\u9365\u5267\u5896'", "'\u9365\u5267\u5896\u7F02\u6827\u5F7F'", + "'\u9365\u5267\u5896'", "'\u7F01\u6A3A\u57D7\u9428\u52EE\u6363\u9410\u7470\u511A\u7EF1\uFFFD'", + "'\u6D93\u5D89\uFFFD\u5FD4\u69D1\u6434\uFFFD'", "'\u7441\u4F78\u58C0\u9428\u52EE\u6363\u9410\u7470\u511A\u7EF1\uFFFD'", + "'\u7039\uFFFD'", "'\u6942\uFFFD'", "'\u93C4\u5267\u305A\u9365\u5267\u5896\u9356\u6828\u6783\u93C8\uFFFD'", + "'\u93C2\u56E8\u6E70\u9350\u546D\uE190'", "'\u74A7\u98CE\u5063\u934D\u5FD5\u790C'", + "'\u5A13\u5474\u6ACE\u9365\u5267\u5896'", "'\u93C4\u5267\u305A\u9354\u3125\u6D58'", + "'\u74A7\u98CE\u5063\u934D\u5FD5\u790C\u6D63\u5D87\u7586'", "'\u5A13\u5474\u6ACE\u93B5\uFFFD\u93C8\u590A\u59E9\u9365\uFFFD'", + "'\u9365\u5267\u5896\u7EC9\u8BF2\u59E9'", "'\u7F01\u5822\u5063\u934D\u5FD5\u790C\u6D63\u5D87\u7586'", + "'\u7EC9\u8BF2\u59E9\u93C3\u5815\u68FF'", "'\u93C7\u5B58\u657C\u9422\u5A5A\u6F70\u9479\u8336\u769F'", + "'\u93AD\u3220\uE632\u9422\u5A5A\u6F70\u9479\u8336\u769F'", "'\u9422\u5A5A\u6F70\u95C2\uE046\u510A'", + "'\u9357\u66DF\uE0BC\u93C3\u5815\u68FF'", "'\u93B5\u0446\uE511\u5A06\u2103\u669F'", + "'\u93C7\u5B58\u657C\u6FB6\u2542\u76B5'", "'\u5BEE\u54C4\u5BB3'", "'\u7EC9\u8BF2\u59E9\u6D5C\u5B29\u6B22'", + "'\u6D93\u5D86\u79F7\u6FB6\uFFFD'", "'\u7EC9\u8BF2\u59E9\u9355\u56E7\uFF0B'", + "'\u74BA\u5BA0\u7A6C\u6D5C\u5B29\u6B22'", "'\u74A7\u5CF0\uE750 x'", "'\u7F01\u581F\uE11B x'", + "'\u74BA\u5BA0\u7A6C\u9355\u56E7\uFF0B'", "'\u93BE\uE15F\u6581\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0'", + "'\u93B8\u4F7A\u753B\u9352\u9881\u7B05\u6D93\uE045\u6E70\u6D5C\u5B29\u6B22'", + "'\u93C6\u509A\u4EE0\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0'", "'\u93AD\u3220\uE632\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0'", + "'\u68F0\u52EB\u59DE\u675E\u501F\u5117\u93C5\uE21E\u7176\u6D94\uFFFD'", + "'\u95B2\u5A43\u6581\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0\u9428\u52ED\u7D26\u701B\uFFFD'", + "'\u93BE\uE15F\u6581\u95CA\u866B\u6665'", "'\u934B\u6EC4\uE11B\u6D94\u5B2A\u58A0\u95CA\u866B\u6665'", + "'\u934B\u6EC4\uE11B\u93B5\uFFFD\u93C8\u5910\u7176\u93C1\uFFFD'", "'\u7481\u5267\u7586\u95CA\u62BD\u567A'", + "'\u5A13\u612C\u5F49\u93C3\u5815\u68FF'", "'\u5A13\u544A\u5799\u9473\u6EC3\u57C4,\u7F01\u64B3\u772C'", + "'\u6D93\u5D88\uE178\u934F\u30E6\uE701\u9357\uFFFD'", "'\u5A13\u544A\u5799\u6FB6\u8FAB\u89E6,\u7F01\u64B3\u772C'", + "'\u9429\u5B58\u5E34\u9365\u70B2\u57CC\u93CD\u56EC\uE57D\u9423\u5C84\u6F70'", + "'\u93BA\u30E5\u5F48\u9422\u3126\u57DB\u6748\u64B3\u53C6\u93C1\u677F\u74E7,\u93BB\u612E\u305A'", + "'\u93BA\u30E5\u5F48\u9422\u3126\u57DB\u6748\u64B3\u53C6\u93C2\u56E8\u6E70,\u93BB\u612E\u305A'", + "'\u6FE1\u509B\u7049'", "'\u935A\uFE40\u57AF'", "'\u6FB6\u6C36\u5678\u9352\u55D8\uE120 \u93C9\u2032\u6B22\u9352\u3085\u757E'", + "'\u6FE1\u509B\u7049\u93C4\uFFFD'", "'\u9428\u52EB\u6E80\u935A\uFFFD'", + "'\u6D93\u5D88\u70E6\u9351\uFFFD'", "'\u95AB\u5910\u300D'", "'\u701B\u6130\uFFFD\u5910\u300D'", + "'\u68F0\u6EC6\u58CA'", "'\u9351\u8679\u5E47\u93C9\u2032\u6B22'", "'\u93C4\u5267\u305A\u7EAD\uE1BF\uE17B\u5997\uFFFD'", + "'\u7EAD\uE1BC\u757E\u9428\u52EB\u6E80\u935A\uFFFD'", "'\u951B\u5825\u7CAF\u7481\u3089\uFFFD\u5909\u8151'", + "'\u951B\uFFFD'", "'\u9359\u6828\u79F7\u9428\u52EB\u6E80\u935A\uFFFD'", + "'\u9353\u5D87\u7586\u93C9\u2032\u6B22\u5BF0\uE046\u5E46'", "'\u8930\uFFFD'", + "'\u93C3\uFFFD'", "'\u935A\u5EA3\u7586\u93C9\u2032\u6B22\u5BF0\uE046\u5E46'", + "'\u74BA\u51B2\u56AD\u8930\u64B3\u58A0\u5BF0\uE046\u5E46\u93B4\u6827\u53D5\u934F\u53D8\u7C28\u6D60\uFFFD'", + "'\u7F01\u0445\u753B\u8930\u64B3\u58A0\u5BF0\uE046\u5E46'", "'\u7EDB\u590A\u7DDF\u9422\u3126\u57DB\u93BF\u5D84\u7D94\u9A9E\u60F0\u5E4F\u5BF0\u6941\u5BDC\u95BF\uE1BD\u57A8\u9410\u7470\u56AE\u6DC7\u2103\u4F05'", + "'\u7EDB\u590A\u7DDF\u93B5\uFFFD\u93C8\u590A\u7D13\u59DD\u30E4\u7C28\u6D60\u8235\u58BD\u741B\u5C7D\u756C\u59E3\uFFFD'", + "'\u935B\u714E\u56AD\u93AC\uE046\u58BF\u93B5\u5B2A\u553D'", "'\u935B\u714E\u56AD\u701B\u6A3B\u3002\u6924\u7538\u6F70'", + "'\u9477\uE044\u59E9\u701B\u6A3B\u3002'", "'\u6D93\u5D86\u5F41\u7EC0\uFFFD'", + "'\u935B\u714E\u56AD\u7487\u7ED8\u3002\u6924\u7538\u6F70'", "'ui\u7F01\u6A3A\u57D7\u9A9E\u5815\uE569\u7459\uFFFD'", + "'\u951B\u581D\u5F3B\u9351\u7ED8\uE11D\u6924\u7470\u5F72\u6769\u6D9C\uE511\u68F0\u52EE\uE74D\u951B\uFFFD'", + "'\u5A13\u5474\u6ACE\u9422\u8BF2\u7AF7'", "'\u5A13\u546F\u2516\u9422\u8BF2\u7AF7'", + "'\u7481\u5267\u7586\u9422\u8BF2\u7AF7\u705E\u70B4\uFFFD\uFFFD'", "'\u701B\u693E\u7D8B'", + "'\u6FC9\uE0A2\u5396\u93CD\u5CF0\u7D21'", "'\u6748\u89C4\uE50B\u93CD\u5CF0\u7D21'", + "'\u7EFE\u57AE\uE194\u6434\uFFFD'", "'\u9369\u54C4\u566F\u7EFE\uFFFD'", + "'z\u934A\uFFFD'", "'\u7F01\u6A3A\u57D7\u93C2\u56E8\u6E70'", "'\u93CD\u5CF0\u7D21'", + "'\u93C8\uFFFD\u6FB6\u0443\uE194\u6434\uFFFD'", "'\u7F01\u6A3A\u57D7\u93BB\u5FDA\u7ADF\u93C2\u56E8\u6E70'", + "'\u7F01\u6A3A\u57D7\u6FB6\u6C33\uE511\u93C2\u56E8\u6E70'", "'\u701B\u693E\u7D8B\u6FB6\u0443\u76AC'", + "'\u7F01\u6A3A\u57D7\u942D\u2541\u8230'", "'\u7F01\u6A3A\u57D7\u942D\u2541\u8230\u6748\u89C4\uE50B'", + "'\u7EFE\u57AE\uE194'", "'\u7F01\u6A3A\u57D7\u7EFE\u630E\uE18C'", "'\u7F01\u5822\u5063\u934D\u5FD5\u790C'", + "'\u7F01\u6A3A\u57D7\u7EE0\uE15E\u3054'", "'\u7F01\u6A3A\u57D7\u6FB6\u6C33\u7ADF\u8930\uFFFD'", + "'\u6924\u5241\u5063\u934D\u5FD5\u790C\u9352\u6944\u3003'", "'\u7F01\u6A3A\u57D7\u6FB6\u6C33\u7ADF\u8930\u3223\u7ADF\u5997\uFFFD'", + "'\u7F01\u6A3A\u57D7\u9366\uFFFD'", "'\u9366\u55D7\u7E3E'", "'\u9357\u5A42\u7DDE'", + "'\u7F01\u6A3A\u57D7\u9366\u55DA\u7ADF\u5997\uFFFD'", "'\u7F01\u6A3A\u57D7\u9365\u5267\u5896'", + "'\u7F01\u6A3A\u57D7\u9365\u70AC\u7223'", "'\u7F01\u6A3A\u57D7\u9473\u5C7E\u6AD9\u9365\uFFFD'", + "'\u7F01\u6A3A\u57D7\u95C2\uE046\u510A\u934F\u590B\u7223'", "'\u5A13\u5474\u6ACE\u95C2\uE046\u510A\u934F\u590B\u7223'", + "'\u9477\uE044\u757E\u6D94\u5909\u7C28\u6D60\uFFFD'", "'\u9477\uE044\u757E\u6D94\u5849S\u9474\u6C2D\u6E70'", + "'\u6D93\u5D88\u569C\u9354\u3126\u58BD\u741B\u5C7C\u7B05\u6D93\uFFFD\u6D93\uE043\u7C28\u6D60\uFFFD'", + "'=== statement ^ === expression v ==='", "'\u95C8\uFFFD'", "'\u9419\uE102\u73DB\u5BEE\uFFFD\u934F\uFFFD'", + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, "'BGNLaergayergfuybgv'", + "'=== meaningful ^ ==='", "'\u5BEE\uFFFD\u6FEE\uFFFD'", "'\u7F01\u64B4\u6F6B'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "IdText", "RawEvalString", "PosString", + "Floor_List", "Stair_List", "SetTextPosition_List", "TextAlign_List", + "TextBaseline_List", "ShopUse_List", "Arithmetic_List", "Weather_List", + "B_0_List", "B_1_List", "Bg_Fg_List", "Event_List", "Floor_Meta_List", + "Global_Attribute_List", "Global_Value_List", "Global_Flag_List", "Colour", + "Angle", "Bool", "Int", "Letter_List", "Number", "Direction_List", "DirectionEx_List", + "StepString", "IdString", "FixedId_List", "Id_List", "EvalString", "BGNL", + "MeaningfulSplit", "BSTART", "BEND", "Newline", "WhiteSpace", "BlockComment", + "LineComment" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public MotaActionLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "MotaAction.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + private static final int _serializedATNSegments = 2; + private static final String _serializedATNSegment0 = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u0113\u0ea4\b\1\4"+ + "\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n"+ + "\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+ + "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31"+ + "\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t"+ + " \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t"+ + "+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64"+ + "\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t"+ + "=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4"+ + "I\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\t"+ + "T\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_"+ + "\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k"+ + "\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv"+ + "\4w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t"+ + "\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084"+ + "\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089"+ + "\t\u0089\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d"+ + "\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092"+ + "\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096"+ + "\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b"+ + "\t\u009b\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f"+ + "\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4"+ + "\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8"+ + "\4\u00a9\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad"+ + "\t\u00ad\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1"+ + "\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6"+ + "\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba"+ + "\4\u00bb\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf"+ + "\t\u00bf\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3"+ + "\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8"+ + "\t\u00c8\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc"+ + "\4\u00cd\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1"+ + "\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5"+ + "\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da"+ + "\t\u00da\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de"+ + "\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3"+ + "\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7"+ + "\4\u00e8\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec"+ + "\t\u00ec\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0"+ + "\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5"+ + "\t\u00f5\4\u00f6\t\u00f6\4\u00f7\t\u00f7\4\u00f8\t\u00f8\4\u00f9\t\u00f9"+ + "\4\u00fa\t\u00fa\4\u00fb\t\u00fb\4\u00fc\t\u00fc\4\u00fd\t\u00fd\4\u00fe"+ + "\t\u00fe\4\u00ff\t\u00ff\4\u0100\t\u0100\4\u0101\t\u0101\4\u0102\t\u0102"+ + "\4\u0103\t\u0103\4\u0104\t\u0104\4\u0105\t\u0105\4\u0106\t\u0106\4\u0107"+ + "\t\u0107\4\u0108\t\u0108\4\u0109\t\u0109\4\u010a\t\u010a\4\u010b\t\u010b"+ + "\4\u010c\t\u010c\4\u010d\t\u010d\4\u010e\t\u010e\4\u010f\t\u010f\4\u0110"+ + "\t\u0110\4\u0111\t\u0111\4\u0112\t\u0112\4\u0113\t\u0113\4\u0114\t\u0114"+ + "\4\u0115\t\u0115\4\u0116\t\u0116\4\u0117\t\u0117\3\2\3\2\3\2\3\2\3\3\3"+ + "\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5"+ + "\3\5\3\5\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3"+ + "\b\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3"+ + "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r"+ + "\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3"+ + "\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3"+ + "\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3"+ + "\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3"+ + "\21\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3"+ + "\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3"+ + "\26\3\26\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3"+ + "\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3"+ + "\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3"+ + "\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3"+ + "\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\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-\3-\3-\3-\3-\3-\3-\3-\3.\3."+ + "\3.\3.\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\60\3"+ + "\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3"+ + "\62\3\62\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3"+ + "\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3"+ + "\66\3\66\3\66\3\67\3\67\3\67\3\67\38\38\38\38\38\38\38\38\38\38\39\39"+ + "\39\39\39\39\39\39\39\39\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@\3A\3A\3A\3A\3A\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B"+ + "\3C\3C\3C\3C\3C\3C\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3E\3E\3E\3E\3E\3E"+ + "\3E\3E\3E\3E\3E\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3G\3G\3G\3G\3G\3G\3G"+ + "\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3J\3J\3K\3K\3K\3K\3K"+ + "\3K\3K\3K\3K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M"+ + "\3M\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O"+ + "\3O\3P\3P\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R"+ + "\3R\3S\3S\3S\3S\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3T\3T\3T\3U\3U\3U\3U"+ + "\3U\3U\3U\3U\3U\3V\3V\3V\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3X\3X\3X"+ + "\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y"+ + "\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\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`\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3b"+ + "\3b\3b\3b\3b\3b\3b\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3d\3d\3d\3e\3e\3e\3e"+ + "\3f\3f\3f\3g\3g\3g\3g\3g\3g\3g\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3i\3i\3i"+ + "\3i\3j\3j\3j\3j\3j\3j\3j\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l"+ + "\3l\3l\3l\3l\3l\3m\3m\3m\3m\3m\3m\3m\3n\3n\3n\3n\3n\3n\3o\3o\3o\3o\3o"+ + "\3o\3o\3p\3p\3p\3p\3p\3p\3p\3q\3q\3q\3q\3q\3q\3q\3r\3r\3r\3r\3r\3r\3r"+ + "\3s\3s\3s\3s\3s\3s\3s\3s\3s\3t\3t\3t\3t\3t\3t\3t\3u\3u\3u\3u\3u\3u\3u"+ + "\3v\3v\3v\3v\3v\3v\3v\3w\3w\3w\3w\3x\3x\3x\3x\3x\3x\3x\3x\3x\3x\3x\3x"+ + "\3y\3y\3y\3y\3y\3y\3y\3y\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\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\177"+ + "\3\177\3\177\3\177\3\177\3\177\3\177\3\u0080\3\u0080\3\u0080\3\u0080\3"+ + "\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081"+ + "\3\u0081\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082"+ + "\3\u0082\3\u0082\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083"+ + "\3\u0083\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+ + "\3\u0084\3\u0084\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085"+ + "\3\u0085\3\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086"+ + "\3\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087"+ + "\3\u0087\3\u0087\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088"+ + "\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089"+ + "\3\u0089\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008b"+ + "\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3\u008c"+ + "\3\u008c\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008e"+ + "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f\3\u008f\3\u008f"+ + "\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090"+ + "\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0092"+ + "\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093"+ + "\3\u0093\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094"+ + "\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095"+ + "\3\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096"+ + "\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097\3\u0097\3\u0097"+ + "\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0098\3\u0098\3\u0098"+ + "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099"+ + "\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099"+ + "\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a"+ + "\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b"+ + "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009c\3\u009c\3\u009c\3\u009c"+ + "\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d"+ + "\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009e"+ + "\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f"+ + "\3\u009f\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0"+ + "\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a1\3\u00a1\3\u00a1"+ + "\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2"+ + "\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3"+ + "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3"+ + "\3\u00a3\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4"+ + "\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4"+ + "\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5"+ + "\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5"+ + "\3\u00a5\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7"+ + "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8"+ + "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+ + "\3\u00a9\3\u00a9\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00ab"+ + "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ac"+ + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae\3\u00ae\3\u00ae"+ + "\3\u00ae\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00b0"+ + "\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b1"+ + "\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b2"+ + "\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b3"+ + "\3\u00b3\3\u00b3\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b4\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ + "\3\u00b5\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b7\3\u00b7\3\u00b7"+ + "\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8"+ + "\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ + "\3\u00b9\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ + "\3\u00ba\3\u00ba\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb"+ + "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb"+ + "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd"+ + "\3\u00bd\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be"+ + "\3\u00be\3\u00be\3\u00be\3\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\3\u00bf\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c1"+ + "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1"+ + "\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2"+ + "\3\u00c2\3\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c6\3\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8"+ + "\3\u00c8\3\u00c8\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9"+ + "\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb\3\u00cb"+ + "\3\u00cb\3\u00cb\3\u00cb\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ + "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0"+ + "\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0"+ + "\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1"+ + "\3\u00d1\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d3"+ + "\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4"+ + "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d5\3\u00d5"+ + "\3\u00d5\3\u00d5\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6"+ + "\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d8\3\u00d8"+ + "\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00d9"+ + "\3\u00d9\3\u00d9\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00db\3\u00db\3\u00db"+ + "\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db"+ + "\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dd\3\u00dd\3\u00dd"+ + "\3\u00dd\3\u00de\3\u00de\3\u00de\3\u00de\3\u00df\3\u00df\3\u00df\3\u00df"+ + "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00e0\3\u00e0\3\u00e0\3\u00e0"+ + "\3\u00e0\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1"+ + "\3\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ + "\3\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ + "\3\u00e4\3\u00e4\3\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5"+ + "\3\u00e5\3\u00e5\3\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6"+ + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7"+ + "\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7"+ + "\3\u00e7\3\u00e7\3\u00e7\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8"+ + "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8"+ + "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8"+ + "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8"+ + "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00ea\3\u00ea"+ + "\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00eb\3\u00eb\3\u00eb"+ + "\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb"+ + "\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\6\u00eb\u09af\n\u00eb\r\u00eb"+ + "\16\u00eb\u09b0\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec"+ + "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec"+ + "\3\u00ec\6\u00ec\u09c4\n\u00ec\r\u00ec\16\u00ec\u09c5\3\u00ed\3\u00ed"+ + "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed"+ + "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\6\u00ed\u09d9\n\u00ed"+ + "\r\u00ed\16\u00ed\u09da\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+ + "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+ + "\5\u00ee\u09ec\n\u00ee\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ + "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ + "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ + "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ + "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\5\u00ef\u0a15\n\u00ef"+ + "\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0"+ + "\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0"+ + "\3\u00f0\3\u00f0\5\u00f0\u0a2b\n\u00f0\3\u00f1\3\u00f1\3\u00f1\3\u00f1"+ + "\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1"+ + "\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\5\u00f1"+ + "\u0a42\n\u00f1\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2"+ + "\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2"+ + "\3\u00f2\3\u00f2\3\u00f2\5\u00f2\u0a57\n\u00f2\3\u00f3\3\u00f3\3\u00f3"+ + "\3\u00f3\3\u00f3\3\u00f3\5\u00f3\u0a5f\n\u00f3\3\u00f4\3\u00f4\3\u00f4"+ + "\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4"+ + "\3\u00f4\3\u00f4\5\u00f4\u0a6f\n\u00f4\3\u00f5\3\u00f5\3\u00f5\3\u00f5"+ + "\3\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u0a79\n\u00f5\3\u00f6\3\u00f6"+ + "\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6"+ + "\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\5\u00f6\u0a8c\n\u00f6"+ + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7"+ + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\5\u00f7"+ + "\u0a9f\n\u00f7\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8"+ + "\3\u00f8\3\u00f8\3\u00f8\5\u00f8\u0aab\n\u00f8\3\u00f9\3\u00f9\3\u00f9"+ + "\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9"+ + "\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9"+ + "\3\u00f9\3\u00f9\3\u00f9\3\u00f9\5\u00f9\u0ac6\n\u00f9\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\5\u00fa\u0b49\n\u00fa\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\5\u00fb\u0bb0\n\u00fb"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\5\u00fc\u0c2d\n\u00fc"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\5\u00fd\u0d73\n\u00fd\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe"+ + "\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe"+ + "\3\u00fe\3\u00fe\6\u00fe\u0d86\n\u00fe\r\u00fe\16\u00fe\u0d87\3\u00ff"+ + "\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff"+ + "\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\6\u00ff\u0d9b"+ + "\n\u00ff\r\u00ff\16\u00ff\u0d9c\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100"+ + "\3\u0100\3\u0100\3\u0100\3\u0100\5\u0100\u0da8\n\u0100\3\u0101\3\u0101"+ + "\3\u0101\7\u0101\u0dad\n\u0101\f\u0101\16\u0101\u0db0\13\u0101\5\u0101"+ + "\u0db2\n\u0101\3\u0102\3\u0102\3\u0103\5\u0103\u0db7\n\u0103\3\u0103\3"+ + "\u0103\3\u0103\3\u0103\5\u0103\u0dbd\n\u0103\3\u0103\5\u0103\u0dc0\n\u0103"+ + "\3\u0103\3\u0103\3\u0103\3\u0103\5\u0103\u0dc6\n\u0103\3\u0103\5\u0103"+ + "\u0dc9\n\u0103\3\u0104\3\u0104\5\u0104\u0dcd\n\u0104\3\u0104\3\u0104\3"+ + "\u0105\3\u0105\3\u0105\3\u0105\3\u0105\3\u0105\3\u0105\3\u0105\5\u0105"+ + "\u0dd9\n\u0105\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106"+ + "\3\u0106\3\u0106\3\u0106\3\u0106\5\u0106\u0de6\n\u0106\3\u0107\3\u0107"+ + "\5\u0107\u0dea\n\u0107\6\u0107\u0dec\n\u0107\r\u0107\16\u0107\u0ded\3"+ + "\u0108\3\u0108\7\u0108\u0df2\n\u0108\f\u0108\16\u0108\u0df5\13\u0108\3"+ + "\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109"+ + "\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109"+ + "\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109"+ + "\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\5\u0109\u0e18\n\u0109"+ + "\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a"+ + "\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a"+ + "\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a\5\u010a\u0e31\n\u010a\3\u010b"+ + "\3\u010b\3\u010b\7\u010b\u0e36\n\u010b\f\u010b\16\u010b\u0e39\13\u010b"+ + "\3\u010b\3\u010b\3\u010c\3\u010c\3\u010c\5\u010c\u0e40\n\u010c\3\u010d"+ + "\3\u010d\3\u010d\3\u010d\3\u010d\3\u010d\3\u010e\3\u010e\3\u010f\3\u010f"+ + "\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f"+ + "\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f"+ + "\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110"+ + "\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110\3\u0110"+ + "\3\u0110\3\u0110\3\u0110\3\u0111\3\u0111\3\u0112\3\u0112\3\u0112\3\u0112"+ + "\3\u0112\3\u0113\3\u0113\3\u0113\3\u0113\3\u0114\3\u0114\5\u0114\u0e80"+ + "\n\u0114\3\u0114\5\u0114\u0e83\n\u0114\3\u0115\6\u0115\u0e86\n\u0115\r"+ + "\u0115\16\u0115\u0e87\3\u0115\3\u0115\3\u0116\3\u0116\3\u0116\3\u0116"+ + "\7\u0116\u0e90\n\u0116\f\u0116\16\u0116\u0e93\13\u0116\3\u0116\3\u0116"+ + "\3\u0116\3\u0116\3\u0116\3\u0117\3\u0117\3\u0117\3\u0117\7\u0117\u0e9e"+ + "\n\u0117\f\u0117\16\u0117\u0ea1\13\u0117\3\u0117\3\u0117\3\u0e91\2\u0118"+ + "\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20"+ + "\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36;\37"+ + "= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65i\66k\67m8o"+ + "9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008dH"+ + "\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1"+ + "R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5"+ + "\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9"+ + "f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00dd"+ + "p\u00dfq\u00e1r\u00e3s\u00e5t\u00e7u\u00e9v\u00ebw\u00edx\u00efy\u00f1"+ + "z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb\177\u00fd\u0080\u00ff\u0081\u0101"+ + "\u0082\u0103\u0083\u0105\u0084\u0107\u0085\u0109\u0086\u010b\u0087\u010d"+ + "\u0088\u010f\u0089\u0111\u008a\u0113\u008b\u0115\u008c\u0117\u008d\u0119"+ + "\u008e\u011b\u008f\u011d\u0090\u011f\u0091\u0121\u0092\u0123\u0093\u0125"+ + "\u0094\u0127\u0095\u0129\u0096\u012b\u0097\u012d\u0098\u012f\u0099\u0131"+ + "\u009a\u0133\u009b\u0135\u009c\u0137\u009d\u0139\u009e\u013b\u009f\u013d"+ + "\u00a0\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145\u00a4\u0147\u00a5\u0149"+ + "\u00a6\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151\u00aa\u0153\u00ab\u0155"+ + "\u00ac\u0157\u00ad\u0159\u00ae\u015b\u00af\u015d\u00b0\u015f\u00b1\u0161"+ + "\u00b2\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169\u00b6\u016b\u00b7\u016d"+ + "\u00b8\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175\u00bc\u0177\u00bd\u0179"+ + "\u00be\u017b\u00bf\u017d\u00c0\u017f\u00c1\u0181\u00c2\u0183\u00c3\u0185"+ + "\u00c4\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d\u00c8\u018f\u00c9\u0191"+ + "\u00ca\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199\u00ce\u019b\u00cf\u019d"+ + "\u00d0\u019f\u00d1\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4\u01a7\u00d5\u01a9"+ + "\u00d6\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1\u00da\u01b3\u00db\u01b5"+ + "\u00dc\u01b7\u00dd\u01b9\u00de\u01bb\u00df\u01bd\u00e0\u01bf\u00e1\u01c1"+ + "\u00e2\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6\u01cb\u00e7\u01cd"+ + "\u00e8\u01cf\u00e9\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec\u01d7\u00ed\u01d9"+ + "\u00ee\u01db\u00ef\u01dd\u00f0\u01df\u00f1\u01e1\u00f2\u01e3\u00f3\u01e5"+ + "\u00f4\u01e7\u00f5\u01e9\u00f6\u01eb\u00f7\u01ed\u00f8\u01ef\u00f9\u01f1"+ + "\u00fa\u01f3\u00fb\u01f5\u00fc\u01f7\u00fd\u01f9\u00fe\u01fb\u00ff\u01fd"+ + "\u0100\u01ff\u0101\u0201\u0102\u0203\u0103\u0205\u0104\u0207\2\u0209\u0105"+ + "\u020b\u0106\u020d\u0107\u020f\u0108\u0211\u0109\u0213\u010a\u0215\u010b"+ + "\u0217\2\u0219\2\u021b\2\u021d\u010c\u021f\u010d\u0221\2\u0223\u010e\u0225"+ + "\u010f\u0227\u0110\u0229\u0111\u022b\u0112\u022d\u0113\3\2\17\6\2,-//"+ + "\61\61``\4\2>>@@\3\2\63;\3\2\62;\4\2GGgg\4\2--//\6\2\62;C\\aac|\6\2\62"+ + "\3\2\2\2\u0314\u0315\7.\2"+ + "\2\u0315@\3\2\2\2\u0316\u0317\7{\2\2\u0317B\3\2\2\2\u0318\u0319\7\u93ca"+ + "\2\2\u0319\u031a\7\u6fc8\2\2\u031a\u031b\7\u609e\2\2\u031bD\3\2\2\2\u031c"+ + "\u031d\7\u9356\2\2\u031d\u031e\7\u3129\2\2\u031e\u031f\7\u6580\2\2\u031f"+ + "\u0320\7\u93c5\2\2\u0320\u0321\7\u5817\2\2\u0321\u0322\7\u6901\2\2\u0322"+ + "F\3\2\2\2\u0323\u0324\7\u9351\2\2\u0324\u0325\7\u4f7f\2\2\u0325\u0326"+ + "\7\ue191\2\2\u0326\u0327\7\u7ece\2\2\u0327\u0328\7\u5759\2\2\u0328\u0329"+ + "\7\uffff\2\2\u0329\u032a\7\uffff\2\2\u032aH\3\2\2\2\u032b\u032c\7\u9351"+ + "\2\2\u032c\u032d\7\ue102\2\2\u032d\u032e\7\u53e3\2\2\u032e\u032f\7\u6d5e"+ + "\2\2\u032f\u0330\7\u5b2b\2\2\u0330\u0331\7\u6b24\2\2\u0331J\3\2\2\2\u0332"+ + "\u0333\7\u93c6\2\2\u0333\u0334\7\u5269\2\2\u0334\u0335\7\u305c\2\2\u0335"+ + "\u0336\7\u93c4\2\2\u0336\u0337\7\u56eb\2\2\u0337\u0338\7\u73f9\2\2\u0338"+ + "L\3\2\2\2\u0339\u033a\7<\2\2\u033aN\3\2\2\2\u033b\u033c\7\u9367\2\2\u033c"+ + "\u033d\7\u60e9\2\2\u033d\u033e\7\u511c\2\2\u033eP\3\2\2\2\u033f\u0340"+ + "\7\u7037\2\2\u0340\u0341\7\u7847\2\2\u0341\u0342\7\u763f\2\2\u0342\u0343"+ + "\7\u5999\2\2\u0343\u0344\7\u55da\2\2\u0344\u0345\7\u6667\2\2\u0345\u0346"+ + "\7\u93cd\2\2\u0346\u0347\7\uffff\2\2\u0347R\3\2\2\2\u0348\u0349\7\u5a25"+ + "\2\2\u0349\u034a\7\u8bf4\2\2\u034a\u034b\7\u59e0\2\2\u034b\u034c\7\u5a0b"+ + "\2\2\u034c\u034d\7\u312b\2\2\u034d\u034e\7\u5676\2\2\u034eT\3\2\2\2\u034f"+ + "\u0350\7\u9479\2\2\u0350\u0351\7\ue046\2\2\u0351\u0352\7\u59eb\2\2\u0352"+ + "\u0353\7\u9355\2\2\u0353\u0354\7\u0446\2\2\u0354\u0355\7\u5111\2\2\u0355"+ + "\u0356\7\u93c4\2\2\u0356\u0357\7\u56ea\2\2\u0357\u0358\7\u6e72\2\2\u0358"+ + "\u0359\7<\2\2\u0359\u035a\7\"\2\2\u035a\u035b\7\u93cf\2\2\u035b\u035c"+ + "\7\u56ee\2\2\u035c\u035d\7\ue57f\2\2\u035dV\3\2\2\2\u035e\u035f\7\u93c5"+ + "\2\2\u035f\u0360\7\u5817\2\2\u0360\u0361\7\u6901\2\2\u0361X\3\2\2\2\u0362"+ + "\u0363\7\u5a4c\2\2\u0363\u0364\7\u6c2e\2\2\u0364\u0365\7\u59eb\2\2\u0365"+ + "\u0366\7\u9355\2\2\u0366\u0367\7\u0446\2\2\u0367\u0368\7\u5111\2\2\u0368"+ + "\u0369\7\u93c4\2\2\u0369\u036a\7\u56ea\2\2\u036a\u036b\7\u6e72\2\2\u036b"+ + "\u036c\7<\2\2\u036cZ\3\2\2\2\u036d\u036e\7\u741d\2\2\u036e\u036f\7\u5c85"+ + "\2\2\u036f\u0370\7\u7a9d\2\2\u0370\\\3\2\2\2\u0371\u0372\7\u6d95\2\2\u0372"+ + "\u0373\7\u5d89\2\2\u0373\u0374\7\u74d3\2\2\u0374\u0375\7\u5bf2\2\2\u0375"+ + "\u0376\7\u5470\2\2\u0376\u0377\7\u58bf\2\2\u0377\u0378\7\u741d\2\2\u0378"+ + "\u0379\7\u5c7f\2\2\u0379\u037a\7\u756e\2\2\u037a\u037b\7\u59e5\2\2\u037b"+ + "\u037c\7\uffff\2\2\u037c^\3\2\2\2\u037d\u037e\7\u7483\2\2\u037e\u037f"+ + "\7\u5269\2\2\u037f\u0380\7\u7588\2\2\u0380\u0381\7\u9355\2\2\u0381\u0382"+ + "\7\u0446\2\2\u0382\u0383\7\u5111\2\2\u0383\u0384\7\u93c4\2\2\u0384\u0385"+ + "\7\u56ea\2\2\u0385\u0386\7\u6e72\2\2\u0386\u0387\7\u942a\2\2\u0387\u0388"+ + "\7\u52ed\2\2\u0388\u0389\7\u775a\2\2\u0389\u038a\7\u93ae\2\2\u038a\u038b"+ + "\7\uffff\2\2\u038b`\3\2\2\2\u038c\u038d\7\u6d65\2\2\u038d\u038e\7\u5d89"+ + "\2\2\u038e\u038f\7\u7588\2\2\u038fb\3\2\2\2\u0390\u0391\7\u934d\2\2\u0391"+ + "\u0392\7\u5fd7\2\2\u0392\u0393\7\u042b\2\2\u0393\u0394\7\u934f\2\2\u0394"+ + "\u0395\7\u5fd7\2\2\u0395\u0396\7\u790e\2\2\u0396d\3\2\2\2\u0397\u0398"+ + "\7\u7037\2\2\u0398\u0399\7\u5f54\2\2\u0399\u039a\7\u7d8a\2\2\u039af\3"+ + "\2\2\2\u039b\u039c\7\u93cf\2\2\u039c\u039d\7\u56ee\2\2\u039d\u039e\7\ue57f"+ + "\2\2\u039e\u039f\7\u68f2\2\2\u039f\u03a0\7\u6ec8\2\2\u03a0\u03a1\7\u58cc"+ + "\2\2\u03a1h\3\2\2\2\u03a2\u03a3\7\u59df\2\2\u03a3\u03a4\7\uff48\2\2\u03a4"+ + "\u03a5\7\u6785\2\2\u03a5\u03a6\7\u68f2\2\2\u03a6\u03a7\7\u6ec8\2\2\u03a7"+ + "\u03a8\7\u58cc\2\2\u03a8j\3\2\2\2\u03a9\u03aa\7\u9475\2\2\u03aa\u03ab"+ + "\7\u5c80\2\2\u03ab\u03ac\7\u6adb\2\2\u03ac\u03ad\7\u947b\2\2\u03ad\u03ae"+ + "\7\uffff\2\2\u03ael\3\2\2\2\u03af\u03b0\7\u7ef0\2\2\u03b0\u03b1\7\u6940"+ + "\2\2\u03b1\u03b2\7\u7d8d\2\2\u03b2n\3\2\2\2\u03b3\u03b4\7\u93cf\2\2\u03b4"+ + "\u03b5\7\u56ee\2\2\u03b5\u03b6\7\ue57f\2\2\u03b6\u03b7\7\u701d\2\2\u03b7"+ + "\u03b8\7\u6940\2\2\u03b8\u03b9\7\u7d8d\2\2\u03b9\u03ba\7\u6fb8\2\2\u03ba"+ + "\u03bb\7\u0445\2\2\u03bb\u03bc\7\u76ae\2\2\u03bcp\3\2\2\2\u03bd\u03be"+ + "\7\u59df\2\2\u03be\u03bf\7\uff48\2\2\u03bf\u03c0\7\u6785\2\2\u03c0\u03c1"+ + "\7\u701d\2\2\u03c1\u03c2\7\u6940\2\2\u03c2\u03c3\7\u7d8d\2\2\u03c3\u03c4"+ + "\7\u6fb8\2\2\u03c4\u03c5\7\u0445\2\2\u03c5\u03c6\7\u76ae\2\2\u03c6r\3"+ + "\2\2\2\u03c7\u03c8\7\u93b7\2\2\u03c8\u03c9\7\u64b5\2\2\u03c9\u03ca\7\u74e9"+ + "\2\2\u03ca\u03cb\7\u95c4\2\2\u03cb\u03cc\7\u64b0\2\2\u03cc\u03cd\7\u6ba9"+ + "\2\2\u03cdt\3\2\2\2\u03ce\u03cf\7\u701d\2\2\u03cf\u03d0\7\u6945\2\2\u03d0"+ + "\u03d1\7\ue0c3\2\2\u03d1\u03d2\7\u95c4\2\2\u03d2\u03d3\7\u78cd\2\2\u03d3"+ + "\u03d4\7\u7a9d\2\2\u03d4v\3\2\2\2\u03d5\u03d6\7\u93c6\2\2\u03d6\u03d7"+ + "\7\u5269\2\2\u03d7\u03d8\7\u305c\2\2\u03d8\u03d9\7\u93bd\2\2\u03d9\u03da"+ + "\7\u6130\2\2\u03da\u03db\7\u305c\2\2\u03dbx\3\2\2\2\u03dc\u03dd\7\u9367"+ + "\2\2\u03dd\u03de\7\u70ae\2\2\u03de\u03df\7\u7225\2\2\u03df\u03e0\7K\2"+ + "\2\u03e0\u03e1\7F\2\2\u03e1z\3\2\2\2\u03e2\u03e3\7\u93c3\2\2\u03e3\u03e4"+ + "\7\u6781\2\2\u03e4\u03e5\7\uffff\2\2\u03e5\u03e6\7\u517e\2\2\u03e6\u03e7"+ + "\7\u6439\2\2\u03e7\u03e8\7\u6d65\2\2\u03e8\u03e9\7\uffff\2\2\u03e9|\3"+ + "\2\2\2\u03ea\u03eb\7\u935c\2\2\u03eb\u03ec\7\u5d89\2\2\u03ec\u03ed\7\u0420"+ + "\2\2\u03ed~\3\2\2\2\u03ee\u03ef\7\u934c\2\2\u03ef\u03f0\7\uffff\2\2\u03f0"+ + "\u0080\3\2\2\2\u03f1\u03f2\7\u93c3\2\2\u03f2\u03f3\7\u6781\2\2\u03f3\u03f4"+ + "\7\uffff\2\2\u03f4\u03f5\7\u7150\2\2\u03f5\u03f6\7\ue585\2\2\u03f6\u03f7"+ + "\7\u9353\2\2\u03f7\u03f8\7\uffff\2\2\u03f8\u0082\3\2\2\2\u03f9\u03fa\7"+ + "\u7483\2\2\u03fa\u03fb\7\u5269\2\2\u03fb\u03fc\7\u7588\2\2\u03fc\u03fd"+ + "\7\u59a6\2\2\u03fd\u03fe\7\u7150\2\2\u03fe\u03ff\7\u7732\2\2\u03ff\u0400"+ + "\7\u7060\2\2\u0400\u0401\7\u70b6\2\2\u0401\u0402\7\uffff\2\2\u0402\u0403"+ + "\7\uffff\2\2\u0403\u0084\3\2\2\2\u0404\u0405\7\u59a6\2\2\u0405\u0406\7"+ + "\u7150\2\2\u0406\u0407\7\u7732\2\2\u0407\u0408\7\u935c\2\2\u0408\u0409"+ + "\7\uffff\2\2\u0409\u0086\3\2\2\2\u040a\u040b\7\u7483\2\2\u040b\u040c\7"+ + "\u5269\2\2\u040c\u040d\7\u7588\2\2\u040d\u040e\7\u9351\2\2\u040e\u040f"+ + "\7\u3127\2\2\u040f\u0410\7\u772e\2\2\u0410\u0411\7\u7060\2\2\u0411\u0412"+ + "\7\u70b6\2\2\u0412\u0413\7\uffff\2\2\u0413\u0414\7\uffff\2\2\u0414\u0088"+ + "\3\2\2\2\u0415\u0416\7\u7483\2\2\u0416\u0417\7\u5269\2\2\u0417\u0418\7"+ + "\u7588\2\2\u0418\u0419\7\u9351\2\2\u0419\u041a\7\u3127\2\2\u041a\u041b"+ + "\7\u772e\2\2\u041b\u041c\7\u93c3\2\2\u041c\u041d\7\u6781\2\2\u041d\u041e"+ + "\7\uffff\2\2\u041e\u041f\7\uffff\2\2\u041f\u008a\3\2\2\2\u0420\u0421\7"+ + "\u7483\2\2\u0421\u0422\7\u5269\2\2\u0422\u0423\7\u7588\2\2\u0423\u0424"+ + "\7\u7ef1\2\2\u0424\u0425\7\u8366\2\2\u0425\u0426\7\u7cbc\2\2\u0426\u0427"+ + "\7\u5bf0\2\2\u0427\u0428\7\uffff\2\2\u0428\u0429\7\u9351\2\2\u0429\u042a"+ + "\7\uffff\2\2\u042a\u008c\3\2\2\2\u042b\u042c\7\u93c6\2\2\u042c\u042d\7"+ + "\u5269\2\2\u042d\u042e\7\u305c\2\2\u042e\u042f\7\u6d5e\2\2\u042f\u0430"+ + "\7\u5b2b\2\2\u0430\u0431\7\u6b24\2\2\u0431\u008e\3\2\2\2\u0432\u0433\7"+ + "\u59a6\2\2\u0433\u0434\7\u7150\2\2\u0434\u0435\7\u7732\2\2\u0435\u0090"+ + "\3\2\2\2\u0436\u0437\7\u95c7\2\2\u0437\u0438\7\u6131\2\2\u0438\u0439\7"+ + "\u68ce\2\2\u0439\u043a\7\u6d5e\2\2\u043a\u043b\7\u5b2b\2\2\u043b\u043c"+ + "\7\u6b24\2\2\u043c\u0092\3\2\2\2\u043d\u043e\7\u745b\2\2\u043e\u043f\7"+ + "\ufe42\2\2\u043f\u0440\7\u5f44\2\2\u0440\u0441\7\u6d5e\2\2\u0441\u0442"+ + "\7\u5b2b\2\2\u0442\u0443\7\u6b24\2\2\u0443\u0094\3\2\2\2\u0444\u0445\7"+ + "\u6d95\2\2\u0445\u0446\7\u5d89\2\2\u0446\u0447\7\u7caa\2\2\u0447\u0448"+ + "\7\u93cb\2\2\u0448\u0449\7\u71b9\2\2\u0449\u044a\7\u7d8d\2\2\u044a\u044b"+ + "\7\u9355\2\2\u044b\u044c\7\u5d86\2\2\u044c\u044d\7\u7c2a\2\2\u044d\u044e"+ + "\7\u6d62\2\2\u044e\u044f\7\uffff\2\2\u044f\u0096\3\2\2\2\u0450\u0451\7"+ + "\u93bd\2\2\u0451\u0452\7\u6393\2\2\u0452\u0453\7\u53c8\2\2\u0453\u0454"+ + "\7\u9351\2\2\u0454\u0455\7\ue102\2\2\u0455\u0456\7\u53e3\2\2\u0456\u0457"+ + "\7\u6d5e\2\2\u0457\u0458\7\u5b2b\2\2\u0458\u0459\7\u6b24\2\2\u0459\u0098"+ + "\3\2\2\2\u045a\u045b\7\u93bd\2\2\u045b\u045c\7\u6393\2\2\u045c\u045d\7"+ + "\u53c8\2\2\u045d\u045e\7\u6d5e\2\2\u045e\u045f\7\u5b2b\2\2\u045f\u0460"+ + "\7\u6b24\2\2\u0460\u009a\3\2\2\2\u0461\u0462\7\u95b4\2\2\u0462\u0463\7"+ + "\u5d87\2\2\u0463\u0464\7\u60d0\2\2\u0464\u0465\7\u8932\2\2\u0465\u0466"+ + "\7\u64b5\2\2\u0466\u0467\7\u58a2\2\2\u0467\u0468\7\u6d5e\2\2\u0468\u0469"+ + "\7\u5b2b\2\2\u0469\u046a\7\u6b24\2\2\u046a\u009c\3\2\2\2\u046b\u046c\7"+ + "\u7ed6\2\2\u046c\u046d\7\u5b2c\2\2\u046d\u046e\7\u57e4\2\2\u046e\u046f"+ + "\7\u7f03\2\2\u046f\u0470\7\u64b6\2\2\u0470\u0471\7\u6f6d\2\2\u0471\u0472"+ + "\7\u8932\2\2\u0472\u0473\7\u64b5\2\2\u0473\u0474\7\u58a2\2\2\u0474\u0475"+ + "\7\u6d5e\2\2\u0475\u0476\7\u5b2b\2\2\u0476\u0477\7\u6b24\2\2\u0477\u009e"+ + "\3\2\2\2\u0478\u0479\7\u6760\2\2\u0479\u047a\7\ue102\2\2\u047a\u047b\7"+ + "\u5f4b\2\2\u047b\u047c\7\u9367\2\2\u047c\u047d\7\u60e9\2\2\u047d\u047e"+ + "\7\u6f63\2\2\u047e\u047f\7\u6d95\2\2\u047f\u0480\7\uffff\2\2\u0480\u00a0"+ + "\3\2\2\2\u0481\u0482\7\u93c6\2\2\u0482\u0483\7\u5269\2\2\u0483\u0484\7"+ + "\u305c\2\2\u0484\u0485\7\u7492\2\2\u0485\u0486\7\u6753\2\2\u0486\u0487"+ + "\7\u6d5a\2\2\u0487\u00a2\3\2\2\2\u0488\u0489\7\u95c7\2\2\u0489\u048a\7"+ + "\u6131\2\2\u048a\u048b\7\u68ce\2\2\u048b\u048c\7\u7492\2\2\u048c\u048d"+ + "\7\u6753\2\2\u048d\u048e\7\u6d5a\2\2\u048e\u00a4\3\2\2\2\u048f\u0490\7"+ + "\u93c6\2\2\u0490\u0491\7\u5269\2\2\u0491\u0492\7\u305c\2\2\u0492\u0493"+ + "\7\u9367\2\2\u0493\u0494\7\u60e9\2\2\u0494\u0495\7\u7732\2\2\u0495\u0496"+ + "\7\u9369\2\2\u0496\u0497\7\uffff\2\2\u0497\u00a6\3\2\2\2\u0498\u0499\7"+ + "\u95c7\2\2\u0499\u049a\7\u6131\2\2\u049a\u049b\7\u68ce\2\2\u049b\u049c"+ + "\7\u9367\2\2\u049c\u049d\7\u60e9\2\2\u049d\u049e\7\u7732\2\2\u049e\u049f"+ + "\7\u9369\2\2\u049f\u04a0\7\uffff\2\2\u04a0\u00a8\3\2\2\2\u04a1\u04a2\7"+ + "\u6760\2\2\u04a2\u04a3\7\ue102\2\2\u04a3\u04a4\7\u5f4b\2\2\u04a4\u04a5"+ + "\7\u9367\2\2\u04a5\u04a6\7\u60e9\2\2\u04a6\u04a7\7\u7732\2\2\u04a7\u04a8"+ + "\7\u9369\2\2\u04a8\u04a9\7\uffff\2\2\u04a9\u00aa\3\2\2\2\u04aa\u04ab\7"+ + "\u6d95\2\2\u04ab\u04ac\7\uffff\2\2\u04ac\u00ac\3\2\2\2\u04ad\u04ae\7\u93c9"+ + "\2\2\u04ae\u04af\7\u5b5a\2\2\u04af\u04b0\7\u657e\2\2\u04b0\u04b1\7\u745b"+ + "\2\2\u04b1\u04b2\7\u6397\2\2\u04b2\u04b3\7\u58cc\2\2\u04b3\u04b4\7\u741d"+ + "\2\2\u04b4\u04b5\7\u5c85\2\2\u04b5\u04b6\7\u86cd\2\2\u04b6\u04b7\7\u9367"+ + "\2\2\u04b7\u04b8\7\uffff\2\2\u04b8\u00ae\3\2\2\2\u04b9\u04ba\7\u93c9\2"+ + "\2\u04ba\u04bb\7\u5b5a\2\2\u04bb\u04bc\7\u67cc\2\2\u04bc\u04bd\7\u941a"+ + "\2\2\u04bd\u04be\7\u8237\2\2\u04be\u04bf\7\uffff\2\2\u04bf\u04c0\7\u4f7b"+ + "\2\2\u04c0\u04c1\7\u7230\2\2\u04c1\u04c2\7\u935e\2\2\u04c2\u04c3\7\u5c7f"+ + "\2\2\u04c3\u04c4\7\u6e76\2\2\u04c4\u04c5\7\u9367\2\2\u04c5\u04c6\7\u70ae"+ + "\2\2\u04c6\u04c7\7\u6a0b\2\2\u04c7\u04c8\7\u6d7e\2\2\u04c8\u04c9\7\uffff"+ + "\2\2\u04c9\u00b0\3\2\2\2\u04ca\u04cb\7\u93c6\2\2\u04cb\u04cc\7\u5269\2"+ + "\2\u04cc\u04cd\7\u305c\2\2\u04cd\u04ce\7\u941a\2\2\u04ce\u04cf\7\u8237"+ + "\2\2\u04cf\u04d0\7\uffff\2\2\u04d0\u04d1\7\u4f7b\2\2\u04d1\u04d2\7\u7230"+ + "\2\2\u04d2\u00b2\3\2\2\2\u04d3\u04d4\7\u95c7\2\2\u04d4\u04d5\7\u6131\2"+ + "\2\u04d5\u04d6\7\u68ce\2\2\u04d6\u04d7\7\u941a\2\2\u04d7\u04d8\7\u8237"+ + "\2\2\u04d8\u04d9\7\uffff\2\2\u04d9\u04da\7\u4f7b\2\2\u04da\u04db\7\u7230"+ + "\2\2\u04db\u00b4\3\2\2\2\u04dc\u04dd\7\u6d95\2\2\u04dd\u04de\7\u5d8b\2"+ + "\2\u04de\u04df\7\u6ba5\2\2\u04df\u04e0\7\u949a\2\2\u04e0\u04e1\7\u5fd7"+ + "\2\2\u04e1\u04e2\7\u73ed\2\2\u04e2\u04e3\7\u7060\2\2\u04e3\u04e4\7\u5fd5"+ + "\2\2\u04e4\u04e5\7\u4f12\2\2\u04e5\u04e6\7\u9351\2\2\u04e6\u04e7\7\u950d"+ + "\2\2\u04e7\u04e8\7\u7230\2\2\u04e8\u00b6\3\2\2\2\u04e9\u04ea\7\u93c6\2"+ + "\2\u04ea\u04eb\7\u5269\2\2\u04eb\u04ec\7\u305c\2\2\u04ec\u04ed\7\u9357"+ + "\2\2\u04ed\u04ee\7\u56e9\2\2\u04ee\u04ef\7\uff0d\2\2\u04ef\u00b8\3\2\2"+ + "\2\u04f0\u04f1\7\u95c7\2\2\u04f1\u04f2\7\u6131\2\2\u04f2\u04f3\7\u68ce"+ + "\2\2\u04f3\u04f4\7\u9357\2\2\u04f4\u04f5\7\u56e9\2\2\u04f5\u04f6\7\uff0d"+ + "\2\2\u04f6\u00ba\3\2\2\2\u04f7\u04f8\7\u93c9\2\2\u04f8\u04f9\7\u5b5a\2"+ + "\2\u04f9\u04fa\7\u67cc\2\2\u04fa\u04fb\7\u93ae\2\2\u04fb\u04fc\7\ue048"+ + "\2\2\u04fc\u04fd\7\u58c1\2\2\u04fd\u04fe\7\u93c3\2\2\u04fe\u04ff\7\u724a"+ + "\2\2\u04ff\u0500\7\u5d43\2\2\u0500\u00bc\3\2\2\2\u0501\u0502\7\u7edd\2"+ + "\2\u0502\u0503\7\u590c\2\2\u0503\u0504\7\u7de1\2\2\u0504\u00be\3\2\2\2"+ + "\u0505\u0506\7\u59e5\2\2\u0506\u0507\7\ue0a6\2\2\u0507\u0508\7\ue759\2"+ + "\2\u0508\u00c0\3\2\2\2\u0509\u050a\7\u6d95\2\2\u050a\u050b\7\u5d87\2\2"+ + "\u050b\u050c\7\u5f74\2\2\u050c\u050d\7\u741c\2\2\u050d\u050e\7\u7377\2"+ + "\2\u050e\u050f\7v\2\2\u050f\u0510\7t\2\2\u0510\u0511\7n\2\2\u0511\u0512"+ + "\7\u74bc\2\2\u0512\u0513\7\u5ba2\2\2\u0513\u0514\7\u7e45\2\2\u0514\u00c2"+ + "\3\2\2\2\u0515\u0516\7\u5bf0\2\2\u0516\u0517\7\u54c6\2\2\u0517\u0518\7"+ + "\u57d9\2\2\u0518\u0519\7\u93b6\2\2\u0519\u051a\7\u6a3d\2\2\u051a\u051b"+ + "\7\u67a1\2\2\u051b\u00c4\3\2\2\2\u051c\u051d\7\u5bf0\2\2\u051d\u051e\7"+ + "\uffff\2\2\u051e\u051f\7\u95c4\2\2\u051f\u0520\7\uffff\2\2\u0520\u00c6"+ + "\3\2\2\2\u0521\u0522\7\u95c9\2\2\u0522\u0523\7\uffff\2\2\u0523\u0524\7"+ + "\u7457\2\2\u0524\u0525\7\u4f82\2\2\u0525\u0526\7\u631e\2\2\u0526\u0527"+ + "\7\u9358\2\2\u0527\u0528\7\uffff\2\2\u0528\u00c8\3\2\2\2\u0529\u052a\7"+ + "\u9351\2\2\u052a\u052b\7\u62bf\2\2\u052b\u052c\7\u68ee\2\2\u052c\u00ca"+ + "\3\2\2\2\u052d\u052e\7K\2\2\u052e\u052f\7F\2\2\u052f\u00cc\3\2\2\2\u0530"+ + "\u0531\7\u59a6\2\2\u0531\u0532\7\u7150\2\2\u0532\u0533\7\u7732\2\2\u0533"+ + "\u0534\7\u9354\2\2\u0534\u0535\7\u56ea\2\2\u0535\u0536\7\u5d34\2\2\u0536"+ + "\u00ce\3\2\2\2\u0537\u0538\7\u6d65\2\2\u0538\u0539\7\u5d89\2\2\u0539\u053a"+ + "\7\u7588\2\2\u053a\u053b\7\u9354\2\2\u053b\u053c\7\u56ea\2\2\u053c\u053d"+ + "\7\u5d34\2\2\u053d\u00d0\3\2\2\2\u053e\u053f\7\u9357\2\2\u053f\u0540\7"+ + "\u56e9\2\2\u0540\u0541\7\uff0d\2\2\u0541\u0542\7\u6760\2\2\u0542\u0543"+ + "\7\ue102\2\2\u0543\u0544\7\u609e\2\2\u0544\u00d2\3\2\2\2\u0545\u0546\7"+ + "\u6d65\2\2\u0546\u0547\7\u8dea\2\2\u0547\u0548\7\u6566\2\2\u0548\u0549"+ + "\7\u95ae\2\2\u0549\u054a\7\u64b5\2\2\u054a\u054b\7\u5401\2\2\u054b\u00d4"+ + "\3\2\2\2\u054c\u054d\7\u93b7\2\2\u054d\u054e\7\u64b5\2\2\u054e\u054f\7"+ + "\u7d13\2\2\u054f\u0550\7\u9351\2\2\u0550\u0551\7\u3127\2\2\u0551\u0552"+ + "\7\u772e\2\2\u0552\u0553\7\u9361\2\2\u0553\u0554\7\u55d9\2\2\u0554\u0555"+ + "\7\u7c37\2\2\u0555\u00d6\3\2\2\2\u0556\u0557\7\u7ec4\2\2\u0557\u0558\7"+ + "\u4f7c\2\2\u0558\u0559\7\u6566\2\2\u0559\u055a\7\u9351\2\2\u055a\u055b"+ + "\7\u3127\2\2\u055b\u055c\7\u772e\2\2\u055c\u055d\7\u9361\2\2\u055d\u055e"+ + "\7\u55d9\2\2\u055e\u055f\7\u7c37\2\2\u055f\u00d8\3\2\2\2\u0560\u0561\7"+ + "\u74bc\2\2\u0561\u0562\7\u71be\2\2\u0562\u0563\7\u6ba4\2\2\u0563\u0564"+ + "\7\u9357\2\2\u0564\u0565\7\u56e9\2\2\u0565\u0566\7\uff0d\2\2\u0566\u00da"+ + "\3\2\2\2\u0567\u0568\7\u741d\2\2\u0568\u0569\7\u5c85\2\2\u0569\u056a\7"+ + "\u86cd\2\2\u056a\u056b\7\u9367\2\2\u056b\u056c\7\uffff\2\2\u056c\u00dc"+ + "\3\2\2\2\u056d\u056e\7\u935b\2\2\u056e\u056f\7\u682a\2\2\u056f\u0570\7"+ + "\u79f9\2\2\u0570\u0571\7\u74bc\2\2\u0571\u0572\7\u71be\2\2\u0572\u0573"+ + "\7\u6ba4\2\2\u0573\u00de\3\2\2\2\u0574\u0575\7\u9424\2\2\u0575\u0576\7"+ + "\u5a5c\2\2\u0576\u0577\7\u6f72\2\2\u0577\u0578\7\u95c9\2\2\u0578\u0579"+ + "\7\u56e9\2\2\u0579\u057a\7\u59eb\2\2\u057a\u00e0\3\2\2\2\u057b\u057c\7"+ + "\u93c6\2\2\u057c\u057d\7\u5269\2\2\u057d\u057e\7\u305c\2\2\u057e\u057f"+ + "\7\u9356\2\2\u057f\u0580\7\u3129\2\2\u0580\u0581\7\u6580\2\2\u0581\u00e2"+ + "\3\2\2\2\u0582\u0583\7\u7483\2\2\u0583\u0584\7\u5269\2\2\u0584\u0585\7"+ + "\u7588\2\2\u0585\u0586\7\u745b\2\2\u0586\u0587\7\u55dc\2\2\u0587\u0588"+ + "\7\ue759\2\2\u0588\u00e4\3\2\2\2\u0589\u058a\7\u5bba\2\2\u058a\u058b\7"+ + "\ufe41\2\2\u058b\u058c\7\u7b04\2\2\u058c\u058d\7\u745b\2\2\u058d\u058e"+ + "\7\u6393\2\2\u058e\u058f\7\u6f59\2\2\u058f\u0590\7\u93cf\2\2\u0590\u0591"+ + "\7\uffff\2\2\u0591\u00e6\3\2\2\2\u0592\u0593\7\u7ecb\2\2\u0593\u0594\7"+ + "\u8bf4\2\2\u0594\u0595\7\u59eb\2\2\u0595\u0596\7\u745b\2\2\u0596\u0597"+ + "\7\u55dc\2\2\u0597\u0598\7\ue759\2\2\u0598\u00e8\3\2\2\2\u0599\u059a\7"+ + "\u93c6\2\2\u059a\u059b\7\u5269\2\2\u059b\u059c\7\u305c\2\2\u059c\u059d"+ + "\7\u9367\2\2\u059d\u059e\7\u5269\2\2\u059e\u059f\7\u5898\2\2\u059f\u00ea"+ + "\3\2\2\2\u05a0\u05a1\7\u9367\2\2\u05a1\u05a2\7\u5269\2\2\u05a2\u05a3\7"+ + "\u5898\2\2\u05a3\u05a4\7\u7f04\2\2\u05a4\u05a5\7\u6829\2\2\u05a5\u05a6"+ + "\7\u5f81\2\2\u05a6\u00ec\3\2\2\2\u05a7\u05a8\7\u9367\2\2\u05a8\u05a9\7"+ + "\u5269\2\2\u05a9\u05aa\7\u5898\2\2\u05aa\u00ee\3\2\2\2\u05ab\u05ac\7\u7f03"+ + "\2\2\u05ac\u05ad\7\u6a3c\2\2\u05ad\u05ae\7\u57d9\2\2\u05ae\u05af\7\u942a"+ + "\2\2\u05af\u05b0\7\u52f0\2\2\u05b0\u05b1\7\u6365\2\2\u05b1\u05b2\7\u9412"+ + "\2\2\u05b2\u05b3\7\u7472\2\2\u05b3\u05b4\7\u511c\2\2\u05b4\u05b5\7\u7ef3"+ + "\2\2\u05b5\u05b6\7\uffff\2\2\u05b6\u00f0\3\2\2\2\u05b7\u05b8\7\u6d95\2"+ + "\2\u05b8\u05b9\7\u5d8b\2\2\u05b9\u05ba\7\uffff\2\2\u05ba\u05bb\7\u5fd6"+ + "\2\2\u05bb\u05bc\7\u69d3\2\2\u05bc\u05bd\7\u6436\2\2\u05bd\u05be\7\uffff"+ + "\2\2\u05be\u00f2\3\2\2\2\u05bf\u05c0\7\u7443\2\2\u05c0\u05c1\7\u4f7a\2"+ + "\2\u05c1\u05c2\7\u58c2\2\2\u05c2\u05c3\7\u942a\2\2\u05c3\u05c4\7\u52f0"+ + "\2\2\u05c4\u05c5\7\u6365\2\2\u05c5\u05c6\7\u9412\2\2\u05c6\u05c7\7\u7472"+ + "\2\2\u05c7\u05c8\7\u511c\2\2\u05c8\u05c9\7\u7ef3\2\2\u05c9\u05ca\7\uffff"+ + "\2\2\u05ca\u00f4\3\2\2\2\u05cb\u05cc\7\u703b\2\2\u05cc\u05cd\7\uffff\2"+ + "\2\u05cd\u00f6\3\2\2\2\u05ce\u05cf\7\u6944\2\2\u05cf\u05d0\7\uffff\2\2"+ + "\u05d0\u00f8\3\2\2\2\u05d1\u05d2\7\u93c6\2\2\u05d2\u05d3\7\u5269\2\2\u05d3"+ + "\u05d4\7\u305c\2\2\u05d4\u05d5\7\u9367\2\2\u05d5\u05d6\7\u5269\2\2\u05d6"+ + "\u05d7\7\u5898\2\2\u05d7\u05d8\7\u9358\2\2\u05d8\u05d9\7\u682a\2\2\u05d9"+ + "\u05da\7\u6785\2\2\u05da\u05db\7\u93ca\2\2\u05db\u05dc\7\uffff\2\2\u05dc"+ + "\u00fa\3\2\2\2\u05dd\u05de\7\u93c4\2\2\u05de\u05df\7\u56ea\2\2\u05df\u05e0"+ + "\7\u6e72\2\2\u05e0\u05e1\7\u9352\2\2\u05e1\u05e2\7\u546f\2\2\u05e2\u05e3"+ + "\7\ue192\2\2\u05e3\u00fc\3\2\2\2\u05e4\u05e5\7\u74a9\2\2\u05e5\u05e6\7"+ + "\u98d0\2\2\u05e6\u05e7\7\u5065\2\2\u05e7\u05e8\7\u934f\2\2\u05e8\u05e9"+ + "\7\u5fd7\2\2\u05e9\u05ea\7\u790e\2\2\u05ea\u00fe\3\2\2\2\u05eb\u05ec\7"+ + "\u5a15\2\2\u05ec\u05ed\7\u5476\2\2\u05ed\u05ee\7\u6ad0\2\2\u05ee\u05ef"+ + "\7\u9367\2\2\u05ef\u05f0\7\u5269\2\2\u05f0\u05f1\7\u5898\2\2\u05f1\u0100"+ + "\3\2\2\2\u05f2\u05f3\7\u93c6\2\2\u05f3\u05f4\7\u5269\2\2\u05f4\u05f5\7"+ + "\u305c\2\2\u05f5\u05f6\7\u9356\2\2\u05f6\u05f7\7\u3127\2\2\u05f7\u05f8"+ + "\7\u6d5a\2\2\u05f8\u0102\3\2\2\2\u05f9\u05fa\7\u74a9\2\2\u05fa\u05fb\7"+ + "\u98d0\2\2\u05fb\u05fc\7\u5065\2\2\u05fc\u05fd\7\u934f\2\2\u05fd\u05fe"+ + "\7\u5fd7\2\2\u05fe\u05ff\7\u790e\2\2\u05ff\u0600\7\u6d65\2\2\u0600\u0601"+ + "\7\u5d89\2\2\u0601\u0602\7\u7588\2\2\u0602\u0104\3\2\2\2\u0603\u0604\7"+ + "\u5a15\2\2\u0604\u0605\7\u5476\2\2\u0605\u0606\7\u6ad0\2\2\u0606\u0607"+ + "\7\u93b7\2\2\u0607\u0608\7\uffff\2\2\u0608\u0609\7\u93ca\2\2\u0609\u060a"+ + "\7\u590c\2\2\u060a\u060b\7\u59eb\2\2\u060b\u060c\7\u9367\2\2\u060c\u060d"+ + "\7\uffff\2\2\u060d\u0106\3\2\2\2\u060e\u060f\7\u9367\2\2\u060f\u0610\7"+ + "\u5269\2\2\u0610\u0611\7\u5898\2\2\u0611\u0612\7\u7ecb\2\2\u0612\u0613"+ + "\7\u8bf4\2\2\u0613\u0614\7\u59eb\2\2\u0614\u0108\3\2\2\2\u0615\u0616\7"+ + "\u7f03\2\2\u0616\u0617\7\u5824\2\2\u0617\u0618\7\u5065\2\2\u0618\u0619"+ + "\7\u934f\2\2\u0619\u061a\7\u5fd7\2\2\u061a\u061b\7\u790e\2\2\u061b\u061c"+ + "\7\u6d65\2\2\u061c\u061d\7\u5d89\2\2\u061d\u061e\7\u7588\2\2\u061e\u010a"+ + "\3\2\2\2\u061f\u0620\7\u7ecb\2\2\u0620\u0621\7\u8bf4\2\2\u0621\u0622\7"+ + "\u59eb\2\2\u0622\u0623\7\u93c5\2\2\u0623\u0624\7\u5817\2\2\u0624\u0625"+ + "\7\u6901\2\2\u0625\u010c\3\2\2\2\u0626\u0627\7\u93c9\2\2\u0627\u0628\7"+ + "\u5b5a\2\2\u0628\u0629\7\u657e\2\2\u0629\u062a\7\u9424\2\2\u062a\u062b"+ + "\7\u5a5c\2\2\u062b\u062c\7\u6f72\2\2\u062c\u062d\7\u947b\2\2\u062d\u062e"+ + "\7\u8338\2\2\u062e\u062f\7\u76a1\2\2\u062f\u010e\3\2\2\2\u0630\u0631\7"+ + "\u93af\2\2\u0631\u0632\7\u3222\2\2\u0632\u0633\7\ue634\2\2\u0633\u0634"+ + "\7\u9424\2\2\u0634\u0635\7\u5a5c\2\2\u0635\u0636\7\u6f72\2\2\u0636\u0637"+ + "\7\u947b\2\2\u0637\u0638\7\u8338\2\2\u0638\u0639\7\u76a1\2\2\u0639\u0110"+ + "\3\2\2\2\u063a\u063b\7\u9424\2\2\u063b\u063c\7\u5a5c\2\2\u063c\u063d\7"+ + "\u6f72\2\2\u063d\u063e\7\u95c4\2\2\u063e\u063f\7\ue048\2\2\u063f\u0640"+ + "\7\u510c\2\2\u0640\u0112\3\2\2\2\u0641\u0642\7\u9359\2\2\u0642\u0643\7"+ + "\u66e1\2\2\u0643\u0644\7\ue0be\2\2\u0644\u0645\7\u93c5\2\2\u0645\u0646"+ + "\7\u5817\2\2\u0646\u0647\7\u6901\2\2\u0647\u0114\3\2\2\2\u0648\u0649\7"+ + "\u93b7\2\2\u0649\u064a\7\u0448\2\2\u064a\u064b\7\ue513\2\2\u064b\u064c"+ + "\7\u5a08\2\2\u064c\u064d\7\u2105\2\2\u064d\u064e\7\u66a1\2\2\u064e\u0116"+ + "\3\2\2\2\u064f\u0650\7\u93c9\2\2\u0650\u0651\7\u5b5a\2\2\u0651\u0652\7"+ + "\u657e\2\2\u0652\u0653\7\u6fb8\2\2\u0653\u0654\7\u2544\2\2\u0654\u0655"+ + "\7\u76b7\2\2\u0655\u0118\3\2\2\2\u0656\u0657\7\u5bf0\2\2\u0657\u0658\7"+ + "\u54c6\2\2\u0658\u0659\7\u5bb5\2\2\u0659\u011a\3\2\2\2\u065a\u065b\7\u7ecb"+ + "\2\2\u065b\u065c\7\u8bf4\2\2\u065c\u065d\7\u59eb\2\2\u065d\u065e\7\u6d5e"+ + "\2\2\u065e\u065f\7\u5b2b\2\2\u065f\u0660\7\u6b24\2\2\u0660\u011c\3\2\2"+ + "\2\u0661\u0662\7\u6d95\2\2\u0662\u0663\7\u5d88\2\2\u0663\u0664\7\u79f9"+ + "\2\2\u0664\u0665\7\u6fb8\2\2\u0665\u0666\7\uffff\2\2\u0666\u011e\3\2\2"+ + "\2\u0667\u0668\7\u7ecb\2\2\u0668\u0669\7\u8bf4\2\2\u0669\u066a\7\u59eb"+ + "\2\2\u066a\u066b\7\u9357\2\2\u066b\u066c\7\u56e9\2\2\u066c\u066d\7\uff0d"+ + "\2\2\u066d\u0120\3\2\2\2\u066e\u066f\7\u74bc\2\2\u066f\u0670\7\u5ba2\2"+ + "\2\u0670\u0671\7\u7a6e\2\2\u0671\u0672\7\u6d5e\2\2\u0672\u0673\7\u5b2b"+ + "\2\2\u0673\u0674\7\u6b24\2\2\u0674\u0122\3\2\2\2\u0675\u0676\7\u74a9\2"+ + "\2\u0676\u0677\7\u5cf2\2\2\u0677\u0678\7\ue752\2\2\u0678\u0679\7\"\2\2"+ + "\u0679\u067a\7z\2\2\u067a\u0124\3\2\2\2\u067b\u067c\7\u7f03\2\2\u067c"+ + "\u067d\7\u5821\2\2\u067d\u067e\7\ue11d\2\2\u067e\u067f\7\"\2\2\u067f\u0680"+ + "\7z\2\2\u0680\u0126\3\2\2\2\u0681\u0682\7\u74bc\2\2\u0682\u0683\7\u5ba2"+ + "\2\2\u0683\u0684\7\u7a6e\2\2\u0684\u0685\7\u9357\2\2\u0685\u0686\7\u56e9"+ + "\2\2\u0686\u0687\7\uff0d\2\2\u0687\u0128\3\2\2\2\u0688\u0689\7\u93c0\2"+ + "\2\u0689\u068a\7\ue161\2\2\u068a\u068b\7\u6583\2\2\u068b\u068c\7\u9475"+ + "\2\2\u068c\u068d\7\u5c80\2\2\u068d\u068e\7\u6adb\2\2\u068e\u068f\7\u95cc"+ + "\2\2\u068f\u0690\7\u5147\2\2\u0690\u0691\7\u7bb2\2\2\u0691\u012a\3\2\2"+ + "\2\u0692\u0693\7\u93ba\2\2\u0693\u0694\7\u4f7c\2\2\u0694\u0695\7\u753d"+ + "\2\2\u0695\u0696\7\u9354\2\2\u0696\u0697\7\u9883\2\2\u0697\u0698\7\u7b07"+ + "\2\2\u0698\u0699\7\u6d95\2\2\u0699\u069a\7\ue047\2\2\u069a\u069b\7\u6e72"+ + "\2\2\u069b\u069c\7\u6d5e\2\2\u069c\u069d\7\u5b2b\2\2\u069d\u069e\7\u6b24"+ + "\2\2\u069e\u012c\3\2\2\2\u069f\u06a0\7\u93c8\2\2\u06a0\u06a1\7\u509c\2"+ + "\2\u06a1\u06a2\7\u4ee2\2\2\u06a2\u06a3\7\u9475\2\2\u06a3\u06a4\7\u5c80"+ + "\2\2\u06a4\u06a5\7\u6adb\2\2\u06a5\u06a6\7\u95cc\2\2\u06a6\u06a7\7\u5147"+ + "\2\2\u06a7\u06a8\7\u7bb2\2\2\u06a8\u012e\3\2\2\2\u06a9\u06aa\7\u93af\2"+ + "\2\u06aa\u06ab\7\u3222\2\2\u06ab\u06ac\7\ue634\2\2\u06ac\u06ad\7\u9475"+ + "\2\2\u06ad\u06ae\7\u5c80\2\2\u06ae\u06af\7\u6adb\2\2\u06af\u06b0\7\u95cc"+ + "\2\2\u06b0\u06b1\7\u5147\2\2\u06b1\u06b2\7\u7bb2\2\2\u06b2\u0130\3\2\2"+ + "\2\u06b3\u06b4\7\u68f2\2\2\u06b4\u06b5\7\u52ed\2\2\u06b5\u06b6\7\u59e0"+ + "\2\2\u06b6\u06b7\7\u6760\2\2\u06b7\u06b8\7\u5021\2\2\u06b8\u06b9\7\u5119"+ + "\2\2\u06b9\u06ba\7\u93c7\2\2\u06ba\u06bb\7\ue220\2\2\u06bb\u06bc\7\u7178"+ + "\2\2\u06bc\u06bd\7\u6d96\2\2\u06bd\u06be\7\uffff\2\2\u06be\u0132\3\2\2"+ + "\2\u06bf\u06c0\7\u95b4\2\2\u06c0\u06c1\7\u5a45\2\2\u06c1\u06c2\7\u6583"+ + "\2\2\u06c2\u06c3\7\u9475\2\2\u06c3\u06c4\7\u5c80\2\2\u06c4\u06c5\7\u6adb"+ + "\2\2\u06c5\u06c6\7\u95cc\2\2\u06c6\u06c7\7\u5147\2\2\u06c7\u06c8\7\u7bb2"+ + "\2\2\u06c8\u06c9\7\u942a\2\2\u06c9\u06ca\7\u52ef\2\2\u06ca\u06cb\7\u7d28"+ + "\2\2\u06cb\u06cc\7\u701d\2\2\u06cc\u06cd\7\uffff\2\2\u06cd\u0134\3\2\2"+ + "\2\u06ce\u06cf\7\u93c0\2\2\u06cf\u06d0\7\ue161\2\2\u06d0\u06d1\7\u6583"+ + "\2\2\u06d1\u06d2\7\u95cc\2\2\u06d2\u06d3\7\u866d\2\2\u06d3\u06d4\7\u6667"+ + "\2\2\u06d4\u0136\3\2\2\2\u06d5\u06d6\7\u934d\2\2\u06d6\u06d7\7\u6ec6\2"+ + "\2\u06d7\u06d8\7\ue11d\2\2\u06d8\u06d9\7\u6d96\2\2\u06d9\u06da\7\u5b2c"+ + "\2\2\u06da\u06db\7\u58a2\2\2\u06db\u06dc\7\u95cc\2\2\u06dc\u06dd\7\u866d"+ + "\2\2\u06dd\u06de\7\u6667\2\2\u06de\u0138\3\2\2\2\u06df\u06e0\7\u934d\2"+ + "\2\u06e0\u06e1\7\u6ec6\2\2\u06e1\u06e2\7\ue11d\2\2\u06e2\u06e3\7\u93b7"+ + "\2\2\u06e3\u06e4\7\uffff\2\2\u06e4\u06e5\7\u93ca\2\2\u06e5\u06e6\7\u5912"+ + "\2\2\u06e6\u06e7\7\u7178\2\2\u06e7\u06e8\7\u93c3\2\2\u06e8\u06e9\7\uffff"+ + "\2\2\u06e9\u013a\3\2\2\2\u06ea\u06eb\7\u7483\2\2\u06eb\u06ec\7\u5269\2"+ + "\2\u06ec\u06ed\7\u7588\2\2\u06ed\u06ee\7\u95cc\2\2\u06ee\u06ef\7\u62bf"+ + "\2\2\u06ef\u06f0\7\u567c\2\2\u06f0\u013c\3\2\2\2\u06f1\u06f2\7\u5a15\2"+ + "\2\u06f2\u06f3\7\u612e\2\2\u06f3\u06f4\7\u5f4b\2\2\u06f4\u06f5\7\u93c5"+ + "\2\2\u06f5\u06f6\7\u5817\2\2\u06f6\u06f7\7\u6901\2\2\u06f7\u013e\3\2\2"+ + "\2\u06f8\u06f9\7\u5a15\2\2\u06f9\u06fa\7\u544c\2\2\u06fa\u06fb\7\u579b"+ + "\2\2\u06fb\u06fc\7\u9475\2\2\u06fc\u06fd\7\u6ec5\2\2\u06fd\u06fe\7\u57c6"+ + "\2\2\u06fe\u06ff\7.\2\2\u06ff\u0700\7\u7f03\2\2\u0700\u0701\7\u64b5\2"+ + "\2\u0701\u0702\7\u772e\2\2\u0702\u0140\3\2\2\2\u0703\u0704\7\u6d95\2\2"+ + "\u0704\u0705\7\u5d8a\2\2\u0705\u0706\7\ue17a\2\2\u0706\u0707\7\u9351\2"+ + "\2\u0707\u0708\7\u30e8\2\2\u0708\u0709\7\ue703\2\2\u0709\u070a\7\u9359"+ + "\2\2\u070a\u070b\7\uffff\2\2\u070b\u0142\3\2\2\2\u070c\u070d\7\u5a15\2"+ + "\2\u070d\u070e\7\u544c\2\2\u070e\u070f\7\u579b\2\2\u070f\u0710\7\u6fb8"+ + "\2\2\u0710\u0711\7\u8fad\2\2\u0711\u0712\7\u89e8\2\2\u0712\u0713\7.\2"+ + "\2\u0713\u0714\7\u7f03\2\2\u0714\u0715\7\u64b5\2\2\u0715\u0716\7\u772e"+ + "\2\2\u0716\u0144\3\2\2\2\u0717\u0718\7\u942b\2\2\u0718\u0719\7\u5b5a\2"+ + "\2\u0719\u071a\7\u5e36\2\2\u071a\u071b\7\u9367\2\2\u071b\u071c\7\u70b4"+ + "\2\2\u071c\u071d\7\u57ce\2\2\u071d\u071e\7\u93cf\2\2\u071e\u071f\7\u56ee"+ + "\2\2\u071f\u0720\7\ue57f\2\2\u0720\u0721\7\u9425\2\2\u0721\u0722\7\u5c86"+ + "\2\2\u0722\u0723\7\u6f72\2\2\u0723\u0146\3\2\2\2\u0724\u0725\7\u93bc\2"+ + "\2\u0725\u0726\7\u30e7\2\2\u0726\u0727\7\u5f4a\2\2\u0727\u0728\7\u9424"+ + "\2\2\u0728\u0729\7\u3128\2\2\u0729\u072a\7\u57dd\2\2\u072a\u072b\7\u674a"+ + "\2\2\u072b\u072c\7\u64b5\2\2\u072c\u072d\7\u53c8\2\2\u072d\u072e\7\u93c3"+ + "\2\2\u072e\u072f\7\u6781\2\2\u072f\u0730\7\u74e9\2\2\u0730\u0731\7.\2"+ + "\2\u0731\u0732\7\u93bd\2\2\u0732\u0733\7\u6130\2\2\u0733\u0734\7\u305c"+ + "\2\2\u0734\u0148\3\2\2\2\u0735\u0736\7\u93bc\2\2\u0736\u0737\7\u30e7\2"+ + "\2\u0737\u0738\7\u5f4a\2\2\u0738\u0739\7\u9424\2\2\u0739\u073a\7\u3128"+ + "\2\2\u073a\u073b\7\u57dd\2\2\u073b\u073c\7\u674a\2\2\u073c\u073d\7\u64b5"+ + "\2\2\u073d\u073e\7\u53c8\2\2\u073e\u073f\7\u93c4\2\2\u073f\u0740\7\u56ea"+ + "\2\2\u0740\u0741\7\u6e72\2\2\u0741\u0742\7.\2\2\u0742\u0743\7\u93bd\2"+ + "\2\u0743\u0744\7\u6130\2\2\u0744\u0745\7\u305c\2\2\u0745\u014a\3\2\2\2"+ + "\u0746\u0747\7\u6fe3\2\2\u0747\u0748\7\u509d\2\2\u0748\u0749\7\u704b\2"+ + "\2\u0749\u014c\3\2\2\2\u074a\u074b\7\u935c\2\2\u074b\u074c\7\ufe42\2\2"+ + "\u074c\u074d\7\u57b1\2\2\u074d\u014e\3\2\2\2\u074e\u074f\7\u6fb8\2\2\u074f"+ + "\u0750\7\u6c38\2\2\u0750\u0751\7\u567a\2\2\u0751\u0752\7\u9354\2\2\u0752"+ + "\u0753\7\u55da\2\2\u0753\u0754\7\ue122\2\2\u0754\u0755\7\"\2\2\u0755\u0756"+ + "\7\u93cb\2\2\u0756\u0757\7\u2034\2\2\u0757\u0758\7\u6b24\2\2\u0758\u0759"+ + "\7\u9354\2\2\u0759\u075a\7\u3087\2\2\u075a\u075b\7\u7580\2\2\u075b\u0150"+ + "\3\2\2\2\u075c\u075d\7\u6fe3\2\2\u075d\u075e\7\u509d\2\2\u075e\u075f\7"+ + "\u704b\2\2\u075f\u0760\7\u93c6\2\2\u0760\u0761\7\uffff\2\2\u0761\u0152"+ + "\3\2\2\2\u0762\u0763\7\u942a\2\2\u0763\u0764\7\u52ed\2\2\u0764\u0765\7"+ + "\u6e82\2\2\u0765\u0766\7\u935c\2\2\u0766\u0767\7\uffff\2\2\u0767\u0154"+ + "\3\2\2\2\u0768\u0769\7\u6d95\2\2\u0769\u076a\7\u5d8a\2\2\u076a\u076b\7"+ + "\u70e8\2\2\u076b\u076c\7\u9353\2\2\u076c\u076d\7\uffff\2\2\u076d\u0156"+ + "\3\2\2\2\u076e\u076f\7\u95ad\2\2\u076f\u0770\7\u5912\2\2\u0770\u0771\7"+ + "\u300f\2\2\u0771\u0158\3\2\2\2\u0772\u0773\7\u701d\2\2\u0773\u0774\7\u6132"+ + "\2\2\u0774\u0775\7\uffff\2\2\u0775\u0776\7\u5912\2\2\u0776\u0777\7\u300f"+ + "\2\2\u0777\u015a\3\2\2\2\u0778\u0779\7\u68f2\2\2\u0779\u077a\7\u6ec8\2"+ + "\2\u077a\u077b\7\u58cc\2\2\u077b\u015c\3\2\2\2\u077c\u077d\7\u9353\2\2"+ + "\u077d\u077e\7\u867b\2\2\u077e\u077f\7\u5e49\2\2\u077f\u0780\7\u93cb\2"+ + "\2\u0780\u0781\7\u2034\2\2\u0781\u0782\7\u6b24\2\2\u0782\u015e\3\2\2\2"+ + "\u0783\u0784\7\u93c6\2\2\u0784\u0785\7\u5269\2\2\u0785\u0786\7\u305c\2"+ + "\2\u0786\u0787\7\u7eaf\2\2\u0787\u0788\7\ue1c1\2\2\u0788\u0789\7\ue17d"+ + "\2\2\u0789\u078a\7\u5999\2\2\u078a\u078b\7\uffff\2\2\u078b\u0160\3\2\2"+ + "\2\u078c\u078d\7\u7eaf\2\2\u078d\u078e\7\ue1be\2\2\u078e\u078f\7\u7580"+ + "\2\2\u078f\u0790\7\u942a\2\2\u0790\u0791\7\u52ed\2\2\u0791\u0792\7\u6e82"+ + "\2\2\u0792\u0793\7\u935c\2\2\u0793\u0794\7\uffff\2\2\u0794\u0162\3\2\2"+ + "\2\u0795\u0796\7\u951d\2\2\u0796\u0797\7\u5827\2\2\u0797\u0798\7\u7cb1"+ + "\2\2\u0798\u0799\7\u7483\2\2\u0799\u079a\7\u308b\2\2\u079a\u079b\7\uffff"+ + "\2\2\u079b\u079c\7\u590b\2\2\u079c\u079d\7\u8153\2\2\u079d\u0164\3\2\2"+ + "\2\u079e\u079f\7\u951d\2\2\u079f\u07a0\7\uffff\2\2\u07a0\u0166\3\2\2\2"+ + "\u07a1\u07a2\7\u935b\2\2\u07a2\u07a3\7\u682a\2\2\u07a3\u07a4\7\u79f9\2"+ + "\2\u07a4\u07a5\7\u942a\2\2\u07a5\u07a6\7\u52ed\2\2\u07a6\u07a7\7\u6e82"+ + "\2\2\u07a7\u07a8\7\u935c\2\2\u07a8\u07a9\7\uffff\2\2\u07a9\u0168\3\2\2"+ + "\2\u07aa\u07ab\7\u9355\2\2\u07ab\u07ac\7\u5d89\2\2\u07ac\u07ad\7\u7588"+ + "\2\2\u07ad\u07ae\7\u93cb\2\2\u07ae\u07af\7\u2034\2\2\u07af\u07b0\7\u6b24"+ + "\2\2\u07b0\u07b1\7\u5bf2\2\2\u07b1\u07b2\7\ue048\2\2\u07b2\u07b3\7\u5e48"+ + "\2\2\u07b3\u016a\3\2\2\2\u07b4\u07b5\7\u8932\2\2\u07b5\u07b6\7\uffff\2"+ + "\2\u07b6\u016c\3\2\2\2\u07b7\u07b8\7\u93c5\2\2\u07b8\u07b9\7\uffff\2\2"+ + "\u07b9\u016e\3\2\2\2\u07ba\u07bb\7\u935c\2\2\u07bb\u07bc\7\u5ea5\2\2\u07bc"+ + "\u07bd\7\u7588\2\2\u07bd\u07be\7\u93cb\2\2\u07be\u07bf\7\u2034\2\2\u07bf"+ + "\u07c0\7\u6b24\2\2\u07c0\u07c1\7\u5bf2\2\2\u07c1\u07c2\7\ue048\2\2\u07c2"+ + "\u07c3\7\u5e48\2\2\u07c3\u0170\3\2\2\2\u07c4\u07c5\7\u74bc\2\2\u07c5\u07c6"+ + "\7\u51b4\2\2\u07c6\u07c7\7\u56af\2\2\u07c7\u07c8\7\u8932\2\2\u07c8\u07c9"+ + "\7\u64b5\2\2\u07c9\u07ca\7\u58a2\2\2\u07ca\u07cb\7\u5bf2\2\2\u07cb\u07cc"+ + "\7\ue048\2\2\u07cc\u07cd\7\u5e48\2\2\u07cd\u07ce\7\u93b6\2\2\u07ce\u07cf"+ + "\7\u6829\2\2\u07cf\u07d0\7\u53d7\2\2\u07d0\u07d1\7\u9351\2\2\u07d1\u07d2"+ + "\7\u53da\2\2\u07d2\u07d3\7\u7c2a\2\2\u07d3\u07d4\7\u6d62\2\2\u07d4\u07d5"+ + "\7\uffff\2\2\u07d5\u0172\3\2\2\2\u07d6\u07d7\7\u7f03\2\2\u07d7\u07d8\7"+ + "\u0447\2\2\u07d8\u07d9\7\u753d\2\2\u07d9\u07da\7\u8932\2\2\u07da\u07db"+ + "\7\u64b5\2\2\u07db\u07dc\7\u58a2\2\2\u07dc\u07dd\7\u5bf2\2\2\u07dd\u07de"+ + "\7\ue048\2\2\u07de\u07df\7\u5e48\2\2\u07df\u0174\3\2\2\2\u07e0\u07e1\7"+ + "\u7edd\2\2\u07e1\u07e2\7\u590c\2\2\u07e2\u07e3\7\u7de1\2\2\u07e3\u07e4"+ + "\7\u9424\2\2\u07e4\u07e5\7\u3128\2\2\u07e5\u07e6\7\u57dd\2\2\u07e6\u07e7"+ + "\7\u93c1\2\2\u07e7\u07e8\7\u5d86\2\2\u07e8\u07e9\7\u7d96\2\2\u07e9\u07ea"+ + "\7\u9aa0\2\2\u07ea\u07eb\7\u60f2\2\2\u07eb\u07ec\7\u5e51\2\2\u07ec\u07ed"+ + "\7\u5bf2\2\2\u07ed\u07ee\7\u6943\2\2\u07ee\u07ef\7\u5bde\2\2\u07ef\u07f0"+ + "\7\u95c1\2\2\u07f0\u07f1\7\ue1bf\2\2\u07f1\u07f2\7\u57aa\2\2\u07f2\u07f3"+ + "\7\u9412\2\2\u07f3\u07f4\7\u7472\2\2\u07f4\u07f5\7\u56b0\2\2\u07f5\u07f6"+ + "\7\u6dc9\2\2\u07f6\u07f7\7\u2105\2\2\u07f7\u07f8\7\u4f07\2\2\u07f8\u0176"+ + "\3\2\2\2\u07f9\u07fa\7\u7edd\2\2\u07fa\u07fb\7\u590c\2\2\u07fb\u07fc\7"+ + "\u7de1\2\2\u07fc\u07fd\7\u93b7\2\2\u07fd\u07fe\7\uffff\2\2\u07fe\u07ff"+ + "\7\u93ca\2\2\u07ff\u0800\7\u590c\2\2\u0800\u0801\7\u7d15\2\2\u0801\u0802"+ + "\7\u59df\2\2\u0802\u0803\7\u30e6\2\2\u0803\u0804\7\u7c2a\2\2\u0804\u0805"+ + "\7\u6d62\2\2\u0805\u0806\7\u8237\2\2\u0806\u0807\7\u58bf\2\2\u0807\u0808"+ + "\7\u741d\2\2\u0808\u0809\7\u5c7f\2\2\u0809\u080a\7\u756e\2\2\u080a\u080b"+ + "\7\u59e5\2\2\u080b\u080c\7\uffff\2\2\u080c\u0178\3\2\2\2\u080d\u080e\7"+ + "\u935d\2\2\u080e\u080f\7\u7150\2\2\u080f\u0810\7\u56af\2\2\u0810\u0811"+ + "\7\u93ae\2\2\u0811\u0812\7\ue048\2\2\u0812\u0813\7\u58c1\2\2\u0813\u0814"+ + "\7\u93b7\2\2\u0814\u0815\7\u5b2c\2\2\u0815\u0816\7\u553f\2\2\u0816\u017a"+ + "\3\2\2\2\u0817\u0818\7\u935d\2\2\u0818\u0819\7\u7150\2\2\u0819\u081a\7"+ + "\u56af\2\2\u081a\u081b\7\u701d\2\2\u081b\u081c\7\u6a3d\2\2\u081c\u081d"+ + "\7\u3004\2\2\u081d\u081e\7\u6926\2\2\u081e\u081f\7\u753a\2\2\u081f\u0820"+ + "\7\u6f72\2\2\u0820\u017c\3\2\2\2\u0821\u0822\7\u9479\2\2\u0822\u0823\7"+ + "\ue046\2\2\u0823\u0824\7\u59eb\2\2\u0824\u0825\7\u701d\2\2\u0825\u0826"+ + "\7\u6a3d\2\2\u0826\u0827\7\u3004\2\2\u0827\u017e\3\2\2\2\u0828\u0829\7"+ + "\u6d95\2\2\u0829\u082a\7\u5d88\2\2\u082a\u082b\7\u5f43\2\2\u082b\u082c"+ + "\7\u7ec2\2\2\u082c\u082d\7\uffff\2\2\u082d\u0180\3\2\2\2\u082e\u082f\7"+ + "\u935d\2\2\u082f\u0830\7\u7150\2\2\u0830\u0831\7\u56af\2\2\u0831\u0832"+ + "\7\u7489\2\2\u0832\u0833\7\u7eda\2\2\u0833\u0834\7\u3004\2\2\u0834\u0835"+ + "\7\u6926\2\2\u0835\u0836\7\u753a\2\2\u0836\u0837\7\u6f72\2\2\u0837\u0182"+ + "\3\2\2\2\u0838\u0839\7w\2\2\u0839\u083a\7k\2\2\u083a\u083b\7\u7f03\2\2"+ + "\u083b\u083c\7\u6a3c\2\2\u083c\u083d\7\u57d9\2\2\u083d\u083e\7\u9aa0\2"+ + "\2\u083e\u083f\7\u5817\2\2\u083f\u0840\7\ue56b\2\2\u0840\u0841\7\u745b"+ + "\2\2\u0841\u0842\7\uffff\2\2\u0842\u0184\3\2\2\2\u0843\u0844\7\u951d\2"+ + "\2\u0844\u0845\7\u581f\2\2\u0845\u0846\7\u5f3d\2\2\u0846\u0847\7\u9353"+ + "\2\2\u0847\u0848\7\u7eda\2\2\u0848\u0849\7\ue11f\2\2\u0849\u084a\7\u6926"+ + "\2\2\u084a\u084b\7\u7472\2\2\u084b\u084c\7\u5f74\2\2\u084c\u084d\7\u676b"+ + "\2\2\u084d\u084e\7\u6d9e\2\2\u084e\u084f\7\ue513\2\2\u084f\u0850\7\u68f2"+ + "\2\2\u0850\u0851\7\u52f0\2\2\u0851\u0852\7\ue74f\2\2\u0852\u0853\7\u951d"+ + "\2\2\u0853\u0854\7\uffff\2\2\u0854\u0186\3\2\2\2\u0855\u0856\7\u5a15\2"+ + "\2\u0856\u0857\7\u5476\2\2\u0857\u0858\7\u6ad0\2\2\u0858\u0859\7\u9424"+ + "\2\2\u0859\u085a\7\u8bf4\2\2\u085a\u085b\7\u7af9\2\2\u085b\u0188\3\2\2"+ + "\2\u085c\u085d\7\u5a15\2\2\u085d\u085e\7\u5471\2\2\u085e\u085f\7\u2518"+ + "\2\2\u085f\u0860\7\u9424\2\2\u0860\u0861\7\u8bf4\2\2\u0861\u0862\7\u7af9"+ + "\2\2\u0862\u018a\3\2\2\2\u0863\u0864\7\u7483\2\2\u0864\u0865\7\u5269\2"+ + "\2\u0865\u0866\7\u7588\2\2\u0866\u0867\7\u9424\2\2\u0867\u0868\7\u8bf4"+ + "\2\2\u0868\u0869\7\u7af9\2\2\u0869\u086a\7\u7060\2\2\u086a\u086b\7\u70b6"+ + "\2\2\u086b\u086c\7\uffff\2\2\u086c\u086d\7\uffff\2\2\u086d\u018c\3\2\2"+ + "\2\u086e\u086f\7\u701d\2\2\u086f\u0870\7\u6940\2\2\u0870\u0871\7\u7d8d"+ + "\2\2\u0871\u018e\3\2\2\2\u0872\u0873\7\u6fcb\2\2\u0873\u0874\7\ue0a4\2"+ + "\2\u0874\u0875\7\u5398\2\2\u0875\u0876\7\u93cf\2\2\u0876\u0877\7\u5cf2"+ + "\2\2\u0877\u0878\7\u7d23\2\2\u0878\u0190\3\2\2\2\u0879\u087a\7\u674a\2"+ + "\2\u087a\u087b\7\u89c6\2\2\u087b\u087c\7\ue50d\2\2\u087c\u087d\7\u93cf"+ + "\2\2\u087d\u087e\7\u5cf2\2\2\u087e\u087f\7\u7d23\2\2\u087f\u0192\3\2\2"+ + "\2\u0880\u0881\7\u7f00\2\2\u0881\u0882\7\u57b0\2\2\u0882\u0883\7\ue196"+ + "\2\2\u0883\u0884\7\u6436\2\2\u0884\u0885\7\uffff\2\2\u0885\u0194\3\2\2"+ + "\2\u0886\u0887\7\u936b\2\2\u0887\u0888\7\u54c6\2\2\u0888\u0889\7\u5671"+ + "\2\2\u0889\u088a\7\u7f00\2\2\u088a\u088b\7\uffff\2\2\u088b\u0196\3\2\2"+ + "\2\u088c\u088d\7|\2\2\u088d\u088e\7\u934c\2\2\u088e\u088f\7\uffff\2\2"+ + "\u088f\u0198\3\2\2\2\u0890\u0891\7\u7f03\2\2\u0891\u0892\7\u6a3c\2\2\u0892"+ + "\u0893\7\u57d9\2\2\u0893\u0894\7\u93c4\2\2\u0894\u0895\7\u56ea\2\2\u0895"+ + "\u0896\7\u6e72\2\2\u0896\u019a\3\2\2\2\u0897\u0898\7\u93cf\2\2\u0898\u0899"+ + "\7\u5cf2\2\2\u0899\u089a\7\u7d23\2\2\u089a\u019c\3\2\2\2\u089b\u089c\7"+ + "\u93ca\2\2\u089c\u089d\7\uffff\2\2\u089d\u089e\7\u6fb8\2\2\u089e\u089f"+ + "\7\u0445\2\2\u089f\u08a0\7\ue196\2\2\u08a0\u08a1\7\u6436\2\2\u08a1\u08a2"+ + "\7\uffff\2\2\u08a2\u019e\3\2\2\2\u08a3\u08a4\7\u7f03\2\2\u08a4\u08a5\7"+ + "\u6a3c\2\2\u08a5\u08a6\7\u57d9\2\2\u08a6\u08a7\7\u93bd\2\2\u08a7\u08a8"+ + "\7\u5fdc\2\2\u08a8\u08a9\7\u7ae1\2\2\u08a9\u08aa\7\u93c4\2\2\u08aa\u08ab"+ + "\7\u56ea\2\2\u08ab\u08ac\7\u6e72\2\2\u08ac\u01a0\3\2\2\2\u08ad\u08ae\7"+ + "\u7f03\2\2\u08ae\u08af\7\u6a3c\2\2\u08af\u08b0\7\u57d9\2\2\u08b0\u08b1"+ + "\7\u6fb8\2\2\u08b1\u08b2\7\u6c35\2\2\u08b2\u08b3\7\ue513\2\2\u08b3\u08b4"+ + "\7\u93c4\2\2\u08b4\u08b5\7\u56ea\2\2\u08b5\u08b6\7\u6e72\2\2\u08b6\u01a2"+ + "\3\2\2\2\u08b7\u08b8\7\u701d\2\2\u08b8\u08b9\7\u6940\2\2\u08b9\u08ba\7"+ + "\u7d8d\2\2\u08ba\u08bb\7\u6fb8\2\2\u08bb\u08bc\7\u0445\2\2\u08bc\u08bd"+ + "\7\u76ae\2\2\u08bd\u01a4\3\2\2\2\u08be\u08bf\7\u7f03\2\2\u08bf\u08c0\7"+ + "\u6a3c\2\2\u08c0\u08c1\7\u57d9\2\2\u08c1\u08c2\7\u942f\2\2\u08c2\u08c3"+ + "\7\u2543\2\2\u08c3\u08c4\7\u8232\2\2\u08c4\u01a6\3\2\2\2\u08c5\u08c6\7"+ + "\u7f03\2\2\u08c6\u08c7\7\u6a3c\2\2\u08c7\u08c8\7\u57d9\2\2\u08c8\u08c9"+ + "\7\u942f\2\2\u08c9\u08ca\7\u2543\2\2\u08ca\u08cb\7\u8232\2\2\u08cb\u08cc"+ + "\7\u674a\2\2\u08cc\u08cd\7\u89c6\2\2\u08cd\u08ce\7\ue50d\2\2\u08ce\u01a8"+ + "\3\2\2\2\u08cf\u08d0\7\u7f00\2\2\u08d0\u08d1\7\u57b0\2\2\u08d1\u08d2\7"+ + "\ue196\2\2\u08d2\u01aa\3\2\2\2\u08d3\u08d4\7\u7f03\2\2\u08d4\u08d5\7\u6a3c"+ + "\2\2\u08d5\u08d6\7\u57d9\2\2\u08d6\u08d7\7\u7f00\2\2\u08d7\u08d8\7\u6310"+ + "\2\2\u08d8\u08d9\7\ue18e\2\2\u08d9\u01ac\3\2\2\2\u08da\u08db\7\u7f03\2"+ + "\2\u08db\u08dc\7\u5824\2\2\u08dc\u08dd\7\u5065\2\2\u08dd\u08de\7\u934f"+ + "\2\2\u08de\u08df\7\u5fd7\2\2\u08df\u08e0\7\u790e\2\2\u08e0\u01ae\3\2\2"+ + "\2\u08e1\u08e2\7\u7f03\2\2\u08e2\u08e3\7\u6a3c\2\2\u08e3\u08e4\7\u57d9"+ + "\2\2\u08e4\u08e5\7\u7ee2\2\2\u08e5\u08e6\7\ue160\2\2"; + private static final String _serializedATNSegment1 = + "\u08e6\u08e7\7\u3056\2\2\u08e7\u01b0\3\2\2\2\u08e8\u08e9\7\u7f03\2\2\u08e9"+ + "\u08ea\7\u6a3c\2\2\u08ea\u08eb\7\u57d9\2\2\u08eb\u08ec\7\u6fb8\2\2\u08ec"+ + "\u08ed\7\u6c35\2\2\u08ed\u08ee\7\u7ae1\2\2\u08ee\u08ef\7\u8932\2\2\u08ef"+ + "\u08f0\7\uffff\2\2\u08f0\u01b2\3\2\2\2\u08f1\u08f2\7\u6926\2\2\u08f2\u08f3"+ + "\7\u5243\2\2\u08f3\u08f4\7\u5065\2\2\u08f4\u08f5\7\u934f\2\2\u08f5\u08f6"+ + "\7\u5fd7\2\2\u08f6\u08f7\7\u790e\2\2\u08f7\u08f8\7\u9354\2\2\u08f8\u08f9"+ + "\7\u6946\2\2\u08f9\u08fa\7\u3005\2\2\u08fa\u01b4\3\2\2\2\u08fb\u08fc\7"+ + "\u7f03\2\2\u08fc\u08fd\7\u6a3c\2\2\u08fd\u08fe\7\u57d9\2\2\u08fe\u08ff"+ + "\7\u6fb8\2\2\u08ff\u0900\7\u6c35\2\2\u0900\u0901\7\u7ae1\2\2\u0901\u0902"+ + "\7\u8932\2\2\u0902\u0903\7\u3225\2\2\u0903\u0904\7\u7ae1\2\2\u0904\u0905"+ + "\7\u5999\2\2\u0905\u0906\7\uffff\2\2\u0906\u01b6\3\2\2\2\u0907\u0908\7"+ + "\u7f03\2\2\u0908\u0909\7\u6a3c\2\2\u0909\u090a\7\u57d9\2\2\u090a\u090b"+ + "\7\u9368\2\2\u090b\u090c\7\uffff\2\2\u090c\u01b8\3\2\2\2\u090d\u090e\7"+ + "\u9368\2\2\u090e\u090f\7\u55d9\2\2\u090f\u0910\7\u7e40\2\2\u0910\u01ba"+ + "\3\2\2\2\u0911\u0912\7\u9359\2\2\u0912\u0913\7\u5a44\2\2\u0913\u0914\7"+ + "\u7de0\2\2\u0914\u01bc\3\2\2\2\u0915\u0916\7\u7f03\2\2\u0916\u0917\7\u6a3c"+ + "\2\2\u0917\u0918\7\u57d9\2\2\u0918\u0919\7\u9368\2\2\u0919\u091a\7\u55dc"+ + "\2\2\u091a\u091b\7\u7ae1\2\2\u091b\u091c\7\u5999\2\2\u091c\u091d\7\uffff"+ + "\2\2\u091d\u01be\3\2\2\2\u091e\u091f\7\u7f03\2\2\u091f\u0920\7\u6a3c\2"+ + "\2\u0920\u0921\7\u57d9\2\2\u0921\u0922\7\u9367\2\2\u0922\u0923\7\u5269"+ + "\2\2\u0923\u0924\7\u5898\2\2\u0924\u01c0\3\2\2\2\u0925\u0926\7\u7f03\2"+ + "\2\u0926\u0927\7\u6a3c\2\2\u0927\u0928\7\u57d9\2\2\u0928\u0929\7\u9367"+ + "\2\2\u0929\u092a\7\u70ae\2\2\u092a\u092b\7\u7225\2\2\u092b\u01c2\3\2\2"+ + "\2\u092c\u092d\7\u7f03\2\2\u092d\u092e\7\u6a3c\2\2\u092e\u092f\7\u57d9"+ + "\2\2\u092f\u0930\7\u9475\2\2\u0930\u0931\7\u5c80\2\2\u0931\u0932\7\u6adb"+ + "\2\2\u0932\u0933\7\u9367\2\2\u0933\u0934\7\uffff\2\2\u0934\u01c4\3\2\2"+ + "\2\u0935\u0936\7\u7f03\2\2\u0936\u0937\7\u6a3c\2\2\u0937\u0938\7\u57d9"+ + "\2\2\u0938\u0939\7\u95c4\2\2\u0939\u093a\7\ue048\2\2\u093a\u093b\7\u510c"+ + "\2\2\u093b\u093c\7\u9351\2\2\u093c\u093d\7\u590d\2\2\u093d\u093e\7\u7225"+ + "\2\2\u093e\u01c6\3\2\2\2\u093f\u0940\7\u5a15\2\2\u0940\u0941\7\u5476\2"+ + "\2\u0941\u0942\7\u6ad0\2\2\u0942\u0943\7\u95c4\2\2\u0943\u0944\7\ue048"+ + "\2\2\u0944\u0945\7\u510c\2\2\u0945\u0946\7\u9351\2\2\u0946\u0947\7\u590d"+ + "\2\2\u0947\u0948\7\u7225\2\2\u0948\u01c8\3\2\2\2\u0949\u094a\7\u9479\2"+ + "\2\u094a\u094b\7\ue046\2\2\u094b\u094c\7\u7580\2\2\u094c\u094d\7\u6d96"+ + "\2\2\u094d\u094e\7\u590b\2\2\u094e\u094f\7\u7c2a\2\2\u094f\u0950\7\u6d62"+ + "\2\2\u0950\u0951\7\uffff\2\2\u0951\u01ca\3\2\2\2\u0952\u0953\7\u9479\2"+ + "\2\u0953\u0954\7\ue046\2\2\u0954\u0955\7\u7580\2\2\u0955\u0956\7\u6d96"+ + "\2\2\u0956\u0957\7\u584b\2\2\u0957\u0958\7U\2\2\u0958\u0959\7\u9476\2"+ + "\2\u0959\u095a\7\u6c2f\2\2\u095a\u095b\7\u6e72\2\2\u095b\u01cc\3\2\2\2"+ + "\u095c\u095d\7\u6d95\2\2\u095d\u095e\7\u5d8a\2\2\u095e\u095f\7\u569e\2"+ + "\2\u095f\u0960\7\u9356\2\2\u0960\u0961\7\u3128\2\2\u0961\u0962\7\u58bf"+ + "\2\2\u0962\u0963\7\u741d\2\2\u0963\u0964\7\u5c7e\2\2\u0964\u0965\7\u7b07"+ + "\2\2\u0965\u0966\7\u6d95\2\2\u0966\u0967\7\uffff\2\2\u0967\u0968\7\u6d95"+ + "\2\2\u0968\u0969\7\ue045\2\2\u0969\u096a\7\u7c2a\2\2\u096a\u096b\7\u6d62"+ + "\2\2\u096b\u096c\7\uffff\2\2\u096c\u01ce\3\2\2\2\u096d\u096e\7?\2\2\u096e"+ + "\u096f\7?\2\2\u096f\u0970\7?\2\2\u0970\u0971\7\"\2\2\u0971\u0972\7u\2"+ + "\2\u0972\u0973\7v\2\2\u0973\u0974\7c\2\2\u0974\u0975\7v\2\2\u0975\u0976"+ + "\7g\2\2\u0976\u0977\7o\2\2\u0977\u0978\7g\2\2\u0978\u0979\7p\2\2\u0979"+ + "\u097a\7v\2\2\u097a\u097b\7\"\2\2\u097b\u097c\7`\2\2\u097c\u097d\7\"\2"+ + "\2\u097d\u097e\7?\2\2\u097e\u097f\7?\2\2\u097f\u0980\7?\2\2\u0980\u0981"+ + "\7\"\2\2\u0981\u0982\7g\2\2\u0982\u0983\7z\2\2\u0983\u0984\7r\2\2\u0984"+ + "\u0985\7t\2\2\u0985\u0986\7g\2\2\u0986\u0987\7u\2\2\u0987\u0988\7u\2\2"+ + "\u0988\u0989\7k\2\2\u0989\u098a\7q\2\2\u098a\u098b\7p\2\2\u098b\u098c"+ + "\7\"\2\2\u098c\u098d\7x\2\2\u098d\u098e\7\"\2\2\u098e\u098f\7?\2\2\u098f"+ + "\u0990\7?\2\2\u0990\u0991\7?\2\2\u0991\u01d0\3\2\2\2\u0992\u0993\7\u95ca"+ + "\2\2\u0993\u0994\7\uffff\2\2\u0994\u01d2\3\2\2\2\u0995\u0996\7\u941b\2"+ + "\2\u0996\u0997\7\ue104\2\2\u0997\u0998\7\u73dd\2\2\u0998\u0999\7\u5bf0"+ + "\2\2\u0999\u099a\7\uffff\2\2\u099a\u099b\7\u9351\2\2\u099b\u099c\7\uffff"+ + "\2\2\u099c\u01d4\3\2\2\2\u099d\u099e\7u\2\2\u099e\u099f\7f\2\2\u099f\u09a0"+ + "\7g\2\2\u09a0\u09a1\7k\2\2\u09a1\u09a2\7t\2\2\u09a2\u09a3\7w\2\2\u09a3"+ + "\u09a4\7i\2\2\u09a4\u09a5\7j\2\2\u09a5\u09a6\7x\2\2\u09a6\u09a7\7w\2\2"+ + "\u09a7\u09a8\7k\2\2\u09a8\u09a9\7{\2\2\u09a9\u09aa\7c\2\2\u09aa\u09ab"+ + "\7u\2\2\u09ab\u09ac\7f\2\2\u09ac\u09ad\7g\2\2\u09ad\u09af\7d\2\2\u09ae"+ + "\u099d\3\2\2\2\u09af\u09b0\3\2\2\2\u09b0\u09ae\3\2\2\2\u09b0\u09b1\3\2"+ + "\2\2\u09b1\u01d6\3\2\2\2\u09b2\u09b3\7u\2\2\u09b3\u09b4\7f\2\2\u09b4\u09b5"+ + "\7g\2\2\u09b5\u09b6\7k\2\2\u09b6\u09b7\7t\2\2\u09b7\u09b8\7w\2\2\u09b8"+ + "\u09b9\7i\2\2\u09b9\u09ba\7j\2\2\u09ba\u09bb\7x\2\2\u09bb\u09bc\7w\2\2"+ + "\u09bc\u09bd\7k\2\2\u09bd\u09be\7{\2\2\u09be\u09bf\7c\2\2\u09bf\u09c0"+ + "\7u\2\2\u09c0\u09c1\7f\2\2\u09c1\u09c2\7d\2\2\u09c2\u09c4\7g\2\2\u09c3"+ + "\u09b2\3\2\2\2\u09c4\u09c5\3\2\2\2\u09c5\u09c3\3\2\2\2\u09c5\u09c6\3\2"+ + "\2\2\u09c6\u01d8\3\2\2\2\u09c7\u09c8\7u\2\2\u09c8\u09c9\7f\2\2\u09c9\u09ca"+ + "\7g\2\2\u09ca\u09cb\7k\2\2\u09cb\u09cc\7t\2\2\u09cc\u09cd\7w\2\2\u09cd"+ + "\u09ce\7i\2\2\u09ce\u09cf\7j\2\2\u09cf\u09d0\7x\2\2\u09d0\u09d1\7w\2\2"+ + "\u09d1\u09d2\7k\2\2\u09d2\u09d3\7{\2\2\u09d3\u09d4\7c\2\2\u09d4\u09d5"+ + "\7u\2\2\u09d5\u09d6\7d\2\2\u09d6\u09d7\7f\2\2\u09d7\u09d9\7g\2\2\u09d8"+ + "\u09c7\3\2\2\2\u09d9\u09da\3\2\2\2\u09da\u09d8\3\2\2\2\u09da\u09db\3\2"+ + "\2\2\u09db\u01da\3\2\2\2\u09dc\u09dd\7\u59a6\2\2\u09dd\u09de\7\u7150\2"+ + "\2\u09de\u09df\7\u7732\2\2\u09df\u09e0\7K\2\2\u09e0\u09ec\7F\2\2\u09e1"+ + "\u09e2\7\u9355\2\2\u09e2\u09e3\7\u5d86\2\2\u09e3\u09e4\7\u7af6\2\2\u09e4"+ + "\u09e5\7\u59a6\2\2\u09e5\u09ec\7\uffff\2\2\u09e6\u09e7\7\u935c\2\2\u09e7"+ + "\u09e8\7\u5e9f\2\2\u09e8\u09e9\7\u7af6\2\2\u09e9\u09ea\7\u59a6\2\2\u09ea"+ + "\u09ec\7\uffff\2\2\u09eb\u09dc\3\2\2\2\u09eb\u09e1\3\2\2\2\u09eb\u09e6"+ + "\3\2\2\2\u09ec\u01dc\3\2\2\2\u09ed\u09ee\7\u9369\2\2\u09ee\u09ef\7\u612f"+ + "\2\2\u09ef\u0a15\7\u7225\2\2\u09f0\u09f1\7\u6d95\2\2\u09f1\u09f2\7\u5a45"+ + "\2\2\u09f2\u09f3\7\u30be\2\2\u09f3\u09f4\7\u59cc\2\2\u09f4\u0a15\7\uffff"+ + "\2\2\u09f5\u09f6\7\u6d95\2\2\u09f6\u09f7\7\u5b2d\2\2\u09f7\u09f8\7\u30be"+ + "\2\2\u09f8\u09f9\7\u59cc\2\2\u09f9\u0a15\7\uffff\2\2\u09fa\u09fb\7\u6dc9"+ + "\2\2\u09fb\u09fc\7\u6fc9\2\2\u09fc\u09fd\7\u5bd6\2\2\u09fd\u09fe\7\u6d95"+ + "\2\2\u09fe\u09ff\7\u5d87\2\2\u09ff\u0a15\7\u5f4b\2\2\u0a00\u0a01\7\u6d95"+ + "\2\2\u0a01\u0a02\7\ue160\2\2\u0a02\u0a03\7\u7e40\2\2\u0a03\u0a04\7\u7037"+ + "\2\2\u0a04\u0a05\7\u572f\2\2\u0a05\u0a06\7\u0420\2\2\u0a06\u0a07\7\u9412"+ + "\2\2\u0a07\u0a15\7\uffff\2\2\u0a08\u0a09\7z\2\2\u0a09\u0a0a\7\u7037\2"+ + "\2\u0a0a\u0a0b\7\u572f\2\2\u0a0b\u0a0c\7\u0420\2\2\u0a0c\u0a0d\7\u9412"+ + "\2\2\u0a0d\u0a15\7\uffff\2\2\u0a0e\u0a0f\7{\2\2\u0a0f\u0a10\7\u7037\2"+ + "\2\u0a10\u0a11\7\u572f\2\2\u0a11\u0a12\7\u0420\2\2\u0a12\u0a13\7\u9412"+ + "\2\2\u0a13\u0a15\7\uffff\2\2\u0a14\u09ed\3\2\2\2\u0a14\u09f0\3\2\2\2\u0a14"+ + "\u09f5\3\2\2\2\u0a14\u09fa\3\2\2\2\u0a14\u0a00\3\2\2\2\u0a14\u0a08\3\2"+ + "\2\2\u0a14\u0a0e\3\2\2\2\u0a15\u01de\3\2\2\2\u0a16\u0a17\7\u6d95\2\2\u0a17"+ + "\u0a18\7\u5d88\2\2\u0a18\u0a19\7\u657e\2\2\u0a19\u0a1a\7\u935b\2\2\u0a1a"+ + "\u0a2b\7\uffff\2\2\u0a1b\u0a1c\7\u74bc\2\2\u0a1c\u0a1d\7\u6fca\2\2\u0a1d"+ + "\u0a1e\7\ue789\2\2\u0a1e\u0a1f\7\u6926\2\2\u0a1f\u0a20\7\u5817\2\2\u0a20"+ + "\u0a2b\7\u5136\2\2\u0a21\u0a22\7\u7060\2\2\u0a22\u0a23\7\u546e\2\2\u0a23"+ + "\u0a2b\7\u8153\2\2\u0a24\u0a25\7\u74bc\2\2\u0a25\u0a26\7\u6fca\2\2\u0a26"+ + "\u0a27\7\ue789\2\2\u0a27\u0a28\7\u6436\2\2\u0a28\u0a29\7\u66e4\2\2\u0a29"+ + "\u0a2b\7\u5136\2\2\u0a2a\u0a16\3\2\2\2\u0a2a\u0a1b\3\2\2\2\u0a2a\u0a21"+ + "\3\2\2\2\u0a2a\u0a24\3\2\2\2\u0a2b\u01e0\3\2\2\2\u0a2c\u0a2d\7\u6d95\2"+ + "\2\u0a2d\u0a2e\7\u5d88\2\2\u0a2e\u0a2f\7\u657e\2\2\u0a2f\u0a30\7\u935b"+ + "\2\2\u0a30\u0a42\7\uffff\2\2\u0a31\u0a32\7\u5bba\2\2\u0a32\u0a33\7\ufe42"+ + "\2\2\u0a33\u0a34\7\ue1f0\2\2\u0a34\u0a35\7\u69bd\2\2\u0a35\u0a42\7\uffff"+ + "\2\2\u0a36\u0a37\7\u5bba\2\2\u0a37\u0a38\7\ufe42\2\2\u0a38\u0a39\7\u5f7a"+ + "\2\2\u0a39\u0a3a\7\u7060\2\2\u0a3a\u0a3b\7\u546e\2\2\u0a3b\u0a42\7\u8153"+ + "\2\2\u0a3c\u0a3d\7\u935b\2\2\u0a3d\u0a3e\7\u51b4\2\2\u0a3e\u0a3f\7\ue1f0"+ + "\2\2\u0a3f\u0a40\7\u69bd\2\2\u0a40\u0a42\7\uffff\2\2\u0a41\u0a2c\3\2\2"+ + "\2\u0a41\u0a31\3\2\2\2\u0a41\u0a36\3\2\2\2\u0a41\u0a3c\3\2\2\2\u0a42\u01e2"+ + "\3\2\2\2\u0a43\u0a44\7\u6d95\2\2\u0a44\u0a45\7\u5d88\2\2\u0a45\u0a46\7"+ + "\u657e\2\2\u0a46\u0a47\7\u935b\2\2\u0a47\u0a57\7\uffff\2\2\u0a48\u0a49"+ + "\7\u6926\2\2\u0a49\u0a4a\7\u5817\2\2\u0a4a\u0a57\7\u5136\2\2\u0a4b\u0a4c"+ + "\7\u7060\2\2\u0a4c\u0a4d\7\u546e\2\2\u0a4d\u0a57\7\u8153\2\2\u0a4e\u0a4f"+ + "\7\u93cf\2\2\u0a4f\u0a50\7\u56e9\2\2\u0a50\u0a51\7\u5671\2\2\u0a51\u0a52"+ + "\7\u934c\2\2\u0a52\u0a57\7\uffff\2\2\u0a53\u0a54\7\u6436\2\2\u0a54\u0a55"+ + "\7\u66e4\2\2\u0a55\u0a57\7\u5136\2\2\u0a56\u0a43\3\2\2\2\u0a56\u0a48\3"+ + "\2\2\2\u0a56\u0a4b\3\2\2\2\u0a56\u0a4e\3\2\2\2\u0a56\u0a53\3\2\2\2\u0a57"+ + "\u01e4\3\2\2\2\u0a58\u0a59\7\u95b4\2\2\u0a59\u0a5a\7\u621f\2\2\u0a5a\u0a5f"+ + "\7\u7af7\2\2\u0a5b\u0a5c\7\u7f03\2\2\u0a5c\u0a5d\7\u5fdd\2\2\u0a5d\u0a5f"+ + "\7\u735b\2\2\u0a5e\u0a58\3\2\2\2\u0a5e\u0a5b\3\2\2\2\u0a5f\u01e6\3\2\2"+ + "\2\u0a60\u0a6f\t\2\2\2\u0a61\u0a62\7?\2\2\u0a62\u0a6f\7?\2\2\u0a63\u0a64"+ + "\7#\2\2\u0a64\u0a6f\7?\2\2\u0a65\u0a6f\t\3\2\2\u0a66\u0a67\7@\2\2\u0a67"+ + "\u0a6f\7?\2\2\u0a68\u0a69\7>\2\2\u0a69\u0a6f\7?\2\2\u0a6a\u0a6b\7\u935e"+ + "\2\2\u0a6b\u0a6f\7\uffff\2\2\u0a6c\u0a6d\7\u93b6\2\2\u0a6d\u0a6f\7\uffff"+ + "\2\2\u0a6e\u0a60\3\2\2\2\u0a6e\u0a61\3\2\2\2\u0a6e\u0a63\3\2\2\2\u0a6e"+ + "\u0a65\3\2\2\2\u0a6e\u0a66\3\2\2\2\u0a6e\u0a68\3\2\2\2\u0a6e\u0a6a\3\2"+ + "\2\2\u0a6e\u0a6c\3\2\2\2\u0a6f\u01e8\3\2\2\2\u0a70\u0a71\7\u93c5\2\2\u0a71"+ + "\u0a79\7\uffff\2\2\u0a72\u0a73\7\u95c8\2\2\u0a73\u0a79\7\uffff\2\2\u0a74"+ + "\u0a75\7\u95c8\2\2\u0a75\u0a79\7\uffff\2\2\u0a76\u0a77\7\u95c8\2\2\u0a77"+ + "\u0a79\7\uffff\2\2\u0a78\u0a70\3\2\2\2\u0a78\u0a72\3\2\2\2\u0a78\u0a74"+ + "\3\2\2\2\u0a78\u0a76\3\2\2\2\u0a79\u01ea\3\2\2\2\u0a7a\u0a7b\7\u6d95\2"+ + "\2\u0a7b\u0a7c\7\u5d88\2\2\u0a7c\u0a7d\7\u657e\2\2\u0a7d\u0a7e\7\u935b"+ + "\2\2\u0a7e\u0a8c\7\uffff\2\2\u0a7f\u0a80\7\u6d95\2\2\u0a80\u0a81\7\u5d87"+ + "\2\2\u0a81\u0a82\7\u5f74\2\2\u0a82\u0a83\7\u95ad\2\2\u0a83\u0a84\7\u6c35"+ + "\2\2\u0a84\u0a8c\7\ue513\2\2\u0a85\u0a86\7\u935b\2\2\u0a86\u0a87\7\ue21b"+ + "\2\2\u0a87\u0a88\7\u4e94\2\2\u0a88\u0a89\7\u95ad\2\2\u0a89\u0a8a\7\u6c35"+ + "\2\2\u0a8a\u0a8c\7\ue513\2\2\u0a8b\u0a7a\3\2\2\2\u0a8b\u0a7f\3\2\2\2\u0a8b"+ + "\u0a85\3\2\2\2\u0a8c\u01ec\3\2\2\2\u0a8d\u0a8e\7\u6d95\2\2\u0a8e\u0a8f"+ + "\7\u5d88\2\2\u0a8f\u0a90\7\u657e\2\2\u0a90\u0a91\7\u935b\2\2\u0a91\u0a9f"+ + "\7\uffff\2\2\u0a92\u0a93\7\u7483\2\2\u0a93\u0a94\7\u53e7\2\2\u0a94\u0a95"+ + "\7\u8d21\2\2\u0a95\u0a96\7\u7ef0\2\2\u0a96\u0a97\7\u6940\2\2\u0a97\u0a9f"+ + "\7\u7d8d\2\2\u0a98\u0a99\7\u935b\2\2\u0a99\u0a9a\7\u682a\2\2\u0a9a\u0a9b"+ + "\7\u79f9\2\2\u0a9b\u0a9c\7\u7ef0\2\2\u0a9c\u0a9d\7\u6940\2\2\u0a9d\u0a9f"+ + "\7\u7d8d\2\2\u0a9e\u0a8d\3\2\2\2\u0a9e\u0a92\3\2\2\2\u0a9e\u0a98\3\2\2"+ + "\2\u0a9f\u01ee\3\2\2\2\u0aa0\u0aa1\7\u9475\2\2\u0aa1\u0aa2\7\u5c80\2\2"+ + "\u0aa2\u0aa3\7\u6adb\2\2\u0aa3\u0aa4\7\u7060\2\2\u0aa4\u0aab\7\uffff\2"+ + "\2\u0aa5\u0aa6\7\u9355\2\2\u0aa6\u0aa7\7\u5d88\2\2\u0aa7\u0aa8\7\u6adb"+ + "\2\2\u0aa8\u0aa9\7\u7060\2\2\u0aa9\u0aab\7\uffff\2\2\u0aaa\u0aa0\3\2\2"+ + "\2\u0aaa\u0aa5\3\2\2\2\u0aab\u01f0\3\2\2\2\u0aac\u0aad\7\u6d5e\2\2\u0aad"+ + "\u0aae\7\u5b2b\2\2\u0aae\u0ac6\7\u6b24\2\2\u0aaf\u0ab0\7\u93b6\2\2\u0ab0"+ + "\u0ab1\7\u6a3c\2\2\u0ab1\u0ab2\7\u6099\2\2\u0ab2\u0ab3\7\u6d5e\2\2\u0ab3"+ + "\u0ab4\7\u5b2b\2\2\u0ab4\u0ac6\7\u6b24\2\2\u0ab5\u0ab6\7\u95ae\2\2\u0ab6"+ + "\u0ab7\7\u64b5\2\2\u0ab7\u0ab8\7\u5401\2\2\u0ab8\u0ab9\7\u935c\2\2\u0ab9"+ + "\u0aba\7\u5e9f\2\2\u0aba\u0abb\7\u7c2a\2\2\u0abb\u0abc\7\u6d62\2\2\u0abc"+ + "\u0ac6\7\uffff\2\2\u0abd\u0abe\7\u5bf0\2\2\u0abe\u0abf\7\uffff\2\2\u0abf"+ + "\u0ac0\7\u95c4\2\2\u0ac0\u0ac1\7\u3127\2\2\u0ac1\u0ac2\7\u6099\2\2\u0ac2"+ + "\u0ac3\7\u6d5e\2\2\u0ac3\u0ac4\7\u5b2b\2\2\u0ac4\u0ac6\7\u6b24\2\2\u0ac5"+ + "\u0aac\3\2\2\2\u0ac5\u0aaf\3\2\2\2\u0ac5\u0ab5\3\2\2\2\u0ac5\u0abd\3\2"+ + "\2\2\u0ac6\u01f2\3\2\2\2\u0ac7\u0ac8\7\u59a6\2\2\u0ac8\u0ac9\7\u7150\2"+ + "\2\u0ac9\u0aca\7\u7732\2\2\u0aca\u0acb\7\u6d95\2\2\u0acb\u0acc\7\ue161"+ + "\2\2\u0acc\u0acd\7\u6785\2\2\u0acd\u0ace\7\u935c\2\2\u0ace\u0b49\7\uffff"+ + "\2\2\u0acf\u0ad0\7\u941a\2\2\u0ad0\u0ad1\7\u8237\2\2\u0ad1\u0ad2\7\uffff"+ + "\2\2\u0ad2\u0ad3\7\u4f7b\2\2\u0ad3\u0ad4\7\u7230\2\2\u0ad4\u0ad5\7\u935c"+ + "\2\2\u0ad5\u0ad6\7\u5d89\2\2\u0ad6\u0b49\7\u0420\2\2\u0ad7\u0ad8\7\u9475"+ + "\2\2\u0ad8\u0ad9\7\u85cb\2\2\u0ad9\u0ada\7\u60c3\2\2\u0ada\u0adb\7\u6d65"+ + "\2\2\u0adb\u0adc\7\u8dea\2\2\u0adc\u0add\7\u6566\2\2\u0add\u0ade\7\u59a6"+ + "\2\2\u0ade\u0adf\7\u95f6\2\2\u0adf\u0b49\7\u7d38\2\2\u0ae0\u0ae1\7\u9475"+ + "\2\2\u0ae1\u0ae2\7\u85cb\2\2\u0ae2\u0ae3\7\u60c3\2\2\u0ae3\u0ae4\7\u93b7"+ + "\2\2\u0ae4\u0ae5\7\u64b5\2\2\u0ae5\u0ae6\7\u7d13\2\2\u0ae6\u0ae7\7\u8e49"+ + "\2\2\u0ae7\u0ae8\7\ue0a5\2\2\u0ae8\u0ae9\7\u5d50\2\2\u0ae9\u0aea\7\u9361"+ + "\2\2\u0aea\u0aeb\7\u55d9\2\2\u0aeb\u0b49\7\u7c37\2\2\u0aec\u0aed\7\u93c6"+ + "\2\2\u0aed\u0aee\7\ue21c\2\2\u0aee\u0aef\7\u60c3\2\2\u0aef\u0af0\7\u6d95"+ + "\2\2\u0af0\u0af1\7\u5d87\2\2\u0af1\u0af2\7\u5f74\2\2\u0af2\u0af3\7\u5a36"+ + "\2\2\u0af3\u0af4\7\u5fdc\2\2\u0af4\u0af5\7\ue74f\2\2\u0af5\u0af6\7\u9368"+ + "\2\2\u0af6\u0af7\7\u6781\2\2\u0af7\u0b49\7\u6d5a\2\2\u0af8\u0af9\7\u93c6"+ + "\2\2\u0af9\u0afa\7\ue21c\2\2\u0afa\u0afb\7\u60c3\2\2\u0afb\u0afc\7\u6d95"+ + "\2\2\u0afc\u0afd\7\u5d87\2\2\u0afd\u0afe\7\u5f74\2\2\u0afe\u0aff\7\u942e"+ + "\2\2\u0aff\u0b00\7\ue106\2\2\u0b00\u0b01\7\u6901\2\2\u0b01\u0b02\7\u7ecb"+ + "\2\2\u0b02\u0b03\7\u8bf4\2\2\u0b03\u0b49\7\u59eb\2\2\u0b04\u0b05\7\u699d"+ + "\2\2\u0b05\u0b06\7\u6a41\2\2\u0b06\u0b07\7\ue17d\2\2\u0b07\u0b08\7\u9368"+ + "\2\2\u0b08\u0b09\7\u4f36\2\2\u0b09\u0b0a\7\u6f72\2\2\u0b0a\u0b0b\7K\2"+ + "\2\u0b0b\u0b49\7F\2\2\u0b0c\u0b0d\7\u59a6\2\2\u0b0d\u0b0e\7\u7150\2\2"+ + "\u0b0e\u0b0f\7\u7732\2\2\u0b0f\u0b10\7\u7492\2\2\u0b10\u0b11\7\u6753\2"+ + "\2\u0b11\u0b49\7\u6d5a\2\2\u0b12\u0b13\7\u703b\2\2\u0b13\u0b14\7\u6fca"+ + "\2\2\u0b14\u0b15\7\u7178\2\2\u0b15\u0b16\7\u741d\2\2\u0b16\u0b17\7\uffff"+ + "\2\2\u0b17\u0b18\7\u9423\2\2\u0b18\u0b19\7\u8237\2\2\u0b19\u0b1a\7\u6667"+ + "\2\2\u0b1a\u0b1b\7\u93cd\2\2\u0b1b\u0b49\7\uffff\2\2\u0b1c\u0b1d\7\u6d95"+ + "\2\2\u0b1d\u0b1e\7\u5a45\2\2\u0b1e\u0b1f\7\u30be\2\2\u0b1f\u0b20\7\u9412"+ + "\2\2\u0b20\u0b21\7\u7472\2\2\u0b21\u0b22\7\u6f59\2\2\u0b22\u0b23\7\u93cf"+ + "\2\2\u0b23\u0b49\7\uffff\2\2\u0b24\u0b25\7\u6d95\2\2\u0b25\u0b26\7\u5b2d"+ + "\2\2\u0b26\u0b27\7\u30be\2\2\u0b27\u0b28\7\u9412\2\2\u0b28\u0b29\7\u7472"+ + "\2\2\u0b29\u0b2a\7\u6f59\2\2\u0b2a\u0b2b\7\u93cf\2\2\u0b2b\u0b49\7\uffff"+ + "\2\2\u0b2c\u0b2d\7\u9475\2\2\u0b2d\u0b2e\7\u5c80\2\2\u0b2e\u0b2f\7\u6adb"+ + "\2\2\u0b2f\u0b30\7\u95cc\2\2\u0b30\u0b31\7\u5147\2\2\u0b31\u0b49\7\u7bb2"+ + "\2\2\u0b32\u0b33\7\u9424\2\2\u0b33\u0b34\7\u5a5c\2\2\u0b34\u0b35\7\u6f72"+ + "\2\2\u0b35\u0b36\7\u947b\2\2\u0b36\u0b37\7\u8338\2\2\u0b37\u0b49\7\u76a1"+ + "\2\2\u0b38\u0b39\7\u6fb8\2\2\u0b39\u0b3a\7\u2544\2\2\u0b3a\u0b3b\7\u76b7"+ + "\2\2\u0b3b\u0b3c\7\u935e\2\2\u0b3c\u0b3d\7\u5c7f\2\2\u0b3d\u0b3e\7\u5df3"+ + "\2\2\u0b3e\u0b3f\7\u6436\2\2\u0b3f\u0b49\7\uffff\2\2\u0b40\u0b41\7\u93c6"+ + "\2\2\u0b41\u0b42\7\ue21c\2\2\u0b42\u0b43\7\u60c3\2\2\u0b43\u0b44\7\u9368"+ + "\2\2\u0b44\u0b45\7\u9883\2\2\u0b45\u0b46\7\u7b07\2\2\u0b46\u0b47\7\u7060"+ + "\2\2\u0b47\u0b49\7\uffff\2\2\u0b48\u0ac7\3\2\2\2\u0b48\u0acf\3\2\2\2\u0b48"+ + "\u0ad7\3\2\2\2\u0b48\u0ae0\3\2\2\2\u0b48\u0aec\3\2\2\2\u0b48\u0af8\3\2"+ + "\2\2\u0b48\u0b04\3\2\2\2\u0b48\u0b0c\3\2\2\2\u0b48\u0b12\3\2\2\2\u0b48"+ + "\u0b1c\3\2\2\2\u0b48\u0b24\3\2\2\2\u0b48\u0b2c\3\2\2\2\u0b48\u0b32\3\2"+ + "\2\2\u0b48\u0b38\3\2\2\2\u0b48\u0b40\3\2\2\2\u0b49\u01f4\3\2\2\2\u0b4a"+ + "\u0b4b\7\u9351\2\2\u0b4b\u0b4c\7\u3127\2\2\u0b4c\u0b4d\7\u772e\2\2\u0b4d"+ + "\u0b4e\7\u701d\2\2\u0b4e\u0b4f\7\u6940\2\2\u0b4f\u0bb0\7\u7d8d\2\2\u0b50"+ + "\u0b51\7\u59b1\2\2\u0b51\u0b52\7\ue046\2\2\u0b52\u0b53\7\u7748\2\2\u0b53"+ + "\u0b54\7\u5bba\2\2\u0b54\u0b55\7\ufe41\2\2\u0b55\u0b56\7\u6678\2\2\u0b56"+ + "\u0b57\7\u941a\2\2\u0b57\u0b58\7\u8237\2\2\u0b58\u0b59\7\uffff\2\2\u0b59"+ + "\u0b5a\7\u4f7b\2\2\u0b5a\u0b5b\7\u7230\2\2\u0b5b\u0b5c\7\u9475\2\2\u0b5c"+ + "\u0b5d\7\u5c80\2\2\u0b5d\u0bb0\7\u6adb\2\2\u0b5e\u0b5f\7\u7ed6\2\2\u0b5f"+ + "\u0b60\7\u6829\2\2\u0b60\u0b61\7\u7748\2\2\u0b61\u0b62\7\u6d95\2\2\u0b62"+ + "\u0b63\7\u5a45\2\2\u0b63\u0b64\7\u67e1\2\2\u0b64\u0b65\7\u941a\2\2\u0b65"+ + "\u0b66\7\u8237\2\2\u0b66\u0b67\7\uffff\2\2\u0b67\u0b68\7\u4f7b\2\2\u0b68"+ + "\u0b69\7\u7230\2\2\u0b69\u0b6a\7\u9475\2\2\u0b6a\u0b6b\7\u5c80\2\2\u0b6b"+ + "\u0bb0\7\u6adb\2\2\u0b6c\u0b6d\7\u7ed6\2\2\u0b6d\u0b6e\7\u6829\2\2\u0b6e"+ + "\u0b6f\7\u7748\2\2\u0b6f\u0b70\7\u6d95\2\2\u0b70\u0b71\7\u5b2d\2\2\u0b71"+ + "\u0b72\7\u67e1\2\2\u0b72\u0b73\7\u95ae\2\2\u0b73\u0b74\7\u64b5\2\2\u0b74"+ + "\u0b75\7\u5401\2\2\u0b75\u0b76\7\u93cf\2\2\u0b76\u0b77\7\u5fdc\2\2\u0b77"+ + "\u0b78\7\u5119\2\2\u0b78\u0b79\7\u93c7\2\2\u0b79\u0bb0\7\uffff\2\2\u0b7a"+ + "\u0b7b\7\u674a\2\2\u0b7b\u0b7c\7\u89c6\2\2\u0b7c\u0b7d\7\ue50d\2\2\u0b7d"+ + "\u0b7e\7\u68f2\2\2\u0b7e\u0b7f\7\u6ec8\2\2\u0b7f\u0bb0\7\u58cc\2\2\u0b80"+ + "\u0b81\7\u941a\2\2\u0b81\u0b82\7\u8237\2\2\u0b82\u0b83\7\uffff\2\2\u0b83"+ + "\u0b84\7\u4f7b\2\2\u0b84\u0b85\7\u7230\2\2\u0b85\u0b86\7\u93c4\2\2\u0b86"+ + "\u0b87\7\u56e9\2\2\u0b87\u0b88\7\u74e9\2\2\u0b88\u0b89\7\u947b\2\2\u0b89"+ + "\u0bb0\7\uffff\2\2\u0b8a\u0b8b\7\u95c7\2\2\u0b8b\u0b8c\7\u60e9\2\2\u0b8c"+ + "\u0b8d\7\u5bb5\2\2\u0b8d\u0b8e\7\u93c6\2\2\u0b8e\u0b8f\7\u5269\2\2\u0b8f"+ + "\u0b90\7\u305c\2\2\u0b90\u0b91\7\u93c4\2\2\u0b91\u0b92\7\u56e9\2\2\u0b92"+ + "\u0b93\7\u74e9\2\2\u0b93\u0b94\7\u947b\2\2\u0b94\u0bb0\7\uffff\2\2\u0b95"+ + "\u0b96\7\u59a6\2\2\u0b96\u0b97\7\u7150\2\2\u0b97\u0b98\7\u7732\2\2\u0b98"+ + "\u0b99\7\u6760\2\2\u0b99\u0b9a\7\ue103\2\2\u0b9a\u0b9b\7\u5d34\2\2\u0b9b"+ + "\u0b9c\7\u9475\2\2\u0b9c\u0b9d\7\u5c80\2\2\u0b9d\u0bb0\7\u6adb\2\2\u0b9e"+ + "\u0b9f\7\u59a6\2\2\u0b9f\u0ba0\7\u7150\2\2\u0ba0\u0ba1\7\u7732\2\2\u0ba1"+ + "\u0ba2\7\u6760\2\2\u0ba2\u0ba3\7\ue103\2\2\u0ba3\u0ba4\7\u5d34\2\2\u0ba4"+ + "\u0ba5\7\u93c4\2\2\u0ba5\u0ba6\7\u56e9\2\2\u0ba6\u0ba7\7\u74e9\2\2\u0ba7"+ + "\u0ba8\7\u947b\2\2\u0ba8\u0bb0\7\uffff\2\2\u0ba9\u0baa\7\u7443\2\2\u0baa"+ + "\u0bab\7\u546f\2\2\u0bab\u0bac\7\ue62e\2\2\u0bac\u0bad\7\u9354\2\2\u0bad"+ + "\u0bae\7\u6946\2\2\u0bae\u0bb0\7\u3005\2\2\u0baf\u0b4a\3\2\2\2\u0baf\u0b50"+ + "\3\2\2\2\u0baf\u0b5e\3\2\2\2\u0baf\u0b6c\3\2\2\2\u0baf\u0b7a\3\2\2\2\u0baf"+ + "\u0b80\3\2\2\2\u0baf\u0b8a\3\2\2\2\u0baf\u0b95\3\2\2\2\u0baf\u0b9e\3\2"+ + "\2\2\u0baf\u0ba9\3\2\2\2\u0bb0\u01f6\3\2\2\2\u0bb1\u0bb2\7\u741d\2\2\u0bb2"+ + "\u0bb3\7\uffff\2\2\u0bb3\u0bb4\7\u7f05\2\2\u0bb4\u0bb5\7\u621e\2\2\u0bb5"+ + "\u0bb6\7\u6fc2\2\2\u0bb6\u0bb7\7\u703b\2\2\u0bb7\u0c2d\7\uffff\2\2\u0bb8"+ + "\u0bb9\7\u6d95\2\2\u0bb9\u0bba\7\ue161\2\2\u0bba\u0bbb\7\u762a\2\2\u0bbb"+ + "\u0bbc\7\u6d7e\2\2\u0bbc\u0bbd\7\u3087\2\2\u0bbd\u0c2d\7\ue18c\2\2\u0bbe"+ + "\u0bbf\7\u741d\2\2\u0bbf\u0bc0\7\u6781\2\2\u0bc0\u0bc1\7\u6027\2\2\u0bc1"+ + "\u0bc2\7\u93c3\2\2\u0bc2\u0bc3\7\u5821\2\2\u0bc3\u0c2d\7\u704b\2\2\u0bc4"+ + "\u0bc5\7\u7f00\2\2\u0bc5\u0bc6\7\u3222\2\2\u0bc6\u0bc7\7\u7584\2\2\u0bc7"+ + "\u0bc8\7\u942f\2\2\u0bc8\u0bc9\7\u866d\2\2\u0bc9\u0bca\7\u6667\2\2\u0bca"+ + "\u0bcb\7\u93cd\2\2\u0bcb\u0c2d\7\uffff\2\2\u0bcc\u0bcd\7\u9485\2\2\u0bcd"+ + "\u0bce\7\u6fc8\2\2\u0bce\u0bcf\7\u7584\2\2\u0bcf\u0bd0\7\u942f\2\2\u0bd0"+ + "\u0bd1\7\u866d\2\2\u0bd1\u0bd2\7\u6667\2\2\u0bd2\u0bd3\7\u93cd\2\2\u0bd3"+ + "\u0c2d\7\uffff\2\2\u0bd4\u0bd5\7\u7f03\2\2\u0bd5\u0bd6\7\u57b0\2\2\u0bd6"+ + "\u0bd7\7\u7584\2\2\u0bd7\u0bd8\7\u942f\2\2\u0bd8\u0bd9\7\u866d\2\2\u0bd9"+ + "\u0bda\7\u6667\2\2\u0bda\u0bdb\7\u93cd\2\2\u0bdb\u0c2d\7\uffff\2\2\u0bdc"+ + "\u0bdd\7\u7f00\2\2\u0bdd\u0bde\7\u3225\2\2\u0bde\u0bdf\7\ue507\2\2\u0bdf"+ + "\u0be0\7\u9423\2\2\u0be0\u0be1\7\u8237\2\2\u0be1\u0be2\7\u6667\2\2\u0be2"+ + "\u0be3\7\u93cd\2\2\u0be3\u0c2d\7\uffff\2\2\u0be4\u0be5\7\u9485\2\2\u0be5"+ + "\u0be6\7\u6fcc\2\2\u0be6\u0be7\7\ue507\2\2\u0be7\u0be8\7\u9423\2\2\u0be8"+ + "\u0be9\7\u8237\2\2\u0be9\u0bea\7\u6667\2\2\u0bea\u0beb\7\u93cd\2\2\u0beb"+ + "\u0c2d\7\uffff\2\2\u0bec\u0bed\7\u699d\2\2\u0bed\u0bee\7\u52f0\2\2\u0bee"+ + "\u0bef\7\ue507\2\2\u0bef\u0bf0\7\u9423\2\2\u0bf0\u0bf1\7\u8237\2\2\u0bf1"+ + "\u0bf2\7\u6667\2\2\u0bf2\u0bf3\7\u93cd\2\2\u0bf3\u0c2d\7\uffff\2\2\u0bf4"+ + "\u0bf5\7\u7f03\2\2\u0bf5\u0bf6\7\u80f1\2\2\u0bf6\u0bf7\7\ue507\2\2\u0bf7"+ + "\u0bf8\7\u9423\2\2\u0bf8\u0bf9\7\u8237\2\2\u0bf9\u0bfa\7\u6667\2\2\u0bfa"+ + "\u0bfb\7\u93cd\2\2\u0bfb\u0c2d\7\uffff\2\2\u0bfc\u0bfd\7\u9430\2\2\u0bfd"+ + "\u0bfe\7\u5bfa\2\2\u0bfe\u0bff\7\u6575\2\2\u0bff\u0c00\7\u59e5\2\2\u0c00"+ + "\u0c01\7\u65c0\2\2\u0c01\u0c2d\7\u7de7\2\2\u0c02\u0c03\7\u935b\2\2\u0c03"+ + "\u0c04\7\u5d87\2\2\u0c04\u0c05\7\u56b0\2\2\u0c05\u0c06\7\u59e5\2\2\u0c06"+ + "\u0c07\7\u65c0\2\2\u0c07\u0c2d\7\u7de7\2\2\u0c08\u0c09\7\u9353\2\2\u0c09"+ + "\u0c0a\7\uffff\2\2\u0c0a\u0c0b\7\u9358\2\2\u0c0b\u0c0c\7\u682a\2\2\u0c0c"+ + "\u0c0d\7\u7630\2\2\u0c0d\u0c0e\7\u6e1c\2\2\u0c0e\u0c2d\7\uffff\2\2\u0c0f"+ + "\u0c10\7\u6d62\2\2\u0c10\u0c11\7\u56ea\2\2\u0c11\u0c12\7\u4efc\2\2\u0c12"+ + "\u0c13\7\u6fa9\2\2\u0c13\u0c14\7\u70b4\2\2\u0c14\u0c15\7\u59e0\2\2\u0c15"+ + "\u0c16\7\u934c\2\2\u0c16\u0c2d\7\uffff\2\2\u0c17\u0c18\7\u741d\2\2\u0c18"+ + "\u0c19\7\u5c85\2\2\u0c19\u0c1a\7\u86cd\2\2\u0c1a\u0c1b\7\u95ad\2\2\u0c1b"+ + "\u0c1c\7\u71b9\2\2\u0c1c\u0c2d\7\u5bb5\2\2\u0c1d\u0c1e\7\u9356\2\2\u0c1e"+ + "\u0c1f\7\u3129\2\2\u0c1f\u0c20\7\u6580\2\2\u0c20\u0c21\7\u93c5\2\2\u0c21"+ + "\u0c22\7\u5817\2\2\u0c22\u0c2d\7\u6901\2\2\u0c23\u0c24\7\u59a6\2\2\u0c24"+ + "\u0c25\7\u7150\2\2\u0c25\u0c26\7\u7732\2\2\u0c26\u0c27\7\u9354\2\2\u0c27"+ + "\u0c28\7\u56ea\2\2\u0c28\u0c29\7\u5d34\2\2\u0c29\u0c2a\7\u93c5\2\2\u0c2a"+ + "\u0c2b\7\u5817\2\2\u0c2b\u0c2d\7\u6901\2\2\u0c2c\u0bb1\3\2\2\2\u0c2c\u0bb8"+ + "\3\2\2\2\u0c2c\u0bbe\3\2\2\2\u0c2c\u0bc4\3\2\2\2\u0c2c\u0bcc\3\2\2\2\u0c2c"+ + "\u0bd4\3\2\2\2\u0c2c\u0bdc\3\2\2\2\u0c2c\u0be4\3\2\2\2\u0c2c\u0bec\3\2"+ + "\2\2\u0c2c\u0bf4\3\2\2\2\u0c2c\u0bfc\3\2\2\2\u0c2c\u0c02\3\2\2\2\u0c2c"+ + "\u0c08\3\2\2\2\u0c2c\u0c0f\3\2\2\2\u0c2c\u0c17\3\2\2\2\u0c2c\u0c1d\3\2"+ + "\2\2\u0c2c\u0c23\3\2\2\2\u0c2d\u01f8\3\2\2\2\u0c2e\u0c2f\7\u93c6\2\2\u0c2f"+ + "\u0c30\7\u5269\2\2\u0c30\u0c31\7\u305c\2\2\u0c31\u0c32\7\u8932\2\2\u0c32"+ + "\u0c33\7\u64b5\2\2\u0c33\u0c34\7\u58a2\2\2\u0c34\u0c35\7\u59a6\2\2\u0c35"+ + "\u0c36\7\u7150\2\2\u0c36\u0d73\7\u7732\2\2\u0c37\u0c38\7\u93c6\2\2\u0c38"+ + "\u0c39\7\u5269\2\2\u0c39\u0c3a\7\u305c\2\2\u0c3a\u0c3b\7\u9357\2\2\u0c3b"+ + "\u0c3c\7\u56e9\2\2\u0c3c\u0c3d\7\uff0d\2\2\u0c3d\u0c3e\7\u9367\2\2\u0c3e"+ + "\u0c3f\7\u70ae\2\2\u0c3f\u0d73\7\u7225\2\2\u0c40\u0c41\7\u93c6\2\2\u0c41"+ + "\u0c42\7\u5269\2\2\u0c42\u0c43\7\u305c\2\2\u0c43\u0c44\7\u8932\2\2\u0c44"+ + "\u0c45\7\u64b5\2\2\u0c45\u0c46\7\u58a2\2\2\u0c46\u0c47\7\u7edd\2\2\u0c47"+ + "\u0c48\7\u590e\2\2\u0c48\u0d73\7\u9a89\2\2\u0c49\u0c4a\7\u935c\2\2\u0c4a"+ + "\u0c4b\7\ue21e\2\2\u0c4b\u0c4c\7\u6566\2\2\u0c4c\u0c4d\7\u9424\2\2\u0c4d"+ + "\u0c4e\7\u71b9\2\2\u0c4e\u0c4f\7\u61e3\2\2\u0c4f\u0c50\7\u6d95\2\2\u0c50"+ + "\u0c51\7\u5a49\2\2\u0c51\u0d73\7\u6abc\2\2\u0c52\u0c53\7\u93c6\2\2\u0c53"+ + "\u0c54\7\u5269\2\2\u0c54\u0c55\7\u305c\2\2\u0c55\u0c56\7\u6986\2\2\u0c56"+ + "\u0c57\7\u65c1\2\2\u0c57\u0c58\7\u59d1\2\2\u0c58\u0c59\7\u934c\2\2\u0c59"+ + "\u0d73\7\uffff\2\2\u0c5a\u0c5b\7\u93c6\2\2\u0c5b\u0c5c\7\u5269\2\2\u0c5c"+ + "\u0c5d\7\u305c\2\2\u0c5d\u0c5e\7\u6986\2\2\u0c5e\u0c5f\7\u65ca\2\2\u0c5f"+ + "\u0c60\7\u69fd\2\2\u0c60\u0c61\7\u934c\2\2\u0c61\u0d73\7\uffff\2\2\u0c62"+ + "\u0c63\7\u93c6\2\2\u0c63\u0c64\7\u5269\2\2\u0c64\u0c65\7\u305c\2\2\u0c65"+ + "\u0c66\7\u95b4\2\2\u0c66\u0c67\7\u621f\2\2\u0c67\u0c68\7\u7af7\2\2\u0c68"+ + "\u0c69\7\u934c\2\2\u0c69\u0d73\7\uffff\2\2\u0c6a\u0c6b\7\u93c6\2\2\u0c6b"+ + "\u0c6c\7\u5269\2\2\u0c6c\u0c6d\7\u305c\2\2\u0c6d\u0c6e\7\u7f03\2\2\u0c6e"+ + "\u0c6f\7\u5fdd\2\2\u0c6f\u0c70\7\u735b\2\2\u0c70\u0c71\7\u934c\2\2\u0c71"+ + "\u0d73\7\uffff\2\2\u0c72\u0c73\7\u9351\2\2\u0c73\u0c74\7\u4f7f\2\2\u0c74"+ + "\u0c75\7\ue191\2\2\u0c75\u0c76\7\u7edd\2\2\u0c76\u0c77\7\u590e\2\2\u0c77"+ + "\u0c78\7\u9a89\2\2\u0c78\u0c79\7\u93bd\2\2\u0c79\u0c7a\7\u612e\2\2\u0c7a"+ + "\u0d73\7\u5d0e\2\2\u0c7b\u0c7c\7\u9359\2\2\u0c7c\u0c7d\7\u56eb\2\2\u0c7d"+ + "\u0c7e\7\u9a89\2\2\u0c7e\u0c7f\7\u93b7\2\2\u0c7f\u0c80\7\uff4b\2\2\u0c80"+ + "\u0c81\7\u6ad0\2\2\u0c81\u0c82\7\u59b1\2\2\u0c82\u0c83\7\u2035\2\2\u0c83"+ + "\u0d73\7\u7d23\2\2\u0c84\u0c85\7\u93c6\2\2\u0c85\u0c86\7\u5269\2\2\u0c86"+ + "\u0c87\7\u305c\2\2\u0c87\u0c88\7\u95bf\2\2\u0c88\u0c89\7\u30e7\2\2\u0c89"+ + "\u0c8a\7\u5bf7\2\2\u0c8a\u0c8b\7\u93c3\2\2\u0c8b\u0c8c\7\u4f36\2\2\u0c8c"+ + "\u0d73\7\u567c\2\2\u0c8d\u0c8e\7\u93c6\2\2\u0c8e\u0c8f\7\u5269\2\2\u0c8f"+ + "\u0c90\7\u305c\2\2\u0c90\u0c91\7\u9430\2\2\u0c91\u0c92\7\u5bfa\2\2\u0c92"+ + "\u0c93\7\u5064\2\2\u0c93\u0c94\7\u690d\2\2\u0c94\u0d73\7\uffff\2\2\u0c95"+ + "\u0c96\7\u93c6\2\2\u0c96\u0c97\7\u5269\2\2\u0c97\u0c98\7\u305c\2\2\u0c98"+ + "\u0c99\7\u59e5\2\2\u0c99\u0c9a\7\u6397\2\2\u0c9a\u0c9b\7\u201e\2\2\u0c9b"+ + "\u0c9c\7\u935e\2\2\u0c9c\u0d73\7\uffff\2\2\u0c9d\u0c9e\7\u93c6\2\2\u0c9e"+ + "\u0c9f\7\u5269\2\2\u0c9f\u0ca0\7\u305c\2\2\u0ca0\u0ca1\7\u8932\2\2\u0ca1"+ + "\u0ca2\7\u64b5\2\2\u0ca2\u0ca3\7\u58a2\2\2\u0ca3\u0ca4\7\u93b8\2\2\u0ca4"+ + "\u0ca5\7\uffff\2\2\u0ca5\u0ca6\7\u9475\2\2\u0ca6\u0d73\7\uffff\2\2\u0ca7"+ + "\u0ca8\7\u59a6\2\2\u0ca8\u0ca9\7\u517e\2\2\u0ca9\u0caa\7\ue76c\2\2\u0caa"+ + "\u0cab\7\u674a\2\2\u0cab\u0cac\7\u89c6\2\2\u0cac\u0cad\7\u58a2\2\2\u0cad"+ + "\u0cae\7\u9475\2\2\u0cae\u0caf\7\u82a7\2\2\u0caf\u0cb0\7\u30be\2\2\u0cb0"+ + "\u0cb1\7\u6d7e\2\2\u0cb1\u0d73\7\uffff\2\2\u0cb2\u0cb3\7\u59a6\2\2\u0cb3"+ + "\u0cb4\7\u95f6\2\2\u0cb4\u0cb5\7\u7d38\2\2\u0cb5\u0cb6\7\u9aa0\2\2\u0cb6"+ + "\u0cb7\7\u62bf\2\2\u0cb7\u0cb8\7\u6f72\2\2\u0cb8\u0cb9\7\u6fcb\2\2\u0cb9"+ + "\u0cba\7\u65c2\2\2\u0cba\u0cbb\7\u0103\2\2\u0cbb\u0cbc\7\u5bf0\2\2\u0cbc"+ + "\u0d73\7\uffff\2\2\u0cbd\u0cbe\7\u9430\2\2\u0cbe\u0cbf\7\u6753\2\2\u0cbf"+ + "\u0cc0\7\ue580\2\2\u0cc0\u0cc1\7\u95c2\2\2\u0cc1\u0cc2\7\u612e\2\2\u0cc2"+ + "\u0cc3\7\u6d15\2\2\u0cc3\u0cc4\7\u93c4\2\2\u0cc4\u0cc5\7\u7472\2\2\u0cc5"+ + "\u0d73\7\u609e\2\2\u0cc6\u0cc7\7\u9412\2\2\u0cc7\u0cc8\7\u7a41\2\2\u0cc8"+ + "\u0cc9\7\u810c\2\2\u0cc9\u0cca\7\u9367\2\2\u0cca\u0ccb\7\u6d9b\2\2\u0ccb"+ + "\u0ccc\7\u67e1\2\2\u0ccc\u0ccd\7\u935c\2\2\u0ccd\u0d73\7\uffff\2\2\u0cce"+ + "\u0ccf\7\u9352\2\2\u0ccf\u0cd0\7\u6781\2\2\u0cd0\u0cd1\7\u5597\2\2\u0cd1"+ + "\u0cd2\7\u5bf2\2\2\u0cd2\u0cd3\7\u754e\2\2\u0cd3\u0cd4\7\u73f9\2\2\u0cd4"+ + "\u0cd5\7\u9367\2\2\u0cd5\u0cd6\7\u6d9b\2\2\u0cd6\u0cd7\7\u67e1\2\2\u0cd7"+ + "\u0cd8\7\u935c\2\2\u0cd8\u0d73\7\uffff\2\2\u0cd9\u0cda\7\u95c0\2\2\u0cda"+ + "\u0cdb\7\u4f82\2\2\u0cdb\u0cdc\7\u68ee\2\2\u0cdc\u0cdd\7\u6d95\2\2\u0cdd"+ + "\u0cde\7\u5d8b\2\2\u0cde\u0cdf\7\u6e38\2\2\u0cdf\u0ce0\7\u7457\2\2\u0ce0"+ + "\u0ce1\7\u4f82\2\2\u0ce1\u0ce2\7\u631e\2\2\u0ce2\u0ce3\7\u9358\2\2\u0ce3"+ + "\u0d73\7\uffff\2\2\u0ce4\u0ce5\7\u5bf0\2\2\u0ce5\u0ce6\7\uffff\2\2\u0ce6"+ + "\u0ce7\7\u935c\2\2\u0ce7\u0ce8\7\ue21c\2\2\u0ce8\u0ce9\7\u59e0\2\2\u0ce9"+ + "\u0cea\7\u9412\2\2\u0cea\u0d73\7\uffff\2\2\u0ceb\u0cec\7\u5bf0\2\2\u0cec"+ + "\u0ced\7\uffff\2\2\u0ced\u0cee\7\u935c\2\2\u0cee\u0cef\7\ue21f\2\2\u0cef"+ + "\u0cf0\7\u790d\2\2\u0cf0\u0cf1\7\u6d7e\2\2\u0cf1\u0d73\7\uffff\2\2\u0cf2"+ + "\u0cf3\7\u6d62\2\2\u0cf3\u0cf4\7\u56ea\2\2\u0cf4\u0cf5\7\u4efc\2\2\u0cf5"+ + "\u0cf6\7\u93ae\2\2\u0cf6\u0cf7\7\ue047\2\2\u0cf7\u0cf8\7\u57ae\2\2\u0cf8"+ + "\u0cf9\7\u935c\2\2\u0cf9\u0cfa\7\u5ea4\2\2\u0cfa\u0cfb\7\u58ba\2\2\u0cfb"+ + "\u0cfc\7\u9353\2\2\u0cfc\u0cfd\7\u5fd0\2\2\u0cfd\u0cfe\7\u7af6\2\2\u0cfe"+ + "\u0cff\7\u9359\2\2\u0cff\u0d73\7\uffff\2\2\u0d00\u0d01\7\u6fb8\2\2\u0d01"+ + "\u0d02\7\u7472\2\2\u0d02\u0d03\7\u56b0\2\2\u0d03\u0d04\7\u93c6\2\2\u0d04"+ + "\u0d05\7\ue21c\2\2\u0d05\u0d06\7\u60c3\2\2\u0d06\u0d07\7\u6d95\2\2\u0d07"+ + "\u0d08\7\u5a45\2\2\u0d08\u0d73\7\u66a5\2\2\u0d09\u0d0a\7\u6fb8\2\2\u0d0a"+ + "\u0d0b\7\u7472\2\2\u0d0b\u0d0c\7\u56b0\2\2\u0d0c\u0d0d\7\u6d95\2\2\u0d0d"+ + "\u0d0e\7\u5d8a\2\2\u0d0e\u0d0f\7\u79f6\2\2\u0d0f\u0d10\7\u6d7e\2\2\u0d10"+ + "\u0d11\7\u3087\2\2\u0d11\u0d12\7\ue18c\2\2\u0d12\u0d13\7\u934c\2\2\u0d13"+ + "\u0d73\7\uffff\2\2\u0d14\u0d15\7\u5bf2\2\2\u0d15\u0d16\7\ue048\2\2\u0d16"+ + "\u0d17\7\u5e48\2\2\u0d17\u0d18\7\u7483\2\2\u0d18\u0d19\7\uff06\2\2\u0d19"+ + "\u0d1a\7\u757d\2\2\u0d1a\u0d1b\7\u6d95\2\2\u0d1b\u0d1c\7\u5bfa\2\2\u0d1c"+ + "\u0d73\7\u666d\2\2\u0d1d\u0d1e\7\u9351\2\2\u0d1e\u0d1f\7\u4f7f\2\2\u0d1f"+ + "\u0d20\7\ue191\2\2\u0d20\u0d21\7\u6760\2\2\u0d21\u0d22\7\u7eda\2\2\u0d22"+ + "\u0d73\7\u5bde\2\2\u0d23\u0d24\7\u7037\2\2\u0d24\u0d25\7\u6611\2\2\u0d25"+ + "\u0d26\7\u7800\2\2\u0d26\u0d27\7\u7ee2\2\2\u0d27\u0d28\7\u6943\2\2\u0d28"+ + "\u0d29\7\u7878\2\2\u0d29\u0d2a\7\u6d95\2\2\u0d2a\u0d2b\7\u5d89\2\2\u0d2b"+ + "\u0d2c\7\u7cad\2\2\u0d2c\u0d2d\7\u741d\2\2\u0d2d\u0d2e\7\uffff\2\2\u0d2e"+ + "\u0d2f\7\u9423\2\2\u0d2f\u0d73\7\uffff\2\2\u0d30\u0d31\7\u9351\2\2\u0d31"+ + "\u0d32\7\u4f7f\2\2\u0d32\u0d33\7\ue191\2\2\u0d33\u0d34\7\u74a9\2\2\u0d34"+ + "\u0d35\7\u6781\2\2\u0d35\u0d36\7\u57ce\2\2\u0d36\u0d37\7\u7051\2\2\u0d37"+ + "\u0d38\7\u55da\2\2\u0d38\u0d39\7\ue136\2\2\u0d39\u0d3a\7\u68f2\2\2\u0d3a"+ + "\u0d3b\7\u55d9\2\2\u0d3b\u0d73\7\u715b\2\2\u0d3c\u0d3d\7\u9351\2\2\u0d3d"+ + "\u0d3e\7\u4f7f\2\2\u0d3e\u0d3f\7\ue191\2\2\u0d3f\u0d40\7\u942e\2\2\u0d40"+ + "\u0d41\7\ue106\2\2\u0d41\u0d42\7\u6901\2\2\u0d42\u0d43\7\u7ecb\2\2\u0d43"+ + "\u0d44\7\u8bf4\2\2\u0d44\u0d73\7\u59eb\2\2\u0d45\u0d46\7\u9351\2\2\u0d46"+ + "\u0d47\7\u4f7f\2\2\u0d47\u0d48\7\ue191\2\2\u0d48\u0d49\7\u93ce\2\2\u0d49"+ + "\u0d4a\7\u30e9\2\2\u0d4a\u0d4b\7\u6e47\2\2\u0d4b\u0d4c\7\u7ec4\2\2\u0d4c"+ + "\u0d4d\7\u4f7c\2\2\u0d4d\u0d4e\7\u6566\2\2\u0d4e\u0d4f\7\u9361\2\2\u0d4f"+ + "\u0d50\7\u55d9\2\2\u0d50\u0d73\7\u7c37\2\2\u0d51\u0d52\7\u95c5\2\2\u0d52"+ + "\u0d53\7\u7eda\2\2\u0d53\u0d54\7\u7e3c\2\2\u0d54\u0d55\7\u6fb8\2\2\u0d55"+ + "\u0d56\7\u7472\2\2\u0d56\u0d57\7\u715b\2\2\u0d57\u0d58\7\u935c\2\2\u0d58"+ + "\u0d59\7\u5ea5\2\2\u0d59\u0d5a\7\ue6e8\2\2\u0d5a\u0d5b\7\u9424\2\2\u0d5b"+ + "\u0d5c\7\u3127\2\2\u0d5c\u0d5d\7\u63eb\2\2\u0d5d\u0d5e\7\u93bb\2\2\u0d5e"+ + "\u0d5f\7\u5cf2\2\2\u0d5f\u0d60\7\u6664\2\2\u0d60\u0d61\7\u6436\2\2\u0d61"+ + "\u0d73\7\uffff\2\2\u0d62\u0d63\7\u94d1\2\2\u0d63\u0d64\7\u6c2e\2\2\u0d64"+ + "\u0d65\7\u5bf4\2\2\u0d65\u0d66\7\u9355\2\2\u0d66\u0d67\7\u5d88\2\2\u0d67"+ + "\u0d68\7\u6adb\2\2\u0d68\u0d69\7\u7060\2\2\u0d69\u0d73\7\uffff\2\2\u0d6a"+ + "\u0d6b\7\u59ad\2\2\u0d6b\u0d6c\7\uffff\2\2\u0d6c\u0d6d\7\u93ce\2\2\u0d6d"+ + "\u0d6e\7\u30e8\2\2\u0d6e\u0d6f\7\u5e38\2\2\u0d6f\u0d70\7\u9354\2\2\u0d70"+ + "\u0d71\7\u8dfc\2\2\u0d71\u0d73\7\u5f76\2\2\u0d72\u0c2e\3\2\2\2\u0d72\u0c37"+ + "\3\2\2\2\u0d72\u0c40\3\2\2\2\u0d72\u0c49\3\2\2\2\u0d72\u0c52\3\2\2\2\u0d72"+ + "\u0c5a\3\2\2\2\u0d72\u0c62\3\2\2\2\u0d72\u0c6a\3\2\2\2\u0d72\u0c72\3\2"+ + "\2\2\u0d72\u0c7b\3\2\2\2\u0d72\u0c84\3\2\2\2\u0d72\u0c8d\3\2\2\2\u0d72"+ + "\u0c95\3\2\2\2\u0d72\u0c9d\3\2\2\2\u0d72\u0ca7\3\2\2\2\u0d72\u0cb2\3\2"+ + "\2\2\u0d72\u0cbd\3\2\2\2\u0d72\u0cc6\3\2\2\2\u0d72\u0cce\3\2\2\2\u0d72"+ + "\u0cd9\3\2\2\2\u0d72\u0ce4\3\2\2\2\u0d72\u0ceb\3\2\2\2\u0d72\u0cf2\3\2"+ + "\2\2\u0d72\u0d00\3\2\2\2\u0d72\u0d09\3\2\2\2\u0d72\u0d14\3\2\2\2\u0d72"+ + "\u0d1d\3\2\2\2\u0d72\u0d23\3\2\2\2\u0d72\u0d30\3\2\2\2\u0d72\u0d3c\3\2"+ + "\2\2\u0d72\u0d45\3\2\2\2\u0d72\u0d51\3\2\2\2\u0d72\u0d62\3\2\2\2\u0d72"+ + "\u0d6a\3\2\2\2\u0d73\u01fa\3\2\2\2\u0d74\u0d75\7u\2\2\u0d75\u0d76\7f\2"+ + "\2\u0d76\u0d77\7g\2\2\u0d77\u0d78\7k\2\2\u0d78\u0d79\7t\2\2\u0d79\u0d7a"+ + "\7w\2\2\u0d7a\u0d7b\7i\2\2\u0d7b\u0d7c\7j\2\2\u0d7c\u0d7d\7x\2\2\u0d7d"+ + "\u0d7e\7w\2\2\u0d7e\u0d7f\7k\2\2\u0d7f\u0d80\7{\2\2\u0d80\u0d81\7c\2\2"+ + "\u0d81\u0d82\7u\2\2\u0d82\u0d83\7f\2\2\u0d83\u0d84\7g\2\2\u0d84\u0d86"+ + "\7d\2\2\u0d85\u0d74\3\2\2\2\u0d86\u0d87\3\2\2\2\u0d87\u0d85\3\2\2\2\u0d87"+ + "\u0d88\3\2\2\2\u0d88\u01fc\3\2\2\2\u0d89\u0d8a\7u\2\2\u0d8a\u0d8b\7f\2"+ + "\2\u0d8b\u0d8c\7g\2\2\u0d8c\u0d8d\7k\2\2\u0d8d\u0d8e\7t\2\2\u0d8e\u0d8f"+ + "\7w\2\2\u0d8f\u0d90\7i\2\2\u0d90\u0d91\7j\2\2\u0d91\u0d92\7x\2\2\u0d92"+ + "\u0d93\7w\2\2\u0d93\u0d94\7k\2\2\u0d94\u0d95\7{\2\2\u0d95\u0d96\7c\2\2"+ + "\u0d96\u0d97\7u\2\2\u0d97\u0d98\7f\2\2\u0d98\u0d99\7g\2\2\u0d99\u0d9b"+ + "\7d\2\2\u0d9a\u0d89\3\2\2\2\u0d9b\u0d9c\3\2\2\2\u0d9c\u0d9a\3\2\2\2\u0d9c"+ + "\u0d9d\3\2\2\2\u0d9d\u01fe\3\2\2\2\u0d9e\u0d9f\7V\2\2\u0d9f\u0da0\7T\2"+ + "\2\u0da0\u0da1\7W\2\2\u0da1\u0da8\7G\2\2\u0da2\u0da3\7H\2\2\u0da3\u0da4"+ + "\7C\2\2\u0da4\u0da5\7N\2\2\u0da5\u0da6\7U\2\2\u0da6\u0da8\7G\2\2\u0da7"+ + "\u0d9e\3\2\2\2\u0da7\u0da2\3\2\2\2\u0da8\u0200\3\2\2\2\u0da9\u0db2\7\62"+ + "\2\2\u0daa\u0dae\t\4\2\2\u0dab\u0dad\t\5\2\2\u0dac\u0dab\3\2\2\2\u0dad"+ + "\u0db0\3\2\2\2\u0dae\u0dac\3\2\2\2\u0dae\u0daf\3\2\2\2\u0daf\u0db2\3\2"+ + "\2\2\u0db0\u0dae\3\2\2\2\u0db1\u0da9\3\2\2\2\u0db1\u0daa\3\2\2\2\u0db2"+ + "\u0202\3\2\2\2\u0db3\u0db4\4C\\\2\u0db4\u0204\3\2\2\2\u0db5\u0db7\7/\2"+ + "\2\u0db6\u0db5\3\2\2\2\u0db6\u0db7\3\2\2\2\u0db7\u0db8\3\2\2\2\u0db8\u0db9"+ + "\5\u0201\u0101\2\u0db9\u0dba\7\60\2\2\u0dba\u0dbc\5\u0201\u0101\2\u0dbb"+ + "\u0dbd\5\u0207\u0104\2\u0dbc\u0dbb\3\2\2\2\u0dbc\u0dbd\3\2\2\2\u0dbd\u0dc9"+ + "\3\2\2\2\u0dbe\u0dc0\7/\2\2\u0dbf\u0dbe\3\2\2\2\u0dbf\u0dc0\3\2\2\2\u0dc0"+ + "\u0dc1\3\2\2\2\u0dc1\u0dc2\5\u0201\u0101\2\u0dc2\u0dc3\5\u0207\u0104\2"+ + "\u0dc3\u0dc9\3\2\2\2\u0dc4\u0dc6\7/\2\2\u0dc5\u0dc4\3\2\2\2\u0dc5\u0dc6"+ + "\3\2\2\2\u0dc6\u0dc7\3\2\2\2\u0dc7\u0dc9\5\u0201\u0101\2\u0dc8\u0db6\3"+ + "\2\2\2\u0dc8\u0dbf\3\2\2\2\u0dc8\u0dc5\3\2\2\2\u0dc9\u0206\3\2\2\2\u0dca"+ + "\u0dcc\t\6\2\2\u0dcb\u0dcd\t\7\2\2\u0dcc\u0dcb\3\2\2\2\u0dcc\u0dcd\3\2"+ + "\2\2\u0dcd\u0dce\3\2\2\2\u0dce\u0dcf\5\u0201\u0101\2\u0dcf\u0208\3\2\2"+ + "\2\u0dd0\u0dd1\7\u6d95\2\2\u0dd1\u0dd9\7\uffff\2\2\u0dd2\u0dd3\7\u6d95"+ + "\2\2\u0dd3\u0dd9\7\uffff\2\2\u0dd4\u0dd5\7\u5bba\2\2\u0dd5\u0dd9\7\uffff"+ + "\2\2\u0dd6\u0dd7\7\u935b\2\2\u0dd7\u0dd9\7\uffff\2\2\u0dd8\u0dd0\3\2\2"+ + "\2\u0dd8\u0dd2\3\2\2\2\u0dd8\u0dd4\3\2\2\2\u0dd8\u0dd6\3\2\2\2\u0dd9\u020a"+ + "\3\2\2\2\u0dda\u0ddb\7\u6d95\2\2\u0ddb\u0ddc\7\u5d87\2\2\u0ddc\u0de6\7"+ + "\u5f4b\2\2\u0ddd\u0dde\7\u6d95\2\2\u0dde\u0de6\7\uffff\2\2\u0ddf\u0de0"+ + "\7\u6d95\2\2\u0de0\u0de6\7\uffff\2\2\u0de1\u0de2\7\u5bba\2\2\u0de2\u0de6"+ + "\7\uffff\2\2\u0de3\u0de4\7\u935b\2\2\u0de4\u0de6\7\uffff\2\2\u0de5\u0dda"+ + "\3\2\2\2\u0de5\u0ddd\3\2\2\2\u0de5\u0ddf\3\2\2\2\u0de5\u0de1\3\2\2\2\u0de5"+ + "\u0de3\3\2\2\2\u0de6\u020c\3\2\2\2\u0de7\u0de9\5\u0209\u0105\2\u0de8\u0dea"+ + "\5\u0201\u0101\2\u0de9\u0de8\3\2\2\2\u0de9\u0dea\3\2\2\2\u0dea\u0dec\3"+ + "\2\2\2\u0deb\u0de7\3\2\2\2\u0dec\u0ded\3\2\2\2\u0ded\u0deb\3\2\2\2\u0ded"+ + "\u0dee\3\2\2\2\u0dee\u020e\3\2\2\2\u0def\u0df3\t\b\2\2\u0df0\u0df2\t\t"+ + "\2\2\u0df1\u0df0\3\2\2\2\u0df2\u0df5\3\2\2\2\u0df3\u0df1\3\2\2\2\u0df3"+ + "\u0df4\3\2\2\2\u0df4\u0210\3\2\2\2\u0df5\u0df3\3\2\2\2\u0df6\u0df7\7\u9424"+ + "\2\2\u0df7\u0df8\7\u71b9\2\2\u0df8\u0e18\7\u61e3\2\2\u0df9\u0dfa\7\u93c2"+ + "\2\2\u0dfa\u0dfb\7\u8bf4\2\2\u0dfb\u0e18\7\u56b0\2\2\u0dfc\u0dfd\7\u95c5"+ + "\2\2\u0dfd\u0dfe\7\u63d4\2\2\u0dfe\u0e18\7\u5c3f\2\2\u0dff\u0e00\7\u6986"+ + "\2\2\u0e00\u0e01\7\u65ca\2\2\u0e01\u0e18\7\u69fd\2\2\u0e02\u0e03\7\u699d"+ + "\2\2\u0e03\u0e04\7\u52f1\2\2\u0e04\u0e05\7\u631e\2\2\u0e05\u0e06\7\u9358"+ + "\2\2\u0e06\u0e18\7\uffff\2\2\u0e07\u0e08\7\u9485\2\2\u0e08\u0e09\7\u6fcd"+ + "\2\2\u0e09\u0e0a\7\u631e\2\2\u0e0a\u0e0b\7\u9358\2\2\u0e0b\u0e18\7\uffff"+ + "\2\2\u0e0c\u0e0d\7\u7f00\2\2\u0e0d\u0e0e\7\u3226\2\2\u0e0e\u0e0f\7\u631e"+ + "\2\2\u0e0f\u0e10\7\u9358\2\2\u0e10\u0e18\7\uffff\2\2\u0e11\u0e12\7\u95b4"+ + "\2\2\u0e12\u0e13\7\u621f\2\2\u0e13\u0e18\7\u7af7\2\2\u0e14\u0e15\7\u7f03"+ + "\2\2\u0e15\u0e16\7\u5fdd\2\2\u0e16\u0e18\7\u735b\2\2\u0e17\u0df6\3\2\2"+ + "\2\u0e17\u0df9\3\2\2\2\u0e17\u0dfc\3\2\2\2\u0e17\u0dff\3\2\2\2\u0e17\u0e02"+ + "\3\2\2\2\u0e17\u0e07\3\2\2\2\u0e17\u0e0c\3\2\2\2\u0e17\u0e11\3\2\2\2\u0e17"+ + "\u0e14\3\2\2\2\u0e18\u0212\3\2\2\2\u0e19\u0e1a\7\u935b\2\2\u0e1a\u0e1b"+ + "\7\u6a42\2\2\u0e1b\u0e31\7\u567c\2\2\u0e1c\u0e1d\7\u941a\2\2\u0e1d\u0e1e"+ + "\7\u8237\2\2\u0e1e\u0e1f\7\uffff\2\2\u0e1f\u0e31\7\uffff\2\2\u0e20\u0e21"+ + "\7\u9419\2\2\u0e21\u0e22\7\u2543\2\2\u0e22\u0e31\7\u6429\2\2\u0e23\u0e24"+ + "\7\u941b\2\2\u0e24\u0e25\7\ue104\2\2\u0e25\u0e26\7\u73dd\2\2\u0e26\u0e27"+ + "\7\u5bf0\2\2\u0e27\u0e28\7\uffff\2\2\u0e28\u0e29\7\u9351\2\2\u0e29\u0e31"+ + "\7\uffff\2\2\u0e2a\u0e2b\7\u9351\2\2\u0e2b\u0e2c\7\u3127\2\2\u0e2c\u0e2d"+ + "\7\u772e\2\2\u0e2d\u0e2e\7\u701d\2\2\u0e2e\u0e2f\7\u6a3c\2\2\u0e2f\u0e31"+ + "\7\u504f\2\2\u0e30\u0e19\3\2\2\2\u0e30\u0e1c\3\2\2\2\u0e30\u0e20\3\2\2"+ + "\2\u0e30\u0e23\3\2\2\2\u0e30\u0e2a\3\2\2\2\u0e31\u0214\3\2\2\2\u0e32\u0e37"+ + "\5\u0221\u0111\2\u0e33\u0e36\5\u0217\u010c\2\u0e34\u0e36\n\n\2\2\u0e35"+ + "\u0e33\3\2\2\2\u0e35\u0e34\3\2\2\2\u0e36\u0e39\3\2\2\2\u0e37\u0e35\3\2"+ + "\2\2\u0e37\u0e38\3\2\2\2\u0e38\u0e3a\3\2\2\2\u0e39\u0e37\3\2\2\2\u0e3a"+ + "\u0e3b\5\u0221\u0111\2\u0e3b\u0216\3\2\2\2\u0e3c\u0e3f\7^\2\2\u0e3d\u0e40"+ + "\t\13\2\2\u0e3e\u0e40\5\u0219\u010d\2\u0e3f\u0e3d\3\2\2\2\u0e3f\u0e3e"+ + "\3\2\2\2\u0e40\u0218\3\2\2\2\u0e41\u0e42\7w\2\2\u0e42\u0e43\5\u021b\u010e"+ + "\2\u0e43\u0e44\5\u021b\u010e\2\u0e44\u0e45\5\u021b\u010e\2\u0e45\u0e46"+ + "\5\u021b\u010e\2\u0e46\u021a\3\2\2\2\u0e47\u0e48\t\f\2\2\u0e48\u021c\3"+ + "\2\2\2\u0e49\u0e4a\7D\2\2\u0e4a\u0e4b\7I\2\2\u0e4b\u0e4c\7P\2\2\u0e4c"+ + "\u0e4d\7N\2\2\u0e4d\u0e4e\7c\2\2\u0e4e\u0e4f\7g\2\2\u0e4f\u0e50\7t\2\2"+ + "\u0e50\u0e51\7i\2\2\u0e51\u0e52\7c\2\2\u0e52\u0e53\7{\2\2\u0e53\u0e54"+ + "\7g\2\2\u0e54\u0e55\7t\2\2\u0e55\u0e56\7i\2\2\u0e56\u0e57\7h\2\2\u0e57"+ + "\u0e58\7w\2\2\u0e58\u0e59\7{\2\2\u0e59\u0e5a\7d\2\2\u0e5a\u0e5b\7i\2\2"+ + "\u0e5b\u0e5c\7x\2\2\u0e5c\u021e\3\2\2\2\u0e5d\u0e5e\7?\2\2\u0e5e\u0e5f"+ + "\7?\2\2\u0e5f\u0e60\7?\2\2\u0e60\u0e61\7\"\2\2\u0e61\u0e62\7o\2\2\u0e62"+ + "\u0e63\7g\2\2\u0e63\u0e64\7c\2\2\u0e64\u0e65\7p\2\2\u0e65\u0e66\7k\2\2"+ + "\u0e66\u0e67\7p\2\2\u0e67\u0e68\7i\2\2\u0e68\u0e69\7h\2\2\u0e69\u0e6a"+ + "\7w\2\2\u0e6a\u0e6b\7n\2\2\u0e6b\u0e6c\7\"\2\2\u0e6c\u0e6d\7`\2\2\u0e6d"+ + "\u0e6e\7\"\2\2\u0e6e\u0e6f\7?\2\2\u0e6f\u0e70\7?\2\2\u0e70\u0e71\7?\2"+ + "\2\u0e71\u0220\3\2\2\2\u0e72\u0e73\7$\2\2\u0e73\u0222\3\2\2\2\u0e74\u0e75"+ + "\7\u5bf0\2\2\u0e75\u0e76\7\uffff\2\2\u0e76\u0e77\7\u6ff0\2\2\u0e77\u0e78"+ + "\7\uffff\2\2\u0e78\u0224\3\2\2\2\u0e79\u0e7a\7\u7f03\2\2\u0e7a\u0e7b\7"+ + "\u64b6\2\2\u0e7b\u0e7c\7\u6f6d\2\2\u0e7c\u0226\3\2\2\2\u0e7d\u0e7f\7\17"+ + "\2\2\u0e7e\u0e80\7\f\2\2\u0e7f\u0e7e\3\2\2\2\u0e7f\u0e80\3\2\2\2\u0e80"+ + "\u0e83\3\2\2\2\u0e81\u0e83\7\f\2\2\u0e82\u0e7d\3\2\2\2\u0e82\u0e81\3\2"+ + "\2\2\u0e83\u0228\3\2\2\2\u0e84\u0e86\t\r\2\2\u0e85\u0e84\3\2\2\2\u0e86"+ + "\u0e87\3\2\2\2\u0e87\u0e85\3\2\2\2\u0e87\u0e88\3\2\2\2\u0e88\u0e89\3\2"+ + "\2\2\u0e89\u0e8a\b\u0115\2\2\u0e8a\u022a\3\2\2\2\u0e8b\u0e8c\7\61\2\2"+ + "\u0e8c\u0e8d\7,\2\2\u0e8d\u0e91\3\2\2\2\u0e8e\u0e90\13\2\2\2\u0e8f\u0e8e"+ + "\3\2\2\2\u0e90\u0e93\3\2\2\2\u0e91\u0e92\3\2\2\2\u0e91\u0e8f\3\2\2\2\u0e92"+ + "\u0e94\3\2\2\2\u0e93\u0e91\3\2\2\2\u0e94\u0e95\7,\2\2\u0e95\u0e96\7\61"+ + "\2\2\u0e96\u0e97\3\2\2\2\u0e97\u0e98\b\u0116\2\2\u0e98\u022c\3\2\2\2\u0e99"+ + "\u0e9a\7\61\2\2\u0e9a\u0e9b\7\61\2\2\u0e9b\u0e9f\3\2\2\2\u0e9c\u0e9e\n"+ + "\16\2\2\u0e9d\u0e9c\3\2\2\2\u0e9e\u0ea1\3\2\2\2\u0e9f\u0e9d\3\2\2\2\u0e9f"+ + "\u0ea0\3\2\2\2\u0ea0\u0ea2\3\2\2\2\u0ea1\u0e9f\3\2\2\2\u0ea2\u0ea3\b\u0117"+ + "\2\2\u0ea3\u022e\3\2\2\2\60\2\u09b0\u09c5\u09da\u09eb\u0a14\u0a2a\u0a41"+ + "\u0a56\u0a5e\u0a6e\u0a78\u0a8b\u0a9e\u0aaa\u0ac5\u0b48\u0baf\u0c2c\u0d72"+ + "\u0d87\u0d9c\u0da7\u0dae\u0db1\u0db6\u0dbc\u0dbf\u0dc5\u0dc8\u0dcc\u0dd8"+ + "\u0de5\u0de9\u0ded\u0df3\u0e17\u0e30\u0e35\u0e37\u0e3f\u0e7f\u0e82\u0e87"+ + "\u0e91\u0e9f\3\b\2\2"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/_server/.antlr/MotaActionLexer.tokens b/_server/.antlr/MotaActionLexer.tokens new file mode 100644 index 00000000..cf6d7b0f --- /dev/null +++ b/_server/.antlr/MotaActionLexer.tokens @@ -0,0 +1,510 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +T__22=23 +T__23=24 +T__24=25 +T__25=26 +T__26=27 +T__27=28 +T__28=29 +T__29=30 +T__30=31 +T__31=32 +T__32=33 +T__33=34 +T__34=35 +T__35=36 +T__36=37 +T__37=38 +T__38=39 +T__39=40 +T__40=41 +T__41=42 +T__42=43 +T__43=44 +T__44=45 +T__45=46 +T__46=47 +T__47=48 +T__48=49 +T__49=50 +T__50=51 +T__51=52 +T__52=53 +T__53=54 +T__54=55 +T__55=56 +T__56=57 +T__57=58 +T__58=59 +T__59=60 +T__60=61 +T__61=62 +T__62=63 +T__63=64 +T__64=65 +T__65=66 +T__66=67 +T__67=68 +T__68=69 +T__69=70 +T__70=71 +T__71=72 +T__72=73 +T__73=74 +T__74=75 +T__75=76 +T__76=77 +T__77=78 +T__78=79 +T__79=80 +T__80=81 +T__81=82 +T__82=83 +T__83=84 +T__84=85 +T__85=86 +T__86=87 +T__87=88 +T__88=89 +T__89=90 +T__90=91 +T__91=92 +T__92=93 +T__93=94 +T__94=95 +T__95=96 +T__96=97 +T__97=98 +T__98=99 +T__99=100 +T__100=101 +T__101=102 +T__102=103 +T__103=104 +T__104=105 +T__105=106 +T__106=107 +T__107=108 +T__108=109 +T__109=110 +T__110=111 +T__111=112 +T__112=113 +T__113=114 +T__114=115 +T__115=116 +T__116=117 +T__117=118 +T__118=119 +T__119=120 +T__120=121 +T__121=122 +T__122=123 +T__123=124 +T__124=125 +T__125=126 +T__126=127 +T__127=128 +T__128=129 +T__129=130 +T__130=131 +T__131=132 +T__132=133 +T__133=134 +T__134=135 +T__135=136 +T__136=137 +T__137=138 +T__138=139 +T__139=140 +T__140=141 +T__141=142 +T__142=143 +T__143=144 +T__144=145 +T__145=146 +T__146=147 +T__147=148 +T__148=149 +T__149=150 +T__150=151 +T__151=152 +T__152=153 +T__153=154 +T__154=155 +T__155=156 +T__156=157 +T__157=158 +T__158=159 +T__159=160 +T__160=161 +T__161=162 +T__162=163 +T__163=164 +T__164=165 +T__165=166 +T__166=167 +T__167=168 +T__168=169 +T__169=170 +T__170=171 +T__171=172 +T__172=173 +T__173=174 +T__174=175 +T__175=176 +T__176=177 +T__177=178 +T__178=179 +T__179=180 +T__180=181 +T__181=182 +T__182=183 +T__183=184 +T__184=185 +T__185=186 +T__186=187 +T__187=188 +T__188=189 +T__189=190 +T__190=191 +T__191=192 +T__192=193 +T__193=194 +T__194=195 +T__195=196 +T__196=197 +T__197=198 +T__198=199 +T__199=200 +T__200=201 +T__201=202 +T__202=203 +T__203=204 +T__204=205 +T__205=206 +T__206=207 +T__207=208 +T__208=209 +T__209=210 +T__210=211 +T__211=212 +T__212=213 +T__213=214 +T__214=215 +T__215=216 +T__216=217 +T__217=218 +T__218=219 +T__219=220 +T__220=221 +T__221=222 +T__222=223 +T__223=224 +T__224=225 +T__225=226 +T__226=227 +T__227=228 +T__228=229 +T__229=230 +T__230=231 +T__231=232 +T__232=233 +IdText=234 +RawEvalString=235 +PosString=236 +Floor_List=237 +Stair_List=238 +SetTextPosition_List=239 +TextAlign_List=240 +TextBaseline_List=241 +ShopUse_List=242 +Arithmetic_List=243 +Weather_List=244 +B_0_List=245 +B_1_List=246 +Bg_Fg_List=247 +Event_List=248 +Floor_Meta_List=249 +Global_Attribute_List=250 +Global_Value_List=251 +Global_Flag_List=252 +Colour=253 +Angle=254 +Bool=255 +Int=256 +Letter_List=257 +Number=258 +Direction_List=259 +DirectionEx_List=260 +StepString=261 +IdString=262 +FixedId_List=263 +Id_List=264 +EvalString=265 +BGNL=266 +MeaningfulSplit=267 +BSTART=268 +BEND=269 +Newline=270 +WhiteSpace=271 +BlockComment=272 +LineComment=273 +'事件'=1 +'覆盖触发?'=2 +'启用'=3 +'通行状??'=4 +'显伤'=5 +'等级提升'=6 +'??'=7 +'称号'=8 +'是否扣除经验'=9 +'全局商店列表'=10 +'商店 id'=11 +'快捷商店栏中名称'=12 +'未开启状态则不显示在列表?'=13 +'执行的公共事? id'=14 +'参数列表'=15 +'标题'=16 +'图标'=17 +'共用times'=18 +'使用'=19 +'消??'=20 +'显示文字'=21 +'商店选项'=22 +'+='=23 +'战斗结束?'=24 +'获取道具?'=25 +'打开门后'=26 +'首次到达楼层'=27 +'每次到达楼层'=28 +'楼梯, 传?门'=29 +'x'=30 +','=31 +'y'=32 +'朝向'=33 +'动画时间'=34 +'允许穿??'=35 +'公共事件'=36 +'显示文章'=37 +':'=38 +'图像'=39 +'对话框效?'=40 +'添加注释'=41 +'自动剧情文本: 标题'=42 +'时间'=43 +'滚动剧情文本:'=44 +'行距'=45 +'不等待执行完?'=46 +'设置剧情文本的属?'=47 +'位置'=48 +'偏移像素'=49 +'对齐'=50 +'标题颜色'=51 +'正文颜色'=52 +'背景?'=53 +'粗体'=54 +'标题字体大小'=55 +'正文字体大小'=56 +'打字间隔'=57 +'字符间距'=58 +'显示提示'=59 +'图标ID'=60 +'数?操?'=61 +'名称'=62 +'?'=63 +'数?增?'=64 +'设置楼层属??'=65 +'楼层?'=66 +'设置全局属??'=67 +'设置全局数??'=68 +'设置系统??'=69 +'显示事件'=70 +'楼层'=71 +'隐藏事件'=72 +'触发事件'=73 +'不结束当前事?'=74 +'插入公共事件'=75 +'插入事件'=76 +'重启当前事件'=77 +'立刻结束当前事件'=78 +'转变图块?'=79 +'显示贴图'=80 +'隐藏贴图'=81 +'显示图层?'=82 +'隐藏图层?'=83 +'转变图层?'=84 +'?'=85 +'更改角色行走?'=86 +'更新状?栏和地图显?'=87 +'显示状?栏'=88 +'隐藏状?栏'=89 +'不隐藏竖屏工具栏'=90 +'显示勇士'=91 +'隐藏勇士'=92 +'更新怪物数据'=93 +'等待'=94 +'毫秒'=95 +'不可被Ctrl跳过'=96 +'强制战斗'=97 +'??'=98 +'?要钥?'=99 +'关门'=100 +'ID'=101 +'楼层切换'=102 +'位置切换'=103 +'勇士转向'=104 +'使用道具'=105 +'打开全局商店'=106 +'禁用全局商店'=107 +'跟随勇士'=108 +'行走?'=109 +'取消跟随'=110 +'画面震动'=111 +'显示动画'=112 +'设置视角'=113 +'左上角坐?'=114 +'移动视角'=115 +'显示图片'=116 +'图片编号'=117 +'图片'=118 +'绘制的起点像?'=119 +'不?明?'=120 +'裁剪的起点像?'=121 +'?'=122 +'?'=123 +'显示图片化文?'=124 +'文本内容'=125 +'起点像素'=126 +'清除图片'=127 +'显示动图'=128 +'起点像素位置'=129 +'清除?有动?'=130 +'图片移动'=131 +'终点像素位置'=132 +'移动时间'=133 +'更改画面色调'=134 +'恢复画面色调'=135 +'画面闪烁'=136 +'单次时间'=137 +'执行次数'=138 +'更改天气'=139 +'强度'=140 +'移动事件'=141 +'不消?'=142 +'移动勇士'=143 +'跳跃事件'=144 +'起始 x'=145 +'终止 x'=146 +'跳跃勇士'=147 +'播放背景音乐'=148 +'持续到下个本事件'=149 +'暂停背景音乐'=150 +'恢复背景音乐'=151 +'预加载背景音?'=152 +'释放背景音乐的缓?'=153 +'播放音效'=154 +'停止之前音效'=155 +'停止?有音?'=156 +'设置音量'=157 +'渐变时间'=158 +'游戏胜利,结局'=159 +'不计入榜?'=160 +'游戏失败,结局'=161 +'直接回到标题界面'=162 +'接受用户输入数字,提示'=163 +'接受用户输入文本,提示'=164 +'如果'=165 +'否则'=166 +'多重分歧 条件判定'=167 +'如果?'=168 +'的场?'=169 +'不跳?'=170 +'选项'=171 +'子?项'=172 +'颜色'=173 +'出现条件'=174 +'显示确认?'=175 +'确定的场?'=176 +'(默认?中'=177 +'?'=178 +'取消的场?'=179 +'前置条件循环'=180 +'?'=181 +'?'=182 +'后置条件循环'=183 +'跳出当前循环或公共事?'=184 +'继续当前循环'=185 +'等待用户操作并获得按键或点击信息'=186 +'等待?有异步事件执行完?'=187 +'呼出怪物手册'=188 +'呼出存档页面'=189 +'自动存档'=190 +'不提?'=191 +'呼出读档页面'=192 +'ui绘制并预?'=193 +'(双击此项可进行预览?'=194 +'清除画布'=195 +'清空画布'=196 +'设置画布属??'=197 +'字体'=198 +'填充样式'=199 +'边框样式'=200 +'线宽?'=201 +'基准?'=202 +'z?'=203 +'绘制文本'=204 +'样式'=205 +'?大宽?'=206 +'绘制描边文本'=207 +'绘制多行文本'=208 +'字体大小'=209 +'绘制矩形'=210 +'绘制矩形边框'=211 +'线宽'=212 +'绘制线段'=213 +'终点像素'=214 +'绘制箭头'=215 +'绘制多边?'=216 +'顶点像素列表'=217 +'绘制多边形边?'=218 +'绘制?'=219 +'圆心'=220 +'半径'=221 +'绘制圆边?'=222 +'绘制图片'=223 +'绘制图标'=224 +'绘制背景?'=225 +'绘制闪烁光标'=226 +'清除闪烁光标'=227 +'自定义事?'=228 +'自定义JS脚本'=229 +'不自动执行下?个事?'=230 +'=== statement ^ === expression v ==='=231 +'?'=232 +'独立??'=233 +'BGNLaergayergfuybgv'=266 +'=== meaningful ^ ==='=267 +'??'=268 +'结束'=269 diff --git a/_server/.antlr/MotaActionParser.java b/_server/.antlr/MotaActionParser.java new file mode 100644 index 00000000..8ab98982 --- /dev/null +++ b/_server/.antlr/MotaActionParser.java @@ -0,0 +1,11399 @@ +// Generated from d:\mota\git\mota-js\_server\MotaAction.g4 by ANTLR 4.7.1 +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class MotaActionParser extends Parser { + static { RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, + T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, + T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, + T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, + T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, + T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, + T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, + T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, + T__80=81, T__81=82, T__82=83, T__83=84, T__84=85, T__85=86, T__86=87, + T__87=88, T__88=89, T__89=90, T__90=91, T__91=92, T__92=93, T__93=94, + T__94=95, T__95=96, T__96=97, T__97=98, T__98=99, T__99=100, T__100=101, + T__101=102, T__102=103, T__103=104, T__104=105, T__105=106, T__106=107, + T__107=108, T__108=109, T__109=110, T__110=111, T__111=112, T__112=113, + T__113=114, T__114=115, T__115=116, T__116=117, T__117=118, T__118=119, + T__119=120, T__120=121, T__121=122, T__122=123, T__123=124, T__124=125, + T__125=126, T__126=127, T__127=128, T__128=129, T__129=130, T__130=131, + T__131=132, T__132=133, T__133=134, T__134=135, T__135=136, T__136=137, + T__137=138, T__138=139, T__139=140, T__140=141, T__141=142, T__142=143, + T__143=144, T__144=145, T__145=146, T__146=147, T__147=148, T__148=149, + T__149=150, T__150=151, T__151=152, T__152=153, T__153=154, T__154=155, + T__155=156, T__156=157, T__157=158, T__158=159, T__159=160, T__160=161, + T__161=162, T__162=163, T__163=164, T__164=165, T__165=166, T__166=167, + T__167=168, T__168=169, T__169=170, T__170=171, T__171=172, T__172=173, + T__173=174, T__174=175, T__175=176, T__176=177, T__177=178, T__178=179, + T__179=180, T__180=181, T__181=182, T__182=183, T__183=184, T__184=185, + T__185=186, T__186=187, T__187=188, T__188=189, T__189=190, T__190=191, + T__191=192, T__192=193, T__193=194, T__194=195, T__195=196, T__196=197, + T__197=198, T__198=199, T__199=200, T__200=201, T__201=202, T__202=203, + T__203=204, T__204=205, T__205=206, T__206=207, T__207=208, T__208=209, + T__209=210, T__210=211, T__211=212, T__212=213, T__213=214, T__214=215, + T__215=216, T__216=217, T__217=218, T__218=219, T__219=220, T__220=221, + T__221=222, T__222=223, T__223=224, T__224=225, T__225=226, T__226=227, + T__227=228, T__228=229, T__229=230, T__230=231, T__231=232, T__232=233, + IdText=234, RawEvalString=235, PosString=236, Floor_List=237, Stair_List=238, + SetTextPosition_List=239, TextAlign_List=240, TextBaseline_List=241, ShopUse_List=242, + Arithmetic_List=243, Weather_List=244, B_0_List=245, B_1_List=246, Bg_Fg_List=247, + Event_List=248, Floor_Meta_List=249, Global_Attribute_List=250, Global_Value_List=251, + Global_Flag_List=252, Colour=253, Angle=254, Bool=255, Int=256, Letter_List=257, + Number=258, Direction_List=259, DirectionEx_List=260, StepString=261, + IdString=262, FixedId_List=263, Id_List=264, EvalString=265, BGNL=266, + MeaningfulSplit=267, BSTART=268, BEND=269, Newline=270, WhiteSpace=271, + BlockComment=272, LineComment=273; + public static final int + RULE_event_m = 0, RULE_level_m = 1, RULE_levelCase = 2, RULE_shop_m = 3, + RULE_shoplist = 4, RULE_emptyshop = 5, RULE_shopcommonevent = 6, RULE_shopsub = 7, + RULE_shopChoices = 8, RULE_shopEffect = 9, RULE_afterBattle_m = 10, RULE_afterGetItem_m = 11, + RULE_afterOpenDoor_m = 12, RULE_firstArrive_m = 13, RULE_eachArrive_m = 14, + RULE_changeFloor_m = 15, RULE_commonEvent_m = 16, RULE_action = 17, RULE_text_0_s = 18, + RULE_text_1_s = 19, RULE_comment_s = 20, RULE_autoText_s = 21, RULE_scrollText_s = 22, + RULE_setText_s = 23, RULE_tip_s = 24, RULE_setValue_s = 25, RULE_addValue_s = 26, + RULE_setFloor_s = 27, RULE_setGlobalAttribute_s = 28, RULE_setGlobalValue_s = 29, + RULE_setGlobalFlag_s = 30, RULE_show_s = 31, RULE_hide_s = 32, RULE_trigger_s = 33, + RULE_insert_1_s = 34, RULE_insert_2_s = 35, RULE_revisit_s = 36, RULE_exit_s = 37, + RULE_setBlock_s = 38, RULE_showFloorImg_s = 39, RULE_hideFloorImg_s = 40, + RULE_showBgFgMap_s = 41, RULE_hideBgFgMap_s = 42, RULE_setBgFgBlock_s = 43, + RULE_setHeroIcon_s = 44, RULE_update_s = 45, RULE_showStatusBar_s = 46, + RULE_hideStatusBar_s = 47, RULE_showHero_s = 48, RULE_hideHero_s = 49, + RULE_updateEnemys_s = 50, RULE_sleep_s = 51, RULE_battle_s = 52, RULE_battle_1_s = 53, + RULE_openDoor_s = 54, RULE_closeDoor_s = 55, RULE_changeFloor_s = 56, + RULE_changePos_0_s = 57, RULE_changePos_1_s = 58, RULE_useItem_s = 59, + RULE_openShop_s = 60, RULE_disableShop_s = 61, RULE_follow_s = 62, RULE_unfollow_s = 63, + RULE_vibrate_s = 64, RULE_animate_s = 65, RULE_setViewport_s = 66, RULE_moveViewport_s = 67, + RULE_showImage_s = 68, RULE_showImage_1_s = 69, RULE_showTextImage_s = 70, + RULE_hideImage_s = 71, RULE_showGif_0_s = 72, RULE_showGif_1_s = 73, RULE_moveImage_s = 74, + RULE_setCurtain_0_s = 75, RULE_setCurtain_1_s = 76, RULE_screenFlash_s = 77, + RULE_setWeather_s = 78, RULE_move_s = 79, RULE_moveHero_s = 80, RULE_jump_s = 81, + RULE_jumpHero_s = 82, RULE_playBgm_s = 83, RULE_pauseBgm_s = 84, RULE_resumeBgm_s = 85, + RULE_loadBgm_s = 86, RULE_freeBgm_s = 87, RULE_playSound_s = 88, RULE_stopSound_s = 89, + RULE_setVolume_s = 90, RULE_win_s = 91, RULE_lose_s = 92, RULE_restart_s = 93, + RULE_input_s = 94, RULE_input2_s = 95, RULE_if_s = 96, RULE_if_1_s = 97, + RULE_switch_s = 98, RULE_switchCase = 99, RULE_choices_s = 100, RULE_choicesContext = 101, + RULE_confirm_s = 102, RULE_while_s = 103, RULE_dowhile_s = 104, RULE_break_s = 105, + RULE_continue_s = 106, RULE_wait_s = 107, RULE_waitAsync_s = 108, RULE_callBook_s = 109, + RULE_callSave_s = 110, RULE_autoSave_s = 111, RULE_callLoad_s = 112, RULE_previewUI_s = 113, + RULE_clearMap_s = 114, RULE_clearMap_1_s = 115, RULE_setAttribute_s = 116, + RULE_fillText_s = 117, RULE_fillBoldText_s = 118, RULE_drawTextContent_s = 119, + RULE_fillRect_s = 120, RULE_strokeRect_s = 121, RULE_drawLine_s = 122, + RULE_drawArrow_s = 123, RULE_fillPolygon_s = 124, RULE_strokePolygon_s = 125, + RULE_fillCircle_s = 126, RULE_strokeCircle_s = 127, RULE_drawImage_s = 128, + RULE_drawImage_1_s = 129, RULE_drawIcon_s = 130, RULE_drawBackground_s = 131, + RULE_drawSelector_s = 132, RULE_drawSelector_1_s = 133, RULE_unknown_s = 134, + RULE_function_s = 135, RULE_pass_s = 136, RULE_statExprSplit = 137, RULE_expression = 138, + RULE_negate_e = 139, RULE_bool_e = 140, RULE_idString_e = 141, RULE_idString_1_e = 142, + RULE_idString_2_e = 143, RULE_evFlag_e = 144, RULE_evalString_e = 145; + public static final String[] ruleNames = { + "event_m", "level_m", "levelCase", "shop_m", "shoplist", "emptyshop", + "shopcommonevent", "shopsub", "shopChoices", "shopEffect", "afterBattle_m", + "afterGetItem_m", "afterOpenDoor_m", "firstArrive_m", "eachArrive_m", + "changeFloor_m", "commonEvent_m", "action", "text_0_s", "text_1_s", "comment_s", + "autoText_s", "scrollText_s", "setText_s", "tip_s", "setValue_s", "addValue_s", + "setFloor_s", "setGlobalAttribute_s", "setGlobalValue_s", "setGlobalFlag_s", + "show_s", "hide_s", "trigger_s", "insert_1_s", "insert_2_s", "revisit_s", + "exit_s", "setBlock_s", "showFloorImg_s", "hideFloorImg_s", "showBgFgMap_s", + "hideBgFgMap_s", "setBgFgBlock_s", "setHeroIcon_s", "update_s", "showStatusBar_s", + "hideStatusBar_s", "showHero_s", "hideHero_s", "updateEnemys_s", "sleep_s", + "battle_s", "battle_1_s", "openDoor_s", "closeDoor_s", "changeFloor_s", + "changePos_0_s", "changePos_1_s", "useItem_s", "openShop_s", "disableShop_s", + "follow_s", "unfollow_s", "vibrate_s", "animate_s", "setViewport_s", "moveViewport_s", + "showImage_s", "showImage_1_s", "showTextImage_s", "hideImage_s", "showGif_0_s", + "showGif_1_s", "moveImage_s", "setCurtain_0_s", "setCurtain_1_s", "screenFlash_s", + "setWeather_s", "move_s", "moveHero_s", "jump_s", "jumpHero_s", "playBgm_s", + "pauseBgm_s", "resumeBgm_s", "loadBgm_s", "freeBgm_s", "playSound_s", + "stopSound_s", "setVolume_s", "win_s", "lose_s", "restart_s", "input_s", + "input2_s", "if_s", "if_1_s", "switch_s", "switchCase", "choices_s", "choicesContext", + "confirm_s", "while_s", "dowhile_s", "break_s", "continue_s", "wait_s", + "waitAsync_s", "callBook_s", "callSave_s", "autoSave_s", "callLoad_s", + "previewUI_s", "clearMap_s", "clearMap_1_s", "setAttribute_s", "fillText_s", + "fillBoldText_s", "drawTextContent_s", "fillRect_s", "strokeRect_s", "drawLine_s", + "drawArrow_s", "fillPolygon_s", "strokePolygon_s", "fillCircle_s", "strokeCircle_s", + "drawImage_s", "drawImage_1_s", "drawIcon_s", "drawBackground_s", "drawSelector_s", + "drawSelector_1_s", "unknown_s", "function_s", "pass_s", "statExprSplit", + "expression", "negate_e", "bool_e", "idString_e", "idString_1_e", "idString_2_e", + "evFlag_e", "evalString_e" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'\u6D5C\u5B29\u6B22'", "'\u7455\u55D9\u6D0A\u7459\uFE40\u5F42\u9363\uFFFD'", + "'\u935A\uE21C\u6564'", "'\u95AB\u6C33\uE511\u9418\u8235\uFFFD\uFFFD'", + "'\u93C4\u53E5\u6FC0'", "'\u7EDB\u590C\u9A87\u93BB\u612C\u5D0C'", "'\u95C7\uFFFD\u59F9\uFFFD'", + "'\u7EC9\u677F\u5F7F'", "'\u93C4\uE21A\u60C1\u93B5\uFF49\u6ACE\u7F01\u5FDB\u7359'", + "'\u934F\u3125\u772C\u935F\u55D7\u7C35\u9352\u6944\u3003'", "'\u935F\u55D7\u7C35 id'", + "'\u8E47\uE0A3\u5D4E\u935F\u55D7\u7C35\u93CD\u5FCE\u8151\u935A\u5D87\u041E'", + "'\u93C8\uE044\u7D11\u935A\uE21C\u59F8\u93AC\u4F78\u57AF\u6D93\u5D86\u6A09\u7EC0\u54C4\u6E6A\u9352\u6944\u3003\u6D93\uFFFD'", + "'\u93B5\u0446\uE511\u9428\u52EB\u53D5\u934F\u53D8\u7C28\u6D60\uFFFD id'", + "'\u9359\u509B\u669F\u9352\u6944\u3003'", "'\u93CD\u56EC\uE57D'", "'\u9365\u70AC\u7223'", + "'\u934F\u8FA9\u6564times'", "'\u6D63\u8DE8\u6564'", "'\u5A11\u5823\uFFFD\uFFFD'", + "'\u93C4\u5267\u305A\u93C2\u56E7\u74E7'", "'\u935F\u55D7\u7C35\u95AB\u5910\u300D'", + "'+='", "'\u93B4\u6A3B\u679F\u7F01\u64B4\u6F6B\u935A\uFFFD'", "'\u947E\u5CF0\u5F47\u95AC\u64B3\u53FF\u935A\uFFFD'", + "'\u93B5\u64B3\u7D11\u95C2\u3125\u6097'", "'\u68E3\u6828\uE0BC\u9352\u62CC\u63EA\u59A4\u714E\u7730'", + "'\u59E3\u5FD4\uE0BC\u9352\u62CC\u63EA\u59A4\u714E\u7730'", "'\u59A4\u517C\uE76A, \u6D7C\u72BB\uFFFD\u4F80\u68EC'", + "'x'", "','", "'y'", "'\u93C8\u6FC6\u609C'", "'\u9354\u3127\u657E\u93C3\u5815\u68FF'", + "'\u934F\u4F7D\uE18F\u7ECC\u5757\uFFFD\uFFFD'", "'\u934F\uE100\u53E1\u6D5C\u5B29\u6B22'", + "'\u93C4\u5267\u305A\u93C2\u56E9\u73F7'", "':'", "'\u9365\u60E7\u511A'", + "'\u7035\u7845\u763D\u5997\u55D8\u6665\u93CB\uFFFD'", "'\u5A23\u8BF2\u59DE\u5A09\u3129\u5674'", + "'\u9477\uE044\u59E9\u9353\u0444\u510F\u93C2\u56E8\u6E70: \u93CD\u56EC\uE57D'", + "'\u93C3\u5815\u68FF'", "'\u5A4A\u6C2C\u59E9\u9353\u0444\u510F\u93C2\u56E8\u6E70:'", + "'\u741B\u5C83\u7A9B'", "'\u6D93\u5D87\u74D1\u5BF0\u546E\u58BD\u741B\u5C7D\u756C\u59E3\uFFFD'", + "'\u7481\u5267\u7586\u9353\u0444\u510F\u93C2\u56E8\u6E70\u9428\u52EB\u7758\u93AC\uFFFD'", + "'\u6D63\u5D87\u7586'", "'\u934B\u5FD5\u0429\u934D\u5FD5\u790C'", "'\u7035\u5F52\u7D88'", + "'\u93CD\u56EC\uE57D\u68F0\u6EC6\u58CA'", "'\u59DD\uFF46\u6783\u68F0\u6EC6\u58CA'", + "'\u9473\u5C7E\u6AD9\u9479\uFFFD'", "'\u7EEE\u693E\u7D8B'", "'\u93CD\u56EC\uE57D\u701B\u693E\u7D8B\u6FB6\u0443\u76AC'", + "'\u59DD\uFF46\u6783\u701B\u693E\u7D8B\u6FB6\u0443\u76AC'", "'\u93B5\u64B3\u74E7\u95C2\u64AE\u6BA7'", + "'\u701B\u6943\uE0C1\u95C2\u78CB\u7A9B'", "'\u93C4\u5267\u305A\u93BB\u612E\u305A'", + "'\u9365\u70AC\u7223ID'", "'\u93C1\u677F\uFFFD\u517C\u6437\u6D63\uFFFD'", + "'\u935A\u5D87\u041E'", "'\u934A\uFFFD'", "'\u93C1\u677F\uFFFD\u714E\uE583\u9351\uFFFD'", + "'\u7481\u5267\u7586\u59A4\u714E\u7730\u705E\u70B4\uFFFD\uFFFD'", "'\u59A4\u714E\u7730\u935A\uFFFD'", + "'\u7481\u5267\u7586\u934F\u3125\u772C\u705E\u70B4\uFFFD\uFFFD'", "'\u7481\u5267\u7586\u934F\u3125\u772C\u93C1\u677F\uFFFD\uFFFD'", + "'\u7481\u5267\u7586\u7EEF\u8364\u7CBA\u5BEE\uFFFD\u934F\uFFFD'", "'\u93C4\u5267\u305A\u6D5C\u5B29\u6B22'", + "'\u59A4\u714E\u7730'", "'\u95C5\u612F\u68CC\u6D5C\u5B29\u6B22'", "'\u7459\uFE40\u5F42\u6D5C\u5B29\u6B22'", + "'\u6D93\u5D87\u7CA8\u93C9\u71B7\u7D8B\u9353\u5D84\u7C28\u6D60\uFFFD'", + "'\u93BB\u6391\u53C6\u934F\uE100\u53E1\u6D5C\u5B29\u6B22'", "'\u93BB\u6391\u53C6\u6D5C\u5B29\u6B22'", + "'\u95B2\u5D85\u60CE\u8930\u64B3\u58A0\u6D5C\u5B29\u6B22'", "'\u7ED4\u5B2A\u57E2\u7F01\u64B4\u6F6B\u8930\u64B3\u58A0\u6D5C\u5B29\u6B22'", + "'\u675E\uE100\u5F49\u9365\u60E7\u6F61\u6D93\uFFFD'", "'\u93C4\u5267\u305A\u7490\u6751\u6D58'", + "'\u95C5\u612F\u68CC\u7490\u6751\u6D58'", "'\u93C4\u5267\u305A\u9365\u60E7\u7730\u9367\uFFFD'", + "'\u95C5\u612F\u68CC\u9365\u60E7\u7730\u9367\uFFFD'", "'\u675E\uE100\u5F49\u9365\u60E7\u7730\u9367\uFFFD'", + "'\u6D93\uFFFD'", "'\u93C7\u5B58\u657C\u7459\u6395\u58CA\u741B\u5C83\u86CB\u9365\uFFFD'", + "'\u93C7\u5B58\u67CA\u9418\u8235\uFFFD\u4F79\u722E\u935C\u5C7D\u6E74\u9365\u70AC\u6A09\u6D7C\uFFFD'", + "'\u93C4\u5267\u305A\u9418\u8235\uFFFD\u4F79\u722E'", "'\u95C5\u612F\u68CC\u9418\u8235\uFFFD\u4F79\u722E'", + "'\u6D93\u5D89\u6BA3\u9498\u5FD5\u73EB\u705E\u5FD3\u4F10\u934F\u950B\u722E'", + "'\u93C4\u5267\u305A\u9355\u56E7\uFF0B'", "'\u95C5\u612F\u68CC\u9355\u56E7\uFF0B'", + "'\u93C7\u5B58\u67CA\u93AC\uE046\u58BF\u93C1\u7248\u5D41'", "'\u7EDB\u590A\u7DDF'", + "'\u59E3\uE0A4\uE757'", "'\u6D93\u5D85\u5F72\u741A\u7375trl\u74BA\u5BA0\u7E43'", + "'\u5BEE\u54C4\u57D7\u93B4\u6A3B\u679F'", "'\u5BEE\uFFFD\u95C2\uFFFD'", + "'\u95C7\uFFFD\u7455\u4F80\u631C\u9356\uFFFD'", "'\u934F\u62BD\u68EC'", + "'ID'", "'\u59A4\u714E\u7730\u9352\u56E8\u5D32'", "'\u6D63\u5D87\u7586\u9352\u56E8\u5D32'", + "'\u9355\u56E7\uFF0B\u675E\uE100\u609C'", "'\u6D63\u8DE8\u6564\u95AC\u64B3\u53FF'", + "'\u93B5\u64B3\u7D11\u934F\u3125\u772C\u935F\u55D7\u7C35'", "'\u7EC2\u4F7A\u6564\u934F\u3125\u772C\u935F\u55D7\u7C35'", + "'\u74BA\u71BC\u6BA2\u9355\u56E7\uFF0B'", "'\u741B\u5C83\u86CB\u9365\uFFFD'", + "'\u9359\u6828\u79F7\u74BA\u71BC\u6BA2'", "'\u9422\u5A5A\u6F70\u95C7\u56E7\u59E9'", + "'\u93C4\u5267\u305A\u9354\u3127\u657E'", "'\u7481\u5267\u7586\u7459\u55DA\uE757'", + "'\u5BB8\uFE3F\u7B02\u7459\u6391\u6F57\u93CD\uFFFD'", "'\u7EC9\u8BF2\u59E9\u7459\u55DA\uE757'", + "'\u93C4\u5267\u305A\u9365\u5267\u5896'", "'\u9365\u5267\u5896\u7F02\u6827\u5F7F'", + "'\u9365\u5267\u5896'", "'\u7F01\u6A3A\u57D7\u9428\u52EE\u6363\u9410\u7470\u511A\u7EF1\uFFFD'", + "'\u6D93\u5D89\uFFFD\u5FD4\u69D1\u6434\uFFFD'", "'\u7441\u4F78\u58C0\u9428\u52EE\u6363\u9410\u7470\u511A\u7EF1\uFFFD'", + "'\u7039\uFFFD'", "'\u6942\uFFFD'", "'\u93C4\u5267\u305A\u9365\u5267\u5896\u9356\u6828\u6783\u93C8\uFFFD'", + "'\u93C2\u56E8\u6E70\u9350\u546D\uE190'", "'\u74A7\u98CE\u5063\u934D\u5FD5\u790C'", + "'\u5A13\u5474\u6ACE\u9365\u5267\u5896'", "'\u93C4\u5267\u305A\u9354\u3125\u6D58'", + "'\u74A7\u98CE\u5063\u934D\u5FD5\u790C\u6D63\u5D87\u7586'", "'\u5A13\u5474\u6ACE\u93B5\uFFFD\u93C8\u590A\u59E9\u9365\uFFFD'", + "'\u9365\u5267\u5896\u7EC9\u8BF2\u59E9'", "'\u7F01\u5822\u5063\u934D\u5FD5\u790C\u6D63\u5D87\u7586'", + "'\u7EC9\u8BF2\u59E9\u93C3\u5815\u68FF'", "'\u93C7\u5B58\u657C\u9422\u5A5A\u6F70\u9479\u8336\u769F'", + "'\u93AD\u3220\uE632\u9422\u5A5A\u6F70\u9479\u8336\u769F'", "'\u9422\u5A5A\u6F70\u95C2\uE046\u510A'", + "'\u9357\u66DF\uE0BC\u93C3\u5815\u68FF'", "'\u93B5\u0446\uE511\u5A06\u2103\u669F'", + "'\u93C7\u5B58\u657C\u6FB6\u2542\u76B5'", "'\u5BEE\u54C4\u5BB3'", "'\u7EC9\u8BF2\u59E9\u6D5C\u5B29\u6B22'", + "'\u6D93\u5D86\u79F7\u6FB6\uFFFD'", "'\u7EC9\u8BF2\u59E9\u9355\u56E7\uFF0B'", + "'\u74BA\u5BA0\u7A6C\u6D5C\u5B29\u6B22'", "'\u74A7\u5CF0\uE750 x'", "'\u7F01\u581F\uE11B x'", + "'\u74BA\u5BA0\u7A6C\u9355\u56E7\uFF0B'", "'\u93BE\uE15F\u6581\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0'", + "'\u93B8\u4F7A\u753B\u9352\u9881\u7B05\u6D93\uE045\u6E70\u6D5C\u5B29\u6B22'", + "'\u93C6\u509A\u4EE0\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0'", "'\u93AD\u3220\uE632\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0'", + "'\u68F0\u52EB\u59DE\u675E\u501F\u5117\u93C5\uE21E\u7176\u6D94\uFFFD'", + "'\u95B2\u5A43\u6581\u9473\u5C7E\u6AD9\u95CA\u5145\u7BB0\u9428\u52ED\u7D26\u701B\uFFFD'", + "'\u93BE\uE15F\u6581\u95CA\u866B\u6665'", "'\u934B\u6EC4\uE11B\u6D94\u5B2A\u58A0\u95CA\u866B\u6665'", + "'\u934B\u6EC4\uE11B\u93B5\uFFFD\u93C8\u5910\u7176\u93C1\uFFFD'", "'\u7481\u5267\u7586\u95CA\u62BD\u567A'", + "'\u5A13\u612C\u5F49\u93C3\u5815\u68FF'", "'\u5A13\u544A\u5799\u9473\u6EC3\u57C4,\u7F01\u64B3\u772C'", + "'\u6D93\u5D88\uE178\u934F\u30E6\uE701\u9357\uFFFD'", "'\u5A13\u544A\u5799\u6FB6\u8FAB\u89E6,\u7F01\u64B3\u772C'", + "'\u9429\u5B58\u5E34\u9365\u70B2\u57CC\u93CD\u56EC\uE57D\u9423\u5C84\u6F70'", + "'\u93BA\u30E5\u5F48\u9422\u3126\u57DB\u6748\u64B3\u53C6\u93C1\u677F\u74E7,\u93BB\u612E\u305A'", + "'\u93BA\u30E5\u5F48\u9422\u3126\u57DB\u6748\u64B3\u53C6\u93C2\u56E8\u6E70,\u93BB\u612E\u305A'", + "'\u6FE1\u509B\u7049'", "'\u935A\uFE40\u57AF'", "'\u6FB6\u6C36\u5678\u9352\u55D8\uE120 \u93C9\u2032\u6B22\u9352\u3085\u757E'", + "'\u6FE1\u509B\u7049\u93C4\uFFFD'", "'\u9428\u52EB\u6E80\u935A\uFFFD'", + "'\u6D93\u5D88\u70E6\u9351\uFFFD'", "'\u95AB\u5910\u300D'", "'\u701B\u6130\uFFFD\u5910\u300D'", + "'\u68F0\u6EC6\u58CA'", "'\u9351\u8679\u5E47\u93C9\u2032\u6B22'", "'\u93C4\u5267\u305A\u7EAD\uE1BF\uE17B\u5997\uFFFD'", + "'\u7EAD\uE1BC\u757E\u9428\u52EB\u6E80\u935A\uFFFD'", "'\u951B\u5825\u7CAF\u7481\u3089\uFFFD\u5909\u8151'", + "'\u951B\uFFFD'", "'\u9359\u6828\u79F7\u9428\u52EB\u6E80\u935A\uFFFD'", + "'\u9353\u5D87\u7586\u93C9\u2032\u6B22\u5BF0\uE046\u5E46'", "'\u8930\uFFFD'", + "'\u93C3\uFFFD'", "'\u935A\u5EA3\u7586\u93C9\u2032\u6B22\u5BF0\uE046\u5E46'", + "'\u74BA\u51B2\u56AD\u8930\u64B3\u58A0\u5BF0\uE046\u5E46\u93B4\u6827\u53D5\u934F\u53D8\u7C28\u6D60\uFFFD'", + "'\u7F01\u0445\u753B\u8930\u64B3\u58A0\u5BF0\uE046\u5E46'", "'\u7EDB\u590A\u7DDF\u9422\u3126\u57DB\u93BF\u5D84\u7D94\u9A9E\u60F0\u5E4F\u5BF0\u6941\u5BDC\u95BF\uE1BD\u57A8\u9410\u7470\u56AE\u6DC7\u2103\u4F05'", + "'\u7EDB\u590A\u7DDF\u93B5\uFFFD\u93C8\u590A\u7D13\u59DD\u30E4\u7C28\u6D60\u8235\u58BD\u741B\u5C7D\u756C\u59E3\uFFFD'", + "'\u935B\u714E\u56AD\u93AC\uE046\u58BF\u93B5\u5B2A\u553D'", "'\u935B\u714E\u56AD\u701B\u6A3B\u3002\u6924\u7538\u6F70'", + "'\u9477\uE044\u59E9\u701B\u6A3B\u3002'", "'\u6D93\u5D86\u5F41\u7EC0\uFFFD'", + "'\u935B\u714E\u56AD\u7487\u7ED8\u3002\u6924\u7538\u6F70'", "'ui\u7F01\u6A3A\u57D7\u9A9E\u5815\uE569\u7459\uFFFD'", + "'\u951B\u581D\u5F3B\u9351\u7ED8\uE11D\u6924\u7470\u5F72\u6769\u6D9C\uE511\u68F0\u52EE\uE74D\u951B\uFFFD'", + "'\u5A13\u5474\u6ACE\u9422\u8BF2\u7AF7'", "'\u5A13\u546F\u2516\u9422\u8BF2\u7AF7'", + "'\u7481\u5267\u7586\u9422\u8BF2\u7AF7\u705E\u70B4\uFFFD\uFFFD'", "'\u701B\u693E\u7D8B'", + "'\u6FC9\uE0A2\u5396\u93CD\u5CF0\u7D21'", "'\u6748\u89C4\uE50B\u93CD\u5CF0\u7D21'", + "'\u7EFE\u57AE\uE194\u6434\uFFFD'", "'\u9369\u54C4\u566F\u7EFE\uFFFD'", + "'z\u934A\uFFFD'", "'\u7F01\u6A3A\u57D7\u93C2\u56E8\u6E70'", "'\u93CD\u5CF0\u7D21'", + "'\u93C8\uFFFD\u6FB6\u0443\uE194\u6434\uFFFD'", "'\u7F01\u6A3A\u57D7\u93BB\u5FDA\u7ADF\u93C2\u56E8\u6E70'", + "'\u7F01\u6A3A\u57D7\u6FB6\u6C33\uE511\u93C2\u56E8\u6E70'", "'\u701B\u693E\u7D8B\u6FB6\u0443\u76AC'", + "'\u7F01\u6A3A\u57D7\u942D\u2541\u8230'", "'\u7F01\u6A3A\u57D7\u942D\u2541\u8230\u6748\u89C4\uE50B'", + "'\u7EFE\u57AE\uE194'", "'\u7F01\u6A3A\u57D7\u7EFE\u630E\uE18C'", "'\u7F01\u5822\u5063\u934D\u5FD5\u790C'", + "'\u7F01\u6A3A\u57D7\u7EE0\uE15E\u3054'", "'\u7F01\u6A3A\u57D7\u6FB6\u6C33\u7ADF\u8930\uFFFD'", + "'\u6924\u5241\u5063\u934D\u5FD5\u790C\u9352\u6944\u3003'", "'\u7F01\u6A3A\u57D7\u6FB6\u6C33\u7ADF\u8930\u3223\u7ADF\u5997\uFFFD'", + "'\u7F01\u6A3A\u57D7\u9366\uFFFD'", "'\u9366\u55D7\u7E3E'", "'\u9357\u5A42\u7DDE'", + "'\u7F01\u6A3A\u57D7\u9366\u55DA\u7ADF\u5997\uFFFD'", "'\u7F01\u6A3A\u57D7\u9365\u5267\u5896'", + "'\u7F01\u6A3A\u57D7\u9365\u70AC\u7223'", "'\u7F01\u6A3A\u57D7\u9473\u5C7E\u6AD9\u9365\uFFFD'", + "'\u7F01\u6A3A\u57D7\u95C2\uE046\u510A\u934F\u590B\u7223'", "'\u5A13\u5474\u6ACE\u95C2\uE046\u510A\u934F\u590B\u7223'", + "'\u9477\uE044\u757E\u6D94\u5909\u7C28\u6D60\uFFFD'", "'\u9477\uE044\u757E\u6D94\u5849S\u9474\u6C2D\u6E70'", + "'\u6D93\u5D88\u569C\u9354\u3126\u58BD\u741B\u5C7C\u7B05\u6D93\uFFFD\u6D93\uE043\u7C28\u6D60\uFFFD'", + "'=== statement ^ === expression v ==='", "'\u95C8\uFFFD'", "'\u9419\uE102\u73DB\u5BEE\uFFFD\u934F\uFFFD'", + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, "'BGNLaergayergfuybgv'", + "'=== meaningful ^ ==='", "'\u5BEE\uFFFD\u6FEE\uFFFD'", "'\u7F01\u64B4\u6F6B'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "IdText", "RawEvalString", "PosString", + "Floor_List", "Stair_List", "SetTextPosition_List", "TextAlign_List", + "TextBaseline_List", "ShopUse_List", "Arithmetic_List", "Weather_List", + "B_0_List", "B_1_List", "Bg_Fg_List", "Event_List", "Floor_Meta_List", + "Global_Attribute_List", "Global_Value_List", "Global_Flag_List", "Colour", + "Angle", "Bool", "Int", "Letter_List", "Number", "Direction_List", "DirectionEx_List", + "StepString", "IdString", "FixedId_List", "Id_List", "EvalString", "BGNL", + "MeaningfulSplit", "BSTART", "BEND", "Newline", "WhiteSpace", "BlockComment", + "LineComment" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "MotaAction.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public MotaActionParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class Event_mContext extends ParserRuleContext { + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public List Bool() { return getTokens(MotaActionParser.Bool); } + public TerminalNode Bool(int i) { + return getToken(MotaActionParser.Bool, i); + } + public TerminalNode B_0_List() { return getToken(MotaActionParser.B_0_List, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public Event_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_event_m; } + } + + public final Event_mContext event_m() throws RecognitionException { + Event_mContext _localctx = new Event_mContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_event_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(292); + match(T__0); + setState(294); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(293); + match(BGNL); + } + } + + setState(296); + match(Newline); + setState(297); + match(T__1); + setState(298); + match(Bool); + setState(299); + match(T__2); + setState(300); + match(Bool); + setState(301); + match(T__3); + setState(302); + match(B_0_List); + setState(303); + match(T__4); + setState(304); + match(Bool); + setState(306); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(305); + match(BGNL); + } + } + + setState(308); + match(Newline); + setState(310); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(309); + action(); + } + } + setState(312); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(314); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Level_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List levelCase() { + return getRuleContexts(LevelCaseContext.class); + } + public LevelCaseContext levelCase(int i) { + return getRuleContext(LevelCaseContext.class,i); + } + public Level_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_level_m; } + } + + public final Level_mContext level_m() throws RecognitionException { + Level_mContext _localctx = new Level_mContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_level_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(316); + match(T__5); + setState(318); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(317); + match(BGNL); + } + } + + setState(320); + match(Newline); + setState(322); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(321); + levelCase(); + } + } + setState(324); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==T__6 ); + setState(326); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LevelCaseContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public LevelCaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_levelCase; } + } + + public final LevelCaseContext levelCase() throws RecognitionException { + LevelCaseContext _localctx = new LevelCaseContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_levelCase); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(328); + match(T__6); + setState(329); + expression(0); + setState(330); + match(T__7); + setState(332); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(331); + match(EvalString); + } + } + + setState(334); + match(T__8); + setState(335); + match(Bool); + setState(337); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(336); + match(BGNL); + } + } + + setState(339); + match(Newline); + setState(341); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(340); + action(); + } + } + setState(343); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Shop_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List shoplist() { + return getRuleContexts(ShoplistContext.class); + } + public ShoplistContext shoplist(int i) { + return getRuleContext(ShoplistContext.class,i); + } + public Shop_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shop_m; } + } + + public final Shop_mContext shop_m() throws RecognitionException { + Shop_mContext _localctx = new Shop_mContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_shop_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(345); + match(T__9); + setState(347); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(346); + match(BGNL); + } + } + + setState(349); + match(Newline); + setState(351); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(350); + shoplist(); + } + } + setState(353); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==T__10 || _la==Newline ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShoplistContext extends ParserRuleContext { + public ShopsubContext shopsub() { + return getRuleContext(ShopsubContext.class,0); + } + public ShopcommoneventContext shopcommonevent() { + return getRuleContext(ShopcommoneventContext.class,0); + } + public EmptyshopContext emptyshop() { + return getRuleContext(EmptyshopContext.class,0); + } + public ShoplistContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shoplist; } + } + + public final ShoplistContext shoplist() throws RecognitionException { + ShoplistContext _localctx = new ShoplistContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_shoplist); + try { + setState(358); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(355); + shopsub(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(356); + shopcommonevent(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(357); + emptyshop(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EmptyshopContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public EmptyshopContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_emptyshop; } + } + + public final EmptyshopContext emptyshop() throws RecognitionException { + EmptyshopContext _localctx = new EmptyshopContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_emptyshop); + try { + enterOuterAlt(_localctx, 1); + { + setState(360); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShopcommoneventContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public ShopcommoneventContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shopcommonevent; } + } + + public final ShopcommoneventContext shopcommonevent() throws RecognitionException { + ShopcommoneventContext _localctx = new ShopcommoneventContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_shopcommonevent); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(362); + match(T__10); + setState(363); + match(IdString); + setState(364); + match(T__11); + setState(365); + match(EvalString); + setState(367); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(366); + match(BGNL); + } + } + + setState(369); + match(T__12); + setState(370); + match(Bool); + setState(372); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(371); + match(BGNL); + } + } + + setState(374); + match(T__13); + setState(375); + match(EvalString); + setState(376); + match(T__14); + setState(378); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(377); + match(EvalString); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShopsubContext extends ParserRuleContext { + public List IdString() { return getTokens(MotaActionParser.IdString); } + public TerminalNode IdString(int i) { + return getToken(MotaActionParser.IdString, i); + } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public List Bool() { return getTokens(MotaActionParser.Bool); } + public TerminalNode Bool(int i) { + return getToken(MotaActionParser.Bool, i); + } + public TerminalNode ShopUse_List() { return getToken(MotaActionParser.ShopUse_List, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public List shopChoices() { + return getRuleContexts(ShopChoicesContext.class); + } + public ShopChoicesContext shopChoices(int i) { + return getRuleContext(ShopChoicesContext.class,i); + } + public ShopsubContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shopsub; } + } + + public final ShopsubContext shopsub() throws RecognitionException { + ShopsubContext _localctx = new ShopsubContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_shopsub); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(380); + match(T__10); + setState(381); + match(IdString); + setState(382); + match(T__15); + setState(383); + match(EvalString); + setState(384); + match(T__16); + setState(385); + match(IdString); + setState(387); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(386); + match(BGNL); + } + } + + setState(389); + match(Newline); + setState(390); + match(T__11); + setState(391); + match(EvalString); + setState(392); + match(T__17); + setState(393); + match(Bool); + setState(395); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(394); + match(BGNL); + } + } + + setState(397); + match(Newline); + setState(398); + match(T__12); + setState(399); + match(Bool); + setState(401); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(400); + match(BGNL); + } + } + + setState(403); + match(Newline); + setState(404); + match(T__18); + setState(405); + match(ShopUse_List); + setState(406); + match(T__19); + setState(407); + match(EvalString); + setState(409); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(408); + match(BGNL); + } + } + + setState(411); + match(Newline); + setState(412); + match(T__20); + setState(413); + match(EvalString); + setState(415); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(414); + match(BGNL); + } + } + + setState(417); + match(Newline); + setState(419); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(418); + shopChoices(); + } + } + setState(421); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==T__21 ); + setState(423); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShopChoicesContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List shopEffect() { + return getRuleContexts(ShopEffectContext.class); + } + public ShopEffectContext shopEffect(int i) { + return getRuleContext(ShopEffectContext.class,i); + } + public ShopChoicesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shopChoices; } + } + + public final ShopChoicesContext shopChoices() throws RecognitionException { + ShopChoicesContext _localctx = new ShopChoicesContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_shopChoices); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(425); + match(T__21); + setState(426); + match(EvalString); + setState(427); + match(T__19); + setState(429); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(428); + match(EvalString); + } + } + + setState(432); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(431); + match(BGNL); + } + } + + setState(434); + match(Newline); + setState(436); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(435); + shopEffect(); + } + } + setState(438); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==IdString ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShopEffectContext extends ParserRuleContext { + public IdString_eContext idString_e() { + return getRuleContext(IdString_eContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ShopEffectContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shopEffect; } + } + + public final ShopEffectContext shopEffect() throws RecognitionException { + ShopEffectContext _localctx = new ShopEffectContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_shopEffect); + try { + enterOuterAlt(_localctx, 1); + { + setState(440); + idString_e(); + setState(441); + match(T__22); + setState(442); + expression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AfterBattle_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public AfterBattle_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_afterBattle_m; } + } + + public final AfterBattle_mContext afterBattle_m() throws RecognitionException { + AfterBattle_mContext _localctx = new AfterBattle_mContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_afterBattle_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(444); + match(T__23); + setState(446); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(445); + match(BGNL); + } + } + + setState(448); + match(Newline); + setState(450); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(449); + action(); + } + } + setState(452); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(454); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AfterGetItem_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public AfterGetItem_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_afterGetItem_m; } + } + + public final AfterGetItem_mContext afterGetItem_m() throws RecognitionException { + AfterGetItem_mContext _localctx = new AfterGetItem_mContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_afterGetItem_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(456); + match(T__24); + setState(458); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(457); + match(BGNL); + } + } + + setState(460); + match(Newline); + setState(462); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(461); + action(); + } + } + setState(464); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(466); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AfterOpenDoor_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public AfterOpenDoor_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_afterOpenDoor_m; } + } + + public final AfterOpenDoor_mContext afterOpenDoor_m() throws RecognitionException { + AfterOpenDoor_mContext _localctx = new AfterOpenDoor_mContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_afterOpenDoor_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(468); + match(T__25); + setState(470); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(469); + match(BGNL); + } + } + + setState(472); + match(Newline); + setState(474); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(473); + action(); + } + } + setState(476); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(478); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FirstArrive_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public FirstArrive_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_firstArrive_m; } + } + + public final FirstArrive_mContext firstArrive_m() throws RecognitionException { + FirstArrive_mContext _localctx = new FirstArrive_mContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_firstArrive_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(480); + match(T__26); + setState(482); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(481); + match(BGNL); + } + } + + setState(484); + match(Newline); + setState(486); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(485); + action(); + } + } + setState(488); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(490); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EachArrive_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public EachArrive_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_eachArrive_m; } + } + + public final EachArrive_mContext eachArrive_m() throws RecognitionException { + EachArrive_mContext _localctx = new EachArrive_mContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_eachArrive_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(492); + match(T__27); + setState(494); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(493); + match(BGNL); + } + } + + setState(496); + match(Newline); + setState(498); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(497); + action(); + } + } + setState(500); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(502); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ChangeFloor_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Floor_List() { return getToken(MotaActionParser.Floor_List, 0); } + public TerminalNode Stair_List() { return getToken(MotaActionParser.Stair_List, 0); } + public List Number() { return getTokens(MotaActionParser.Number); } + public TerminalNode Number(int i) { + return getToken(MotaActionParser.Number, i); + } + public TerminalNode DirectionEx_List() { return getToken(MotaActionParser.DirectionEx_List, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public ChangeFloor_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_changeFloor_m; } + } + + public final ChangeFloor_mContext changeFloor_m() throws RecognitionException { + ChangeFloor_mContext _localctx = new ChangeFloor_mContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_changeFloor_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(504); + match(T__28); + setState(506); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(505); + match(BGNL); + } + } + + setState(508); + match(Newline); + setState(509); + match(Floor_List); + setState(511); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(510); + match(IdString); + } + } + + setState(513); + match(Stair_List); + setState(514); + match(T__29); + setState(515); + match(Number); + setState(516); + match(T__30); + setState(517); + match(T__31); + setState(518); + match(Number); + setState(519); + match(T__32); + setState(520); + match(DirectionEx_List); + setState(521); + match(T__33); + setState(523); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(522); + match(Int); + } + } + + setState(525); + match(T__34); + setState(526); + match(Bool); + setState(527); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CommonEvent_mContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public CommonEvent_mContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_commonEvent_m; } + } + + public final CommonEvent_mContext commonEvent_m() throws RecognitionException { + CommonEvent_mContext _localctx = new CommonEvent_mContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_commonEvent_m); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(529); + match(T__35); + setState(531); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(530); + match(BGNL); + } + } + + setState(533); + match(Newline); + setState(535); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(534); + action(); + } + } + setState(537); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(539); + match(BEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ActionContext extends ParserRuleContext { + public Text_0_sContext text_0_s() { + return getRuleContext(Text_0_sContext.class,0); + } + public Text_1_sContext text_1_s() { + return getRuleContext(Text_1_sContext.class,0); + } + public Comment_sContext comment_s() { + return getRuleContext(Comment_sContext.class,0); + } + public AutoText_sContext autoText_s() { + return getRuleContext(AutoText_sContext.class,0); + } + public ScrollText_sContext scrollText_s() { + return getRuleContext(ScrollText_sContext.class,0); + } + public SetText_sContext setText_s() { + return getRuleContext(SetText_sContext.class,0); + } + public Tip_sContext tip_s() { + return getRuleContext(Tip_sContext.class,0); + } + public SetValue_sContext setValue_s() { + return getRuleContext(SetValue_sContext.class,0); + } + public AddValue_sContext addValue_s() { + return getRuleContext(AddValue_sContext.class,0); + } + public SetFloor_sContext setFloor_s() { + return getRuleContext(SetFloor_sContext.class,0); + } + public SetGlobalAttribute_sContext setGlobalAttribute_s() { + return getRuleContext(SetGlobalAttribute_sContext.class,0); + } + public SetGlobalValue_sContext setGlobalValue_s() { + return getRuleContext(SetGlobalValue_sContext.class,0); + } + public SetGlobalFlag_sContext setGlobalFlag_s() { + return getRuleContext(SetGlobalFlag_sContext.class,0); + } + public Show_sContext show_s() { + return getRuleContext(Show_sContext.class,0); + } + public Hide_sContext hide_s() { + return getRuleContext(Hide_sContext.class,0); + } + public Trigger_sContext trigger_s() { + return getRuleContext(Trigger_sContext.class,0); + } + public Insert_1_sContext insert_1_s() { + return getRuleContext(Insert_1_sContext.class,0); + } + public Insert_2_sContext insert_2_s() { + return getRuleContext(Insert_2_sContext.class,0); + } + public Revisit_sContext revisit_s() { + return getRuleContext(Revisit_sContext.class,0); + } + public Exit_sContext exit_s() { + return getRuleContext(Exit_sContext.class,0); + } + public SetBlock_sContext setBlock_s() { + return getRuleContext(SetBlock_sContext.class,0); + } + public ShowFloorImg_sContext showFloorImg_s() { + return getRuleContext(ShowFloorImg_sContext.class,0); + } + public HideFloorImg_sContext hideFloorImg_s() { + return getRuleContext(HideFloorImg_sContext.class,0); + } + public ShowBgFgMap_sContext showBgFgMap_s() { + return getRuleContext(ShowBgFgMap_sContext.class,0); + } + public HideBgFgMap_sContext hideBgFgMap_s() { + return getRuleContext(HideBgFgMap_sContext.class,0); + } + public SetBgFgBlock_sContext setBgFgBlock_s() { + return getRuleContext(SetBgFgBlock_sContext.class,0); + } + public SetHeroIcon_sContext setHeroIcon_s() { + return getRuleContext(SetHeroIcon_sContext.class,0); + } + public Update_sContext update_s() { + return getRuleContext(Update_sContext.class,0); + } + public ShowStatusBar_sContext showStatusBar_s() { + return getRuleContext(ShowStatusBar_sContext.class,0); + } + public HideStatusBar_sContext hideStatusBar_s() { + return getRuleContext(HideStatusBar_sContext.class,0); + } + public ShowHero_sContext showHero_s() { + return getRuleContext(ShowHero_sContext.class,0); + } + public HideHero_sContext hideHero_s() { + return getRuleContext(HideHero_sContext.class,0); + } + public UpdateEnemys_sContext updateEnemys_s() { + return getRuleContext(UpdateEnemys_sContext.class,0); + } + public Sleep_sContext sleep_s() { + return getRuleContext(Sleep_sContext.class,0); + } + public Wait_sContext wait_s() { + return getRuleContext(Wait_sContext.class,0); + } + public WaitAsync_sContext waitAsync_s() { + return getRuleContext(WaitAsync_sContext.class,0); + } + public Battle_sContext battle_s() { + return getRuleContext(Battle_sContext.class,0); + } + public Battle_1_sContext battle_1_s() { + return getRuleContext(Battle_1_sContext.class,0); + } + public OpenDoor_sContext openDoor_s() { + return getRuleContext(OpenDoor_sContext.class,0); + } + public CloseDoor_sContext closeDoor_s() { + return getRuleContext(CloseDoor_sContext.class,0); + } + public ChangeFloor_sContext changeFloor_s() { + return getRuleContext(ChangeFloor_sContext.class,0); + } + public ChangePos_0_sContext changePos_0_s() { + return getRuleContext(ChangePos_0_sContext.class,0); + } + public ChangePos_1_sContext changePos_1_s() { + return getRuleContext(ChangePos_1_sContext.class,0); + } + public SetViewport_sContext setViewport_s() { + return getRuleContext(SetViewport_sContext.class,0); + } + public MoveViewport_sContext moveViewport_s() { + return getRuleContext(MoveViewport_sContext.class,0); + } + public UseItem_sContext useItem_s() { + return getRuleContext(UseItem_sContext.class,0); + } + public OpenShop_sContext openShop_s() { + return getRuleContext(OpenShop_sContext.class,0); + } + public DisableShop_sContext disableShop_s() { + return getRuleContext(DisableShop_sContext.class,0); + } + public Follow_sContext follow_s() { + return getRuleContext(Follow_sContext.class,0); + } + public Unfollow_sContext unfollow_s() { + return getRuleContext(Unfollow_sContext.class,0); + } + public Animate_sContext animate_s() { + return getRuleContext(Animate_sContext.class,0); + } + public Vibrate_sContext vibrate_s() { + return getRuleContext(Vibrate_sContext.class,0); + } + public ShowImage_sContext showImage_s() { + return getRuleContext(ShowImage_sContext.class,0); + } + public ShowImage_1_sContext showImage_1_s() { + return getRuleContext(ShowImage_1_sContext.class,0); + } + public HideImage_sContext hideImage_s() { + return getRuleContext(HideImage_sContext.class,0); + } + public ShowTextImage_sContext showTextImage_s() { + return getRuleContext(ShowTextImage_sContext.class,0); + } + public MoveImage_sContext moveImage_s() { + return getRuleContext(MoveImage_sContext.class,0); + } + public ShowGif_0_sContext showGif_0_s() { + return getRuleContext(ShowGif_0_sContext.class,0); + } + public ShowGif_1_sContext showGif_1_s() { + return getRuleContext(ShowGif_1_sContext.class,0); + } + public SetCurtain_0_sContext setCurtain_0_s() { + return getRuleContext(SetCurtain_0_sContext.class,0); + } + public SetCurtain_1_sContext setCurtain_1_s() { + return getRuleContext(SetCurtain_1_sContext.class,0); + } + public ScreenFlash_sContext screenFlash_s() { + return getRuleContext(ScreenFlash_sContext.class,0); + } + public SetWeather_sContext setWeather_s() { + return getRuleContext(SetWeather_sContext.class,0); + } + public Move_sContext move_s() { + return getRuleContext(Move_sContext.class,0); + } + public MoveHero_sContext moveHero_s() { + return getRuleContext(MoveHero_sContext.class,0); + } + public Jump_sContext jump_s() { + return getRuleContext(Jump_sContext.class,0); + } + public JumpHero_sContext jumpHero_s() { + return getRuleContext(JumpHero_sContext.class,0); + } + public PlayBgm_sContext playBgm_s() { + return getRuleContext(PlayBgm_sContext.class,0); + } + public PauseBgm_sContext pauseBgm_s() { + return getRuleContext(PauseBgm_sContext.class,0); + } + public ResumeBgm_sContext resumeBgm_s() { + return getRuleContext(ResumeBgm_sContext.class,0); + } + public LoadBgm_sContext loadBgm_s() { + return getRuleContext(LoadBgm_sContext.class,0); + } + public FreeBgm_sContext freeBgm_s() { + return getRuleContext(FreeBgm_sContext.class,0); + } + public PlaySound_sContext playSound_s() { + return getRuleContext(PlaySound_sContext.class,0); + } + public StopSound_sContext stopSound_s() { + return getRuleContext(StopSound_sContext.class,0); + } + public SetVolume_sContext setVolume_s() { + return getRuleContext(SetVolume_sContext.class,0); + } + public Win_sContext win_s() { + return getRuleContext(Win_sContext.class,0); + } + public Lose_sContext lose_s() { + return getRuleContext(Lose_sContext.class,0); + } + public Restart_sContext restart_s() { + return getRuleContext(Restart_sContext.class,0); + } + public If_sContext if_s() { + return getRuleContext(If_sContext.class,0); + } + public If_1_sContext if_1_s() { + return getRuleContext(If_1_sContext.class,0); + } + public Switch_sContext switch_s() { + return getRuleContext(Switch_sContext.class,0); + } + public While_sContext while_s() { + return getRuleContext(While_sContext.class,0); + } + public Dowhile_sContext dowhile_s() { + return getRuleContext(Dowhile_sContext.class,0); + } + public Break_sContext break_s() { + return getRuleContext(Break_sContext.class,0); + } + public Continue_sContext continue_s() { + return getRuleContext(Continue_sContext.class,0); + } + public Input_sContext input_s() { + return getRuleContext(Input_sContext.class,0); + } + public Input2_sContext input2_s() { + return getRuleContext(Input2_sContext.class,0); + } + public Choices_sContext choices_s() { + return getRuleContext(Choices_sContext.class,0); + } + public Confirm_sContext confirm_s() { + return getRuleContext(Confirm_sContext.class,0); + } + public CallBook_sContext callBook_s() { + return getRuleContext(CallBook_sContext.class,0); + } + public CallSave_sContext callSave_s() { + return getRuleContext(CallSave_sContext.class,0); + } + public AutoSave_sContext autoSave_s() { + return getRuleContext(AutoSave_sContext.class,0); + } + public CallLoad_sContext callLoad_s() { + return getRuleContext(CallLoad_sContext.class,0); + } + public PreviewUI_sContext previewUI_s() { + return getRuleContext(PreviewUI_sContext.class,0); + } + public ClearMap_sContext clearMap_s() { + return getRuleContext(ClearMap_sContext.class,0); + } + public ClearMap_1_sContext clearMap_1_s() { + return getRuleContext(ClearMap_1_sContext.class,0); + } + public SetAttribute_sContext setAttribute_s() { + return getRuleContext(SetAttribute_sContext.class,0); + } + public FillText_sContext fillText_s() { + return getRuleContext(FillText_sContext.class,0); + } + public FillBoldText_sContext fillBoldText_s() { + return getRuleContext(FillBoldText_sContext.class,0); + } + public DrawTextContent_sContext drawTextContent_s() { + return getRuleContext(DrawTextContent_sContext.class,0); + } + public FillRect_sContext fillRect_s() { + return getRuleContext(FillRect_sContext.class,0); + } + public StrokeRect_sContext strokeRect_s() { + return getRuleContext(StrokeRect_sContext.class,0); + } + public DrawLine_sContext drawLine_s() { + return getRuleContext(DrawLine_sContext.class,0); + } + public DrawArrow_sContext drawArrow_s() { + return getRuleContext(DrawArrow_sContext.class,0); + } + public FillPolygon_sContext fillPolygon_s() { + return getRuleContext(FillPolygon_sContext.class,0); + } + public StrokePolygon_sContext strokePolygon_s() { + return getRuleContext(StrokePolygon_sContext.class,0); + } + public FillCircle_sContext fillCircle_s() { + return getRuleContext(FillCircle_sContext.class,0); + } + public StrokeCircle_sContext strokeCircle_s() { + return getRuleContext(StrokeCircle_sContext.class,0); + } + public DrawImage_sContext drawImage_s() { + return getRuleContext(DrawImage_sContext.class,0); + } + public DrawImage_1_sContext drawImage_1_s() { + return getRuleContext(DrawImage_1_sContext.class,0); + } + public DrawIcon_sContext drawIcon_s() { + return getRuleContext(DrawIcon_sContext.class,0); + } + public DrawBackground_sContext drawBackground_s() { + return getRuleContext(DrawBackground_sContext.class,0); + } + public DrawSelector_sContext drawSelector_s() { + return getRuleContext(DrawSelector_sContext.class,0); + } + public DrawSelector_1_sContext drawSelector_1_s() { + return getRuleContext(DrawSelector_1_sContext.class,0); + } + public Unknown_sContext unknown_s() { + return getRuleContext(Unknown_sContext.class,0); + } + public Function_sContext function_s() { + return getRuleContext(Function_sContext.class,0); + } + public Pass_sContext pass_s() { + return getRuleContext(Pass_sContext.class,0); + } + public ActionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_action; } + } + + public final ActionContext action() throws RecognitionException { + ActionContext _localctx = new ActionContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_action); + try { + setState(658); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(541); + text_0_s(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(542); + text_1_s(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(543); + comment_s(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(544); + autoText_s(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(545); + scrollText_s(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(546); + setText_s(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(547); + tip_s(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(548); + setValue_s(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(549); + addValue_s(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(550); + setFloor_s(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(551); + setGlobalAttribute_s(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(552); + setGlobalValue_s(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(553); + setGlobalFlag_s(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(554); + show_s(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(555); + hide_s(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(556); + trigger_s(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(557); + insert_1_s(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(558); + insert_2_s(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(559); + revisit_s(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(560); + exit_s(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(561); + setBlock_s(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(562); + showFloorImg_s(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(563); + hideFloorImg_s(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(564); + showBgFgMap_s(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(565); + hideBgFgMap_s(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(566); + setBgFgBlock_s(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(567); + setHeroIcon_s(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(568); + update_s(); + } + break; + case 29: + enterOuterAlt(_localctx, 29); + { + setState(569); + showStatusBar_s(); + } + break; + case 30: + enterOuterAlt(_localctx, 30); + { + setState(570); + hideStatusBar_s(); + } + break; + case 31: + enterOuterAlt(_localctx, 31); + { + setState(571); + showHero_s(); + } + break; + case 32: + enterOuterAlt(_localctx, 32); + { + setState(572); + hideHero_s(); + } + break; + case 33: + enterOuterAlt(_localctx, 33); + { + setState(573); + updateEnemys_s(); + } + break; + case 34: + enterOuterAlt(_localctx, 34); + { + setState(574); + sleep_s(); + } + break; + case 35: + enterOuterAlt(_localctx, 35); + { + setState(575); + wait_s(); + } + break; + case 36: + enterOuterAlt(_localctx, 36); + { + setState(576); + waitAsync_s(); + } + break; + case 37: + enterOuterAlt(_localctx, 37); + { + setState(577); + battle_s(); + } + break; + case 38: + enterOuterAlt(_localctx, 38); + { + setState(578); + battle_1_s(); + } + break; + case 39: + enterOuterAlt(_localctx, 39); + { + setState(579); + openDoor_s(); + } + break; + case 40: + enterOuterAlt(_localctx, 40); + { + setState(580); + closeDoor_s(); + } + break; + case 41: + enterOuterAlt(_localctx, 41); + { + setState(581); + changeFloor_s(); + } + break; + case 42: + enterOuterAlt(_localctx, 42); + { + setState(582); + changePos_0_s(); + } + break; + case 43: + enterOuterAlt(_localctx, 43); + { + setState(583); + changePos_1_s(); + } + break; + case 44: + enterOuterAlt(_localctx, 44); + { + setState(584); + setViewport_s(); + } + break; + case 45: + enterOuterAlt(_localctx, 45); + { + setState(585); + moveViewport_s(); + } + break; + case 46: + enterOuterAlt(_localctx, 46); + { + setState(586); + useItem_s(); + } + break; + case 47: + enterOuterAlt(_localctx, 47); + { + setState(587); + openShop_s(); + } + break; + case 48: + enterOuterAlt(_localctx, 48); + { + setState(588); + disableShop_s(); + } + break; + case 49: + enterOuterAlt(_localctx, 49); + { + setState(589); + follow_s(); + } + break; + case 50: + enterOuterAlt(_localctx, 50); + { + setState(590); + unfollow_s(); + } + break; + case 51: + enterOuterAlt(_localctx, 51); + { + setState(591); + animate_s(); + } + break; + case 52: + enterOuterAlt(_localctx, 52); + { + setState(592); + vibrate_s(); + } + break; + case 53: + enterOuterAlt(_localctx, 53); + { + setState(593); + showImage_s(); + } + break; + case 54: + enterOuterAlt(_localctx, 54); + { + setState(594); + showImage_1_s(); + } + break; + case 55: + enterOuterAlt(_localctx, 55); + { + setState(595); + hideImage_s(); + } + break; + case 56: + enterOuterAlt(_localctx, 56); + { + setState(596); + showTextImage_s(); + } + break; + case 57: + enterOuterAlt(_localctx, 57); + { + setState(597); + moveImage_s(); + } + break; + case 58: + enterOuterAlt(_localctx, 58); + { + setState(598); + showGif_0_s(); + } + break; + case 59: + enterOuterAlt(_localctx, 59); + { + setState(599); + showGif_1_s(); + } + break; + case 60: + enterOuterAlt(_localctx, 60); + { + setState(600); + setCurtain_0_s(); + } + break; + case 61: + enterOuterAlt(_localctx, 61); + { + setState(601); + setCurtain_1_s(); + } + break; + case 62: + enterOuterAlt(_localctx, 62); + { + setState(602); + screenFlash_s(); + } + break; + case 63: + enterOuterAlt(_localctx, 63); + { + setState(603); + setWeather_s(); + } + break; + case 64: + enterOuterAlt(_localctx, 64); + { + setState(604); + move_s(); + } + break; + case 65: + enterOuterAlt(_localctx, 65); + { + setState(605); + moveHero_s(); + } + break; + case 66: + enterOuterAlt(_localctx, 66); + { + setState(606); + jump_s(); + } + break; + case 67: + enterOuterAlt(_localctx, 67); + { + setState(607); + jumpHero_s(); + } + break; + case 68: + enterOuterAlt(_localctx, 68); + { + setState(608); + playBgm_s(); + } + break; + case 69: + enterOuterAlt(_localctx, 69); + { + setState(609); + pauseBgm_s(); + } + break; + case 70: + enterOuterAlt(_localctx, 70); + { + setState(610); + resumeBgm_s(); + } + break; + case 71: + enterOuterAlt(_localctx, 71); + { + setState(611); + loadBgm_s(); + } + break; + case 72: + enterOuterAlt(_localctx, 72); + { + setState(612); + freeBgm_s(); + } + break; + case 73: + enterOuterAlt(_localctx, 73); + { + setState(613); + playSound_s(); + } + break; + case 74: + enterOuterAlt(_localctx, 74); + { + setState(614); + stopSound_s(); + } + break; + case 75: + enterOuterAlt(_localctx, 75); + { + setState(615); + setVolume_s(); + } + break; + case 76: + enterOuterAlt(_localctx, 76); + { + setState(616); + win_s(); + } + break; + case 77: + enterOuterAlt(_localctx, 77); + { + setState(617); + lose_s(); + } + break; + case 78: + enterOuterAlt(_localctx, 78); + { + setState(618); + restart_s(); + } + break; + case 79: + enterOuterAlt(_localctx, 79); + { + setState(619); + if_s(); + } + break; + case 80: + enterOuterAlt(_localctx, 80); + { + setState(620); + if_1_s(); + } + break; + case 81: + enterOuterAlt(_localctx, 81); + { + setState(621); + switch_s(); + } + break; + case 82: + enterOuterAlt(_localctx, 82); + { + setState(622); + while_s(); + } + break; + case 83: + enterOuterAlt(_localctx, 83); + { + setState(623); + dowhile_s(); + } + break; + case 84: + enterOuterAlt(_localctx, 84); + { + setState(624); + break_s(); + } + break; + case 85: + enterOuterAlt(_localctx, 85); + { + setState(625); + continue_s(); + } + break; + case 86: + enterOuterAlt(_localctx, 86); + { + setState(626); + input_s(); + } + break; + case 87: + enterOuterAlt(_localctx, 87); + { + setState(627); + input2_s(); + } + break; + case 88: + enterOuterAlt(_localctx, 88); + { + setState(628); + choices_s(); + } + break; + case 89: + enterOuterAlt(_localctx, 89); + { + setState(629); + confirm_s(); + } + break; + case 90: + enterOuterAlt(_localctx, 90); + { + setState(630); + callBook_s(); + } + break; + case 91: + enterOuterAlt(_localctx, 91); + { + setState(631); + callSave_s(); + } + break; + case 92: + enterOuterAlt(_localctx, 92); + { + setState(632); + autoSave_s(); + } + break; + case 93: + enterOuterAlt(_localctx, 93); + { + setState(633); + callLoad_s(); + } + break; + case 94: + enterOuterAlt(_localctx, 94); + { + setState(634); + previewUI_s(); + } + break; + case 95: + enterOuterAlt(_localctx, 95); + { + setState(635); + clearMap_s(); + } + break; + case 96: + enterOuterAlt(_localctx, 96); + { + setState(636); + clearMap_1_s(); + } + break; + case 97: + enterOuterAlt(_localctx, 97); + { + setState(637); + setAttribute_s(); + } + break; + case 98: + enterOuterAlt(_localctx, 98); + { + setState(638); + fillText_s(); + } + break; + case 99: + enterOuterAlt(_localctx, 99); + { + setState(639); + fillBoldText_s(); + } + break; + case 100: + enterOuterAlt(_localctx, 100); + { + setState(640); + drawTextContent_s(); + } + break; + case 101: + enterOuterAlt(_localctx, 101); + { + setState(641); + fillRect_s(); + } + break; + case 102: + enterOuterAlt(_localctx, 102); + { + setState(642); + strokeRect_s(); + } + break; + case 103: + enterOuterAlt(_localctx, 103); + { + setState(643); + drawLine_s(); + } + break; + case 104: + enterOuterAlt(_localctx, 104); + { + setState(644); + drawArrow_s(); + } + break; + case 105: + enterOuterAlt(_localctx, 105); + { + setState(645); + fillPolygon_s(); + } + break; + case 106: + enterOuterAlt(_localctx, 106); + { + setState(646); + strokePolygon_s(); + } + break; + case 107: + enterOuterAlt(_localctx, 107); + { + setState(647); + fillCircle_s(); + } + break; + case 108: + enterOuterAlt(_localctx, 108); + { + setState(648); + strokeCircle_s(); + } + break; + case 109: + enterOuterAlt(_localctx, 109); + { + setState(649); + drawImage_s(); + } + break; + case 110: + enterOuterAlt(_localctx, 110); + { + setState(650); + drawImage_1_s(); + } + break; + case 111: + enterOuterAlt(_localctx, 111); + { + setState(651); + drawIcon_s(); + } + break; + case 112: + enterOuterAlt(_localctx, 112); + { + setState(652); + drawBackground_s(); + } + break; + case 113: + enterOuterAlt(_localctx, 113); + { + setState(653); + drawSelector_s(); + } + break; + case 114: + enterOuterAlt(_localctx, 114); + { + setState(654); + drawSelector_1_s(); + } + break; + case 115: + enterOuterAlt(_localctx, 115); + { + setState(655); + unknown_s(); + } + break; + case 116: + enterOuterAlt(_localctx, 116); + { + setState(656); + function_s(); + } + break; + case 117: + enterOuterAlt(_localctx, 117); + { + setState(657); + pass_s(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Text_0_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Text_0_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_text_0_s; } + } + + public final Text_0_sContext text_0_s() throws RecognitionException { + Text_0_sContext _localctx = new Text_0_sContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_text_0_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(660); + match(T__36); + setState(661); + match(T__37); + setState(662); + match(EvalString); + setState(663); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Text_1_sContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public Text_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_text_1_s; } + } + + public final Text_1_sContext text_1_s() throws RecognitionException { + Text_1_sContext _localctx = new Text_1_sContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_text_1_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(665); + match(T__15); + setState(667); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(666); + match(EvalString); + } + } + + setState(669); + match(T__38); + setState(671); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(670); + match(IdString); + } + } + + setState(673); + match(T__39); + setState(675); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(674); + match(EvalString); + } + } + + setState(677); + match(T__37); + setState(678); + match(EvalString); + setState(679); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Comment_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Comment_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_comment_s; } + } + + public final Comment_sContext comment_s() throws RecognitionException { + Comment_sContext _localctx = new Comment_sContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_comment_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(681); + match(T__40); + setState(682); + match(T__37); + setState(683); + match(EvalString); + setState(684); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AutoText_sContext extends ParserRuleContext { + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public AutoText_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_autoText_s; } + } + + public final AutoText_sContext autoText_s() throws RecognitionException { + AutoText_sContext _localctx = new AutoText_sContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_autoText_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(686); + match(T__41); + setState(688); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(687); + match(EvalString); + } + } + + setState(690); + match(T__38); + setState(692); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(691); + match(IdString); + } + } + + setState(694); + match(T__39); + setState(696); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(695); + match(EvalString); + } + } + + setState(698); + match(T__42); + setState(699); + match(Int); + setState(701); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(700); + match(BGNL); + } + } + + setState(703); + match(EvalString); + setState(704); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ScrollText_sContext extends ParserRuleContext { + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode Number() { return getToken(MotaActionParser.Number, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public ScrollText_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_scrollText_s; } + } + + public final ScrollText_sContext scrollText_s() throws RecognitionException { + ScrollText_sContext _localctx = new ScrollText_sContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_scrollText_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(706); + match(T__43); + setState(707); + match(T__42); + setState(708); + match(Int); + setState(709); + match(T__44); + setState(710); + match(Number); + setState(711); + match(T__45); + setState(713); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Bool) { + { + setState(712); + match(Bool); + } + } + + setState(716); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(715); + match(BGNL); + } + } + + setState(718); + match(EvalString); + setState(719); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetText_sContext extends ParserRuleContext { + public TerminalNode SetTextPosition_List() { return getToken(MotaActionParser.SetTextPosition_List, 0); } + public List Colour() { return getTokens(MotaActionParser.Colour); } + public TerminalNode Colour(int i) { + return getToken(MotaActionParser.Colour, i); + } + public TerminalNode B_1_List() { return getToken(MotaActionParser.B_1_List, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode TextAlign_List() { return getToken(MotaActionParser.TextAlign_List, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public SetText_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setText_s; } + } + + public final SetText_sContext setText_s() throws RecognitionException { + SetText_sContext _localctx = new SetText_sContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_setText_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(721); + match(T__46); + setState(722); + match(T__47); + setState(723); + match(SetTextPosition_List); + setState(724); + match(T__48); + setState(726); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(725); + match(EvalString); + } + } + + setState(728); + match(T__49); + setState(730); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TextAlign_List) { + { + setState(729); + match(TextAlign_List); + } + } + + setState(733); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(732); + match(BGNL); + } + } + + setState(735); + match(T__50); + setState(737); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(736); + match(EvalString); + } + } + + setState(739); + match(Colour); + setState(740); + match(T__51); + setState(742); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(741); + match(EvalString); + } + } + + setState(744); + match(Colour); + setState(745); + match(T__52); + setState(747); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(746); + match(EvalString); + } + } + + setState(749); + match(Colour); + setState(751); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(750); + match(BGNL); + } + } + + setState(753); + match(T__53); + setState(754); + match(B_1_List); + setState(755); + match(T__54); + setState(757); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(756); + match(EvalString); + } + } + + setState(759); + match(T__55); + setState(761); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(760); + match(EvalString); + } + } + + setState(763); + match(T__56); + setState(765); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(764); + match(EvalString); + } + } + + setState(767); + match(T__57); + setState(769); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(768); + match(EvalString); + } + } + + setState(771); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Tip_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public Tip_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tip_s; } + } + + public final Tip_sContext tip_s() throws RecognitionException { + Tip_sContext _localctx = new Tip_sContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_tip_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(773); + match(T__58); + setState(774); + match(T__37); + setState(775); + match(EvalString); + setState(776); + match(T__59); + setState(778); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(777); + match(IdString); + } + } + + setState(780); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetValue_sContext extends ParserRuleContext { + public IdString_eContext idString_e() { + return getRuleContext(IdString_eContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public SetValue_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setValue_s; } + } + + public final SetValue_sContext setValue_s() throws RecognitionException { + SetValue_sContext _localctx = new SetValue_sContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_setValue_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(782); + match(T__60); + setState(783); + match(T__37); + setState(784); + match(T__61); + setState(785); + idString_e(); + setState(786); + match(T__62); + setState(787); + expression(0); + setState(788); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AddValue_sContext extends ParserRuleContext { + public IdString_eContext idString_e() { + return getRuleContext(IdString_eContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public AddValue_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_addValue_s; } + } + + public final AddValue_sContext addValue_s() throws RecognitionException { + AddValue_sContext _localctx = new AddValue_sContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_addValue_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(790); + match(T__63); + setState(791); + match(T__37); + setState(792); + match(T__61); + setState(793); + idString_e(); + setState(794); + match(T__22); + setState(795); + expression(0); + setState(796); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetFloor_sContext extends ParserRuleContext { + public TerminalNode Floor_Meta_List() { return getToken(MotaActionParser.Floor_Meta_List, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public SetFloor_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setFloor_s; } + } + + public final SetFloor_sContext setFloor_s() throws RecognitionException { + SetFloor_sContext _localctx = new SetFloor_sContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_setFloor_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(798); + match(T__64); + setState(799); + match(T__37); + setState(800); + match(Floor_Meta_List); + setState(801); + match(T__65); + setState(803); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(802); + match(IdString); + } + } + + setState(805); + match(T__62); + setState(806); + match(EvalString); + setState(807); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetGlobalAttribute_sContext extends ParserRuleContext { + public TerminalNode Global_Attribute_List() { return getToken(MotaActionParser.Global_Attribute_List, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public SetGlobalAttribute_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setGlobalAttribute_s; } + } + + public final SetGlobalAttribute_sContext setGlobalAttribute_s() throws RecognitionException { + SetGlobalAttribute_sContext _localctx = new SetGlobalAttribute_sContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_setGlobalAttribute_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(809); + match(T__66); + setState(810); + match(T__37); + setState(811); + match(Global_Attribute_List); + setState(812); + match(T__62); + setState(813); + match(EvalString); + setState(814); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetGlobalValue_sContext extends ParserRuleContext { + public TerminalNode Global_Value_List() { return getToken(MotaActionParser.Global_Value_List, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public SetGlobalValue_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setGlobalValue_s; } + } + + public final SetGlobalValue_sContext setGlobalValue_s() throws RecognitionException { + SetGlobalValue_sContext _localctx = new SetGlobalValue_sContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_setGlobalValue_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(816); + match(T__67); + setState(817); + match(T__37); + setState(818); + match(Global_Value_List); + setState(819); + match(T__62); + setState(820); + match(EvalString); + setState(821); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetGlobalFlag_sContext extends ParserRuleContext { + public TerminalNode Global_Flag_List() { return getToken(MotaActionParser.Global_Flag_List, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public SetGlobalFlag_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setGlobalFlag_s; } + } + + public final SetGlobalFlag_sContext setGlobalFlag_s() throws RecognitionException { + SetGlobalFlag_sContext _localctx = new SetGlobalFlag_sContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_setGlobalFlag_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(823); + match(T__68); + setState(824); + match(T__37); + setState(825); + match(Global_Flag_List); + setState(826); + match(Bool); + setState(827); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Show_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public Show_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_show_s; } + } + + public final Show_sContext show_s() throws RecognitionException { + Show_sContext _localctx = new Show_sContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_show_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(829); + match(T__69); + setState(830); + match(T__29); + setState(832); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(831); + match(EvalString); + } + } + + setState(834); + match(T__30); + setState(835); + match(T__31); + setState(837); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(836); + match(EvalString); + } + } + + setState(839); + match(T__70); + setState(841); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(840); + match(IdString); + } + } + + setState(843); + match(T__33); + setState(845); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(844); + match(Int); + } + } + + setState(847); + match(T__45); + setState(849); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Bool) { + { + setState(848); + match(Bool); + } + } + + setState(851); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Hide_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public Hide_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hide_s; } + } + + public final Hide_sContext hide_s() throws RecognitionException { + Hide_sContext _localctx = new Hide_sContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_hide_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(853); + match(T__71); + setState(854); + match(T__29); + setState(856); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(855); + match(EvalString); + } + } + + setState(858); + match(T__30); + setState(859); + match(T__31); + setState(861); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(860); + match(EvalString); + } + } + + setState(863); + match(T__70); + setState(865); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(864); + match(IdString); + } + } + + setState(867); + match(T__33); + setState(869); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(868); + match(Int); + } + } + + setState(871); + match(T__45); + setState(873); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Bool) { + { + setState(872); + match(Bool); + } + } + + setState(875); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Trigger_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Trigger_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trigger_s; } + } + + public final Trigger_sContext trigger_s() throws RecognitionException { + Trigger_sContext _localctx = new Trigger_sContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_trigger_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(877); + match(T__72); + setState(878); + match(T__29); + setState(879); + match(PosString); + setState(880); + match(T__30); + setState(881); + match(T__31); + setState(882); + match(PosString); + setState(883); + match(T__73); + setState(884); + match(Bool); + setState(885); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Insert_1_sContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Insert_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insert_1_s; } + } + + public final Insert_1_sContext insert_1_s() throws RecognitionException { + Insert_1_sContext _localctx = new Insert_1_sContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_insert_1_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(887); + match(T__74); + setState(888); + match(EvalString); + setState(889); + match(T__14); + setState(891); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(890); + match(EvalString); + } + } + + setState(893); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Insert_2_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Event_List() { return getToken(MotaActionParser.Event_List, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public Insert_2_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insert_2_s; } + } + + public final Insert_2_sContext insert_2_s() throws RecognitionException { + Insert_2_sContext _localctx = new Insert_2_sContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_insert_2_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(895); + match(T__75); + setState(896); + match(T__29); + setState(897); + match(PosString); + setState(898); + match(T__30); + setState(899); + match(T__31); + setState(900); + match(PosString); + setState(902); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Event_List) { + { + setState(901); + match(Event_List); + } + } + + setState(904); + match(T__70); + setState(906); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(905); + match(IdString); + } + } + + setState(908); + match(T__14); + setState(910); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(909); + match(EvalString); + } + } + + setState(912); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Revisit_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Revisit_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_revisit_s; } + } + + public final Revisit_sContext revisit_s() throws RecognitionException { + Revisit_sContext _localctx = new Revisit_sContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_revisit_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(914); + match(T__76); + setState(915); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Exit_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Exit_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exit_s; } + } + + public final Exit_sContext exit_s() throws RecognitionException { + Exit_sContext _localctx = new Exit_sContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_exit_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(917); + match(T__77); + setState(918); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetBlock_sContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public SetBlock_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setBlock_s; } + } + + public final SetBlock_sContext setBlock_s() throws RecognitionException { + SetBlock_sContext _localctx = new SetBlock_sContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_setBlock_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(920); + match(T__78); + setState(921); + match(EvalString); + setState(922); + match(T__29); + setState(924); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(923); + match(EvalString); + } + } + + setState(926); + match(T__30); + setState(927); + match(T__31); + setState(929); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(928); + match(EvalString); + } + } + + setState(931); + match(T__70); + setState(933); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(932); + match(IdString); + } + } + + setState(935); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowFloorImg_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public ShowFloorImg_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showFloorImg_s; } + } + + public final ShowFloorImg_sContext showFloorImg_s() throws RecognitionException { + ShowFloorImg_sContext _localctx = new ShowFloorImg_sContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_showFloorImg_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(937); + match(T__79); + setState(938); + match(T__29); + setState(940); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(939); + match(EvalString); + } + } + + setState(942); + match(T__30); + setState(943); + match(T__31); + setState(945); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(944); + match(EvalString); + } + } + + setState(947); + match(T__70); + setState(949); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(948); + match(IdString); + } + } + + setState(951); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class HideFloorImg_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public HideFloorImg_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hideFloorImg_s; } + } + + public final HideFloorImg_sContext hideFloorImg_s() throws RecognitionException { + HideFloorImg_sContext _localctx = new HideFloorImg_sContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_hideFloorImg_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(953); + match(T__80); + setState(954); + match(T__29); + setState(956); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(955); + match(EvalString); + } + } + + setState(958); + match(T__30); + setState(959); + match(T__31); + setState(961); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(960); + match(EvalString); + } + } + + setState(963); + match(T__70); + setState(965); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(964); + match(IdString); + } + } + + setState(967); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowBgFgMap_sContext extends ParserRuleContext { + public TerminalNode Bg_Fg_List() { return getToken(MotaActionParser.Bg_Fg_List, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public ShowBgFgMap_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showBgFgMap_s; } + } + + public final ShowBgFgMap_sContext showBgFgMap_s() throws RecognitionException { + ShowBgFgMap_sContext _localctx = new ShowBgFgMap_sContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_showBgFgMap_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(969); + match(T__81); + setState(970); + match(Bg_Fg_List); + setState(971); + match(T__29); + setState(973); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(972); + match(EvalString); + } + } + + setState(975); + match(T__30); + setState(976); + match(T__31); + setState(978); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(977); + match(EvalString); + } + } + + setState(980); + match(T__70); + setState(982); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(981); + match(IdString); + } + } + + setState(984); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class HideBgFgMap_sContext extends ParserRuleContext { + public TerminalNode Bg_Fg_List() { return getToken(MotaActionParser.Bg_Fg_List, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public HideBgFgMap_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hideBgFgMap_s; } + } + + public final HideBgFgMap_sContext hideBgFgMap_s() throws RecognitionException { + HideBgFgMap_sContext _localctx = new HideBgFgMap_sContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_hideBgFgMap_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(986); + match(T__82); + setState(987); + match(Bg_Fg_List); + setState(988); + match(T__29); + setState(990); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(989); + match(EvalString); + } + } + + setState(992); + match(T__30); + setState(993); + match(T__31); + setState(995); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(994); + match(EvalString); + } + } + + setState(997); + match(T__70); + setState(999); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(998); + match(IdString); + } + } + + setState(1001); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetBgFgBlock_sContext extends ParserRuleContext { + public TerminalNode Bg_Fg_List() { return getToken(MotaActionParser.Bg_Fg_List, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public SetBgFgBlock_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setBgFgBlock_s; } + } + + public final SetBgFgBlock_sContext setBgFgBlock_s() throws RecognitionException { + SetBgFgBlock_sContext _localctx = new SetBgFgBlock_sContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_setBgFgBlock_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1003); + match(T__83); + setState(1004); + match(Bg_Fg_List); + setState(1005); + match(T__84); + setState(1006); + match(EvalString); + setState(1007); + match(T__29); + setState(1009); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1008); + match(EvalString); + } + } + + setState(1011); + match(T__30); + setState(1012); + match(T__31); + setState(1014); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1013); + match(EvalString); + } + } + + setState(1016); + match(T__70); + setState(1018); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(1017); + match(IdString); + } + } + + setState(1020); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetHeroIcon_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public SetHeroIcon_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setHeroIcon_s; } + } + + public final SetHeroIcon_sContext setHeroIcon_s() throws RecognitionException { + SetHeroIcon_sContext _localctx = new SetHeroIcon_sContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_setHeroIcon_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1022); + match(T__85); + setState(1024); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1023); + match(EvalString); + } + } + + setState(1026); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Update_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Update_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_update_s; } + } + + public final Update_sContext update_s() throws RecognitionException { + Update_sContext _localctx = new Update_sContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_update_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1028); + match(T__86); + setState(1029); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowStatusBar_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ShowStatusBar_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showStatusBar_s; } + } + + public final ShowStatusBar_sContext showStatusBar_s() throws RecognitionException { + ShowStatusBar_sContext _localctx = new ShowStatusBar_sContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_showStatusBar_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1031); + match(T__87); + setState(1032); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class HideStatusBar_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public HideStatusBar_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hideStatusBar_s; } + } + + public final HideStatusBar_sContext hideStatusBar_s() throws RecognitionException { + HideStatusBar_sContext _localctx = new HideStatusBar_sContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_hideStatusBar_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1034); + match(T__88); + setState(1035); + match(T__89); + setState(1036); + match(Bool); + setState(1037); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowHero_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ShowHero_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showHero_s; } + } + + public final ShowHero_sContext showHero_s() throws RecognitionException { + ShowHero_sContext _localctx = new ShowHero_sContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_showHero_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1039); + match(T__90); + setState(1040); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class HideHero_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public HideHero_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hideHero_s; } + } + + public final HideHero_sContext hideHero_s() throws RecognitionException { + HideHero_sContext _localctx = new HideHero_sContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_hideHero_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1042); + match(T__91); + setState(1043); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UpdateEnemys_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public UpdateEnemys_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_updateEnemys_s; } + } + + public final UpdateEnemys_sContext updateEnemys_s() throws RecognitionException { + UpdateEnemys_sContext _localctx = new UpdateEnemys_sContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_updateEnemys_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1045); + match(T__92); + setState(1046); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Sleep_sContext extends ParserRuleContext { + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Sleep_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sleep_s; } + } + + public final Sleep_sContext sleep_s() throws RecognitionException { + Sleep_sContext _localctx = new Sleep_sContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_sleep_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1048); + match(T__93); + setState(1049); + match(Int); + setState(1050); + match(T__94); + setState(1051); + match(T__95); + setState(1052); + match(Bool); + setState(1053); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Battle_sContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Battle_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_battle_s; } + } + + public final Battle_sContext battle_s() throws RecognitionException { + Battle_sContext _localctx = new Battle_sContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_battle_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1055); + match(T__96); + setState(1056); + match(IdString); + setState(1057); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Battle_1_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public Battle_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_battle_1_s; } + } + + public final Battle_1_sContext battle_1_s() throws RecognitionException { + Battle_1_sContext _localctx = new Battle_1_sContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_battle_1_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1059); + match(T__96); + setState(1060); + match(T__29); + setState(1062); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1061); + match(PosString); + } + } + + setState(1064); + match(T__30); + setState(1065); + match(T__31); + setState(1067); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1066); + match(PosString); + } + } + + setState(1069); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class OpenDoor_sContext extends ParserRuleContext { + public List Bool() { return getTokens(MotaActionParser.Bool); } + public TerminalNode Bool(int i) { + return getToken(MotaActionParser.Bool, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public OpenDoor_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_openDoor_s; } + } + + public final OpenDoor_sContext openDoor_s() throws RecognitionException { + OpenDoor_sContext _localctx = new OpenDoor_sContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_openDoor_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1071); + match(T__97); + setState(1072); + match(T__29); + setState(1074); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1073); + match(PosString); + } + } + + setState(1076); + match(T__30); + setState(1077); + match(T__31); + setState(1079); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1078); + match(PosString); + } + } + + setState(1081); + match(T__70); + setState(1083); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(1082); + match(IdString); + } + } + + setState(1085); + match(T__98); + setState(1087); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Bool) { + { + setState(1086); + match(Bool); + } + } + + setState(1089); + match(T__45); + setState(1090); + match(Bool); + setState(1091); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CloseDoor_sContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public CloseDoor_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_closeDoor_s; } + } + + public final CloseDoor_sContext closeDoor_s() throws RecognitionException { + CloseDoor_sContext _localctx = new CloseDoor_sContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_closeDoor_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1093); + match(T__99); + setState(1094); + match(T__29); + setState(1096); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1095); + match(PosString); + } + } + + setState(1098); + match(T__30); + setState(1099); + match(T__31); + setState(1101); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1100); + match(PosString); + } + } + + setState(1103); + match(T__100); + setState(1104); + match(IdString); + setState(1105); + match(T__45); + setState(1106); + match(Bool); + setState(1107); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ChangeFloor_sContext extends ParserRuleContext { + public TerminalNode DirectionEx_List() { return getToken(MotaActionParser.DirectionEx_List, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public ChangeFloor_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_changeFloor_s; } + } + + public final ChangeFloor_sContext changeFloor_s() throws RecognitionException { + ChangeFloor_sContext _localctx = new ChangeFloor_sContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_changeFloor_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1109); + match(T__101); + setState(1111); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(1110); + match(IdString); + } + } + + setState(1113); + match(T__29); + setState(1115); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1114); + match(PosString); + } + } + + setState(1117); + match(T__30); + setState(1118); + match(T__31); + setState(1120); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1119); + match(PosString); + } + } + + setState(1122); + match(T__32); + setState(1123); + match(DirectionEx_List); + setState(1124); + match(T__33); + setState(1126); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1125); + match(Int); + } + } + + setState(1128); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ChangePos_0_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode DirectionEx_List() { return getToken(MotaActionParser.DirectionEx_List, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ChangePos_0_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_changePos_0_s; } + } + + public final ChangePos_0_sContext changePos_0_s() throws RecognitionException { + ChangePos_0_sContext _localctx = new ChangePos_0_sContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_changePos_0_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1130); + match(T__102); + setState(1131); + match(T__29); + setState(1132); + match(PosString); + setState(1133); + match(T__30); + setState(1134); + match(T__31); + setState(1135); + match(PosString); + setState(1136); + match(T__32); + setState(1137); + match(DirectionEx_List); + setState(1138); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ChangePos_1_sContext extends ParserRuleContext { + public TerminalNode Direction_List() { return getToken(MotaActionParser.Direction_List, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ChangePos_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_changePos_1_s; } + } + + public final ChangePos_1_sContext changePos_1_s() throws RecognitionException { + ChangePos_1_sContext _localctx = new ChangePos_1_sContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_changePos_1_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1140); + match(T__103); + setState(1141); + match(Direction_List); + setState(1142); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UseItem_sContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public UseItem_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_useItem_s; } + } + + public final UseItem_sContext useItem_s() throws RecognitionException { + UseItem_sContext _localctx = new UseItem_sContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_useItem_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1144); + match(T__104); + setState(1145); + match(IdString); + setState(1146); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class OpenShop_sContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public OpenShop_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_openShop_s; } + } + + public final OpenShop_sContext openShop_s() throws RecognitionException { + OpenShop_sContext _localctx = new OpenShop_sContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_openShop_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1148); + match(T__105); + setState(1149); + match(IdString); + setState(1150); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DisableShop_sContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public DisableShop_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_disableShop_s; } + } + + public final DisableShop_sContext disableShop_s() throws RecognitionException { + DisableShop_sContext _localctx = new DisableShop_sContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_disableShop_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1152); + match(T__106); + setState(1153); + match(IdString); + setState(1154); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Follow_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Follow_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_follow_s; } + } + + public final Follow_sContext follow_s() throws RecognitionException { + Follow_sContext _localctx = new Follow_sContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_follow_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1156); + match(T__107); + setState(1157); + match(T__108); + setState(1158); + match(EvalString); + setState(1159); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Unfollow_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public Unfollow_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unfollow_s; } + } + + public final Unfollow_sContext unfollow_s() throws RecognitionException { + Unfollow_sContext _localctx = new Unfollow_sContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_unfollow_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1161); + match(T__109); + setState(1162); + match(T__108); + setState(1164); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1163); + match(EvalString); + } + } + + setState(1166); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Vibrate_sContext extends ParserRuleContext { + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Vibrate_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_vibrate_s; } + } + + public final Vibrate_sContext vibrate_s() throws RecognitionException { + Vibrate_sContext _localctx = new Vibrate_sContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_vibrate_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1168); + match(T__110); + setState(1169); + match(T__42); + setState(1170); + match(Int); + setState(1171); + match(T__45); + setState(1172); + match(Bool); + setState(1173); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Animate_sContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public Animate_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_animate_s; } + } + + public final Animate_sContext animate_s() throws RecognitionException { + Animate_sContext _localctx = new Animate_sContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_animate_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1175); + match(T__111); + setState(1176); + match(IdString); + setState(1177); + match(T__47); + setState(1179); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1178); + match(EvalString); + } + } + + setState(1181); + match(T__45); + setState(1182); + match(Bool); + setState(1183); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetViewport_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public SetViewport_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setViewport_s; } + } + + public final SetViewport_sContext setViewport_s() throws RecognitionException { + SetViewport_sContext _localctx = new SetViewport_sContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_setViewport_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1185); + match(T__112); + setState(1186); + match(T__113); + setState(1187); + match(T__29); + setState(1189); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1188); + match(PosString); + } + } + + setState(1191); + match(T__30); + setState(1192); + match(T__31); + setState(1194); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1193); + match(PosString); + } + } + + setState(1196); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MoveViewport_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode StepString() { return getToken(MotaActionParser.StepString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public MoveViewport_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_moveViewport_s; } + } + + public final MoveViewport_sContext moveViewport_s() throws RecognitionException { + MoveViewport_sContext _localctx = new MoveViewport_sContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_moveViewport_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1198); + match(T__114); + setState(1199); + match(T__33); + setState(1201); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1200); + match(Int); + } + } + + setState(1203); + match(T__45); + setState(1204); + match(Bool); + setState(1206); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1205); + match(BGNL); + } + } + + setState(1208); + match(StepString); + setState(1209); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowImage_sContext extends ParserRuleContext { + public List Int() { return getTokens(MotaActionParser.Int); } + public TerminalNode Int(int i) { + return getToken(MotaActionParser.Int, i); + } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Number() { return getToken(MotaActionParser.Number, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public ShowImage_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showImage_s; } + } + + public final ShowImage_sContext showImage_s() throws RecognitionException { + ShowImage_sContext _localctx = new ShowImage_sContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_showImage_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1211); + match(T__115); + setState(1212); + match(T__116); + setState(1213); + match(Int); + setState(1214); + match(T__117); + setState(1215); + match(EvalString); + setState(1217); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1216); + match(BGNL); + } + } + + setState(1219); + match(T__118); + setState(1220); + match(T__29); + setState(1221); + match(PosString); + setState(1222); + match(T__31); + setState(1223); + match(PosString); + setState(1224); + match(T__119); + setState(1225); + match(Number); + setState(1226); + match(T__42); + setState(1227); + match(Int); + setState(1228); + match(T__45); + setState(1229); + match(Bool); + setState(1230); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowImage_1_sContext extends ParserRuleContext { + public List Int() { return getTokens(MotaActionParser.Int); } + public TerminalNode Int(int i) { + return getToken(MotaActionParser.Int, i); + } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Number() { return getToken(MotaActionParser.Number, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public ShowImage_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showImage_1_s; } + } + + public final ShowImage_1_sContext showImage_1_s() throws RecognitionException { + ShowImage_1_sContext _localctx = new ShowImage_1_sContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_showImage_1_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1232); + match(T__115); + setState(1233); + match(T__116); + setState(1234); + match(Int); + setState(1235); + match(T__117); + setState(1236); + match(EvalString); + setState(1238); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1237); + match(BGNL); + } + } + + setState(1240); + match(T__120); + setState(1241); + match(T__29); + setState(1242); + match(PosString); + setState(1243); + match(T__31); + setState(1244); + match(PosString); + setState(1245); + match(T__121); + setState(1247); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1246); + match(PosString); + } + } + + setState(1249); + match(T__122); + setState(1251); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1250); + match(PosString); + } + } + + setState(1253); + match(T__119); + setState(1254); + match(Number); + setState(1256); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1255); + match(BGNL); + } + } + + setState(1258); + match(T__118); + setState(1259); + match(T__29); + setState(1260); + match(PosString); + setState(1261); + match(T__31); + setState(1262); + match(PosString); + setState(1263); + match(T__121); + setState(1265); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1264); + match(PosString); + } + } + + setState(1267); + match(T__122); + setState(1269); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1268); + match(PosString); + } + } + + setState(1271); + match(T__42); + setState(1272); + match(Int); + setState(1273); + match(T__45); + setState(1274); + match(Bool); + setState(1275); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowTextImage_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public List Int() { return getTokens(MotaActionParser.Int); } + public TerminalNode Int(int i) { + return getToken(MotaActionParser.Int, i); + } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public List Number() { return getTokens(MotaActionParser.Number); } + public TerminalNode Number(int i) { + return getToken(MotaActionParser.Number, i); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public ShowTextImage_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showTextImage_s; } + } + + public final ShowTextImage_sContext showTextImage_s() throws RecognitionException { + ShowTextImage_sContext _localctx = new ShowTextImage_sContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_showTextImage_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1277); + match(T__123); + setState(1278); + match(T__124); + setState(1279); + match(EvalString); + setState(1281); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1280); + match(BGNL); + } + } + + setState(1283); + match(T__116); + setState(1284); + match(Int); + setState(1285); + match(T__125); + setState(1286); + match(T__29); + setState(1287); + match(PosString); + setState(1288); + match(T__31); + setState(1289); + match(PosString); + setState(1290); + match(T__44); + setState(1291); + match(Number); + setState(1292); + match(T__119); + setState(1293); + match(Number); + setState(1294); + match(T__42); + setState(1295); + match(Int); + setState(1296); + match(T__45); + setState(1297); + match(Bool); + setState(1298); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class HideImage_sContext extends ParserRuleContext { + public List Int() { return getTokens(MotaActionParser.Int); } + public TerminalNode Int(int i) { + return getToken(MotaActionParser.Int, i); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public HideImage_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hideImage_s; } + } + + public final HideImage_sContext hideImage_s() throws RecognitionException { + HideImage_sContext _localctx = new HideImage_sContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_hideImage_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1300); + match(T__126); + setState(1301); + match(T__116); + setState(1302); + match(Int); + setState(1303); + match(T__42); + setState(1304); + match(Int); + setState(1305); + match(T__45); + setState(1306); + match(Bool); + setState(1307); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowGif_0_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ShowGif_0_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showGif_0_s; } + } + + public final ShowGif_0_sContext showGif_0_s() throws RecognitionException { + ShowGif_0_sContext _localctx = new ShowGif_0_sContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_showGif_0_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1309); + match(T__127); + setState(1310); + match(EvalString); + setState(1311); + match(T__128); + setState(1312); + match(T__29); + setState(1313); + match(PosString); + setState(1314); + match(T__31); + setState(1315); + match(PosString); + setState(1316); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ShowGif_1_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ShowGif_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_showGif_1_s; } + } + + public final ShowGif_1_sContext showGif_1_s() throws RecognitionException { + ShowGif_1_sContext _localctx = new ShowGif_1_sContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_showGif_1_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1318); + match(T__129); + setState(1319); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MoveImage_sContext extends ParserRuleContext { + public List Int() { return getTokens(MotaActionParser.Int); } + public TerminalNode Int(int i) { + return getToken(MotaActionParser.Int, i); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public MoveImage_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_moveImage_s; } + } + + public final MoveImage_sContext moveImage_s() throws RecognitionException { + MoveImage_sContext _localctx = new MoveImage_sContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_moveImage_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1321); + match(T__130); + setState(1322); + match(T__116); + setState(1323); + match(Int); + setState(1324); + match(T__131); + setState(1325); + match(T__29); + setState(1327); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1326); + match(PosString); + } + } + + setState(1329); + match(T__31); + setState(1331); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1330); + match(PosString); + } + } + + setState(1334); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1333); + match(BGNL); + } + } + + setState(1336); + match(T__119); + setState(1338); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1337); + match(EvalString); + } + } + + setState(1340); + match(T__132); + setState(1341); + match(Int); + setState(1342); + match(T__45); + setState(1343); + match(Bool); + setState(1344); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetCurtain_0_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public SetCurtain_0_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setCurtain_0_s; } + } + + public final SetCurtain_0_sContext setCurtain_0_s() throws RecognitionException { + SetCurtain_0_sContext _localctx = new SetCurtain_0_sContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_setCurtain_0_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1346); + match(T__133); + setState(1347); + match(EvalString); + setState(1348); + match(Colour); + setState(1349); + match(T__33); + setState(1351); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1350); + match(Int); + } + } + + setState(1353); + match(T__45); + setState(1354); + match(Bool); + setState(1355); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetCurtain_1_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public SetCurtain_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setCurtain_1_s; } + } + + public final SetCurtain_1_sContext setCurtain_1_s() throws RecognitionException { + SetCurtain_1_sContext _localctx = new SetCurtain_1_sContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_setCurtain_1_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1357); + match(T__134); + setState(1358); + match(T__33); + setState(1360); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1359); + match(Int); + } + } + + setState(1362); + match(T__45); + setState(1363); + match(Bool); + setState(1364); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ScreenFlash_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public List Int() { return getTokens(MotaActionParser.Int); } + public TerminalNode Int(int i) { + return getToken(MotaActionParser.Int, i); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ScreenFlash_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_screenFlash_s; } + } + + public final ScreenFlash_sContext screenFlash_s() throws RecognitionException { + ScreenFlash_sContext _localctx = new ScreenFlash_sContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_screenFlash_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1366); + match(T__135); + setState(1367); + match(EvalString); + setState(1368); + match(Colour); + setState(1369); + match(T__136); + setState(1370); + match(Int); + setState(1371); + match(T__137); + setState(1373); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1372); + match(Int); + } + } + + setState(1375); + match(T__45); + setState(1376); + match(Bool); + setState(1377); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetWeather_sContext extends ParserRuleContext { + public TerminalNode Weather_List() { return getToken(MotaActionParser.Weather_List, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public SetWeather_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setWeather_s; } + } + + public final SetWeather_sContext setWeather_s() throws RecognitionException { + SetWeather_sContext _localctx = new SetWeather_sContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_setWeather_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1379); + match(T__138); + setState(1380); + match(Weather_List); + setState(1381); + match(T__139); + setState(1382); + match(Int); + setState(1383); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Move_sContext extends ParserRuleContext { + public List Bool() { return getTokens(MotaActionParser.Bool); } + public TerminalNode Bool(int i) { + return getToken(MotaActionParser.Bool, i); + } + public TerminalNode StepString() { return getToken(MotaActionParser.StepString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public Move_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_move_s; } + } + + public final Move_sContext move_s() throws RecognitionException { + Move_sContext _localctx = new Move_sContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_move_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1385); + match(T__140); + setState(1386); + match(T__29); + setState(1388); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1387); + match(PosString); + } + } + + setState(1390); + match(T__30); + setState(1391); + match(T__31); + setState(1393); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1392); + match(PosString); + } + } + + setState(1395); + match(T__33); + setState(1397); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1396); + match(Int); + } + } + + setState(1399); + match(T__141); + setState(1400); + match(Bool); + setState(1401); + match(T__45); + setState(1402); + match(Bool); + setState(1404); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1403); + match(BGNL); + } + } + + setState(1406); + match(StepString); + setState(1407); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MoveHero_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode StepString() { return getToken(MotaActionParser.StepString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public MoveHero_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_moveHero_s; } + } + + public final MoveHero_sContext moveHero_s() throws RecognitionException { + MoveHero_sContext _localctx = new MoveHero_sContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_moveHero_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1409); + match(T__142); + setState(1410); + match(T__33); + setState(1412); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1411); + match(Int); + } + } + + setState(1414); + match(T__45); + setState(1415); + match(Bool); + setState(1417); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1416); + match(BGNL); + } + } + + setState(1419); + match(StepString); + setState(1420); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Jump_sContext extends ParserRuleContext { + public List Bool() { return getTokens(MotaActionParser.Bool); } + public TerminalNode Bool(int i) { + return getToken(MotaActionParser.Bool, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public Jump_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_jump_s; } + } + + public final Jump_sContext jump_s() throws RecognitionException { + Jump_sContext _localctx = new Jump_sContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_jump_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1422); + match(T__143); + setState(1423); + match(T__144); + setState(1425); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1424); + match(PosString); + } + } + + setState(1427); + match(T__30); + setState(1428); + match(T__31); + setState(1430); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1429); + match(PosString); + } + } + + setState(1432); + match(T__145); + setState(1434); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1433); + match(PosString); + } + } + + setState(1436); + match(T__30); + setState(1437); + match(T__31); + setState(1439); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1438); + match(PosString); + } + } + + setState(1441); + match(T__33); + setState(1443); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1442); + match(Int); + } + } + + setState(1445); + match(T__141); + setState(1446); + match(Bool); + setState(1447); + match(T__45); + setState(1448); + match(Bool); + setState(1449); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class JumpHero_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Int() { return getToken(MotaActionParser.Int, 0); } + public JumpHero_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_jumpHero_s; } + } + + public final JumpHero_sContext jumpHero_s() throws RecognitionException { + JumpHero_sContext _localctx = new JumpHero_sContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_jumpHero_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1451); + match(T__146); + setState(1452); + match(T__29); + setState(1454); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1453); + match(PosString); + } + } + + setState(1456); + match(T__30); + setState(1457); + match(T__31); + setState(1459); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(1458); + match(PosString); + } + } + + setState(1461); + match(T__33); + setState(1463); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1462); + match(Int); + } + } + + setState(1465); + match(T__45); + setState(1466); + match(Bool); + setState(1467); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PlayBgm_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public PlayBgm_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_playBgm_s; } + } + + public final PlayBgm_sContext playBgm_s() throws RecognitionException { + PlayBgm_sContext _localctx = new PlayBgm_sContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_playBgm_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1469); + match(T__147); + setState(1470); + match(EvalString); + setState(1471); + match(T__148); + setState(1472); + match(Bool); + setState(1473); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PauseBgm_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public PauseBgm_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pauseBgm_s; } + } + + public final PauseBgm_sContext pauseBgm_s() throws RecognitionException { + PauseBgm_sContext _localctx = new PauseBgm_sContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_pauseBgm_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1475); + match(T__149); + setState(1476); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ResumeBgm_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ResumeBgm_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resumeBgm_s; } + } + + public final ResumeBgm_sContext resumeBgm_s() throws RecognitionException { + ResumeBgm_sContext _localctx = new ResumeBgm_sContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_resumeBgm_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1478); + match(T__150); + setState(1479); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LoadBgm_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public LoadBgm_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_loadBgm_s; } + } + + public final LoadBgm_sContext loadBgm_s() throws RecognitionException { + LoadBgm_sContext _localctx = new LoadBgm_sContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_loadBgm_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1481); + match(T__151); + setState(1482); + match(EvalString); + setState(1483); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FreeBgm_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public FreeBgm_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_freeBgm_s; } + } + + public final FreeBgm_sContext freeBgm_s() throws RecognitionException { + FreeBgm_sContext _localctx = new FreeBgm_sContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_freeBgm_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1485); + match(T__152); + setState(1486); + match(EvalString); + setState(1487); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PlaySound_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public PlaySound_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_playSound_s; } + } + + public final PlaySound_sContext playSound_s() throws RecognitionException { + PlaySound_sContext _localctx = new PlaySound_sContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_playSound_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1489); + match(T__153); + setState(1490); + match(EvalString); + setState(1491); + match(T__154); + setState(1493); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Bool) { + { + setState(1492); + match(Bool); + } + } + + setState(1495); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StopSound_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public StopSound_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_stopSound_s; } + } + + public final StopSound_sContext stopSound_s() throws RecognitionException { + StopSound_sContext _localctx = new StopSound_sContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_stopSound_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1497); + match(T__155); + setState(1498); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetVolume_sContext extends ParserRuleContext { + public List Int() { return getTokens(MotaActionParser.Int); } + public TerminalNode Int(int i) { + return getToken(MotaActionParser.Int, i); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public SetVolume_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setVolume_s; } + } + + public final SetVolume_sContext setVolume_s() throws RecognitionException { + SetVolume_sContext _localctx = new SetVolume_sContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_setVolume_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1500); + match(T__156); + setState(1501); + match(Int); + setState(1502); + match(T__157); + setState(1504); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Int) { + { + setState(1503); + match(Int); + } + } + + setState(1506); + match(T__45); + setState(1507); + match(Bool); + setState(1508); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Win_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public Win_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_win_s; } + } + + public final Win_sContext win_s() throws RecognitionException { + Win_sContext _localctx = new Win_sContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_win_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1510); + match(T__158); + setState(1511); + match(T__37); + setState(1513); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1512); + match(EvalString); + } + } + + setState(1515); + match(T__159); + setState(1516); + match(Bool); + setState(1517); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Lose_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public Lose_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lose_s; } + } + + public final Lose_sContext lose_s() throws RecognitionException { + Lose_sContext _localctx = new Lose_sContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_lose_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1519); + match(T__160); + setState(1520); + match(T__37); + setState(1522); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1521); + match(EvalString); + } + } + + setState(1524); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Restart_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Restart_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_restart_s; } + } + + public final Restart_sContext restart_s() throws RecognitionException { + Restart_sContext _localctx = new Restart_sContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_restart_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1526); + match(T__161); + setState(1527); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Input_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Input_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_input_s; } + } + + public final Input_sContext input_s() throws RecognitionException { + Input_sContext _localctx = new Input_sContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_input_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1529); + match(T__162); + setState(1530); + match(T__37); + setState(1531); + match(EvalString); + setState(1532); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Input2_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Input2_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_input2_s; } + } + + public final Input2_sContext input2_s() throws RecognitionException { + Input2_sContext _localctx = new Input2_sContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_input2_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1534); + match(T__163); + setState(1535); + match(T__37); + setState(1536); + match(EvalString); + setState(1537); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class If_sContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public If_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_if_s; } + } + + public final If_sContext if_s() throws RecognitionException { + If_sContext _localctx = new If_sContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_if_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1539); + match(T__164); + setState(1540); + match(T__37); + setState(1541); + expression(0); + setState(1543); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1542); + match(BGNL); + } + } + + setState(1545); + match(Newline); + setState(1547); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1546); + action(); + } + } + setState(1549); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1551); + match(T__165); + setState(1552); + match(T__37); + setState(1554); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1553); + match(BGNL); + } + } + + setState(1556); + match(Newline); + setState(1558); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1557); + action(); + } + } + setState(1560); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1562); + match(BEND); + setState(1563); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class If_1_sContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public If_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_if_1_s; } + } + + public final If_1_sContext if_1_s() throws RecognitionException { + If_1_sContext _localctx = new If_1_sContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_if_1_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1565); + match(T__164); + setState(1566); + match(T__37); + setState(1567); + expression(0); + setState(1569); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1568); + match(BGNL); + } + } + + setState(1571); + match(Newline); + setState(1573); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1572); + action(); + } + } + setState(1575); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1577); + match(BEND); + setState(1578); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Switch_sContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List switchCase() { + return getRuleContexts(SwitchCaseContext.class); + } + public SwitchCaseContext switchCase(int i) { + return getRuleContext(SwitchCaseContext.class,i); + } + public Switch_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switch_s; } + } + + public final Switch_sContext switch_s() throws RecognitionException { + Switch_sContext _localctx = new Switch_sContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_switch_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1580); + match(T__166); + setState(1581); + match(T__37); + setState(1582); + expression(0); + setState(1584); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1583); + match(BGNL); + } + } + + setState(1586); + match(Newline); + setState(1588); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1587); + switchCase(); + } + } + setState(1590); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==T__167 ); + setState(1592); + match(BEND); + setState(1593); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SwitchCaseContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public SwitchCaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchCase; } + } + + public final SwitchCaseContext switchCase() throws RecognitionException { + SwitchCaseContext _localctx = new SwitchCaseContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_switchCase); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1595); + match(T__167); + setState(1596); + expression(0); + setState(1597); + match(T__168); + setState(1598); + match(T__169); + setState(1599); + match(Bool); + setState(1601); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1600); + match(BGNL); + } + } + + setState(1603); + match(Newline); + setState(1605); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1604); + action(); + } + } + setState(1607); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Choices_sContext extends ParserRuleContext { + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public List choicesContext() { + return getRuleContexts(ChoicesContextContext.class); + } + public ChoicesContextContext choicesContext(int i) { + return getRuleContext(ChoicesContextContext.class,i); + } + public Choices_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_choices_s; } + } + + public final Choices_sContext choices_s() throws RecognitionException { + Choices_sContext _localctx = new Choices_sContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_choices_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1609); + match(T__170); + setState(1610); + match(T__37); + setState(1612); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1611); + match(EvalString); + } + } + + setState(1615); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1614); + match(BGNL); + } + } + + setState(1617); + match(T__15); + setState(1619); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1618); + match(EvalString); + } + } + + setState(1621); + match(T__38); + setState(1623); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(1622); + match(IdString); + } + } + + setState(1626); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1625); + match(BGNL); + } + } + + setState(1628); + match(Newline); + setState(1630); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1629); + choicesContext(); + } + } + setState(1632); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==T__171 ); + setState(1634); + match(BEND); + setState(1635); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ChoicesContextContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public ChoicesContextContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_choicesContext; } + } + + public final ChoicesContextContext choicesContext() throws RecognitionException { + ChoicesContextContext _localctx = new ChoicesContextContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_choicesContext); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1637); + match(T__171); + setState(1638); + match(EvalString); + setState(1639); + match(T__16); + setState(1641); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IdString) { + { + setState(1640); + match(IdString); + } + } + + setState(1643); + match(T__172); + setState(1645); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1644); + match(EvalString); + } + } + + setState(1647); + match(Colour); + setState(1648); + match(T__173); + setState(1650); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1649); + match(EvalString); + } + } + + setState(1653); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1652); + match(BGNL); + } + } + + setState(1655); + match(Newline); + setState(1657); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1656); + action(); + } + } + setState(1659); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Confirm_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public Confirm_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_confirm_s; } + } + + public final Confirm_sContext confirm_s() throws RecognitionException { + Confirm_sContext _localctx = new Confirm_sContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_confirm_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1661); + match(T__174); + setState(1662); + match(T__37); + setState(1663); + match(EvalString); + setState(1665); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1664); + match(BGNL); + } + } + + setState(1667); + match(T__175); + setState(1668); + match(T__37); + setState(1669); + match(T__176); + setState(1670); + match(Bool); + setState(1671); + match(T__177); + setState(1673); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1672); + match(BGNL); + } + } + + setState(1675); + match(Newline); + setState(1677); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1676); + action(); + } + } + setState(1679); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1681); + match(T__178); + setState(1682); + match(T__37); + setState(1684); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1683); + match(BGNL); + } + } + + setState(1686); + match(Newline); + setState(1688); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1687); + action(); + } + } + setState(1690); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1692); + match(BEND); + setState(1693); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class While_sContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public While_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_while_s; } + } + + public final While_sContext while_s() throws RecognitionException { + While_sContext _localctx = new While_sContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_while_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1695); + match(T__179); + setState(1696); + match(T__177); + setState(1697); + match(T__180); + setState(1698); + expression(0); + setState(1699); + match(T__181); + setState(1701); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1700); + match(BGNL); + } + } + + setState(1703); + match(Newline); + setState(1705); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1704); + action(); + } + } + setState(1707); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1709); + match(BEND); + setState(1710); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Dowhile_sContext extends ParserRuleContext { + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public Dowhile_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dowhile_s; } + } + + public final Dowhile_sContext dowhile_s() throws RecognitionException { + Dowhile_sContext _localctx = new Dowhile_sContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_dowhile_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1712); + match(T__182); + setState(1713); + match(T__177); + setState(1715); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1714); + match(BGNL); + } + } + + setState(1717); + match(Newline); + setState(1719); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1718); + action(); + } + } + setState(1721); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1723); + match(BEND); + setState(1724); + match(T__180); + setState(1725); + expression(0); + setState(1726); + match(T__181); + setState(1727); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Break_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Break_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_break_s; } + } + + public final Break_sContext break_s() throws RecognitionException { + Break_sContext _localctx = new Break_sContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_break_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1729); + match(T__183); + setState(1730); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Continue_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Continue_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_continue_s; } + } + + public final Continue_sContext continue_s() throws RecognitionException { + Continue_sContext _localctx = new Continue_sContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_continue_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1732); + match(T__184); + setState(1733); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Wait_sContext extends ParserRuleContext { + public Wait_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_wait_s; } + } + + public final Wait_sContext wait_s() throws RecognitionException { + Wait_sContext _localctx = new Wait_sContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_wait_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1735); + match(T__185); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WaitAsync_sContext extends ParserRuleContext { + public WaitAsync_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_waitAsync_s; } + } + + public final WaitAsync_sContext waitAsync_s() throws RecognitionException { + WaitAsync_sContext _localctx = new WaitAsync_sContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_waitAsync_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1737); + match(T__186); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CallBook_sContext extends ParserRuleContext { + public CallBook_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callBook_s; } + } + + public final CallBook_sContext callBook_s() throws RecognitionException { + CallBook_sContext _localctx = new CallBook_sContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_callBook_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1739); + match(T__187); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CallSave_sContext extends ParserRuleContext { + public CallSave_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callSave_s; } + } + + public final CallSave_sContext callSave_s() throws RecognitionException { + CallSave_sContext _localctx = new CallSave_sContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_callSave_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1741); + match(T__188); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AutoSave_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public AutoSave_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_autoSave_s; } + } + + public final AutoSave_sContext autoSave_s() throws RecognitionException { + AutoSave_sContext _localctx = new AutoSave_sContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_autoSave_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1743); + match(T__189); + setState(1744); + match(T__190); + setState(1745); + match(Bool); + setState(1746); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CallLoad_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public CallLoad_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callLoad_s; } + } + + public final CallLoad_sContext callLoad_s() throws RecognitionException { + CallLoad_sContext _localctx = new CallLoad_sContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_callLoad_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1748); + match(T__191); + setState(1749); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PreviewUI_sContext extends ParserRuleContext { + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public PreviewUI_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_previewUI_s; } + } + + public final PreviewUI_sContext previewUI_s() throws RecognitionException { + PreviewUI_sContext _localctx = new PreviewUI_sContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_previewUI_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1751); + match(T__192); + setState(1752); + match(T__193); + setState(1754); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1753); + match(BGNL); + } + } + + setState(1756); + match(Newline); + setState(1758); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1757); + action(); + } + } + setState(1760); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 16)) & ~0x3f) == 0 && ((1L << (_la - 16)) & ((1L << (T__15 - 16)) | (1L << (T__36 - 16)) | (1L << (T__40 - 16)) | (1L << (T__41 - 16)) | (1L << (T__43 - 16)) | (1L << (T__46 - 16)) | (1L << (T__58 - 16)) | (1L << (T__60 - 16)) | (1L << (T__63 - 16)) | (1L << (T__64 - 16)) | (1L << (T__66 - 16)) | (1L << (T__67 - 16)) | (1L << (T__68 - 16)) | (1L << (T__69 - 16)) | (1L << (T__71 - 16)) | (1L << (T__72 - 16)) | (1L << (T__74 - 16)) | (1L << (T__75 - 16)) | (1L << (T__76 - 16)) | (1L << (T__77 - 16)) | (1L << (T__78 - 16)))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (T__79 - 80)) | (1L << (T__80 - 80)) | (1L << (T__81 - 80)) | (1L << (T__82 - 80)) | (1L << (T__83 - 80)) | (1L << (T__85 - 80)) | (1L << (T__86 - 80)) | (1L << (T__87 - 80)) | (1L << (T__88 - 80)) | (1L << (T__90 - 80)) | (1L << (T__91 - 80)) | (1L << (T__92 - 80)) | (1L << (T__93 - 80)) | (1L << (T__96 - 80)) | (1L << (T__97 - 80)) | (1L << (T__99 - 80)) | (1L << (T__101 - 80)) | (1L << (T__102 - 80)) | (1L << (T__103 - 80)) | (1L << (T__104 - 80)) | (1L << (T__105 - 80)) | (1L << (T__106 - 80)) | (1L << (T__107 - 80)) | (1L << (T__109 - 80)) | (1L << (T__110 - 80)) | (1L << (T__111 - 80)) | (1L << (T__112 - 80)) | (1L << (T__114 - 80)) | (1L << (T__115 - 80)) | (1L << (T__123 - 80)) | (1L << (T__126 - 80)) | (1L << (T__127 - 80)) | (1L << (T__129 - 80)) | (1L << (T__130 - 80)) | (1L << (T__133 - 80)) | (1L << (T__134 - 80)) | (1L << (T__135 - 80)) | (1L << (T__138 - 80)) | (1L << (T__140 - 80)) | (1L << (T__142 - 80)))) != 0) || ((((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & ((1L << (T__143 - 144)) | (1L << (T__146 - 144)) | (1L << (T__147 - 144)) | (1L << (T__149 - 144)) | (1L << (T__150 - 144)) | (1L << (T__151 - 144)) | (1L << (T__152 - 144)) | (1L << (T__153 - 144)) | (1L << (T__155 - 144)) | (1L << (T__156 - 144)) | (1L << (T__158 - 144)) | (1L << (T__160 - 144)) | (1L << (T__161 - 144)) | (1L << (T__162 - 144)) | (1L << (T__163 - 144)) | (1L << (T__164 - 144)) | (1L << (T__166 - 144)) | (1L << (T__170 - 144)) | (1L << (T__174 - 144)) | (1L << (T__179 - 144)) | (1L << (T__182 - 144)) | (1L << (T__183 - 144)) | (1L << (T__184 - 144)) | (1L << (T__185 - 144)) | (1L << (T__186 - 144)) | (1L << (T__187 - 144)) | (1L << (T__188 - 144)) | (1L << (T__189 - 144)) | (1L << (T__191 - 144)) | (1L << (T__192 - 144)) | (1L << (T__194 - 144)) | (1L << (T__195 - 144)) | (1L << (T__196 - 144)) | (1L << (T__203 - 144)) | (1L << (T__206 - 144)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (T__207 - 208)) | (1L << (T__209 - 208)) | (1L << (T__210 - 208)) | (1L << (T__212 - 208)) | (1L << (T__214 - 208)) | (1L << (T__215 - 208)) | (1L << (T__217 - 208)) | (1L << (T__218 - 208)) | (1L << (T__221 - 208)) | (1L << (T__222 - 208)) | (1L << (T__223 - 208)) | (1L << (T__224 - 208)) | (1L << (T__225 - 208)) | (1L << (T__226 - 208)) | (1L << (T__227 - 208)) | (1L << (T__228 - 208)) | (1L << (Newline - 208)))) != 0) ); + setState(1762); + match(BEND); + setState(1763); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClearMap_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ClearMap_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_clearMap_s; } + } + + public final ClearMap_sContext clearMap_s() throws RecognitionException { + ClearMap_sContext _localctx = new ClearMap_sContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_clearMap_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1765); + match(T__194); + setState(1766); + match(T__125); + setState(1767); + match(T__29); + setState(1768); + match(PosString); + setState(1769); + match(T__31); + setState(1770); + match(PosString); + setState(1771); + match(T__121); + setState(1772); + match(PosString); + setState(1773); + match(T__122); + setState(1774); + match(PosString); + setState(1775); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClearMap_1_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public ClearMap_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_clearMap_1_s; } + } + + public final ClearMap_1_sContext clearMap_1_s() throws RecognitionException { + ClearMap_1_sContext _localctx = new ClearMap_1_sContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_clearMap_1_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(1777); + match(T__195); + setState(1778); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetAttribute_sContext extends ParserRuleContext { + public List Colour() { return getTokens(MotaActionParser.Colour); } + public TerminalNode Colour(int i) { + return getToken(MotaActionParser.Colour, i); + } + public TerminalNode TextAlign_List() { return getToken(MotaActionParser.TextAlign_List, 0); } + public TerminalNode TextBaseline_List() { return getToken(MotaActionParser.TextBaseline_List, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public SetAttribute_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setAttribute_s; } + } + + public final SetAttribute_sContext setAttribute_s() throws RecognitionException { + SetAttribute_sContext _localctx = new SetAttribute_sContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_setAttribute_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1780); + match(T__196); + setState(1781); + match(T__197); + setState(1783); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1782); + match(EvalString); + } + } + + setState(1785); + match(T__198); + setState(1787); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1786); + match(EvalString); + } + } + + setState(1789); + match(Colour); + setState(1790); + match(T__199); + setState(1792); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1791); + match(EvalString); + } + } + + setState(1794); + match(Colour); + setState(1796); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1795); + match(BGNL); + } + } + + setState(1798); + match(T__200); + setState(1800); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1799); + match(EvalString); + } + } + + setState(1802); + match(T__119); + setState(1804); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1803); + match(EvalString); + } + } + + setState(1806); + match(T__49); + setState(1807); + match(TextAlign_List); + setState(1808); + match(T__201); + setState(1809); + match(TextBaseline_List); + setState(1810); + match(T__202); + setState(1812); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1811); + match(EvalString); + } + } + + setState(1814); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FillText_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public FillText_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fillText_s; } + } + + public final FillText_sContext fillText_s() throws RecognitionException { + FillText_sContext _localctx = new FillText_sContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_fillText_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1816); + match(T__203); + setState(1817); + match(T__29); + setState(1818); + match(PosString); + setState(1819); + match(T__31); + setState(1820); + match(PosString); + setState(1821); + match(T__204); + setState(1823); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1822); + match(EvalString); + } + } + + setState(1825); + match(Colour); + setState(1826); + match(T__197); + setState(1828); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1827); + match(EvalString); + } + } + + setState(1830); + match(T__205); + setState(1832); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { + case 1: + { + setState(1831); + match(EvalString); + } + break; + } + setState(1835); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1834); + match(BGNL); + } + } + + setState(1837); + match(EvalString); + setState(1838); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FillBoldText_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public FillBoldText_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fillBoldText_s; } + } + + public final FillBoldText_sContext fillBoldText_s() throws RecognitionException { + FillBoldText_sContext _localctx = new FillBoldText_sContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_fillBoldText_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1840); + match(T__206); + setState(1841); + match(T__29); + setState(1842); + match(PosString); + setState(1843); + match(T__31); + setState(1844); + match(PosString); + setState(1845); + match(T__204); + setState(1847); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1846); + match(EvalString); + } + } + + setState(1849); + match(Colour); + setState(1850); + match(T__197); + setState(1852); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,189,_ctx) ) { + case 1: + { + setState(1851); + match(EvalString); + } + break; + } + setState(1855); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1854); + match(BGNL); + } + } + + setState(1857); + match(EvalString); + setState(1858); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawTextContent_sContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode TextAlign_List() { return getToken(MotaActionParser.TextAlign_List, 0); } + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List BGNL() { return getTokens(MotaActionParser.BGNL); } + public TerminalNode BGNL(int i) { + return getToken(MotaActionParser.BGNL, i); + } + public DrawTextContent_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawTextContent_s; } + } + + public final DrawTextContent_sContext drawTextContent_s() throws RecognitionException { + DrawTextContent_sContext _localctx = new DrawTextContent_sContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_drawTextContent_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1860); + match(T__207); + setState(1861); + match(EvalString); + setState(1863); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1862); + match(BGNL); + } + } + + setState(1865); + match(T__125); + setState(1866); + match(T__29); + setState(1867); + match(PosString); + setState(1868); + match(T__31); + setState(1869); + match(PosString); + setState(1870); + match(T__205); + setState(1872); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1871); + match(EvalString); + } + } + + setState(1874); + match(T__172); + setState(1876); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1875); + match(EvalString); + } + } + + setState(1878); + match(Colour); + setState(1880); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(1879); + match(BGNL); + } + } + + setState(1882); + match(T__49); + setState(1883); + match(TextAlign_List); + setState(1884); + match(T__208); + setState(1886); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1885); + match(EvalString); + } + } + + setState(1888); + match(T__44); + setState(1890); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1889); + match(EvalString); + } + } + + setState(1892); + match(T__53); + setState(1893); + match(Bool); + setState(1894); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FillRect_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public FillRect_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fillRect_s; } + } + + public final FillRect_sContext fillRect_s() throws RecognitionException { + FillRect_sContext _localctx = new FillRect_sContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_fillRect_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1896); + match(T__209); + setState(1897); + match(T__125); + setState(1898); + match(T__29); + setState(1899); + match(PosString); + setState(1900); + match(T__31); + setState(1901); + match(PosString); + setState(1902); + match(T__121); + setState(1903); + match(PosString); + setState(1904); + match(T__122); + setState(1905); + match(PosString); + setState(1906); + match(T__172); + setState(1908); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1907); + match(EvalString); + } + } + + setState(1910); + match(Colour); + setState(1911); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StrokeRect_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public StrokeRect_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_strokeRect_s; } + } + + public final StrokeRect_sContext strokeRect_s() throws RecognitionException { + StrokeRect_sContext _localctx = new StrokeRect_sContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_strokeRect_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1913); + match(T__210); + setState(1914); + match(T__125); + setState(1915); + match(T__29); + setState(1916); + match(PosString); + setState(1917); + match(T__31); + setState(1918); + match(PosString); + setState(1919); + match(T__121); + setState(1920); + match(PosString); + setState(1921); + match(T__122); + setState(1922); + match(PosString); + setState(1923); + match(T__172); + setState(1925); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1924); + match(EvalString); + } + } + + setState(1927); + match(Colour); + setState(1928); + match(T__211); + setState(1930); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1929); + match(EvalString); + } + } + + setState(1932); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawLine_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public DrawLine_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawLine_s; } + } + + public final DrawLine_sContext drawLine_s() throws RecognitionException { + DrawLine_sContext _localctx = new DrawLine_sContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_drawLine_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1934); + match(T__212); + setState(1935); + match(T__125); + setState(1936); + match(T__29); + setState(1937); + match(PosString); + setState(1938); + match(T__31); + setState(1939); + match(PosString); + setState(1940); + match(T__213); + setState(1941); + match(T__29); + setState(1942); + match(PosString); + setState(1943); + match(T__31); + setState(1944); + match(PosString); + setState(1945); + match(T__172); + setState(1947); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1946); + match(EvalString); + } + } + + setState(1949); + match(Colour); + setState(1950); + match(T__211); + setState(1952); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1951); + match(EvalString); + } + } + + setState(1954); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawArrow_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public DrawArrow_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawArrow_s; } + } + + public final DrawArrow_sContext drawArrow_s() throws RecognitionException { + DrawArrow_sContext _localctx = new DrawArrow_sContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_drawArrow_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1956); + match(T__214); + setState(1957); + match(T__125); + setState(1958); + match(T__29); + setState(1959); + match(PosString); + setState(1960); + match(T__31); + setState(1961); + match(PosString); + setState(1962); + match(T__213); + setState(1963); + match(T__29); + setState(1964); + match(PosString); + setState(1965); + match(T__31); + setState(1966); + match(PosString); + setState(1967); + match(T__172); + setState(1969); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1968); + match(EvalString); + } + } + + setState(1971); + match(Colour); + setState(1972); + match(T__211); + setState(1974); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1973); + match(EvalString); + } + } + + setState(1976); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FillPolygon_sContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public FillPolygon_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fillPolygon_s; } + } + + public final FillPolygon_sContext fillPolygon_s() throws RecognitionException { + FillPolygon_sContext _localctx = new FillPolygon_sContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_fillPolygon_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1978); + match(T__215); + setState(1979); + match(T__216); + setState(1980); + match(T__29); + setState(1981); + match(EvalString); + setState(1982); + match(T__31); + setState(1983); + match(EvalString); + setState(1984); + match(T__172); + setState(1986); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1985); + match(EvalString); + } + } + + setState(1988); + match(Colour); + setState(1989); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StrokePolygon_sContext extends ParserRuleContext { + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public StrokePolygon_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_strokePolygon_s; } + } + + public final StrokePolygon_sContext strokePolygon_s() throws RecognitionException { + StrokePolygon_sContext _localctx = new StrokePolygon_sContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_strokePolygon_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1991); + match(T__217); + setState(1992); + match(T__216); + setState(1993); + match(T__29); + setState(1994); + match(EvalString); + setState(1995); + match(T__31); + setState(1996); + match(EvalString); + setState(1997); + match(T__172); + setState(1999); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(1998); + match(EvalString); + } + } + + setState(2001); + match(Colour); + setState(2002); + match(T__211); + setState(2004); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(2003); + match(EvalString); + } + } + + setState(2006); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FillCircle_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public FillCircle_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fillCircle_s; } + } + + public final FillCircle_sContext fillCircle_s() throws RecognitionException { + FillCircle_sContext _localctx = new FillCircle_sContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_fillCircle_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2008); + match(T__218); + setState(2009); + match(T__219); + setState(2010); + match(T__29); + setState(2011); + match(PosString); + setState(2012); + match(T__31); + setState(2013); + match(PosString); + setState(2014); + match(T__220); + setState(2015); + match(PosString); + setState(2016); + match(T__172); + setState(2018); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(2017); + match(EvalString); + } + } + + setState(2020); + match(Colour); + setState(2021); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StrokeCircle_sContext extends ParserRuleContext { + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public List EvalString() { return getTokens(MotaActionParser.EvalString); } + public TerminalNode EvalString(int i) { + return getToken(MotaActionParser.EvalString, i); + } + public StrokeCircle_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_strokeCircle_s; } + } + + public final StrokeCircle_sContext strokeCircle_s() throws RecognitionException { + StrokeCircle_sContext _localctx = new StrokeCircle_sContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_strokeCircle_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2023); + match(T__221); + setState(2024); + match(T__219); + setState(2025); + match(T__29); + setState(2026); + match(PosString); + setState(2027); + match(T__31); + setState(2028); + match(PosString); + setState(2029); + match(T__220); + setState(2030); + match(PosString); + setState(2031); + match(T__172); + setState(2033); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(2032); + match(EvalString); + } + } + + setState(2035); + match(Colour); + setState(2036); + match(T__211); + setState(2038); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EvalString) { + { + setState(2037); + match(EvalString); + } + } + + setState(2040); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawImage_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public DrawImage_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawImage_s; } + } + + public final DrawImage_sContext drawImage_s() throws RecognitionException { + DrawImage_sContext _localctx = new DrawImage_sContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_drawImage_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2042); + match(T__222); + setState(2043); + match(EvalString); + setState(2044); + match(T__125); + setState(2045); + match(T__29); + setState(2046); + match(PosString); + setState(2047); + match(T__31); + setState(2048); + match(PosString); + setState(2049); + match(T__121); + setState(2051); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(2050); + match(PosString); + } + } + + setState(2053); + match(T__122); + setState(2055); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(2054); + match(PosString); + } + } + + setState(2057); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawImage_1_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public DrawImage_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawImage_1_s; } + } + + public final DrawImage_1_sContext drawImage_1_s() throws RecognitionException { + DrawImage_1_sContext _localctx = new DrawImage_1_sContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_drawImage_1_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2059); + match(T__222); + setState(2060); + match(EvalString); + setState(2061); + match(T__120); + setState(2062); + match(T__29); + setState(2063); + match(PosString); + setState(2064); + match(T__31); + setState(2065); + match(PosString); + setState(2066); + match(T__121); + setState(2067); + match(PosString); + setState(2068); + match(T__122); + setState(2069); + match(PosString); + setState(2071); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(2070); + match(BGNL); + } + } + + setState(2073); + match(T__118); + setState(2074); + match(T__29); + setState(2075); + match(PosString); + setState(2076); + match(T__31); + setState(2077); + match(PosString); + setState(2078); + match(T__121); + setState(2079); + match(PosString); + setState(2080); + match(T__122); + setState(2081); + match(PosString); + setState(2082); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawIcon_sContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public DrawIcon_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawIcon_s; } + } + + public final DrawIcon_sContext drawIcon_s() throws RecognitionException { + DrawIcon_sContext _localctx = new DrawIcon_sContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_drawIcon_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2084); + match(T__223); + setState(2085); + match(T__100); + setState(2086); + match(IdString); + setState(2087); + match(T__125); + setState(2088); + match(T__29); + setState(2089); + match(PosString); + setState(2090); + match(T__31); + setState(2091); + match(PosString); + setState(2092); + match(T__121); + setState(2094); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(2093); + match(PosString); + } + } + + setState(2096); + match(T__122); + setState(2098); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PosString) { + { + setState(2097); + match(PosString); + } + } + + setState(2100); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawBackground_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public TerminalNode Colour() { return getToken(MotaActionParser.Colour, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public DrawBackground_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawBackground_s; } + } + + public final DrawBackground_sContext drawBackground_s() throws RecognitionException { + DrawBackground_sContext _localctx = new DrawBackground_sContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_drawBackground_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(2102); + match(T__224); + setState(2103); + match(EvalString); + setState(2104); + match(Colour); + setState(2105); + match(T__125); + setState(2106); + match(T__29); + setState(2107); + match(PosString); + setState(2108); + match(T__31); + setState(2109); + match(PosString); + setState(2110); + match(T__121); + setState(2111); + match(PosString); + setState(2112); + match(T__122); + setState(2113); + match(PosString); + setState(2114); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawSelector_sContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public List PosString() { return getTokens(MotaActionParser.PosString); } + public TerminalNode PosString(int i) { + return getToken(MotaActionParser.PosString, i); + } + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public DrawSelector_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawSelector_s; } + } + + public final DrawSelector_sContext drawSelector_s() throws RecognitionException { + DrawSelector_sContext _localctx = new DrawSelector_sContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_drawSelector_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(2116); + match(T__225); + setState(2117); + match(EvalString); + setState(2118); + match(T__125); + setState(2119); + match(T__29); + setState(2120); + match(PosString); + setState(2121); + match(T__31); + setState(2122); + match(PosString); + setState(2123); + match(T__121); + setState(2124); + match(PosString); + setState(2125); + match(T__122); + setState(2126); + match(PosString); + setState(2127); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DrawSelector_1_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public DrawSelector_1_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drawSelector_1_s; } + } + + public final DrawSelector_1_sContext drawSelector_1_s() throws RecognitionException { + DrawSelector_1_sContext _localctx = new DrawSelector_1_sContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_drawSelector_1_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(2129); + match(T__226); + setState(2130); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Unknown_sContext extends ParserRuleContext { + public TerminalNode RawEvalString() { return getToken(MotaActionParser.RawEvalString, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public Unknown_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unknown_s; } + } + + public final Unknown_sContext unknown_s() throws RecognitionException { + Unknown_sContext _localctx = new Unknown_sContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_unknown_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2132); + match(T__227); + setState(2134); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(2133); + match(BGNL); + } + } + + setState(2136); + match(RawEvalString); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Function_sContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public List Newline() { return getTokens(MotaActionParser.Newline); } + public TerminalNode Newline(int i) { + return getToken(MotaActionParser.Newline, i); + } + public TerminalNode RawEvalString() { return getToken(MotaActionParser.RawEvalString, 0); } + public TerminalNode BEND() { return getToken(MotaActionParser.BEND, 0); } + public TerminalNode BGNL() { return getToken(MotaActionParser.BGNL, 0); } + public Function_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_function_s; } + } + + public final Function_sContext function_s() throws RecognitionException { + Function_sContext _localctx = new Function_sContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_function_s); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2138); + match(T__228); + setState(2139); + match(T__229); + setState(2140); + match(Bool); + setState(2142); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BGNL) { + { + setState(2141); + match(BGNL); + } + } + + setState(2144); + match(Newline); + setState(2145); + match(RawEvalString); + setState(2146); + match(Newline); + setState(2147); + match(BEND); + setState(2148); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Pass_sContext extends ParserRuleContext { + public TerminalNode Newline() { return getToken(MotaActionParser.Newline, 0); } + public Pass_sContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pass_s; } + } + + public final Pass_sContext pass_s() throws RecognitionException { + Pass_sContext _localctx = new Pass_sContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_pass_s); + try { + enterOuterAlt(_localctx, 1); + { + setState(2150); + match(Newline); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatExprSplitContext extends ParserRuleContext { + public StatExprSplitContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statExprSplit; } + } + + public final StatExprSplitContext statExprSplit() throws RecognitionException { + StatExprSplitContext _localctx = new StatExprSplitContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_statExprSplit); + try { + enterOuterAlt(_localctx, 1); + { + setState(2152); + match(T__230); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExpressionContext extends ParserRuleContext { + public Negate_eContext negate_e() { + return getRuleContext(Negate_eContext.class,0); + } + public Bool_eContext bool_e() { + return getRuleContext(Bool_eContext.class,0); + } + public IdString_eContext idString_e() { + return getRuleContext(IdString_eContext.class,0); + } + public EvFlag_eContext evFlag_e() { + return getRuleContext(EvFlag_eContext.class,0); + } + public EvalString_eContext evalString_e() { + return getRuleContext(EvalString_eContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode Arithmetic_List() { return getToken(MotaActionParser.Arithmetic_List, 0); } + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + } + + public final ExpressionContext expression() throws RecognitionException { + return expression(0); + } + + private ExpressionContext expression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState); + ExpressionContext _prevctx = _localctx; + int _startState = 276; + enterRecursionRule(_localctx, 276, RULE_expression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2160); + _errHandler.sync(this); + switch (_input.LA(1)) { + case T__231: + { + setState(2155); + negate_e(); + } + break; + case Bool: + { + setState(2156); + bool_e(); + } + break; + case IdString: + { + setState(2157); + idString_e(); + } + break; + case T__232: + { + setState(2158); + evFlag_e(); + } + break; + case EvalString: + { + setState(2159); + evalString_e(); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(2167); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,218,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(2162); + if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); + setState(2163); + match(Arithmetic_List); + setState(2164); + expression(7); + } + } + } + setState(2169); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,218,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Negate_eContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Negate_eContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_negate_e; } + } + + public final Negate_eContext negate_e() throws RecognitionException { + Negate_eContext _localctx = new Negate_eContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_negate_e); + try { + enterOuterAlt(_localctx, 1); + { + setState(2170); + match(T__231); + setState(2171); + expression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Bool_eContext extends ParserRuleContext { + public TerminalNode Bool() { return getToken(MotaActionParser.Bool, 0); } + public Bool_eContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bool_e; } + } + + public final Bool_eContext bool_e() throws RecognitionException { + Bool_eContext _localctx = new Bool_eContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_bool_e); + try { + enterOuterAlt(_localctx, 1); + { + setState(2173); + match(Bool); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IdString_eContext extends ParserRuleContext { + public TerminalNode IdString() { return getToken(MotaActionParser.IdString, 0); } + public IdString_eContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_idString_e; } + } + + public final IdString_eContext idString_e() throws RecognitionException { + IdString_eContext _localctx = new IdString_eContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_idString_e); + try { + enterOuterAlt(_localctx, 1); + { + setState(2175); + match(IdString); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IdString_1_eContext extends ParserRuleContext { + public TerminalNode Id_List() { return getToken(MotaActionParser.Id_List, 0); } + public TerminalNode IdText() { return getToken(MotaActionParser.IdText, 0); } + public IdString_1_eContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_idString_1_e; } + } + + public final IdString_1_eContext idString_1_e() throws RecognitionException { + IdString_1_eContext _localctx = new IdString_1_eContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_idString_1_e); + try { + enterOuterAlt(_localctx, 1); + { + setState(2177); + match(Id_List); + setState(2178); + match(T__37); + setState(2179); + match(IdText); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IdString_2_eContext extends ParserRuleContext { + public TerminalNode FixedId_List() { return getToken(MotaActionParser.FixedId_List, 0); } + public IdString_2_eContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_idString_2_e; } + } + + public final IdString_2_eContext idString_2_e() throws RecognitionException { + IdString_2_eContext _localctx = new IdString_2_eContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_idString_2_e); + try { + enterOuterAlt(_localctx, 1); + { + setState(2181); + match(FixedId_List); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EvFlag_eContext extends ParserRuleContext { + public TerminalNode Letter_List() { return getToken(MotaActionParser.Letter_List, 0); } + public EvFlag_eContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_evFlag_e; } + } + + public final EvFlag_eContext evFlag_e() throws RecognitionException { + EvFlag_eContext _localctx = new EvFlag_eContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_evFlag_e); + try { + enterOuterAlt(_localctx, 1); + { + setState(2183); + match(T__232); + setState(2184); + match(Letter_List); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EvalString_eContext extends ParserRuleContext { + public TerminalNode EvalString() { return getToken(MotaActionParser.EvalString, 0); } + public EvalString_eContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_evalString_e; } + } + + public final EvalString_eContext evalString_e() throws RecognitionException { + EvalString_eContext _localctx = new EvalString_eContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_evalString_e); + try { + enterOuterAlt(_localctx, 1); + { + setState(2186); + match(EvalString); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 138: + return expression_sempred((ExpressionContext)_localctx, predIndex); + } + return true; + } + private boolean expression_sempred(ExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 6); + } + return true; + } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u0113\u088f\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ + "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ + "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ + "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ + "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ + "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ + "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ + "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ + "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ + "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ + "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ + "\4\u0093\t\u0093\3\2\3\2\5\2\u0129\n\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2"+ + "\3\2\3\2\5\2\u0135\n\2\3\2\3\2\6\2\u0139\n\2\r\2\16\2\u013a\3\2\3\2\3"+ + "\3\3\3\5\3\u0141\n\3\3\3\3\3\6\3\u0145\n\3\r\3\16\3\u0146\3\3\3\3\3\4"+ + "\3\4\3\4\3\4\5\4\u014f\n\4\3\4\3\4\3\4\5\4\u0154\n\4\3\4\3\4\6\4\u0158"+ + "\n\4\r\4\16\4\u0159\3\5\3\5\5\5\u015e\n\5\3\5\3\5\6\5\u0162\n\5\r\5\16"+ + "\5\u0163\3\6\3\6\3\6\5\6\u0169\n\6\3\7\3\7\3\b\3\b\3\b\3\b\3\b\5\b\u0172"+ + "\n\b\3\b\3\b\3\b\5\b\u0177\n\b\3\b\3\b\3\b\3\b\5\b\u017d\n\b\3\t\3\t\3"+ + "\t\3\t\3\t\3\t\3\t\5\t\u0186\n\t\3\t\3\t\3\t\3\t\3\t\3\t\5\t\u018e\n\t"+ + "\3\t\3\t\3\t\3\t\5\t\u0194\n\t\3\t\3\t\3\t\3\t\3\t\3\t\5\t\u019c\n\t\3"+ + "\t\3\t\3\t\3\t\5\t\u01a2\n\t\3\t\3\t\6\t\u01a6\n\t\r\t\16\t\u01a7\3\t"+ + "\3\t\3\n\3\n\3\n\3\n\5\n\u01b0\n\n\3\n\5\n\u01b3\n\n\3\n\3\n\6\n\u01b7"+ + "\n\n\r\n\16\n\u01b8\3\13\3\13\3\13\3\13\3\f\3\f\5\f\u01c1\n\f\3\f\3\f"+ + "\6\f\u01c5\n\f\r\f\16\f\u01c6\3\f\3\f\3\r\3\r\5\r\u01cd\n\r\3\r\3\r\6"+ + "\r\u01d1\n\r\r\r\16\r\u01d2\3\r\3\r\3\16\3\16\5\16\u01d9\n\16\3\16\3\16"+ + "\6\16\u01dd\n\16\r\16\16\16\u01de\3\16\3\16\3\17\3\17\5\17\u01e5\n\17"+ + "\3\17\3\17\6\17\u01e9\n\17\r\17\16\17\u01ea\3\17\3\17\3\20\3\20\5\20\u01f1"+ + "\n\20\3\20\3\20\6\20\u01f5\n\20\r\20\16\20\u01f6\3\20\3\20\3\21\3\21\5"+ + "\21\u01fd\n\21\3\21\3\21\3\21\5\21\u0202\n\21\3\21\3\21\3\21\3\21\3\21"+ + "\3\21\3\21\3\21\3\21\3\21\5\21\u020e\n\21\3\21\3\21\3\21\3\21\3\22\3\22"+ + "\5\22\u0216\n\22\3\22\3\22\6\22\u021a\n\22\r\22\16\22\u021b\3\22\3\22"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\5\23\u0295\n\23\3\24\3\24\3\24\3\24\3\24\3\25"+ + "\3\25\5\25\u029e\n\25\3\25\3\25\5\25\u02a2\n\25\3\25\3\25\5\25\u02a6\n"+ + "\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\27\3\27\5\27\u02b3"+ + "\n\27\3\27\3\27\5\27\u02b7\n\27\3\27\3\27\5\27\u02bb\n\27\3\27\3\27\3"+ + "\27\5\27\u02c0\n\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30"+ + "\5\30\u02cc\n\30\3\30\5\30\u02cf\n\30\3\30\3\30\3\30\3\31\3\31\3\31\3"+ + "\31\3\31\5\31\u02d9\n\31\3\31\3\31\5\31\u02dd\n\31\3\31\5\31\u02e0\n\31"+ + "\3\31\3\31\5\31\u02e4\n\31\3\31\3\31\3\31\5\31\u02e9\n\31\3\31\3\31\3"+ + "\31\5\31\u02ee\n\31\3\31\3\31\5\31\u02f2\n\31\3\31\3\31\3\31\3\31\5\31"+ + "\u02f8\n\31\3\31\3\31\5\31\u02fc\n\31\3\31\3\31\5\31\u0300\n\31\3\31\3"+ + "\31\5\31\u0304\n\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\5\32\u030d\n\32"+ + "\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34"+ + "\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\5\35\u0326\n\35\3\35\3\35"+ + "\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37"+ + "\3\37\3\37\3 \3 \3 \3 \3 \3 \3!\3!\3!\5!\u0343\n!\3!\3!\3!\5!\u0348\n"+ + "!\3!\3!\5!\u034c\n!\3!\3!\5!\u0350\n!\3!\3!\5!\u0354\n!\3!\3!\3\"\3\""+ + "\3\"\5\"\u035b\n\"\3\"\3\"\3\"\5\"\u0360\n\"\3\"\3\"\5\"\u0364\n\"\3\""+ + "\3\"\5\"\u0368\n\"\3\"\3\"\5\"\u036c\n\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#"+ + "\3#\3#\3#\3$\3$\3$\3$\5$\u037e\n$\3$\3$\3%\3%\3%\3%\3%\3%\3%\5%\u0389"+ + "\n%\3%\3%\5%\u038d\n%\3%\3%\5%\u0391\n%\3%\3%\3&\3&\3&\3\'\3\'\3\'\3("+ + "\3(\3(\3(\5(\u039f\n(\3(\3(\3(\5(\u03a4\n(\3(\3(\5(\u03a8\n(\3(\3(\3)"+ + "\3)\3)\5)\u03af\n)\3)\3)\3)\5)\u03b4\n)\3)\3)\5)\u03b8\n)\3)\3)\3*\3*"+ + "\3*\5*\u03bf\n*\3*\3*\3*\5*\u03c4\n*\3*\3*\5*\u03c8\n*\3*\3*\3+\3+\3+"+ + "\3+\5+\u03d0\n+\3+\3+\3+\5+\u03d5\n+\3+\3+\5+\u03d9\n+\3+\3+\3,\3,\3,"+ + "\3,\5,\u03e1\n,\3,\3,\3,\5,\u03e6\n,\3,\3,\5,\u03ea\n,\3,\3,\3-\3-\3-"+ + "\3-\3-\3-\5-\u03f4\n-\3-\3-\3-\5-\u03f9\n-\3-\3-\5-\u03fd\n-\3-\3-\3."+ + "\3.\5.\u0403\n.\3.\3.\3/\3/\3/\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61"+ + "\3\62\3\62\3\62\3\63\3\63\3\63\3\64\3\64\3\64\3\65\3\65\3\65\3\65\3\65"+ + "\3\65\3\65\3\66\3\66\3\66\3\66\3\67\3\67\3\67\5\67\u0429\n\67\3\67\3\67"+ + "\3\67\5\67\u042e\n\67\3\67\3\67\38\38\38\58\u0435\n8\38\38\38\58\u043a"+ + "\n8\38\38\58\u043e\n8\38\38\58\u0442\n8\38\38\38\38\39\39\39\59\u044b"+ + "\n9\39\39\39\59\u0450\n9\39\39\39\39\39\39\3:\3:\5:\u045a\n:\3:\3:\5:"+ + "\u045e\n:\3:\3:\3:\5:\u0463\n:\3:\3:\3:\3:\5:\u0469\n:\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@\3A\3A\3A\5A\u048f\nA\3A\3A\3B\3B\3B\3B\3B\3B\3B\3C\3C"+ + "\3C\3C\5C\u049e\nC\3C\3C\3C\3C\3D\3D\3D\3D\5D\u04a8\nD\3D\3D\3D\5D\u04ad"+ + "\nD\3D\3D\3E\3E\3E\5E\u04b4\nE\3E\3E\3E\5E\u04b9\nE\3E\3E\3E\3F\3F\3F"+ + "\3F\3F\3F\5F\u04c4\nF\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3G\3G\3G"+ + "\3G\3G\3G\5G\u04d9\nG\3G\3G\3G\3G\3G\3G\3G\5G\u04e2\nG\3G\3G\5G\u04e6"+ + "\nG\3G\3G\3G\5G\u04eb\nG\3G\3G\3G\3G\3G\3G\3G\5G\u04f4\nG\3G\3G\5G\u04f8"+ + "\nG\3G\3G\3G\3G\3G\3G\3H\3H\3H\3H\5H\u0504\nH\3H\3H\3H\3H\3H\3H\3H\3H"+ + "\3H\3H\3H\3H\3H\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J"+ + "\3J\3J\3J\3J\3K\3K\3K\3L\3L\3L\3L\3L\3L\5L\u0532\nL\3L\3L\5L\u0536\nL"+ + "\3L\5L\u0539\nL\3L\3L\5L\u053d\nL\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\5M"+ + "\u054a\nM\3M\3M\3M\3M\3N\3N\3N\5N\u0553\nN\3N\3N\3N\3N\3O\3O\3O\3O\3O"+ + "\3O\3O\5O\u0560\nO\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3Q\3Q\3Q\5Q\u056f\nQ"+ + "\3Q\3Q\3Q\5Q\u0574\nQ\3Q\3Q\5Q\u0578\nQ\3Q\3Q\3Q\3Q\3Q\5Q\u057f\nQ\3Q"+ + "\3Q\3Q\3R\3R\3R\5R\u0587\nR\3R\3R\3R\5R\u058c\nR\3R\3R\3R\3S\3S\3S\5S"+ + "\u0594\nS\3S\3S\3S\5S\u0599\nS\3S\3S\5S\u059d\nS\3S\3S\3S\5S\u05a2\nS"+ + "\3S\3S\5S\u05a6\nS\3S\3S\3S\3S\3S\3S\3T\3T\3T\5T\u05b1\nT\3T\3T\3T\5T"+ + "\u05b6\nT\3T\3T\5T\u05ba\nT\3T\3T\3T\3T\3U\3U\3U\3U\3U\3U\3V\3V\3V\3W"+ + "\3W\3W\3X\3X\3X\3X\3Y\3Y\3Y\3Y\3Z\3Z\3Z\3Z\5Z\u05d8\nZ\3Z\3Z\3[\3[\3["+ + "\3\\\3\\\3\\\3\\\5\\\u05e3\n\\\3\\\3\\\3\\\3\\\3]\3]\3]\5]\u05ec\n]\3"+ + "]\3]\3]\3]\3^\3^\3^\5^\u05f5\n^\3^\3^\3_\3_\3_\3`\3`\3`\3`\3`\3a\3a\3"+ + "a\3a\3a\3b\3b\3b\3b\5b\u060a\nb\3b\3b\6b\u060e\nb\rb\16b\u060f\3b\3b\3"+ + "b\5b\u0615\nb\3b\3b\6b\u0619\nb\rb\16b\u061a\3b\3b\3b\3c\3c\3c\3c\5c\u0624"+ + "\nc\3c\3c\6c\u0628\nc\rc\16c\u0629\3c\3c\3c\3d\3d\3d\3d\5d\u0633\nd\3"+ + "d\3d\6d\u0637\nd\rd\16d\u0638\3d\3d\3d\3e\3e\3e\3e\3e\3e\5e\u0644\ne\3"+ + "e\3e\6e\u0648\ne\re\16e\u0649\3f\3f\3f\5f\u064f\nf\3f\5f\u0652\nf\3f\3"+ + "f\5f\u0656\nf\3f\3f\5f\u065a\nf\3f\5f\u065d\nf\3f\3f\6f\u0661\nf\rf\16"+ + "f\u0662\3f\3f\3f\3g\3g\3g\3g\5g\u066c\ng\3g\3g\5g\u0670\ng\3g\3g\3g\5"+ + "g\u0675\ng\3g\5g\u0678\ng\3g\3g\6g\u067c\ng\rg\16g\u067d\3h\3h\3h\3h\5"+ + "h\u0684\nh\3h\3h\3h\3h\3h\3h\5h\u068c\nh\3h\3h\6h\u0690\nh\rh\16h\u0691"+ + "\3h\3h\3h\5h\u0697\nh\3h\3h\6h\u069b\nh\rh\16h\u069c\3h\3h\3h\3i\3i\3"+ + "i\3i\3i\3i\5i\u06a8\ni\3i\3i\6i\u06ac\ni\ri\16i\u06ad\3i\3i\3i\3j\3j\3"+ + "j\5j\u06b6\nj\3j\3j\6j\u06ba\nj\rj\16j\u06bb\3j\3j\3j\3j\3j\3j\3k\3k\3"+ + "k\3l\3l\3l\3m\3m\3n\3n\3o\3o\3p\3p\3q\3q\3q\3q\3q\3r\3r\3r\3s\3s\3s\5"+ + "s\u06dd\ns\3s\3s\6s\u06e1\ns\rs\16s\u06e2\3s\3s\3s\3t\3t\3t\3t\3t\3t\3"+ + "t\3t\3t\3t\3t\3t\3u\3u\3u\3v\3v\3v\5v\u06fa\nv\3v\3v\5v\u06fe\nv\3v\3"+ + "v\3v\5v\u0703\nv\3v\3v\5v\u0707\nv\3v\3v\5v\u070b\nv\3v\3v\5v\u070f\n"+ + "v\3v\3v\3v\3v\3v\3v\5v\u0717\nv\3v\3v\3w\3w\3w\3w\3w\3w\3w\5w\u0722\n"+ + "w\3w\3w\3w\5w\u0727\nw\3w\3w\5w\u072b\nw\3w\5w\u072e\nw\3w\3w\3w\3x\3"+ + "x\3x\3x\3x\3x\3x\5x\u073a\nx\3x\3x\3x\5x\u073f\nx\3x\5x\u0742\nx\3x\3"+ + "x\3x\3y\3y\3y\5y\u074a\ny\3y\3y\3y\3y\3y\3y\3y\5y\u0753\ny\3y\3y\5y\u0757"+ + "\ny\3y\3y\5y\u075b\ny\3y\3y\3y\3y\5y\u0761\ny\3y\3y\5y\u0765\ny\3y\3y"+ + "\3y\3y\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\5z\u0777\nz\3z\3z\3z\3{\3{"+ + "\3{\3{\3{\3{\3{\3{\3{\3{\3{\3{\5{\u0788\n{\3{\3{\3{\5{\u078d\n{\3{\3{"+ + "\3|\3|\3|\3|\3|\3|\3|\3|\3|\3|\3|\3|\3|\5|\u079e\n|\3|\3|\3|\5|\u07a3"+ + "\n|\3|\3|\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\5}\u07b4\n}\3}\3}\3}"+ + "\5}\u07b9\n}\3}\3}\3~\3~\3~\3~\3~\3~\3~\3~\5~\u07c5\n~\3~\3~\3~\3\177"+ + "\3\177\3\177\3\177\3\177\3\177\3\177\3\177\5\177\u07d2\n\177\3\177\3\177"+ + "\3\177\5\177\u07d7\n\177\3\177\3\177\3\u0080\3\u0080\3\u0080\3\u0080\3"+ + "\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\5\u0080\u07e5\n\u0080\3"+ + "\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081"+ + "\3\u0081\3\u0081\3\u0081\3\u0081\5\u0081\u07f4\n\u0081\3\u0081\3\u0081"+ + "\3\u0081\5\u0081\u07f9\n\u0081\3\u0081\3\u0081\3\u0082\3\u0082\3\u0082"+ + "\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\5\u0082\u0806\n\u0082"+ + "\3\u0082\3\u0082\5\u0082\u080a\n\u0082\3\u0082\3\u0082\3\u0083\3\u0083"+ + "\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083"+ + "\3\u0083\5\u0083\u081a\n\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083"+ + "\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0084"+ + "\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5\u0084\u0831"+ + "\n\u0084\3\u0084\3\u0084\5\u0084\u0835\n\u0084\3\u0084\3\u0084\3\u0085"+ + "\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085"+ + "\3\u0085\3\u0085\3\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086"+ + "\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0087"+ + "\3\u0087\3\u0087\3\u0088\3\u0088\5\u0088\u0859\n\u0088\3\u0088\3\u0088"+ + "\3\u0089\3\u0089\3\u0089\3\u0089\5\u0089\u0861\n\u0089\3\u0089\3\u0089"+ + "\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008b\3\u008b\3\u008c"+ + "\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\5\u008c\u0873\n\u008c\3\u008c"+ + "\3\u008c\3\u008c\7\u008c\u0878\n\u008c\f\u008c\16\u008c\u087b\13\u008c"+ + "\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e\3\u008f\3\u008f\3\u0090\3\u0090"+ + "\3\u0090\3\u0090\3\u0091\3\u0091\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093"+ + "\3\u0093\2\3\u0116\u0094\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&("+ + "*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084"+ + "\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c"+ + "\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4"+ + "\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc"+ + "\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4"+ + "\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc"+ + "\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114"+ + "\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\2\2\2\u094e\2\u0126\3"+ + "\2\2\2\4\u013e\3\2\2\2\6\u014a\3\2\2\2\b\u015b\3\2\2\2\n\u0168\3\2\2\2"+ + "\f\u016a\3\2\2\2\16\u016c\3\2\2\2\20\u017e\3\2\2\2\22\u01ab\3\2\2\2\24"+ + "\u01ba\3\2\2\2\26\u01be\3\2\2\2\30\u01ca\3\2\2\2\32\u01d6\3\2\2\2\34\u01e2"+ + "\3\2\2\2\36\u01ee\3\2\2\2 \u01fa\3\2\2\2\"\u0213\3\2\2\2$\u0294\3\2\2"+ + "\2&\u0296\3\2\2\2(\u029b\3\2\2\2*\u02ab\3\2\2\2,\u02b0\3\2\2\2.\u02c4"+ + "\3\2\2\2\60\u02d3\3\2\2\2\62\u0307\3\2\2\2\64\u0310\3\2\2\2\66\u0318\3"+ + "\2\2\28\u0320\3\2\2\2:\u032b\3\2\2\2<\u0332\3\2\2\2>\u0339\3\2\2\2@\u033f"+ + "\3\2\2\2B\u0357\3\2\2\2D\u036f\3\2\2\2F\u0379\3\2\2\2H\u0381\3\2\2\2J"+ + "\u0394\3\2\2\2L\u0397\3\2\2\2N\u039a\3\2\2\2P\u03ab\3\2\2\2R\u03bb\3\2"+ + "\2\2T\u03cb\3\2\2\2V\u03dc\3\2\2\2X\u03ed\3\2\2\2Z\u0400\3\2\2\2\\\u0406"+ + "\3\2\2\2^\u0409\3\2\2\2`\u040c\3\2\2\2b\u0411\3\2\2\2d\u0414\3\2\2\2f"+ + "\u0417\3\2\2\2h\u041a\3\2\2\2j\u0421\3\2\2\2l\u0425\3\2\2\2n\u0431\3\2"+ + "\2\2p\u0447\3\2\2\2r\u0457\3\2\2\2t\u046c\3\2\2\2v\u0476\3\2\2\2x\u047a"+ + "\3\2\2\2z\u047e\3\2\2\2|\u0482\3\2\2\2~\u0486\3\2\2\2\u0080\u048b\3\2"+ + "\2\2\u0082\u0492\3\2\2\2\u0084\u0499\3\2\2\2\u0086\u04a3\3\2\2\2\u0088"+ + "\u04b0\3\2\2\2\u008a\u04bd\3\2\2\2\u008c\u04d2\3\2\2\2\u008e\u04ff\3\2"+ + "\2\2\u0090\u0516\3\2\2\2\u0092\u051f\3\2\2\2\u0094\u0528\3\2\2\2\u0096"+ + "\u052b\3\2\2\2\u0098\u0544\3\2\2\2\u009a\u054f\3\2\2\2\u009c\u0558\3\2"+ + "\2\2\u009e\u0565\3\2\2\2\u00a0\u056b\3\2\2\2\u00a2\u0583\3\2\2\2\u00a4"+ + "\u0590\3\2\2\2\u00a6\u05ad\3\2\2\2\u00a8\u05bf\3\2\2\2\u00aa\u05c5\3\2"+ + "\2\2\u00ac\u05c8\3\2\2\2\u00ae\u05cb\3\2\2\2\u00b0\u05cf\3\2\2\2\u00b2"+ + "\u05d3\3\2\2\2\u00b4\u05db\3\2\2\2\u00b6\u05de\3\2\2\2\u00b8\u05e8\3\2"+ + "\2\2\u00ba\u05f1\3\2\2\2\u00bc\u05f8\3\2\2\2\u00be\u05fb\3\2\2\2\u00c0"+ + "\u0600\3\2\2\2\u00c2\u0605\3\2\2\2\u00c4\u061f\3\2\2\2\u00c6\u062e\3\2"+ + "\2\2\u00c8\u063d\3\2\2\2\u00ca\u064b\3\2\2\2\u00cc\u0667\3\2\2\2\u00ce"+ + "\u067f\3\2\2\2\u00d0\u06a1\3\2\2\2\u00d2\u06b2\3\2\2\2\u00d4\u06c3\3\2"+ + "\2\2\u00d6\u06c6\3\2\2\2\u00d8\u06c9\3\2\2\2\u00da\u06cb\3\2\2\2\u00dc"+ + "\u06cd\3\2\2\2\u00de\u06cf\3\2\2\2\u00e0\u06d1\3\2\2\2\u00e2\u06d6\3\2"+ + "\2\2\u00e4\u06d9\3\2\2\2\u00e6\u06e7\3\2\2\2\u00e8\u06f3\3\2\2\2\u00ea"+ + "\u06f6\3\2\2\2\u00ec\u071a\3\2\2\2\u00ee\u0732\3\2\2\2\u00f0\u0746\3\2"+ + "\2\2\u00f2\u076a\3\2\2\2\u00f4\u077b\3\2\2\2\u00f6\u0790\3\2\2\2\u00f8"+ + "\u07a6\3\2\2\2\u00fa\u07bc\3\2\2\2\u00fc\u07c9\3\2\2\2\u00fe\u07da\3\2"+ + "\2\2\u0100\u07e9\3\2\2\2\u0102\u07fc\3\2\2\2\u0104\u080d\3\2\2\2\u0106"+ + "\u0826\3\2\2\2\u0108\u0838\3\2\2\2\u010a\u0846\3\2\2\2\u010c\u0853\3\2"+ + "\2\2\u010e\u0856\3\2\2\2\u0110\u085c\3\2\2\2\u0112\u0868\3\2\2\2\u0114"+ + "\u086a\3\2\2\2\u0116\u0872\3\2\2\2\u0118\u087c\3\2\2\2\u011a\u087f\3\2"+ + "\2\2\u011c\u0881\3\2\2\2\u011e\u0883\3\2\2\2\u0120\u0887\3\2\2\2\u0122"+ + "\u0889\3\2\2\2\u0124\u088c\3\2\2\2\u0126\u0128\7\3\2\2\u0127\u0129\7\u010c"+ + "\2\2\u0128\u0127\3\2\2\2\u0128\u0129\3\2\2\2\u0129\u012a\3\2\2\2\u012a"+ + "\u012b\7\u0110\2\2\u012b\u012c\7\4\2\2\u012c\u012d\7\u0101\2\2\u012d\u012e"+ + "\7\5\2\2\u012e\u012f\7\u0101\2\2\u012f\u0130\7\6\2\2\u0130\u0131\7\u00f7"+ + "\2\2\u0131\u0132\7\7\2\2\u0132\u0134\7\u0101\2\2\u0133\u0135\7\u010c\2"+ + "\2\u0134\u0133\3\2\2\2\u0134\u0135\3\2\2\2\u0135\u0136\3\2\2\2\u0136\u0138"+ + "\7\u0110\2\2\u0137\u0139\5$\23\2\u0138\u0137\3\2\2\2\u0139\u013a\3\2\2"+ + "\2\u013a\u0138\3\2\2\2\u013a\u013b\3\2\2\2\u013b\u013c\3\2\2\2\u013c\u013d"+ + "\7\u010f\2\2\u013d\3\3\2\2\2\u013e\u0140\7\b\2\2\u013f\u0141\7\u010c\2"+ + "\2\u0140\u013f\3\2\2\2\u0140\u0141\3\2\2\2\u0141\u0142\3\2\2\2\u0142\u0144"+ + "\7\u0110\2\2\u0143\u0145\5\6\4\2\u0144\u0143\3\2\2\2\u0145\u0146\3\2\2"+ + "\2\u0146\u0144\3\2\2\2\u0146\u0147\3\2\2\2\u0147\u0148\3\2\2\2\u0148\u0149"+ + "\7\u010f\2\2\u0149\5\3\2\2\2\u014a\u014b\7\t\2\2\u014b\u014c\5\u0116\u008c"+ + "\2\u014c\u014e\7\n\2\2\u014d\u014f\7\u010b\2\2\u014e\u014d\3\2\2\2\u014e"+ + "\u014f\3\2\2\2\u014f\u0150\3\2\2\2\u0150\u0151\7\13\2\2\u0151\u0153\7"+ + "\u0101\2\2\u0152\u0154\7\u010c\2\2\u0153\u0152\3\2\2\2\u0153\u0154\3\2"+ + "\2\2\u0154\u0155\3\2\2\2\u0155\u0157\7\u0110\2\2\u0156\u0158\5$\23\2\u0157"+ + "\u0156\3\2\2\2\u0158\u0159\3\2\2\2\u0159\u0157\3\2\2\2\u0159\u015a\3\2"+ + "\2\2\u015a\7\3\2\2\2\u015b\u015d\7\f\2\2\u015c\u015e\7\u010c\2\2\u015d"+ + "\u015c\3\2\2\2\u015d\u015e\3\2\2\2\u015e\u015f\3\2\2\2\u015f\u0161\7\u0110"+ + "\2\2\u0160\u0162\5\n\6\2\u0161\u0160\3\2\2\2\u0162\u0163\3\2\2\2\u0163"+ + "\u0161\3\2\2\2\u0163\u0164\3\2\2\2\u0164\t\3\2\2\2\u0165\u0169\5\20\t"+ + "\2\u0166\u0169\5\16\b\2\u0167\u0169\5\f\7\2\u0168\u0165\3\2\2\2\u0168"+ + "\u0166\3\2\2\2\u0168\u0167\3\2\2\2\u0169\13\3\2\2\2\u016a\u016b\7\u0110"+ + "\2\2\u016b\r\3\2\2\2\u016c\u016d\7\r\2\2\u016d\u016e\7\u0108\2\2\u016e"+ + "\u016f\7\16\2\2\u016f\u0171\7\u010b\2\2\u0170\u0172\7\u010c\2\2\u0171"+ + "\u0170\3\2\2\2\u0171\u0172\3\2\2\2\u0172\u0173\3\2\2\2\u0173\u0174\7\17"+ + "\2\2\u0174\u0176\7\u0101\2\2\u0175\u0177\7\u010c\2\2\u0176\u0175\3\2\2"+ + "\2\u0176\u0177\3\2\2\2\u0177\u0178\3\2\2\2\u0178\u0179\7\20\2\2\u0179"+ + "\u017a\7\u010b\2\2\u017a\u017c\7\21\2\2\u017b\u017d\7\u010b\2\2\u017c"+ + "\u017b\3\2\2\2\u017c\u017d\3\2\2\2\u017d\17\3\2\2\2\u017e\u017f\7\r\2"+ + "\2\u017f\u0180\7\u0108\2\2\u0180\u0181\7\22\2\2\u0181\u0182\7\u010b\2"+ + "\2\u0182\u0183\7\23\2\2\u0183\u0185\7\u0108\2\2\u0184\u0186\7\u010c\2"+ + "\2\u0185\u0184\3\2\2\2\u0185\u0186\3\2\2\2\u0186\u0187\3\2\2\2\u0187\u0188"+ + "\7\u0110\2\2\u0188\u0189\7\16\2\2\u0189\u018a\7\u010b\2\2\u018a\u018b"+ + "\7\24\2\2\u018b\u018d\7\u0101\2\2\u018c\u018e\7\u010c\2\2\u018d\u018c"+ + "\3\2\2\2\u018d\u018e\3\2\2\2\u018e\u018f\3\2\2\2\u018f\u0190\7\u0110\2"+ + "\2\u0190\u0191\7\17\2\2\u0191\u0193\7\u0101\2\2\u0192\u0194\7\u010c\2"+ + "\2\u0193\u0192\3\2\2\2\u0193\u0194\3\2\2\2\u0194\u0195\3\2\2\2\u0195\u0196"+ + "\7\u0110\2\2\u0196\u0197\7\25\2\2\u0197\u0198\7\u00f4\2\2\u0198\u0199"+ + "\7\26\2\2\u0199\u019b\7\u010b\2\2\u019a\u019c\7\u010c\2\2\u019b\u019a"+ + "\3\2\2\2\u019b\u019c\3\2\2\2\u019c\u019d\3\2\2\2\u019d\u019e\7\u0110\2"+ + "\2\u019e\u019f\7\27\2\2\u019f\u01a1\7\u010b\2\2\u01a0\u01a2\7\u010c\2"+ + "\2\u01a1\u01a0\3\2\2\2\u01a1\u01a2\3\2\2\2\u01a2\u01a3\3\2\2\2\u01a3\u01a5"+ + "\7\u0110\2\2\u01a4\u01a6\5\22\n\2\u01a5\u01a4\3\2\2\2\u01a6\u01a7\3\2"+ + "\2\2\u01a7\u01a5\3\2\2\2\u01a7\u01a8\3\2\2\2\u01a8\u01a9\3\2\2\2\u01a9"+ + "\u01aa\7\u010f\2\2\u01aa\21\3\2\2\2\u01ab\u01ac\7\30\2\2\u01ac\u01ad\7"+ + "\u010b\2\2\u01ad\u01af\7\26\2\2\u01ae\u01b0\7\u010b\2\2\u01af\u01ae\3"+ + "\2\2\2\u01af\u01b0\3\2\2\2\u01b0\u01b2\3\2\2\2\u01b1\u01b3\7\u010c\2\2"+ + "\u01b2\u01b1\3\2\2\2\u01b2\u01b3\3\2\2\2\u01b3\u01b4\3\2\2\2\u01b4\u01b6"+ + "\7\u0110\2\2\u01b5\u01b7\5\24\13\2\u01b6\u01b5\3\2\2\2\u01b7\u01b8\3\2"+ + "\2\2\u01b8\u01b6\3\2\2\2\u01b8\u01b9\3\2\2\2\u01b9\23\3\2\2\2\u01ba\u01bb"+ + "\5\u011c\u008f\2\u01bb\u01bc\7\31\2\2\u01bc\u01bd\5\u0116\u008c\2\u01bd"+ + "\25\3\2\2\2\u01be\u01c0\7\32\2\2\u01bf\u01c1\7\u010c\2\2\u01c0\u01bf\3"+ + "\2\2\2\u01c0\u01c1\3\2\2\2\u01c1\u01c2\3\2\2\2\u01c2\u01c4\7\u0110\2\2"+ + "\u01c3\u01c5\5$\23\2\u01c4\u01c3\3\2\2\2\u01c5\u01c6\3\2\2\2\u01c6\u01c4"+ + "\3\2\2\2\u01c6\u01c7\3\2\2\2\u01c7\u01c8\3\2\2\2\u01c8\u01c9\7\u010f\2"+ + "\2\u01c9\27\3\2\2\2\u01ca\u01cc\7\33\2\2\u01cb\u01cd\7\u010c\2\2\u01cc"+ + "\u01cb\3\2\2\2\u01cc\u01cd\3\2\2\2\u01cd\u01ce\3\2\2\2\u01ce\u01d0\7\u0110"+ + "\2\2\u01cf\u01d1\5$\23\2\u01d0\u01cf\3\2\2\2\u01d1\u01d2\3\2\2\2\u01d2"+ + "\u01d0\3\2\2\2\u01d2\u01d3\3\2\2\2\u01d3\u01d4\3\2\2\2\u01d4\u01d5\7\u010f"+ + "\2\2\u01d5\31\3\2\2\2\u01d6\u01d8\7\34\2\2\u01d7\u01d9\7\u010c\2\2\u01d8"+ + "\u01d7\3\2\2\2\u01d8\u01d9\3\2\2\2\u01d9\u01da\3\2\2\2\u01da\u01dc\7\u0110"+ + "\2\2\u01db\u01dd\5$\23\2\u01dc\u01db\3\2\2\2\u01dd\u01de\3\2\2\2\u01de"+ + "\u01dc\3\2\2\2\u01de\u01df\3\2\2\2\u01df\u01e0\3\2\2\2\u01e0\u01e1\7\u010f"+ + "\2\2\u01e1\33\3\2\2\2\u01e2\u01e4\7\35\2\2\u01e3\u01e5\7\u010c\2\2\u01e4"+ + "\u01e3\3\2\2\2\u01e4\u01e5\3\2\2\2\u01e5\u01e6\3\2\2\2\u01e6\u01e8\7\u0110"+ + "\2\2\u01e7\u01e9\5$\23\2\u01e8\u01e7\3\2\2\2\u01e9\u01ea\3\2\2\2\u01ea"+ + "\u01e8\3\2\2\2\u01ea\u01eb\3\2\2\2\u01eb\u01ec\3\2\2\2\u01ec\u01ed\7\u010f"+ + "\2\2\u01ed\35\3\2\2\2\u01ee\u01f0\7\36\2\2\u01ef\u01f1\7\u010c\2\2\u01f0"+ + "\u01ef\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f2\3\2\2\2\u01f2\u01f4\7\u0110"+ + "\2\2\u01f3\u01f5\5$\23\2\u01f4\u01f3\3\2\2\2\u01f5\u01f6\3\2\2\2\u01f6"+ + "\u01f4\3\2\2\2\u01f6\u01f7\3\2\2\2\u01f7\u01f8\3\2\2\2\u01f8\u01f9\7\u010f"+ + "\2\2\u01f9\37\3\2\2\2\u01fa\u01fc\7\37\2\2\u01fb\u01fd\7\u010c\2\2\u01fc"+ + "\u01fb\3\2\2\2\u01fc\u01fd\3\2\2\2\u01fd\u01fe\3\2\2\2\u01fe\u01ff\7\u0110"+ + "\2\2\u01ff\u0201\7\u00ef\2\2\u0200\u0202\7\u0108\2\2\u0201\u0200\3\2\2"+ + "\2\u0201\u0202\3\2\2\2\u0202\u0203\3\2\2\2\u0203\u0204\7\u00f0\2\2\u0204"+ + "\u0205\7 \2\2\u0205\u0206\7\u0104\2\2\u0206\u0207\7!\2\2\u0207\u0208\7"+ + "\"\2\2\u0208\u0209\7\u0104\2\2\u0209\u020a\7#\2\2\u020a\u020b\7\u0106"+ + "\2\2\u020b\u020d\7$\2\2\u020c\u020e\7\u0102\2\2\u020d\u020c\3\2\2\2\u020d"+ + "\u020e\3\2\2\2\u020e\u020f\3\2\2\2\u020f\u0210\7%\2\2\u0210\u0211\7\u0101"+ + "\2\2\u0211\u0212\7\u010f\2\2\u0212!\3\2\2\2\u0213\u0215\7&\2\2\u0214\u0216"+ + "\7\u010c\2\2\u0215\u0214\3\2\2\2\u0215\u0216\3\2\2\2\u0216\u0217\3\2\2"+ + "\2\u0217\u0219\7\u0110\2\2\u0218\u021a\5$\23\2\u0219\u0218\3\2\2\2\u021a"+ + "\u021b\3\2\2\2\u021b\u0219\3\2\2\2\u021b\u021c\3\2\2\2\u021c\u021d\3\2"+ + "\2\2\u021d\u021e\7\u010f\2\2\u021e#\3\2\2\2\u021f\u0295\5&\24\2\u0220"+ + "\u0295\5(\25\2\u0221\u0295\5*\26\2\u0222\u0295\5,\27\2\u0223\u0295\5."+ + "\30\2\u0224\u0295\5\60\31\2\u0225\u0295\5\62\32\2\u0226\u0295\5\64\33"+ + "\2\u0227\u0295\5\66\34\2\u0228\u0295\58\35\2\u0229\u0295\5:\36\2\u022a"+ + "\u0295\5<\37\2\u022b\u0295\5> \2\u022c\u0295\5@!\2\u022d\u0295\5B\"\2"+ + "\u022e\u0295\5D#\2\u022f\u0295\5F$\2\u0230\u0295\5H%\2\u0231\u0295\5J"+ + "&\2\u0232\u0295\5L\'\2\u0233\u0295\5N(\2\u0234\u0295\5P)\2\u0235\u0295"+ + "\5R*\2\u0236\u0295\5T+\2\u0237\u0295\5V,\2\u0238\u0295\5X-\2\u0239\u0295"+ + "\5Z.\2\u023a\u0295\5\\/\2\u023b\u0295\5^\60\2\u023c\u0295\5`\61\2\u023d"+ + "\u0295\5b\62\2\u023e\u0295\5d\63\2\u023f\u0295\5f\64\2\u0240\u0295\5h"+ + "\65\2\u0241\u0295\5\u00d8m\2\u0242\u0295\5\u00dan\2\u0243\u0295\5j\66"+ + "\2\u0244\u0295\5l\67\2\u0245\u0295\5n8\2\u0246\u0295\5p9\2\u0247\u0295"+ + "\5r:\2\u0248\u0295\5t;\2\u0249\u0295\5v<\2\u024a\u0295\5\u0086D\2\u024b"+ + "\u0295\5\u0088E\2\u024c\u0295\5x=\2\u024d\u0295\5z>\2\u024e\u0295\5|?"+ + "\2\u024f\u0295\5~@\2\u0250\u0295\5\u0080A\2\u0251\u0295\5\u0084C\2\u0252"+ + "\u0295\5\u0082B\2\u0253\u0295\5\u008aF\2\u0254\u0295\5\u008cG\2\u0255"+ + "\u0295\5\u0090I\2\u0256\u0295\5\u008eH\2\u0257\u0295\5\u0096L\2\u0258"+ + "\u0295\5\u0092J\2\u0259\u0295\5\u0094K\2\u025a\u0295\5\u0098M\2\u025b"+ + "\u0295\5\u009aN\2\u025c\u0295\5\u009cO\2\u025d\u0295\5\u009eP\2\u025e"+ + "\u0295\5\u00a0Q\2\u025f\u0295\5\u00a2R\2\u0260\u0295\5\u00a4S\2\u0261"+ + "\u0295\5\u00a6T\2\u0262\u0295\5\u00a8U\2\u0263\u0295\5\u00aaV\2\u0264"+ + "\u0295\5\u00acW\2\u0265\u0295\5\u00aeX\2\u0266\u0295\5\u00b0Y\2\u0267"+ + "\u0295\5\u00b2Z\2\u0268\u0295\5\u00b4[\2\u0269\u0295\5\u00b6\\\2\u026a"+ + "\u0295\5\u00b8]\2\u026b\u0295\5\u00ba^\2\u026c\u0295\5\u00bc_\2\u026d"+ + "\u0295\5\u00c2b\2\u026e\u0295\5\u00c4c\2\u026f\u0295\5\u00c6d\2\u0270"+ + "\u0295\5\u00d0i\2\u0271\u0295\5\u00d2j\2\u0272\u0295\5\u00d4k\2\u0273"+ + "\u0295\5\u00d6l\2\u0274\u0295\5\u00be`\2\u0275\u0295\5\u00c0a\2\u0276"+ + "\u0295\5\u00caf\2\u0277\u0295\5\u00ceh\2\u0278\u0295\5\u00dco\2\u0279"+ + "\u0295\5\u00dep\2\u027a\u0295\5\u00e0q\2\u027b\u0295\5\u00e2r\2\u027c"+ + "\u0295\5\u00e4s\2\u027d\u0295\5\u00e6t\2\u027e\u0295\5\u00e8u\2\u027f"+ + "\u0295\5\u00eav\2\u0280\u0295\5\u00ecw\2\u0281\u0295\5\u00eex\2\u0282"+ + "\u0295\5\u00f0y\2\u0283\u0295\5\u00f2z\2\u0284\u0295\5\u00f4{\2\u0285"+ + "\u0295\5\u00f6|\2\u0286\u0295\5\u00f8}\2\u0287\u0295\5\u00fa~\2\u0288"+ + "\u0295\5\u00fc\177\2\u0289\u0295\5\u00fe\u0080\2\u028a\u0295\5\u0100\u0081"+ + "\2\u028b\u0295\5\u0102\u0082\2\u028c\u0295\5\u0104\u0083\2\u028d\u0295"+ + "\5\u0106\u0084\2\u028e\u0295\5\u0108\u0085\2\u028f\u0295\5\u010a\u0086"+ + "\2\u0290\u0295\5\u010c\u0087\2\u0291\u0295\5\u010e\u0088\2\u0292\u0295"+ + "\5\u0110\u0089\2\u0293\u0295\5\u0112\u008a\2\u0294\u021f\3\2\2\2\u0294"+ + "\u0220\3\2\2\2\u0294\u0221\3\2\2\2\u0294\u0222\3\2\2\2\u0294\u0223\3\2"+ + "\2\2\u0294\u0224\3\2\2\2\u0294\u0225\3\2\2\2\u0294\u0226\3\2\2\2\u0294"+ + "\u0227\3\2\2\2\u0294\u0228\3\2\2\2\u0294\u0229\3\2\2\2\u0294\u022a\3\2"+ + "\2\2\u0294\u022b\3\2\2\2\u0294\u022c\3\2\2\2\u0294\u022d\3\2\2\2\u0294"+ + "\u022e\3\2\2\2\u0294\u022f\3\2\2\2\u0294\u0230\3\2\2\2\u0294\u0231\3\2"+ + "\2\2\u0294\u0232\3\2\2\2\u0294\u0233\3\2\2\2\u0294\u0234\3\2\2\2\u0294"+ + "\u0235\3\2\2\2\u0294\u0236\3\2\2\2\u0294\u0237\3\2\2\2\u0294\u0238\3\2"+ + "\2\2\u0294\u0239\3\2\2\2\u0294\u023a\3\2\2\2\u0294\u023b\3\2\2\2\u0294"+ + "\u023c\3\2\2\2\u0294\u023d\3\2\2\2\u0294\u023e\3\2\2\2\u0294\u023f\3\2"+ + "\2\2\u0294\u0240\3\2\2\2\u0294\u0241\3\2\2\2\u0294\u0242\3\2\2\2\u0294"+ + "\u0243\3\2\2\2\u0294\u0244\3\2\2\2\u0294\u0245\3\2\2\2\u0294\u0246\3\2"+ + "\2\2\u0294\u0247\3\2\2\2\u0294\u0248\3\2\2\2\u0294\u0249\3\2\2\2\u0294"+ + "\u024a\3\2\2\2\u0294\u024b\3\2\2\2\u0294\u024c\3\2\2\2\u0294\u024d\3\2"+ + "\2\2\u0294\u024e\3\2\2\2\u0294\u024f\3\2\2\2\u0294\u0250\3\2\2\2\u0294"+ + "\u0251\3\2\2\2\u0294\u0252\3\2\2\2\u0294\u0253\3\2\2\2\u0294\u0254\3\2"+ + "\2\2\u0294\u0255\3\2\2\2\u0294\u0256\3\2\2\2\u0294\u0257\3\2\2\2\u0294"+ + "\u0258\3\2\2\2\u0294\u0259\3\2\2\2\u0294\u025a\3\2\2\2\u0294\u025b\3\2"+ + "\2\2\u0294\u025c\3\2\2\2\u0294\u025d\3\2\2\2\u0294\u025e\3\2\2\2\u0294"+ + "\u025f\3\2\2\2\u0294\u0260\3\2\2\2\u0294\u0261\3\2\2\2\u0294\u0262\3\2"+ + "\2\2\u0294\u0263\3\2\2\2\u0294\u0264\3\2\2\2\u0294\u0265\3\2\2\2\u0294"+ + "\u0266\3\2\2\2\u0294\u0267\3\2\2\2\u0294\u0268\3\2\2\2\u0294\u0269\3\2"+ + "\2\2\u0294\u026a\3\2\2\2\u0294\u026b\3\2\2\2\u0294\u026c\3\2\2\2\u0294"+ + "\u026d\3\2\2\2\u0294\u026e\3\2\2\2\u0294\u026f\3\2\2\2\u0294\u0270\3\2"+ + "\2\2\u0294\u0271\3\2\2\2\u0294\u0272\3\2\2\2\u0294\u0273\3\2\2\2\u0294"+ + "\u0274\3\2\2\2\u0294\u0275\3\2\2\2\u0294\u0276\3\2\2\2\u0294\u0277\3\2"+ + "\2\2\u0294\u0278\3\2\2\2\u0294\u0279\3\2\2\2\u0294\u027a\3\2\2\2\u0294"+ + "\u027b\3\2\2\2\u0294\u027c\3\2\2\2\u0294\u027d\3\2\2\2\u0294\u027e\3\2"+ + "\2\2\u0294\u027f\3\2\2\2\u0294\u0280\3\2\2\2\u0294\u0281\3\2\2\2\u0294"+ + "\u0282\3\2\2\2\u0294\u0283\3\2\2\2\u0294\u0284\3\2\2\2\u0294\u0285\3\2"+ + "\2\2\u0294\u0286\3\2\2\2\u0294\u0287\3\2\2\2\u0294\u0288\3\2\2\2\u0294"+ + "\u0289\3\2\2\2\u0294\u028a\3\2\2\2\u0294\u028b\3\2\2\2\u0294\u028c\3\2"+ + "\2\2\u0294\u028d\3\2\2\2\u0294\u028e\3\2\2\2\u0294\u028f\3\2\2\2\u0294"+ + "\u0290\3\2\2\2\u0294\u0291\3\2\2\2\u0294\u0292\3\2\2\2\u0294\u0293\3\2"+ + "\2\2\u0295%\3\2\2\2\u0296\u0297\7\'\2\2\u0297\u0298\7(\2\2\u0298\u0299"+ + "\7\u010b\2\2\u0299\u029a\7\u0110\2\2\u029a\'\3\2\2\2\u029b\u029d\7\22"+ + "\2\2\u029c\u029e\7\u010b\2\2\u029d\u029c\3\2\2\2\u029d\u029e\3\2\2\2\u029e"+ + "\u029f\3\2\2\2\u029f\u02a1\7)\2\2\u02a0\u02a2\7\u0108\2\2\u02a1\u02a0"+ + "\3\2\2\2\u02a1\u02a2\3\2\2\2\u02a2\u02a3\3\2\2\2\u02a3\u02a5\7*\2\2\u02a4"+ + "\u02a6\7\u010b\2\2\u02a5\u02a4\3\2\2\2\u02a5\u02a6\3\2\2\2\u02a6\u02a7"+ + "\3\2\2\2\u02a7\u02a8\7(\2\2\u02a8\u02a9\7\u010b\2\2\u02a9\u02aa\7\u0110"+ + "\2\2\u02aa)\3\2\2\2\u02ab\u02ac\7+\2\2\u02ac\u02ad\7(\2\2\u02ad\u02ae"+ + "\7\u010b\2\2\u02ae\u02af\7\u0110\2\2\u02af+\3\2\2\2\u02b0\u02b2\7,\2\2"+ + "\u02b1\u02b3\7\u010b\2\2\u02b2\u02b1\3\2\2\2\u02b2\u02b3\3\2\2\2\u02b3"+ + "\u02b4\3\2\2\2\u02b4\u02b6\7)\2\2\u02b5\u02b7\7\u0108\2\2\u02b6\u02b5"+ + "\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7\u02b8\3\2\2\2\u02b8\u02ba\7*\2\2\u02b9"+ + "\u02bb\7\u010b\2\2\u02ba\u02b9\3\2\2\2\u02ba\u02bb\3\2\2\2\u02bb\u02bc"+ + "\3\2\2\2\u02bc\u02bd\7-\2\2\u02bd\u02bf\7\u0102\2\2\u02be\u02c0\7\u010c"+ + "\2\2\u02bf\u02be\3\2\2\2\u02bf\u02c0\3\2\2\2\u02c0\u02c1\3\2\2\2\u02c1"+ + "\u02c2\7\u010b\2\2\u02c2\u02c3\7\u0110\2\2\u02c3-\3\2\2\2\u02c4\u02c5"+ + "\7.\2\2\u02c5\u02c6\7-\2\2\u02c6\u02c7\7\u0102\2\2\u02c7\u02c8\7/\2\2"+ + "\u02c8\u02c9\7\u0104\2\2\u02c9\u02cb\7\60\2\2\u02ca\u02cc\7\u0101\2\2"+ + "\u02cb\u02ca\3\2\2\2\u02cb\u02cc\3\2\2\2\u02cc\u02ce\3\2\2\2\u02cd\u02cf"+ + "\7\u010c\2\2\u02ce\u02cd\3\2\2\2\u02ce\u02cf\3\2\2\2\u02cf\u02d0\3\2\2"+ + "\2\u02d0\u02d1\7\u010b\2\2\u02d1\u02d2\7\u0110\2\2\u02d2/\3\2\2\2\u02d3"+ + "\u02d4\7\61\2\2\u02d4\u02d5\7\62\2\2\u02d5\u02d6\7\u00f1\2\2\u02d6\u02d8"+ + "\7\63\2\2\u02d7\u02d9\7\u010b\2\2\u02d8\u02d7\3\2\2\2\u02d8\u02d9\3\2"+ + "\2\2\u02d9\u02da\3\2\2\2\u02da\u02dc\7\64\2\2\u02db\u02dd\7\u00f2\2\2"+ + "\u02dc\u02db\3\2\2\2\u02dc\u02dd\3\2\2\2\u02dd\u02df\3\2\2\2\u02de\u02e0"+ + "\7\u010c\2\2\u02df\u02de\3\2\2\2\u02df\u02e0\3\2\2\2\u02e0\u02e1\3\2\2"+ + "\2\u02e1\u02e3\7\65\2\2\u02e2\u02e4\7\u010b\2\2\u02e3\u02e2\3\2\2\2\u02e3"+ + "\u02e4\3\2\2\2\u02e4\u02e5\3\2\2\2\u02e5\u02e6\7\u00ff\2\2\u02e6\u02e8"+ + "\7\66\2\2\u02e7\u02e9\7\u010b\2\2\u02e8\u02e7\3\2\2\2\u02e8\u02e9\3\2"+ + "\2\2\u02e9\u02ea\3\2\2\2\u02ea\u02eb\7\u00ff\2\2\u02eb\u02ed\7\67\2\2"+ + "\u02ec\u02ee\7\u010b\2\2\u02ed\u02ec\3\2\2\2\u02ed\u02ee\3\2\2\2\u02ee"+ + "\u02ef\3\2\2\2\u02ef\u02f1\7\u00ff\2\2\u02f0\u02f2\7\u010c\2\2\u02f1\u02f0"+ + "\3\2\2\2\u02f1\u02f2\3\2\2\2\u02f2\u02f3\3\2\2\2\u02f3\u02f4\78\2\2\u02f4"+ + "\u02f5\7\u00f8\2\2\u02f5\u02f7\79\2\2\u02f6\u02f8\7\u010b\2\2\u02f7\u02f6"+ + "\3\2\2\2\u02f7\u02f8\3\2\2\2\u02f8\u02f9\3\2\2\2\u02f9\u02fb\7:\2\2\u02fa"+ + "\u02fc\7\u010b\2\2\u02fb\u02fa\3\2\2\2\u02fb\u02fc\3\2\2\2\u02fc\u02fd"+ + "\3\2\2\2\u02fd\u02ff\7;\2\2\u02fe\u0300\7\u010b\2\2\u02ff\u02fe\3\2\2"+ + "\2\u02ff\u0300\3\2\2\2\u0300\u0301\3\2\2\2\u0301\u0303\7<\2\2\u0302\u0304"+ + "\7\u010b\2\2\u0303\u0302\3\2\2\2\u0303\u0304\3\2\2\2\u0304\u0305\3\2\2"+ + "\2\u0305\u0306\7\u0110\2\2\u0306\61\3\2\2\2\u0307\u0308\7=\2\2\u0308\u0309"+ + "\7(\2\2\u0309\u030a\7\u010b\2\2\u030a\u030c\7>\2\2\u030b\u030d\7\u0108"+ + "\2\2\u030c\u030b\3\2\2\2\u030c\u030d\3\2\2\2\u030d\u030e\3\2\2\2\u030e"+ + "\u030f\7\u0110\2\2\u030f\63\3\2\2\2\u0310\u0311\7?\2\2\u0311\u0312\7("+ + "\2\2\u0312\u0313\7@\2\2\u0313\u0314\5\u011c\u008f\2\u0314\u0315\7A\2\2"+ + "\u0315\u0316\5\u0116\u008c\2\u0316\u0317\7\u0110\2\2\u0317\65\3\2\2\2"+ + "\u0318\u0319\7B\2\2\u0319\u031a\7(\2\2\u031a\u031b\7@\2\2\u031b\u031c"+ + "\5\u011c\u008f\2\u031c\u031d\7\31\2\2\u031d\u031e\5\u0116\u008c\2\u031e"+ + "\u031f\7\u0110\2\2\u031f\67\3\2\2\2\u0320\u0321\7C\2\2\u0321\u0322\7("+ + "\2\2\u0322\u0323\7\u00fb\2\2\u0323\u0325\7D\2\2\u0324\u0326\7\u0108\2"+ + "\2\u0325\u0324\3\2\2\2\u0325\u0326\3\2\2\2\u0326\u0327\3\2\2\2\u0327\u0328"+ + "\7A\2\2\u0328\u0329\7\u010b\2\2\u0329\u032a\7\u0110\2\2\u032a9\3\2\2\2"+ + "\u032b\u032c\7E\2\2\u032c\u032d\7(\2\2\u032d\u032e\7\u00fc\2\2\u032e\u032f"+ + "\7A\2\2\u032f\u0330\7\u010b\2\2\u0330\u0331\7\u0110\2\2\u0331;\3\2\2\2"+ + "\u0332\u0333\7F\2\2\u0333\u0334\7(\2\2\u0334\u0335\7\u00fd\2\2\u0335\u0336"+ + "\7A\2\2\u0336\u0337\7\u010b\2\2\u0337\u0338\7\u0110\2\2\u0338=\3\2\2\2"+ + "\u0339\u033a\7G\2\2\u033a\u033b\7(\2\2\u033b\u033c\7\u00fe\2\2\u033c\u033d"+ + "\7\u0101\2\2\u033d\u033e\7\u0110\2\2\u033e?\3\2\2\2\u033f\u0340\7H\2\2"+ + "\u0340\u0342\7 \2\2\u0341\u0343\7\u010b\2\2\u0342\u0341\3\2\2\2\u0342"+ + "\u0343\3\2\2\2\u0343\u0344\3\2\2\2\u0344\u0345\7!\2\2\u0345\u0347\7\""+ + "\2\2\u0346\u0348\7\u010b\2\2\u0347\u0346\3\2\2\2\u0347\u0348\3\2\2\2\u0348"+ + "\u0349\3\2\2\2\u0349\u034b\7I\2\2\u034a\u034c\7\u0108\2\2\u034b\u034a"+ + "\3\2\2\2\u034b\u034c\3\2\2\2\u034c\u034d\3\2\2\2\u034d\u034f\7$\2\2\u034e"+ + "\u0350\7\u0102\2\2\u034f\u034e\3\2\2\2\u034f\u0350\3\2\2\2\u0350\u0351"+ + "\3\2\2\2\u0351\u0353\7\60\2\2\u0352\u0354\7\u0101\2\2\u0353\u0352\3\2"+ + "\2\2\u0353\u0354\3\2\2\2\u0354\u0355\3\2\2\2\u0355\u0356\7\u0110\2\2\u0356"+ + "A\3\2\2\2\u0357\u0358\7J\2\2\u0358\u035a\7 \2\2\u0359\u035b\7\u010b\2"+ + "\2\u035a\u0359\3\2\2\2\u035a\u035b\3\2\2\2\u035b\u035c\3\2\2\2\u035c\u035d"+ + "\7!\2\2\u035d\u035f\7\"\2\2\u035e\u0360\7\u010b\2\2\u035f\u035e\3\2\2"+ + "\2\u035f\u0360\3\2\2\2\u0360\u0361\3\2\2\2\u0361\u0363\7I\2\2\u0362\u0364"+ + "\7\u0108\2\2\u0363\u0362\3\2\2\2\u0363\u0364\3\2\2\2\u0364\u0365\3\2\2"+ + "\2\u0365\u0367\7$\2\2\u0366\u0368\7\u0102\2\2\u0367\u0366\3\2\2\2\u0367"+ + "\u0368\3\2\2\2\u0368\u0369\3\2\2\2\u0369\u036b\7\60\2\2\u036a\u036c\7"+ + "\u0101\2\2\u036b\u036a\3\2\2\2\u036b\u036c\3\2\2\2\u036c\u036d\3\2\2\2"+ + "\u036d\u036e\7\u0110\2\2\u036eC\3\2\2\2\u036f\u0370\7K\2\2\u0370\u0371"+ + "\7 \2\2\u0371\u0372\7\u00ee\2\2\u0372\u0373\7!\2\2\u0373\u0374\7\"\2\2"+ + "\u0374\u0375\7\u00ee\2\2\u0375\u0376\7L\2\2\u0376\u0377\7\u0101\2\2\u0377"+ + "\u0378\7\u0110\2\2\u0378E\3\2\2\2\u0379\u037a\7M\2\2\u037a\u037b\7\u010b"+ + "\2\2\u037b\u037d\7\21\2\2\u037c\u037e\7\u010b\2\2\u037d\u037c\3\2\2\2"+ + "\u037d\u037e\3\2\2\2\u037e\u037f\3\2\2\2\u037f\u0380\7\u0110\2\2\u0380"+ + "G\3\2\2\2\u0381\u0382\7N\2\2\u0382\u0383\7 \2\2\u0383\u0384\7\u00ee\2"+ + "\2\u0384\u0385\7!\2\2\u0385\u0386\7\"\2\2\u0386\u0388\7\u00ee\2\2\u0387"+ + "\u0389\7\u00fa\2\2\u0388\u0387\3\2\2\2\u0388\u0389\3\2\2\2\u0389\u038a"+ + "\3\2\2\2\u038a\u038c\7I\2\2\u038b\u038d\7\u0108\2\2\u038c\u038b\3\2\2"+ + "\2\u038c\u038d\3\2\2\2\u038d\u038e\3\2\2\2\u038e\u0390\7\21\2\2\u038f"+ + "\u0391\7\u010b\2\2\u0390\u038f\3\2\2\2\u0390\u0391\3\2\2\2\u0391\u0392"+ + "\3\2\2\2\u0392\u0393\7\u0110\2\2\u0393I\3\2\2\2\u0394\u0395\7O\2\2\u0395"+ + "\u0396\7\u0110\2\2\u0396K\3\2\2\2\u0397\u0398\7P\2\2\u0398\u0399\7\u0110"+ + "\2\2\u0399M\3\2\2\2\u039a\u039b\7Q\2\2\u039b\u039c\7\u010b\2\2\u039c\u039e"+ + "\7 \2\2\u039d\u039f\7\u010b\2\2\u039e\u039d\3\2\2\2\u039e\u039f\3\2\2"+ + "\2\u039f\u03a0\3\2\2\2\u03a0\u03a1\7!\2\2\u03a1\u03a3\7\"\2\2\u03a2\u03a4"+ + "\7\u010b\2\2\u03a3\u03a2\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a5\3\2\2"+ + "\2\u03a5\u03a7\7I\2\2\u03a6\u03a8\7\u0108\2\2\u03a7\u03a6\3\2\2\2\u03a7"+ + "\u03a8\3\2\2\2\u03a8\u03a9\3\2\2\2\u03a9\u03aa\7\u0110\2\2\u03aaO\3\2"+ + "\2\2\u03ab\u03ac\7R\2\2\u03ac\u03ae\7 \2\2\u03ad\u03af\7\u010b\2\2\u03ae"+ + "\u03ad\3\2\2\2\u03ae\u03af\3\2\2\2\u03af\u03b0\3\2\2\2\u03b0\u03b1\7!"+ + "\2\2\u03b1\u03b3\7\"\2\2\u03b2\u03b4\7\u010b\2\2\u03b3\u03b2\3\2\2\2\u03b3"+ + "\u03b4\3\2\2\2\u03b4\u03b5\3\2\2\2\u03b5\u03b7\7I\2\2\u03b6\u03b8\7\u0108"+ + "\2\2\u03b7\u03b6\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03b9\3\2\2\2\u03b9"+ + "\u03ba\7\u0110\2\2\u03baQ\3\2\2\2\u03bb\u03bc\7S\2\2\u03bc\u03be\7 \2"+ + "\2\u03bd\u03bf\7\u010b\2\2\u03be\u03bd\3\2\2\2\u03be\u03bf\3\2\2\2\u03bf"+ + "\u03c0\3\2\2\2\u03c0\u03c1\7!\2\2\u03c1\u03c3\7\"\2\2\u03c2\u03c4\7\u010b"+ + "\2\2\u03c3\u03c2\3\2\2\2\u03c3\u03c4\3\2\2\2\u03c4\u03c5\3\2\2\2\u03c5"+ + "\u03c7\7I\2\2\u03c6\u03c8\7\u0108\2\2\u03c7\u03c6\3\2\2\2\u03c7\u03c8"+ + "\3\2\2\2\u03c8\u03c9\3\2\2\2\u03c9\u03ca\7\u0110\2\2\u03caS\3\2\2\2\u03cb"+ + "\u03cc\7T\2\2\u03cc\u03cd\7\u00f9\2\2\u03cd\u03cf\7 \2\2\u03ce\u03d0\7"+ + "\u010b\2\2\u03cf\u03ce\3\2\2\2\u03cf\u03d0\3\2\2\2\u03d0\u03d1\3\2\2\2"+ + "\u03d1\u03d2\7!\2\2\u03d2\u03d4\7\"\2\2\u03d3\u03d5\7\u010b\2\2\u03d4"+ + "\u03d3\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5\u03d6\3\2\2\2\u03d6\u03d8\7I"+ + "\2\2\u03d7\u03d9\7\u0108\2\2\u03d8\u03d7\3\2\2\2\u03d8\u03d9\3\2\2\2\u03d9"+ + "\u03da\3\2\2\2\u03da\u03db\7\u0110\2\2\u03dbU\3\2\2\2\u03dc\u03dd\7U\2"+ + "\2\u03dd\u03de\7\u00f9\2\2\u03de\u03e0\7 \2\2\u03df\u03e1\7\u010b\2\2"+ + "\u03e0\u03df\3\2\2\2\u03e0\u03e1\3\2\2\2\u03e1\u03e2\3\2\2\2\u03e2\u03e3"+ + "\7!\2\2\u03e3\u03e5\7\"\2\2\u03e4\u03e6\7\u010b\2\2\u03e5\u03e4\3\2\2"+ + "\2\u03e5\u03e6\3\2\2\2\u03e6\u03e7\3\2\2\2\u03e7\u03e9\7I\2\2\u03e8\u03ea"+ + "\7\u0108\2\2\u03e9\u03e8\3\2\2\2\u03e9\u03ea\3\2\2\2\u03ea\u03eb\3\2\2"+ + "\2\u03eb\u03ec\7\u0110\2\2\u03ecW\3\2\2\2\u03ed\u03ee\7V\2\2\u03ee\u03ef"+ + "\7\u00f9\2\2\u03ef\u03f0\7W\2\2\u03f0\u03f1\7\u010b\2\2\u03f1\u03f3\7"+ + " \2\2\u03f2\u03f4\7\u010b\2\2\u03f3\u03f2\3\2\2\2\u03f3\u03f4\3\2\2\2"+ + "\u03f4\u03f5\3\2\2\2\u03f5\u03f6\7!\2\2\u03f6\u03f8\7\"\2\2\u03f7\u03f9"+ + "\7\u010b\2\2\u03f8\u03f7\3\2\2\2\u03f8\u03f9\3\2\2\2\u03f9\u03fa\3\2\2"+ + "\2\u03fa\u03fc\7I\2\2\u03fb\u03fd\7\u0108\2\2\u03fc\u03fb\3\2\2\2\u03fc"+ + "\u03fd\3\2\2\2\u03fd\u03fe\3\2\2\2\u03fe\u03ff\7\u0110\2\2\u03ffY\3\2"+ + "\2\2\u0400\u0402\7X\2\2\u0401\u0403\7\u010b\2\2\u0402\u0401\3\2\2\2\u0402"+ + "\u0403\3\2\2\2\u0403\u0404\3\2\2\2\u0404\u0405\7\u0110\2\2\u0405[\3\2"+ + "\2\2\u0406\u0407\7Y\2\2\u0407\u0408\7\u0110\2\2\u0408]\3\2\2\2\u0409\u040a"+ + "\7Z\2\2\u040a\u040b\7\u0110\2\2\u040b_\3\2\2\2\u040c\u040d\7[\2\2\u040d"+ + "\u040e\7\\\2\2\u040e\u040f\7\u0101\2\2\u040f\u0410\7\u0110\2\2\u0410a"+ + "\3\2\2\2\u0411\u0412\7]\2\2\u0412\u0413\7\u0110\2\2\u0413c\3\2\2\2\u0414"+ + "\u0415\7^\2\2\u0415\u0416\7\u0110\2\2\u0416e\3\2\2\2\u0417\u0418\7_\2"+ + "\2\u0418\u0419\7\u0110\2\2\u0419g\3\2\2\2\u041a\u041b\7`\2\2\u041b\u041c"+ + "\7\u0102\2\2\u041c\u041d\7a\2\2\u041d\u041e\7b\2\2\u041e\u041f\7\u0101"+ + "\2\2\u041f\u0420\7\u0110\2\2\u0420i\3\2\2\2\u0421\u0422\7c\2\2\u0422\u0423"+ + "\7\u0108\2\2\u0423\u0424\7\u0110\2\2\u0424k\3\2\2\2\u0425\u0426\7c\2\2"+ + "\u0426\u0428\7 \2\2\u0427\u0429\7\u00ee\2\2\u0428\u0427\3\2\2\2\u0428"+ + "\u0429\3\2\2\2\u0429\u042a\3\2\2\2\u042a\u042b\7!\2\2\u042b\u042d\7\""+ + "\2\2\u042c\u042e\7\u00ee\2\2\u042d\u042c\3\2\2\2\u042d\u042e\3\2\2\2\u042e"+ + "\u042f\3\2\2\2\u042f\u0430\7\u0110\2\2\u0430m\3\2\2\2\u0431\u0432\7d\2"+ + "\2\u0432\u0434\7 \2\2\u0433\u0435\7\u00ee\2\2\u0434\u0433\3\2\2\2\u0434"+ + "\u0435\3\2\2\2\u0435\u0436\3\2\2\2\u0436\u0437\7!\2\2\u0437\u0439\7\""+ + "\2\2\u0438\u043a\7\u00ee\2\2\u0439\u0438\3\2\2\2\u0439\u043a\3\2\2\2\u043a"+ + "\u043b\3\2\2\2\u043b\u043d\7I\2\2\u043c\u043e\7\u0108\2\2\u043d\u043c"+ + "\3\2\2\2\u043d\u043e\3\2\2\2\u043e\u043f\3\2\2\2\u043f\u0441\7e\2\2\u0440"+ + "\u0442\7\u0101\2\2\u0441\u0440\3\2\2\2\u0441\u0442\3\2\2\2\u0442\u0443"+ + "\3\2\2\2\u0443\u0444\7\60\2\2\u0444\u0445\7\u0101\2\2\u0445\u0446\7\u0110"+ + "\2\2\u0446o\3\2\2\2\u0447\u0448\7f\2\2\u0448\u044a\7 \2\2\u0449\u044b"+ + "\7\u00ee\2\2\u044a\u0449\3\2\2\2\u044a\u044b\3\2\2\2\u044b\u044c\3\2\2"+ + "\2\u044c\u044d\7!\2\2\u044d\u044f\7\"\2\2\u044e\u0450\7\u00ee\2\2\u044f"+ + "\u044e\3\2\2\2\u044f\u0450\3\2\2\2\u0450\u0451\3\2\2\2\u0451\u0452\7g"+ + "\2\2\u0452\u0453\7\u0108\2\2\u0453\u0454\7\60\2\2\u0454\u0455\7\u0101"+ + "\2\2\u0455\u0456\7\u0110\2\2\u0456q\3\2\2\2\u0457\u0459\7h\2\2\u0458\u045a"+ + "\7\u0108\2\2\u0459\u0458\3\2\2\2\u0459\u045a\3\2\2\2\u045a\u045b\3\2\2"+ + "\2\u045b\u045d\7 \2\2\u045c\u045e\7\u00ee\2\2\u045d\u045c\3\2\2\2\u045d"+ + "\u045e\3\2\2\2\u045e\u045f\3\2\2\2\u045f\u0460\7!\2\2\u0460\u0462\7\""+ + "\2\2\u0461\u0463\7\u00ee\2\2\u0462\u0461\3\2\2\2\u0462\u0463\3\2\2\2\u0463"+ + "\u0464\3\2\2\2\u0464\u0465\7#\2\2\u0465\u0466\7\u0106\2\2\u0466\u0468"+ + "\7$\2\2\u0467\u0469\7\u0102\2\2\u0468\u0467\3\2\2\2\u0468\u0469\3\2\2"+ + "\2\u0469\u046a\3\2\2\2\u046a\u046b\7\u0110\2\2\u046bs\3\2\2\2\u046c\u046d"+ + "\7i\2\2\u046d\u046e\7 \2\2\u046e\u046f\7\u00ee\2\2\u046f\u0470\7!\2\2"+ + "\u0470\u0471\7\"\2\2\u0471\u0472\7\u00ee\2\2\u0472\u0473\7#\2\2\u0473"+ + "\u0474\7\u0106\2\2\u0474\u0475\7\u0110\2\2\u0475u\3\2\2\2\u0476\u0477"+ + "\7j\2\2\u0477\u0478\7\u0105\2\2\u0478\u0479\7\u0110\2\2\u0479w\3\2\2\2"+ + "\u047a\u047b\7k\2\2\u047b\u047c\7\u0108\2\2\u047c\u047d\7\u0110\2\2\u047d"+ + "y\3\2\2\2\u047e\u047f\7l\2\2\u047f\u0480\7\u0108\2\2\u0480\u0481\7\u0110"+ + "\2\2\u0481{\3\2\2\2\u0482\u0483\7m\2\2\u0483\u0484\7\u0108\2\2\u0484\u0485"+ + "\7\u0110\2\2\u0485}\3\2\2\2\u0486\u0487\7n\2\2\u0487\u0488\7o\2\2\u0488"+ + "\u0489\7\u010b\2\2\u0489\u048a\7\u0110\2\2\u048a\177\3\2\2\2\u048b\u048c"+ + "\7p\2\2\u048c\u048e\7o\2\2\u048d\u048f\7\u010b\2\2\u048e\u048d\3\2\2\2"+ + "\u048e\u048f\3\2\2\2\u048f\u0490\3\2\2\2\u0490\u0491\7\u0110\2\2\u0491"+ + "\u0081\3\2\2\2\u0492\u0493\7q\2\2\u0493\u0494\7-\2\2\u0494\u0495\7\u0102"+ + "\2\2\u0495\u0496\7\60\2\2\u0496\u0497\7\u0101\2\2\u0497\u0498\7\u0110"+ + "\2\2\u0498\u0083\3\2\2\2\u0499\u049a\7r\2\2\u049a\u049b\7\u0108\2\2\u049b"+ + "\u049d\7\62\2\2\u049c\u049e\7\u010b\2\2\u049d\u049c\3\2\2\2\u049d\u049e"+ + "\3\2\2\2\u049e\u049f\3\2\2\2\u049f\u04a0\7\60\2\2\u04a0\u04a1\7\u0101"+ + "\2\2\u04a1\u04a2\7\u0110\2\2\u04a2\u0085\3\2\2\2\u04a3\u04a4\7s\2\2\u04a4"+ + "\u04a5\7t\2\2\u04a5\u04a7\7 \2\2\u04a6\u04a8\7\u00ee\2\2\u04a7\u04a6\3"+ + "\2\2\2\u04a7\u04a8\3\2\2\2\u04a8\u04a9\3\2\2\2\u04a9\u04aa\7!\2\2\u04aa"+ + "\u04ac\7\"\2\2\u04ab\u04ad\7\u00ee\2\2\u04ac\u04ab\3\2\2\2\u04ac\u04ad"+ + "\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae\u04af\7\u0110\2\2\u04af\u0087\3\2\2"+ + "\2\u04b0\u04b1\7u\2\2\u04b1\u04b3\7$\2\2\u04b2\u04b4\7\u0102\2\2\u04b3"+ + "\u04b2\3\2\2\2\u04b3\u04b4\3\2\2\2\u04b4\u04b5\3\2\2\2\u04b5\u04b6\7\60"+ + "\2\2\u04b6\u04b8\7\u0101\2\2\u04b7\u04b9\7\u010c\2\2\u04b8\u04b7\3\2\2"+ + "\2\u04b8\u04b9\3\2\2\2\u04b9\u04ba\3\2\2\2\u04ba\u04bb\7\u0107\2\2\u04bb"+ + "\u04bc\7\u0110\2\2\u04bc\u0089\3\2\2\2\u04bd\u04be\7v\2\2\u04be\u04bf"+ + "\7w\2\2\u04bf\u04c0\7\u0102\2\2\u04c0\u04c1\7x\2\2\u04c1\u04c3\7\u010b"+ + "\2\2\u04c2\u04c4\7\u010c\2\2\u04c3\u04c2\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4"+ + "\u04c5\3\2\2\2\u04c5\u04c6\7y\2\2\u04c6\u04c7\7 \2\2\u04c7\u04c8\7\u00ee"+ + "\2\2\u04c8\u04c9\7\"\2\2\u04c9\u04ca\7\u00ee\2\2\u04ca\u04cb\7z\2\2\u04cb"+ + "\u04cc\7\u0104\2\2\u04cc\u04cd\7-\2\2\u04cd\u04ce\7\u0102\2\2\u04ce\u04cf"+ + "\7\60\2\2\u04cf\u04d0\7\u0101\2\2\u04d0\u04d1\7\u0110\2\2\u04d1\u008b"+ + "\3\2\2\2\u04d2\u04d3\7v\2\2\u04d3\u04d4\7w\2\2\u04d4\u04d5\7\u0102\2\2"+ + "\u04d5\u04d6\7x\2\2\u04d6\u04d8\7\u010b\2\2\u04d7\u04d9\7\u010c\2\2\u04d8"+ + "\u04d7\3\2\2\2\u04d8\u04d9\3\2\2\2\u04d9\u04da\3\2\2\2\u04da\u04db\7{"+ + "\2\2\u04db\u04dc\7 \2\2\u04dc\u04dd\7\u00ee\2\2\u04dd\u04de\7\"\2\2\u04de"+ + "\u04df\7\u00ee\2\2\u04df\u04e1\7|\2\2\u04e0\u04e2\7\u00ee\2\2\u04e1\u04e0"+ + "\3\2\2\2\u04e1\u04e2\3\2\2\2\u04e2\u04e3\3\2\2\2\u04e3\u04e5\7}\2\2\u04e4"+ + "\u04e6\7\u00ee\2\2\u04e5\u04e4\3\2\2\2\u04e5\u04e6\3\2\2\2\u04e6\u04e7"+ + "\3\2\2\2\u04e7\u04e8\7z\2\2\u04e8\u04ea\7\u0104\2\2\u04e9\u04eb\7\u010c"+ + "\2\2\u04ea\u04e9\3\2\2\2\u04ea\u04eb\3\2\2\2\u04eb\u04ec\3\2\2\2\u04ec"+ + "\u04ed\7y\2\2\u04ed\u04ee\7 \2\2\u04ee\u04ef\7\u00ee\2\2\u04ef\u04f0\7"+ + "\"\2\2\u04f0\u04f1\7\u00ee\2\2\u04f1\u04f3\7|\2\2\u04f2\u04f4\7\u00ee"+ + "\2\2\u04f3\u04f2\3\2\2\2\u04f3\u04f4\3\2\2\2\u04f4\u04f5\3\2\2\2\u04f5"+ + "\u04f7\7}\2\2\u04f6\u04f8\7\u00ee\2\2\u04f7\u04f6\3\2\2\2\u04f7\u04f8"+ + "\3\2\2\2\u04f8\u04f9\3\2\2\2\u04f9\u04fa\7-\2\2\u04fa\u04fb\7\u0102\2"+ + "\2\u04fb\u04fc\7\60\2\2\u04fc\u04fd\7\u0101\2\2\u04fd\u04fe\7\u0110\2"+ + "\2\u04fe\u008d\3\2\2\2\u04ff\u0500\7~\2\2\u0500\u0501\7\177\2\2\u0501"+ + "\u0503\7\u010b\2\2\u0502\u0504\7\u010c\2\2\u0503\u0502\3\2\2\2\u0503\u0504"+ + "\3\2\2\2\u0504\u0505\3\2\2\2\u0505\u0506\7w\2\2\u0506\u0507\7\u0102\2"+ + "\2\u0507\u0508\7\u0080\2\2\u0508\u0509\7 \2\2\u0509\u050a\7\u00ee\2\2"+ + "\u050a\u050b\7\"\2\2\u050b\u050c\7\u00ee\2\2\u050c\u050d\7/\2\2\u050d"+ + "\u050e\7\u0104\2\2\u050e\u050f\7z\2\2\u050f\u0510\7\u0104\2\2\u0510\u0511"+ + "\7-\2\2\u0511\u0512\7\u0102\2\2\u0512\u0513\7\60\2\2\u0513\u0514\7\u0101"+ + "\2\2\u0514\u0515\7\u0110\2\2\u0515\u008f\3\2\2\2\u0516\u0517\7\u0081\2"+ + "\2\u0517\u0518\7w\2\2\u0518\u0519\7\u0102\2\2\u0519\u051a\7-\2\2\u051a"+ + "\u051b\7\u0102\2\2\u051b\u051c\7\60\2\2\u051c\u051d\7\u0101\2\2\u051d"+ + "\u051e\7\u0110\2\2\u051e\u0091\3\2\2\2\u051f\u0520\7\u0082\2\2\u0520\u0521"+ + "\7\u010b\2\2\u0521\u0522\7\u0083\2\2\u0522\u0523\7 \2\2\u0523\u0524\7"+ + "\u00ee\2\2\u0524\u0525\7\"\2\2\u0525\u0526\7\u00ee\2\2\u0526\u0527\7\u0110"+ + "\2\2\u0527\u0093\3\2\2\2\u0528\u0529\7\u0084\2\2\u0529\u052a\7\u0110\2"+ + "\2\u052a\u0095\3\2\2\2\u052b\u052c\7\u0085\2\2\u052c\u052d\7w\2\2\u052d"+ + "\u052e\7\u0102\2\2\u052e\u052f\7\u0086\2\2\u052f\u0531\7 \2\2\u0530\u0532"+ + "\7\u00ee\2\2\u0531\u0530\3\2\2\2\u0531\u0532\3\2\2\2\u0532\u0533\3\2\2"+ + "\2\u0533\u0535\7\"\2\2\u0534\u0536\7\u00ee\2\2\u0535\u0534\3\2\2\2\u0535"+ + "\u0536\3\2\2\2\u0536\u0538\3\2\2\2\u0537\u0539\7\u010c\2\2\u0538\u0537"+ + "\3\2\2\2\u0538\u0539\3\2\2\2\u0539\u053a\3\2\2\2\u053a\u053c\7z\2\2\u053b"+ + "\u053d\7\u010b\2\2\u053c\u053b\3\2\2\2\u053c\u053d\3\2\2\2\u053d\u053e"+ + "\3\2\2\2\u053e\u053f\7\u0087\2\2\u053f\u0540\7\u0102\2\2\u0540\u0541\7"+ + "\60\2\2\u0541\u0542\7\u0101\2\2\u0542\u0543\7\u0110\2\2\u0543\u0097\3"+ + "\2\2\2\u0544\u0545\7\u0088\2\2\u0545\u0546\7\u010b\2\2\u0546\u0547\7\u00ff"+ + "\2\2\u0547\u0549\7$\2\2\u0548\u054a\7\u0102\2\2\u0549\u0548\3\2\2\2\u0549"+ + "\u054a\3\2\2\2\u054a\u054b\3\2\2\2\u054b\u054c\7\60\2\2\u054c\u054d\7"+ + "\u0101\2\2\u054d\u054e\7\u0110\2\2\u054e\u0099\3\2\2\2\u054f\u0550\7\u0089"+ + "\2\2\u0550\u0552\7$\2\2\u0551\u0553\7\u0102\2\2\u0552\u0551\3\2\2\2\u0552"+ + "\u0553\3\2\2\2\u0553\u0554\3\2\2\2\u0554\u0555\7\60\2\2\u0555\u0556\7"+ + "\u0101\2\2\u0556\u0557\7\u0110\2\2\u0557\u009b\3\2\2\2\u0558\u0559\7\u008a"+ + "\2\2\u0559\u055a\7\u010b\2\2\u055a\u055b\7\u00ff\2\2\u055b\u055c\7\u008b"+ + "\2\2\u055c\u055d\7\u0102\2\2\u055d\u055f\7\u008c\2\2\u055e\u0560\7\u0102"+ + "\2\2\u055f\u055e\3\2\2\2\u055f\u0560\3\2\2\2\u0560\u0561\3\2\2\2\u0561"+ + "\u0562\7\60\2\2\u0562\u0563\7\u0101\2\2\u0563\u0564\7\u0110\2\2\u0564"+ + "\u009d\3\2\2\2\u0565\u0566\7\u008d\2\2\u0566\u0567\7\u00f6\2\2\u0567\u0568"+ + "\7\u008e\2\2\u0568\u0569\7\u0102\2\2\u0569\u056a\7\u0110\2\2\u056a\u009f"+ + "\3\2\2\2\u056b\u056c\7\u008f\2\2\u056c\u056e\7 \2\2\u056d\u056f\7\u00ee"+ + "\2\2\u056e\u056d\3\2\2\2\u056e\u056f\3\2\2\2\u056f\u0570\3\2\2\2\u0570"+ + "\u0571\7!\2\2\u0571\u0573\7\"\2\2\u0572\u0574\7\u00ee\2\2\u0573\u0572"+ + "\3\2\2\2\u0573\u0574\3\2\2\2\u0574\u0575\3\2\2\2\u0575\u0577\7$\2\2\u0576"+ + "\u0578\7\u0102\2\2\u0577\u0576\3\2\2\2\u0577\u0578\3\2\2\2\u0578\u0579"+ + "\3\2\2\2\u0579\u057a\7\u0090\2\2\u057a\u057b\7\u0101\2\2\u057b\u057c\7"+ + "\60\2\2\u057c\u057e\7\u0101\2\2\u057d\u057f\7\u010c\2\2\u057e\u057d\3"+ + "\2\2\2\u057e\u057f\3\2\2\2\u057f\u0580\3\2\2\2\u0580\u0581\7\u0107\2\2"+ + "\u0581\u0582\7\u0110\2\2\u0582\u00a1\3\2\2\2\u0583\u0584\7\u0091\2\2\u0584"+ + "\u0586\7$\2\2\u0585\u0587\7\u0102\2\2\u0586\u0585\3\2\2\2\u0586\u0587"+ + "\3\2\2\2\u0587\u0588\3\2\2\2\u0588\u0589\7\60\2\2\u0589\u058b\7\u0101"+ + "\2\2\u058a\u058c\7\u010c\2\2\u058b\u058a\3\2\2\2\u058b\u058c\3\2\2\2\u058c"+ + "\u058d\3\2\2\2\u058d\u058e\7\u0107\2\2\u058e\u058f\7\u0110\2\2\u058f\u00a3"+ + "\3\2\2\2\u0590\u0591\7\u0092\2\2\u0591\u0593\7\u0093\2\2\u0592\u0594\7"+ + "\u00ee\2\2\u0593\u0592\3\2\2\2\u0593\u0594\3\2\2\2\u0594\u0595\3\2\2\2"+ + "\u0595\u0596\7!\2\2\u0596\u0598\7\"\2\2\u0597\u0599\7\u00ee\2\2\u0598"+ + "\u0597\3\2\2\2\u0598\u0599\3\2\2\2\u0599\u059a\3\2\2\2\u059a\u059c\7\u0094"+ + "\2\2\u059b\u059d\7\u00ee\2\2\u059c\u059b\3\2\2\2\u059c\u059d\3\2\2\2\u059d"+ + "\u059e\3\2\2\2\u059e\u059f\7!\2\2\u059f\u05a1\7\"\2\2\u05a0\u05a2\7\u00ee"+ + "\2\2\u05a1\u05a0\3\2\2\2\u05a1\u05a2\3\2\2\2\u05a2\u05a3\3\2\2\2\u05a3"+ + "\u05a5\7$\2\2\u05a4\u05a6\7\u0102\2\2\u05a5\u05a4\3\2\2\2\u05a5\u05a6"+ + "\3\2\2\2\u05a6\u05a7\3\2\2\2\u05a7\u05a8\7\u0090\2\2\u05a8\u05a9\7\u0101"+ + "\2\2\u05a9\u05aa\7\60\2\2\u05aa\u05ab\7\u0101\2\2\u05ab\u05ac\7\u0110"+ + "\2\2\u05ac\u00a5\3\2\2\2\u05ad\u05ae\7\u0095\2\2\u05ae\u05b0\7 \2\2\u05af"+ + "\u05b1\7\u00ee\2\2\u05b0\u05af\3\2\2\2\u05b0\u05b1\3\2\2\2\u05b1\u05b2"+ + "\3\2\2\2\u05b2\u05b3\7!\2\2\u05b3\u05b5\7\"\2\2\u05b4\u05b6\7\u00ee\2"+ + "\2\u05b5\u05b4\3\2\2\2\u05b5\u05b6\3\2\2\2\u05b6\u05b7\3\2\2\2\u05b7\u05b9"+ + "\7$\2\2\u05b8\u05ba\7\u0102\2\2\u05b9\u05b8\3\2\2\2\u05b9\u05ba\3\2\2"+ + "\2\u05ba\u05bb\3\2\2\2\u05bb\u05bc\7\60\2\2\u05bc\u05bd\7\u0101\2\2\u05bd"+ + "\u05be\7\u0110\2\2\u05be\u00a7\3\2\2\2\u05bf\u05c0\7\u0096\2\2\u05c0\u05c1"+ + "\7\u010b\2\2\u05c1\u05c2\7\u0097\2\2\u05c2\u05c3\7\u0101\2\2\u05c3\u05c4"+ + "\7\u0110\2\2\u05c4\u00a9\3\2\2\2\u05c5\u05c6\7\u0098\2\2\u05c6\u05c7\7"+ + "\u0110\2\2\u05c7\u00ab\3\2\2\2\u05c8\u05c9\7\u0099\2\2\u05c9\u05ca\7\u0110"+ + "\2\2\u05ca\u00ad\3\2\2\2\u05cb\u05cc\7\u009a\2\2\u05cc\u05cd\7\u010b\2"+ + "\2\u05cd\u05ce\7\u0110\2\2\u05ce\u00af\3\2\2\2\u05cf\u05d0\7\u009b\2\2"+ + "\u05d0\u05d1\7\u010b\2\2\u05d1\u05d2\7\u0110\2\2\u05d2\u00b1\3\2\2\2\u05d3"+ + "\u05d4\7\u009c\2\2\u05d4\u05d5\7\u010b\2\2\u05d5\u05d7\7\u009d\2\2\u05d6"+ + "\u05d8\7\u0101\2\2\u05d7\u05d6\3\2\2\2\u05d7\u05d8\3\2\2\2\u05d8\u05d9"+ + "\3\2\2\2\u05d9\u05da\7\u0110\2\2\u05da\u00b3\3\2\2\2\u05db\u05dc\7\u009e"+ + "\2\2\u05dc\u05dd\7\u0110\2\2\u05dd\u00b5\3\2\2\2\u05de\u05df\7\u009f\2"+ + "\2\u05df\u05e0\7\u0102\2\2\u05e0\u05e2\7\u00a0\2\2\u05e1\u05e3\7\u0102"+ + "\2\2\u05e2\u05e1\3\2\2\2\u05e2\u05e3\3\2\2\2\u05e3\u05e4\3\2\2\2\u05e4"+ + "\u05e5\7\60\2\2\u05e5\u05e6\7\u0101\2\2\u05e6\u05e7\7\u0110\2\2\u05e7"+ + "\u00b7\3\2\2\2\u05e8\u05e9\7\u00a1\2\2\u05e9\u05eb\7(\2\2\u05ea\u05ec"+ + "\7\u010b\2\2\u05eb\u05ea\3\2\2\2\u05eb\u05ec\3\2\2\2\u05ec\u05ed\3\2\2"+ + "\2\u05ed\u05ee\7\u00a2\2\2\u05ee\u05ef\7\u0101\2\2\u05ef\u05f0\7\u0110"+ + "\2\2\u05f0\u00b9\3\2\2\2\u05f1\u05f2\7\u00a3\2\2\u05f2\u05f4\7(\2\2\u05f3"+ + "\u05f5\7\u010b\2\2\u05f4\u05f3\3\2\2\2\u05f4\u05f5\3\2\2\2\u05f5\u05f6"+ + "\3\2\2\2\u05f6\u05f7\7\u0110\2\2\u05f7\u00bb\3\2\2\2\u05f8\u05f9\7\u00a4"+ + "\2\2\u05f9\u05fa\7\u0110\2\2\u05fa\u00bd\3\2\2\2\u05fb\u05fc\7\u00a5\2"+ + "\2\u05fc\u05fd\7(\2\2\u05fd\u05fe\7\u010b\2\2\u05fe\u05ff\7\u0110\2\2"+ + "\u05ff\u00bf\3\2\2\2\u0600\u0601\7\u00a6\2\2\u0601\u0602\7(\2\2\u0602"+ + "\u0603\7\u010b\2\2\u0603\u0604\7\u0110\2\2\u0604\u00c1\3\2\2\2\u0605\u0606"+ + "\7\u00a7\2\2\u0606\u0607\7(\2\2\u0607\u0609\5\u0116\u008c\2\u0608\u060a"+ + "\7\u010c\2\2\u0609\u0608\3\2\2\2\u0609\u060a\3\2\2\2\u060a\u060b\3\2\2"+ + "\2\u060b\u060d\7\u0110\2\2\u060c\u060e\5$\23\2\u060d\u060c\3\2\2\2\u060e"+ + "\u060f\3\2\2\2\u060f\u060d\3\2\2\2\u060f\u0610\3\2\2\2\u0610\u0611\3\2"+ + "\2\2\u0611\u0612\7\u00a8\2\2\u0612\u0614\7(\2\2\u0613\u0615\7\u010c\2"+ + "\2\u0614\u0613\3\2\2\2\u0614\u0615\3\2\2\2\u0615\u0616\3\2\2\2\u0616\u0618"+ + "\7\u0110\2\2\u0617\u0619\5$\23\2\u0618\u0617\3\2\2\2\u0619\u061a\3\2\2"+ + "\2\u061a\u0618\3\2\2\2\u061a\u061b\3\2\2\2\u061b\u061c\3\2\2\2\u061c\u061d"+ + "\7\u010f\2\2\u061d\u061e\7\u0110\2\2\u061e\u00c3\3\2\2\2\u061f\u0620\7"+ + "\u00a7\2\2\u0620\u0621\7(\2\2\u0621\u0623\5\u0116\u008c\2\u0622\u0624"+ + "\7\u010c\2\2\u0623\u0622\3\2\2\2\u0623\u0624\3\2\2\2\u0624\u0625\3\2\2"+ + "\2\u0625\u0627\7\u0110\2\2\u0626\u0628\5$\23\2\u0627\u0626\3\2\2\2\u0628"+ + "\u0629\3\2\2\2\u0629\u0627\3\2\2\2\u0629\u062a\3\2\2\2\u062a\u062b\3\2"+ + "\2\2\u062b\u062c\7\u010f\2\2\u062c\u062d\7\u0110\2\2\u062d\u00c5\3\2\2"+ + "\2\u062e\u062f\7\u00a9\2\2\u062f\u0630\7(\2\2\u0630\u0632\5\u0116\u008c"+ + "\2\u0631\u0633\7\u010c\2\2\u0632\u0631\3\2\2\2\u0632\u0633\3\2\2\2\u0633"+ + "\u0634\3\2\2\2\u0634\u0636\7\u0110\2\2\u0635\u0637\5\u00c8e\2\u0636\u0635"+ + "\3\2\2\2\u0637\u0638\3\2\2\2\u0638\u0636\3\2\2\2\u0638\u0639\3\2\2\2\u0639"+ + "\u063a\3\2\2\2\u063a\u063b\7\u010f\2\2\u063b\u063c\7\u0110\2\2\u063c\u00c7"+ + "\3\2\2\2\u063d\u063e\7\u00aa\2\2\u063e\u063f\5\u0116\u008c\2\u063f\u0640"+ + "\7\u00ab\2\2\u0640\u0641\7\u00ac\2\2\u0641\u0643\7\u0101\2\2\u0642\u0644"+ + "\7\u010c\2\2\u0643\u0642\3\2\2\2\u0643\u0644\3\2\2\2\u0644\u0645\3\2\2"+ + "\2\u0645\u0647\7\u0110\2\2\u0646\u0648\5$\23\2\u0647\u0646\3\2\2\2\u0648"+ + "\u0649\3\2\2\2\u0649\u0647\3\2\2\2\u0649\u064a\3\2\2\2\u064a\u00c9\3\2"+ + "\2\2\u064b\u064c\7\u00ad\2\2\u064c\u064e\7(\2\2\u064d\u064f\7\u010b\2"+ + "\2\u064e\u064d\3\2\2\2\u064e\u064f\3\2\2\2\u064f\u0651\3\2\2\2\u0650\u0652"+ + "\7\u010c\2\2\u0651\u0650\3\2\2\2\u0651\u0652\3\2\2\2\u0652\u0653\3\2\2"+ + "\2\u0653\u0655\7\22\2\2\u0654\u0656\7\u010b\2\2\u0655\u0654\3\2\2\2\u0655"+ + "\u0656\3\2\2\2\u0656\u0657\3\2\2\2\u0657\u0659\7)\2\2\u0658\u065a\7\u0108"+ + "\2\2\u0659\u0658\3\2\2\2\u0659\u065a\3\2\2\2\u065a\u065c\3\2\2\2\u065b"+ + "\u065d\7\u010c\2\2\u065c\u065b\3\2\2\2\u065c\u065d\3\2\2\2\u065d\u065e"+ + "\3\2\2\2\u065e\u0660\7\u0110\2\2\u065f\u0661\5\u00ccg\2\u0660\u065f\3"+ + "\2\2\2\u0661\u0662\3\2\2\2\u0662\u0660\3\2\2\2\u0662\u0663\3\2\2\2\u0663"+ + "\u0664\3\2\2\2\u0664\u0665\7\u010f\2\2\u0665\u0666\7\u0110\2\2\u0666\u00cb"+ + "\3\2\2\2\u0667\u0668\7\u00ae\2\2\u0668\u0669\7\u010b\2\2\u0669\u066b\7"+ + "\23\2\2\u066a\u066c\7\u0108\2\2\u066b\u066a\3\2\2\2\u066b\u066c\3\2\2"+ + "\2\u066c\u066d\3\2\2\2\u066d\u066f\7\u00af\2\2\u066e\u0670\7\u010b\2\2"+ + "\u066f\u066e\3\2\2\2\u066f\u0670\3\2\2\2\u0670\u0671\3\2\2\2\u0671\u0672"+ + "\7\u00ff\2\2\u0672\u0674\7\u00b0\2\2\u0673\u0675\7\u010b\2\2\u0674\u0673"+ + "\3\2\2\2\u0674\u0675\3\2\2\2\u0675\u0677\3\2\2\2\u0676\u0678\7\u010c\2"+ + "\2\u0677\u0676\3\2\2\2\u0677\u0678\3\2\2\2\u0678\u0679\3\2\2\2\u0679\u067b"+ + "\7\u0110\2\2\u067a\u067c\5$\23\2\u067b\u067a\3\2\2\2\u067c\u067d\3\2\2"+ + "\2\u067d\u067b\3\2\2\2\u067d\u067e\3\2\2\2\u067e\u00cd\3\2\2\2\u067f\u0680"+ + "\7\u00b1\2\2\u0680\u0681\7(\2\2\u0681\u0683\7\u010b\2\2\u0682\u0684\7"+ + "\u010c\2\2\u0683\u0682\3\2\2\2\u0683\u0684\3\2\2\2\u0684\u0685\3\2\2\2"+ + "\u0685\u0686\7\u00b2\2\2\u0686\u0687\7(\2\2\u0687\u0688\7\u00b3\2\2\u0688"+ + "\u0689\7\u0101\2\2\u0689\u068b\7\u00b4\2\2\u068a\u068c\7\u010c\2\2\u068b"+ + "\u068a\3\2\2\2\u068b\u068c\3\2\2\2\u068c\u068d\3\2\2\2\u068d\u068f\7\u0110"+ + "\2\2\u068e\u0690\5$\23\2\u068f\u068e\3\2\2\2\u0690\u0691\3\2\2\2\u0691"+ + "\u068f\3\2\2\2\u0691\u0692\3\2\2\2\u0692\u0693\3\2\2\2\u0693\u0694\7\u00b5"+ + "\2\2\u0694\u0696\7(\2\2\u0695\u0697\7\u010c\2\2\u0696\u0695\3\2\2\2\u0696"+ + "\u0697\3\2\2\2\u0697\u0698\3\2\2\2\u0698\u069a\7\u0110\2\2\u0699\u069b"+ + "\5$\23\2\u069a\u0699\3\2\2\2\u069b\u069c\3\2\2\2\u069c\u069a\3\2\2\2\u069c"+ + "\u069d\3\2\2\2\u069d\u069e\3\2\2\2\u069e\u069f\7\u010f\2\2\u069f\u06a0"+ + "\7\u0110\2\2\u06a0\u00cf\3\2\2\2\u06a1\u06a2\7\u00b6\2\2\u06a2\u06a3\7"+ + "\u00b4\2\2\u06a3\u06a4\7\u00b7\2\2\u06a4\u06a5\5\u0116\u008c\2\u06a5\u06a7"+ + "\7\u00b8\2\2\u06a6\u06a8\7\u010c\2\2\u06a7\u06a6\3\2\2\2\u06a7\u06a8\3"+ + "\2\2\2\u06a8\u06a9\3\2\2\2\u06a9\u06ab\7\u0110\2\2\u06aa\u06ac\5$\23\2"+ + "\u06ab\u06aa\3\2\2\2\u06ac\u06ad\3\2\2\2\u06ad\u06ab\3\2\2\2\u06ad\u06ae"+ + "\3\2\2\2\u06ae\u06af\3\2\2\2\u06af\u06b0\7\u010f\2\2\u06b0\u06b1\7\u0110"+ + "\2\2\u06b1\u00d1\3\2\2\2\u06b2\u06b3\7\u00b9\2\2\u06b3\u06b5\7\u00b4\2"+ + "\2\u06b4\u06b6\7\u010c\2\2\u06b5\u06b4\3\2\2\2\u06b5\u06b6\3\2\2\2\u06b6"+ + "\u06b7\3\2\2\2\u06b7\u06b9\7\u0110\2\2\u06b8\u06ba\5$\23\2\u06b9\u06b8"+ + "\3\2\2\2\u06ba\u06bb\3\2\2\2\u06bb\u06b9\3\2\2\2\u06bb\u06bc\3\2\2\2\u06bc"+ + "\u06bd\3\2\2\2\u06bd\u06be\7\u010f\2\2\u06be\u06bf\7\u00b7\2\2\u06bf\u06c0"+ + "\5\u0116\u008c\2\u06c0\u06c1\7\u00b8\2\2\u06c1\u06c2\7\u0110\2\2\u06c2"+ + "\u00d3\3\2\2\2\u06c3\u06c4\7\u00ba\2\2\u06c4\u06c5\7\u0110\2\2\u06c5\u00d5"+ + "\3\2\2\2\u06c6\u06c7\7\u00bb\2\2\u06c7\u06c8\7\u0110\2\2\u06c8\u00d7\3"+ + "\2\2\2\u06c9\u06ca\7\u00bc\2\2\u06ca\u00d9\3\2\2\2\u06cb\u06cc\7\u00bd"+ + "\2\2\u06cc\u00db\3\2\2\2\u06cd\u06ce\7\u00be\2\2\u06ce\u00dd\3\2\2\2\u06cf"+ + "\u06d0\7\u00bf\2\2\u06d0\u00df\3\2\2\2\u06d1\u06d2\7\u00c0\2\2\u06d2\u06d3"+ + "\7\u00c1\2\2\u06d3\u06d4\7\u0101\2\2\u06d4\u06d5\7\u0110\2\2\u06d5\u00e1"+ + "\3\2\2\2\u06d6\u06d7\7\u00c2\2\2\u06d7\u06d8\7\u0110\2\2\u06d8\u00e3\3"+ + "\2\2\2\u06d9\u06da\7\u00c3\2\2\u06da\u06dc\7\u00c4\2\2\u06db\u06dd\7\u010c"+ + "\2\2\u06dc\u06db\3\2\2\2\u06dc\u06dd\3\2\2\2\u06dd\u06de\3\2\2\2\u06de"+ + "\u06e0\7\u0110\2\2\u06df\u06e1\5$\23\2\u06e0\u06df\3\2\2\2\u06e1\u06e2"+ + "\3\2\2\2\u06e2\u06e0\3\2\2\2\u06e2\u06e3\3\2\2\2\u06e3\u06e4\3\2\2\2\u06e4"+ + "\u06e5\7\u010f\2\2\u06e5\u06e6\7\u0110\2\2\u06e6\u00e5\3\2\2\2\u06e7\u06e8"+ + "\7\u00c5\2\2\u06e8\u06e9\7\u0080\2\2\u06e9\u06ea\7 \2\2\u06ea\u06eb\7"+ + "\u00ee\2\2\u06eb\u06ec\7\"\2\2\u06ec\u06ed\7\u00ee\2\2\u06ed\u06ee\7|"+ + "\2\2\u06ee\u06ef\7\u00ee\2\2\u06ef\u06f0\7}\2\2\u06f0\u06f1\7\u00ee\2"+ + "\2\u06f1\u06f2\7\u0110\2\2\u06f2\u00e7\3\2\2\2\u06f3\u06f4\7\u00c6\2\2"+ + "\u06f4\u06f5\7\u0110\2\2\u06f5\u00e9\3\2\2\2\u06f6\u06f7\7\u00c7\2\2\u06f7"+ + "\u06f9\7\u00c8\2\2\u06f8\u06fa\7\u010b\2\2\u06f9\u06f8\3\2\2\2\u06f9\u06fa"+ + "\3\2\2\2\u06fa\u06fb\3\2\2\2\u06fb\u06fd\7\u00c9\2\2\u06fc\u06fe\7\u010b"+ + "\2\2\u06fd\u06fc\3\2\2\2\u06fd\u06fe\3\2\2\2\u06fe\u06ff\3\2\2\2\u06ff"+ + "\u0700\7\u00ff\2\2\u0700\u0702\7\u00ca\2\2\u0701\u0703\7\u010b\2\2\u0702"+ + "\u0701\3\2\2\2\u0702\u0703\3\2\2\2\u0703\u0704\3\2\2\2\u0704\u0706\7\u00ff"+ + "\2\2\u0705\u0707\7\u010c\2\2\u0706\u0705\3\2\2\2\u0706\u0707\3\2\2\2\u0707"+ + "\u0708\3\2\2\2\u0708\u070a\7\u00cb\2\2\u0709\u070b\7\u010b\2\2\u070a\u0709"+ + "\3\2\2\2\u070a\u070b\3\2\2\2\u070b\u070c\3\2\2\2\u070c\u070e\7z\2\2\u070d"+ + "\u070f\7\u010b\2\2\u070e\u070d\3\2\2\2\u070e\u070f\3\2\2\2\u070f\u0710"+ + "\3\2\2\2\u0710\u0711\7\64\2\2\u0711\u0712\7\u00f2\2\2\u0712\u0713\7\u00cc"+ + "\2\2\u0713\u0714\7\u00f3\2\2\u0714\u0716\7\u00cd\2\2\u0715\u0717\7\u010b"+ + "\2\2\u0716\u0715\3\2\2\2\u0716\u0717\3\2\2\2\u0717\u0718\3\2\2\2\u0718"+ + "\u0719\7\u0110\2\2\u0719\u00eb\3\2\2\2\u071a\u071b\7\u00ce\2\2\u071b\u071c"+ + "\7 \2\2\u071c\u071d\7\u00ee\2\2\u071d\u071e\7\"\2\2\u071e\u071f\7\u00ee"+ + "\2\2\u071f\u0721\7\u00cf\2\2\u0720\u0722\7\u010b\2\2\u0721\u0720\3\2\2"+ + "\2\u0721\u0722\3\2\2\2\u0722\u0723\3\2\2\2\u0723\u0724\7\u00ff\2\2\u0724"+ + "\u0726\7\u00c8\2\2\u0725\u0727\7\u010b\2\2\u0726\u0725\3\2\2\2\u0726\u0727"+ + "\3\2\2\2\u0727\u0728\3\2\2\2\u0728\u072a\7\u00d0\2\2\u0729\u072b\7\u010b"+ + "\2\2\u072a\u0729\3\2\2\2\u072a\u072b\3\2\2\2\u072b\u072d\3\2\2\2\u072c"+ + "\u072e\7\u010c\2\2\u072d\u072c\3\2\2\2\u072d\u072e\3\2\2\2\u072e\u072f"+ + "\3\2\2\2\u072f\u0730\7\u010b\2\2\u0730\u0731\7\u0110\2\2\u0731\u00ed\3"+ + "\2\2\2\u0732\u0733\7\u00d1\2\2\u0733\u0734\7 \2\2\u0734\u0735\7\u00ee"+ + "\2\2\u0735\u0736\7\"\2\2\u0736\u0737\7\u00ee\2\2\u0737\u0739\7\u00cf\2"+ + "\2\u0738\u073a\7\u010b\2\2\u0739\u0738\3\2\2\2\u0739\u073a\3\2\2\2\u073a"+ + "\u073b\3\2\2\2\u073b\u073c\7\u00ff\2\2\u073c\u073e\7\u00c8\2\2\u073d\u073f"+ + "\7\u010b\2\2\u073e\u073d\3\2\2\2\u073e\u073f\3\2\2\2\u073f\u0741\3\2\2"+ + "\2\u0740\u0742\7\u010c\2\2\u0741\u0740\3\2\2\2\u0741\u0742\3\2\2\2\u0742"+ + "\u0743\3\2\2\2\u0743\u0744\7\u010b\2\2\u0744\u0745\7\u0110\2\2\u0745\u00ef"+ + "\3\2\2\2\u0746\u0747\7\u00d2\2\2\u0747\u0749\7\u010b\2\2\u0748\u074a\7"+ + "\u010c\2\2\u0749\u0748\3\2\2\2\u0749\u074a\3\2\2\2\u074a\u074b\3\2\2\2"+ + "\u074b\u074c\7\u0080\2\2\u074c\u074d\7 \2\2\u074d\u074e\7\u00ee\2\2\u074e"+ + "\u074f\7\"\2\2\u074f\u0750\7\u00ee\2\2\u0750\u0752\7\u00d0\2\2\u0751\u0753"+ + "\7\u010b\2\2\u0752\u0751\3\2\2\2\u0752\u0753\3\2\2\2\u0753\u0754\3\2\2"+ + "\2\u0754\u0756\7\u00af\2\2\u0755\u0757\7\u010b\2\2\u0756\u0755\3\2\2\2"+ + "\u0756\u0757\3\2\2\2\u0757\u0758\3\2\2\2\u0758\u075a\7\u00ff\2\2\u0759"+ + "\u075b\7\u010c\2\2\u075a\u0759\3\2\2\2\u075a\u075b\3\2\2\2\u075b\u075c"+ + "\3\2\2\2\u075c\u075d\7\64\2\2\u075d\u075e\7\u00f2\2\2\u075e\u0760\7\u00d3"+ + "\2\2\u075f\u0761\7\u010b\2\2\u0760\u075f\3\2\2\2\u0760\u0761\3\2\2\2\u0761"+ + "\u0762\3\2\2\2\u0762\u0764\7/\2\2\u0763\u0765\7\u010b\2\2\u0764\u0763"+ + "\3\2\2\2\u0764\u0765\3\2\2\2\u0765\u0766\3\2\2\2\u0766\u0767\78\2\2\u0767"+ + "\u0768\7\u0101\2\2\u0768\u0769\7\u0110\2\2\u0769\u00f1\3\2\2\2\u076a\u076b"+ + "\7\u00d4\2\2\u076b\u076c\7\u0080\2\2\u076c\u076d\7 \2\2\u076d\u076e\7"+ + "\u00ee\2\2\u076e\u076f\7\"\2\2\u076f\u0770\7\u00ee\2\2\u0770\u0771\7|"+ + "\2\2\u0771\u0772\7\u00ee\2\2\u0772\u0773\7}\2\2\u0773\u0774\7\u00ee\2"+ + "\2\u0774\u0776\7\u00af\2\2\u0775\u0777\7\u010b\2\2\u0776\u0775\3\2\2\2"+ + "\u0776\u0777\3\2\2\2\u0777\u0778\3\2\2\2\u0778\u0779\7\u00ff\2\2\u0779"+ + "\u077a\7\u0110\2\2\u077a\u00f3\3\2\2\2\u077b\u077c\7\u00d5\2\2\u077c\u077d"+ + "\7\u0080\2\2\u077d\u077e\7 \2\2\u077e\u077f\7\u00ee\2\2\u077f\u0780\7"+ + "\"\2\2\u0780\u0781\7\u00ee\2\2\u0781\u0782\7|\2\2\u0782\u0783\7\u00ee"+ + "\2\2\u0783\u0784\7}\2\2\u0784\u0785\7\u00ee\2\2\u0785\u0787\7\u00af\2"+ + "\2\u0786\u0788\7\u010b\2\2\u0787\u0786\3\2\2\2\u0787\u0788\3\2\2\2\u0788"+ + "\u0789\3\2\2\2\u0789\u078a\7\u00ff\2\2\u078a\u078c\7\u00d6\2\2\u078b\u078d"+ + "\7\u010b\2\2\u078c\u078b\3\2\2\2\u078c\u078d\3\2\2\2\u078d\u078e\3\2\2"+ + "\2\u078e\u078f\7\u0110\2\2\u078f\u00f5\3\2\2\2\u0790\u0791\7\u00d7\2\2"+ + "\u0791\u0792\7\u0080\2\2\u0792\u0793\7 \2\2\u0793\u0794\7\u00ee\2\2\u0794"+ + "\u0795\7\"\2\2\u0795\u0796\7\u00ee\2\2\u0796\u0797\7\u00d8\2\2\u0797\u0798"+ + "\7 \2\2\u0798\u0799\7\u00ee\2\2\u0799\u079a\7\"\2\2\u079a\u079b\7\u00ee"+ + "\2\2\u079b\u079d\7\u00af\2\2\u079c\u079e\7\u010b\2\2\u079d\u079c\3\2\2"+ + "\2\u079d\u079e\3\2\2\2\u079e\u079f\3\2\2\2\u079f\u07a0\7\u00ff\2\2\u07a0"+ + "\u07a2\7\u00d6\2\2\u07a1\u07a3\7\u010b\2\2\u07a2\u07a1\3\2\2\2\u07a2\u07a3"+ + "\3\2\2\2\u07a3\u07a4\3\2\2\2\u07a4\u07a5\7\u0110\2\2\u07a5\u00f7\3\2\2"+ + "\2\u07a6\u07a7\7\u00d9\2\2\u07a7\u07a8\7\u0080\2\2\u07a8\u07a9\7 \2\2"+ + "\u07a9\u07aa\7\u00ee\2\2\u07aa\u07ab\7\"\2\2\u07ab\u07ac\7\u00ee\2\2\u07ac"+ + "\u07ad\7\u00d8\2\2\u07ad\u07ae\7 \2\2\u07ae\u07af\7\u00ee\2\2\u07af\u07b0"+ + "\7\"\2\2\u07b0\u07b1\7\u00ee\2\2\u07b1\u07b3\7\u00af\2\2\u07b2\u07b4\7"+ + "\u010b\2\2\u07b3\u07b2\3\2\2\2\u07b3\u07b4\3\2\2\2\u07b4\u07b5\3\2\2\2"+ + "\u07b5\u07b6\7\u00ff\2\2\u07b6\u07b8\7\u00d6\2\2\u07b7\u07b9\7\u010b\2"+ + "\2\u07b8\u07b7\3\2\2\2\u07b8\u07b9\3\2\2\2\u07b9\u07ba\3\2\2\2\u07ba\u07bb"+ + "\7\u0110\2\2\u07bb\u00f9\3\2\2\2\u07bc\u07bd\7\u00da\2\2\u07bd\u07be\7"+ + "\u00db\2\2\u07be\u07bf\7 \2\2\u07bf\u07c0\7\u010b\2\2\u07c0\u07c1\7\""+ + "\2\2\u07c1\u07c2\7\u010b\2\2\u07c2\u07c4\7\u00af\2\2\u07c3\u07c5\7\u010b"+ + "\2\2\u07c4\u07c3\3\2\2\2\u07c4\u07c5\3\2\2\2\u07c5\u07c6\3\2\2\2\u07c6"+ + "\u07c7\7\u00ff\2\2\u07c7\u07c8\7\u0110\2\2\u07c8\u00fb\3\2\2\2\u07c9\u07ca"+ + "\7\u00dc\2\2\u07ca\u07cb\7\u00db\2\2\u07cb\u07cc\7 \2\2\u07cc\u07cd\7"+ + "\u010b\2\2\u07cd\u07ce\7\"\2\2\u07ce\u07cf\7\u010b\2\2\u07cf\u07d1\7\u00af"+ + "\2\2\u07d0\u07d2\7\u010b\2\2\u07d1\u07d0\3\2\2\2\u07d1\u07d2\3\2\2\2\u07d2"+ + "\u07d3\3\2\2\2\u07d3\u07d4\7\u00ff\2\2\u07d4\u07d6\7\u00d6\2\2\u07d5\u07d7"+ + "\7\u010b\2\2\u07d6\u07d5\3\2\2\2\u07d6\u07d7\3\2\2\2\u07d7\u07d8\3\2\2"+ + "\2\u07d8\u07d9\7\u0110\2\2\u07d9\u00fd\3\2\2\2\u07da\u07db\7\u00dd\2\2"+ + "\u07db\u07dc\7\u00de\2\2\u07dc\u07dd\7 \2\2\u07dd\u07de\7\u00ee\2\2\u07de"+ + "\u07df\7\"\2\2\u07df\u07e0\7\u00ee\2\2\u07e0\u07e1\7\u00df\2\2\u07e1\u07e2"+ + "\7\u00ee\2\2\u07e2\u07e4\7\u00af\2\2\u07e3\u07e5\7\u010b\2\2\u07e4\u07e3"+ + "\3\2\2\2\u07e4\u07e5\3\2\2\2\u07e5\u07e6\3\2\2\2\u07e6\u07e7\7\u00ff\2"+ + "\2\u07e7\u07e8\7\u0110\2\2\u07e8\u00ff\3\2\2\2\u07e9\u07ea\7\u00e0\2\2"+ + "\u07ea\u07eb\7\u00de\2\2\u07eb\u07ec\7 \2\2\u07ec\u07ed\7\u00ee\2\2\u07ed"+ + "\u07ee\7\"\2\2\u07ee\u07ef\7\u00ee\2\2\u07ef\u07f0\7\u00df\2\2\u07f0\u07f1"+ + "\7\u00ee\2\2\u07f1\u07f3\7\u00af\2\2\u07f2\u07f4\7\u010b\2\2\u07f3\u07f2"+ + "\3\2\2\2\u07f3\u07f4\3\2\2\2\u07f4\u07f5\3\2\2\2\u07f5\u07f6\7\u00ff\2"+ + "\2\u07f6\u07f8\7\u00d6\2\2\u07f7\u07f9\7\u010b\2\2\u07f8\u07f7\3\2\2\2"+ + "\u07f8\u07f9\3\2\2\2\u07f9\u07fa\3\2\2\2\u07fa\u07fb\7\u0110\2\2\u07fb"+ + "\u0101\3\2\2\2\u07fc\u07fd\7\u00e1\2\2\u07fd\u07fe\7\u010b\2\2\u07fe\u07ff"+ + "\7\u0080\2\2\u07ff\u0800\7 \2\2\u0800\u0801\7\u00ee\2\2\u0801\u0802\7"+ + "\"\2\2\u0802\u0803\7\u00ee\2\2\u0803\u0805\7|\2\2\u0804\u0806\7\u00ee"+ + "\2\2\u0805\u0804\3\2\2\2\u0805\u0806\3\2\2\2\u0806\u0807\3\2\2\2\u0807"+ + "\u0809\7}\2\2\u0808\u080a\7\u00ee\2\2\u0809\u0808\3\2\2\2\u0809\u080a"+ + "\3\2\2\2\u080a\u080b\3\2\2\2\u080b\u080c\7\u0110\2\2\u080c\u0103\3\2\2"+ + "\2\u080d\u080e\7\u00e1\2\2\u080e\u080f\7\u010b\2\2\u080f\u0810\7{\2\2"+ + "\u0810\u0811\7 \2\2\u0811\u0812\7\u00ee\2\2\u0812\u0813\7\"\2\2\u0813"+ + "\u0814\7\u00ee\2\2\u0814\u0815\7|\2\2\u0815\u0816\7\u00ee\2\2\u0816\u0817"+ + "\7}\2\2\u0817\u0819\7\u00ee\2\2\u0818\u081a\7\u010c\2\2\u0819\u0818\3"+ + "\2\2\2\u0819\u081a\3\2\2\2\u081a\u081b\3\2\2\2\u081b\u081c\7y\2\2\u081c"+ + "\u081d\7 \2\2\u081d\u081e\7\u00ee\2\2\u081e\u081f\7\"\2\2\u081f\u0820"+ + "\7\u00ee\2\2\u0820\u0821\7|\2\2\u0821\u0822\7\u00ee\2\2\u0822\u0823\7"+ + "}\2\2\u0823\u0824\7\u00ee\2\2\u0824\u0825\7\u0110\2\2\u0825\u0105\3\2"+ + "\2\2\u0826\u0827\7\u00e2\2\2\u0827\u0828\7g\2\2\u0828\u0829\7\u0108\2"+ + "\2\u0829\u082a\7\u0080\2\2\u082a\u082b\7 \2\2\u082b\u082c\7\u00ee\2\2"+ + "\u082c\u082d\7\"\2\2\u082d\u082e\7\u00ee\2\2\u082e\u0830\7|\2\2\u082f"+ + "\u0831\7\u00ee\2\2\u0830\u082f\3\2\2\2\u0830\u0831\3\2\2\2\u0831\u0832"+ + "\3\2\2\2\u0832\u0834\7}\2\2\u0833\u0835\7\u00ee\2\2\u0834\u0833\3\2\2"+ + "\2\u0834\u0835\3\2\2\2\u0835\u0836\3\2\2\2\u0836\u0837\7\u0110\2\2\u0837"+ + "\u0107\3\2\2\2\u0838\u0839\7\u00e3\2\2\u0839\u083a\7\u010b\2\2\u083a\u083b"+ + "\7\u00ff\2\2\u083b\u083c\7\u0080\2\2\u083c\u083d\7 \2\2\u083d\u083e\7"+ + "\u00ee\2\2\u083e\u083f\7\"\2\2\u083f\u0840\7\u00ee\2\2\u0840\u0841\7|"+ + "\2\2\u0841\u0842\7\u00ee\2\2\u0842\u0843\7}\2\2\u0843\u0844\7\u00ee\2"+ + "\2\u0844\u0845\7\u0110\2\2\u0845\u0109\3\2\2\2\u0846\u0847\7\u00e4\2\2"+ + "\u0847\u0848\7\u010b\2\2\u0848\u0849\7\u0080\2\2\u0849\u084a\7 \2\2\u084a"+ + "\u084b\7\u00ee\2\2\u084b\u084c\7\"\2\2\u084c\u084d\7\u00ee\2\2\u084d\u084e"+ + "\7|\2\2\u084e\u084f\7\u00ee\2\2\u084f\u0850\7}\2\2\u0850\u0851\7\u00ee"+ + "\2\2\u0851\u0852\7\u0110\2\2\u0852\u010b\3\2\2\2\u0853\u0854\7\u00e5\2"+ + "\2\u0854\u0855\7\u0110\2\2\u0855\u010d\3\2\2\2\u0856\u0858\7\u00e6\2\2"+ + "\u0857\u0859\7\u010c\2\2\u0858\u0857\3\2\2\2\u0858\u0859\3\2\2\2\u0859"+ + "\u085a\3\2\2\2\u085a\u085b\7\u00ed\2\2\u085b\u010f\3\2\2\2\u085c\u085d"+ + "\7\u00e7\2\2\u085d\u085e\7\u00e8\2\2\u085e\u0860\7\u0101\2\2\u085f\u0861"+ + "\7\u010c\2\2\u0860\u085f\3\2\2\2\u0860\u0861\3\2\2\2\u0861\u0862\3\2\2"+ + "\2\u0862\u0863\7\u0110\2\2\u0863\u0864\7\u00ed\2\2\u0864\u0865\7\u0110"+ + "\2\2\u0865\u0866\7\u010f\2\2\u0866\u0867\7\u0110\2\2\u0867\u0111\3\2\2"+ + "\2\u0868\u0869\7\u0110\2\2\u0869\u0113\3\2\2\2\u086a\u086b\7\u00e9\2\2"+ + "\u086b\u0115\3\2\2\2\u086c\u086d\b\u008c\1\2\u086d\u0873\5\u0118\u008d"+ + "\2\u086e\u0873\5\u011a\u008e\2\u086f\u0873\5\u011c\u008f\2\u0870\u0873"+ + "\5\u0122\u0092\2\u0871\u0873\5\u0124\u0093\2\u0872\u086c\3\2\2\2\u0872"+ + "\u086e\3\2\2\2\u0872\u086f\3\2\2\2\u0872\u0870\3\2\2\2\u0872\u0871\3\2"+ + "\2\2\u0873\u0879\3\2\2\2\u0874\u0875\f\b\2\2\u0875\u0876\7\u00f5\2\2\u0876"+ + "\u0878\5\u0116\u008c\t\u0877\u0874\3\2\2\2\u0878\u087b\3\2\2\2\u0879\u0877"+ + "\3\2\2\2\u0879\u087a\3\2\2\2\u087a\u0117\3\2\2\2\u087b\u0879\3\2\2\2\u087c"+ + "\u087d\7\u00ea\2\2\u087d\u087e\5\u0116\u008c\2\u087e\u0119\3\2\2\2\u087f"+ + "\u0880\7\u0101\2\2\u0880\u011b\3\2\2\2\u0881\u0882\7\u0108\2\2\u0882\u011d"+ + "\3\2\2\2\u0883\u0884\7\u010a\2\2\u0884\u0885\7(\2\2\u0885\u0886\7\u00ec"+ + "\2\2\u0886\u011f\3\2\2\2\u0887\u0888\7\u0109\2\2\u0888\u0121\3\2\2\2\u0889"+ + "\u088a\7\u00eb\2\2\u088a\u088b\7\u0103\2\2\u088b\u0123\3\2\2\2\u088c\u088d"+ + "\7\u010b\2\2\u088d\u0125\3\2\2\2\u00dd\u0128\u0134\u013a\u0140\u0146\u014e"+ + "\u0153\u0159\u015d\u0163\u0168\u0171\u0176\u017c\u0185\u018d\u0193\u019b"+ + "\u01a1\u01a7\u01af\u01b2\u01b8\u01c0\u01c6\u01cc\u01d2\u01d8\u01de\u01e4"+ + "\u01ea\u01f0\u01f6\u01fc\u0201\u020d\u0215\u021b\u0294\u029d\u02a1\u02a5"+ + "\u02b2\u02b6\u02ba\u02bf\u02cb\u02ce\u02d8\u02dc\u02df\u02e3\u02e8\u02ed"+ + "\u02f1\u02f7\u02fb\u02ff\u0303\u030c\u0325\u0342\u0347\u034b\u034f\u0353"+ + "\u035a\u035f\u0363\u0367\u036b\u037d\u0388\u038c\u0390\u039e\u03a3\u03a7"+ + "\u03ae\u03b3\u03b7\u03be\u03c3\u03c7\u03cf\u03d4\u03d8\u03e0\u03e5\u03e9"+ + "\u03f3\u03f8\u03fc\u0402\u0428\u042d\u0434\u0439\u043d\u0441\u044a\u044f"+ + "\u0459\u045d\u0462\u0468\u048e\u049d\u04a7\u04ac\u04b3\u04b8\u04c3\u04d8"+ + "\u04e1\u04e5\u04ea\u04f3\u04f7\u0503\u0531\u0535\u0538\u053c\u0549\u0552"+ + "\u055f\u056e\u0573\u0577\u057e\u0586\u058b\u0593\u0598\u059c\u05a1\u05a5"+ + "\u05b0\u05b5\u05b9\u05d7\u05e2\u05eb\u05f4\u0609\u060f\u0614\u061a\u0623"+ + "\u0629\u0632\u0638\u0643\u0649\u064e\u0651\u0655\u0659\u065c\u0662\u066b"+ + "\u066f\u0674\u0677\u067d\u0683\u068b\u0691\u0696\u069c\u06a7\u06ad\u06b5"+ + "\u06bb\u06dc\u06e2\u06f9\u06fd\u0702\u0706\u070a\u070e\u0716\u0721\u0726"+ + "\u072a\u072d\u0739\u073e\u0741\u0749\u0752\u0756\u075a\u0760\u0764\u0776"+ + "\u0787\u078c\u079d\u07a2\u07b3\u07b8\u07c4\u07d1\u07d6\u07e4\u07f3\u07f8"+ + "\u0805\u0809\u0819\u0830\u0834\u0858\u0860\u0872\u0879"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index 79b11511..c0a8ad3c 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -458,13 +458,13 @@ return code; */; setText_s - : '设置剧情文本的属性' '位置' SetTextPosition_List '偏移像素' EvalString? '对齐' TextAlign_List? BGNL? '标题颜色' EvalString? Colour '正文颜色' EvalString? Colour '背景色' EvalString? Colour BGNL? '粗体' B_1_List '标题字体大小' EvalString? '正文字体大小' EvalString? '打字间隔' EvalString? Newline + : '设置剧情文本的属性' '位置' SetTextPosition_List '偏移像素' EvalString? '对齐' TextAlign_List? BGNL? '标题颜色' EvalString? Colour '正文颜色' EvalString? Colour '背景色' EvalString? Colour BGNL? '粗体' B_1_List '标题字体大小' EvalString? '正文字体大小' EvalString? '打字间隔' EvalString? '字符间距' EvalString? Newline /* setText_s tooltip : setText:设置剧情文本的属性,颜色为RGB三元组或RGBA四元组,打字间隔为剧情文字添加的时间间隔,为整数或不填 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=settext%EF%BC%9A%E8%AE%BE%E7%BD%AE%E5%89%A7%E6%83%85%E6%96%87%E6%9C%AC%E7%9A%84%E5%B1%9E%E6%80%A7 -default : [null,"",null,"",'rgba(255,255,255,1)',"",'rgba(255,255,255,1)',"",'rgba(255,255,255,1)',null,"","",""] +default : [null,"",null,"",'rgba(255,255,255,1)',"",'rgba(255,255,255,1)',"",'rgba(255,255,255,1)',null,"","","",""] SetTextPosition_List_0 =SetTextPosition_List_0==='null'?'': ', "position": "'+SetTextPosition_List_0+'"'; TextAlign_List_0 = TextAlign_List_0==='null'?'': ', "align": "'+TextAlign_List_0+'"'; var colorRe = MotaActionFunctions.pattern.colorRe; @@ -503,8 +503,12 @@ if (EvalString_6) { if (!/^\d+$/.test(EvalString_6))throw new Error('打字时间间隔必须是整数或不填'); EvalString_6 = ', "time": '+EvalString_6; } +if (EvalString_7) { + if (!/^\d+$/.test(EvalString_7))throw new Error('字符间距必须是整数或不填'); + EvalString_7 = ', "interval": '+EvalString_7; +} B_1_List_0 = B_1_List_0==='null'?'':', "bold": '+B_1_List_0; -var code = '{"type": "setText"'+SetTextPosition_List_0+EvalString_0+TextAlign_List_0+EvalString_1+EvalString_2+B_1_List_0+EvalString_3+EvalString_4+EvalString_5+EvalString_6+'},\n'; +var code = '{"type": "setText"'+SetTextPosition_List_0+EvalString_0+TextAlign_List_0+EvalString_1+EvalString_2+B_1_List_0+EvalString_3+EvalString_4+EvalString_5+EvalString_6+EvalString_7+'},\n'; return code; */; @@ -2901,7 +2905,7 @@ ActionParser.prototype.parseAction = function() { this.next = MotaActionBlocks['setText_s'].xmlText([ data.position,data.offset,data.align,data.title,'rgba('+data.title+')', data.text,'rgba('+data.text+')',data.background,'rgba('+data.background+')', - data.bold,data.titlefont,data.textfont,data.time,this.next]); + data.bold,data.titlefont,data.textfont,data.time,data.interval,this.next]); break; case "tip": this.next = MotaActionBlocks['tip_s'].xmlText([ diff --git a/libs/events.js b/libs/events.js index 4d786341..92dcba4c 100644 --- a/libs/events.js +++ b/libs/events.js @@ -975,7 +975,7 @@ events.prototype._action_comment = function (data, x, y, prefix) { } events.prototype._action_setText = function (data, x, y, prefix) { - ["position", "offset", "align", "bold", "titlefont", "textfont", "time"].forEach(function (t) { + ["position", "offset", "align", "bold", "titlefont", "textfont", "time", "interval"].forEach(function (t) { if (data[t] != null) core.status.textAttribute[t] = data[t]; }); ["background", "title", "text"].forEach(function (t) { diff --git a/libs/ui.js b/libs/ui.js index ae81e542..d18a9d1d 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -875,6 +875,7 @@ ui.prototype.drawTextContent = function (ctx, content, config) { config.fontSize = config.fontSize || textAttribute.textfont; config.lineHeight = config.lineHeight || (config.fontSize * 1.3); config.time = config.time || 0; + config.interval = textAttribute.interval || 0; config.index = 0; config.currcolor = config.color; @@ -980,7 +981,7 @@ ui.prototype._drawTextContent_drawChar = function (tempCtx, content, config, ch) tempCtx.font = this._buildFont(config.fontSize, config.bold, config.italic); } // 检查是不是自动换行 - var charwidth = core.calWidth(tempCtx, ch); + var charwidth = core.calWidth(tempCtx, ch) + config.interval; if (config.maxWidth != null && config.offsetX + charwidth > config.maxWidth) { this._drawTextContent_newLine(tempCtx, config); config.index--; diff --git a/project/floors/sample0.js b/project/floors/sample0.js index 8ed705e3..72d1f074 100644 --- a/project/floors/sample0.js +++ b/project/floors/sample0.js @@ -1,15 +1,15 @@ main.floors.sample0= { -"floorId": "sample0", -"title": "样板 0 层", -"name": "0", -"canFlyTo": true, -"canUseQuickShop": true, -"defaultGround": "ground", -"images": [], -"bgm": "bgm.mp3", -"item_ratio": 1, -"map": [ + "floorId": "sample0", + "title": "样板 0 层", + "name": "0", + "canFlyTo": true, + "canUseQuickShop": true, + "defaultGround": "ground", + "images": [], + "bgm": "bgm.mp3", + "item_ratio": 1, + "map": [ [ 0, 0,220, 0, 0, 20, 87, 3, 65, 64, 44, 43, 42], [ 0,246, 0,246, 0, 20, 0, 3, 58, 59, 60, 61, 41], [219, 0, 0, 0,219, 20, 0, 3, 57, 26, 62, 63, 40], @@ -24,199 +24,227 @@ main.floors.sample0= [ 87, 11, 12, 13, 14, 4, 4, 2, 2, 2,122, 2, 2], [ 88, 89, 90, 91, 92, 93, 94, 2, 81, 82, 83, 84, 86] ], -"firstArrive": [ - { - "type": "setText", - "background": "winskin.png", - "time": 0 - }, - "\t[样板提示]首次到达某层可以触发 firstArrive 事件,该事件可类似于RMXP中的“自动执行脚本”。\n\n本事件支持一切的事件类型,常常用来触发对话,例如:", - "\t[hero]\b[up,hero]我是谁?我从哪来?我又要到哪去?", - "\t[仙子,fairy]你问我...?我也不知道啊...", - "本层主要对道具、门、怪物等进行介绍,有关事件的各种信息在下一层会有更为详细的说明。" -], -"events": { - "10,9": [ - "\t[老人,man]这些是本样板支持的所有的道具。\n\n道具分为四类:items, constants, tools,equips。\nitems 为即捡即用类道具,例如宝石、血瓶、剑盾等。\nconstants 为永久道具,例如怪物手册、楼层传送器、幸运金币等。\ntools 为消耗类道具,例如破墙镐、炸弹、中心对称飞行器等。\nequips 为装备,例如剑盾等。", - "\t[老人,man]\b[up]有关道具效果,定义在items.js中。\n目前大多数道具已有默认行为,如有自定义的需求则需在items.js中修改代码。", - "\t[老人,man]\b[up]拾取道具结束后可触发 afterGetItem 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", + "firstArrive": [ { - "type": "hide", - "time": 500 - } + "type": "setText", + "background": "winskin.png", + "time": 0 + }, + "\t[样板提示]首次到达某层可以触发 firstArrive 事件,该事件可类似于RMXP中的“自动执行脚本”。\n\n本事件支持一切的事件类型,常常用来触发对话,例如:", + "\t[hero]\b[up,hero]我是谁?我从哪来?我又要到哪去?", + "\t[仙子,fairy]你问我...?我也不知道啊...", + "本层主要对道具、门、怪物等进行介绍,有关事件的各种信息在下一层会有更为详细的说明。" ], - "10,11": [ - "\t[老人,woman]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。", - "\t[老人,woman]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", - { - "type": "hide", - "time": 500 - } - ], - "2,10": [ - "\t[少女,npc0]这些是路障、楼梯、传送门。", - "\t[少女,npc0]血网的伤害数值、中毒后每步伤害数值、衰弱时攻防下降的数值,都在 data.js 内定义。\n\n路障同样会尽量被自动寻路绕过。", - "\t[少女,npc0]楼梯和传送门需要在changeFloor中定义目标楼层和位置,可参见样板里已有的的写法。", - { - "type": "hide", - "time": 500 - } - ], - "2,8": [ - "\t[老人,magician]这些都是各种各样的怪物,所有怪物的数据都在enemys.js中设置。", - "\t[老人,magician]这批怪物分别为:普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。", - "\t[老人,magician]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", - { - "type": "hide", - "time": 500 - } - ], - "2,5": [ - "\t[老人,magician]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值,可参见样板中黑暗大法师的写法。", - { - "type": "hide", - "time": 500 - } - ], - "2,3": [ - "\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。", - "\t[老人,magician]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。", - { - "type": "hide", - "time": 500 - } - ], - "12,10": { - "enable": false, - "data": [ - "\t[仙子,fairy]只有楼上启用事件后,才能看到我并可以和我对话来触发事件。", + "events": { + "10,9": [ + "\t[老人,man]这些是本样板支持的所有的道具。\n\n道具分为四类:items, constants, tools,equips。\nitems 为即捡即用类道具,例如宝石、血瓶、剑盾等。\nconstants 为永久道具,例如怪物手册、楼层传送器、幸运金币等。\ntools 为消耗类道具,例如破墙镐、炸弹、中心对称飞行器等。\nequips 为装备,例如剑盾等。", + "\t[老人,man]\b[up]有关道具效果,定义在items.js中。\n目前大多数道具已有默认行为,如有自定义的需求则需在items.js中修改代码。", + "\t[老人,man]\b[up]拾取道具结束后可触发 afterGetItem 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", { "type": "hide", "time": 500 } - ] - } -}, -"changeFloor": { - "6,0": { - "floorId": "sample1", - "stair": "downFloor" - }, - "0,11": { - "floorId": "sample0", - "loc": [ - 0, - 12 + ], + "10,11": [ + "\t[老人,woman]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。", + "\t[老人,woman]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", + { + "type": "hide", + "time": 500 + } + ], + "2,10": [ + "\t[少女,npc0]这些是路障、楼梯、传送门。", + "\t[少女,npc0]血网的伤害数值、中毒后每步伤害数值、衰弱时攻防下降的数值,都在 data.js 内定义。\n\n路障同样会尽量被自动寻路绕过。", + "\t[少女,npc0]楼梯和传送门需要在changeFloor中定义目标楼层和位置,可参见样板里已有的的写法。", + { + "type": "hide", + "time": 500 + } + ], + "2,8": [ + "\t[老人,magician]这些都是各种各样的怪物,所有怪物的数据都在enemys.js中设置。", + "\t[老人,magician]这批怪物分别为:普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。", + "\t[老人,magician]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", + { + "type": "hide", + "time": 500 + } + ], + "2,5": [ + "\t[老人,magician]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值,可参见样板中黑暗大法师的写法。", + { + "type": "hide", + "time": 500 + } + ], + "2,3": [ + "\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。", + "\t[老人,magician]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。", + { + "type": "hide", + "time": 500 + } + ], + "12,10": { + "enable": false, + "data": [ + "\t[仙子,fairy]只有楼上启用事件后,才能看到我并可以和我对话来触发事件。", + { + "type": "hide", + "time": 500 + } + ] + }, + "5,9": [ + { + "type": "setText", + "time": 3, + "interval": 3 + }, + "欢迎使用事件编辑器(双击方块进入多行编辑)", + { + "type": "setText", + "time": 6, + "interval": 6 + }, + "欢迎使用事件编辑器(双击方块进入多行编辑)", + { + "type": "setText", + "time": 9, + "interval": 9 + }, + "欢迎使用事件编辑器(双击方块进入多行编辑)", + { + "type": "setText", + "time": 12, + "interval": 12 + }, + "欢迎使用事件编辑器(双击方块进入多行编辑)" ] }, - "0,12": { - "floorId": "sample0", - "stair": "upFloor" + "changeFloor": { + "6,0": { + "floorId": "sample1", + "stair": "downFloor" + }, + "0,11": { + "floorId": "sample0", + "loc": [ + 0, + 12 + ] + }, + "0,12": { + "floorId": "sample0", + "stair": "upFloor" + }, + "1,12": { + "floorId": "sample0", + "loc": [ + 1, + 12 + ] + }, + "2,12": { + "floorId": "sample0", + "loc": [ + 2, + 12 + ] + }, + "3,12": { + "floorId": "sample0", + "loc": [ + 6, + 1 + ], + "direction": "up" + }, + "4,12": { + "floorId": "sample0", + "loc": [ + 0, + 9 + ], + "direction": "left", + "time": 1000 + }, + "5,12": { + "floorId": "sample0", + "loc": [ + 6, + 10 + ], + "time": 0, + "portalWithoutTrigger": false + }, + "6,12": { + "floorId": "sample0", + "loc": [ + 10, + 10 + ], + "direction": "left", + "time": 1000 + } }, - "1,12": { - "floorId": "sample0", - "loc": [ - 1, - 12 + "afterBattle": { + "2,6": [ + "\t[ghostSkeleton]不可能,你怎么可能打败我!\n(一个打败怪物触发的事件)" ] }, - "2,12": { - "floorId": "sample0", - "loc": [ - 2, - 12 + "afterGetItem": { + "11,8": [ + "由于状态栏放不下,绿钥匙和铁门钥匙均视为tools,放入工具栏中。\n碰到绿门和铁门仍然会自动使用开门。" + ], + "8,6": [ + "由于吸血和夹击等的存在,血瓶默认自动被绕路。\n你可以修改data.js中的系统Flag来设置这一项。" + ], + "8,7": [ + "如需修改消耗品的效果,请前往 data.js ,找到并修改values内对应的具体数值即可。\n如果有更高级的需求(如每个区域宝石数值变化),详见doc文档内的做法说明。" + ], + "9,5": [ + "每层楼的 canFlyTo 决定了该楼层能否被飞到。\n\n不能被飞到的楼层也无法使用楼层传送器。", + "飞行的楼层顺序由 main.js 中 floorIds 加载顺序所决定。\n\n是否必须在楼梯边使用楼传器由 data.js 中的系统Flag所决定。" + ], + "10,5": [ + "破墙镐是破面前的墙壁还是四个方向的墙壁,由data.js中的系统Flag所决定。" + ], + "8,4": [ + "炸弹是只能炸面前的怪物还是四个方向的怪物,由data.js中的系统Flag所决定。\n如只能炸前方怪物则和上面的圣锤等价。\n不能被炸的怪物在enemys中可以定义,可参见样板里黑衣魔王和黑暗大法师的写法。" + ], + "10,4": [ + "“上楼”和“下楼”的目标层由 main.js 的 floorIds顺序所决定。" + ], + "9,2": [ + "该道具默认是大黄门钥匙,如需改为钥匙盒直接修改 data.js 中的系统Flag即可。" + ], + "10,2": [ + "屠龙匕首目前未被定义,可能需要自行实现功能。\n有关如何实现一个道具功能参见doc文档。" + ], + "12,7": [ + "在 data.js 的系统Flag中设置是否启用装备栏。\n如果不启用则装备会直接增加属性。" + ], + "12,6": [ + "在 data.js 的系统Flag中设置是否启用装备栏按钮。\n如果启用则装备栏按钮会替代楼传按钮。" + ], + "12,5": [ + "装备的种类由全塔属性中的equipName决定,type的值就是该类型在equipName中的位次,例如默认情况下equiptype为0代表武器,同时只有type为0的装备的animate属性生效" ] }, - "3,12": { - "floorId": "sample0", - "loc": [ - 6, - 1 - ], - "direction": "up" + "afterOpenDoor": { + "11,12": [ + "你开了一个绿门,触发了一个afterOpenDoor事件" + ] }, - "4,12": { - "floorId": "sample0", - "loc": [ - 0, - 9 - ], - "direction": "left", - "time": 1000 - }, - "5,12": { - "floorId": "sample0", - "loc": [ - 6, - 10 - ], - "time": 0, - "portalWithoutTrigger": false - }, - "6,12": { - "floorId": "sample0", - "loc": [ - 10, - 10 - ], - "direction": "left", - "time": 1000 - } -}, -"afterBattle": { - "2,6": [ - "\t[ghostSkeleton]不可能,你怎么可能打败我!\n(一个打败怪物触发的事件)" - ] -}, -"afterGetItem": { - "11,8": [ - "由于状态栏放不下,绿钥匙和铁门钥匙均视为tools,放入工具栏中。\n碰到绿门和铁门仍然会自动使用开门。" - ], - "8,6": [ - "由于吸血和夹击等的存在,血瓶默认自动被绕路。\n你可以修改data.js中的系统Flag来设置这一项。" - ], - "8,7": [ - "如需修改消耗品的效果,请前往 data.js ,找到并修改values内对应的具体数值即可。\n如果有更高级的需求(如每个区域宝石数值变化),详见doc文档内的做法说明。" - ], - "9,5": [ - "每层楼的 canFlyTo 决定了该楼层能否被飞到。\n\n不能被飞到的楼层也无法使用楼层传送器。", - "飞行的楼层顺序由 main.js 中 floorIds 加载顺序所决定。\n\n是否必须在楼梯边使用楼传器由 data.js 中的系统Flag所决定。" - ], - "10,5": [ - "破墙镐是破面前的墙壁还是四个方向的墙壁,由data.js中的系统Flag所决定。" - ], - "8,4": [ - "炸弹是只能炸面前的怪物还是四个方向的怪物,由data.js中的系统Flag所决定。\n如只能炸前方怪物则和上面的圣锤等价。\n不能被炸的怪物在enemys中可以定义,可参见样板里黑衣魔王和黑暗大法师的写法。" - ], - "10,4": [ - "“上楼”和“下楼”的目标层由 main.js 的 floorIds顺序所决定。" - ], - "9,2": [ - "该道具默认是大黄门钥匙,如需改为钥匙盒直接修改 data.js 中的系统Flag即可。" - ], - "10,2": [ - "屠龙匕首目前未被定义,可能需要自行实现功能。\n有关如何实现一个道具功能参见doc文档。" - ], - "12,7": [ - "在 data.js 的系统Flag中设置是否启用装备栏。\n如果不启用则装备会直接增加属性。" - ], - "12,6": [ - "在 data.js 的系统Flag中设置是否启用装备栏按钮。\n如果启用则装备栏按钮会替代楼传按钮。" - ], - "12,5": [ - "装备的种类由全塔属性中的equipName决定,type的值就是该类型在equipName中的位次,例如默认情况下equiptype为0代表武器,同时只有type为0的装备的animate属性生效" - ] -}, -"afterOpenDoor": { - "11,12": [ - "你开了一个绿门,触发了一个afterOpenDoor事件" - ] -}, -"cannotMove": {}, -"bgmap": [ + "cannotMove": {}, + "bgmap": [ ], -"fgmap": [ + "fgmap": [ ], + "width": 13, + "height": 13 } \ No newline at end of file