{
	Tools = ordered() {
		Yooji_Timer_Macro = MacroOperator {
			Inputs = ordered() {
				-- 1. センター
				MainInput1 = InstanceInput {
					SourceOp = "Transform1",
					Source = "Center",
					Name = "センター (Center)",
				},
				-- 2. サイズ
				MainInput2 = InstanceInput {
					SourceOp = "Transform1",
					Source = "Size",
					Name = "サイズ (Size)",
					Default = 1,
				},
				-- 3. 角を丸く
				MainInput3 = InstanceInput {
					SourceOp = "Text1",
					Source = "CornerRadius",
					Name = "角を丸く (Corner Radius)",
					Default = 0.5,
				},
				-- 4. タイマーモード
				MainInput4 = InstanceInput {
					SourceOp = "Text1",
					Source = "TimerMode",
					Name = "タイマーモード (Timer Mode)",
				},
				-- 5. 時間指定
				MainInput5 = InstanceInput {
					SourceOp = "Text1",
					Source = "StartSeconds",
					Name = "時間指定 (Start Seconds)",
					Default = 0,
				},
				-- 6. 枠の色
				MainInput6 = InstanceInput {
					SourceOp = "Background1",
					Source = "TopLeftRed",
					Name = "枠の色 (Frame Color)",
					ControlGroup = 6,
					Default = 1,
				},
				MainInput7 = InstanceInput {
					SourceOp = "Background1",
					Source = "TopLeftGreen",
					ControlGroup = 6,
					Default = 0.784313725490196,
				},
				MainInput8 = InstanceInput {
					SourceOp = "Background1",
					Source = "TopLeftBlue",
					ControlGroup = 6,
					Default = 0.00392156862745098,
				},
				MainInput9 = InstanceInput {
					SourceOp = "Text1",
					Source = "OverrideTimer",
					Name = "タイマーを手動入力 (Override Timer)",
					Default = 0,
					Page = "Controls",
				},
				MainInput10 = InstanceInput {
					SourceOp = "Text1",
					Source = "ManualTimerText",
					Name = "手書きテキスト (Manual Text)",
					Default = "10.00.00",
					Page = "Controls",
				},
			},
			Outputs = {
				MainOutput1 = InstanceOutput {
					SourceOp = "MediaOut1",
					Source = "Output",
				}
			},
			ViewInfo = GroupInfo { Pos = { 0, 0 } },
			Tools = ordered() {
				MediaOut1 = MediaOut {
					Inputs = {
						Index = Input { Value = "0", },
						Input = Input {
							SourceOp = "Transform1",
							Source = "Output",
						}
					},
					ViewInfo = OperatorInfo { Pos = { 825, -16.5 } },
				},
				Transform1 = Transform {
					Inputs = {
						Input = Input {
							SourceOp = "MultiMerge1",
							Source = "Output",
						}
					},
					ViewInfo = OperatorInfo { Pos = { 715, -16.5 } },
				},
				MultiMerge1 = MultiMerge {
					Inputs = {
						LayerOrder = Input { Value = ScriptVal { { [0] = 1, 2, 4 } }, },
						Background = Input {
							SourceOp = "Background3",
							Source = "Output",
						},
						["Layer1.Foreground"] = Input {
							SourceOp = "Background1",
							Source = "Output",
						},
						["Layer2.Foreground"] = Input {
							SourceOp = "Background2",
							Source = "Output",
						},
						["Layer4.Foreground"] = Input {
							SourceOp = "Text1",
							Source = "Output",
						}
					},
					ViewInfo = OperatorInfo { Pos = { 605, -16.5 } },
				},
				Background2 = Background {
					Inputs = {
						EffectMask = Input {
							SourceOp = "Rectangle2",
							Source = "Mask",
						},
						UseFrameFormatSettings = Input { Value = 1, },
						TopLeftRed = Input { Value = 0.105882352941176, },
						TopLeftGreen = Input { Value = 0.105882352941176, },
						TopLeftBlue = Input { Value = 0.105882352941176, }
					},
					ViewInfo = OperatorInfo { Pos = { 440, -49.5 } },
				},
				Background1 = Background {
					Inputs = {
						EffectMask = Input {
							SourceOp = "Rectangle1",
							Source = "Mask",
						},
						UseFrameFormatSettings = Input { Value = 1, },
						TopLeftRed = Input { Value = 1, },
						TopLeftGreen = Input { Value = 0.784313725490196, },
						TopLeftBlue = Input { Value = 0.00392156862745098, }
					},
					ViewInfo = OperatorInfo { Pos = { 440, -16.5 } },
				},
				Background3 = Background {
					Inputs = {
						EffectMask = Input {
							SourceOp = "Rectangle3",
							Source = "Mask",
						},
						UseFrameFormatSettings = Input { Value = 1, },
						TopLeftRed = Input { Value = 0.0627450980392157, },
						TopLeftGreen = Input { Value = 0.0627450980392157, },
						TopLeftBlue = Input { Value = 0.0627450980392157, },
						TopLeftAlpha = Input { Value = 0.717, }
					},
					ViewInfo = OperatorInfo { Pos = { 440, -82.5 } },
				},
				Text1 = TextPlus {
					Inputs = {
						UseFrameFormatSettings = Input { Value = 1, },
						Center = Input {
							Value = { 0.5, 0.505 },
							Expression = 'Point(Rectangle2.Center.X, Rectangle2.Center.Y + 0.005 * (1080 / comp:GetPrefs(\'Comp.FrameFormat.Height\')))',
						},
						StyledText = Input {
							Value = "00：00",
							Expression = ': if OverrideTimer == 1 then return ManualTimerText end\nmode = TimerMode\nfps = comp:GetPrefs(\'Comp.FrameFormat.Rate\')\nstart_sec = StartSeconds\ncurrent_frame = time - comp.RenderStart\n\nif mode == 0 then\n  rem_f = math.max(0, (start_sec * fps) - current_frame)\nelse\n  rem_f = (start_sec * fps) + current_frame\nend\n\ntotal_sec = rem_f / fps\nmins = math.floor(total_sec / 60)\nsecs = math.floor(total_sec % 60)\nms = math.floor((rem_f % fps) / fps * 100)\n\nreturn string.format(\'%02d.%02d.%02d\', mins, secs, ms)',
						},
						Font = Input { Value = "DSEG7 Classic", },
						Style = Input { Value = "Bold", },
						Size = Input {
							Value = 0.07,
							Expression = '0.07 * (1920 / comp:GetPrefs(\'Comp.FrameFormat.Width\'))',
						},
						VerticalJustificationNew = Input { Value = 3, },
						HorizontalJustificationNew = Input { Value = 3, },
						StartSeconds = Input { Value = 0, },
						TimerMode = Input { Value = 0, },
						CornerRadius = Input { Value = 0.5, }
					},
					ViewInfo = OperatorInfo { Pos = { 330, 16.5 } },
					UserControls = ordered() {
						StartSeconds = { 
							INP_MaxAllowed = 1000000, 
							INPID_InputControl = "SliderControl", 
							INP_MaxScale = 7200, 
							INP_Default = 0, 
							LINKID_DataType = "Number", 
							LINKS_Name = "時間指定 (Start Seconds)",
							ICS_ControlPage = "Controls",
						},
						TimerMode = { 
							{ CCS_AddString = "0：カウントダウン (Countdown)" }, 
							{ CCS_AddString = "1：カウントアップ (Count Up)" }, 
							INPID_InputControl = "ComboControl", 
							LINKID_DataType = "Number", 
							LINKS_Name = "タイマーモード (Timer Mode)",
							ICS_ControlPage = "Controls",
						},
						CornerRadius = { 
							LINKS_Name = "角を丸く (Corner Radius)", 
							INP_MaxScale = 2, 
							LINKID_DataType = "Number", 
							INPID_InputControl = "SliderControl", 
							INP_Default = 0.5,
							ICS_ControlPage = "Controls",
						},
						OverrideTimer = {
							LINKS_Name = "タイマーを手動入力 (Override Timer)",
							LINKID_DataType = "Number",
							INPID_InputControl = "CheckboxControl",
							INP_Default = 0,
							ICS_ControlPage = "Controls",
						},
						ManualTimerText = {
							LINKS_Name = "手書きテキスト (Manual Text)",
							LINKID_DataType = "Text",
							INPID_InputControl = "TextEditControl",
							INP_Default = "10.00.00",
							ICS_ControlPage = "Controls",
						}
					}
				},
				Rectangle3 = RectangleMask {
					Inputs = {
						Width = Input {
							Expression = '0.37 * (1920 / comp:GetPrefs(\'Comp.FrameFormat.Width\'))',
						},
						Height = Input {
							Expression = '0.17275 * (1080 / comp:GetPrefs(\'Comp.FrameFormat.Height\'))',
						},
						CornerRadius = Input {
							Expression = '0.3564444 * Text1.CornerRadius * (1920 / comp:GetPrefs(\'Comp.FrameFormat.Width\'))',
						}
					},
					ViewInfo = OperatorInfo { Pos = { 330, -82.5 } },
				},
				Rectangle1 = RectangleMask {
					Inputs = {
						Width = Input {
							Expression = '0.37 * (1920 / comp:GetPrefs(\'Comp.FrameFormat.Width\'))',
						},
						Height = Input {
							Expression = '0.17275 * (1080 / comp:GetPrefs(\'Comp.FrameFormat.Height\'))',
						},
						CornerRadius = Input {
							Expression = '0.3564444 * Text1.CornerRadius * (1920 / comp:GetPrefs(\'Comp.FrameFormat.Width\'))',
						}
					},
					ViewInfo = OperatorInfo { Pos = { 330, -16.5 } },
				},
				Rectangle2 = RectangleMask {
					Inputs = {
						Width = Input {
							Expression = '0.357 * (1920 / comp:GetPrefs(\'Comp.FrameFormat.Width\'))',
						},
						Height = Input {
							Expression = '0.14775 * (1080 / comp:GetPrefs(\'Comp.FrameFormat.Height\'))',
						},
						CornerRadius = Input {
							Expression = '0.2654444 * Text1.CornerRadius * (1920 / comp:GetPrefs(\'Comp.FrameFormat.Width\'))',
						}
					},
					ViewInfo = OperatorInfo { Pos = { 330, -49.5 } },
				}
			},
		}
	}
}